基于Yolov5目标检测的物体分类识别及定位(三) -- 训练、测试

系列文章:

基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集原图获取与标注

基于Yolov5目标检测的物体分类识别及定位(二) -- yolov5运行环境搭建及label格式转换

基于Yolov5目标检测的物体分类识别及定位(三) -- 训练、测试

基于Yolov5目标检测的物体分类识别及定位 -- 全过程总结

目录

训练模型

命令及参数解读

注意事项       

模型测试

测试命令及参数设置

效果表现

命令总和


训练模型

命令及参数解读

       在项目根目录运行命令,如果报错就按照错误信息修改命令或文件,或依赖包,或者重新配置环境。

python train.py --img 640 --batch 16 --epochs 5 --data ./data/coco128.yaml --cfg ./models/yolov5s.yaml --weights weighs/yolov5s.pt

       命令有点长,我们分开解读一下参数。 

–img:输入网络的图片经预处理后的照片尺寸
–batch:每次输入网络的照片数量,这里如果太大了会超过gpu的显存,根据实际情况调整
–epoch:代表要训练的循环次数,根据你的想法调
–data:上一步更改的第一个文件
–cfg:上一步更改的第二个文件
–weights:开发团队训练好的模型,用来进行迁移训练,可以加上也可以不加,不加的话可能就是训练效果不好以及训练时长更长。

注意事项       

       官方训练好的模型需要自己fq去作者给的链接去下载,放在weighs文件夹中。(以下是百度云链接)

链接:百度网盘 请输入提取码
提取码:8g6c

       作者团队是利用tensorboard来可视化训练过程的,训练开始会在主目录生成一个runs文件.利用tensorboard打开即可(需要TensorFlow环境)。

tensorboard --logdir=./runs

       或者直接在终端就可以看到训练过程的命令行显示格式。

       使用另一个终端来动态实时监控显存情况,调整 batch 大小(实测2080Ti,batch为6)。

watch -n 0.5 nvidia-smi # 每0.5秒刷新一次

       运行5个Epoch之后,就得到了一个初版训练模型(运行中的JPEG corrupt的报错不用管,会自动跳过然后继续训练)。

基于Yolov5目标检测的物体分类识别及定位(三) -- 训练、测试_第1张图片

基于Yolov5目标检测的物体分类识别及定位(三) -- 训练、测试_第2张图片

       如图所示,当 P 、 R 、 [email protected] 较小,可能是验证集划分、标签文件、模型选择、参数设置等的错误,当 P 、 R 、 [email protected] 训练到 0.9 以上时,就可以认为训练的差不多了。

模型测试

测试命令及参数设置

       在detect.py文件中找到source和weight这两个参数,改为想用的测试集和自己训练出来的pt文件。然后运行该文件。

效果表现

       从生成的文件夹中查看每个文件的标注效果,查看错误率和漏标率。

命令总和

# 训练
python train.py  --data data/cv01.yaml --cfg models/yolov5x.yaml --weights weights/yolov5x.pt --batch-size 8

# 测试
python detect.py --weights runs/train/exp1/weights/best.pt --source /data/test08

你可能感兴趣的:(CV-计算机视觉,项目,python,计算机视觉,深度学习,分类)