将新字体添加到Tesseract eng.traineddata

14
据我所知,Tesseract 3.x 自带6种英文字体(如果我错了请指出)。我需要为更多5种字体训练Tesseract。我只需要大写字母和数字(没有特殊字符或符号)。
我尝试了各种方法,例如: 通过添加新字体到 Tesseract 3 OCR 引擎, 以及使用自动化工具,如Serak Tesseract Trainer for Tesseract 3.02
我使用QT Box Editor生成框文件。 使用上述工具后,我获得了eng.traineddata文件。所有教程都告诉我将此eng.traineddata文件添加到 Tesseract-OCR\tessdata 文件夹中,但这样做会替换原始的 eng.traineddata 文件。这样做后,我是否会失去 Tesseract 3.x 自带的默认字体?
我如何添加新字体?对我来说还不清楚。我希望有人能在这里帮助我。谢谢。
2个回答

18

建议使用不同的名称,例如eng1.traineddata。这样,您可以通过指定语言选项-l eng+eng1来将新数据与原始数据一起使用。


1
我在哪里可以指定语言选项“-l eng+eng1”? - marcAntoine
1
这可能听起来有些懒,但是否有一种方法可以提供一个字体文件作为输入(比如网站),并提供一个经过训练的tessdata作为输出? - tipycalFlow
@tipycalFlow jTessBoxEditor具有TIFF/Box生成器。您可以提供字体文件并获得正确值的框。使用Serak Tesseract Trainer,您可以完成其余部分。 - Alexander Taubenkorb

0
如果您有不同字体的新训练数据,我认为您的新字体没有字典校正。
要添加新的训练数据,您可以按照以下步骤操作(此处使用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(),您可以使用该函数设置语言。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接