« カメルーンのドメイン.cmで大儲けした男 | メイン | 画期的な広告アイデア in アメリカ »

2007年05月25日

reCAPTCHA - キャプチャを利用した人力高性能OCR

via del.icio.us/popular

reCAPTCHA という新サービスはすごい。その構想力には感動させられた。

recaptcha-logo.gif

念のためにCAPTCHA(キャプチャ)について説明しておくと、スパムプログラム(bot)と人間のユーザを見分けるための簡単な(しかし機械にとっては難しい)クイズのことだ。ある程度ウェブを使っている人なら、ネットサービスの登録時やコメントの書き込み時などに、読みにくく加工されたアルファベットを読まされたりした経験があるだろうと思う。

それらのサイトでは、あなたが人間にしかできないクイズを解いたのを見て、ユーザ登録やコメントの投稿を受け付けたりする仕組みになっているわけだ。文字を読む以外のCAPTCHAもあるけれど、一番多用されているのはこの手のものだろう。

文字をぐにゃりと曲げたり、色をつけて機械から読まれにくくしたりという仕組みは、プログラマーが自分で作ることもあるし、CAPTCHAの仕組み自体をネットサービスとして提供しているようなところもある。

ここまでがおさらい。

reCAPTCHAサービスの新しい点

reCAPTCHAでは、このCAPTCHA画像を生成してくれて、正解かどうかをつきあわせるサービスを提供している。しかし、ここで「よく考えたなあ」と思うのは、ユーザが解くこの大量の小さなクイズの力を、別の問題の解決「にも」使う仕組みとしたところだ。

recaptcha.png

reCAPTCHAのサービスを使って自分のブログやウェブサイトにCAPTCHAを配置すると、そこに来たユーザは、二つの単語を入力しないと目的が達成できないようになる。なぜ二つなのか、のところがこのサービスの肝だ。

reCAPTCHAのトップページに大きく出ているのは、"STOP SPAM. READ BOOKS."(スパムを無くし、本を読もう)というスローガンだ。「本を読む」?

実は、これらのCAPTCHA画像は、これまであったような、きれいなフォントから加工して作られたものではない。実在する紙の本をスキャンして、OCRで読み取ろうと試みた単語のうち、認識に失敗した単語のイメージをベースにしているのだ。

二つの単語のうちの一方は、reCAPTCHAが既に正しい読み方を知っている単語の画像だが、もう一つは、まだ読み方がわかっていない単語の画像ということになる。

出題の時点では回答者がユーザなのか、それともロボットなのかはまだわからない。しかし、知っている方の単語を正しく読めたのであれば、もう一方の入力も正解に近いのではないか、と推測することができる。reCAPTCHAはこの情報を利用して、これまで機械で読み取れなかった単語画像にある単語を正しく知ることができるようになる。(さらに、他のエンドユーザにも何度かこれを解かせることで、認識の確からしさを上げる仕組みになっているらしい)

紙の本は活字での印刷とはいえ、活字のばらつきやインクのにじみ、インクや紙の経年変化、スキャン時の紙面のゆがみなど様々な要因で、必ずしも100%OCRで認識できるわけではない。これまで、読み取れなかった単語は人が視認して訂正を入れていたのだろう。しかし、このreCAPTCHAの仕組みでは、ネットの向こうにいる多数のユーザに、ほんの少しずつ手間をかけてもらうだけで、結果的にたくさんの判別不能だった単語を拾うことにつなげられる。

ネットの向こうのたくさんのユーザを、仮想的なプログラムにしてしまう

「知ってる情報」と「知らない情報」を組み合わせて解かせることで、ネット上の数十万、数百万のユーザを、機械読み取りに失敗した単語を読む仮想的な機械にしてしまったわけだ。

もちろん、これから十分な数のエンドユーザが確保することは必要だけれども、それは結構うまくいくのかもしれない、と思った。

この仕組みは無料で使えるので、ウェブサイトやブログのオーナーには、自分でCAPTCHAシステムを用意しなくてもいい、というインセンティブがある。使ってみようというユーザはそれなりにいるだろう。

