EfficientDet在精度和效率均实现碾压的目标检测新网络

论文标题:EfficientDet: Scalable and Efficient Object Detection
论文地址 https://arxiv.org/pdf/1911.09070.pdf

建立一个高效且高精度的模型

原作者的目的就是如何建立一个精度高且效率高的模型,要建立一个这样的模型面临2个挑战。
1.efficicient multi-scale feature fusion:传统的多尺度特征融合(例如FPN)只是简单的上采样,然后相加。各层之间是相同对待的(没有权重)。但实际上各层特征不应该等同对待(好像在哪见过?)。本文提出的方法为BiFPN (bidirectional feature pyramid network),给特征融合加上了权重。

2.model scaling:参照efficienNet提出compound scaling(复合缩放), 即模型的精度要高,增大模型是最直接的方法,但是随意的叠加网络并不能带来高效的提升(ResNet从152层叠到1000层并没有多少提升)。所以参照EfficientNet的从多个角度去提升网络复杂度,尽量减小短板效应。

最终,EfficientNet + BiFPN + compound scaling = EfficientDet
在相同精度下,其参数量和FLOPS远远小于之前的网络。且EffificientDet-D7在COCO上达到SOTA 51.0 mAP同时仅用52M的参数和326B FLOPS。精度比之前的SOTA模型高0.3% mAP, 但参数量和计算量分别仅为之前的1/4和1 / 9.3。
在相同FLOPS的情况下,其精度对其他模型完全碾压
在这里插入图片描述

Related Work

One-Stage Detectors: 分析了下现存的object detector,基本分为一阶段(追求效率但是精度低)和二阶段(追求精度但效率低)。

Multi-Scale Feature Representations:总结了之前的特征融合,即FPN的一系列改进吧,有些网络之前也没看过。FPN,PANet, STDL, NAS-FPN, G-FRNet等

Model Scaling:要高精度就要增大网络,增大通道数,重复特征网络等

BiFPN:一个带权重的双向交叉网络

特征层融合,最早由FPN应用到object detection(应该是?)。即浅层有更多的细节信息(局部特征和位置信息(即特征图大)),而深层具有更多的语义信息(但缺少细节信息和定位不精确)。通过融合浅层特征和深层特征,使得特征图同时具有细节信息和语义信息。FPN仅有自顶向下。这样仅有浅层特征得到信息融合了。而PANet增加多一条自底向顶的特征融合。使得浅层和深层均能得到信息融合。
P 7 o u t = C o n v ( P 7 i n ) P_7^{out} = {Conv}(P_7^{in}) P7out=Conv(P7in) P 6 o u t = C o n v ( P 6 i n + R e s i z e ( P 7 o u t ) ) P_6^{out} = {Conv}(P_6^{in} + {Resize(P_7^{out})}) P6out=Conv(P6in+Resize(P7out)) . . . . . . {......} ...... P 3 o u t = C o n v ( P 3 i n + R e s i z e ( P 4 o u t ) ) P_3^{out} = {Conv}(P_3^{in} + {Resize(P_4^{out})}) P3out=Conv(P3in+Resize(P4out)) F P N 的 特 征 融 合 方 式 {FPN的特征融合方式} FPN
在这里插入图片描述

BiFPN

      对比FPN、PANet、NAS-FPN。PANet的表现更好(计算量也更大),于是在PANet上做出一些改进得到BiFPN。

  1. 移除PANet上仅有一个输入的点(即没有特征融合的点,直观的感受为其贡献很小);
  2. 增加一条额外的跳跃连接,直接从输入到输出的连接,图figure 2(f)。即输出同时混合后的特征和原始特征;
  3. 原始的PANet仅有一个顶到底(上采样层)和一个底到顶(下采样层)。本文也叠加了多个BiFPN layer层去得到更好的feature fusion。
    在这里插入图片描述
带权重的特征融合:

  正如上文所说的,不同特征层之间的贡献应该是不同的,对于深层特征有更多的语义信息,而浅层学到的信息更少。比如在 P 7 o u t P_7^{out} P7out其输入有来自 P 7 i n P_7^{in} P7in的特征信息和从P3上采样而来的信息。但是P3的上采样信息更应该作为辅助,而不是和P7的信息具有相同的权重。当然,这只是我自身的直观的感受,实际上可能不是这样
加权方法:(以2个特征图加权融合举例,权重为 W i W_i Wi,特征图为 I i I_i Ii)

  1. 给出2个可学习标量 W i W_i Wi,每个特征图一个权重;
  2. 给出2个可学习向量(长度为通道数),每个通道一个权重;
  3. 给出2个多维tensor,每个pixel一个权重。

实验结论就是,使用2个标量就已经可以得到不错的精度了,计算量也小。但是如果不对可学习参数 W i W_i Wi的大小进行限制,容易造成不稳定。所以要对 W i W_i Wi的大小进行限制。
权重限制方法
1.无限制: o u t p u t = ∑ i w i I i output = \sum_i{w_i}{I_i} output=iwiIi,其缺陷就是训练不稳定。

2.Softmax-based fusion: o u t p u t = ∑ i e w i ∑ j e w j I i output = \sum_i{e^{w_i}\over {\sum_je^{w_j}}}{I_i} output=ijewjewiIi, 因为 W i W_i Wi之间经过softmax后压缩至0~1.则融合后的特征相当于之前特征的加权平均,因为softmax后权重和为1。但是softmax在GPU上的速度很慢。

3.提出fast normalized fusion: o u t p u t = ∑ i w i s m o o t h + ∑ j w j I i output = \sum_i{w_i\over {smooth + \sum_jw_j}}{I_i} output=ismooth+jwjwiIi,同时限制 W i ≥ 0 W_i\geq0 Wi0,同样可以达到归一化效果,但速度却极大的提高了,比softmax快30% ?

同时为了进一步加速,使用了深度可分离卷积。卷积后+BN。

2个疑问
1.虽然BiFPN repeat多次,有多次特征融合,但上文中说2个特征图融合使用2个标量就可以达到不错的效果。且由BiFPN的结构图可知,特征融合的输入最多为3项,也即3个标量做softmax。所以softmax不应该速度慢那么多吧?文中说到fast normalized fusion比Softmax-based fusion快30%??
第2个疑问为,fast normalized fusion是如何限制 W i W_i Wi在训练时一直大于0的,在反向传播后应该不能保证 W i W_i Wi的正负性,因其梯度应该为(特征图的值 × \times ×上流回传的梯度值)的平均值,若是再经过sigmoid使其恒为正,那和softmax就一样了

另外自己以前也曾尝试过FPN的加权,简单的把原来FPN的feature map直接相加改成concat + 1*1卷积回256通道。效果一般(没做好测试吧。。 )

Compound Scaling:

  参照EfficientNet的方法(扩大网络规模时同时扩大网络的深度(层数),网络的宽度(通道数)和输入尺寸),拒绝短板效应。但因为object detection的参数比分类要多,所以没用grid-search。直接依据经验设计参数。Backbone使用efficientNet的B0-B6,同时增加一参数 Φ \Phi Φ,根据 Φ \Phi Φ设计BiFPN的通道数,层数,分类和回归的层数,输入像素等等。 Φ \Phi Φ的值与efficientNet对应。如table1。
在这里插入图片描述
直接依据经验设计参数( Φ \Phi Φ本身就可看做一超参数)。
B i F P N 的 通 道 数 : W b i f p n = 64 ⋅ ( 1.3 5 Φ ) BiFPN的通道数: W_{bifpn} = 64·(1.35^{\Phi}) BiFPNWbifpn=64(1.35Φ) B i F P N 的 层 数 : D b i f p n = 2 + Φ BiFPN的层数: D_{bifpn} = 2+{\Phi} BiFPNDbifpn=2+Φ 分 类 和 回 归 层 数 : D b o x = D c l a s s = 3 + Φ / 3 分类和回归层数: D_{box} = D_{class} = 3+{\Phi/3} Dbox=Dclass=3+Φ/3 输 入 尺 寸 : R i n p u t = 512 + Φ ⋅ 128 输入尺寸: R_{input} = 512+{\Phi·128} Rinput=512+Φ128
输入尺寸的128是因为 2 7 = 128 2^7=128 27=128,可以避免下采样后上采样尺寸对不准。

结论

EfficientDet = EfficientNet + BiFPN + compound scaling,个人感觉并没有什么特别突出的改进点。compound scaling本身就是和EfficienNet的思想一致(多维度同时缩放),就是EfficientNet的基础上+BiFPN,BiFPN也是叠网络。但是效果却挺好。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值