关于算法:DynamicHead基于像素级路由机制的动态FPN-NIPS-2020

21次阅读

共计 2528 个字符,预计需要花费 7 分钟才能阅读完成。

论文提出了细粒度动静 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 能够即插即提点。



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

正文完
 0