2009.09.22 18:00

reCAPTCHA:擋Spam同時幫忙書籍數位化!

ADVERTISEMENT

經常上論壇、部落格留言的朋友,對這歪歪扭扭的字一定不陌生;這是用來分辨留言者是真人還是機器人的機制。但你也許不知道,這個東西不但可以用來擋spam,還可以用來幫助書籍的數位化。 砍也砍不完的垃圾留言,以及透過機器人大量註冊的假會員帳號,或是在網路投票中拚命灌水,這些都是網站管理員的惡夢;為了對付這些討人厭的spam行為,資訊科學界也發展出多種阻擋或過濾技術,其中一種相當有效的方式,就是利用歪七扭八的文字或數字做為檢核碼,你得分辨並正確輸入文字,才能通過檢核,順利完成po文或註冊程序。這種技術叫做(Completely Automated Turing Test To Tell Computers and Humans Apart),翻成中文叫做「人類或電腦鑑別全自動圖林測試」。這是西元2000年時由卡內基美隆大學發展出來的技術,最先採用的正是Yahoo!。

關於圖林測試是什麼,以及在資訊科學上有什麼影響,可能要用很長的篇幅來說明才行;;不過這都不是我們的重點。我們要介紹的是CAPTCHA的另一個應用,就是用來幫助提高書籍數位化的精確度。怎麼做到的?其實這也是卡內基美隆大學研究人員的聰明點子。

人海戰術

在CAPTCHA成為許多網站用來防spam的機制後,累積了相當龐大的辨識資料,據統計,每天經由全球網友輸入的CAPTCHA扭曲字元約有二億個。一個人辨識一組CAPTCHA只要花十秒鐘,但全球網友花在解這些字謎的總時數,累加起來後一天達到15萬小時,等於是非常龐大的平行處理運算資源。

ADVERTISEMENT

另一方面,全球有不少將人類有史以來的印刷出版品掃瞄辨識成數位文件的計畫,像是「」,以及等等。這些計畫都面臨同樣的難題:許多頗有歷史的出版品印刷品質欠佳,掃到的字元影像就像CAPTCHA的字元一樣歪七扭八;再加上電腦的辨識能力也很有限(用過OCR掃名片或文件的朋友就知道改起來有多痛苦),結果就是辨識出來的數位文件充斥亂碼,正確率偏低。


▲古籍掃瞄丟給電腦辨識,結果就是人原本看得懂的文字反而變亂碼 orz

卡內基美隆大學聰明的研究人員想到:既然每天有那麼多的人在網路上要通過CAPTCHA檢核,如果把歪七扭八的檢核字元換成同樣歪七扭八的書籍掃瞄文字,叫網友來辨識,不就可以借助大量網友的平行處理力量,來幫助提升文件數位化的正確性嗎?這便是計畫的起點。

ADVERTISEMENT

reCAPTCHA的做法很簡單,就是把辨識失敗單字的原始影像找出來,然後放到CAPTCHA中讓網友辨識;為了確認辨識出來的單字是正確的,reCAPTCHA會放兩個單字讓你辨識:一個是真正需要辨識的扭曲單字,另一個單字則是已經經過正確辨識的扭曲單字。如果你答對已知單字的答案,reCAPTCHA就會讓你通過檢核,同時認定你對未知單字的辨識結果也是正確的。另外,reCAPTCHA還會在單字影像上加一點料,例如加上橫線並讓字體變得更加扭曲難辨,以提高被破解的難度,這樣就能確保辨識結果正確,而且都是由真正的人類提供答案。


▲1:把印刷品拿去掃瞄辨識   2:擷取辨識失敗的單字影像  3:對單字影像加料,提高辨識難度  4:變成reCAPTCHA檢查機制

接下來的問題是,要如何讓網友來幫忙辨識?卡內基美隆大學把reCAPTCHA做成一個網路服務元件,就像Youtube影片可自由嵌入任何網頁一樣,讓大家免費放在自己的網站拿去用;當需要進行人類檢核時,伺服器就會收到大家幫忙辨識的結果,這樣就能集眾人之力來改進古藉數位化的辨識精確度,目前已有超過十萬個網站安裝reCAPTCHA來擋spam,而辨識精確度也達到99.5%,遠高於任何OCR軟體的精確度。

ADVERTISEMENT


▲原始的低品質文件


▲OCR辨識出來的結果,看了會想哭吧?


▲經由reCAPTCHA辨識出的結果,人類還是比電腦強啦!

ADVERTISEMENT

由於reCAPTCHA在文件辨識上的精確度是如此驚人,因此也引起Google大神的興趣。大家都知道Google有個服務叫做,就是把書籍內容掃進資料庫裡,就可以像搜網頁一樣,用關鍵字來找書的內容;Google前一陣子,一方面可以提高書籍辨識精確度,同時還能增強Google本身網站的安全性,減少被spam的風險。不久之後大家上Google申請服務,可能就會看到reCAPTCHA取代現在Google使用的CAPTCHA機制了。

ADVERTISEMENT