YOLOF学习笔记

YOLOF学习笔记

paper: https://arxiv.org/abs/2103.09460

code: https://github.com/megvii-model/YOLOF

作者以RetinaNet为基线,设计了四款解码器(MIMO、SIMO、MISO、SISO),发现SIMO编码器的性能与MIMO性能相当,由此可以看出C5特征层包含了充分的用于检测不同尺度目标的上下文信息。

作者尝试用简单的SISO编码器去替换掉复杂的MIMO编码器,但是这种替换会带来显著的性能下降。作者分析得出SISO编码器性能下降的两个重要原因是:

以下图(a)为例,C5特征感受野仅仅覆盖有限的尺度范围,当目标尺度与感受野尺度不匹配时就导致了检测性能的下降。为使得SiSo Encoder可以检测所有目标,作者需要寻找一种方案生成具有可变感受野的输出特征,以补偿多级特征的缺失。

首先上图是paper中给出的图示,作者通过堆叠扩张卷积的方式来提高其的感受野(a—>b),可以看到,覆盖的尺度有所偏移并得到了扩大,但是还不足以使得其覆盖全部特征,于是作者通过对原始尺度范围与扩大后的尺度范围进行相加方式进行组合,得到了覆盖范围更广的输出特征(c=a+b)。

 

两大重要功能模块Dalated Encoder和Uniform Matching

Dalated Encoder(扩展编码器):用以提高感受野

主要包含两个模块:

       投影层:采用1x1的卷积减少参数量,然后经过3x3的卷积提取上下文语意信息(作用类似FPN)

       残差层:堆叠四个不同dilation rate(扩张因子)的残差模块以生成多感受野的输出特征

下图给出了堆叠残差模块后的结果图,可以清晰的看出在堆叠了残差模块后,模型的AP性能明显的到了提升。

具体操作参考如下:

上图中示例是三个dilation rate=2扩张卷积层连续卷积后的结果,蓝色的标识是参与计算的卷积中心,而颜色的深度表征次数。可以看到,由于3次的dilation rate是一致的额,所以卷积的计算中心会呈现出一种网格状向外扩展,有一些点不会成为计算的中心点。

解决这个问题最直接的方法当然就是不使用连续的dilation rate相同的扩展卷积,但是这还不够,因为如果dilation rate是成倍数的,那么问题还是存在。所以最好的方式是将连续排布的扩张卷积的dilation rate设置为“锯齿状”,比如分别是[1,2,3],那么卷积中心的分布就会变成下面这样,不在有遗漏的情况。

作者采用的四层dilation rate为[2,4,6,8],虽然还是存在一定的问题,但是相比于[1,2,3,4],[2,4,6,8]所带来的感受野更大,经实验证明比[1,2,3,4]效果更好。详解比较见下图:

 

Uniform Matching(统一匹配):解决正锚点的不平衡问题

正锚点(anchors)的定义是目标检测优化问题的关键,在本文中,作者在C5特征的每个位置上用不同大小{32,64,128,256,512}构造五个锚点,但是由于大的gt-boxes会产生更多的正锚点引起不平衡。

所以为解决正锚点的不平衡问题,作者提出了Uniform Matching策略:对于每个目标框采用k近邻锚点作为正锚点,这就确保了所有的目标框能够以相同数量的正锚点进行均匀匹配。正锚点的平衡确保了所有的目标框都参与了训练且贡献相等。在实现方面,参考了Max-IoU匹配,作者对Uniform matching中的IoU阈值进行设置以忽略大IoU(>0.7)的负锚点和小IoU(<0.15)的正锚点。下图给出了各种匹配方法的性能指标,可以看出Uniform Matching方法相比于其他方法还是有可取之处的。

 

最后奉上YOLOF的总体架构图:

 

BackBone:在所有模型中,作者简单的采用了ResNet与ResNeXt作为骨干网络,所有模型在ImageNet上进行训练,输出C5特征通道数为2048,下采样倍率为32

Encode在这部分,作者参考FPN添加了两个投影层,将通道数降为512,然后堆叠四个不同扩张因子的残差模块

Decode在这部分,作者采用RetinaNet的主要设计思路,包含两个并行的任务相关的Head分别用于回归和分类。作者仅仅添加了两个微小改动:

  1. 参考DeTr中的FFN设计让两个Head的卷积数量不同,回归Head包含4个卷机而分类Head则仅包含两个卷机
  2. 作者参考Auto Assign在回归Head上对每个锚点添加了一个隐式目标检测

Other Detail为了解决YOLOF中的预定义锚点的稀疏问题,作者在图像上添加了一个随机移动的操作以缓解该问题,使图像在上、下、左、右四个方向移动不超过32个像素点,并且这种移动对最终的分类是有帮助的。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值