学习yolov5

参考文章:手把手带你调参YOLOv5 (v5.0-v7.0)(推理)_yolov5调参-CSDN博客

一、yolov5入门使用

1. 环境搭建

(1) 下载 yolov5-master

使用 Git 克隆 YOLOv5 仓库

1
2
3
4
5
6
7
8
# 克隆 YOLOv5 仓库
git clone https://github.com/ultralytics/yolov5

# 导航到克隆的目录
cd yolov5

# 安装所需的包
pip install -r requirements.txt

Github下载 yolov5-master:https://github.com/ultralytics/yolov5

ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

如果你暂时不会使用Git,就按照下图所示下载(需要会基本使用GitHub)

(2) 创建虚拟环境、安装依赖

提前准备:

python环境>=3.8,最好是python3.8系列,否则可能存在奇怪的bug

IDE:PyCharm

如果环境配置妥当,

使用 PyCharm 打开 yolov5-master 工程,

PyCharm 检测到 requirements.txt 后会自动根据依赖项,

创建虚拟环境,

并安装依赖

(如果依赖无法成功下载,可能需要掌握科学上网,或配置国内镜像源)

1
pip install -r requirements.txt  -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

2. 获取预训练模型

前往 yolov5 GitHub Release 页面,下载官方提供的 预训练模型权重文件Releases · ultralytics/yolov5

以 yolov5s.pt 为例,

yolov5s.pt 是一个预训练的、小型的、基于 PyTorch 的 YOLOv5 模型权重文件。它是在大型 COCO 数据集上训练好的,可以直接用于检测 80 种常见物体,或者作为起点来训练你自己的特定目标检测模型。

(1) 下载 yolov5s.pt:https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5s.pt

(2) 下载后将 yolov5s.pt 放入 yolov5-master 项目文件夹根目录下

3. 测试使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 使用网络摄像头运行推理
python detect.py --weights yolov5s.pt --source 0

# 对本地图像文件运行推理
python detect.py --weights yolov5s.pt --source img.jpg

# 对本地视频文件运行推理
python detect.py --weights yolov5s.pt --source vid.mp4

# 对屏幕截图运行推理
python detect.py --weights yolov5s.pt --source screen

# 对图像目录运行推理
python detect.py --weights yolov5s.pt --source path/to/images/

# 对列出图像路径的文本文件运行推理
python detect.py --weights yolov5s.pt --source list.txt

# 对列出流 URL 的文本文件运行推理
python detect.py --weights yolov5s.pt --source list.streams

# 使用 glob 模式对图像运行推理
python detect.py --weights yolov5s.pt --source 'path/to/*.jpg'

# 对 YouTube 视频 URL 运行推理
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4'

# 对 RTSP、RTMP 或 HTTP 流运行推理
python detect.py --weights yolov5s.pt --source 'rtsp://example.com/media.mp4'


二、创建自己的数据集

需要环境:

python 3.8 任意版本(否则可能会出现奇怪的bug)

1.使用现成/创造新的原始数据集

数据增强方法:

类别 方法 作用 适用任务
几何变换 翻转 (Flip) 增加样本多样性,模拟左右 / 上下颠倒 分类、检测
缩放 (Scale) 模拟目标远近变化 检测
裁剪 (Crop) 强制关注局部特征 分类、检测
旋转 (Rotation) 模拟目标角度变化 分类、检测
颜色变换 亮度 / 对比度 模拟不同光照条件 所有任务
噪声注入 增强对图像质量下降的鲁棒性 分类、医学影像
高级方法 随机擦除 防止模型依赖局部特征 分类
CutMix / MixUp 正则化,提升模型泛化能力 分类

2.数据标注

(1) 使用 PyCharm 新建 python 项目

(2) 安装数据标注软件 labelimg

1
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

(3) 安装完成后在终端输入 labelimg

设置为自动保存模式

选择 未标注图片所处文件夹 与 标注后图片保存的文件夹

标注格式选择 YOLO 格式

开始标注(如果打开了 Auto Save mode 就不用频繁地保存了)

labelimg 快捷键:

生成的标注文件如下图所示:

分析生成的所有标记文件,共分为两种:

class.txt:所有 label 的名称,

一行一个 label 名称,它们有对应的 label id,

第一行 label id 为0,

第二行 label id 为1,以此类推

图片名.txt:对应图片中所有标注框的相关参数,

一行信息对应一个标注框的参数,包含5组数字,

用空格划分,分别对应

一个标注框的 label id、x(目标框中心点x坐标)、y(目标框中心点y坐标)、w(目标框宽度)、h(目标框高度)


实际应用:在树莓派5上部署YOLOV5模型并实现目标检测、mqtt通信、串口发送

1.系统:TF卡烧录 RaspyBerryPiOS 64bit (自带VNC方便远程连接)

2.项目下载:( YOLOv5官方项目 - yolov5-master )

https://github.com/ultralytics/yolov5/archive/refs/heads/master.zip

1
2
3
4
5
# 克隆仓库
git clone https://github.com/immortal3180/yolov5-mqtt-serial.git

# 与远程仓库同步
git pull

3.环境配置:

1
2
# 进入项目目录
cd ~/xxxxx/yolov5-master
1
2
# 创建虚拟环境
python3 -m venv venv
1
2
3
4
5
6
7
# 激活虚拟环境
source venv/bin/activate

# 激活成功后,你的命令行提示符前面会出现 (venv) 的字样,像这样:
(venv) a123@abc:~/xxxxx/yolov5-master $
# 当你完成工作后,可以随时退出虚拟环境。
deactivate
1
2
# 安装依赖(通过清华源)
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
1
2
# 运行脚本
python detect.py --weights yolov5s.pt --source 0

实际使用的实际应用:
1
2
3
4
# 手动启动
a123@abc:~ $ cd ~/Desktop/WorkSpace/yolov5-mqtt-serial
a123@abc:~/Desktop/WorkSpace/yolov5-mqtt-serial $ source venv/bin/activate
(venv) a123@abc:~/Desktop/WorkSpace/yolov5-mqtt-serial $ python detect.py --weights trash0.pt --source 0
1
2
# 使用跳线帽短接串口,再使用minicom观察串口输出信息:
minicom -D /dev/ttyAMA0 -b 115200
1
2
3
4
# 更改风扇策略
sudo nano /boot/firmware/config.txt
# 查看cpu温度
watch -n 1 vcgencmd measure_temp