版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/nobmr/article/details/78888745
關於中文識別,效果不錯並且開源的應該就是Tesseract-OCR了,在Mac下試用了一下,參考了網絡上其他人的一些資源,在這裏分享一下。
Quick Start
準備工作
- 下載Tesseract-OCR引擎,到github下查看安裝過程,Tesseract-OCR WebSize
- 下載chi_sim.traindata字庫,沒有這個默認不能識別中文。
- 下載JTessBoxEditor,用來訓練字庫。
開始識別
進入要識別的目錄下,鍵入命令:
tesseract <picture_file> <output_file_name> -l chi_sim
如果源圖是電腦上的生成的,如HTML / PS等在這裏效果會不錯,但是如果你的源圖是拍攝所得,那麼效果就不太理想了,因此在這裏自己訓練字庫文件。
訓練
將原圖轉換成tif格式的圖片文件,用於後面生成box文件。
tif文件的命名格式 ..exp.tif
eg: fiveplus.normal.exp0.tif
- lang: 語言
- fontname: 字體(normal即可)
- num: 下標
生成box文件
tesseract fiveplus.normal.exp0.jpg fiveplus.normal.exp0 -l chi_sim batch.nochop makebox
box文件與tif需要在相同目錄下。
打開JTessBoxEditor糾正錯誤,並訓練
打開tif文件,開始矯正數據,包括x, y, width, height, char
開始訓練
tesseract fiveplus.normal.exp0.jpg fiveplus.normal.exp0 nobatch box.train unicharset_extractor fiveplus.normal.exp0.box
新建一個font_properties文件,寫入 normal 0 0 0 0 0 表示默認字體。
繼續運行:
shapeclustering -F font_properties -U unicharset fiveplus.normal.exp0.tr mftraining -F font_properties -U unicharset -O unicharset fiveplus.normal.exp0.tr cntraining fiveplus.normal.exp0.tr
然後我們合併生成的5個文件:
combine_tessdata normal.
得到文件:normal.traineddata
開始測試結果
tesseract <picture_file> <output_file> -l normal
結束
自己訓練過後的字庫識別效果會好很多,之後就是怎麼把多個字庫合併成一個字庫了,因爲不可能一次訓練完所有的圖片文字的,字庫文件是一個疊加過程,在線上環境中我們只需要不停的更新這個字庫文件就好了。