C++でOpenVINO EPとSqueezenetを使用した画像分類
-
画像分類には、ONNX Model ZooからのSqueezenet深層学習ONNXモデルを使用します。
-
サンプルは、ONNX Runtime(RT)に画像を提示することを含みます。これは、ONNX RT用のOpenVINO Execution Providerを使用して、Intel CPU、GPU、VPUなどのさまざまなIntelハードウェアデバイスで推論を実行します。サンプルは画像処理にOpenCVを使用し、推論にONNX Runtime OpenVINO EPを使用します。サンプル画像が推論された後、ターミナルは信頼度の順に予測されたラベルクラスを出力します。
このサンプルのソースコードはこちらで利用できます。
-
opencvを使用(Intel® Distribution of OpenVINOツールキットに組み込まれている同じopencvパッケージを使用)
-
サンプルへの入力として任意のサンプル画像を使用
-
ONNX Model Zooから最新のSqueezenetモデルをダウンロード この例はONNX Model Zooから適応されました。最新バージョンのSqueezenetモデルをこちらからダウンロードしてください。
OpenVINO Execution Provider用のONNX Runtimeをインストール
Section titled “OpenVINO Execution Provider用のONNX Runtimeをインストール”リファレンスドキュメント
Section titled “リファレンスドキュメント”自分でビルドする場合は、ビルドコマンドに”—build_shared_lib”フラグを追加する必要があります。
./build.sh --config Release --use_openvino CPU_FP32 --build_shared_libサンプルC++アプリケーションをビルド
Section titled “サンプルC++アプリケーションをビルド”-
ディレクトリ/onnxruntime/build/Linux/Release/に移動
-
このサンプルを実行するために必要なすべてのファイルを同じ場所(/onnxruntime/build/Linux/Release/)にコピー
-
サンプルをコンパイル
Terminal window g++ -o run_squeezenet squeezenet_cpp_app.cpp -I ../../../include/onnxruntime/core/session/ -I /opt/intel/openvino_2021.4.582/opencv/include/ -I /opt/intel/openvino_2021.4.582/opencv/lib/ -L ./ -lonnxruntime_providers_openvino -lonnxruntime_providers_shared -lonnxruntime -L /opt/intel/openvino_2021.4.582/opencv/lib/ -lopencv_imgcodecs -lopencv_dnn -lopencv_core -lopencv_imgproc注:このビルドコマンドは、OpenVINO 2021.4リリースインストールからのopencvの場所を使用しています。任意のバージョンのOpenVINOを使用し、場所パスを適切に変更できます。
-
サンプルを実行
実行するには
(Intel OpenVINO-EPを使用)
./run_squeezenet --use_openvino <path_to_onnx_model> <path_to_sample_image> <path_to_labels_file>例:
./run_squeezenet --use_openvino squeezenet1.1-7.onnx demo.jpeg synset.txt (Intel OpenVINO-EPを使用)(デフォルトCPUを使用)
./run_squeezenet --use_cpu <path_to_onnx_model> <path_to_sample_image> <path_to_labels_file>例:
./run_squeezenet --use_cpu squeezenet1.1-7.onnx demo.jpeg synset.txt (デフォルトCPUを使用)