Tesseract-OCR識別中文與訓練字庫實例

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/nobmr/article/details/78888745

關於中文識別,效果不錯並且開源的應該就是Tesseract-OCR了,在Mac下試用了一下,參考了網絡上其他人的一些資源,在這裏分享一下。

Quick Start

準備工作

  1. 下載Tesseract-OCR引擎,到github下查看安裝過程,Tesseract-OCR WebSize
  2. 下載chi_sim.traindata字庫,沒有這個默認不能識別中文。
  3. 下載JTessBoxEditor,用來訓練字庫。

開始識別

進入要識別的目錄下,鍵入命令:

tesseract <picture_file> <output_file_name> -l chi_sim

如果源圖是電腦上的生成的,如HTML / PS等在這裏效果會不錯,但是如果你的源圖是拍攝所得,那麼效果就不太理想了,因此在這裏自己訓練字庫文件。

訓練

  1. 將原圖轉換成tif格式的圖片文件,用於後面生成box文件。

    tif文件的命名格式 ..exp.tif

    eg: fiveplus.normal.exp0.tif

    • lang: 語言
    • fontname: 字體(normal即可)
    • num: 下標
  2. 生成box文件

    tesseract fiveplus.normal.exp0.jpg fiveplus.normal.exp0 -l chi_sim batch.nochop makebox

    box文件與tif需要在相同目錄下。

  3. 打開JTessBoxEditor糾正錯誤,並訓練

    打開tif文件,開始矯正數據,包括x, y, width, height, char

  4. 開始訓練

    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

  5. 開始測試結果

    tesseract <picture_file> <output_file> -l normal

結束

自己訓練過後的字庫識別效果會好很多,之後就是怎麼把多個字庫合併成一個字庫了,因爲不可能一次訓練完所有的圖片文字的,字庫文件是一個疊加過程,在線上環境中我們只需要不停的更新這個字庫文件就好了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章