引言:为了提高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
没有出现红色报错,出现如下界面,表明摄像头启动成功
步骤二:启动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>
出现如下界面表示yolov8启动成功
步骤三:打开rqt工具,查看识别效果
rqt_image_view
等待出现如下界面后,选择yolov8/detection_image查看yolov8识别效果
从图中可以看出,在7W功率的情况下,大概在18帧的效果,识别准确度比较高