要約
この記事では、AE2100のUbuntu + OpenVINOコンテナ上に、PythonおよびPython向けOpenCVの環境を構築する方法について説明します。
はじめに
OKIのAIエッジコンピュータ「AE2100」の標準コンテナには、ディープラーニングの推論環境であるOpenVINOがインストールされています。
OpenVINOではPythonからディープラーニングの推論を可能にするAPIが提供されています。
また、OpenVINOにはコンピュータビジョン向けライブラリであるOpenCVが付属しています。
@TWATさんはAE2100で動く物体検出プログラムを紹介した記事を投稿しており、当該記事のプログラムではPython 3からOpenVINOとOpenCVを利用しています。
ただしAE2100の標準コンテナは、初期状態ではPythonがインストールされていません。
PythonプログラムからOpenVINOを利用するには、Pythonをインストールする必要があります。
またPythonプログラムからOpenCVを利用するには、OpenCVの依存プログラムをインストールする必要があります。
そこで本記事では、AE2100のUbuntu + OpenVINOコンテナ上に、PythonおよびPython向けOpenCVの環境を構築する方法を説明します。
Pythonとpipのインストール
AE2100のホストOSから、環境構築を行うゲストOSのコンテナ内部へ移動します。
Ubuntuコンテナ内では、ソフトウェアのインストールにaptコマンドを利用することができます。
下記のコマンドを実行しPython 3およびPythonパッケージをインストールする際に用いるpipをインストールします。
# apt update # パッケージリストを更新
# apt install -y python3
# apt install -y python3-pip
上記のインストール実行後、下記のコマンドによってPython対話モードが起動すれば、Pythonのインストールは成功です。
対話モードを終了するにはCtrl+D
を押します。
# python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Pythonパッケージのインストール
Pythonでユーザアプリケーションを作成するにあたり、様々なパッケージをインストールして利用します。
例えば数値計算用のパッケージであるNumPyは、標準ではインストールされていないため、pipコマンドなどでインストールする必要があります。
なおPython向けOpenCVを利用するには、NumPyが必要となります。
pip3コマンドを用いてNumPyをインストールするには、下記のコマンドを実行します。
# pip3 install numpy
Python対話モードからnumpy
のインポートが成功すれば(ModuleNotFoundError
が表示されなければ)、NumPyのインストールは成功です。
# python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>>
この他にもPythonプログラム実装にあたって利用したいパッケージがあれば、同様の手順でインストールしましょう。
OpenCV依存プログラムのインストール
OpenCVの依存プログラムであるGTK、FFmpeg、GStreamerをインストールします。
GTKはGUIツールキット、FFmpegは動画の録画・変換・再生のためのソフトウェア、GStreamerはマルチメディアフレームワークです。
下記コマンドを実行し、依存プログラムをインストールします。
# apt install -y libgtk-3-0 ffmpeg libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad
OpenVINOの環境変数を設定します。
なおOpenVINOのバージョンによってシェルスクリプトのファイルパスが異なります。
- OpenVINO 2021以前の場合
# source /opt/intel/openvino/bin/setupvars.sh
- OpenVINO 2022以降の場合(2022年12月追記)
# source /opt/intel/openvino/setupvars.sh
上記によりOpenVINOに含まれるPython向けOpenCVのパス(/opt/intel/openvino/python/python3/cv2.abi3.so
)が設定されます。
Python対話モードからcv2
のインポートが成功すれば、Python向けOpenCVの準備は成功です。
# python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>
まとめ
今回はAE2100のUbuntu + OpenVINOコンテナ上にPythonおよびPython向けOpenCVの環境を構築しました。
PythonプログラムからOpenVINO、OpenCVを利用することができるようになりましたので、
ぜひAE2100で動くコンピュータビジョンプログラムをPythonで作成してみましょう。
なお、@TWATさんの投稿記事「OKI AIエッジコンピューター「AE2100」で動く物体検出プログラムを作ろう (1) ―基礎編―」では、Pythonによる物体検出プログラムのソースコードを記載しています。
このプログラムは今回構築した環境で動作しますので、ぜひ試してみてください。