当前位置: 代码迷 >> 综合 >> Pytorch-YOLOV4-火焰目标检测
  详细解决方案

Pytorch-YOLOV4-火焰目标检测

热度:88   发布时间:2024-02-07 10:15:07.0
首先感谢大佬提供的代码bubbliiiing

0.效果展示

在这里插入图片描述 在这里插入图片描述

1.所需环境

torch==1.2.0

2.注意事项

代码中的yolo4_weights.pth是基于608x608的图片训练的,代码中的默认anchors是基于608x608的图片的。
注意不要使用中文标签,文件夹中不要有空格!
在训练前需要务必在model_data下新建一个txt文档,文档中输入需要分的类,在train.py中将classes_path指向该文件

3.小技巧的设置

train.py文件下:
1、mosaic参数可用于控制是否实现Mosaic数据增强。(这种方式并不是所有数据集都适用,可根据实际情况自行调整)
2、Cosine_scheduler可用于控制是否使用学习率余弦退火衰减。
3、label_smoothing可用于控制是否Label Smoothing平滑。

4.文件下载

1.训练所需的yolo4_weights.pth可在百度网盘中下载。
链接: 这里 提取码: 11su
yolo4_weights.pth是coco数据集的权重。
yolo4_voc_weights.pth是voc数据集的权重。
2.数据集为自己爬取到的3300张包含火焰的图片和3300张不含火焰的图片以及极市平台的样例集(100张有火焰的图片),链接有两种,有积分的支持一下(CSDN),没有的也不强求(百度盘)。
CSDN
百度盘 提取码:490b
我自己标注的图片质量不好,就不放出来丢人了,大家有需要自行下载并标注,标注推荐使用labelImg,反正我用起来挺方便的。

5.训练步骤

1、本文使用VOC格式进行训练。
2、训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
3、训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
4、在训练前利用voc2yolo4.py文件生成对应的txt。
5、再运行根目录下的voc_annotation.py,运行前需要将classes改成你自己的classes。注意不要使用中文标签,文件夹中不要有空格!

classes = ["fire"]

6、此时会生成对应的2007_train.txt,每一行对应其图片位置及其真实框的位置
7、在训练前需要务必在model_data下新建一个txt文档,文档中输入需要分的类,在train.py中将classes_path指向该文件,示例如下:

classes_path = 'model_data/customdata_classes.txt'    

model_data/new_classes.txt文件内容为:

fire

8、运行train.py即可开始训练。

6.预测步骤

使用自己训练的权重

a、按照训练步骤训练。
b、在yolo.py文件里面,在如下部分修改model_path和classes_path使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类

_defaults = {"model_path": 'model_data/Epoch50-Total_Loss1.5336-Val_Loss5.0895.pth.pth',"anchors_path": 'model_data/yolo_anchors.txt',"classes_path": 'model_data/customdata_classes.txt',"model_image_size" : (608, 608, 3),"confidence": 0.5,"cuda": True
}

c、运行predict.py,输入

img/fire.jpg

可完成预测。