引言:为了提高yolo识别的质量,提高了yolo的版本,改用yolov8进行物体识别,同时系统兼容了低版本的yolo,包括基于C++的yolov3和yolov4,以及yolov7。
简介,为了提高识别速度,系统采用了GPU进行加速,在使用7W功率的情况,大概可以稳定在20FPS,满功率情况下可以适当提高。
硬件:D435摄像头,Jetson orin nano 8G
环境:ubuntu20.04,ros-noetic, yolov8
步骤一: 启动摄像头,获取摄像头发布的图像话题
roslaunch realsense2_camera rs_camera.launch
![请添加图片描述](https://i-blog.csdnimg.cn/blog_migrate/3075bf4a8506612438de1e3aaca2505a.png)
没有出现红色报错,出现如下界面,表明摄像头启动成功
![请添加图片描述](https://i-blog.csdnimg.cn/blog_migrate/59b6413386695afe19224d834700c854.png)
步骤二:启动yolov8识别节点
roslaunch yolov8_ros yolo_v8.launch
launch文件如下,参数use_cpu设置为false,因为实际使用GPU加速,不是CPU跑,另外参数pub_topic是yolov8识别到目标后发布出来的物体在镜头中的位置,程序作了修改,直接给出目标物的中心位置,其中参数image_topic是订阅的节点话题,一定要与摄像头发布的实际话题名称对应上。
<?xml version="1.0" encoding="utf-8"?>
<launch>
<!-- Load Parameter -->
<param name="use_cpu" value="false" />
<!-- Start yolov8 and ros wrapper -->
<node pkg="yolov8_ros" type="yolo_v8.py" name="yolov8_ros" output="screen" >
<param name="weight_path" value="$(find yolov8_ros)/weights/yolov8n.pt"/>
<param name="image_topic" value="/camera/color/image_raw" />
<param name="pub_topic" value="/object_position" />
<param name="camera_frame" value="camera_color_frame"/>
<param name="visualize" value="false"/>
<param name="conf" value="0.3" />
</node>
</launch>
![请添加图片描述](https://i-blog.csdnimg.cn/blog_migrate/641deefdef2d6b50c44aa09c4e5985ea.png)
出现如下界面表示yolov8启动成功
![请添加图片描述](https://i-blog.csdnimg.cn/blog_migrate/44b9f58df1d71a8f5df77c8a399a8213.png)
步骤三:打开rqt工具,查看识别效果
rqt_image_view
![请添加图片描述](https://i-blog.csdnimg.cn/blog_migrate/924315f2f9965b1a2f7394050b86874a.png)
等待出现如下界面后,选择yolov8/detection_image查看yolov8识别效果
![请添加图片描述](https://i-blog.csdnimg.cn/blog_migrate/3e606ba4aa3f4e3b614248fed77b80e4.png)
从图中可以看出,在7W功率的情况下,大概在18帧的效果,识别准确度比较高