论文笔记:YOLOv4

说起来难受,自己的东西一直拖到YOLOv4出来了,唉。

作者在related work中做了个综述,包括:1.网络模型; 2.不增加前传时间但提点的tricks(bag of freebies); 3.略微增加前传时间但提点较大的tricks(bag of specials)。因为是综述这里就不一一罗列了。有一点值得一提的就是在进行网络模型分类的时候作者把一阶段网络称为"dense prediction",二阶段网络称为"sparse prediction"。这种说法比较少见但想想确实也合理。因为一阶段网络是对每个feature点都要做分类和回归,而二阶段网络在找出roi之后进行分类和精回归。如果把二阶段网络的第一阶段与一阶段网络直接相比的话,少了具体分类的部分,在这里只有前景和背景一说。

网络结构

作者称,对于分类的最优参考模型对于检测并不一定是最优的,detector需要以下几点特性:
1.更高的输入网络尺寸用于检测多重小目标
2.为了覆盖更高的输入尺寸,使用更多的层已获得更大的感受野
3.更多的参数,以更好地在单一图像中检测不同尺度的物体

基于此CSPDarknet53以更多的3*3卷积(29:16)获得了比CSPResNext50更大的感受野。
论文笔记:YOLOv4_第1张图片
作者将不同大小的感受野的影响总结如下:
1.上升到目标大小,获得整个目标的视野
2.上升到网络大小,能够学习到目标周围context信息
3.溢出网络大小,增加图像和最终激活之间的连接数

又是一个我之前见的比较少的说法。挺有道理的总结。

最后作者采用CSPDarknet53作为主干,整合SPP模块,用PANet代替FPN作为YOLOv4的结构。

一些expensive的方法没有使用,以让所有人都能在平民显卡上复现YOLOv4。。。。。。。。。。。。。。

先把几个要点整理下:
CSP:

这个以前不知道,出自CSPNet: A new backbone that can enhance learning capability of cnn(参考自知乎)

这篇文章主要从梯度角度出发:
Fustion First的方式是对两个分支的feature map先进行concatenation操作,这样梯度信息可以被重用。
Fusion Last的方式是对Dense Block所在分支先进性transition操作,然后再进行concatenation, 梯度信息将被截断,因此不会重复使用梯度信息 。
提出如下结构:
论文笔记:YOLOv4_第2张图片
结合论文中的网络结构图,part1和part2是直接从整块feature map拆下来的。
实验结果表示:
1.使用Fusion First有助于降低计算代价,但是准确率有显著下降。
2.使用Fusion Last也是极大降低了计算代价,top-1 accuracy仅仅下降了0.1个百分点。
3.同时使用Fusion First和Fusion Last的CSP所采用的融合方式可以在降低计算代价的同时,提升准确率。

SPP:

参考自知乎。由于CNN网络后面接的全连接层需要固定的输入大小,故往往通过将输入图像resize到固定大小的方式输入卷积网络,这会造成几何失真影响精度。SPP模块就解决了这一问题,他通过三种尺度的池化,将任意大小的特征图固定为相同长度的特征向量,传输给全连接层。

论文笔记:YOLOv4_第3张图片
PANet

参考自CSDN。之前组会上有讲过,从特征金字塔特征融合优化的角度入手。原先FPN浅层的特征从底部传到顶部需要走太多的网络层因而丢失信息严重,因此加上另一条自底向上的路以特征融合。

论文笔记:YOLOv4_第4张图片

Selection of BoF and BoS

DropBlock用于regularization
syncBN用于normalization

Additional improvements

这里的方法更加琐碎,暂时做一个简单的了解,以后慢慢细看。

论文笔记:YOLOv4_第5张图片
Mosaic
四种图片的混合:
论文笔记:YOLOv4_第6张图片
Self-Adversarial Training (SAT)
分为两个阶段。第一阶段固定网络权重,改变图片,以造成没有目标在图片中的假象。第二阶段改变网络权重,在改变后的图片上训练。

Cross mini-Batch Normalization(CmBN)
论文笔记:YOLOv4_第7张图片
modified SAM and PAN
论文笔记:YOLOv4_第8张图片

experiments

tricks对主干网络分类性能的影响:
论文笔记:YOLOv4_第9张图片
论文笔记:YOLOv4_第10张图片
tricks对检测性能的影响:
论文笔记:YOLOv4_第11张图片
论文笔记:YOLOv4_第12张图片
不同主干的效果:
论文笔记:YOLOv4_第13张图片
不同mini-batch的影响(作者也表示用了这些tricks再加minibatch没有提升):
论文笔记:YOLOv4_第14张图片
最终结果:
论文笔记:YOLOv4_第15张图片

总结

就像读了一篇小综述一样。很多tricks本来也就是一两句话就可以解决的。这篇文章更多的在于实用意义。

你可能感兴趣的:(论文笔记:YOLOv4)