「ディープラーニングを利用したアプリケーションを開発したい」
「ディープラーニングの推論を高速化したい」
「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 System | Python* Version (64-bit) |
---|---|
Ubuntu* 18.04 long-term support (LTS), 64-bit | 3.6, 3.7, 3.8 |
Ubuntu* 20.04 long-term support (LTS), 64-bit | 3.6, 3.7, 3.8, 3.9 |
Red Hat* Enterprise Linux* 8, 64-bit | 3.6, 3.8 |
macOS* 10.15.x versions | 3.6, 3.7, 3.8, 3.9 |
Windows 10*, 64-bit | 3.6, 3.7, 3.8, 3.9 |
このサポート状況は、以下のPython公式開発サイクルとは異なります。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年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の動作確認を説明しました。