文章目录
- 1. 环境配置
- 2. 下载代码
- 3. 安装库
- 3.1 安装pytorch
- 3.2 安装其他库
- 4. 测试
- 5. 数据标注
- 6. 模型训练
- 6.1 一些修改
- 6.2 训练
- 7. 界面可视化
1. 环境配置
1. 先参考其他文章安装 Anaconda 或者 Miniconda,我安装的是 Miniconda。
2. 更换国内源,以加快速度 。可以参考下面这个博客:https://blog.csdn.net/hanjmm/article/details/127433373
3. 打开 Anaconda Prompt,创建环境:
conda create -n mask python==3.8conda activate mask
2. 下载代码
1. 下载代码,代码网址:https://gitee.com/song-laogou/yolov5-mask-42
2. 我学到了一点:可以直接在这个目录导航输入 cmd,进入的终端直接 cd 到这个文件路径下。
如图:在这个终端下激活 mask 虚拟环境。
3. 安装库
3.1 安装pytorch
1. 如果你的电脑没有 GPU,只有 CPU 的话,运行下面指令,耐心等上几分钟。
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly -c pytorch # 可以修改pytorch版本
2. 如果你的电脑有 GPU,可以安装 GPU 版本的 pytorch,操作如下内容所示。
3. win+R
进入命令行输入 nvidia-smi
,可以查看 CUDA 版本。
4. 从官网下载对应的 CUDA 版本,由于我的显卡版本为 12.5,我只需要安装小于或者等于 12.5 都是可以的,因此这里我安装12.0。下图中的 Version 是指的是 win10 还是 win11。
官网地址:CUDA Toolkit Archive | NVIDIA Developer
5. 之后安装 Cudaa 和 Pytorch。这里安装步骤可以参考一下网上一些教程,这里我就不再说了。
3.2 安装其他库
pip install pycocotools-windows
pip install -r requirements.txt
pip install pyqt5
pip install labelme
4. 测试
1. 在命令行输入指令:
python detect.py --source data/images/bus.jpg --weights pretrained/yolov5s.pt
2. 在runs目录下可以找到检测之后的结果,环境安装完成!
5. 数据标注
1. 在环境中运行指令:pip install labelimg
,再运行:labelimg
即可打开。
2. 软件启动后的界面如下所示。一般刚开始我们要选择打开需要标注的图片路径和标注文件保存的位置,并把标注的格式改为 yolo。
3. 标注完成之后你会得到一系列的 txt 文件,这里的 txt 文件就是目标检测的标注文件,其中 txt文件和图片文件的名称是一一对应的,如下图所示:
4. 打开具体的标注文件,你将会看到下面的内容,txt 文件中每一行表示一个目标,以空格进行区分,分别表示目标的类别 id,归一化处理之后的中心点 x 坐标、y 坐标、目标框的 w 和 h。
6. 模型训练
6.1 一些修改
1. 可以下载别人标注好的数据集进行训练,比如这里的数据集:https://download.csdn.net/download/ECHOSON/63290559
标记完成的数据请按照下面的格式进行放置,方便程序进行索引。
YOLO_Mask # 存放数据集文件名称
└─ score├─ images│ ├─ test # 下面放测试集图片│ ├─ train # 下面放训练集图片│ └─ val # 下面放验证集图片└─ labels├─ test # 下面放测试集标签├─ train # 下面放训练集标签├─ val # 下面放验证集标签
2. 修改配置:
(1)修改 data 里面的数据集配置文件:
(2)修改 model 里面的模型配置文件:
(3)在 train.py 里面已经放好了示例命令:
6.2 训练
1. 在命令行输入以下指令。我这里就训练 50 轮测试一下。
python train.py --data mask_data.yaml --cfg mask_yolov5s.yaml --weights pretrained/yolov5s.pt --epoch 50 --batch-size 4
2. 训练完成,结果保存在 runs\train\exp
下。
3. 模型训练结束之后你会找到三张图像,分别表示模型在验证集上的召回率、准确率和均值平均密度。
7. 界面可视化
可视化界面的部分在 window.py
文件中,是通过 pyqt5 完成的界面设计,在启动界面前,你需要将模型替换成你训练好的模型,替换的位置在 window.py
的第 60 行,修改成你的模型地址即可,如果你有 GPU 的话,可以将 device 设置为 0,表示使用第 0 行 GPU,这样可以加快模型的识别速度。
2. 识别结果如下,只训练了 50 轮,所以精度不是很高。