No version for distro humble showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_object_detection.git
VCS Type git
VCS Version main
Last Updated 2026-09-22
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Isaac ROS Object Detection

NVIDIA-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains ROS 2 packages to perform object detection. isaac_ros_rtdetr, isaac_ros_detectnet, isaac_ros_yolov8, and isaac_ros_grounding_dino each provide a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated model of the appropriate architecture:

The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

Each Isaac ROS Object Detection package is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A trained model of the appropriate architecture is required to produce the detection array.

Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of the specific object detection model; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides DNN encoder utilities to process the input image into Tensors for the object detection models. Prediction results are decoded in model-specific ways, often involving clustering and thresholding to group multiple detections on the same object and reduce spurious detections. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

ROS 2 Native rosidl::Buffer Acceleration

This package uses rosidl::Buffer, a feature built into ROS 2 Lyrical, to avoid unnecessary copies of large payloads between CPU and accelerator memory. The CUDA buffer backend builds on this native ROS 2 feature to provide CUDA memory storage and transport. Most applications can use standard ROS messages and conversion packages without depending directly on a buffer backend. See rosidl::Buffer and Buffer Backends for details.

Performance

Sample Graph

Input Size

AGX Thor T5000

AGX Thor T4000

AGX Orin

Orin Nano Super 8GB

DGX Spark

x86_64 w/ RTX 5090

x86_64 w/ RTX 5070

DetectNet Object Detection Graph

544p

216 fps


7.7 ms @ 30Hz

157 fps


8.4 ms @ 30Hz

73.5 fps


15 ms @ 30Hz

30.4 fps


37 ms @ 30Hz

120 fps


8.9 ms @ 30Hz

291 fps


4.7 ms @ 30Hz

166 fps


7.1 ms @ 30Hz

Grounding DINO Object Detection Graph

544p

25.3 fps

17.5 fps

13.6 fps

–

17.3 fps

156 fps


8.0 ms @ 30Hz

65.6 fps


17 ms @ 30Hz

RT-DETR Object Detection Graph


SyntheticaDETR

720p

195 fps


6.7 ms @ 30Hz

177 fps


8.3 ms @ 30Hz

87.3 fps


13 ms @ 30Hz

40.0 fps


27 ms @ 30Hz

181 fps


6.8 ms @ 30Hz

718 fps


2.3 ms @ 30Hz

374 fps


3.6 ms @ 30Hz


Documentation

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


Packages

