“添加”新字体到 Tesseract eng.traineddata
Posted
技术标签:
【中文标题】“添加”新字体到 Tesseract eng.traineddata【英文标题】:"Adding" new fonts to Tesseract eng.traineddata 【发布时间】:2013-04-26 07:50:36 【问题描述】:据我所知,Tesseract 3.x 带有 6 种英文(如果我错了,请纠正我)字体。我需要为更多 5 种字体训练 Tesseract。我只需要大写字母和数字(没有特殊字符或符号)。
我遵循了各种流程,例如: Adding New Fonts to Tesseract 3 OCR Engine
还使用工具来自动化流程,例如 Serak Tesseract Trainer for Tesseract 3.02
为了生成盒子文件,我使用了QT Box Editor
使用上述工具后,我得到eng.traineddata
文件。所有教程都告诉我将此eng.traineddata
文件添加到Tesseract-OCR\tessdata
文件夹,但这样做会替换原来的eng.traineddata
文件。这样做之后,我会丢失 Tesseract 3.x 附带的默认字体吗?
如何添加新字体?我还不清楚。我希望有人可以在这里帮助我。谢谢。
【问题讨论】:
【参考方案1】:应使用不同的名称,例如 eng1.traineddata
。这样您就可以通过指定语言选项-l eng+eng1
将新数据与原始数据一起使用。
【讨论】:
在哪里可以指定语言选项 -l eng+eng1 ? 这听起来可能太懒惰了,但是有没有办法提供一个字体文件作为输入(比如网站)并提供一个训练有素的tessdata
作为输出?
@tipycalFlow jTessBoxEditor 有一个 TIFF/Box 生成器。您可以提供一个字体文件并获得一个包含正确值的框。使用Serak Tesseract Trainer,您可以完成剩下的工作。【参考方案2】:
如果您有不同字体的新训练数据,我认为您的新字体没有字典校正。
要添加新的训练数据,您可以这样做(我在这里使用 php 代码)
// as you new trained data, it must be 3 letter prefix
// what ever 3 letter you want
$languange = "eng+deu";
$settingLanguage = $tesseract -> setLanguage($language) ;
通过查看tesseract.php函数setLanguage()
,可以通过该函数设置语言。
【讨论】:
以上是关于“添加”新字体到 Tesseract eng.traineddata的主要内容,如果未能解决你的问题,请参考以下文章