修改README

master
Gehusileng 7 months ago
parent a5c0210b0c
commit 50004adde5

@ -1,99 +1,7 @@
# 手把手教你使用YOLOV5训练自己的目标检测模型
大家好这里是肆十二dejahu好几个月没有更新了这两天看了一下关注量突然多了1k多个朋友关注想必都是大作业系列教程来的小伙伴。既然有这么多朋友关注这个大作业系列并且也差不多到了毕设开题和大作业提交的时间了那我直接就是一波更新。这期的内容相对于上期的果蔬分类和垃圾识别无论是在内容还是新意上我们都进行了船新的升级我们这次要使用YOLOV5来训练一个口罩检测模型比较契合当下的疫情并且目标检测涉及到的知识点也比较多这次的内容除了可以作为大家的大作业之外也可以作为一些小伙伴的毕业设计。废话不多说我们直接开始今天的内容。 # 测试一下
> B站讲解视频[手把手教你使用YOLOV5训练自己的目标检测模型_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1YL4y1J7xz) 在yolov5image_recognize目录下执行下列代码
>
> CSDN博客[手把手教你使用YOLOV5训练自己的目标检测模型-口罩检测-视频教程_dejahu的博客-CSDN博客](https://blog.csdn.net/ECHOSON/article/details/121939535)
>
> 代码地址:[YOLOV5-mask-42: 基于YOLOV5的口罩检测系统-提供教学视频 (gitee.com)](https://gitee.com/song-laogou/yolov5-mask-42)
>
> 处理好的数据集和训练好的模型:[YOLOV5口罩检测数据集+代码+模型2000张标注好的数据+教学视频.zip-深度学习文档类资源-CSDN文库](https://download.csdn.net/download/ECHOSON/63290559)
>
> 更多相关的数据集:[目标检测数据集清单-附赠YOLOV5模型训练和使用教程_dejahu的博客-CSDN博客](https://blog.csdn.net/ECHOSON/article/details/121892887)
先来看看我们要实现的效果我们将会通过数据来训练一个口罩检测的模型并用pyqt5进行封装实现图片口罩检测、视频口罩检测和摄像头实时口罩检测的功能。
![image-20211212181048969](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20211212181048969.png)
![image-20211212194124635](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20211212194124635.png)
## 下载代码
代码的下载地址是:[[YOLOV5-mask-42: 基于YOLOV5的口罩检测系统-提供教学视频 (gitee.com)](https://gitee.com/song-laogou/yolov5-mask-42)](https://github.com/ultralytics/yolov5)
![image-20211214191424378](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20211214191424378.png)
## 配置环境
不熟悉pycharm的anaconda的小伙伴请先看这篇csdn博客了解pycharm和anaconda的基本操作
[如何在pycharm中配置anaconda的虚拟环境_dejahu的博客-CSDN博客_如何在pycharm中配置anaconda](https://blog.csdn.net/ECHOSON/article/details/117220445)
anaconda安装完成之后请切换到国内的源来提高下载速度 ,命令如下:
```bash
conda config --remove-key channels
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
```
首先创建python3.8的虚拟环境,请在命令行中执行下列操作:
```bash
conda create -n yolo5 python==3.8.5
conda activate yolo5
```
### pytorch安装gpu版本和cpu版本的安装
实际测试情况是YOLOv5在CPU和GPU的情况下均可使用不过在CPU的条件下训练那个速度会令人发指所以有条件的小伙伴一定要安装GPU版本的Pytorch没有条件的小伙伴最好是租服务器来使用。
GPU版本安装的具体步骤可以参考这篇文章[2021年Windows下安装GPU版本的Tensorflow和Pytorch_dejahu的博客-CSDN博客](https://blog.csdn.net/ECHOSON/article/details/118420968)
需要注意以下几点:
* 安装之前一定要先更新你的显卡驱动,去官网下载对应型号的驱动安装
* 30系显卡只能使用cuda11的版本
* 一定要创建虚拟环境,这样的话各个深度学习框架之间不发生冲突
我这里创建的是python3.8的环境安装的Pytorch的版本是1.8.0,命令如下:
```cmd
conda install pytorch==1.8.0 torchvision torchaudio cudatoolkit=10.2 # 注意这条命令指定Pytorch的版本和cuda的版本
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly # CPU的小伙伴直接执行这条命令即可
```
安装完毕之后我们来测试一下GPU是否
![image-20210726172454406](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20210726172454406.png)
### pycocotools的安装
<font color='red'>后面我发现了windows下更简单的安装方法大家可以使用下面这个指令来直接进行安装不需要下载之后再来安装</font>
```
pip install pycocotools-windows
```
### 其他包的安装
另外的话大家还需要安装程序其他所需的包包括opencvmatplotlib这些包不过这些包的安装比较简单直接通过pip指令执行即可我们cd到yolov5代码的目录下直接执行下列指令即可完成包的安装。
```bash
pip install -r requirements.txt
pip install pyqt5
pip install labelme
```
### 测试一下
在yolov5目录下执行下列代码
```bash ```bash
python detect.py --source data/images/bus.jpg --weights pretrained/yolov5s.pt python detect.py --source data/images/bus.jpg --weights pretrained/yolov5s.pt
@ -121,9 +29,9 @@ python detect.py --source data/images/bus.jpg --weights pretrained/yolov5s.pt
## 数据处理 # 数据处理
这里改成yolo的标注形式,之后专门出一期数据转换的内容。 这里改成yolo的标注形式
数据标注这里推荐的软件是labelimg通过pip指令即可安装 数据标注这里推荐的软件是labelimg通过pip指令即可安装
@ -135,9 +43,9 @@ python detect.py --source data/images/bus.jpg --weights pretrained/yolov5s.pt
![image-20210609172557286](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20210609172557286.png) ![image-20210609172557286](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20210609172557286.png)
### 数据标注 ## 数据标注
虽然是yolo的模型训练但是这里我们还是选择进行voc格式的标注一是方便在其他的代码中使用数据集,二是我提供了数据格式转化 虽然是yolo的模型训练但是这里我们还是选择进行voc格式的标注方便在其他的代码中使用数据集
**标注的过程是:** **标注的过程是:**
@ -188,9 +96,9 @@ YOLO_Mask
到这里,数据集处理部分基本完结撒花了,下面的内容将会是模型训练! 到这里,数据集处理部分基本完结撒花了,下面的内容将会是模型训练!
## 模型训练 # 模型训练
### 模型的基本训练 ## 模型的基本训练
在models下建立一个`mask_yolov5s.yaml`的模型配置文件,内容如下: 在models下建立一个`mask_yolov5s.yaml`的模型配置文件,内容如下:
@ -220,11 +128,10 @@ python train.py --data mask_data.yaml --cfg mask_yolov5s.yaml --weights pretrain
![image-20210610145140340](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20210610145140340.png) ![image-20210610145140340](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20210610145140340.png)
当然还有一些骚操作,比如模型训练到一半可以从中断点继续训练,这些就交给大家下去自行探索喽。
## 模型评估 ## 模型评估
出了在博客一开头你就能看到的检测效果之外,还有一些学术上的评价指标用来表示我们模型的性能其中目标检测最常用的评价指标是mAPmAP是介于0到1之间的一个数字这个数字越接近于1就表示你的模型的性能更好。 可以用一些学术上的评价指标用来表示我们模型的性能其中目标检测最常用的评价指标是mAPmAP是介于0到1之间的一个数字这个数字越接近于1就表示你的模型的性能更好。
一般我们会接触到两个指标分别是召回率recall和精度precision两个指标p和r都是简单地从一个角度来判断模型的好坏均是介于0到1之间的数值其中接近于1表示模型的性能越好接近于0表示模型的性能越差为了综合评价目标检测的性能一般采用均值平均密度map来进一步评估模型的好坏。我们通过设定不同的置信度的阈值可以得到在模型在不同的阈值下所计算出的p值和r值一般情况下p值和r值是负相关的绘制出来可以得到如下图所示的曲线其中曲线的面积我们称AP目标检测模型中每种目标可计算出一个AP值对所有的AP值求平均则可以得到模型的mAP值以本文为例我们可以计算佩戴安全帽和未佩戴安全帽的两个目标的AP值我们对两组AP值求平均可以得到整个模型的mAP值该值越接近1表示模型的性能越好。 一般我们会接触到两个指标分别是召回率recall和精度precision两个指标p和r都是简单地从一个角度来判断模型的好坏均是介于0到1之间的数值其中接近于1表示模型的性能越好接近于0表示模型的性能越差为了综合评价目标检测的性能一般采用均值平均密度map来进一步评估模型的好坏。我们通过设定不同的置信度的阈值可以得到在模型在不同的阈值下所计算出的p值和r值一般情况下p值和r值是负相关的绘制出来可以得到如下图所示的曲线其中曲线的面积我们称AP目标检测模型中每种目标可计算出一个AP值对所有的AP值求平均则可以得到模型的mAP值以本文为例我们可以计算佩戴安全帽和未佩戴安全帽的两个目标的AP值我们对两组AP值求平均可以得到整个模型的mAP值该值越接近1表示模型的性能越好。
@ -275,39 +182,7 @@ python val.py --data data/mask_data.yaml --weights runs/train/exp_yolov5s/weight
![image-20211212194547804](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20211212194547804.png) ![image-20211212194547804](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20211212194547804.png)
替换之后直接右键run即可启动图形化界面了快去自己测试一下看看效果吧 替换之后直接右键run即可启动图形化界面了
![image-20211212194914890](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20211212194914890.png) ![image-20211212194914890](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20211212194914890.png)
## 找到我
你可以通过这些方式来寻找我。
B站[肆十二-](https://space.bilibili.com/161240964)
CSDN[肆十二](https://blog.csdn.net/ECHOSON)
知乎:[肆十二 ](https://www.zhihu.com/people/song-chen-ming-28)
微博:[肆十二-](https://weibo.com/u/5999979327)
现在关注以后就是老朋友喽!
![image-20211212195912911](https://vehicle4cm.oss-cn-beijing.aliyuncs.com/typoraimgs/image-20211212195912911.png)

Loading…
Cancel
Save