いまさらだけどNeural Compute Stick 2 の環境構築(Ubuntu 20.04 LTS) - えいあーるれいの技術日記の続きです。
Neural Compute Stickなどの視覚特化AIアクセラレータをVPUと言うみたいです。
環境構築(続き)
OpenVINOをインストール後は、物体検出に必要なOpenCVをインストールします。本当は直接ビルドしたほうがいいと思いますが、ROSのパッケージをそのまま流用しても動いたので、今回はそれを採用します。
上記のリンクでROSのキーを取得してros-noetic-vision-opencv
のインストールを行います。
※追記:libopencv-devだけを使用しているので、コレをインストールするだけで良さそうです。
プログラム
CUDA4DNN YOLOv4 Discussion · GitHubを使いました。
このプログラムをウェブカメラ入力用に変更して、Neural Compute Stickが使えるように書き換えました。
実行は、$ python3 opencv_dnn_example.py
でOKです。
(GitHub - Ar-Ray-code/opencv_dnn_exampleにもUPしています)
Neural Compute Stickで物体検出をする際は20行目についてDNN_TARGET_CPU
をDNN_TARGET_MYRIAD
に変更します。2つとも変更した場合は動かず、逆にしても上手く動きませんでした。
環境
以下の環境で実行しました。
項目 | 名称 |
---|---|
CPU | Intel(R) Core(TM) i5 10210u |
GPU | Intel UHD Graphics |
VPU | Intel(R) Neural Compute Stick 2 |
OS | Ubuntu 20.04 LTS |
OpenCV | OpenCV4 |
OpenVINOは2021年3月のものを使用しました。
結果
CPU検出とVPU検出の比較を示します。
CPUで必要なリソースを全てVPUが肩代わりするのでCPUリソースをほとんど使いません。ただしIntel CPUが優秀なのか、VPUの方は17〜18fpsと多少性能が劣っています。Raspberry PiでもNeural Compute Stickは使えるので、Raspberry Pi + Neural Compute Stickの組み合わせなら電力消費を抑えつつ性能もそこそこになりそうですね。
Raspberry Pi + Neural Compute Stick 2の組み合わせの環境構築も後日する予定です。
Raspberry Pi + Neural Compute Stickについて
Neural Compute StickはCPUの負荷を減らすことができるので、発熱を抑えることができ、長時間動作するシステムを作成するのに適しています。Raspberry PiやミニPCなどのGPUが非力なコンピュータの拡張パーツとして使用を検討してみてはいかがでしょうか?