论文提出了细粒度动静detection head,可能基于路由机制动静地交融不同FPN层的像素级部分特色进行更好的特色表白。从设计的路由空间来看是一个非常耗时的操作,然而作者设计的高效路由器理论计算非常高效。试验后果来看,细粒度动静detection head能够即插即提点
起源:晓飞的算法工程笔记 公众号

论文: Fine-Grained Dynamic Head for Object Detection

  • 论文地址:https://arxiv.org/abs/2012.03519
  • 论文代码:https://github.com/StevenGrove/DynamicHead

Introduction


  在指标检测算法的钻研中,特色金字塔FPN是非常重要的构造,可能很好地表白指标的多尺度特色。近期也有很多FPN构造的改良钻研,比方手工设计的PANet、FPG以及主动搜寻的NAS-FPN、Auto-FPN。但上述的改良钻研有两点问题:

  • 在训练时将训练指标粗略地调配给某个FPN层,并且认为指标区域是不可分割,层间交融也是整层进行。这种策略可能会疏忽了指标扩散在FPN不同层的细粒度部分特色,这些部分特色可能很好地进步指标的语义信息。
  • detection head的预测后果基于单层FPN特色,分辨率固定, 可能会疏忽了重要的小区域特色。

  为了解决上述的问题,论文提出了细粒度动静detection head,可能基于路由机制动静地交融不同FPN层的像素级部分特色进行更好的特色表白。该办法参考了粗粒度的动静网络办法,集中在像素级别进行路由抉择。

Fine-Grained Dynamic Routing Space


  FPN-based指标检测网络通过骨干网络获取不同分辨率特色,而后通过top-bottom pathway以及横向连贯进行多尺度特色交融,最初应用简略的共享detection head对不同分辨率的特色进行后果预测。

  细粒度动静detection head的外围在于细粒度动静路由空间(fine-grained dynamic
routing space)的设计,如上图所示。对于第$n$层特色,动静路由空间的深度为$D$,与FPN的3层特色相干,别离为$n$层、$n-1$层以及$n+1$层。动静路由空间的根底为细粒度动静路由器(fine-grained dynamic router),依据状态抉择各像素的后续门路,每个像素有3个不同的门路可供选择。

Fine-Grained Dynamic Routing Process


  给定路由空间以及几个独立的节点,应用论文提出的细粒度动静路由器(fine-grained dynamic routers)实现多尺度特色的交融,次要进行element-wise的相加以及像素级路由门路的抉择。

Fine-Grained Dynamic Router

  给定路由空间节点$l$,该节点的特色标记为$x^l=\{x_i^l \}^N_{i=1}$,$N=H\times W$为像素地位,共有$C$维,路由节点的候选门路$F={f_k^l(\cdot) | k\in {1, \cdots, K}
}$依据相邻FPN层的尺寸定义,$K$为候选门路数。每个门路都有一个空间管制门(spatial gate),空间管制门的输入为门控因子(gating factor):

  $\theta_k^l$为帮助网络的参数,对应第$k$个管制门,参数是地位共享的。而$m_i^{k,l}\in [0, 1]$是间断的,容许单个像素的多个后续门路被激活。在实现时,只取激活门控因子为负数的门路,所以单节点的多路径路由输入为:

Gate Activation Function

  门控激活函数的输入范畴为$[0,1]$,当输入为0时禁止该门路。另外,门控激活函数必须是可微的,不便反向流传的学习。在思考了其它钻研的实现计划之后,论文提出了restricted tanh函数的变种:

  $\tau$为超参数,用于管制$0^+$的梯度值。公式3不仅可导,还解决了restricted tanh在零处梯度不间断的问题。

Routing Path

  路由器在每个地位均有3个可选的后续门路,高低采样门路采纳图b的构造进行实现,蕴含线性采样操作,而非采样门路则应用图a的构造进行实现。对于空间管制门$g_k^l(\cdot)$则应用了图c的轻量级构造进行实现,先通过$3\times 3$卷积将输出转换为维度为1的特色,而后通过论文提出的门控激活函数$\delta(\cdot)$将输入束缚到$[0,1]$,将$m^{k,j}$进行最大池化后进行量化,非零的均量化为一,输入掩膜$\mathcal{M}^{k,j}$,最初基于掩膜进行空间稠密卷积($3\times 3$)。
  因为激活的门路数会被束缚,池化和量化能够过滤掉大量未被激活的门路,缩小很多计算量。其实这里最省的是只计算$m^{k,j}$非零的地位,但思考非采样门路a须要进行两次稠密卷积,还是池化一下靠谱点。另外,高低采样门路b里的卷积都采样深度卷积,进一步缩小计算量。

Resource Budget

  过多的路由门路会造成过大的计算量,所以须要减少一个惩办项来疏导路由器禁用尽可能多的门路。定义$\mathcal{C}^{k,l}$为门路相干的计算复杂度,则单节点的计算耗费为:

  $\Omega_i^{k,l}$为地位$i$的感触域,这里采纳最大池化来间接获取须要进行计算的地位,跟下面的图c相似。公式4可能很好的疏导缩小门控特色图$m^{k,l}$的值,将细粒度动静路由增加到网络时,需减少资源耗费的损失项:

  最终残缺的网络损失函数为:

Experiment


  在FCOS上的比照试验。

  不同网络上的适配。

Conclusion


  论文提出了细粒度动静detection head,可能基于路由机制动静地交融不同FPN层的像素级部分特色进行更好的特色表白。从设计的路由空间来看是一个非常耗时的操作,然而作者设计的高效路由器理论计算非常高效。试验后果来看,细粒度动静detection head能够即插即提点。



如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】