web-dev-qa-db-ja.com

OCRのTensorflowモデル

私はTensorflowの初心者で、画像に対してOCRを実行できるモデルを構築しようとしています。 9文字(すべての画像に固定)、数字、文字を読む必要があります。私のモデルはこれに似ています

https://matthewearl.github.io/2016/05/06/cnn-anpr/

私の質問は、最初に各キャラクターに対してモデルをトレーニングし、キャラクターを結合した後に完全なラベルが表示されるようにするかどうかです。または、フルラベルでストレートにトレーニングする必要がありますか?

私はモデルに渡す必要があることを知っています、対応する画像の画像+ラベル、それらのラベルの形式は、テキストファイルですか、その部分について少し混乱しているので、モデルに渡されるラベルの形式に関する説明役立つでしょうか?感謝します。

15
thug_

エンドツーエンドのOCRモデルを注意してトレーニングすることをお勧めします。ストリート名の転写に使用したアテンションOCRを試すことができます https://github.com/tensorflow/models/tree/master/research/attention_ocr

私の推測では、それはあなたの場合にはかなりうまくいくはずです。データを準備する方法については、回答 https://stackoverflow.com/a/4446191 を参照してください。

9

これに対処するには、いくつかの方法があります(次のリストは完全ではありません)。

1)最初の方法は、画像から直接単語を分類することです。 9文字の語彙が制限されている場合は、Word固有の分類子をトレーニングできます。次に、この分類子を画像と畳み込み、最も高い確率で単語を選択できます。

2)2番目のオプションは、文字分類子を訓練し、画像内のすべての文字を検索し、探している9文字を含む最も可能性の高い行を見つけることです。

3)3番目のオプションは、テキスト検出器をトレーニングし、可能なすべてのテキストボックスを見つけることです。次に、シーケンスベースのモデルですべてのテキストボックスを読み、制約に従う最も可能性の高いソリューションを選択します。シンプルなシーケンスベースのモデルは、次の論文で紹介されています: http://ai.stanford.edu/~ang/papers/ICPR12-TextRecognitionConvNeuralNets.pdf 。他のシーケンスベースのモデルは、HMM、コネクショニストの時間分類、アテンションベースのモデルなどに基づいている可能性があります。

4)4番目のオプションは、最初にテキストを見つけてから文字を1つずつ出力するためにエンドツーエンドで機能するアテンションベースのモデルです。

このリストは網羅的なものではなく、この問題を解決するためのさまざまな方法があることに注意してください。他のオプションでは、AbbyyやTesseractなどのサードパーティのソリューションを使用して問題を解決することもできます。

6
Xochipilli