【OpenVINOのインストール】ディープラーニング推論の高速化

【OpenVINOのインストール】ディープラーニング推論の高速化 ツール

「ディープラーニングを利用したアプリケーションを開発したい」
「ディープラーニングの推論を高速化したい」
「OpenVINOについてイマイチよくわからない・・・」

このような場合には、この記事の内容が参考となります。
この記事では、OpenVINOについて解説しています。

本記事の内容

  • OpenVINOとは?
  • OpenVINOのシステム要件
  • OpenVINOのインストール
  • OpenVINOの動作確認

それでは、上記に沿って解説していきます。

OpenVINOとは?

OpenVINOの公式サイトには、次のように記載されています。

OpenVINO™ ツールキットは、無償でダウンロード可能なソフトウェア・ツールキットで、最新のコンピューター・ビジョン・アプリケーションの開発における導入の簡素化および高速化に特化して設計されています。

正直、これだけだと意味がわかりません。
ただ、「OpenVINOでは高速にAIが機能する」ぐらいは掴めます。
OpenVINOは、Intelが開発していますからね。

では、次の構成図をご覧ください。

この構成図があれば、OpenVINOが理解しやすくなります。
この構成図を見れば、冒頭の説明の意味が少しはわかるかと思います。

OpenVINOは、一般的にはOpenVINOツールキットと呼ばれます。
その中には、次の機能・ツールが含まれています。

  • Model Optimizer
  • Benchmark Tool
  • Accuracy Checker and Annotation Converter
  • Post-Training Optimization Tool
  • Model Downloader and other Open Model Zoo tools
  • OpenVINO Runtime

ここでは、それぞれの詳細は省きます。
とにかく、多くの機能・ツールがあること把握してください。

そして、OpenVINOは以下を対象にすることがわかります。

  • 推論
  • ディープラーニング

図からわかるように、学習はOpenVINOの範囲外となっています。
通常、機械学習と言えば、次のフェーズがあります。

  • 学習フェーズ
  • 推論フェーズ

このうちの推論フェーズしか、OpenVINOでは扱っていません。
そうなると、OpenVINOは以下の機械学習フレームワークとは別モノと言えます。

  • PyTorch
  • TensorFlow
  • Chainer
  • Keras
  • Caffe
  • Caffe2

これらとOpenVINOでは、学習フェーズがないという点で大きく異なります。
実際、OpenVINOは機械学習フレームワークとは説明されていません。

じゃあ、OpenVINOとは一体何でしょうか?
ディープラーニング推論を処理する仕組みと言えるでしょう。
学習は他のフレームワーク任せということです。

各フレームワークでは、ONNX形式(.onnx)という汎用的な学習済みモデルを出力できます。
そして、OpenVINOの変換機能でONNX形式のファイルを次のファイルに変換します。
Model Optimizerが、その変換ツールになります。

  • xml
  • bin

これらのファイルをOpenVINOで読み込んで推論を行います。
その推論エンジンを担うのが、OpenVINO Runtimeになります。

今回は、このOpenVINO Runtimeのインストールを下記で説明します。

以上、OpenVINOについて説明しました。
次は、OpenVINOのシステム要件を説明します。

OpenVINOのシステム要件

現時点(2022年4月)でのOpenVINOの最新バージョンは、2022.1.0となります。
この最新バージョンは、2022年3月22日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、以下となっています。

  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9

ただし、OS毎に対応するPythonのバージョンが異なります。
詳細は、次の表をご覧ください。

Supported Operating SystemPython* Version (64-bit)
Ubuntu* 18.04 long-term support (LTS), 64-bit3.6, 3.7, 3.8
Ubuntu* 20.04 long-term support (LTS), 64-bit3.6, 3.7, 3.8, 3.9
Red Hat* Enterprise Linux* 8, 64-bit3.6, 3.8
macOS* 10.15.x versions3.6, 3.7, 3.8, 3.9
Windows 10*, 64-bit3.6, 3.7, 3.8, 3.9

このサポート状況は、以下のPython公式開発サイクルとは異なります。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

Python 3.6は、すでにサポート期限が切れています。
また、Python 3.10は大抵のライブラリでもサポート対象となっています。

つまり、OpenVINOは公式開発サイクルとは若干ズレていると言えます。
この部分には、注意が必要です。

以上、OpenVINOのシステム要件を説明しました。
次は、OpenVINOのインストールを説明します。

OpenVINOのインストール

検証は、次の環境で行います。
OSは、Ubuntuです。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=20.04 
DISTRIB_CODENAME=focal 
DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS"

Pythonは、3.8を利用します。

$ python -V
Python 3.8.10

そして、Python仮想環境を利用するようにしましょう。
公式でも、Python仮想環境へのインストールが推奨されています。

Python仮想環境の利用については、次の記事で説明しています。

OpenVINOのインストールを行っていきます。
まずは、現状のインストール済みパッケージを確認しておきます。

$ pip list
Package    Version
---------- -------
pip        22.0.4
setuptools 62.1.0
wheel      0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、OpenVINOのインストールです。
OpenVINOのインストールは、以下のコマンドとなります。

pip install openvino

websocket-clientのインストールは、すぐに終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。

$ pip list
Package    Version
---------- --------
numpy      1.19.5
openvino   2022.1.0
pip        22.0.4
setuptools 62.1.0
wheel      0.36.2

OpenVINOには、依存するパッケージが存在していません。
そのため、既存環境にも容易に導入できそうです。

しかし、これはOpenVINO Runtimeだけに絞った場合です。
とりあえず、Runtimeはシンプルだと言えます。

以上、OpenVINOのインストールを説明しました。
次は、OpenVINOの動作確認を行います。

OpenVINOの動作確認

OpenVINOの動作確認を行います。
ただし、今回はOpenVINO Runtimeのインストール状況を確認するだけです。

それを確認するのは、次のコマンドになります。

python -c "from openvino.runtime import Core"

上記コマンドを実行して、何も表示されないならOKです。
インストールに失敗があれば、次のようなエラーが表示されます。

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'openvino'

そんなモジュールは知らないというエラーですね。
この確認方法は、公式で記載されている動作確認方法でもあります。

以上、OpenVINOの動作確認を説明しました。

タイトルとURLをコピーしました