如何为Tesseract 4.0添加新字体?

时间:2019-05-29 13:48:22

标签: text fonts ocr tesseract text-recognition

我正在制作一个文本识别程序,我想训练我的 Tesseract 4.0 以识别特定的字体(希伯来语)。我该怎么办?

我尝试了“ trainyourtesseract.com”(根本不起作用)和“ jTessBoxEditor”(我不知道如何使其正常工作)。

在此问题上,我希望获得一些帮助。 谢谢。

2 个答案:

答案 0 :(得分:1)

您尝试阅读此链接吗? https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00#tutorial-guide-to-lstmtraining 粗略的方法是,您必须准备自己的语言文件(最重要的是,自己的.trainingtext文件),然后运行tesstrain.sh生成数据集。之后,您可以运行Combine_tessdata从原始希伯来语模型中提取.lstm文件,并将其用作lstmtraining工具中的参数,以使用新字体对原始模型进行微调。

答案 1 :(得分:0)

这里是tesseract自定义训练的shell脚本

N=3 # number of images

#image name => languagename.fontname.expN.filetype

制作盒子文件

for i in `seq 1 $N`
do
tesseract testlan.arial.exp$i.png testlan.arial.exp$i batch.nochop makebox
done

手动编辑框文件后需要完成以下步骤

#Step 02:创建 .tr 文件(合成图像文件和盒子文件)

第 3 步:从 box 文件中提取字符集(此命令的输出是 unicharset 文件)

for i in `seq 1 $N`
do
tesseract testlan.arial.exp$i.png testlan.arial.exp$i box.train
unicharset_extractor  testlan.arial.exp$i.box
done

第 4 步:根据我们的需要创建一个 font_properties 文件。

echo "[fontname] [italic (0 or 1)] [bold (0 or 1)] [monospace (0 or 1)] [serif (0 or 1)] [fraktur (0 or 1)]" > font_properties

echo "arial 0 0 1 0 0" > font_properties

第 5 步:训练数据。

#步骤 6

for i in `seq 1 $N`
do
mftraining -F font_properties -U unicharset -O testlan.unicharset testlan.arial.exp$i.tr
cntraining testlan.arial.exp$i.tr
done

#after step 5 and step 6 shapetable,inttemp,pffmtable,normproto 文件创建

第七步:将四个文件(shapetable,inttemp,pffmtable,normproto)重命名为([langname].shapetable,[langname].inttemp,[langname].pffmtable,[langname].normproto)

 mv inttemp testlan.inttemp
 mv normproto testlan.normproto
 mv pffmtable testlan.pffmtable
 mv shapetable testlan.shapetable

combine_tessdata testlan.

#move testlan.traineddata 到 C:\Program Files\Tesseract-OCR\tessdata