Jetson Nano にdepthAIの環境を作ってOAK-D-LITE OpenCV DepthAIカメラ を使ってみます。
エッジAIカメラを使ってface_recognition(顔識別)をやってみるのAppendixでご紹介したhand_trackerで、
ラズパイでは少々荷の重かった3D visualizationをやってみます。
こんなやつです。
depthAIの環境を元にしてますが、そのままでは実行できなかった部分を補足しながらやってみます。
ベースはJetson Nano (4GB) + Jetpack 4.6 (Ubuntu 18.04 LTS)
OSをインストールしたら以下を実行
1 2 3 |
sudo apt update && sudo apt upgrade -y sudo apt install nano |
仮想環境を作ってそこにセットアップしてね、ということでしたのでそうします。
この場合、udevrules をセットしておかないと仮想環境からカメラが見えませんので以下を実行。
1 2 3 |
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="03e7", MODE="0666"' | sudo tee /etc/udev/rules.d/80-movidius.rules sudo udevadm control --reload-rules && sudo udevadm trigger |
SWAP領域を4GB確保しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Disable ZRAM: sudo systemctl disable nvzramconfig # Create 4GB swap file sudo fallocate -l 4G /mnt/4GB.swap sudo chmod 600 /mnt/4GB.swap sudo mkswap /mnt/4GB.swap sudo nano /etc/fstab # Add this line at the bottom of the file /mnt/4GB.swap swap swap defaults 0 0 # Reboot sudo reboot now |
仮想環境でセットアップ
1 2 3 |
sudo -H apt install -y python3-pip sudo -H pip3 install virtualenv virtualenvwrapper |
.bashrcにVirtual Env Wrapperの構成を追記します。
1 |
sudo nano ~/.bashrc |
以下を末尾に追記
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
以下を実行
1 |
source ~/.bashrc |
depthAIという仮想環境を作成
1 |
mkvirtualenv depthAI -p python3 |
depthAIの環境に入っていることを確認します。
依存パッケージをインストール
1 |
sudo wget -qO- https://docs.luxonis.com/install_dependencies.sh | bash |
リポジトリからdepthai_pythonをクローンして、要件をインストールします。
1 2 3 4 5 6 7 8 9 |
git clone https://github.com/luxonis/depthai-python.git cd depthai-python echo "export OPENBLAS_CORETYPE=ARMV8" >> ~/.bashrc cd examples python3 install_requirements.py |
Warningが出ます。 export OPENBLAS_CORETYPE=ARMV8を追記するタイミングが上記のでいいのか気になりますが….。
要件インストールを再実行します。
1 2 3 |
source ~/.bashrc python3 install_requirements.py |
物体検出してトラッキングするサンプルを実行
1 2 3 |
cd ObjectTracker ./object_tracker.py |
こんな感じ
qキーで終了
hand_trackerの3D visualizationをやってみます。
ディレクトリを戻ります。
1 |
cd ../.. |
hand_trackerをクローンして3D visualizationを実行します。
1 2 3 4 5 6 7 |
git clone https://github.com/geaxgx/depthai_hand_tracker.git cd depthai_hand_tracker/examples/3d_visualization pip3 install open3d ./demo.py |
こんな感じです。Jetson Nano レベルだとぎりぎりスムースです。TX2やXavier NXくらいが妥当かも。
Xavier NX だとこのくらいのパフォーマンス、ほぼリアルタイムでレスポンスしています。
仮想環境を抜ける
deactivate
仮想環境に再度入る
workon depthAI
これで触覚グローブなどを使えば、デジタルツィン(メタバース)の中の3Dモデルに触った感触をフィードバックできますね。また、全身骨格モデルを作って、国交省のPLATEAU [プラトー] の中を歩きまわってみるようなシミュレーションモデルもできそうですね。
MuJoCo(物理演算エンジン)もオープンソースで公開してくれてますし…..。
Appendix
Leave a Reply