【深度学习】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训练自己的数据集的步骤,需要注意的是,在整个训练过程中,还需要进行数据预处理、数据增强、调整学习率等操作,这些都需要在代码中进行配置。
更多推荐
所有评论(0)