/DepthAnything-ROS

Primary LanguageC++Apache License 2.0Apache-2.0

DepthAnything-ROS

DepthAnything-ROS is ROS2 wrapper for Depth-Anything.

nuscenes_demo.mp4
  • Environment
    • Ubuntu 22.04.01, ROS2 Humble
    • CUDA 12.3, cuDNN 8.9.5.29-1+cuda12.2, TensorRT 8.6.1.6-1+cuda12.0

Get started

Set environment

  • Install ROS2

See ROS2 document.

To install ROS2 easily, I recommend to use ansible script of Autoware. In detail, please see the installation page.

  • Install dependency
sudo apt install libgflags-dev libboost-all-dev
  • Prepare your rosbag

If you don't have any rosbag, I recommend rosbag for Nuscenes dataset.

Set onnx files

Set onnx files for DepthAnything-ROS/data or set onnx_path parameter.

Run below command to get the onnx files of pre-train model.

# Install gdown
pip install gdown
# Download onnx file
mkdir data && cd data
gdown 1jFTCJv0uJovPAww9PHCYAoek-KfeajK_

If you want to make onnx files at yourself, please use depth-anything-tensorrt.

Launch

ros2 launch depth_anything depth_anything.launch.xml

Interface

Input

  • input/image (sensor_msgs::msg::Image)

The input image.

Output

  • ~/output/depth_image (sensor_msgs::msg::Image)

The depth image made by DepthAnything.

Parameters

  • onnx_path (string)
    • Default parameter: "$(find-pkg-share depth_anything)/data/depth_anything_vitb14.onnx"

The path to onnx file.

  • precision (string)
    • Default parameter: "fp32"

The precision mode to use quantization. DepthAnything-ROS supports in "fp32" for now.

Note

Performance

  • Performance
    • RTX4090 results is written in official code
Model Params RTX4090 TensorRT RTX2070 TensorRT
Depth-Anything-Small 24.8M 3 ms 27 ms, VRAM 300MB
Depth-Anything-Base 97.5M 6 ms 65 ms, VRAM 700MB
Depth-Anything-Large 335.3M 12 ms 200 ms, VRAM 1750MB

Reference