Skip to main content

Jetson AGX Orin上でDepth Anything V3をデプロイ

はじめに

Depth Anything V3は、単一のRGB画像から高品質な深度マップを生成することで3D知覚を革新する最先端の単眼深度推定モデルです。特殊なハードウェアや複数のカメラ入力を必要とする従来の深度推定手法とは異なり、Depth Anything V3は高度な深層学習技術を活用して、標準的な2D画像のみを使用して正確な深度情報を予測します。これにより、ハードウェアの制約と計算効率が重要な考慮事項となるエッジAIアプリケーションにとって特に価値があります。このwikiでは、リアルタイムロボティクスアプリケーション向けのROS2統合を使用して、Jetson AGX Orin上でDepth Anything V3をデプロイする方法をガイドします。

前提条件

技術的ハイライト

  • 高品質単眼深度推定: Depth Anything V3は、特殊な深度センサーやステレオカメラセットアップを必要とせずに、単一のRGB画像から正確な深度マップを生成します。

  • エッジデプロイメント最適化: このモデルは、Jetson AGX Orinなどのエッジデバイスでの効率的な推論のために特別に設計されており、最大パフォーマンスのためのTensorRT最適化を備えています。

  • リアルタイム処理: 高解像度画像をリアルタイムで処理する能力があり、自律ナビゲーション、障害物回避、ロボット操作タスクに適しています。

  • ROS2統合: ロボットシステムへのシームレスな統合のために、深度マップとポイントクラウド配信を備えたネイティブROS2 Humbleサポートを提供します。

  • 柔軟な入力サポート: USBカメラ、ROSイメージトピック、事前録画されたビデオストリームなど、さまざまな入力ソースで動作します。

環境設定

ステップ1. 依存関係のインストール

sudo apt update
sudo apt install -y \
build-essential \
cmake \
git \
libopencv-dev \
python3-pip \
python3-colcon-common-extensions \
v4l-utils

ステップ2. Python依存関係のインストール

pip3 install numpy opencv-python

ステップ3. CUDA環境変数の設定

# Add CUDA environment variables to .bashrc
echo '
# CUDA Environment
export CUDA_HOME=/usr/local/cuda
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
export CUDACXX=$CUDA_HOME/bin/nvcc
' >> ~/.bashrc

# Reload shell configuration
source ~/.bashrc

# Verify CUDA installation
nvcc --version

ステップ4. ROS2 USBカメラパッケージのインストール

# Install USB camera driver for ROS2
sudo apt install -y ros-humble-usb-cam

# Install additional ROS2 dependencies
sudo apt install -y ros-humble-cv-bridge
sudo apt install -y ros-humble-image-transport
sudo apt install -y ros-humble-image-geometry
sudo apt install -y ros-humble-cv-bridge ros-humble-image-transport ros-humble-rviz2

ステップ5. Depth Anything V3 ROS2環境のセットアップ

# Clone the repository
git clone https://github.com/zibochen6/ros2-depth-anything-v3-trt.git

# Navigate to the project directory
cd ros2-depth-anything-v3-trt

ステップ6. ROS2パッケージのビルド

# Build the depth_anything_v3 package with Release configuration
colcon build --packages-select depth_anything_v3 --cmake-args -DCMAKE_BUILD_TYPE=Release

# Source the workspace
source install/setup.bash

ステップ7. TensorRTエンジンの生成

note

エンジンファイルを生成する前に、Depth Anything V3の.onnxモデルを事前にダウンロードし、ros2-depth-anything-v3-trt/onnxディレクトリに配置する必要があります。

# Make the engine generation script executable
chmod +x generate_engines.sh

# Generate TensorRT engines from ONNX models
./generate_engines.sh onnx

.engineファイルが生成されている間、しばらくお待ちください。変換が完了すると、以下のようにonnxディレクトリに2つのファイルが作成されます。

深度推定の実行

カメラによる深度推定

ステップ1. USBカメラの接続

USBカメラをJetson AGX Orinデバイスに接続します。カメラが検出されていることを確認してください:

# Check if USB camera is detected
ls /dev/video*

期待される出力:

/dev/video0  /dev/video1

ステップ2. カメラキャリブレーション

カメラキャリブレーションについては、このwikiを参照してください。 キャリブレーションされたパラメータをcamera_info_example.yamlファイルに書き込みます

ステップ3. USBカメラノードの起動

#Start the script for camera depth estimation
./run_camera_depth_rviz.sh

ビデオによる深度推定

ステップ1. ビデオファイルの準備

深度推定用のビデオファイルを準備します。

ステップ2. ビデオ深度推定ノードの起動

#Start the script for video depth estimation
./run_video_depth.sh

参考文献

技術サポート & 製品ディスカッション

私たちの製品をお選びいただき、ありがとうございます!私たちの製品での体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。さまざまな好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。

Loading Comments...