Tessaractを使用して領収書や請求書からデータを抽出しようとしています。tesseract3.02バージョンを使用しています。
英語データのみを使用していますが、出力精度は約60%です。
Tessdataフォルダーで置き換えるだけのトレーニング済みのデータはありますか?
これは、「典型的なサンプルファイル」として提供されているニックネームの画像です。
それを見て、私ははっきりと言います:「それを忘れてください、気の毒です!このタイプの画像からテキストの100%を認識するようにTesseractをトレーニングすることはできません!」
ただし、あなたはより良い写真を作るために自分を訓練することができますあなたのiPhone 3GS(これは、例の画像に使用されたデバイスです)このようなタイプのレシートから。ここにいくつかのヒントがあります:
つまり、次のImageMagickコマンドのようなものは、おそらくTesseractの認識率をある程度上げるでしょう。
convert \
http://i.stack.imgur.com/q3Ad4.jpg \
-colorspace gray \
-rotate 90 \
-crop 260x540+110+75 +repage \
-scale 166% \
-normalize \
-colors 32 \
out1 .png
次の出力が生成されます。
これを取得するには、上記のコマンドに-threshold 30%
最後のコマンドラインオプションとしてのようなものを追加することもできます。
(30%
の値をいくつか変更して、結果を微調整する必要があります。これを行う時間はありません。)
Tesseractでは、レシートから正確な情報を取得することは不可能ではありません。 Tesseractに加えて、画像フィルターと、OpenCV、NumPy ImageMagickなどの他のツールを追加する必要があります。 PyCon 2013でフランクチャスタニョルによるプレゼンテーションがあり、彼の会社がどのようにそれを行ったかを説明しました。
ここにリンクがあります: http://pyvideo.org/video/1702/building-an-image-processing-pipeline-with-python
Tesseractを使用してテキストをOCRする前に、よりクリーンな後処理画像を取得できます。他の単純なしきい値処理方法ではなく、背景表面しきい値処理(BST)技術を使用してみてください。この件に関するホワイトペーパー here を見つけることができます。
OpenCV向けのBSTの実装があり、かなりうまく動作します https://stackoverflow.com/a/22127181/3475075
私はまったく同じものが必要で、出力を改善するためにいくつかの画像最適化を試しました
ここでテッサラクトの実験を見つけることができます