OpenCV AI Kit(OAK)とは
OpenCVのコンピュータービジョン開発キット「OpenCV AI Kit」のこと
https://www.kickstarter.com/projects/opencv/opencv-ai-kit?lang=ja
kickstarterでだいぶ前に注文していたものが、本日、届きました。
今回、私が購入したのは「OAK-D」 というタイプのもので、真ん中のRGBカメラに加えてステレオのカメラがあり、このステレオカメラを使って、物体認識に加えて、物体までの距離も同時に測定することができます。
4Kカメラと距離測定用のステレオカメラ、AIプロセッサを低コストで一つのデバイスで行えるところが、OAK-Dの売りです。
出典: https://www.kickstarter.com/projects/opencv/opencv-ai-kit?lang=ja
環境セットアップ
こちらのサイトを参考に必要なツールをインストール
https://docs.luxonis.com/en/latest/pages/api/
Macとラズパイの両方で試してみて、どちらでも問題なく動きました。
macOS/Raspberry Pi OS
sudo curl -fL http://docs.luxonis.com/_static/install_dependencies.sh | bash
python3 -m pip install depthai
Demoを動かしてみる。
OAKのデバイスとPCをUSB type-C で繋いでみました。
以下のコマンドでデモを動かせます。
mac OSの場合は特に問題なく動かせましたが、
git clone https://github.com/luxonis/depthai.git
cd depthai
python3 install_requirements.py
python3 depthai_demo.py
ラズパイの方は、以下のようなエラーが出てudevのルール追加をするように言われますので、
python3 depthai_demo.py
No calibration file. Using Calibration Defaults.
Using depthai module from: /usr/local/lib/python3.7/dist-packages/depthai.cpython-37m-arm-linux-gnueabihf.so
Depthai version installed: 0.4.0.0
Depthai version required: 0.4.0.0
WARNING: Usb rules not found
Set rules:
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="03e7", MODE="0666"' | sudo tee /etc/udev/rules.d/80-movidius.rules
sudo udevadm control --reload-rules && udevadm trigger
Disconnect/connect usb cable on host!
エラーメッセージにあるように、以下を実行して、udevルールを追加すればOKです。
$ echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="03e7", MODE="0666"' | sudo tee /etc/udev/rules.d/80-movidius.rules
$ sudo udevadm control --reload-rules && udevadm trigger
実行すると、縦横のX,Y軸だけでなく、距離のZ軸も同時に表示されている。
子供までの距離は、1.470 m で、奥にある椅子は、2.768 m と表示されています。
実際には、子供までの距離は、1メートルもないので、近距離の精度は低いです。
奥にある椅子は、2.3 メートルくらいで、精度は十分では無いですが、距離が遠くなるほど、精度は上がると思います。
fpsに関しても、問題なく30fpsは出ています。
depthai_demo.pyを実行するときに、-cnn オプションをつけると、モデルを変更することができるようで、
以下のモデルがサポートされていました。defaultでは、mobilenet-ssd です。
全部は確認して無いですが、他のいろんなモデルも動きました。
AIプロセッサーは、インテルのMyriad Xが搭載されているので、OpenVINOのモデルを動かせます。
{
facial-landmarks-35-adas-0002,
landmarks-regression-retail-0009,
person-vehicle-bike-detection-crossroad-1016,
tiny-yolo-v3,
vehicle-detection-adas-0002,
openpose,
emotions-recognition-retail-0003,
mobilenet-ssd,
openpose2,
deeplabv3p_person,
person-detection-retail-0013,
face-detection-retail-0004,
face-detection-adas-0001,
yolo-v3,
age-gender-recognition-retail-0013,
vehicle-license-plate-detection-barrier-0106,
mobileNetV2-PoseEstimation,
human-pose-estimation-0001,
pedestrian-detection-adas-0002
}
こちらに、Social Distanceが十分に取れているかもわかるデモ等が用意されています。
https://github.com/luxonis/depthai-experiments
まとめ
OpenCV AI Kitが届いたので、早速試してみました。
環境のセットアップも非常に簡単でした。
物体認識の精度やFPS に関しては、他のAIキットと大きな差はなさそう。
1デバイスで、距離も同時に測れるので、これからいろんなアプリケーションに応用できそう。