使 用 y o l o v 4 进 行 自 己 数 据 集 的 检 测 ( p y t o r c h ) 使用yolov4进行自己数据集的检测(pytorch) 使用yolov4进行自己数据集的检测(pytorch)
尚未完善,最近时间紧缺,留待下次
https://codechina.csdn.net/mirrors/bubbliiiing/yolov4-pytorch?utm_source=csdn_github_accelerator
修改检测数据集尺寸,并修改标注信息,使标注位置准确
修改yolov4网络适应自己训练图像的大小
项目结构
1.环境要求
pytorch
opencv-python
tqdm
2.预先操作
2.1 创建myclasses.txt文件
在训练前需要务必在model_data
下新建一个myclasses.txt文件
paddy
这是coco数据集的类别文件,coco_classes.txt
person
bicycle
car
motorbike
aeroplane
bus
train
...
...
...
2.2 在VOCdevkit下新建一个VOC2009的文件夹如下:
为什么是voc2009,其实没有任何原因,随便写的,为了能复现更多的细节
2.3 放入图片到JPEGImages
2.4 放入对应的label到Annotations
2.5 利用voc2yolo4.py文件在ImageSets/Main下面生成对应的txt
2.6 再运行根目录下的voc_annotation.py,运行前需要将classes改成你自己的classes。
注意不要使用中文标签,文件夹中不要有空格!
项目文件不要存在中文路径下
改成这样
否则生成的train.txt就会这样
此时会生成对应的2009_train.txt,每一行对应其图片位置及其真实框的位置。
如果你没改classes,就不会有后面的坐标和类别
究其根本就是
看你的label的xml文件
3.训练
3.1 在train.py中将classes_path指向之前创建的my_classes.txt文件
3.2 使用自己训练的权重
在yolo.py
文件里面,在如下部分修改model_path
和classes_path
使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类。
3.3 开始训练
运行train.py即可开始训练。
4.预测
使用自己训练的权重
a、按照训练步骤训练。
b、在yolo.py文件里面,在如下部分修改model_path和classes_path使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类。
_defaults = {
"model_path": 'logs/Epoch150-Total_Loss26.0809-Val_Loss23.1463.pth',
"anchors_path": 'model_data/yolo_anchors.txt',
"classes_path": 'model_data/myclasses.txt',
"model_image_size" : (416, 416, 3),
"confidence": 0.5,
"iou" : 0.3,
"cuda": True
}
c、运行predict.py,输入
img/fire.jpg
可完成预测。
训练技巧
在train.py文件下:
1、mosaic参数可用于控制是否实现Mosaic数据增强。(这种方式并不是所有数据集都适用,可根据实际情况自行调整)
2、Cosine_scheduler可用于控制是否使用学习率余弦退火衰减。
3、label_smoothing可用于控制是否Label Smoothing平滑。