学びの日記 -Indirect Learning Diary-

理工系修士卒→情報系民間企業研究職→母校研究員(現在)→他校博士課程進学予定(2018年4月~)

「Human Computation」 -歪み文字による画像認証に隠されたもう1つのお話-

今回は論文の研究内容について、まとめてみようかと思います。論文の研究内容と言っても、皆さんも一度はみかけたことのある歪み文字による画像認証に関してのお話で、私が初めてこの話題を知ったのも日経新聞の記事ですので、数式ガリガリの専門バリバリな感じではないので、取っつきやすくて分かりやすい内容かなと思います。そして何より、初めてこの内容を知ったとき純粋にそのアイディアの美しさに感動を覚えました。本気で感動しました。

さて、前振り十分なところで、早速本題に入りたいと思います。「歪み文字による画像認証」と聞いてもピンと来ない人もいるかと思います。そんな方でも、下の画像(Wikipediaより引用)を見たら、「あっ見たことあるやつだ!」となるのではないでしょうか?

http://upload.wikimedia.org/wikipedia/ja/6/66/Captcha.png

http://upload.wikimedia.org/wikipedia/commons/b/b6/Modern-captcha.jpg

そうです。よくgmailなどのWebメールでアカウントを作成する時などに見かける、あの歪んだ文字の画像です。この画像は、「人間とコンピュータを区別するため」のもので、例えば、Webメールでフリーアカウントを"ボット"(要するにコンピュータプログラム)で自動で大量に作成して、迷惑メールを大量送信するのを防ぐために使われるものです。アカウントを取得するまえにこの画像を表示して、アカウント作成者に画像の歪んだ文字を入力させることで、入力文字が正しいかどうかでアカウント作成者が人間かコンピュータかを判断し、人間ならばアカウント作成を許可するというものです。この方法が成立するのは、人間(より正しくいうと目に障害を持っていない人間)は歪んだ文字を読み取ることが出来るが、コンピュータ(より正しくいうと現在のコンピュータによる画像認識技術)は歪んだ文字を読み取ることが出来ない、という人間とコンピュータの特性をうまく利用しているからです。ちなみに、この「歪み文字による画像認証」の正式名称は「CAPTHA」で、"Completely Automated Public Turing test to tell computers and Humans Apart" の略で、あるコンピュータが知的かどうか?を人間とコンピュータの見分けがつくかどうかで判断する "Turing Test" にその語源をもっています。

さて、この「CAPTHA」自体が十分に実用性があり、それ単体でもgmailなどの様々な企業のサービスで利用されている素晴らしい技術なのですが、実はこの「CAPTHA」には、もう1つの隠されたお話があります。

この「CAPTHA」の実用化が浸透して、現在、2億人以上のユーザーがこの認証に10秒ほどの時間を費やしています。これは、計算すると毎日50万時間も無駄にしていることになります。この無駄に気付いた「CAPTHA」の開発者の1人であるLuis Von Ahh(ルイス・フォン・アーン)氏は、この無駄な時間を上手く利用できないか?ということで「reCAPTHA」というプロジェクトを立ち上げました。このプロジェクトは、認証に使用する文字画像とその入力テキストを本の電子化に利用するというものです。

 本の電子化は、本のページを写真で撮影して、その写真を各文字の画像に分割し、その分割画像中の文字をOCR(光学文字認識)と呼ばれる機械でスキャンして認識することで行われます。しかし、文字がかすんだりした古い本などでは、OCRでも認識できないような文字が沢山存在します。そこで、「CAPTHA」を利用します。「CAPTHA」に使用する文字画像としてOCRで認識できなかった画像を使用して、その認証によって入力されたテキストをその画像の文字として認識します。こうすれば、コンピュータによって認識できなかった文字も、人間の力を利用することによって認識することが出来ます。

あれ?どうやってその入力テキストの文字が正しいかどうかを判断するの?コンピュータが認識出来なかった画像に対する正解の文字のテキストは分からないんじゃないの?と思った勘の鋭い方がいるかもしれませんが、実は最初に紹介した下の歪み文字の画像のように、2つの文字を表示することでこの問題を回避しています。例えばこの図の、左側をOCRで認識できた正解が分かっている画像、右側をOCRで認識できなかった画像、とすることで、左側の画像に対して正しくテキストが入力された場合にだけ右側も正しくテキストが入力されているだろうと判断します。もちろん、左側の入力が正しいからといって、右側の入力も正しいとは限らないので(人間でも間違えることはあるので)、左側に正解した何十人かが右側に同じテキストを入力した場合に、右側の画像に対して入力されたテキストが正しいということを判断します(もちろん、何人入力したら正解といえるのか?自体がそもそも研究対象になりそうですが・・・)。これで、右側の画像の正解も判明したので、以降は、この右側の画像を先の左側の画像のように正解が分かっている画像として使用することができるようになります。そんなわけで、「そいえば最近、歪み文字による画像認証で、2つ文字が表示される場合があったなぁ」と思ったかもしれませんが、実はその背景にはこのようなお話があったのです。

この「reCAPTHA」のように、コンピュータが解くのが得意でない問題を人間の情報処理能力を利用することで解く、という考え方を「Human Computation」と言います。「reCAPTHA」の開発者であるLuis Von Ahh氏はこの考え方を応用して、現在「Duolingo」という無料の語学学習アプリをリリースしています。こちらについての詳細は割愛させていただきますが、Web上のニュース記事などを教材にして語学学習をすることで、語学を学習すると同時に、Web記事の翻訳に貢献する、というものです。ユーザーは翻訳に貢献することで、無料で語学を学習できるというわけです。

この「Human Computation」は最近流行りのクラウドソーシングの一部としても考えられています。ただ、個人的には、取り上げた題材のように、「~しながら実は~していた」というところに美しさがあるのではないかと考えています。人間の情報処理力を利用するために、人間に他のモチベーションを与えるところに美しさを感じています。3年前ほど前に記事などでも話題となった、「Fold it」 と呼ばれるタンパク質構造予測のためのゲームなども、この「Human Computation」の例となります。

最後に詳細の資料紹介ですが、Luis Von Ahh氏は MIT technology Review 誌の young innovator under 35 にも選ばれており、TEDでのスピーチもあります。彼の博論もご参考になるかとおもいます(ちなみにお供に持ってきたのがこの博論)。

いやはや、世界には素晴らしい研究者がいるものですね。