【问题标题】:Training tesseract - shapeclustering issue训练 tesseract - shapeclustering 问题
【发布时间】:2013-05-04 12:39:04
【问题描述】:

我正在尝试按照此处找到的说明训练 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:tesseract num.dot.exp0.tif num.dot.exp0 nobatch box.train 并使用 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 *** shapeclustering:双重释放或损坏(!prev):0x098c52e0 *** ======= 回溯:========= /lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0x82eee2] /usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0x77d51f] /usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdaPv+0x1b)[0x77d57b] shapeclustering(_ZN13GenericVectorIiE5clearEv+0x8b)[0x8050949] shapeclustering(_ZN13GenericVectorIiED1Ev+0x2b)[0x805056b] /usr/lib/libtesseract.so.3(_ZN9tesseract17TrainingSampleSet14SetupFontIdMapEv+0x137)[0x488699] /usr/lib/libtesseract.so.3(_ZN9tesseract17TrainingSampleSet22OrganizeByFontAndClassEv+0x22)[0x48823c] /usr/lib/libtesseract.so.3(_ZN9tesseract13MasterTrainer24ReplaceFragmentedSamplesEv+0x1d7)[0x477ebd] /usr/lib/libtesseract.so.3(_ZN9tesseract13MasterTrainer15PostLoadCleanupEv+0x47)[0x47587b] 形状聚类[0x804e2b9] shapeclustering(main+0x5f)[0x804cb13] /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7d24d3] 形状聚类[0x804ca21] (...) 00cba000-00cc1000 rw-p 0039c000 08:01 4465015 /usr/lib/libtesseract.so.3.0.2 00cc1000-00d5c000 rw-p 00000000 00:00 0 00ef8000-00f22000 r-xp 00000000 08:01 4211867 /lib/i386-linux-gnu/libm-2.15.so 00f22000-00f23000 r--p 00029000 08:01 4211867 /lib/i386-linux-gnu/libm-2.15.so 00f23000-00f24000 rw-p 0002a000 08:01 4211867 /lib/i386-linux-gnu/libm-2.15.so 08048000-08056000 r-xp 00000000 08:01 4464615 /usr/bin/shapeclustering 08056000-08057000 r--p 0000d000 08:01 4464615 /usr/bin/shapeclustering 08057000-08058000 rw-p 0000e000 08:01 4464615 /usr/bin/shapeclustering 093c5000-094cf000 rw-p 00000000 00:00 0 [堆] b779a000-b77a0000 rw-p 00000000 00:00 0 b77b6000-b77ba000 rw-p 00000000 00:00 0 bfb6c000-bfb8d000 rw-p 00000000 00:00 0 [堆栈] 中止(核心转储)

然后创建一个空的 shapetable。

我做错了什么吗?关于为什么会发生这种情况的任何线索?

我正在使用 tesseract 3.02

【问题讨论】:

    标签: ocr tesseract


    【解决方案1】:

    我遇到了同样的问题,但通过验证 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
    

    【讨论】:

      【解决方案2】:

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

      shapeclustering 在此之后正常工作。它需要 font_properties 上的真实字体名称,而不是完整名称(在我的例子中是“点”)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 2017-05-08
        相关资源
        最近更新 更多