1

ここにある指示に従って、テッセラクトをトレーニングしようとしています(新しい数字のみのフォントを追加します): http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3

私がやったこと:

  1. サンプル テキストを含む PDF を作成し、tif に変換し、実行しましtesseract num.dot.exp0.tif num.dot.exp0 batch.nochop makebox digitsた。次に、生成されたボックス ファイルを編集し、間違った検出を修正しました。
  2. トレーニング モードで tesseract を実行:tesseract num.dot.exp0.tif num.dot.exp0 nobatch box.trainで unicharset を抽出しましたunicharset_extractor num.dot.exp0.box
  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]
    shapeclustering[0x804e2b9]
    shapeclustering(メイン+0x5f)[0x804cb13]
    /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7d24d3]
    shapeclustering[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 [スタック]
    中止 (コアダンプ)

次に、空のシェイプテーブルが作成されます。

私は何か間違ったことをした?なぜこれが起こっているのかについての手がかりはありますか?

私はtesseract 3.02を使用しています

4

2 に答える 2

2

問題を見つけることができました。echo "dot 0 0 0 0 0" > font_properties代わりに使用する必要がありましたecho "num.dot.exp0 0 0 0 0 0" > font_properties

その後、シェイプクラスタリングは適切に機能しました。完全な名前(私の場合は「ドット」)ではなく、font_propertiesの実際のフォント名が必要です。

于 2013-06-10T21:14:19.357 に答える
0

同じ問題が発生していましたが、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
于 2016-09-05T10:48:39.153 に答える