• [转]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)
  • 相关阅读:
    依赖注入与控制反转
    Java NIO(三)
    Java NIO(二)
    Java NIO(一)
    Jetty 的基本架构
    spring IOC
    java代理
    spring AOP
    linux 添加用户并授权可以操作文件夹
    Centos6.5 yum 安装jdk1.8
  • 原文地址:https://www.cnblogs.com/Crysaty/p/6296768.html
Copyright © 2020-2023  润新知