当前位置: 代码迷 >> 综合 >> YoloF you only look one level feature 详解
  详细解决方案

YoloF you only look one level feature 详解

热度:64   发布时间:2023-12-15 00:36:39.0

YOLOF

摘要

文中讨论FPN成功在于分而治之而不是特征融合。文中从另一个角度解决这个问题,只使用一层的特征信息。文中有两个主要因素扩张encoder、统一匹配。且608x608的图片在2080TI能够达到60fps。

为什么要去FPN, 因为造成显存冗余、检测器复杂、以及 降低推理速度。 对比flops(浮点运算数量)FPN有134G 和 一维特征6G. 显存冗余明显。推理速度为13FPS和34FPS对比。 但是一维特征会导致精度低,研究发现精度低的原因在于最后一层输出尺度小、以及单层anchor小于多层anchor。

文中改进

  1. 解决输出尺度单一问题,使用扩张卷积将不同感受野的特征结合一起。 引入了扩张encoder结构。

         (图没有办法上传,清自行下载论文看图)

 

这类encoder结构分成了两个部分,projector以及残差block。

Projector 将预测层首先使用1x1卷积,降低channel 维度。然后接一个3x3卷积改进上下文语义。 这一部分和FPN非常相似。 集成4类膨胀3x3卷积残差block。生成不同感受野的输出特征。

  1. Positive Anchor不均衡问题,单尺度输出面临着positive Anchor不足的问题。 使得小尺度检测出现遗漏。对每一个ground truth使用k紧邻,对每个ground truth 给予相同的anchor 数量。 其中IOU>0.7的negative 以及IOU<0.15的positive 忽略。

YOLOF 结构

结构分成三个部分,backbone、encoder、decoder。

Backbone: 一般使用ResNet、ResNext的最后一层输出,2048维channel。下采样5次。

Encoder: 首先基于projector 将channel从2048维降低到512维, 之后的残差卷积下降4倍。

Decoder: 使用两个平行分支,一个平行分支用于回归定位,另一个分支用于分类。其中回归使用4个 卷积+BN+RELU的结构。 分类使用2个 卷积+BN+RELU的结构。

对回归head的每一个anchor增加一个隐式预测对象。 分类是和隐式对象相乘的一个输出。

 (图没有办法上传,清自行下载论文看图)

 

 

  相关解决方案