【深度学习】yolov5训练自定义目标检测模型并进行验证

运行环境

本教程使用的是anaconda下的虚拟环境:

  • python 3.9.6
    在这里插入图片描述
  • pytorch 1.13.1
    在这里插入图片描述
    yolov5 v6.0官方要求 Python>=3.6 and PyTorch>=1.7

从git中克隆项目

首先需要再电脑上安装git并添加到环境变量,并应用到pycharm。
在这里插入图片描述
注意安装git的时候需要在anaconda虚拟环境中,否则无法识别。
然后在github上找到开源地址。
在这里插入图片描述
输入到pycharm中并点击clone。
在这里插入图片描述
这样项目就从github上克隆到本机电脑上了。

制作数据集

打开本机电脑终端输入

pip install label

在这里插入图片描述
此处显示已安装!
输入labelimg打开图片标注工具。
在这里插入图片描述
注意:有多个python环境时安装labelimg可能会出错。由于PyQt5冲突导致,需要卸载pyqt5重新安装即可解决。

pip uninstall pyqt5 

代码结构

  • data文件夹
    主要存放超参数配置文件,配置训练集、测试集的 路径,目标检测的种类及名称。下面以VOC.yaml为例子说明:
path: ../datasets/VOC        #voc文件的路径
train: # 训练集路径,可有多个
  - images/train2012
  - images/train2007
  - images/val2012
  - images/val2007
val: # 验证集路径
  - images/test2007
test: # 测试集路径
  - images/test2007

# Classes目标检测的种类及名称
names: 
  0: aeroplane
  1: bicycle
  2: bird
  3: boat
  4: bottle
  5: bus
  6: car
  7: cat
  8: chair
  9: cow
  10: diningtable
  11: dog
  12: horse
  13: motorbike
  14: person
  15: pottedplant
  16: sheep
  17: sofa
  18: train
  19: tvmonitor
  • models
    模型定义和训练的代码,包括网络模型定义、损失函数、数据加载等。
  • train.py
    训练自己数据集的函数
  • detect.py
    利用训练好的权重参数进行目标检测,可以进行图像、视频和摄像头的检测。
  • runs
    训练和测试过程中生成的结果和日志,包括训练日志、测试结果、可视化等。
  • requirements.txt
    依赖库文件,记录了运行代码所需要的依赖库和版本号。
    可使用以下命令一键安装缺少的依赖库文件。
pip install -r requirements.txt

训练数据集

识别树叶,修改数据配置文件yaml内容如下:

names:
- leaf
nc: 1
train: D:\aLiyun\leaf\train
val: D:\aLiyun\leaf\valid

控制台执行以下命令:

python train.py --batch-size 2 --epoch 200 --data data/leaf/data.yaml  --weights .\yolov5s.pt 

下面开始训练
在这里插入图片描述
在这里插入图片描述

训练完两张图片就进行权重更新,训练200轮次。
训练结束后run文件夹里的train目录下会新增一个exp。
文件夹包含内容如下:
在这里插入图片描述
weight文件夹下面是权重文件,包含训练效果最好的一次和最后一次。
其他文件是训练可视化结果及训练精度。
可以使用tensorboard --logdir=runs/train命令进行训练结果可视化。
在这里插入图片描述

模型测试

最后使用训练出来的模型在没有标注的数据集上进行推理,使用如下命令,选择训练效果最好的一次权重。

python .\detect.py --source data/leaf/valid/images --weights runs/train/exp4/weights/best.pt

测试结果存储在run文件夹下detect目录下的exp中。
在这里插入图片描述
至此使用自己的数据集训练yolov5模型结束。

总结

准备数据集:将自己的数据集准备好,包括训练集、验证集和测试集。数据集应该包含图像文件和相应的标注文件(如YOLO格式的标注文件)。如果没有标注文件,可以使用标注工具对图像进行手动标注。

安装依赖库:在训练YoloV5之前,需要安装Python依赖库。可以使用以下命令安装YoloV5所需的依赖库:

pip install -r requirements.txt

配置训练参数:在开始训练之前,需要配置训练参数,包括数据集路径、模型参数、超参数等。可以通过修改训练脚本中的参数来进行配置。

开始训练:在配置好训练参数后,可以通过运行以下命令开始训练:

python train.py --data /path/to/data.yaml --cfg /path/to/model.yaml --weights /path/to/weights.pt

其中,data.yaml文件是数据集配置文件,model.yaml是模型配置文件,weights.pt是预训练模型的权重文件。训练过程中,模型参数和日志将被保存到runs/train/exp目录下。

测试模型:在训练完成后,可以使用以下命令测试模型效果:

python detect.py --source /path/to/test/images --weights /path/to/best/weights.pt

其中,test/images是测试集图像的路径,best/weights.pt是训练过程中表现最好的模型权重文件。检测结果将会被保存到runs/detect/exp目录下。

以上就是使用YoloV5训练自己的数据集的步骤,需要注意的是,在整个训练过程中,还需要进行数据预处理、数据增强、调整学习率等操作,这些都需要在代码中进行配置。

猜你喜欢

转载自blog.csdn.net/qq_44878985/article/details/129583807