mgonzs13/yolo_ros

Ultralytics YOLOv8, YOLOv9, YOLOv10, YOLOv11, YOLOv12 for ROS 2

解决的问题

yolo_ros 是 Ultralytics YOLO 模型的 ROS 2 封装,使机器人开发者能够轻松地将高级计算机视觉任务集成到机器人软件栈中。它弥合了原始摄像头画面与可操作的空间数据之间的差距,提供了一种标准化的方法,用于在机器人环境中执行物体检测、跟踪和 3D 定位。

工作原理

该包封装了 Ultralytics YOLO 库,将其功能作为 ROS 2 节点暴露。它处理来自摄像头话题的 RGB 图像,并发布检测结果、跟踪 ID 和调试图像。当配置为 3D 检测时,它使用 RGB-D 相机的深度图像将 2D 边界框或分割掩码投影到 3D 空间中,计算相对于目标帧(例如 base_link)的 3D 边界框和关键点。

适用人群

使用 ROS 2(Humble、Iron、Jazzy、Kilted、Lyrical 或 Rolling)和 RGB-D 相机,需要为机器人实现物体检测、实例分割或人体姿态估计的开发者和研究人员。

主要亮点

  • 广泛的模型支持:兼容多种 YOLO 版本(v3 至 v12、YOLO-World、YOLOE 和 YOLOv26)。
  • 3D 空间感知:利用深度数据将 2D 检测结果转换为 3D 边界框和关键点。
  • 生命周期节点支持:实现 ROS 2 生命周期节点,以在系统空闲时优化资源使用(CPU/VRAM)。
  • 多功能视觉任务:支持物体检测、跟踪、ByteTrack、实例分割和人体姿态估计。
  • YOLO-World 支持:包含一个服务,可在不重启节点的情况下动态更新检测类别。

相关

  • 项目
  • 项目
  • 项目
  • 项目