YOLOv8-ROS-noetic+USB-CAM目标检测

环境介绍

Ubuntu20.04
Ros1-noetic
Anaconda-yolov8虚拟环境

本文假设ROS和anaconda虚拟环境都已经配备,如果不知道怎么配备可以参考:
https://blog.youkuaiyun.com/weixin_45231460/article/details/132906916

创建工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

🍀 编译工作空间

cd ~/catkin_ws
catkin_make

安装usb-cam

参考USB摄像头的安装和使用

配置yolov8-ros

1.下载功能包

cd ~/catkin_ws/src
git clone https://github.com/Gaofan666/Yolov8_ros.git

打开Yolov8_ros/yolov8_ros文件夹内容如下:
在这里插入图片描述

2.更新ultralytics和weights

现在我们要替换两个东西,一个是ultralytics文件夹,这个ultralytics是80.0.92版本的比较旧,直接删掉即可。去yolov8官网下载最新版的ultralytics或者替换自己的文件夹放进来,这里贴一个链接:

git clone https://github.com/ultralytics/ultralytics.git

第二个要替换的是weights文件夹下默认有一个yolov8s.pt,删掉去官网下载最新的放进来即可。

https://github.com/ultralytics/ultralytics

3. 虚拟环境装rospkg

用到哪个python解释器就在哪个虚拟环境装一下rospkg,比如我用的虚拟环境是yolov8,运行以下命令:

conda activate yolov8
pip install rospkg

4.指定python解释器

修改yolov8_ros/scripts/yolo_v8.py,文档开头的 /usr/bin python 替换为yolov8虚拟环境的解释器的位置。

#!/home/hhh/.conda/envs/yolov8/bin/python3.8

在这里插入图片描述
如果不知道python解释器在哪,可以用下面的命令查看

whereis python

在这里插入图片描述

5. 更改图像话题和权重文件路径

修改yolov8检测的图像话题在/Yolov8_ros/yolov8_ros/launch/yolo_v8.launch文件中,修改,如果是用的usb-cam的话题,一般是

/usb_cam/image_raw

在这里插入图片描述
权重文件路径默认是weights目录下。

6. 编译运行

cd ~/catkin_ws
catkin_make
source devel/setup.bash
roscore
roslaunch usb_cam usb_cam-test.launch
roslaunch yolov8_ros yolo_v8.launch

在这里插入图片描述
可以看到左边是usb-cam发布的原图,右边是yolov8-ros发布的检测后的图片。
在这里插入图片描述

### 使用YOLOv8_ROS功能包进行模型训练 为了使用YOLOv8_ROS功能包进行模型训练,需遵循特定流程来准备环境、配置数据集以及执行训练过程。 #### 准备工作 确保已安装必要的依赖项并设置好ROS开发环境。对于YOLOv8,在ROS环境中集成此模型通常涉及克隆相应的仓库至本地计算机,并按照官方指南完成初步部署[^2]。 ```bash git clone https://github.com/qq44642754a/Yolov8_ros.git cd Yolov8_ros pip install -r requirements.txt ``` #### 数据集准备 创建自定义的数据集是至关重要的一步。这包括收集图片样本及其对应的标签文件(通常是COCO格式),并将这些资料整理成适合YOLO框架使用的结构。具体来说: - 将所有图像放置在一个目录下; - 创建`annotations`文件夹存放JSON形式的标注信息; - 编写Python脚本转换现有的标签格式为YOLO所需的样式; #### 修改配置文件 编辑位于项目根目录下的`.yaml`配置文件以适应个人需求。主要调整参数如下: - `train`: 训练集路径 - `val`: 验证集路径 - `nc`: 类别数量 - `names`: 各类别名称列表 例如: ```yaml path: ./datasets/my_dataset/ train: images/train/ val: images/valid/ nc: 3 names: ['cat', 'dog', 'person'] ``` #### 开始训练 通过命令行工具调用训练函数,指定所使用的预训练权重和其他超参数选项。下面是一个简单的例子说明如何启动一次完整的训练会话: ```python from ultralytics import YOLO model = YOLO('yolov8n.pt') # 加载预训练的小型网络架构 results = model.train(data='custom.yaml', epochs=100, imgsz=640) ``` 上述代码片段展示了加载小型版本YOLOv8(`yolov8n`)作为基础模型,并针对用户定义的数据源运行为期一百轮次的学习周期。 #### 实验记录与评估 在整个过程中保持良好的实验日志习惯非常重要。定期保存检查点(checkpoint),以便后续可以恢复中断的任务或是对比不同设定的效果差异。此外,利用TensorBoard或其他可视化平台监控损失变化趋势有助于及时发现问题所在。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Goafan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值