上两个文章中其实分别讲到了如何使用PyQT来搭建一个可视化的用户界面,以及如何找到数据集,并且训练自己的模型,得到pt文件,有点忘记的同学可以点击下面的链接回顾一下
yolo算法实战(1):人脸检测+实时显示界面GUI(附代码!!!)
yolo算法实战(2):小白怎么用数据集训练自己的yolo算法?附详细教程和代码!
不知道小伙伴们还记不记得上次,我说要做100个场景下yolo算法的应用,
这两天我仔细回看自己的帖子,感觉还是要规划一下整体的方案,要不然太零散了,同学们找都不好找
所以,今天带来第一个算法的应用,使用yolo检测火情
目录
1. 安装python(推荐版本311)
这里直接给出下载地址
https://www.python.org/downloads/
点击【Download Python 3.11】
安装时务必勾选 ✅【Add Python to PATH】再点击 Install Now
等待安装完成后,在命令行窗口输入
python --version
如果也能显示下面的界面就说明已经安装完成了
关于怎么找到命令行窗口,我在这里给出两种简单的方式
如果你使用的是 Windows
✅ 方式1:使用“命令提示符(CMD)”
按下键盘上的 Win 键(或者点击左下角开始菜单)
输入 cmd
, 回车,就打开了命令提示符窗口(黑底白字)
✅ 方式2:使用“PowerShell”
同样在开始菜单搜索 powershell
,回车,打开一个蓝色背景的命令窗口
如果你使用的是 macOS
按下 Command + 空格,搜索Terminal
,回车,即可打开终端,然后在里面输入
python3 --version
如果你使用的是 Linux
可以按 Ctrl + Alt + T 快捷键直接打开终端,或者点左下角“活动”,搜索“Terminal”
一般linux下默认安装好了 Python
2. 安装PyCharm(社区版免费!!!)
这里直接给出一个链接
https://www.jetbrains.com/pycharm/download
选择左边的 Community(免费版),下载安装
安装完成后打开,点击:
“New Project”
→ 选择 Python解释器
新建一个 .py
文件,输入 print("Hello YOLO")
,运行测试是否正常
3. 下载yolo v5
那么安装完前两个必须的内容,就可以真正着手训练自己的算法了,
但是这里需要先从网上下载发布的yolo算法,然后再使用自己的数据集进行训练
为什么要这么做呢?,在文章最后,给大家讲解,这里不写,避免影响大家整体的学习节奏,感兴趣的可以直接到最后部分深入了解原因。
那么,怎么下载yolo v5呢?
第一步、在 PyCharm 终端或系统命令行中依次执行:
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt
这里出现了Git,可能小伙伴,又迷惑了,怎么又出来一个东西,与github什么关系?这个这次没办法讲,下次我会专门出一个与github相关的文章,为大家答疑解惑。欢迎大家保持关注!
如果没有安装 Git,可以手动下载 zip:
https://github.com/ultralytics/yolov5
点击右上角【Code → Download ZIP】,解压后打开
4. 下载数据集
简答的说,刚刚我们下载的yolo算法可以初步识别一些常见的内容,但是没办法完成我们特定目标的识别,所以我们还需要下载特别的数据集,然后对算法进行重新的训练,以达到我们的目的,这一点在文章最后有详细原因说明。
这里直接提供一个公开火灾数据集,直接可用:
https://universe.roboflow.com/fire-detection/fire-dataset-4kjkq
点击右上角 Download this Dataset
格式选择:YOLOv5 + ZIP
下载后解压,得到一个结构类似这样的目录:
fire-dataset/
├── train/
│ ├── images/
│ └── labels/
├── valid/
│ ├── images/
│ └── labels/
关于上面几个部分的介绍,我在这个里面都详细介绍了,还不明白的可以去了解一下
5.(最关键)训练和测试
1️⃣ 创建配置文件 fire.yaml
在 yolov5/data/ 目录下新建 fire.yaml,内容如下(根据数据集实际路径改):
train: ../fire-dataset/train/images
val: ../fire-dataset/valid/images
nc: 1
names: ['fire']
2️⃣ 启动训练(在 yolov5 根目录下执行):
python train.py --img 640 --batch 8 --epochs 30 --data data/fire.yaml --weights yolov5s.pt --name fire_detector
训练完成后,会在 runs/train/fire_detector/weights/ 目录下生成 best.pt
测试一张图片:
python detect.py --weights runs/train/fire_detector/weights/best.pt --source your_test.jpg
测试摄像头
python detect.py --weights runs/train/fire_detector/weights/best.pt --source 0
6. tips
1.很多同学有点搞不清python和pycharm的区别,以为下载了pycharm就已经下载了Python,不是这样的。
python是一种编程语言,而PyCharm则被认为是一个ide,也就是集成开发环境,在这里面,你可以使用可视化的界面,进行编码,但是写完的代码如果需要运行,则需要你的电脑上已经安装了python
2.对我们来说,python最强大的不是语言本身,而是使用python的时候我们可以调用不同的包
3. 注意苹果系统下要输入的是``python3 --version``
4. 下载好的yolo算法部分情况下可以直接用,但是大部分时候还是要有自己的数据集,进行训练出专属的模型
7. 预告
这次详细介绍了火情的检测,里面还涉及到软件的安装,相信跟着我学,一定能短时间学会应用
那么,下一期,出什么呢?
有想法的同学可以直接斯我或者评论区留下自己的需求
8. 附录
下载了 YOLOv5,为什么还要自己下载数据集训练?不能直接用?
✅ 可以直接用 YOLOv5(但用途不同)
当下载 YOLOv5 时,里面带有 预训练模型(如 yolov5s.pt
、yolov5m.pt
等),这些模型是 已经训练好了的,可以立刻用来识别常见目标,比如:
模型能识别的内容(默认 COCO 数据集) |
---|
人、人脸、汽车、手机、狗、猫、瓶子等 80 类 |
➤ 示例:直接使用
python detect.py --weights yolov5s.pt --source your_image.jpg
这行命令不需要你训练,它会识别你图像中是否有“人”、“车”等常见目标。
❌ 但是预训练模型不能识别火情
因为 预训练模型没有学过“火焰”或“烟雾” 这类东西。就像你教学生学英语,他们没学过“火焰”这个单词,自然不会认。
✅ 所以要识别“火情”,必须重新训练 YOLO
我们要做的是
- 准备好包含“火”和“烟”的图片 + 标签
- 用这些数据 教会 YOLO 怎么识别火情
- 得到一个新的模型
best.pt
,它能专门识别火焰
方式 | 是否能识别火情 | 是否需要下载数据集 |
---|---|---|
用原始 yolov5s.pt 模型 | ❌ 不行,只能识别人/车等 | ❌ 不需要 |
训练自己的模型 best.pt | ✅ 可以识别火/烟 | ✅ 必须下载数据集 |