训练形状聚类问题



我正在尝试训练tesseract(添加一个新的,只有数字的字体)按照这里发现的指令:http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3

我做了什么:

  1. 创建带有示例文本的PDF,转换为tif,运行tesseract num.dot.exp0.tif num.dot.exp0 batch.nochop makebox digits。然后编辑生成的box文件,修正错误检测
  2. tesseract num.dot.exp0.tif num.dot.exp0 nobatch box.train训练模式下运行tesseract,用unicharset_extractor num.dot.exp0.box提取unicharset
  3. 创建font_properties文件:echo "num.dot.exp0 0 0 0 0 0" > font_properties

到目前为止一切正常,.box和unicharset文件是正确的,num.dot.exp0。生成Tr。

然后我运行shapeclustering -F font_properties -U unicharset num.dot.exp0.tr,得到以下错误:

<>之前阅读num.dot.exp0。tr……*** glibc检测到*** shapeclu群集:双自由或损坏(!prev): 0x098c52e0 ***=======回溯:=========/lib/i386-linux-gnu/libc.so.6 (+ 0 x75ee2) [0 x82eee2]/usr/lib/i386-linux-gnu/libstdc + + .so.6 (_ZdlPv + 0 x1f) [0 x77d51f]/usr/lib/i386-linux-gnu/libstdc + + .so.6 (_ZdaPv + 0 x1b) [0 x77d57b]shapeclustering (_ZN13GenericVectorIiE5clearEv + 0 x8b) [0 x8050949]shapeclustering (_ZN13GenericVectorIiED1Ev + 0 x2b) [0 x805056b]/usr/lib/libtesseract.so.3 (_ZN9tesseract17TrainingSampleSet14SetupFontIdMapEv + 0 x137) [0 x488699]/usr/lib/libtesseract.so.3 (_ZN9tesseract17TrainingSampleSet22OrganizeByFontAndClassEv + 0将)[0 x48823c]/usr/lib/libtesseract.so.3 (_ZN9tesseract13MasterTrainer24ReplaceFragmentedSamplesEv + 0 x1d7) [0 x477ebd]/usr/lib/libtesseract.so.3 (_ZN9tesseract13MasterTrainer15PostLoadCleanupEv + 0开发)x47 [0 x47587b]shapeclustering [0 x804e2b9]shapeclustering(主+ 0 x5f) [0 x804cb13]/lib/i386-linux-gnu/libc.so.6 (__libc_start_main + 0 xf3) [0 x7d24d3]shapeclustering [0 x804ca21](...)00cba000-00cc1000 rw-p 0039c000 08:01 4465015/usr/lib/libtesseract.so.3.0.200cc1000-00d5c000 rw-p 00000000 00:00 000ef8000-00f22000 r-xp 00000000 08:01 4211867/lib/i386-linux-gnu/libm-2.15.so00f22000-00f23000 r——p 00029000 08:01 4211867/lib/i386-linux-gnu/libm-2.15.so00f23000-00f24000 rw-p 0002a000 08:01 4211867/lib/i386-linux-gnu/libm-2.15.so08048000-08056000 r-xp 00000000 08:01 4464615/usr/bin/shapecluster08056000-08057000 r—p 0000d000 08:01 4464615/usr/bin/shapecluster08057000-08058000 rw-p 0000e000 08:01 4464615/usr/bin/shapecluster093c5000-094cf000 rw-p 00000000 00:00 0[堆]B779a000-b77a0000 rw-p 00000000 00:00 0B77b6000-b77ba000 rw-p 00000000 00:00 0Bfb6c000-bfb8d000 rw-p 00000000 00:00 0[堆栈]中止(核心转储)之前

然后创建一个空的shapetable

我做错了什么吗?知道为什么会这样吗?

我正在使用tesseract 3.02

我设法找出了问题所在。我应该用echo "dot 0 0 0 0 0" > font_properties而不是echo "num.dot.exp0 0 0 0 0 0" > font_properties

shapeclu群集在那之后工作正常。它需要font_properties上的真实字体名称,而不是完整的名称(在我的例子中是"dot")。

我遇到了同样的问题,但通过验证font_properties文件中的字体名称找到了解决方案,应该与eng.Imagefile.tr中相同。

echo "NewFont 0 0 0 0 0" > font_properties
shapeclustering -F font_properties -U unicharset eng.Imagefile.tr
mftraining -F font_properties -U unicharset -O eng.unicharset eng.Imagefile.tr

最新更新