手書きテキスト認識デモ¶
この例では、OpenVINO™ を使用して手書きの日本語、簡体字中国語、および英語のテキストを認識するアプローチを示します。日本語の場合、このデモはデータセット Kondate と Nakayosi のすべての文字をサポートしています。簡体字中国語の場合、SCUT-EPT の文字がサポートされます。英語の場合は、GNHK の文字をサポートします。
どのように動作するか¶
デモのワークフローを次に示します。
デモでは、まず画像を読み取り、サイズ変更やパディングなどの前処理を実行します。次に、モデルをプラグインにロードした後、推論が開始されます。返されたインデックスを文字にデコードした後、予測されたテキストが表示されます。
実行の準備¶
デモでサポートされるモデルリストは、<omz_dir>/demos/handwritten_text_recognition_demo/python/models.lst
ファイルにあります。このファイルは、モデル・ダウンローダーおよびコンバーターのパラメーターとして使用され、モデルをダウンロードし、必要に応じて OpenVINO IR 形式 (*.xml + *.bin) に変換できます。
モデル・ダウンローダーの使用例:
omz_downloader --list models.lst
モデル・コンバーターの使用例:
omz_converter --list models.lst
サポートされるモデル¶
handwritten-japanese-recognition-0001
handwritten-simplified-chinese-recognition-0001
handwritten-english-recognition-0001
注: 各種デバイス向けのモデル推論サポートの詳細については、インテルの事前トレーニング・モデルのデバイスサポートとパブリックの事前トレーニング・モデルのデバイスサポートの表を参照してください。
実行中¶
-h
オプションを指定してアプリケーションを実行すると、使用方法が表示されます。
usage: handwritten_text_recognition_demo.py [-h] -m MODEL -i INPUT [-d DEVICE]
[-ni NUMBER_ITER] [-cl CHARLIST]
[-dc DESIGNATED_CHARACTERS]
[-tk TOP_K]
Options:
-h, --help Show this help message and exit.
-m MODEL, --model MODEL
Required. Path to an .xml file with a trained model.
-i INPUT, --input INPUT
Required. Path to an image to infer
-d DEVICE, --device DEVICE
Optional. Specify the target device to infer on; CPU,
GPU or HETERO is acceptable. The
demo will look for a suitable plugin for device
specified. Default value is CPU
-ni NUMBER_ITER, --number_iter NUMBER_ITER
Optional. Number of inference iterations
-cl CHARLIST, --charlist CHARLIST
Path to the decoding char list file. Default is for
Japanese
-dc DESIGNATED_CHARACTERS, --designated_characters DESIGNATED_CHARACTERS
Optional. Path to the designated character file
-tk TOP_K, --top_k TOP_K
Optional. Top k steps in looking up the decoded
character, until a designated one is found
-ob OUTPUT_BLOB, --output_blob OUTPUT_BLOB
Optional. Name of the output layer of the model.
Default is None, in which case the demo will read
the output name from the model, assuming there is
only 1 output layer
Open Model Zoo 内で提供されるデコード文字リストファイル: 日本語の場合は <omz_dir>/data/dataset_classes/kondate_nakayosi.txt
ファイル、簡体字中国語の場合は <omz_dir>/data/dataset_classes/scut_ept.txt
ファイル、英語の場合は <omz_dir>/data/dataset_classes/gnhk.txt
ファイル。例えば、OpenVINO™ ツールキットの事前トレーニング済み handwritten-japanese-recognition-0001
モデルを使用して CPU で推論を実行するには、次のコマンドを実行します。
python handwritten_text_recognition_demo.py \
-d CPU \
-i data/handwritten_japanese_test.png \
-m <path_to_model>/handwritten-japanese-recognition-0001.xml
-cl <omz_dir>/data/dataset_classes/kondate_nakayosi.txt \
designated_characters
引数が指定されている場合、指定された文字に出力文字が含まれていない場合、スクリプトは指定された文字が見つかるまで、デコード文字を検索する際に上位 k ステップをチェックします。これにより、出力される文字が指定された領域に限定されます。K のデフォルトは 20 に設定されています。
例えば、出力文字を数字とハイフンのみに限定する場合、文字ファイルへのパス (例: digit_hyphen.txt
) を指定する必要があります。次に、スクリプトは出力文字に対してフィルタリング後の処理を実行しますが、最初の K 個で選択された要素に指定された文字が含まれていない場合でも、他の文字が許可される可能性があることに注意してください。前述の文字テキストファイルは、このデモの data
サブフォルダーにあります。
事前トレーニング済みの手書き handwritten-simplified-chinese-recognition-0001
モデルと designated_charcters
オプションを使用するコマンドラインの例:
python handwritten_text_recognition_demo.py \
-i data/handwritten_simplified_chinese_test.png \
-m <path_to_model>/handwritten-simplified-chinese-recognition-0001.xml \
-cl <omz_dir>/data/dataset_classes/scut_ept.txt \
-dc data/digit_hyphen.txt