为Tesseract OCR创建训练图像

时间:2012-11-16 10:04:05

标签: ocr tesseract

我正在编写一台用于训练Tesseract OCR图像的生成器。

为Tesseract OCR生成新字体的训练图像时,有哪些最佳值:

  1. DPI
  2. 以磅为单位的字体大小
  3. 字体是否应该消除锯齿
  4. 边界框是否适合:enter image description here或不:enter image description here

3 个答案:

答案 0 :(得分:2)

第二个问题以某种方式回答:http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3#Generate_Training_Images 无需使用多种尺寸进行训练。 10分会做。 (例外情况是非常小的文本。如果要识别x高度小于约15像素的文本,您应该专门训练它或者在尝试识别它们之前缩放图像。)

问题1和3:根据经验,我成功使用了300 dpi图像/非抗锯齿字体。更具体地说,我在培训pdf上使用了以下转换参数,这产生了令人满意的图像:

convert -density 300 -depth 8 [input].pdf -background white -flatten +matte -compress none -monochrome [output].tif

但后来我尝试在Tesseract上添加一个虚线字体,当我使用150 dpi图像时它只能正确检测到字符。所以,我认为没有通用的解决方案,这取决于你想要添加的字体类型。

答案 1 :(得分:1)

我找到了第四个问题的答案 - "边界框是否适合贴合"。

似乎尽可能地拟合矩形会产生更好的结果。

正如@Yaroslav建议的那样,其他12分和300分秒就足够了。我认为抗锯齿更好地关闭。

答案 2 :(得分:1)

tesseract培训的好工具http://vietocr.sourceforge.net/training.html

因为有许多优点所以是好的工具

  1. 字母上的边界框可以通过基于GUI的界面进行编辑
  2. 自动创建所有需要文件
  3. 自动组合所有文件,如freq-dawg,word-dawg,用户词(可以是空文件),Inttemp,Normproto,Pffmtable,Unicharset,DangAmbigs(可以是空文件),shapetable为单console.log("1.05.toPrecision(2) = " + (1.05).toPrecision(2)); // returns "1.1" console.log("1.005.toPrecision(3) = " + (1.005).toPrecision(3)); // returns "1.00", shouldn't it be "1.01"?文件。
  4. 新培训数据可与现有tesseract文件eng.traineddata
  5. 一起使用