エンドユーザは、今でもいろんなところでCAPTCHAを解かされているわけで、それがこのreCAPTCHAに変わったからといって問題はない。このreCAPTCHAプロジェクトでは、過去の貴重な紙情報をデジタル化していくという使命もあるわけで、仕組みを知っているユーザにとっては、ただ面倒なことをさせられているだけではなく、文化事業にわずかではあるが貢献している、というインセンティブもでてくるかもしれない。

関係する人に誰も損をせずに、これまであった問題を解決しようとしている、という点でこのアイデアはすごいと思った次第だ。

reCAPTCHA APIとさまざまなライブラリ

実際にたくさんのエンドユーザを確保するのが大事だと思うが、そのためにもいろんな手が打たれているようだ。

Resourceのページでは、WordPressやphpBBなど、著名なブログやフォーラムのオープンソースアプリケーションのためのプラグインが提供され、PHP向けのライブラリもある。APIとして、汎用的なAPIと、メールアドレスをスパマーのロボットから隠すために機能特化したAPIの二つも提供されている。

メールアドレスを隠すのにこのreCAPTCHAを使うサンプルは、ここで試すことができる。二つ正しい単語を入れれば、隠されたメールアドレスを知ることができるようになっている。

[追記 2007.06.04] reCAPTCHA APIをyune_kotomiさんという方が日本語訳された

[追記 2007.09.17] GoogleがreCAPTCHAを買収しました

投稿者 秋元 : 2007年05月25日 00:05

トラックバック

このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/1294

このリストは、次のエントリーを参照しています: reCAPTCHA - キャプチャを利用した人力高性能OCR:

» [開発][Web]ちょっとしたこと、捨てずに。 from 青空を探す、旅の記録。
秋元@サイボウズラボ・プログラマー・ブログ: reCAPTCHA - キャプチャを利用した人力高性能OCR これはすごい。上手いこと考えるもんです。コメ... [続きを読む]

トラックバック時刻: 2007年05月25日 21:17

» 続・ゲーム内労働 from blog-mnagaku's BLOG-IGDA Japan chapter
前回は予測市場の話をしましたが、他にも幾つか候補があります。採算が取れるか分からないけど。Google Image Labeler今の Google Im... [続きを読む]

トラックバック時刻: 2007年05月29日 02:33

» ReCAPTCHA from kocoha blog
reCAPTCHA - キャプチャを利用した人力高性能OCR / 秋元@サイボウ... [続きを読む]

トラックバック時刻: 2007年05月29日 14:36

» [pc][spam]PukiWikiでreCAPTCHAでのスパム対策 from モーグルとカバとパウダーの日記
モーグルとカバとパウダーの日記 - PukiWiki Plus!用のスパムフィルタ spam_filter.php のエントリーで書いたPukiWiki... [続きを読む]

トラックバック時刻: 2007年07月12日 10:41

» エログリッドコンピューティングの傾向と対策 from 404 Blog Not Found
この手法、実は「エログリッドコンピューティング」として、少なくとも4年前から知られている。 Geekなぺーじ : エロパワーでCaptcha突破「CAP... [続きを読む]

トラックバック時刻: 2007年11月02日 20:22

» 万国のエロ群集よ、団結せよ from 医療とコンピュータに関する備忘録(公開版)
404 Blog not foundの記事エログリッドコンピューティングの傾向と対策で、エログリッドという言葉をはじめて知った。アイデアに感心。reCHA... [続きを読む]

トラックバック時刻: 2007年11月03日 18:27

» [はてな][CAPTCHA][パターン認識][コラム] CAPTCHA is Dead. from 技術系のシバチョ2.0がコラムを書く
はてながCAPTCHAの費用対効果で見落としていること ってエントリが最近人気らしいけど、reCAPTCHAプロジェクトが出てきた時点で、もうCAPTC... [続きを読む]

トラックバック時刻: 2008年03月12日 17:26

 
mg src="http://img.awasete.com/image.phtml?u=http%3A%2F%2Flabs.cybozu.co.jp%2Fblog%2Fakky%2F" width="160" height="140" alt="あわせて読みたい" border="0">

著書

PHPxWebServiceAPIConnections.jpg

プロフィール

週三日勤務で、残りは個人で活動しています