zoukankan      html  css  js  c++  java
  • [转]tesseract OCR训练新字体对图片的预处理和要求

    tesseract OCR训练新字体对图片的预处理和要求

     
    原文地址:http://blog.csdn.net/viewcode/article/details/7849448

    同tesseract OCR识别对图片有要求一样,在训练新的字符集或新的字体时,对图片也有一定要求,符合要求的图片,能大大提高训练的效率。

    在图像处理方面,去除噪声,使训练的字符图片尽量连贯、清晰。

    其他方面,通常的要求如下:

    1. 在一幅图片内,字体统一,决不能将多种字体混合出现在一幅训练图片内;如果不是通过扫描文本获取的字符图片,这个条件很容易被忽视。

    2.  理想条件下,同种字体的字符图片集中到一幅大的训练图片中,在同一页内;

    3. 要保留一定的字符间距与行间距;

    4. 字符高度(大小),只要满足高度最小条件即可,对于小写字符x,其高度要至少大于10个像素,一般统一采用一种大小即可,tesseract engine默认的training数据集也是一种大小;

    5. 对于非字母字符,如!@#$%^&(),.{}<>/?,不要集中在一起出现,原因是这样不利于tesseract找出 文本行基线baseline,不利于文本高度及大小的检测,baseline检测是tesseract engine的第一步;

    6. 一般每个字符需要10个样本,高频常见字符至少20个样本,不常见字符需要5个样本;

    7. 对于同种字体,多页训练图片,可以在训练中,件用相同的方式合并tr文件和box文件,两类文件内的字符次序要相同,利于提高训练效果。

    在获取训练字符图片方面,不一定非要从待识别图片中收集,可以利用word字符集找到对应字体,打印,扫描,获取训练图片,简单、方便。这个根据实际情况来应用。

    tesseract中有这样一句话:

    but note that there is no incremental training mode that allows you to add new training data to existing sets. 

    大意是,没有增量训练的方式,把新的训练数据加入现有的数据集。

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

    查看tesseract 3.01的源码,目前没有处理多语言的状况。

    而在tesseract 3.02版本已提供了 新增字体库 联合识别 的功能,不过写此文时,tesseract 3.02只有 开发的版本,并没有release。可以获取源码,自己编译,按照3.01的方式进行设置,按照。

    在tesseract 3.02源码文档trunk/doc/tesseract.1中

           -l lang
               The language to use. If none is specified, English is assumed.
               Multiple languages may be specified, separated by plus characters.
               Tesseract uses 3-character ISO 639-2 language codes. (See
               LANGUAGES)
  • 相关阅读:
    HeadFirst Ruby 第七章总结 references
    《HTTP 权威指南》笔记:第三章 HTTP 报文
    HTTP 权威指南 第二章 URL 与资源
    HeadFIrst Ruby 第七章总结 hashes
    HeadFIrst Ruby 第六章总结 block return values
    面向对象的面试题
    属性,类方法,静态方法,Python2和3方法
    类的抽象类接口类,多态封装
    类的继承
    面向对象空间和组合
  • 原文地址:https://www.cnblogs.com/Crysaty/p/6296768.html
Copyright © 2011-2022 走看看