Tesseract-OCR LSTM の二次トレーニングで遭遇した落とし穴

私の環境:

  • win10
  • テッセラクト 4.1.0
  • jTessBoxEditor 2.2.1

トレーニング プロセスについては、次の記事を参照します。

https://blog.csdn.net/Hu_helloworld/article/details/100923215

  • ピット 1.メイクボックス:

次のコマンドを使用した後:

tesseract nml.num.exp0.tif nml.num.exp0 -l eng --psm 6 batch.nochop makebox

tifの最初の画像の情報しか生成できないのですが、jTessBoxEditorのマージtiffの使い方が間違っているようです。最初は複数の jpg を使用して tif を生成しましたが、その後、すべての jpg を tif に変換し (opencv を使用)、マージ tiff を使用して tiff を生成したところ、すべての画像のテキスト情報を識別することができました。

  • 坑2.CTC ターゲットの計算に失敗しました。

次のコマンドを使用した後:

lstmtraining --model_output="F:\Test\AMyWork\ImgSampleLib\nomal\samples\CTCCB24\output\output" --continue_from="F:\Test\AMyWork\ImgSampleLib\nomal\samples\CTCCB24\eng.lstm" 
--train_listfile="F:\Test\AMyWork\ImgSampleLib\nomal\samples\CTCCB24\eng.training_files.txt" --traineddata="F:\Test\AMyWork\ImgSampleLib\nomal\samples\CTCCB24\eng.traineddata" 
--debug_interval -1 --max_iterations 2000 


「CTC ターゲットの計算に失敗しました!」というメッセージが表示される無限ループが発生します。Google で検索したところ、ボックス内のデータ形式が間違っていることがわかりました。lstm トレーニング モードでは、ボックスはデータの行全体を個々のボックスに分割するのではなく、データの行全体のみを受け入れます。したがって、1 行に属するデータの範囲を 1 つのテキストから行全体に変更するだけでよく、次のように \t で終わる必要もあります。

1 148 127 268 151 0
2 148 127 268 151 0
3 148 127 268 151 0
4 148 127 268 151 0
5 148 127 268 151 0
6 148 127 268 151 0
7 148 127 268 151 0
8 148 127 268 151 0
     148 127 268 151 0

最後のキーは \t で、これはタブ キーです。

実はこれも役人が説明しているのですが、すべて英語であり、読んでいる人はほとんどいません。

ボックス形式の公式説明

https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00

正しい LSTM ボックス取得命令は、次のような命令である必要があります。

tesseract cn.my.exp0.tif cn.my.exp1 -l chi_sim lstmbox

 

その後、トレーニング プロセスを喜んで開始できます。

 

おすすめ

転載: blog.csdn.net/qq_19313495/article/details/102977915