yolov4训练测试自己的数据集关键点总结

       在实习中,有一个任务是训练出一个车辆检测的yolov4模型。感觉yolov4的功能好强大啊!特此记录一下自己在使用过程中的一些改动。

                                             yolov4论文yolov4源码

首先肯定是要配置相关的环境:OpenCV,Cmake,还有cuda,cudnn这些就不多说了。配置环境基本项,多找博客多试一试。

我用的系统环境是:

deepin系统, OpenCV3.4.16,   Cmake3.22.0, cuda11.3,  cudnn8.2.1。

配置好环境,下载了源码肯定动手开始训练,源码很多。需要修改的我梳理了一下:

1.预训练权重

首先下载好预训练权重放在darknet文件夹中(建议在里面新建一个项目文件夹例如xingding,把所有的文件都放在里面)。

2.复制配置文件

复制cfg文件夹里面的yolov4-custom.cfg文件。然后修改里面的内容:

max_batches = classes*2000

steps = 0.8*max_batches,0.9*max_batches

ctrl+F 搜索[ yolo ]有三个yolo。把yolo里面的classes=[你的类别]

yolo之前的filters=(classes+5)×3

3.创建标签文件

可以复制voc.names文件,然后把里面的类别修改为自己的类别

4.创建数据文件

这个文件实际上是表明你的文件路径之类的文件xingding.data:

.data文件可以搜索一下darknet的默认.data文件,复制进行改写。

 classes:类别

train,valid:俩个txt所在的绝对路径或者相对路径

names:标签文件的路径

backup:训练产生权重文件的路径

5.制作train.txt,val.txt

我是基于voc数据集格式然后通过俩个.py文件转化为yolov4需要的txt文件。

这俩个脚本文件实现了提取VOC数据集格式的特定类,并且转化为yolov4需要的txt

俩个.py文件,我已经上传到我的资源了。

6.最终就可以训练了(一些命令行)

注意:在darknet文件夹打开终端。(记得和自己的文件夹和文件名字一一对应)

1.训练:./darknet detector train xinding/obj-xinding.data xinding/yolov4-xinding.cfg xinding/yolov4.conv.137

 2.测试map:./darknet detector map larger-object/obj.data larger-object/yolov4-larger-obj.cfg larger-object/yolov4-larger-obj_best.weights

3.测试视频:./darknet detector demo xinding/obj-xinding.data xinding/yolov4-xinding.cfg xinding/yolov4-xinding_final.weights xinding/huize.mp4 -out_filename xxx.mp4

4.提取best model的前N层参数做预训练模型(v4,136;v3,74): ./darknet partial xx.cfg xx_best.weights xxx.conv.136 136

5.测试新的没有标签的数据:./darknet detector test larger-object/obj.data larger-object/yolov4-larger-obj.cfg larger-object/yolov4-larger-obj_best.weights -dont_show -save_labels

note:第5个需要改src文件夹的detector.c文件然后重新make。

0.最后看看训练效果:

训练时

 测试map:

版权声明:本文为CSDN博主「言初-xys」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42433234/article/details/123068342

言初-xys

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

Yolo(3)(项目)Yolo v3 目标检测(85分类)

目录 基础理论 一、 读取文件 二、神经网络初始化 1、搭建神经网络 2、GPU加速 三、打开摄像头、按帧读取图像 四、向神经网络输入 五、获取神经网络输出 1、获取各层名称 2、获取输出层名称 3、获取输出层图像&#xff

GiraffeDet:Heavy Neck的目标检测框架

关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 获取论文:关注并回复“GD” 计算机视觉研究院专栏 作者:Edison_G 在传统的目标检测框架中,从图像识别模型继承的主