• 【Tesseract】Tesseract 的训练流程


    本文由@ray 出品,转载请注明出处。  
    文章链接: http://www.cnblogs.com/wolfray/p/5547267.html


    在泰迪杯A题中,我刚刚接触了Tesseact,其中训练字库中遇到了较多的问题。所以在此记录一下,也当做一个笔记,省得以后忘记。

    为了方便 ,将tif命名格式设为[lang].[fontname].exp[num].tif
    lang是语言
    fontname是字体
    比如我们要训练自定义字库 ec 字体名:unfont
    那么我们把tif文件重命名 ec.ufont.exp0.tif

    生成 .box文件
    tesseract ec.ufont.exp0.tif ec.ufont.exp0 batch.nochop makebox
    使用训练过的字库生成.box文件
    tesseract ec.ufont.exp0.tif ec.ufont.exp0 -l ufont batch.nochop makebox


    1. 产生字符特征文件 .tr

    tesseract ec.ufont.exp0.tif ec.ufont.exp0 nobatch box.train
    这一步将会产生 ec.ufont.exp0.tr文件和一个 ec.ufont.exp0.txt文件,txt文件貌似没什么用,看看而以。

    2.计算字符集(生成unicharset文件)
    unicharset_extractor ec.ufont.exp0.box

    3.定义字体特征文件
    —Tesseract-OCR3.01以上的版本在训练之前需要创建一个名称为font_properties.txt的字体特征文件
    手工建立一个文件font_properties.txt
    内容如:ufont 0 0 0 0 0
    注意:这里 必须与训练名中的名称保持一致,填入下面内容 ,这里全取值为0,表示字体不是粗体、斜体等等。

    4.聚集字符特征
    1) shapeclustering -F font_properties.txt -U unicharset ec.ufont.exp0.tr
    注意:如果font_properties不加扩展名.txt,可能会报错
    2) mftraining -F font_properties.txt -U unicharset -O ufont.unicharset ec.ufont.exp0.tr
    使用上一步产生的字符集文件unicharset,来生成当前新语言的字符集文件ec.unicharset。同时还会产生图形原型文件inttemp和每个字符所对应的字符
    特征数文件pffmtable。最重要的就是这个inttemp文件了,他包含了所有需要产生的字的图形原型。
    3)cntraining ec.ufont.exp0.tr
    这一步产生字符形状正常化特征文件normproto。
    shapeclustering 操作不是必须的,若没有进行此步,在mftraining的时候 会自动进行。
    5.改名字
    把目录下的unicharset、inttemp、pffmtable、shapetable、normproto这五个文件前面都加上ufont.

    6.执行combine_tessdata ufont.
    然后把ufont.traineddata放到tessdata目录

    7.测试
    必须确定的是第type 1、3、4、5的数据不是-1,那么一个新的字典就算生成了。
    tesseract ec.ufont.exp0.tif papapa -l ufont

    tesseract也提出,通过使用多个语言训练库联合使用。如此,新的字体训练库也可以与原有的数据训练库联合使用。如参数 -l 之后 tesseract input.tif output -l eng+newfont。

    cntraining和mftraining只能最多采用32个.tr文件,因此,对于相同的字体,你必须从多种语言中,以字体独立的方式,将所有的文件cat到一起来让32种语言结合在一起。cntraining/mftraining以及unicharset_extractor命令行工具必须各自由给定的.tr和.box文件,以相同的顺序,为不同的字体进行不同的过滤。可以提供一个程序来完成以上的事情,并在字符集表中挑出相同字符集。这样会将事情更简单些。
    写批处理bat命令的时候,要灵活使用excel里面的填充功能。

  • 相关阅读:
    Webservice实践(七)CXF 与Spring结合+tomcat发布
    slave have equal MySQL Server UUIDs原因及解决
    VM+CentOS+hadoop2.7搭建hadoop完全分布式集群
    Ubuntu下MySQL主从同步配置
    解决Ubuntu14.04下vi编辑器不能使用方向键和退格键问题
    Ubuntu解压缩zip,tar,tar.gz,tar.bz2
    sersync+rsync原理及部署
    mysqldump备份成压缩包
    linux下如何实现mysql数据库每天自动备份定时备份
    ubuntu mysql 数据库备份以及恢复[命令行]
  • 原文地址:https://www.cnblogs.com/wolfray/p/5547267.html
Copyright © 2020-2023  润新知