基於Tesseract的OCR圖像識別

何爲Tesseract?
Tesseract的OCR引擎最早由HP實驗室於1985年開始研發,至1995年時已經成爲OCR業內最準確的三款識別引擎之一。然而,HP不久便決定放棄OCR業務,Tesseract也今後塵封。數年之後,HP意識到,與其將Tesseract束之高閣,不如貢獻給開源軟件業,讓其重煥新生。在2005年,Tesseract由美國內華達州信息技術研究所得到,並委託Google對其進行改進、優化工做。
Tesseract目前已做爲開源項目發佈在Google Project,它與Leptonica圖片處理庫結合,能夠讀取各類格式的圖像並將它們轉化成超過60種語言的文本,咱們還能夠不斷訓練本身的庫,使圖像轉換文本的能力不斷加強。若是團隊深度須要,還能夠以它爲模板,開發出符合自身需求的OCR引擎。


python

Tesseract基本工做原理:

工具

 

 

 

 

Tesseract安裝教程:
1. tesseract下載地址:https://digi.bib.uni-mannheim.de/tesseract/
2.下載完成後雙擊安裝包,選擇路徑,選擇語言後繼續下一步直到安裝成功
字體

 

 

 

3.配置Tesseract的環境變量
優化

 

 

4.查看安裝結果
在cmd中輸入tesseract –v 有結果以下圖,則說明安裝成功:spa

 

 

 

Tesseract使用教程:

.net

bat調用Tesseract 在cmd中進入圖片所在目錄,輸入  tesseract 圖片名稱  結果文檔名稱 如: tesseract 0.png result.txt   ,識別0.png的結果保存爲result.txt文檔。命令行

 

 

 

python調用Tesseract
1.pip安裝pytesseract cmd輸入指令 pip install pytesseract  
調用方法:
text = pytesseract.image_to_string(image)3d

 

 

 

7.cmd運行指令生成字符特徵集(tr)
 tesseract num.font.exp0.tif num.font.exp0 nobatch box.train

8.cmd運行指令生成字符集(unicharset)
unicharset_extractor num.font.exp0.box

9. cmd運行指令生成字符特徵(shapetable、inttemp、pffmtable、 normproto)
shapeclustering -F font_properties.txt -U unicharset num.font.exp0.tr      
mftraining -F font_properties.txt -U unicharset -O num.unicharset  num.font.exp0.tr
cntraining num.font.exp0.tr
10.重命名,結果合併
把目錄下的字符集 unicharset、圖形原型文件inttemp、字符特徵數文件pffmtable、
字符形狀表shapetable、字符形狀正常化特徵文件normproto
這五個文件的文件名前面都加上「num.」執行combine_tessdata num,生成num.traineddata
11.結果導入
把num.traineddata放到tesseract目錄下的tessdata目錄下
orm

 

 



 

 1.下載工具jTessBoxEditor 並解壓
網址: https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/ 
blog

 

 

 

2.獲取訓練數據:

 

 

 

3.合併樣本圖像。
運行jTessBoxEditor     
點擊Tools--->Merge TIFF。   
選擇樣本圖像合併成num.font.exp0.tif文件。   

 

 

 

4.打開命令行執行命令生成box文件: tesseract num.font.exp0.tif num.font.exp0 batch.nochop makebox   生成的BOX文件爲num.font.exp0.box,BOX文件爲Tessercat識別出的文字和其座標。
Make Box File的命令格式爲:
tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox 
其中lang爲語言名稱,fontname爲字體名稱,num爲序號,能夠隨便定義。
5.文字校訂。
運行jTessBoxEditor    
打開num.font.exp0.tif(必須將上一步生成的.box和.tif樣本文件放在同一目錄)    手動對每張圖片中識別錯誤的字符進行校訂。校訂完成後保存。

 

 

 

 

 

 

 

6.定義字體特徵文件。Tesseract-OCR3.01以上的版本在訓練以前須要在樣本圖片(tif)所在目錄下建立一個名稱爲font_properties的字體特徵文件。font_properties不含有BOM頭,文件內容格式以下: <fontname> <italic> <bold> <fixed> <serif> <fraktur>  fontname爲字體名稱,必須與[lang].[fontname].exp[num].box中的名稱保持一致。<italic> 、<bold> 、<fixed> 、<serif>、 <fraktur>的取值爲1或0,表示字體是否具備這些屬性。這裏用記事本打開font_properties ,輸入如下下內容: num 0 0 0 0 0 

相關文章
相關標籤/搜索