YOLOV4首发使用体验

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p5i1YLfk-1587914617755)(https://pjreddie.com/media/image/yologo_2.png)]

YOLOV4训练自己的数据集

训练配置基本上就是官方文档的翻译,加上一些自己的理解,英语好的可以直接看官方文档

更改网络配置参数(cfg文件)

  1. 从yolo给的cfg文件中复制yolov4-custom.cfg到自己的项目里,喜欢的可以改一个名字。

  2. 更改batch=64 subdivisions=64,YOLOV4提高了训练的要求,我的笔记本的1060居然被嫌弃了,改成64也不能正常开始训练,只好借用高性能台式2070来训练了

  3. 设置 max_batches为(classes*2000 但是最小不能小于 4000), 意思就是你有三个目标需要检测就设置 max_batches=6000

  4. 设置steps为80%和90%的 max_batches,意思就是你有三个目标需要检测就设置 steps=4800,5400

  5. 设置网络的大小为 width=416 height=416 或任意一个32的倍数,yolov4默认是608*608,这就挺好的,没有必要改这个,改了这个之后后边的anchors锚点也需要改一下,如果你不知道怎么改锚点,就不用更改网络大小了。YOLO在检测的时候会自动resize你输入的图片为设置的大小。

  6. 下图就是一个实例:

    YOLOV4首发使用体验

  7. 下一步就是更改具体的yolo层的配置了,yolov4和v3一样,还是有三个yolo层,这三个yolo层都需要根据自己的数据集改一下,如果你在cfg里找不到可以搜索一下。

  8. 更改classes为你自己的标签数量,然后更改yolo层上边的convolutional层的filters的数量为filters=(classes + 5)x3 。也就是说如果你有5个classes,就需要设置filters为(5+5)*3=30,就像下图展示的那样。这一步很关键,三个YOLO层都需要这样设置,不能只设置一个YOLO层

    YOLOV4首发使用体验

  9. 如果你用[Gaussian_yolo]的话是需要特殊的设置的,这里就不讲了,用到的话可以自己去看官方文档。

转化标注和制作train.txt

这一步比较简单,在我的另一篇博客里也写过了,就不赘述了。

编译Darknet

这一步网络上有很多的教程了,我就不再重复写一遍,直接贴一篇我觉的写的很好的

编译darknet

CUDA和cuDNN安装及配置环境变量

需要注意的是,编译darknet需要安装cuda和cuDNN并配置环境变量,不一定要安装CUDA9.0版本的,其他版本也可以

开始训练

​ 如果你的环境和配置文件都准备好了,就可以开始训练了,不过这一步需要下载预训练权重,官方文档是从墙外下载的,我也好心上传了一份“yolov4.conv.137”,点击就可以直接下载。

​ darknet的训练代码也非常简单darknet detector train custom.data yolov4-custom.cfg yolov4.conv.137,直接打开cmd运行这句话就可以了,然后就可以开始训练了。

训练两个目标的网络4000次之后的体验

​ 先贴出来我训练的mAP,可以看到YOLOV4训练的结果比较惨淡,在同样的数据集的情况下甚至还不如YOLOV3,可能是我使用的有点问题,不知道为什么会出现这样的情况。这个模型训练到后期loss一直在7.X降不下来,而同数据集下的YOLOV3就可以把loss降到2.X。

YOLOV4首发使用体验

相关文章:

  • 2021-10-08
  • 2021-11-04
  • 2021-08-11
  • 2021-09-07
  • 2021-11-17
  • 2021-11-22
  • 2021-08-22
  • 2022-02-15
猜你喜欢
  • 2021-09-29
  • 2021-10-18
  • 2022-12-23
  • 2021-06-22
  • 2022-01-12
  • 2021-05-23
相关资源
相似解决方案