Win10 環境安裝tesseract-ocr 4.00並配置環境變量


 

Tesseract-OCR的Training簡明教程

https://blog.csdn.net/blueheart20/article/details/53207176

 

一、安裝:

選擇對應版本,https://digi.bib.uni-mannheim.de/tesseract/

1:下載安裝包

根據https://github.com/tesseract-ocr/tesseract/wiki,我找到非官方的安裝包,好像我只看到64位的安裝包http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe,下載后直接安裝即可,但是要記得你的安裝目錄,我們等會配置環境變量要用。

如果不是做英文的圖文識別,還需要下載其他語言的識別包https://github.com/tesseract-ocr/tesseract/wiki/Data-Files。

簡體字識別包:https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/chi_sim.traineddata

繁體字識別包:https://github.com/tesseract-ocr/tessdata/raw/4.0/chi_tra.traineddata

2:安裝

直接執行下載好的tesseract-ocr-setup-4.00.00dev.exe,下一步、下一步安裝。

3:配置環境變量

打開命令終端,輸入:tesseract -v,可以看到版本信息

到這里,我們就算安裝完成了,但是,我們的系統還是無法識別中文的,我們要去下載簡體漢字、繁體漢字語言包(上文給了地址了),語言包是放在 tessdata文件下即可。

 

問題解決:

在windows下安裝成功之后,進行tesseract的操作,碰到如下錯誤信息: E:\testdir>tesseract test.png test1 -l eng Error opening data file \Program Files (x86)\Tesseract-OCR\tessdata/eng.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory. Failed loading language 'eng' Tesseract couldn't load any languages! Could not initialize tesseract.    錯誤信息的關鍵詞是tesseract_prefix的環境變量設置。    

解決辦法:  找到testData所在的目錄,默認情況下是在tesseract安裝的目錄,在環境變量中設置TESSDATA_PREFIX的環境變量為testdata所在的目錄即可。

增加一個TESSDATA_PREFIX變量名,變量值還是我的安裝路徑C:\Program Files (x86)\Tesseract-OCR;

重新運行命令即可正常使用。  

參考:https://blog.csdn.net/blueheart20/article/details/53207176?utm_source=copy

 

 

二、識別

1、進入cmd,進入到要識別的圖片的路徑下。

2、輸入命令

tesseract 圖片名稱 生成的結果文件的名稱 字庫

例如:

tesseract test.jpg result -l chi_sim

識別完后會生成result.txt文件

當然啦效果不太理想。所以我們要訓練自己的字庫。

 

 

三、訓練

1、將圖片轉換成tif格式,用於后面生成box文件。可以通過畫圖,然后另存為tif即可。

更改圖片名字,這個是有要求的=。=

tif文面命名格式[lang].[fontname].exp[num].tif
lang是語言 fontname是字體 
比如我們要訓練自定義字庫 mjorcen字體名normal
那么我們把圖片文件重命名 mjorcen.normal.exp0.jpg在轉tif。

 

2、生成box文件。

1
tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l chi_sim batch.nochop makebox

box文件和對應的tif一定要在相同的目錄下,不然后面打不開。

 

3、打開jTessBoxEditor矯正錯誤並訓練

打開train.bat

找到tif圖,打開,並校正。

問題:

最初在jTessBoxEditor中,所有中文字體都顯示亂碼(方框),只需要的設置中,將字體修改成【宋體】就沒問題了 。

 

 

4、訓練。

只要在命令行輸入命令即可。

1
tesseract  mjorcen.normal.exp0.jpg mjorcen.normal.exp0  nobatch box.train
1
unicharset_extractor mjorcen.normal.exp0.box

 

在這我明明已經矯正好了,但是還是有1個字符不能識別出來,報的錯跟實際上完全沒有相關性,不知道是不是bug,到后面的結果就是“園”字沒有識別出來。

先不管,畢竟只有一個樣本。

 

新建一個font_properties文件

里面內容寫入 normal 0 0 0 0 0 表示默認普通字體

 

繼續敲命令

1
2
3
4
5
6
7
8
9
shapeclustering -F font_properties -U unicharset mjorcen.normal.exp0.tr
 
 
 
mftraining -F font_properties -U unicharset -O unicharset mjorcen.normal.exp0.tr
 
 
 
cntraining mjorcen.normal.exp0.tr

 

最后會生成五個文件,把目錄下的unicharset、inttemp、pffmtable、shapetable、normproto這五個文件前面都加上normal.

如圖:

 

命令行輸入,合並五個文件:

1
combine_tessdata normal.

得到訓練好的字庫。

 

四、測試

1、把 normal.traineddata 復制到Tesseract-OCR 安裝目錄下的tessdata文件夾中

 

2、識別命令:

1
tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l normal

 

3、效果

 

對比:

 

 總結:

 jTessBoxEditor 是正常可用的,在校正訓練的時候,文本框的位置、大小和識別的文字,都可以通過 jTessBoxEditor 來校正。

不能對位置進行改變。這樣對於訓練來說很難得到比較好的分割文字,會產生不好的影響。

 

參考:http://www.cnblogs.com/wzben/p/5930538.html

http://www.cnblogs.com/jianqingwang/p/6978724.html

https://blog.csdn.net/xiaochunyong/article/details/7193744 

https://www.cnblogs.com/zhongtang/p/5555950.html  也不錯


免責聲明!

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



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