DepthAIカメラ OAK-Dで遊んでみる
関連情報
公式ドキュメント
公式GitHubリポジトリ
ネット記事
Mac(Intel)へのインストール
Python環境には、MiniForgeを使っています。以下記事参照ください。
MiniForgeのセットアップが終わったら、ドキュメントを参考にインストールします。
具体的には、以下コマンドでMiniForge環境に関連ライブラリとdepthaiライブラリをインストールします。
$ conda create --name depthai python=3.8
$ conda activate depthai
$ bash -c "$(curl -fL http://docs.luxonis.com/_static/install_dependencies.sh)"
$ python3 -m pip install depthai
Mac(Apple Silicon)へのインストール
Apple Siliconでもセットアップできました。
以下を参考に構築したPython環境でpip3 install depthai
でOKです。
以下はうまくいかなかった例です。以下記事のとおり環境設定して
以下のように実行します。
$ conda create --name depthai python=3.8
$ conda activate depthai
$ conda install opencv
$ bash -c "$(curl -fL http://docs.luxonis.com/_static/install_dependencies.sh)"
$ python3 -m pip install depthai
一見うまくいったように見えますが、実行すると以下のエラーでうまくいきません。
$ python3 rgb_preview.py
Traceback (most recent call last):
File "rgb_preview.py", line 4, in <module>
import depthai as dai
ImportError: dlopen(/Users/karaage/miniforge3/envs/depthai/lib/python3.8/site-packages/depthai.cpython-38-darwin.so, 2): no suitable image found. Did find:
/Users/karaage/miniforge3/envs/depthai/lib/python3.8/site-packages/depthai.cpython-38-darwin.so: mach-o, but wrong architecture
/Users/karaage/miniforge3/envs/depthai/lib/python3.8/site-packages/depthai.cpython-38-darwin.so: mach-o, but wrong architecture
参考
サンプルを動かす
$ git clone https://github.com/luxonis/depthai-python.git
$ cd depthai-python
$ cd examples
$ python3 rgb_preview.py
MobileNetテスト
$ python3 install_requirements.py
$ python3 rgb_mobilenet.py
参考
OAK-Dのハードウェア
外観
メモ
- カメラとしての動作だけなら、外部電源無し(USB給電のみ)でも動く。ディープラーニングを走らせると落ちる
応用例
姿勢推定(depthai_movenet)
最新(2.7.1)のdepthaiライブラリで動作しました。
$ git clone https://github.com/geaxgx/depthai_movenet
$ cd depthai_movenet
$ python3 demo.py
以下は人形なので、うまく推定できていませんが、人だとちゃんと検出できていました。
姿勢推定(depthai_blazepose)
このリポジトリは、試したら一回だけ動いて、以下OAK-Dが動かなくなってしまった。
requirements.txt
が古い(2.3.0)depthaiライブラリのバージョンを要求しているのが原因。最新(2.7.1)のdepthaiだと動かない。
$ git clone https://github.com/geaxgx/depthai_blazepose
$ cd depthai_blazepose/
$ python3 -m pip install -r requirements.txt
$ python3 demo.py
ハンドトラッキング
通常のモード(ホストモード)で動かす方法
$ git clone https://github.com/geaxgx/depthai_hand_tracker
$ cd depthai_hand_tracker
$ python3 demo.py
16FPS程度
DepthAI側で主に計算するエッジモードで動かす場合は、以下のように-e
オプションを付けます。
$ python3 demo.py -e
倍以上の39FPS!
その他様々なオプションがあります。リポジトリのREADME参照ください。
トラブルシューティング
突然OAK-Dが動かなくなった
$ python3 depth_preview.py
depth_preview.py:18: DeprecationWarning: create[Node]() is deprecated, use create([Node]) instead.
monoLeft = pipeline.createMonoCamera()
depth_preview.py:19: DeprecationWarning: create[Node]() is deprecated, use create([Node]) instead.
monoRight = pipeline.createMonoCamera()
depth_preview.py:20: DeprecationWarning: create[Node]() is deprecated, use create([Node]) instead.
depth = pipeline.createStereoDepth()
depth_preview.py:21: DeprecationWarning: create[Node]() is deprecated, use create([Node]) instead.
xout = pipeline.createXLinkOut()
Traceback (most recent call last):
File "depth_preview.py", line 32, in <module>
depth.initialConfig.setConfidenceThreshold(200)
AttributeError: 'depthai.node.StereoDepth' object has no attribute 'initialConfig'
トラブル時は、CommunityのDiscordの #support で問い合わせるのが良いです。
スーパーエンジニアのPINTOさんにTwitterで教えていただきました。
結局、色々調べてもらった結果、私の使っているソフトバージョンが古いという話になりました。バージョン確認は以下。
$ python3 -c "import depthai as d; print(d.__version__)"
2.3.0.0.dev+c90abbb7634da0042375560362d1c30322634101
アップデートは以下で実施できます。
$ git fetch --all
$ git checkout origin/main
$ python3 install_requirements.py
すでに2.3から2.7にバージョンが進んでいました。
$ python3 -c "import depthai as d; print(d.__version__)"
2.7.1.0.dev+4a36b560195f91874aa884221a47d77bd9f88875
バージョンアップ後、再度サンプル実行したら、何事もなく動きました。嬉しい!
$ python3 depth_preview.py
すぐ動くサンプル
DepthAIでテルミン
DepthAIでロボット(myCobot)をコントロール
OAK-D Liteの動かし方
Unity