9.8 目标检测

Docker 使用参考: 模块 3.7 Docker

Isaac ROS 目标检测网络链接:https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_object_detection/index.html

概述

Isaac ROS 目标检测包含 ROS 2 中的软件包,用于执行目标检测。Isaac ros rtdetr、Isaac ros dectnet 和 isaac ros yolov8 分别提供了一种使用边界框对输入图像进行空间分类的方法。该分类由相应结构的 GPU 加速模型实现:

isac ros rtdetr:RT-DTR 模型

isac ros dectnet:DetectNet 模型

isac ros yolov8:YOLOv8 模型

输出预测可用于了解图像中物体的存在及其空间位置。

快速开始

为了简化开发,我们主要使用 Isaac ROS Dev Docker 镜像并在其上进行影响演示。该演示无需安装任何摄像头设备,通过播放 rosbag 文件来模拟来自摄像头的数据流。

如果您计划在真实硬件上或通过连接的摄像头运行该工作流程,请参阅官方 Isaac ROS 文档以了解支持的摄像头配置。

打开终端,进入工作区,并进入 Isaac ROS 开发容器。

bash

cd ${ISAAC_ROS_WS}/src

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

运行以下启动命令:

bash

ros2 launch isaac_ros_examples isaac_ros_examples.launch.py launch_fragments:=detectnet interface_specs_file:=${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_detectnet/quickstart_interface_specs.json

打开第二个终端并进入容器。

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

运行以下命令:

bash

ros2 bag play -l ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_detectnet/rosbags/detectnet_rosbag --remap image:=image_rect camera_info:=camera_info_rect

查看结果

打开第三个终端并进入容器。

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

运行以下命令:

bash

ros2 run isaac_ros_detectnet isaac_ros_detectnet_visualizer.py --ros-args --remap image:=detectnet_encoder/resize/image

打开第四个终端并进入容器。

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

运行以下命令以查看结果:

bash

ros2 run rqt_image_view rqt_image_view /detectnet_processed_image