使用yolov4进行自己数据集的检测(pytorch)

使 用 y o l o v 4 进 行 自 己 数 据 集 的 检 测 ( p y t o r c h ) 使用yolov4进行自己数据集的检测(pytorch) 使yolov4pytorch

尚未完善,最近时间紧缺,留待下次

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_pathclasses_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平滑。

猜你喜欢

转载自blog.csdn.net/qq_41375318/article/details/115114742
今日推荐