isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble gxf_isaac_bi3d isaac_ros_bi3d isaac_ros_nitros_bi3d_inference_param_array_type

Repository Summary

Description NVIDIA-accelerated, deep learned depth segmentation and obstacle field ranging using Bi3D
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_depth_segmentation.git
VCS Type git
VCS Version main
Last Updated 2025-02-28
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

Isaac ROS Depth Segmentation

NVIDIA-accelerated packages for depth segmentation.

image

Webinar Available

Learn how to use this package by watching our on-demand webinar: Using ML Models in ROS 2 to Robustly Estimate Distance to Obstacles


Overview

Isaac ROS Depth Segmentation provides NVIDIA NVIDIA-accelerated packages for depth segmentation. The isaac_ros_bi3d package uses the optimized Bi3D DNN model to perform stereo-depth estimation via binary classification, which is used for depth segmentation. Depth segmentation can be used to determine whether an obstacle is within a proximity field and to avoid collisions with obstacles during navigation.

image

Bi3D is used in a graph of nodes to provide depth segmentation from a time-synchronized input left and right stereo image pair. Images to Bi3D need to be rectified and resized to the appropriate input resolution. The aspect ratio of the image needs to be maintained; hence, a crop and resize may be required to maintain the input aspect ratio. The graph for DNN encode, to DNN inference, to DNN decode is part of the Bi3D node. Inference is performed using TensorRT, as the Bi3D DNN model is designed to use optimizations supported by TensorRT.

Compared to other stereo disparity functions, depth segmentation provides a prediction of whether an obstacle is within a proximity field, as opposed to continuous depth, while simultaneously predicting freespace from the ground plane, which other functions typically do not provide. Also unlike other stereo disparity functions in Isaac ROS, depth segmentation runs on NVIDIA DLA (deep learning accelerator), which is separate and independent from the GPU. For more information on disparity, refer to this page.

[!Note] This DNN is optimized for and evaluated with RGB global shutter camera images, and accuracy may vary on monochrome images.

Isaac ROS NITROS Acceleration

This package is powered by NVIDIA Isaac Transport for ROS (NITROS), which leverages type adaptation and negotiation to optimize message formats and dramatically accelerate communication between participating nodes.

Performance

Sample Graph

Input Size

AGX Orin

Orin NX

x86_64 w/ RTX 4090

Depth Segmentation Node



576p



41.4 fps


80 ms @ 30Hz

28.1 fps


98 ms @ 30Hz

105 fps


25 ms @ 30Hz


Documentation

Please visit the Isaac ROS Documentation to learn how to use this repository.


Packages

Latest

Update 2024-12-10: Update to be compatible with JetPack 6.1

CONTRIBUTING

Isaac ROS Contribution Rules

Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

Contributors must sign-off each commit by adding a Signed-off-by: ... line to commit messages to certify that they have the right to submit the code they are contributing to the project according to the Developer Certificate of Origin (DCO).


isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble

isaac_ros_depth_segmentation repository

deep-learning gpu nvidia stereo-vision jetson ros2 stereo-camera ros2-humble