OCR2:tesseract字库训练

摘要:
要生成box文件,请在的目录中打开命令行程序。在上一步中生成的tif文件,并打开。步骤2中生成的tif文件;生成font_Properties文件(该文件没有后缀)。“执行命令”将在当前directory_properties文件中生成字体。在当前文件夹中生成字体_也可以在此文件夹中手动创建属性文件以生成.tr训练文件以生成demo.test.exp0.tr file“生成字符集文件以执行命令:

由于tesseract的中文语言包“chi_sim”对中文字体或者环境比较复杂的图片,识别正确率不高,因此需要针对特定情况用自己的样本进行训练,提高识别率,通过训练,也可以形成自己的语言库。

工具:

第一步:合成图片集


  • 打开jTessBoxEditor,选择 Tools->Merge TIFF,进入训练样本所在文件夹,选中要参与训练的样本图片:进行训练的样本图片数量越多越好
  • 点击 “打开” 后弹出保存对话框,选择保存在当前路径下,文件命名为: “demo.test.exp0.tif” ,格式只有一种 “TIFF” 可选。

    OCR2:tesseract字库训练第1张
    • tif文面命名格式:[lang].[fontname].exp[num].tif
    • lang:是语言,fontname:是字体,num:为自定义数字。
    • 比如我们要训练自定义字库 demo,字体名 test,那么我们把图片文件命名为 demo.test.exp0.tif

第二步:生成box文件


  • 在上一步骤生成的 .tif 文件所在目录下打开命令行程序,执行下面命令,执行完之后会生成 .box文件, .BOX文件为Tessercat识别出的文字和其坐标
  • 命令:tesseract demo.test.exp0.tif demo.test.exp0 -l chi_sim -psm 7 batch.nochop makebox
  • OCR2:tesseract字库训练第2张

第三步:矫正.box文件的错误


  • .box文件记录了每个字符在图片上的位置和识别出的内容,训练前需要使用jTessBoxEditor调整字符的位置和内容。(注:图片dpi > 300 时效果更好)
  • 打开jTessBoxEditor点击Box Editor ->Open,打开步骤2中生成的 .tif,会自动关联到 .box 文件,这两文件要求在同一目录下。调整完点击“save”保存修改。
  • OCR2:tesseract字库训练第3张

第四步:生成font_properties文件(该文件没有后缀名)


  • 执行命令,会在当前目录生成font_properties文件,命令:echo test 0 0 0 0 0 >font_properties
  • 执行完成之后,在当前文件夹下生成font_properties文件
  • 也可以手动在该文件夹下建立一个名为 “font_properties” 的文件,这个文件没有后缀名称,输入内容 “font 0 0 0 0 0” , 表示字体 font 的粗体、倾斜等共计5个属性全都设置为0。注意 :这里输入的 “font” 名称必须与 “demo.test.exp0.box” 中两个点号之间的 “test” 名称保持一致

  • OCR2:tesseract字库训练第4张

第五步:生成.tr训练文件


  • 执行生成 demo.test.exp0.tr 文件,命令:tesseract demo.test.exp0.tif demo.test.exp0 nobatch box.train
  • OCR2:tesseract字库训练第5张

第六步:生成字符集文件


  • 执行命令,生成一个名为“unicharset”的文件;命令:unicharset_extractor demo.test.exp0.box
  • OCR2:tesseract字库训练第6张

第七步:生成shape文件


  • 执行命令,生成 shapetable 和 demo.unicharset 两个文件。命令:shapeclustering -F font_properties -U unicharset -O demo.unicharset demo.test.exp0.tr
  • OCR2:tesseract字库训练第7张

第八步:生成聚字符特征文件


  • 执行命令,会生成 inttemp、pffmtable、shapetable和demo.unicharset四个文件。命令:mftraining -F font_properties -U unicharset -O demo.unicharset demo.test.exp0.tr
  • OCR2:tesseract字库训练第8张

第九步:生成字符正常化特征文件


  • 执行命令,生成 normproto 文件。命令:cntraining demo.test.exp0.tr
  • OCR2:tesseract字库训练第9张

第十步:文件重命名


  • 重新命名inttemp、pffmtable、shapetable和normproto这四个文件的名字为[lang].xxx。这里修改为demo.inttemp、demo.pffmtable、demo.shapetable和demo.normproto
rename normproto demo.normproto
rename inttemp demo.inttemp
rename pffmtable demo.pffmtable
rename shapetable demo.shapetable
rename unicharset demo.unicharset

第十一步:合并训练文件


  • 执行下面命令,会生成demo.traineddata文件。命令:combine_tessdata demo.
  • 将生成的“demo.traineddata”语言包文件复制到Tesseract-OCR 安装目录下的tessdata文件夹中,就可以使用训练生成的语言包进行图像文字识别了。 
  • OCR2:tesseract字库训练第10张

测试


import pytesseract
from PIL import Image as img


class Languages:
    CHS = 'chi_sim'
    CHT = 'chi_tra'
    ENG = 'eng'
    DM = 'demo'
    

text = pytesseract.image_to_string(img.open('demo.jpg'), lang=Languages.DM)
print(text)
  •  OCR2:tesseract字库训练第11张

参考资料:


免责声明:文章转载自《OCR2:tesseract字库训练》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇R语言-回归分析笔记WPF 中托管 UWP下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[小技巧]window10删除此电脑左侧栏中的非磁盘文件夹

一、问题说明    在初始的 此电脑 中,有置顶的文件夹栏,包含图片、视频、下载等多个文件夹 二、解决方式    通过 WIN+R 键,输入 regedit 后确认,打开注册表。定位到  HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerFolderDescriptions  中...

远程桌面连接会话超时或者被限制改组策略也没用的时候就这么解决

今天管理一台服务器,远程连接时帐号密码都输入完后,点连接后弹出一个 “终端服务器超出最大允许连接”。上网查了一下归结一下出现这 种情况的原因和解决办法。 原因:用 远程桌面链接登录到终端服务器时经常会遇到“终端服务器超出最大允许链接数”诸如此类错误导致无法正常登录终端服务器,引起 该问题的原因在于终端服务的缺 省链接数为2个链接,并且当登录远程桌面后如...

个性化WinPE封装方法 ----最后实战“制作WinPE3.0图文教程”

经过前几讲,主要目的就是准备一些“原材料”,熟悉一些“命令”,实际上是“战前演练准备”。下面要进入“实战状态”,成败在此一举。 一、通过前面的准备,主要准备了以下材料1.一张桌面背景图片(1024X768的BMP格式图片)2.Programs文件夹(含有BsExplorer以及需要集成的程序)3.BsExplorer中的bs_desktop.ini、bs_...

二、Maven包的管理与更新

一、Maven中由pom.xml文件进行包管理,在我们创建的项目中找到这个文件并打开 project:文件中顶级元素 modelVersion指明POM使用的对象模型的版本。这个值很少改动 groupId:指明创建项目的组织或小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.pl...

go 安装

推荐安装包安装,只需要6步 wget https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gztar zxvf go1.7.4.linux-amd64.tar.gz vim /etc/profile 文件最下面添加两行代码   export GOROOT=/usr/local/go...

Android Studio 插件简单介绍

现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行)。使用好Android Studio插件能大量的减少我们的工作量。 1.GsonFormat快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。 使用方法:快捷键A...