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.

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