yolov8-ros目标检测---硬件与仿真环境中区别

news/2024/7/10 2:41:51 标签: YOLO, 目标检测, 目标跟踪

为了完成使用realsenseD435i相机在真实环境下的目标检测任务,下载了realsense-ros和yolo8-ros功能包(都在工作空间src下)。分两种情况,1、使用真实硬件(如realsenseD435i)。2、在纯仿真环境下进行目标识别(如Gazebo),这两种情况是不同的,需要修改yolo_v8.launch中的参数,具体修改如下:

一、使用RealsenseD435i相机在真实环境下进行目标检测:

此时的yolo_v8.launch文件为:

<?xml version="1.0" encoding="utf-8"?>

<launch>

  <!-- Load Parameter -->
  
  <param name="use_cpu"           value="true" />

  <!-- Start yolov5 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/yolov8s.pt"/>
  
    <!-- run yolov8 use real camera  -->
    <param name="image_topic"       value="/camera/color/image_raw" />    
 
    <param name="pub_topic"         value="/yolov8/BoundingBoxes" />
    <param name="camera_frame"       value="camera_color_frame"/>
    <param name="visualize"       value="true"/>
    <param name="conf"              value="0.3" />
  </node>

</launch>

需要注意的地方是,硬件条件下,订阅的图像话题为:/camera/color/image_raw

二、Gazebo仿真环境下进行目标检测,不是用真实相机:

此时的yolo_v8.launch文件为:

<?xml version="1.0" encoding="utf-8"?>

<launch>

  <!-- Load Parameter -->
  
  <param name="use_cpu"           value="true" />

  <!-- Start yolov5 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/best.pt"/>  
    
    <!-- run yolov8 in gazebo simulation  -->
    <param name="image_topic"       value="/camera/rgb/image_raw" />  

    <param name="pub_topic"         value="/yolov8/BoundingBoxes" />
    <param name="camera_frame"       value="camera_color_frame"/>
    <param name="visualize"       value="true"/>
    <param name="conf"              value="0.3" />
  </node>

</launch>

需要注意的地方是,仿真条件下,订阅的图像话题为:/camera/rgb/image_raw

三、关于权重文件问题:

之前我一直认为yolov8自带的权重文件就已经好用,但是经过测试并不行。针对特定的物体,会出现识别不到的情况,不能发布Boundingoxes 话题。


http://www.niftyadmin.cn/n/4995211.html

相关文章

第三周晨考自测(3.0)

1.获取元素的偏移量 offsetLeft和offsetTop 分别获取的是元素元素左边的偏移量和上边的偏移量 语法&#xff1a;元素对象.offsetLeft /元素对象.offsetTop 返回值&#xff1a;就是该元素对应的偏移量&#xff0c;是一个具体的数字 offsetLeft&#xff1a;该元素相对于参考…

【rust/egui】(七)看看template的app.rs:Slider

说在前面 rust新手&#xff0c;egui没啥找到啥教程&#xff0c;这里自己记录下学习过程环境&#xff1a;windows11 22H2rust版本&#xff1a;rustc 1.71.1egui版本&#xff1a;0.22.0eframe版本&#xff1a;0.22.0上一篇&#xff1a;这里 Slider 滑块&#xff0c;如下图 定义…

Go语言入门记录:从channel的池应用、sync的Pool、benchmark、反射reflect、json处理、http、性能分析和一些编程习惯

channel的一对一会阻塞&#xff0c;添加buffer不会阻塞。 func GetResponse() string {// 如果是这一句&#xff0c;确实只返回了1个&#xff0c;但是其他几个都阻塞了&#xff0c;浪费协程&#xff0c;浪费服务器资源&#xff0c;容易造成泄露等安全问题// ch : make(chan st…

unity面试题(性能优化篇)

CPU 预处理、缓存数据 注释空的unity函数 运算cpu->gpu 减少昂贵计算(开方) 限制帧数 加载(预加载、分帧加载、异步加载、对象池) 慎用可空类型比较 避免频繁计算(分帧、隔帧) 算法优化 变体收集预热 使用clear操作代替容器的new操作 unity spine使用二进制格式…

前后端分离项目,整合成jar包,刷新404或空白页,解决方法

问题解决 1、注销遇到404&#xff0c;或刷新遇到404 # 添加错误跳转 Component public class ErrorConfig implements ErrorPageRegistrar {Overridepublic void registerErrorPages(ErrorPageRegistry registry) {ErrorPage error404Page new ErrorPage(HttpStatus.NOT_FOU…

在R中安装TensorFlow、TensorFlow_Probability、numpy(R与Python系列第二篇)

目录 前言&#xff1a; 1-安装tensorflow库 Step1: 下载R包tensorflow Step2&#xff1a;安装TensorFlow库 Step3&#xff1a;导入R中 2-安装tensorflow_probability库 Step1&#xff1a;下载R包&#xff1a;tfprobability Step2&#xff1a;安装TensorFlow Probability …

[JDK8下的HashMap类应用及源码分析] 数据结构、哈希碰撞、链表变红黑树

系列文章目录 [Java基础] StringBuffer 和 StringBuilder 类应用及源码分析 [Java基础] 数组应用及源码分析 [Java基础] String&#xff0c;分析内存地址&#xff0c;源码 [JDK8环境下的HashMap类应用及源码分析] 第一篇 空构造函数初始化 [JDK8环境下的HashMap类应用及源码分…

Mac不想用iTerm2了怎么办

这东西真是让人又爱又恨&#xff0c;爱的是它的UI还真不错&#xff0c;恨的是它把我的环境给破坏啦&#xff01;让我每次启动终端之后都要重新source激活我的python环境&#xff0c;而且虚拟环境前面没有括号啦&#xff01;这怎么能忍&#xff01;在UI和实用性面前我断然选择实…