9

ガスメーターの実際の画像から数字を認識するように tesseract をトレーニングしようとしています。

私がトレーニングに使用する画像はカメラで作成されているため、露出オーバー、反射、影などによる画像解像度の低下、画像のぼやけ、照明不足またはコントラストの低下など、多くの問題があります。

トレーニングのために、ガス メーターの画像によってキャプチャされた一連の数字を含む大きな画像を作成し、ファイル ボックスを手動で編集して .tr ファイルを作成しました。その結果、鮮明で鮮明な画像の数字のみが認識され、ぼやけた画像の数字は tesseract によってキャプチャされません。

4

4 に答える 4

2

私が知る限り、数字が配置されているボックスを認識するために OpenCV が必要ですが、OpenCV は OCR の神ではありません。ボックスを見つけたら、その部分をトリミングし、画像処理を行ってから、OCR のために tesseract に渡します。

OpenCV でのプログラミング方法がわからないため、OpenCV のサポートが必要です。

ここにいくつかの実際の例を示します。

  • 最初の画像は元の画像 (トリミングされたパワー メーターの数字)
  • 2 番目の画像は GIMP でわずかにクリーンアップされた画像で、tesseract で約 50% の OCR 精度
  • 3 番目の画像は完全にクリーンな画像です - トレーニングなしで 100% OCR が認識されます!

最初の画像 2番目の画像 3番目の画像

于 2013-11-05T11:52:37.903 に答える
1

Tesseract はかなりまともな OCR パッケージですが、画像を適切に前処理しません。私の経験では、tesseract に渡す前に前処理を行うだけで、良好な OCR 結果を得ることができます。

認識を大幅に向上させる重要なポイントがいくつかあります。

  1. バックグラウンド ノイズを除去します。基本的に、これは平均適応しきい値処理を使用することを意味します。また、文字が黒で背景が白であることも確認します。
  2. 正しい解像度を使用してください。悪い結果が得られた場合は、良い結果が得られるまでイメージを拡大または縮小します。あなたは約を目指したいです。300 dpi でフォント サイズ 14。最もうまく機能する請求書を処理する私のソフトウェアで。
  3. 画像を JPEG として保存しないでください。BMP や PNG など、画像にノイズが発生しないものを使用してください。
  4. 1 つまたは 2 つのフォントしか使用していない場合は、これらのフォントで tesseract をトレーニングしてみてください。

ポイント4については、使用されるフォントがわかっている場合は、これらのフォントを画像に直接一致させるなど、Tesseractを使用するよりも優れた解決策がいくつかあります...基本的なアルゴリズムは、数字を見つけて、可能なすべての文字に一致させることです(これはたったの 10 です)... それでも、実装はトリッキーです。

于 2014-07-18T09:31:04.670 に答える
1

まず、この単純な ImageMagick コマンドを試してみます。

 convert          \
    original.jpg  \
   -threshold 50% \
    result.jpg

(パラメータで少し遊んで50%ください。値を小さくしたり大きくしたりしてみてください...)

しきい値処理では、基本的に、各カラー チャネルに対してゼロまたは最大の 2 つの値のみが残されます。しきい値未満の値は 0 に設定され、それを超える値は 255 (または 16 ビット深度で動作している場合は 65535) に設定されます。

original.jpg によっては、結果として OCR 対応の機能する非常に高コントラストの画像が得られる場合があります。

于 2012-08-19T18:30:42.050 に答える