AI

日本システム開発株式会社からAIに関するコラムをお届けします。

推論システム開発に2017年から携わっている実績に基づき、様々な情報を発信しています。

日本システム開発の技術、
覗いてみませんか。

AIコラム 第6回「(OpenVINO第1回) OpenVINOの環境構築とサンプルアプリケーションの実行」

今回から全三回に渡り Intel社製のツールキットである OpenVINO についてのコラムを連載していきます。

OpenVINOについて第一回目の今回は、OpenVINOについての紹介と、ローカル環境に OpenVINOの環境構築をしてサンプルを実行するところまで行いたいと思います。

全三回に渡るOpenVINO コラムに掲載する内容は以下の通りです。
  • OpenVINO 第1回: OpenVINO の環境構築とサンプルアプリケーションの実行
  • OpenVINO 第2回: OpenVINO 上でのアプリケーション開発の方法を学ぶ
  • OpenVINO 第3回: クラウドサービス「Intel DevCloud for the Edge」について

第1回と第2回は、ローカル環境のUbuntu に環境構築を行い、実際に OpenVINO でアプリケーションを作成することを行います。

第3回は、Intel社が提供するクラウドサービスのIntel DevCloud for the Edge についてご紹介したいと思います。

それでは、まずは OpenVINO ツールキットの紹介から始めていきたいと思います。

OpenVINO ツールキットとは

OpenVINO深層学習を使用したコンピュータビジョンアプリケーション開発を支援するためのツールキットになります。

OpenVINO ツールキット自体は、様々なライブラリ・ツールによって構成されています。

OpenVINOツールキットを構成しているライブラリ・ツール
ライブラリorツール名説明
Inference Engine高効率、高性能で柔軟性の高いディープラーニング推論ランタイムライブラリ
Model Optimizer一般的な学習済みディープラーニングモデルをOpenVINO IR形式に変換するツール
Model DownloaderOMZ(Open Model Zoo)モデルや一般的なパブリックディープラーニングモデルをダウンロードするツール
Deep Learning Workbenchモデルの再量子化(int8)、ベンチマーク、精度テストなどを行えるツール
OpenCVIntel社のハードウェア用にコンパイルされたOpenCV (画像処理ライブラリ)

OpenVINO ツールキットを利用した開発

OpenVINOを利用した開発では、以下のような特徴・利点があります。

◎短期間で高性能・高効率な深層学習アプリケーションの開発が可能

OpenVINO のモデルオプティマイザーを使用して、TensorFlow、Caffe、MxNet などの様々フレームワークで学習された学習済みモデルをIntelアーキテクチャに最適化されたIRと呼ばれる中間表現フォーマットに変換します。

OpenVINOの推論エンジンでは、このIRフォーマットのデータを使用して高性能なコンピュータビジョンアプリケーションの実行が可能となります。

また、この推論エンジンの推論結果は、アプリケーションに簡単に統合することができるため、短期間で高性能・高効率な深層学習アプリケーションの開発が可能になります。

◎高いスケーラビリティ

OpenVINO は様々な深層学習用プロセッサやアクセラレータ( CPU, GPU, FPGA, VPU, GNA)をサポートしています。
サポートしているデバイス
デバイス詳細
CPU・AVX2およびAVX512搭載のIntel® Xeon®
・AVX2 搭載のIntel® Core™ Processorファミリ
・SSE搭載のIntel® Atom® Processorファミリ
GPU・Intel® HD Graphics および Intel® Iris® Graphics を含むIntelグラフィックス、プロセッサ
FPGA・Intel® Arria 10 FPGA (Speed Grade 2)を使用したIntel® Vision Accelerator Design
VPU・Intel® Movidius™ Myriad™ 2を搭載したIntel® Movidius™ Neural Compute Stick
・Intel® Movidius™ Myriad™ Xを搭載したIntel® Neural Compute Stick 2
・Intel® Movidius™ VPUsを使用したIntel® Vision Accelerator Design
GNA・Intel® Speech Enabling Developer Kit
・Amazon Alexa* Premium Far-Field Developer Kit
・Intel® Pentium® Silver J5005 Processor
・Intel® Pentium® Silver N5000 Processor
・Intel® Celeron® J4005 Processor
・Intel® Celeron® J4105 Processor
・Intel® Celeron® Processor N4100
・Intel® Celeron® Processor N4000
・Intel® Core™ i3-8121U Processor
・Intel® Core™ i7-1065G7 Processor
・Intel® Core™ i7-1060G7 Processor
・Intel® Core™ i5-1035G4 Processor
・Intel® Core™ i5-1035G7 Processor
・Intel® Core™ i5-1035G1 Processor
・Intel® Core™ i5-1030G7 Processor
・Intel® Core™ i5-1030G4 Processor
・Intel® Core™ i3-1005G1 Processor
・Intel® Core™ i3-1000G1 Processor
・Intel® Core™ i3-1000G4 Processor

OpenVINOで開発されたアプリケーションは、これらの異なるプロセッサで動かす場合にもソースコードの書き替えをほとんどすることなく動作させることができます。

◎クラウドサービス「Intel DevCloud for Edge」を利用した評価環境

Intel DevCloud for Edgeは、Intel社が提供しているサービスです。

