paper: You Only Look One-level Feature
code: megvii-model/YOLOF
一、 原理介绍
结构图
这篇文章主要是在提取特征以及对于loss平衡做了改进。
提取特征网络主要是针对RetinaNet
的FPN
的结构进行改进,如下是所示作者通过四个实验分别是MiMo
, SiMo
, MiSo
以及SiSo
最终发现
SiMo
和MiSo
的表现能力相当。这里总结出一个结论多尺度特征融合(C3-C5)带来的收益要远远小于分治策略(P3-P7)带来的收益,因此多尺度特征融合在FPN不是最关键的功能, 特征融合会带来较大的内存负担以及算法效率。
如下图也可以得出此结论。性能比较
1.问题:
通过面的图也可以发现由
MiMo
(第一柱状图)直接转为SiSo
是会有性能下降。原因有2个:
- 与C5特征图感受野匹配的目标尺度范围是有限的,这阻碍了不同尺度目标的检测表现
上图C5特征感受野scale比较单一(图a), 通过增大感受野可以看大目标,但小目标看不见(图b), 最终我们可以通过空洞卷机及残差机制来实现不同scales的目标(图c)。
残差+空洞卷积
中心思想的含义就是将原来的特征与不同空洞率的空洞卷积进行stack
,来使得我们提取的scale范围更广
- 由于单级特征图上稀疏anchor生成策略造成的正样本不均衡问题
2.解决思路
- 针对第一个问题
Then, we combine the original scale range and the enlarged scale range by adding the corresponding features, resulting in an output feature with multiple receptive fields covering all object scales (Figure 4(c)).The above operations can be easily achieved by constructing residual blocks [14] with dilations on the middle 3 × 3 convolution layer.
上图为Dilated Encoder
模块首先将C5
进行1*1
卷积降低维度, 再添加3*3
不同空洞率的空洞卷积来产生不同感受野的特征,覆盖所有尺寸的目标。当然这样的Residual Blocks有4个。
- 针对第二个问题
一般我们匹配anchor
的时候,我们通过anchor
和GT
之间的IOU大于一个给定的阈值,则我们设置这个为正样本,Max-Iou匹配
。
在MiMo结构中,anchor以一个密集平铺的方式在多层特征图上预定义,GT框根据尺度在不同级别的特征图上产生正样本。在分治策略下,Max-IoU匹配使各尺度的Gt框可以产生足够数量的正anchor(上述的正样本)。然而,当采用SiSo编码器时,anchor的数量比MiMo编码器中的anchor的数量减少了很多,从100k减少到5k,导致anchor是非常稀疏的。对稀疏的anchor采用Max-IoU匹配会引起一个问题,如下图所示,大GT框比小GT框会产生更多的正anchor,从而造成了正anchor的不平衡问题。这会导致检测器只关注大目标的训练,而忽略小目标检测的优化。
结构图因此,作者设计了一个均衡匹配(Uniform Matching)策略,即对每个GT框而言,只采用最接近的k个anchor作为正anchor,这就能如上图一样保证每个GT框不论尺寸大小都有相同数目的正anchor。平衡的正样本确保所有的GT框平等地参与训练。同样,作者也设置阈值来过滤大IoU的负样本和小IoU的正样本。效果如下图所示。
至于decoder,则和RetinaNet类似,它包含两个并行的head分支,用于目标分类和边框回归任务。作者这里主要做了两个改动,第一,是按照DETR中FFN的设计,使得两个head卷积层数目不同。在回归分支中,是四个卷积层加上BN层和ReLU层,而在分类分支中只有两个卷积层。第二,依据Autoassign(参考论文阅读:AutoAssign),为回归分支的每个anchor增加一个隐式的objectness(没有直接监督),最终的分类置信度由分类分支的输出和objectness得分相乘得到。
[参考]
网友评论