玩一把tesseract


tesseract這個東西,之前朋友有個項目,問到我的時候看了一下,因為那個項目難度比較高,不敢接,也就作罷了。這次翻出來看看純屬興趣 - 感覺手機拍照然后識別些東西,並且聯網查詢,還是蠻有意思的。

tesseact其實全稱是tesseract-ocr,是個自動識別字符的程序,項目網址是:http://code.google.com/p/tesseract-ocr/。雖然其主流平台是三大系統(Win/Linux/Mac OS),但在android和iphone上也是可以跑的 - 這點對我來講非常重要。
你可以直接想在其命令行工具使用,或者下載其SDK開發自己的程序。

tesseract支持多種語言 - 你只需下載對應的訓練過的語言文件即可,並且可以通過config文件來調整行為:比如只識別數字,比如只識別指定的words或者指定的pattern。另外提一下,tesseract只支持字符識別,不支持條形碼(barcode)識別【1】

【文檔】

比較有用的鏈接:

【試玩】

我用手機拍了一張雙色球的彩票:

 直接識別:

$ tesseract IMAG0409.jpg IMAG0409 -l chi_sim

結果有點慘:

|.1 _>8-二 (樾 Q|. '1'ç ;,2. 4,之 巴)'-j\
虻 號 :s101 0500 » ()帆5
卉獎日朋 20菩2.10.:ö 生趴月虧201z127 上
姜丁琵 日 胴/盯間: 2012.10.26/11:26:26
A) H: 02 04 12 13 16 26
Q CD
"/ 、«
l"〓:廣':::廣'
Oo'--OO
l3!"'.>'-"]丹'_O
°
l薛
l2 l5 20 “

‘瞞ã
竄ã
薄喃§
薄5漣
'-‘iC-ei-l

如果單獨拎出關鍵信息來識別的話:

 $ tesseract qihao.jpg qihao -l chi_sim

全國朋虧201Z1Z7

$ tesseract qihao.jpg qihao digits

25552012127

可以看出,按中文識別的話,認出了兩個字,但后面的數字有差錯;按數字識別的話,后面的數字是全對了,但前面把中文也糊弄成數字了(不是它的錯) ,所以這里應該可以再分成兩步,先按中文找“全國期號”,找到后把后面的內容按數字識別,便得到了這一期的期號(方便聯網去取當期的中獎號碼)

$ tesseract haoma.jpg haoma

A) HZ 02 04. 12 1316 26

后面的號碼對了,但前面分號給識別成了Z,而且04后面多了個點,更嚴重的是:第二行不見了 - 看來得識別到紅球、黑球號碼然后分兩行處理才行。

結合手機拍照的光線、角度、距離,以及彩票可能的褶皺,旋轉,要地位期號、紅球、白球並精確識別出號碼看來還蠻有挑戰性的 - 考慮到彩票對失誤零容忍的特點(老子中了500萬,你卻說沒中?!),困難重重啊。


【1】條形碼有一維碼(豎線)和二維碼(方塊),一般會在下面標上條形碼的號碼 - 那是給人看的,而條形碼是給機器識別的。很顯然,簡單的線條或者方塊,識別起來比數字要高效與准備的多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM