EfficientDet(2019/11/20) ResneSt(2020/4/19) YOLOV4(2020/4/23)
1、 EfficientDet
论文:(https://arxiv.org/pdf/1911.09070.pdf)
代码:(https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch)
什么检测器能够兼顾准确率和模型效率?如何才能实现?谷歌大脑 Mingxing Tan、Ruoming Pang 和 Quoc V. Le 提出新架构 EfficientDet,结合 EfficientNet(同样来自该团队)和新提出的 BiFPN,实现新的 SOTA 结果。
在计算机视觉领域,模型效率的重要性越来越高。近日,谷歌大脑团队 Quoc V. Le 等人系统研究了多种目标检测神经网络架构设计,提出了能够提升模型效率的两项关键优化。
1、提出加权双向特征金字塔网络(weighted bi-directional feature pyramid network,BiFPN),从而轻松、快速地实现多尺度特征融合;
2、提出一种复合缩放(compound scaling)方法,同时对所有主干网络、特征网络和边界框/类别预测网络的分辨率、深度和宽度执行统一缩放。
这个工作可以看做是EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks的扩展,从分类任务扩展到检测任务(Object Detection)。众所周知,神经网络的速度和精度之间存在权衡,而 EfficientDet 是一个总称,可以分为 EfficientDet D1 ~ EfficientDet D7,速度逐渐变慢,但是精度也逐渐提高。
如图,EfficientDet实现了最新的53.7%COCO AP,其参数量和FLOP比以前的目标检测方案要少得多
接下来主要从三个方面介绍EfficientDet:
1、网络基础结构EfficientNet;
2、复合缩放(compound scaling)
3、BiFPN(weighted bi-directional feature pyramid network);
1.1 EfficientNet
ResNet可以增加层数从ResNet18扩展到ResNet200。而EfficientNet,就是一种标准化的模型扩展结果,通过下面的图,我们可以直观的体会到EfficientNet b0-b7在ImageNet上的效果:对于ImageNet历史上的各种网络而言,可以说EfficientNet在效果上实现了碾压:
我们在扩展网络的时候,一般通过调整输入图像的大小、网络的深度和宽度(卷积通道数,也就是channel数)进行。在EfficientNet之前,研究工作只是针对这三个维度中的某一个维度进行调整,因为有限的计算能力,很少有研究对这三个维度进行综合调整的。
1.1.1 EfficientNet复合缩放方法(compound scaling method)
EfficientNet的设想就是能否设计一个标准化的卷积网络扩展方法,既可以实现较高的准确率,又可以充分的节省算力资源。因而问题可以描述成,如何平衡分辨率、深度和宽度这三个维度,来实现网络在效率和准确率上的优化。
实验一:
分辨率、深度和宽度这三个维度之间有内在联系,比如更高分辨率的图片就需要更深的网络来增大感受野捕捉特征。因此作者做了两个实验(实际应该多得多)来验证,第一个实验,对三个维度固定两个,只放大其中一个,得到结果如下:
w、d、r 分别是网络宽度,网络高度,分辨率的倍率。
图中从左至右分别是只放大网络宽度(width, w 为放大倍率)、网络深度(depth, d 为放大倍率)、图像分辨率(resolution, r 为放大倍率) 的结果,可以观察到单个维度的放大最高精度只在 80 左右。本次实验作者得出一个观点:三个维度中任一维度的放大都可以带来精度的提升,但随着倍率越来越大,提升却越来越小。
实验二:
尝试在不同的 d, r 组合下变动 w
从实验结果可以看出最高精度比之前已经有所提升,且不同的组合效果还不一样,最高可以到 82 左右。作者又得到一个观点,得到更高的精度以及效率的关键是平衡网络宽度,网络深度,图像分辨率三个维度的放缩倍率(d, r, w)
因此,作者提出了一种混合维度放大法(compound scaling method),该方法使用一个混合系数Φ来决定三个维度的放大倍率
其中,α、β、γ均为常数(不是无限大的因为三者对应了计算量),可通过网格搜索获得。混合系数Φ可以人工调节。考虑到如果网络深度翻番那么对应计算量会翻番,而网络宽度或者图像分辨率翻番对应计算量会翻 4 番,即卷积操作的计算量(FLOPS) 与d、w2、r