基於Tesseract的OCR圖像識別


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


Tesseract基本工作原理:

 

 

 

 

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

 

 

 

3.配置Tesseract的環境變量

 

 

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

 

 

 

Tesseract使用教程:

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)

 

 

 

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目錄下

 

 



 

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

 

 

 

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 



 

 

 

 

 

 

 



 

 

 

 

 

 


免責聲明!

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



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