File truncated at 100 lines see the full file

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 Contribution Rules Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): > **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)](https://developercertificate.org/). [//]: # (202201002)
No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_object_detection.git
VCS Type git
VCS Version main
Last Updated 2026-09-22
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Isaac ROS Object Detection

NVIDIA-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains ROS 2 packages to perform object detection. isaac_ros_rtdetr, isaac_ros_detectnet, isaac_ros_yolov8, and isaac_ros_grounding_dino each provide a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated model of the appropriate architecture:

The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

Each Isaac ROS Object Detection package is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A trained model of the appropriate architecture is required to produce the detection array.

Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of the specific object detection model; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides DNN encoder utilities to process the input image into Tensors for the object detection models. Prediction results are decoded in model-specific ways, often involving clustering and thresholding to group multiple detections on the same object and reduce spurious detections. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

ROS 2 Native rosidl::Buffer Acceleration

This package uses rosidl::Buffer, a feature built into ROS 2 Lyrical, to avoid unnecessary copies of large payloads between CPU and accelerator memory. The CUDA buffer backend builds on this native ROS 2 feature to provide CUDA memory storage and transport. Most applications can use standard ROS messages and conversion packages without depending directly on a buffer backend. See rosidl::Buffer and Buffer Backends for details.

Performance

Sample Graph

Input Size

AGX Thor T5000

AGX Thor T4000

AGX Orin

Orin Nano Super 8GB

DGX Spark

x86_64 w/ RTX 5090

x86_64 w/ RTX 5070

DetectNet Object Detection Graph

544p

216 fps


7.7 ms @ 30Hz

157 fps


8.4 ms @ 30Hz

73.5 fps


15 ms @ 30Hz

30.4 fps


37 ms @ 30Hz

120 fps


8.9 ms @ 30Hz

291 fps


4.7 ms @ 30Hz

166 fps


7.1 ms @ 30Hz

Grounding DINO Object Detection Graph

544p

25.3 fps

17.5 fps

13.6 fps

–

17.3 fps

156 fps


8.0 ms @ 30Hz

65.6 fps


17 ms @ 30Hz

RT-DETR Object Detection Graph


SyntheticaDETR

720p

195 fps


6.7 ms @ 30Hz

177 fps


8.3 ms @ 30Hz

87.3 fps


13 ms @ 30Hz

40.0 fps


27 ms @ 30Hz

181 fps


6.8 ms @ 30Hz

718 fps


2.3 ms @ 30Hz

374 fps


3.6 ms @ 30Hz


Documentation

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


Packages

File truncated at 100 lines see the full file

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 Contribution Rules Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): > **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)](https://developercertificate.org/). [//]: # (202201002)
No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_object_detection.git
VCS Type git
VCS Version main
Last Updated 2026-09-22
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Isaac ROS Object Detection

NVIDIA-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains ROS 2 packages to perform object detection. isaac_ros_rtdetr, isaac_ros_detectnet, isaac_ros_yolov8, and isaac_ros_grounding_dino each provide a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated model of the appropriate architecture:

The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

Each Isaac ROS Object Detection package is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A trained model of the appropriate architecture is required to produce the detection array.

Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of the specific object detection model; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides DNN encoder utilities to process the input image into Tensors for the object detection models. Prediction results are decoded in model-specific ways, often involving clustering and thresholding to group multiple detections on the same object and reduce spurious detections. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

ROS 2 Native rosidl::Buffer Acceleration

This package uses rosidl::Buffer, a feature built into ROS 2 Lyrical, to avoid unnecessary copies of large payloads between CPU and accelerator memory. The CUDA buffer backend builds on this native ROS 2 feature to provide CUDA memory storage and transport. Most applications can use standard ROS messages and conversion packages without depending directly on a buffer backend. See rosidl::Buffer and Buffer Backends for details.

Performance

Sample Graph

Input Size

AGX Thor T5000

AGX Thor T4000

AGX Orin

Orin Nano Super 8GB

DGX Spark

x86_64 w/ RTX 5090

x86_64 w/ RTX 5070

DetectNet Object Detection Graph

544p

216 fps


7.7 ms @ 30Hz

157 fps


8.4 ms @ 30Hz

73.5 fps


15 ms @ 30Hz

30.4 fps


37 ms @ 30Hz

120 fps


8.9 ms @ 30Hz

291 fps


4.7 ms @ 30Hz

166 fps


7.1 ms @ 30Hz

Grounding DINO Object Detection Graph

544p

25.3 fps

17.5 fps

13.6 fps

–

17.3 fps

156 fps


8.0 ms @ 30Hz

65.6 fps


17 ms @ 30Hz

RT-DETR Object Detection Graph


SyntheticaDETR

720p

195 fps


6.7 ms @ 30Hz

177 fps


8.3 ms @ 30Hz

87.3 fps


13 ms @ 30Hz

40.0 fps


27 ms @ 30Hz

181 fps


6.8 ms @ 30Hz

718 fps


2.3 ms @ 30Hz

374 fps


3.6 ms @ 30Hz


Documentation

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


Packages

File truncated at 100 lines see the full file

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 Contribution Rules Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): > **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)](https://developercertificate.org/). [//]: # (202201002)
No version for distro lyrical showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_object_detection.git
VCS Type git
VCS Version main
Last Updated 2026-09-22
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Isaac ROS Object Detection

NVIDIA-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains ROS 2 packages to perform object detection. isaac_ros_rtdetr, isaac_ros_detectnet, isaac_ros_yolov8, and isaac_ros_grounding_dino each provide a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated model of the appropriate architecture:

The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

Each Isaac ROS Object Detection package is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A trained model of the appropriate architecture is required to produce the detection array.

Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of the specific object detection model; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides DNN encoder utilities to process the input image into Tensors for the object detection models. Prediction results are decoded in model-specific ways, often involving clustering and thresholding to group multiple detections on the same object and reduce spurious detections. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

ROS 2 Native rosidl::Buffer Acceleration

This package uses rosidl::Buffer, a feature built into ROS 2 Lyrical, to avoid unnecessary copies of large payloads between CPU and accelerator memory. The CUDA buffer backend builds on this native ROS 2 feature to provide CUDA memory storage and transport. Most applications can use standard ROS messages and conversion packages without depending directly on a buffer backend. See rosidl::Buffer and Buffer Backends for details.

Performance

Sample Graph

Input Size

AGX Thor T5000

AGX Thor T4000

AGX Orin

Orin Nano Super 8GB

DGX Spark

x86_64 w/ RTX 5090

x86_64 w/ RTX 5070

DetectNet Object Detection Graph

544p

216 fps


7.7 ms @ 30Hz

157 fps


8.4 ms @ 30Hz

73.5 fps


15 ms @ 30Hz

30.4 fps


37 ms @ 30Hz

120 fps


8.9 ms @ 30Hz

291 fps


4.7 ms @ 30Hz

166 fps


7.1 ms @ 30Hz

Grounding DINO Object Detection Graph

544p

25.3 fps

17.5 fps

13.6 fps

–

17.3 fps

156 fps


8.0 ms @ 30Hz

65.6 fps


17 ms @ 30Hz

RT-DETR Object Detection Graph


SyntheticaDETR

720p

195 fps


6.7 ms @ 30Hz

177 fps


8.3 ms @ 30Hz

87.3 fps


13 ms @ 30Hz

40.0 fps


27 ms @ 30Hz

181 fps


6.8 ms @ 30Hz

718 fps


2.3 ms @ 30Hz

374 fps


3.6 ms @ 30Hz


Documentation

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


Packages

File truncated at 100 lines see the full file

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 Contribution Rules Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): > **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)](https://developercertificate.org/). [//]: # (202201002)
No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_object_detection.git
VCS Type git
VCS Version main
Last Updated 2026-09-22
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Isaac ROS Object Detection

NVIDIA-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains ROS 2 packages to perform object detection. isaac_ros_rtdetr, isaac_ros_detectnet, isaac_ros_yolov8, and isaac_ros_grounding_dino each provide a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated model of the appropriate architecture:

The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

Each Isaac ROS Object Detection package is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A trained model of the appropriate architecture is required to produce the detection array.

Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of the specific object detection model; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides DNN encoder utilities to process the input image into Tensors for the object detection models. Prediction results are decoded in model-specific ways, often involving clustering and thresholding to group multiple detections on the same object and reduce spurious detections. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

ROS 2 Native rosidl::Buffer Acceleration

This package uses rosidl::Buffer, a feature built into ROS 2 Lyrical, to avoid unnecessary copies of large payloads between CPU and accelerator memory. The CUDA buffer backend builds on this native ROS 2 feature to provide CUDA memory storage and transport. Most applications can use standard ROS messages and conversion packages without depending directly on a buffer backend. See rosidl::Buffer and Buffer Backends for details.

Performance

Sample Graph

Input Size

AGX Thor T5000

AGX Thor T4000

AGX Orin

Orin Nano Super 8GB

DGX Spark

x86_64 w/ RTX 5090

x86_64 w/ RTX 5070

DetectNet Object Detection Graph

544p

216 fps


7.7 ms @ 30Hz

157 fps


8.4 ms @ 30Hz

73.5 fps


15 ms @ 30Hz

30.4 fps


37 ms @ 30Hz

120 fps


8.9 ms @ 30Hz

291 fps


4.7 ms @ 30Hz

166 fps


7.1 ms @ 30Hz

Grounding DINO Object Detection Graph

544p

25.3 fps

17.5 fps

13.6 fps

–

17.3 fps

156 fps


8.0 ms @ 30Hz

65.6 fps


17 ms @ 30Hz

RT-DETR Object Detection Graph


SyntheticaDETR

720p

195 fps


6.7 ms @ 30Hz

177 fps


8.3 ms @ 30Hz

87.3 fps


13 ms @ 30Hz

40.0 fps


27 ms @ 30Hz

181 fps


6.8 ms @ 30Hz

718 fps


2.3 ms @ 30Hz

374 fps


3.6 ms @ 30Hz


Documentation

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


Packages

File truncated at 100 lines see the full file

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 Contribution Rules Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): > **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)](https://developercertificate.org/). [//]: # (202201002)

Repository Summary

Description
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_object_detection.git
VCS Type git
VCS Version main
Last Updated 2026-09-22
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Isaac ROS Object Detection

NVIDIA-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains ROS 2 packages to perform object detection. isaac_ros_rtdetr, isaac_ros_detectnet, isaac_ros_yolov8, and isaac_ros_grounding_dino each provide a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated model of the appropriate architecture:

The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

Each Isaac ROS Object Detection package is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A trained model of the appropriate architecture is required to produce the detection array.

Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of the specific object detection model; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides DNN encoder utilities to process the input image into Tensors for the object detection models. Prediction results are decoded in model-specific ways, often involving clustering and thresholding to group multiple detections on the same object and reduce spurious detections. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

ROS 2 Native rosidl::Buffer Acceleration

This package uses rosidl::Buffer, a feature built into ROS 2 Lyrical, to avoid unnecessary copies of large payloads between CPU and accelerator memory. The CUDA buffer backend builds on this native ROS 2 feature to provide CUDA memory storage and transport. Most applications can use standard ROS messages and conversion packages without depending directly on a buffer backend. See rosidl::Buffer and Buffer Backends for details.

Performance

Sample Graph

Input Size

AGX Thor T5000

AGX Thor T4000

AGX Orin

Orin Nano Super 8GB

DGX Spark

x86_64 w/ RTX 5090

x86_64 w/ RTX 5070

DetectNet Object Detection Graph

544p

216 fps


7.7 ms @ 30Hz

157 fps


8.4 ms @ 30Hz

73.5 fps


15 ms @ 30Hz

30.4 fps


37 ms @ 30Hz

120 fps


8.9 ms @ 30Hz

291 fps


4.7 ms @ 30Hz

166 fps


7.1 ms @ 30Hz

Grounding DINO Object Detection Graph

544p

25.3 fps

17.5 fps

13.6 fps

–

17.3 fps

156 fps


8.0 ms @ 30Hz

65.6 fps


17 ms @ 30Hz

RT-DETR Object Detection Graph


SyntheticaDETR

720p

195 fps


6.7 ms @ 30Hz

177 fps


8.3 ms @ 30Hz

87.3 fps


13 ms @ 30Hz

40.0 fps


27 ms @ 30Hz

181 fps


6.8 ms @ 30Hz

718 fps


2.3 ms @ 30Hz

374 fps


3.6 ms @ 30Hz


Documentation

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


Packages

File truncated at 100 lines see the full file

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 Contribution Rules Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): > **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)](https://developercertificate.org/). [//]: # (202201002)
No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_object_detection.git
VCS Type git
VCS Version main
Last Updated 2026-09-22
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Isaac ROS Object Detection

NVIDIA-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains ROS 2 packages to perform object detection. isaac_ros_rtdetr, isaac_ros_detectnet, isaac_ros_yolov8, and isaac_ros_grounding_dino each provide a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated model of the appropriate architecture:

The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

Each Isaac ROS Object Detection package is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A trained model of the appropriate architecture is required to produce the detection array.

Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of the specific object detection model; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides DNN encoder utilities to process the input image into Tensors for the object detection models. Prediction results are decoded in model-specific ways, often involving clustering and thresholding to group multiple detections on the same object and reduce spurious detections. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

ROS 2 Native rosidl::Buffer Acceleration

This package uses rosidl::Buffer, a feature built into ROS 2 Lyrical, to avoid unnecessary copies of large payloads between CPU and accelerator memory. The CUDA buffer backend builds on this native ROS 2 feature to provide CUDA memory storage and transport. Most applications can use standard ROS messages and conversion packages without depending directly on a buffer backend. See rosidl::Buffer and Buffer Backends for details.

Performance

Sample Graph

Input Size

AGX Thor T5000

AGX Thor T4000

AGX Orin

Orin Nano Super 8GB

DGX Spark

x86_64 w/ RTX 5090

x86_64 w/ RTX 5070

DetectNet Object Detection Graph

544p

216 fps


7.7 ms @ 30Hz

157 fps


8.4 ms @ 30Hz

73.5 fps


15 ms @ 30Hz

30.4 fps


37 ms @ 30Hz

120 fps


8.9 ms @ 30Hz

291 fps


4.7 ms @ 30Hz

166 fps


7.1 ms @ 30Hz

Grounding DINO Object Detection Graph

544p

25.3 fps

17.5 fps

13.6 fps

–

17.3 fps

156 fps


8.0 ms @ 30Hz

65.6 fps


17 ms @ 30Hz

RT-DETR Object Detection Graph


SyntheticaDETR

720p

195 fps


6.7 ms @ 30Hz

177 fps


8.3 ms @ 30Hz

87.3 fps


13 ms @ 30Hz

40.0 fps


27 ms @ 30Hz

181 fps


6.8 ms @ 30Hz

718 fps


2.3 ms @ 30Hz

374 fps


3.6 ms @ 30Hz


Documentation

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


Packages

File truncated at 100 lines see the full file

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 Contribution Rules Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): > **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)](https://developercertificate.org/). [//]: # (202201002)
No version for distro iron showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_object_detection.git
VCS Type git
VCS Version main
Last Updated 2026-09-22
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Isaac ROS Object Detection

NVIDIA-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains ROS 2 packages to perform object detection. isaac_ros_rtdetr, isaac_ros_detectnet, isaac_ros_yolov8, and isaac_ros_grounding_dino each provide a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated model of the appropriate architecture:

The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

Each Isaac ROS Object Detection package is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A trained model of the appropriate architecture is required to produce the detection array.

Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of the specific object detection model; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides DNN encoder utilities to process the input image into Tensors for the object detection models. Prediction results are decoded in model-specific ways, often involving clustering and thresholding to group multiple detections on the same object and reduce spurious detections. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

ROS 2 Native rosidl::Buffer Acceleration

This package uses rosidl::Buffer, a feature built into ROS 2 Lyrical, to avoid unnecessary copies of large payloads between CPU and accelerator memory. The CUDA buffer backend builds on this native ROS 2 feature to provide CUDA memory storage and transport. Most applications can use standard ROS messages and conversion packages without depending directly on a buffer backend. See rosidl::Buffer and Buffer Backends for details.

Performance

Sample Graph

Input Size

AGX Thor T5000

AGX Thor T4000

AGX Orin

Orin Nano Super 8GB

DGX Spark

x86_64 w/ RTX 5090

x86_64 w/ RTX 5070

DetectNet Object Detection Graph

544p

216 fps


7.7 ms @ 30Hz

157 fps


8.4 ms @ 30Hz

73.5 fps


15 ms @ 30Hz

30.4 fps


37 ms @ 30Hz

120 fps


8.9 ms @ 30Hz

291 fps


4.7 ms @ 30Hz

166 fps


7.1 ms @ 30Hz

Grounding DINO Object Detection Graph

544p

25.3 fps

17.5 fps

13.6 fps

–

17.3 fps

156 fps


8.0 ms @ 30Hz

65.6 fps


17 ms @ 30Hz

RT-DETR Object Detection Graph


SyntheticaDETR

720p

195 fps


6.7 ms @ 30Hz

177 fps


8.3 ms @ 30Hz

87.3 fps


13 ms @ 30Hz

40.0 fps


27 ms @ 30Hz

181 fps


6.8 ms @ 30Hz

718 fps


2.3 ms @ 30Hz

374 fps


3.6 ms @ 30Hz


Documentation

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


Packages

File truncated at 100 lines see the full file

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 Contribution Rules Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): > **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)](https://developercertificate.org/). [//]: # (202201002)
No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_object_detection.git
VCS Type git
VCS Version main
Last Updated 2026-09-22
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Isaac ROS Object Detection

NVIDIA-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains ROS 2 packages to perform object detection. isaac_ros_rtdetr, isaac_ros_detectnet, isaac_ros_yolov8, and isaac_ros_grounding_dino each provide a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated model of the appropriate architecture:

The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

Each Isaac ROS Object Detection package is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A trained model of the appropriate architecture is required to produce the detection array.

Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of the specific object detection model; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides DNN encoder utilities to process the input image into Tensors for the object detection models. Prediction results are decoded in model-specific ways, often involving clustering and thresholding to group multiple detections on the same object and reduce spurious detections. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

ROS 2 Native rosidl::Buffer Acceleration

This package uses rosidl::Buffer, a feature built into ROS 2 Lyrical, to avoid unnecessary copies of large payloads between CPU and accelerator memory. The CUDA buffer backend builds on this native ROS 2 feature to provide CUDA memory storage and transport. Most applications can use standard ROS messages and conversion packages without depending directly on a buffer backend. See rosidl::Buffer and Buffer Backends for details.

Performance

Sample Graph

Input Size

AGX Thor T5000

AGX Thor T4000

AGX Orin

Orin Nano Super 8GB

DGX Spark

x86_64 w/ RTX 5090

x86_64 w/ RTX 5070

DetectNet Object Detection Graph

544p

216 fps


7.7 ms @ 30Hz

157 fps


8.4 ms @ 30Hz

73.5 fps


15 ms @ 30Hz

30.4 fps


37 ms @ 30Hz

120 fps


8.9 ms @ 30Hz

291 fps


4.7 ms @ 30Hz

166 fps


7.1 ms @ 30Hz

Grounding DINO Object Detection Graph

544p

25.3 fps

17.5 fps

13.6 fps

–

17.3 fps

156 fps


8.0 ms @ 30Hz

65.6 fps


17 ms @ 30Hz

RT-DETR Object Detection Graph


SyntheticaDETR

720p

195 fps


6.7 ms @ 30Hz

177 fps


8.3 ms @ 30Hz

87.3 fps


13 ms @ 30Hz

40.0 fps


27 ms @ 30Hz

181 fps


6.8 ms @ 30Hz

718 fps


2.3 ms @ 30Hz

374 fps


3.6 ms @ 30Hz


Documentation

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


Packages

File truncated at 100 lines see the full file

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 Contribution Rules Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): > **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)](https://developercertificate.org/). [//]: # (202201002)
No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/nvidia-isaac-ros/isaac_ros_object_detection.git
VCS Type git
VCS Version main
Last Updated 2026-09-22
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Isaac ROS Object Detection

NVIDIA-accelerated, deep learned model support for object detection including DetectNet.

original image bounding box predictions using DetectNet

Overview

Isaac ROS Object Detection contains ROS 2 packages to perform object detection. isaac_ros_rtdetr, isaac_ros_detectnet, isaac_ros_yolov8, and isaac_ros_grounding_dino each provide a method for spatial classification using bounding boxes with an input image. Classification is performed by a GPU-accelerated model of the appropriate architecture:

The output prediction can be used by perception functions to understand the presence and spatial location of an object in an image.

image

Each Isaac ROS Object Detection package is used in a graph of nodes to provide a bounding box detection array with object classes from an input image. A trained model of the appropriate architecture is required to produce the detection array.

Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of the specific object detection model; image resolution may be reduced to improve DNN inference performance, which typically scales directly with the number of pixels in the image. isaac_ros_dnn_image_encoder provides DNN encoder utilities to process the input image into Tensors for the object detection models. Prediction results are decoded in model-specific ways, often involving clustering and thresholding to group multiple detections on the same object and reduce spurious detections. Output is provided as a detection array with object classes.

DNNs have a minimum number of pixels that need to be visible on the object to provide a classification prediction. If a person cannot see the object in the image, it’s unlikely the DNN will. Reducing input resolution to reduce compute may reduce what is detected in the image. For example, a 1920x1080 image containing a distant person occupying 1k pixels (64x16) would have 0.25K pixels (32x8) when downscaled by 1/2 in both X and Y. The DNN may detect the person with the original input image, which provides 1K pixels for the person, and fail to detect the same person in the downscaled resolution, which only provides 0.25K pixels for the person.

image

Object detection classifies a rectangle of pixels as containing an object, whereas image segmentation provides more information and uses more compute to produce a classification per pixel. Object detection is used to know if, and where in a 2D image, the object exists. If a 3D spacial understanding or size of an object in pixels is required, use image segmentation.

ROS 2 Native rosidl::Buffer Acceleration

This package uses rosidl::Buffer, a feature built into ROS 2 Lyrical, to avoid unnecessary copies of large payloads between CPU and accelerator memory. The CUDA buffer backend builds on this native ROS 2 feature to provide CUDA memory storage and transport. Most applications can use standard ROS messages and conversion packages without depending directly on a buffer backend. See rosidl::Buffer and Buffer Backends for details.

Performance

Sample Graph

Input Size

AGX Thor T5000

AGX Thor T4000

AGX Orin

Orin Nano Super 8GB

DGX Spark

x86_64 w/ RTX 5090

x86_64 w/ RTX 5070

DetectNet Object Detection Graph

544p

216 fps


7.7 ms @ 30Hz

157 fps


8.4 ms @ 30Hz

73.5 fps


15 ms @ 30Hz

30.4 fps


37 ms @ 30Hz

120 fps


8.9 ms @ 30Hz

291 fps


4.7 ms @ 30Hz

166 fps


7.1 ms @ 30Hz

Grounding DINO Object Detection Graph

544p

25.3 fps

17.5 fps

13.6 fps

–

17.3 fps

156 fps


8.0 ms @ 30Hz

65.6 fps


17 ms @ 30Hz

RT-DETR Object Detection Graph


SyntheticaDETR

720p

195 fps


6.7 ms @ 30Hz

177 fps


8.3 ms @ 30Hz

87.3 fps


13 ms @ 30Hz

40.0 fps


27 ms @ 30Hz

181 fps


6.8 ms @ 30Hz

718 fps


2.3 ms @ 30Hz

374 fps


3.6 ms @ 30Hz


Documentation

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


Packages

File truncated at 100 lines see the full file

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 Contribution Rules Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html): > **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)](https://developercertificate.org/). [//]: # (202201002)