python使用tesseract-ocr完成驗證碼識別(模型訓練和使用部分)


一、Tesseract訓練

大體流程為:安裝jTessBoxEditor -> 獲取樣本文件 -> Merge樣本文件 –> 生成BOX文件 -> 定義字符配置文件 -> 字符矯正 -> 執行批處理文件 -> 將生成的traineddata放入tessdata中

1、用jTessBoxEditor把要訓練樣本圖片文件合並成tif文件(樣本圖片一定要為有效的格式圖片)

       運行jTessBoxEditor程序,界面如下: 
這里寫圖片描述

點擊頂欄的Tools選項,選擇Merge TIFF..   進入你要訓練的樣本圖片所在的目錄,點擊Ctrl+Alt+A,選擇所有圖片點擊打開: 
這里寫圖片描述

然后保存文件名到指定目錄,我這里保存的文件名為: langyp.font.exp0.tif

這里寫圖片描述

2、生成Box文件

 打開cmd,到你langyp.font.exp0.tif文件所在目錄,執行:

  tesseract langyp.font.exp0.tif langyp.font.exp0 batch.nochop makebox

這里寫圖片描述

   結果生成了langyp.font.exp0.box文件 

3、 對樣本圖片用jTessBoxEditor工具進行矯正

點擊jTessBoxEditor工具的Box Editor選項,點擊下方的open選項,打開剛剛生成的langyp.font.exp0.tif文件,結果如下: 
這里寫圖片描述

右側為對應的Box文件數據,如果char的字符和當前的樣本圖片一致時就進行矯正,修改char里的字符,然后進行save,這樣就矯正了,進入下張樣本圖片時,同樣,矯正后點擊save,當所有樣本圖片都矯正了,這一步也就完成了

4、生成font_properties文件(該文件沒有后綴名)
 
在命令行執行:echo font 0 0 0 0 0 >font_properties
 結果生成了font_properties文件 
這里寫圖片描述
 內容為字體名font,后面帶5個0,分別代表字體的粗體、斜體等屬性,這里全部是0

5、生成.tr訓練文件
在命令行執行: tesseract langyp.font.exp0.tif langyp.font.exp0 -l eng -psm 7 nobatch box.train

這里寫圖片描述

6、生成字符集文件
在命令行執行 : unicharset_extractor langyp.font.exp0.box
這里寫圖片描述

結果生成了unicharset文件

7、生成shape文件
在命令行執行 : shapeclustering -F font_properties -U unicharset -O langyp.unicharset langyp.font.exp0.tr
這里寫圖片描述
結果生成了shapetable文件和langyp.unicharset文件

8、生成聚集字符特征文件
在命令行執行: mftraining -F font_properties -U unicharset -O langyp.unicharset langyp.font.exp0.tr
這里寫圖片描述

結果生成了pffmtable,inttemp,unicharset文件

9、生成字符正常化特征文件
在命令行執行: cntraining langyp.font.exp0.tr
這里寫圖片描述

結果生成了normproto文件

10、把h,i步驟生成的文件用rename命令進行更名
在命令行執行:  
**rename normproto fontyp.normproto  
rename inttemp fontyp.inttemp  
rename pffmtable fontyp.pffmtable  
rename unicharset fontyp.unicharset  
rename shapetable fontyp.shapetable** 
這里寫圖片描述

11、合並訓練文件
在命令行執行: combine_tessdata fontyp
這里寫圖片描述

12、將fontyp.traineddata文件拷貝至Tesseract-OCR文件夾里的tessdata語言包文件夾里

windows下面:

 linux下面:

輸入命令查找安裝文件夾:whereis tesseract

然后拷貝到圖上的地址:

 

二、Python驗證碼識別代碼


免責聲明!

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



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