TensorFlow Attention OCR モデルの変換

危険

ここで説明されているコードは非推奨になりました。従来のソリューションの適用を避けるため使用しないでください。下位互換性を確保するためにしばらく保持されますが、最新のアプリケーションでは使用してはなりません

このガイドでは、非推奨となった変換方法について説明します。新しい推奨方法に関するガイドは、Python チュートリアルに記載されています。

このチュートリアルでは、アテンション OCR (AOCR) モデルを TensorFlow Attention OCR リポジトリーから中間表現 (IR) に変換する方法を説明します。

aocr ライブラリーからモデルを抽出

AOCR モデルを取得するには、aocr Python ライブラリーをダウンロードします。

pip install git+https://github.com/emedvedev/attention-ocr.git@master#egg=aocr

このライブラリーには事前トレーニングされたモデルが含まれており、コマンドラインから AOCR をトレーニングおよび実行できます。aocr のインストール後、モデルを抽出します。

aocr export --format=frozengraph model/path/

抽出すると、モデルは model/path/ フォルダーに作成されます。

TensorFlow AOCR モデルを IR に変換

元の AOCR モデルには、以下を含む前処理データが含まれています。

  • 入力データが文字列として表される画像バイナリー形式にデコードします。

  • バイナリー画像のサイズをワーク解像度に変更します。

サイズ変更された画像は畳み込みニューラル・ネットワーク (CNN) に送信されます。モデル変換 API は画像のデコードをサポートしていないため、input コマンドライン・パラメーターを使用してモデルの前処理部分をカットする必要があります。

mo \ --input_model=model/path/frozen_graph.pb \ --input="map/TensorArrayStack/TensorArrayGatherV3:0[1,32,86,1]" \ --output "transpose_1,transpose_2" \ --output_dir path/to/ir/

説明:

  • map/TensorArrayStack/TensorArrayGatherV3:0[1 32 86 1] - 前処理後にテンソルを生成するノードの名前。

  • transpose_1 - 予測された文字を含むテンソルを生成するノードの名前。

  • transpose_2 - 予測された文字確率を含むテンソルを生成するノードの名前。