YOLOV4学习系列(一) 初识YOLOV4

前言

四月下旬,YOLOV4腾空出世,作者是Alexeyab。因为之前一直有对他的github 代码(https://github.com/AlexeyAB/darknet)有研究,也学习和借鉴了不少好的方法(当然里面也有效果一般和不太认同的地方)。所以初以为YOLOV4就是一个YOLOV3 optimal版本,这几天真正看了下YOLOV4,并把它在自己数据集上跑起来后 才知道V4和V3的确有较大的一些改变。

网络结构

V3的backbone是darknet53,实际卷积层数是52层,它主要有CBL+Res1+Res2+Res8+Res8+Res4组成,CBL是Conv+Bn+Leaky-relu的统称,每个CBL包含一个Conv;每个ResX包含1+2*X个卷积层,所以这个主干分类网络(特征提取器)的卷积层数目=1+(1+2*1)+(1+2*2)+(1+2*8)+(1+2*8)+(1+2*4)= 1+3+5+17+17+9=52层。

这里要搞清楚的一个概念是整个yolo3网络层结构一共有106层,这里面包括Conv+Res+yolo+upsample+其它类型层。此外除了backbone的52个卷积层外,后面在三个yolo层输出前的处理中也分别有7个卷积层(这个部分叫neck)。V3网络层结构末尾层次信息截图如下所示。

V4的backbone是基于V3 darknet53基础上引入了CSP(Cross Stage Paritial)模块来把RESX模块取代掉。CSP模块是2019年诞生的网络模块,比Resnet有更强的学习能力,每个CSPX包含3+2*X个卷积层,因此整个主干网络backbone一共包含2+(3+2*1)+2+(3+2*2)+2+(3+2*8)+2+(3+2*8)+2+(3+2*4)+1=72。 从这里可以看到V4的主干网络要比V3的整整多了20个卷积层。

V4 backbone后面的Neck部分也变得更加复杂了, 添加了SPP, FPN+PAN结构等。我们以608x608网络size为例来分别看看V3和V4的网络层次不同地方。

V3: 608x608->304x304->152x152->76x76->38x38->19x19->yolo1->upsample->38x38->yolo2->upsample->76x76->yolo3

V4:608x608->304x304->152x152->76x76->38x38->19x19->upsample->38x38->upsample->76x76->yolo1->38x38->yolo2->19x19->yolo3

从上面两种网络层次结构看,V4的neck部分的确添加了很多层。 正因为backbone和neck层数的增加,所以V4一共有161层了,如下截图所示:

最后就是YOLO层的处理了,即Head部分,V4和V3差不多的,只是V4使用了DIOU_nms而已。

结论

YOLOV4的网络结构比V3变得的更复杂了,主要体现在backbone和neck部分。 目前正在基于自己数据集训练中,速度很慢啊,至于效果怎么样,后面再来分享。

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ltshan139

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值