主要參考:
關於中文的識別,效果不一定會好一些但是開源的應該就是tesseract-ocr了,所以自己親身試用一下,分享到部落格讓有同樣興趣的人少走彎路。
一、準備工作
二、識別
1、進入cmd,進入到要識別的的路徑下。
2、輸入命令
1
tesseract 名稱 生成的結果檔案的名稱 字型檔
例如我的識別就是:
識別完後會生成result.txt檔案
當然啦效果不太理想。所以我們要訓練自己的字型檔。
三、訓練
1、將轉換成tif格式,用於後面生成box檔案。可以通過畫圖,然後另存為tif即可。
更改名字,這個是有要求的=。=
tif文面命名格式[lang].[fontname].exp[num].tif
lang是語言 fontname是字型
比如我們要訓練自定義字型檔 mjorcen字型名normal
那麼我們把檔案重新命名 mjorcen.normal.exp0.jpg在轉tif。
2、生成box檔案。
box檔案和對應的tif一定要在相同的目錄下,不然後面打不開。
3、開啟jtessboxeditor矯正錯誤並訓練
開啟train.bat
找到tif圖,開啟,並校正。
(如果針對於多張,可以在該軟體下先合併生成tif圖,再回到第1步,合併方式:開啟tools-merger tiff,選擇儲存即可)
(在本步驟中,如果遇到中文亂碼的情況,開啟settings-font,選擇中文字型即可)
4、訓練。
只要在命令列輸入命令即可。
在這我明明已經矯正好了,但是還是有1個字元不能識別出來,報的錯跟實際上完全沒有相關性,不知道是不是bug,到後面的結果就是「園」字沒有識別出來。
先不管,畢竟只有乙個樣本。
新建乙個font_properties.txt檔案
裡面內容寫入 normal 0 0 0 0 0 表示預設普通字型
繼續敲命令
1
2
3
4
5
6
7
8
9
shapeclustering -f font_properties.txt -u unicharset mjorcen.normal.exp0.tr
mftraining -f font_properties.txt -u unicharset -o unicharset mjorcen.normal.exp0.tr
(上面的 o 是大寫的英文本母 o)
cntraining mjorcen.normal.exp0.tr
最後會生成五個檔案,把目錄下的unicharset、inttemp、pffmtable、shapetable、normproto這五個檔案前面都加上normal.
如圖:
命令列輸入,合併五個檔案:
1
combine_tessdata normal.
得到訓練好的字型檔。
四、測試
1、把 normal.traineddata 複製到tesseract-ocr 安裝目錄下的tessdata資料夾中
2、識別命令:
3、效果
對比:
總結:肯定要自己訓練過後的字型檔識別效果好,接下來要把整個專案弄進android,還要研究怎麼將多個字型檔合併成乙個字型檔,因為我不可能一次訓練完所有的文字的。到時候有什麼成果了再分享博文。希望大家可以點讚!謝謝。
更新:沒有錯誤的話命令列的提示應該是這樣的
Tesseract Ocr文字識別
tesseract的ocr引擎最先由hp實驗室於1985年開始研發,至1995年時已經成為ocr業內最準確的三款識別引擎之一。2005年,tesseract由美國內華達州資訊科技研究所獲得,並求諸於google對tesseract進行改進 消除bug 優化工作。tesseract目前已作為開源專案發...
Tesseract Ocr文字識別
tesseract的ocr引擎最先由hp實驗室於1985年開始研發,至1995年時已經成為ocr業內最準確的三款識別引擎之一。2005年,tesseract由美國內華達州資訊科技研究所獲得,並求諸於google對tesseract進行改進 消除bug 優化工作。tesseract目前已作為開源專案發...
Tesseract OCR識別中文與訓練字型檔例項
關於中文的識別,效果比較好而且開源的應該就是tesseract ocr了,所以自己親身試用一下,分享到部落格讓有同樣興趣的人少走彎路。一 準備工作 二 識別 1 進入cmd,進入到要識別的的路徑下。2 輸入命令 tesseract 名稱 生成的結果檔案的名稱 字型檔 識別完後會生成result.tx...