Skip to content

Commit

Permalink
Merge pull request #41 from NVIDIA-ISAAC-ROS/release-3.0
Browse files Browse the repository at this point in the history
Isaac ROS 3.0.1
  • Loading branch information
jaiveersinghNV authored Jun 14, 2024
2 parents 1db58ee + 0c45413 commit ce43e59
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 33 deletions.
39 changes: 21 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,35 @@ NVIDIA-accelerated, deep learned model support for object detection including De

## Overview

[Isaac ROS Object Detection](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_object_detection) contains an ROS 2 package to perform object
detection. `isaac_ros_detectnet` provides a method for spatial
[Isaac ROS Object Detection](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_object_detection) contains ROS 2 packages to perform object
detection.
`isaac_ros_rtdetr`, `isaac_ros_detectnet`, and `isaac_ros_yolov8` each provide a method for spatial
classification using bounding boxes with an input image. Classification
is performed by a GPU-accelerated
[DetectNet](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/tao/models/pretrained_detectnet_v2)
model. The output prediction can be used by perception functions to
is performed by a GPU-accelerated model of the appropriate architecture:

- `isaac_ros_rtdetr`: [RT-DETR models](https://nvidia-isaac-ros.github.io/concepts/object_detection/rtdetr/index.html)
- `isaac_ros_detectnet`: [DetectNet models](https://nvidia-isaac-ros.github.io/concepts/object_detection/detectnet/index.html)
- `isaac_ros_yolov8`: [YOLOv8 models](https://nvidia-isaac-ros.github.io/concepts/object_detection/yolov8/index.html)

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

<div align="center"><a class="reference internal image-reference" href="https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_object_detection/isaac_ros_object_detection_nodegraph.png/"><img alt="image" src="https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_object_detection/isaac_ros_object_detection_nodegraph.png/" width="800px"/></a></div>

`isaac_ros_detectnet` is used in a graph of nodes to provide a
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
[DetectNet](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/tao/models/pretrained_detectnet_v2)
model 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 DetectNet; image resolution may be reduced to
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 a DNN encoder to process the input image into Tensors for the
DetectNet model. Prediction results are clustered in the DNN decoder to
group multiple detections on the same object. Output is provided as a
detection array with object classes.
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
Expand All @@ -41,10 +48,6 @@ 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.

> [!Note]
> DetectNet is similar to other popular object detection
> models such as YOLOV3, FasterRCNN, and SSD, while being efficient at
> detecting multiple object classes in large images.
<div align="center"><a class="reference internal image-reference" href="https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_object_detection/isaac_ros_object_detection_example_bboxseg.png/"><img alt="image" src="https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_object_detection/isaac_ros_object_detection_example_bboxseg.png/" width="800px"/></a></div>

Object detection classifies a rectangle of pixels as containing an
Expand Down
2 changes: 1 addition & 1 deletion gxf_isaac_detectnet/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ SPDX-License-Identifier: Apache-2.0
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>gxf_isaac_detectnet</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Detectnet GXF extension.</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,10 @@ def generate_launch_description():
'encoding_desired': 'rgb8',
}],
remappings=[
('camera_info', 'front_stereo_camera/left_rgb/camerainfo'),
('image', 'front_stereo_camera/left_rgb/image_raw'),
('resize/camera_info', 'front_stereo_camera/left_rgb/camerainfo_resize'),
('resize/image', 'front_stereo_camera/left_rgb/image_resize')]
('camera_info', 'front_stereo_camera/left/camera_info'),
('image', 'front_stereo_camera/left/image_rect_color'),
('resize/camera_info', 'front_stereo_camera/left/camera_info_resize'),
('resize/image', 'front_stereo_camera/left/image_resize')]
)

encoder_dir = get_package_share_directory('isaac_ros_dnn_image_encoder')
Expand All @@ -71,8 +71,8 @@ def generate_launch_description():
'attach_to_shared_component_container': 'True',
'component_container_name': 'detectnet_container/detectnet_container',
'dnn_image_encoder_namespace': 'detectnet_encoder',
'image_input_topic': '/front_stereo_camera/left_rgb/image_resize',
'camera_info_input_topic': '/front_stereo_camera/left_rgb/camerainfo_resize',
'image_input_topic': '/front_stereo_camera/left/image_resize',
'camera_info_input_topic': '/front_stereo_camera/left/camera_info_resize',
'tensor_output_topic': '/tensor_pub',
}.items(),
)
Expand Down Expand Up @@ -117,7 +117,7 @@ def generate_launch_description():
package='isaac_ros_detectnet',
executable='isaac_ros_detectnet_visualizer.py',
name='detectnet_visualizer',
remappings=[('image', 'front_stereo_camera/left_rgb/image_resize')]
remappings=[('image', 'front_stereo_camera/left/image_resize')]

)

Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_detectnet/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ SPDX-License-Identifier: Apache-2.0
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_detectnet</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>DetectNet model processing</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
3 changes: 1 addition & 2 deletions isaac_ros_detectnet/scripts/setup_model.sh
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ function setup_model() {
model_name_from_model_link=$(extract_model_name "$MODEL_LINK")
echo "Model name from model link: $model_name_from_model_link"
echo Creating Directory : ${ISAAC_ROS_WS}/isaac_ros_assets/models/$model_name_from_model_link/1
rm -rf ${ISAAC_ROS_WS}/isaac_ros_assets/models
rm -rf ${ISAAC_ROS_WS}/isaac_ros_assets/models/$model_name_from_model_link
mkdir -p ${ISAAC_ROS_WS}/isaac_ros_assets/models/$model_name_from_model_link/1
cd ${ISAAC_ROS_WS}/isaac_ros_assets/models/$model_name_from_model_link/1
echo Downloading .etlt file from $MODEL_LINK
Expand All @@ -99,7 +99,6 @@ function setup_model() {
-o $OUTPUT_LAYERS\
$MODEL_FILE_NAME
echo Copying .pbtxt config file to ${ISAAC_ROS_WS}/isaac_ros_assets/models/$model_name_from_model_link
cd /workspaces/isaac_ros-dev/src/isaac_ros_object_detection/isaac_ros_detectnet
export ISAAC_ROS_DETECTNET_PATH=$(ros2 pkg prefix isaac_ros_detectnet --share)
cp $ISAAC_ROS_DETECTNET_PATH/config/$CONFIG_FILE \
${ISAAC_ROS_WS}/isaac_ros_assets/models/$model_name_from_model_link/config.pbtxt
Expand Down
4 changes: 2 additions & 2 deletions isaac_ros_rtdetr/launch/isaac_ros_rtdetr_isaac_sim.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ def generate_launch_description():
'disable_padding': True
}],
remappings=[
('image', 'front_stereo_camera/left_rgb/image_raw'),
('camera_info', 'front_stereo_camera/left_rgb/camerainfo')
('image', 'front_stereo_camera/left/image_rect_color'),
('camera_info', 'front_stereo_camera/left/camera_info')
]
)
pad_node = ComposableNode(
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_rtdetr/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ SPDX-License-Identifier: Apache-2.0
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_rtdetr</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>RT-DETR model processing</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_yolov8/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_yolov8</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Isaac ROS YOLOv8 decoding</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down

0 comments on commit ce43e59

Please sign in to comment.