免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

ROS2 + RealSense + YOLOv8 实战(三):自定义铰链实例分割数据集采集、SAM3 标注与模型训练

ROS2 + RealSense + YOLOv8 实战(三):自定义铰链实例分割数据集采集、SAM3 标注与模型训练 摘要核心流程:本文完整走通了从 RealSense 采集铰链图片、Ultralytics Platform + SAM3 辅助标注,到本地 RTX 5060 上基于 yolov8n-seg.pt 迁移学习训练实例分割模型的闭环。关键发现:在仅 32 张图片(Train 26 / Val 6)的小数据集下,虽然 mAP50 一度达到 0.955,但离线推理显示大量低置信度预测,说明小数据集下的 mAP 并不可靠,不能直接等同于真实场景准确率。最终建议:当前阶段不应继续在小数据集上反复调参,而应优先扩充高质量、具有场景多样性的真实数据(建议 150~500 张),并加入负样本,再重新训练 hinge_v2。一、前言前面已经在 ROS2 Humble 环境下完成了 RealSense 相机与yolo_ros的联调,并成功使用官方:yolov8n-seg.pt实现实时实例分割。但官方 YOLOv8 模型主要基于 COCO 数据集训练,并不认识实际装配任务中的专用工业零件,例如本文使用的铰链 hinge。因此下一步需要构建自己的铰链数据集,并基于yolov8n-seg.pt进行迁移学习,得到:hinge-yolov8n-seg.pt整体流程如下:flowchart TD A[RealSense RGB 图像] -- B[采集铰链图片] B -- C[Ultralytics Platform] C -- D[SAM3 辅助实例分割标注] D -- E[Train / Val 数据集] E -- F[yolov8n-seg.pt 迁移学习] F -- G[best.pt] G -- H[hinge-yolov8n-seg.pt] H -- I[ROS2 / yolo_ros]本文使用的主要环境:项目环境Ubuntu22.04ROS2Humble相机Intel RealSense D435iRGB 工作分辨率424×240×30 FPSGPUNVIDIA GeForce RTX 5060 Laptop GPUCUDA可正常使用PyTorch2.11.0+cu128Ultralytics 训练环境8.4.117基础模型yolov8n-seg.pt任务hinge 实例分割二、使用 RealSense 采集铰链图片首先建立数据集目录:mkdir -p ~/hinge_dataset/raw cd ~/hinge_dataset/rawRealSense RGB 图像话题为:/camera/camera/color/image_raw当前相机已经稳定运行在:424 × 240 × 30 FPS这里不直接录制视频再抽帧,而是使用 ROS2image_saver手动触发保存图片。这样可以避免连续保存大量几乎一模一样的相邻帧。启动:cd ~/hinge_dataset/raw ros2 run image_view image_saver --ros-args \ -r image:=/camera/camera/color/image_raw \ -p save_all_image:=false \ -p filename_format:="hinge_%04i.jpg"另开一个终端查看保存服务:ros2 service list | grep save实际环境中出现的是:/save因此保存一张图片:ros2 service call /save std_srvs/srv/Empty "{}"每调用一次就保存一张,例如:
返回列表