クラウド上で OpenVINO を実行することができ、クラウド上でアプリケーション開発およびIntel アーキテクチャ環境(Intel社の各種CPU, GPU, FPGA, VPU)で動かした際の性能のベースライン評価を簡単に行うことができます。

詳細についてはOpneVINO の第三回のコラムでご紹介したいと思います。

OpenVINOツールキットとは

OpenVINO のインストール

今回、弊社の環境でインストールを行うのはIntelアーキテクチャのCPUが搭載されたマシンになります。

多くのIntelアーキテクチャCPUで動作しますので、「OpenVINOをすぐに試してみたい」という方は、お手持ちのIntelアーキテクチャCPUが搭載されたマシンをお使いください。

■インストールを行うマシンの構成

OS : Ubuntu 18.04.1 LTS 64bit

CPU : AVX2搭載のIntel® Core™ Processor

それでは OpenVINO をインストールしていきたいと思います。

※インストール手順は、以下のURLを参考にしました。

https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html

  1. 以下のURLの「Register & Download」からLinux用のインストーラをダウンロードします。
    ※アカウント登録をする必要があります。
    https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/overview.html
    登録するアカウント情報を入力後「submit」ボタンを押すと、インストーラのダウンロードリンクがあるページに移動します。
    今回は 「Full Package」版のインストーラを選択してください
「ファイルを保存」を選択してください。

ダウンロードされたパッケージを解凍します。以下のコマンドで解凍を行ってください。

※<version>の部分は適宜置き換えて実行してください。

> cd ~/Downloads/

> tar -xvzf l_openvino_toolkit_p_.tgz

> cd l_openvino_toolkit_p_<version>

  1. 解凍したパッケージの中にあるインストーラを起動します。
    ※インストーラは GUI版、CUI版 の2つが用意されていますが、今回はGUI版のインストーラを使用します。
> sudo ./install_GUI.sh

上記コマンド実行後、GUIのインストーラが起動します。

ライセンスの許諾後を行い、「Next」ボタンで「configuration」画面まで進めてください。

以下のようにインストールされるパッケージが一覧で表示されます。

今回はデフォルト設定のままで、「Install」ボタンを押してください。

次に以下のような画面が表示されますが、そのまま「Next」ボタンを押してください。

インストールが完了するまでお待ちください。

インストールが終わったら「Finish」ボタンを押してください。

  1. 依存関係の外部パッケージをインストールします。
    以下のコマンドを実行してください。

> cd /opt/intel/openvino/install_dependencies

> sudo -E ./install_openvino_dependencies.sh

  1. 環境変数の設定をします。
    以下のコマンドを実行してください。

> source /opt/intel/openvino/bin/setupvars.sh

※シェルを起動時に自動的に環境変数を設定したい場合は 「<user_directory>/.bashrc」ファイルの最後に「source /opt/intel/openvino/bin/setupvars.sh」の1行を追記してください。

  1. Model Optimizer の設定を行います。
    以下のコマンドを実行してください。

> cd/opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites

> sudo ./install_prerequisites.sh

※ install_prerequisites.sh」スクリプトを実行すると、Caffe, TensorFlow, MXNet, kaldi, ONNX 形式に
対応する Model optimizerの設定が行われます。

 同ディレクトリ内の「install_prerequisites_<frame_work>.sh」スクリプトで、個別に設定スクリプトの実行を行うこともできます。

実行

  1. 車とナンバープレートの検出を行うデモプログラムを実行します。
    以下のコマンドを実行し、画像分類を行うプログラムを実行してください。

> cd /opt/intel/openvino/deployment_tools/demo

> ./demo_security_barrier_camera.sh

上記スクリプトを実行すると、車とナンバープレートが検出された推論結果の画像が表示されます。

(※ナンバープレートの個人情報が含まれるため、ここには画像の掲載は致しません。是非、実際に実行して確認頂ければと思います。)

関連情報の紹介

最後に OpenVINO の関連情報のリンクをご紹介します。

◎OpenVINO公式リファレンス

https://docs.openvinotoolkit.org/latest/index.html

OpenVINO の公式ドキュメントです。

インストール手順、ワークフローの説明、APIのリファレンスなど、開発に必要な情報が載っています。

◎xlsoft様の OpenVINO ドキュメント・チュートリアル

https://www.xlsoft.com/jp/products/intel/openvino/index.html?tab=2

Intel社の公式パートナーである xlsoft社の OpenVINO 紹介ページです。

OpenVINO の日本語資料が掲載されています。

◎Intel DevCloud for Edge

https://devcloud.intel.com/edge/

OpenVINO をクラウドで簡単に実行することができるサービスです。

OpenVINO 第三回のコラムで詳細に取り上げます。

次回は、OpenVINO上でのアプリケーション開発の方法を学び、自作のアプリケーションの作成を行っていきたいと思います。

■関連サービス

AIソリューション

オープンソースを活用したAIのシステム構築・開発を支援!

車両ナンバープレート検知全国版

車両のナンバープレートをAIが検知・処理!全国のナンバープレートに対応!

人数カウントBODY_ロゴ

カメラ撮影した映像から指定領域内の滞在人数をAIが認識!

人数カウントHEAD_ロゴ

密集した空間から指定領域内の滞在人数をAIが認識!

ラインクロスカウント

来店人数のカウントや通行量調査などを自動化!

pagetop