コードの取得
リファレンス実装のクローンを作成します。
sudo apt-get update && sudo apt-get install git
git clone https://github.com/intel-iot-devkit/pneumonia-classification.git
インテル® ディストリビューションの OpenVINO™ ツールキットのインストール
インテル® ディストリビューションの OpenVINO™ ツールキットのインストールおよびセットアップ方法の詳細は、インテル® ディストリビューションの OpenVINO™ ツールキット (Linux* 版) のインストール (英語) を参照してください。
GPU で推論を実行する場合は、下記の手順に従って OpenCL* ランタイムパッケージをインストールします。CPU で推論を実行する場合は不要です。
使用するモデル
このアプリケーションは、/resources ディレクトリーにある事前トレーニング済みのモデル (英語) を使用します。このモデルは、(CC BY-SA 4.0) (英語) ライセンスの下で利用可能な https://data.mendeley.com/datasets/rscbjbr9sj/2 (英語) にあるデータセットを使用してトレーニングされています。モデルでは、トレーニングの手順も紹介されています。アプリケーションで使用される IR (.xml ファイルと .bin ファイル) を生成するため、このモデルをモデル・オプティマイザーに渡す必要があります。
依存ファイルをインストールするため、次のコマンドを実行します。
cd <path_to_the_pneumonia-classification-python_directory>
./setup.sh
設定ファイル
resources/config.json は、アプリケーションで使用されるビデオのパスを含んでいます。
config.json ファイルは、image: <path/to/imagefile>
のように、名前/値ペア形式で記述します。
アプリケーションは、検出のため任意の数の画像を使用できます。
使用する入力画像
アプリケーションは、任意の入力 X 線画像で動作します。初回は、NORMAL (英語) と PNEUMONIA 画像 (英語) を使用することを推奨します。例えば、config.json は次のようになります。
{
"inputs": [
{
"image": "resources/NORMAL/*.jpeg"
},
{
"image": "resources/PNEUMONIA/*.jpeg"
}
]
}
ほかの画像を使用するには、config.json ファイルにパスを指定します。
インテル® ディストリビューションの OpenVINO™ ツールキットを使用するには、次のコマンドを実行して、セッションにつき 1 回、環境を設定する必要があります。
source /opt/intel/openvino/bin/setupvars.sh
注: このコマンドは、アプリケーションを実行する端末で 1 回のみ実行します。端末を閉じた場合、コマンドを再度実行する必要があります。
アプリケーションの実行
ディレクトリーをシステムの git-cloned
アプリケーション・コードの場所に変更します。
cd <path_to_the_pneumonia-classification-python_directory>/application
利用可能なオプションのリストを表示すします。
python3 pneumonia_classification.py -h
必要なモデルを指定してアプリケーションを実行します。
python3 pneumonia_classification.py -m ../resources/FP32/model.xml
出力画像、results.txt、および stats.txt ファイルは、output ディレクトリーに保存されます。
results.txt: このファイルには、肺炎の確率と推論時間が含まれます。
stats.txt: このファイルには、合計平均推論時間が含まれます。
結果を特定のディレクトリーに保存します。
python3 pneumonia_classification.py -m ../resources/FP32/model.xml -o <path-to-the-directory_to_save_the_output_files>
異なるハードウェアで実行する
デバイス・コマンドライン引数 -d
を CPU
、GPU
、MYRIAD
、または HDDL
のいずれかの値とともに使用することで、実行するターゲットデバイスを指定できます。
複数のデバイスで実行するには、-d MULTI:device1,device2
を使用します (例: -d MULTI:CPU,GPU,MYRIAD
)。
CPU で実行する
アプリケーションは、デフォルトでは CPU で実行しますが、次のように -d CPU
コマンドライン引数で明示的に指定することもできます。
python3 pneumonia_classification.py -m ../resources/FP32/model.xml -d CPU
統合 GPU で実行する
-
インテルの統合 GPU で 32 ビットの浮動小数点精度 (FP32) でアプリケーションを実行するには、-d GPU
コマンドライン引数を使用します。
python3 pneumonia_classification.py -m ../resources/FP32/model.xml -d GPU
FP32: FP32 は数の表現に 32 ビットを使用する単精度浮動小数点演算です。大きさ (仮数部) は 8 ビット、精度 (指数部) は 23 ビットです。詳細は、ここをクリックしてください。
-
インテルの統合 GPU で 16 ビットの浮動小数点精度 (FP16) でアプリケーションを実行するには、次のコマンドを使用します。
python3 pneumonia_classification.py -m ../resources/FP16/model.xml -d GPU
FP16: FP16 は 16 ビットを使用する半精度浮動小数点演算です。大きさ (仮数部) は 5 ビット、精度 (指数部) は 10 ビットです。詳細は、ここをクリックしてください。
インテル® ニューラル・コンピュート・スティックで実行する
アプリケーションをインテル® ニューラル・コンピュート・スティックで実行するには、-d MYRIAD
コマンドライン引数を使用します。
python3 pneumonia_classification.py -m ../resources/FP16/model.xml -d MYRIAD
注: インテル® ニューラル・コンピュート・スティックは FP16 モデルのみ実行できます。-m <path_to_model>
コマンドライン引数でアプリケーションに渡されるモデルは、FP16 データ型でなければなりません。
インテル® Movidius™ VPU で実行する
アプリケーションをインテル® Movidius™ VPU で実行するには、-d HDDL
コマンドライン引数を使用します。
python3 pneumonia_classification.py -m ../resources/FP16/model.xml -d HDDL
注: インテル® Movidius™ VPU は FP16 モデルのみ実行できます。-m <path_to_model>
コマンドライン引数でアプリケーションに渡されるモデルは、FP16 データ型でなければなりません。