UI自動化驗證碼識別(1)訓練樣本以及如何避免入坑

  1. 下載工具Tesseract-OCR

  2. 配置環境變量  C:\Tesseract-OCR  新建一個TESSDATA_PREFIX變量名,變量值還是我的安裝路徑C:\Tesseract-OCR\tessdata這是將語言字庫文件夾添加到變量中
  3. 使用

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

  4. 下載jTessBoxEditor(運行環境爲java虛擬機)

  5. 識別一張圖片,測試下好不好使。                                                                                                                                                tesseract 路徑 output -l eng -psm 7                                                                                                                                          type output.txt

  6. 訓練樣本

          6.1.用jTessBoxEditor把要訓練樣本圖片文件合併成tif文件(樣本圖片一定要爲有效的格式圖片)

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

         6.3.然後保存文件名到指定目錄,我這裏保存的文件名爲: langyp.font.exp0.tif

         6.4.生成Box文件:打開cmd,到你langyp.font.exp0.tif文件所在目錄,執行tesseract langyp.font.exp0.tif langyp.font.exp0                            - l eng -psm 7 batch.nochop makebox 命令,生成了langyp.font.exp0.box文件

         6.5.對樣本圖片用jTessBoxEditor工具進行矯正:點擊jTessBoxEditor工具的Box Editor選項,點擊下方的open選項,打開剛剛           生成的langyp.font.exp0.tif文件

         6.6.生成font_properties文件(該文件沒有後綴名) :

               tesseract langyp.font.exp0.tif langyp.font.exp0 -l eng -psm 7                           nobatch box.train

         6.7.生成字符集文件:

               unicharset_extractor langyp.font.exp0.box

         6.8.生成shape文件: 

               shapeclustering -F font_properties -U unicharset -O langyp.unicharset langyp.font.exp0.tr

         6.9.生成聚集字符特徵文件:  

               cntraining langyp.font.exp0.tr

         6.10.把h,i步驟生成的文件用rename命令進行更名:

                  rename normproto fontyp.normproto
                  rename inttemp fontyp.inttemp
                  rename pffmtable fontyp.pffmtable
                  rename unicharset fontyp.unicharset
                  rename shapetable fontyp.shapetable
         6.10. 合併訓練文件:

               combine_tessdata fontyp.

         6.11. 將fontyp.traineddata文件拷貝至Tesseract-OCR文件夾裏的tessdata語言包文件夾裏

         6.12.   執行命令: 

                  tesseract b.jpg output -l fontyp -psm 7(fontyp爲訓練的語言包文件)
                  type output.txt

         注意:代碼引入pytesseract會報錯

         安裝Pillow,命令pip install Pillow,安裝完畢會在Python文件夾下Lib\site-packages\pytesseract這個文件夾,裏面有                   pytesseract.py文件

         確保,確保,確保 安裝了 Tesseract-OCR 這個好像沒有64、32的區別

       進入pytesseract.py修改下tesseract_cmd="/路徑"  ,

       就是這個/很難受,搞了好久才弄明白是/引起的錯誤。

         命令:

         tesseract langyp.font.exp0.tif langyp.font.exp0 -l eng -psm 7 batch.nochop makebox

         echo font 0 0 0 0 0 >font_properties
         tesseract langyp.font.exp0.tif langyp.font.exp0 -l eng -psm 7 nobatch box.train
         unicharset_extractor langyp.font.exp0.box
         shapeclustering -F font_properties -U unicharset -O langyp.unicharset langyp.font.exp0.tr
         mftraining -F font_properties -U unicharset -O langyp.unicharset langyp.font.exp0.tr
         cntraining langyp.font.exp0.tr

         rename normproto fontyp.normproto
         rename inttemp fontyp.inttemp
         rename pffmtable fontyp.pffmtable
         rename unicharset fontyp.unicharset
         rename shapetable fontyp.shapetable

         combine_tessdata fontyp.

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