基于yolov4代码,进行的数据集训练模型过程及结果

一、项目工程 

  1. 下载所需要的数据
  • labeling编译器
  • yolov4-pytorch-master
  • 将找好的数据集图片存储到文件夹中,确保格式正确
  • 用labeling编译器对图片进行标注,对识别的物体就行名称输入标注,熟知labeling的功能区域

2.数据量如果不够多,修改voc _annotation.py文件,将300改为100

 

3.更改训练次数,调整学习率、批次大小、训练轮数等超参数

UnFreeze_Epoch   = 10

二、训练模型

1.修改coco_classes.txt,voc_classes.txt,predefined_classes.txt文件

2.运行voc_annotation.py,然后训练train.py 文件,进行标注的数据加载,训练参数等等,再运行yolo.py文件,检查类别所对应的txt文件,最后运行get_map文件,显示运行的类别比例。

三、评估性能

通过predict.py评估模型性能。predict.py 是在使用 YOLOv4 利用训练好的模型对新的、未见过的数据进行预测,并输出目标的位置和类别信息。
1.加载训练好的模型
2.配置预测参数
3.读取输入数据,可以读取批量图像,作为模型的输入。
4.进行前向传播:将输入数据通过模型进行前向传播,得到预测结果。这些预测结果通常包括目标的边界框坐标、类别以及对应的置信度。
5.对预测结果进行后处理
6.输出预测结果

四、实验中出现的报错问题

1.数据集存放的文件夹路径中不能存在空格,否则会影响模型训练,数据集标注的过程中,使用合适的标注工具,对图像中的目标进行边界框标注。确保每个目标都有一个准确的边界框,并标注其类别。将标注信息保存为YOLO格式
2.处理数据集格式转换:
如果你的标注工具输出的格式不是YOLO格式,需要进行数据集格式转换,需要编写一个脚本来转换标注数据,读取原始标注文件,并生成符合YOLO格式的文本文件。

3.检查是否存在同名文件,需更改

4.CUDA相关报错:
TypeError: can’t convert cuda:0 device type tensor to numpy:
这通常发生在尝试将CUDA设备上的张量直接转换为numpy数组时。解决方法是在转换之前,先将张量从CUDA设备转移到CPU上。可以在相应的函数中添加.cpu()调用,如tensor.cpu().numpy()。

5.路径或文件不存在:
确保所有使用的文件和路径都是存在的,并且具有正确的权限。

6.类别数据量要大,不能太少,否则难以识别,以下就是其原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值