2007年9月19日 星期三

圖文驗證碼~你還有更好的選擇

全文引用自[Mr.Ms.Days]

作者:Mr. Friday

CAPTCHA的全名是”Completely Automated Public Turing test to tell Computers and Humans Apart”, 也就是專門用來判斷使用者是人類還是電腦的機制, 而圖形驗證碼正是當中最常被用到的方法. 那reCAPTCHA又是什麼東西呢? 其實reCAPTCHA是 圖形驗證碼原創者Luis von Ahn的新作, 一樣是圖形驗證碼的延伸. 就他的觀察, 現在網友每天會輸入6千萬次的圖形驗證碼, 如果平均解一張圖形驗證碼要10秒鐘的話, 那全世界人類每天總共會花去總計150000小時的時間在解圖形驗證碼上. 他想到的是, 把這些功夫用在對人類有益的事情上, 那就是: 書籍的數位化.

書籍的數位化是近幾年常被討論的話題. 但是我們都知道, 電腦的流行也不過就這幾十年間的事情, 但是書籍的歷史卻可以往回追溯幾千年. 如果要一一輸入電腦實在是很耗時, 所以就有人發展了OCR (Optical Charater Reconition)技術, 可以把掃描機讀到的圖案轉換為文字. 可惜的是, OCR概念雖好, 但是它的圖形辨識能力仍然不盡理想, 舉例來說:


第一行是從書本掃下來的字: “This aged portion of society were distinguished from”

第二行是OCR自動判讀結果: “niis aged pntkm at society were distinguished frow”



很明顯有將近一半的字判讀錯誤. 這些被劃紅線的字還需要人工手動重新輸入, 仍然是很浪費時間. 所以Luis von Ahn想到一個好方法, 那就把這些機器判讀不出來的字作成圖形驗證碼給網友辨識如何? 於是就看到我們的reCAPTCHA了:

這當中有兩個從書本上掃描下來的字, 它們都是機器判讀失敗的字句. 網友要做的就是把你看到的字母輸進下面那個對話框就可以了. 等等, 既然這兩個字都是機器判讀失敗的字句, 那電腦怎麼知道網友輸入的答案是對還是錯呢? 其實, 電腦已經知道其中一個字(不一定是左邊或右邊) 的正確答案了. 如果網友輸入的那個字是正確的, 那麼電腦會假設另外一個字也是正確的, 並判定網友通過驗證碼.

有的人會問說, 如果我故意把左邊的字打對, 右邊的字打錯, reCAPTCHA還是有一半的機率會讓我通過驗證碼啊, 那這樣是不是會影響到網站的運作, 或是書籍的數位化正確度呢? 這個答案倒是不必太擔心, 因為:

  1. 對reCAPTCHA來說, 他不會只採信一個網友的答案, 也就是每個新字繪重複出現在不同網友的圖形驗證碼好幾次, 然後reCAPTCHA再採信最多人輸入的答案, 因此單一網友的輸入錯誤並不會影響整體翻譯.
  2. 對於一般使用圖形驗證碼的blog或程式而言, 它的功用就是拿來確定輸入答案的是真人而不是程式, 而reCAPTHCA已經做到這點了.

reCAPTCHA的概念很好, 有效地轉換網友花在圖形驗證碼的功夫為書籍的數位化, 值得大家大力推廣. 另外, vgod推薦Click*3改採reCAPTCHA來當認證圖的原因還有一點:

因為reCAPTCHA官網提供頻寬, 幫你生驗證碼, 所以Ian (Click*3官網維護者)可以不必再為圖形驗證碼被破解或是流量太大系統不穩所擔心, 各位網友也可以更順暢的連上Click*3官網, 還能幫忙達成書籍的數位化, 豈不是一舉數得? 趕快找個人去建議Ian把圖案換成reCAPTCHA吧 XD ! 另外, reCAPTCHA也提供程式碼, 給自己架站的網友使用, 有興趣的人可以到reCAPTCHA官網看看.


-------------------------------------
Luis von Ahn真是聰明阿~~

沒有留言:

 
Blogger Template Layout Design by [ METAMUSE ] : Code Name Gadget 1.1