代码地址:CenterMask
1. 概述
导读:在这篇文章提出的新instance分割方法是基于FCOS 的,首先,文章在FOCS的box检测的基础上通过添加一个SAG-Mask(spatial attention-guided mask)分支来实现像Mask RCNN中类似的分割效果。在FCOS检测的box结果基础上使用空间注意力特征(spatial attention map)帮助进行目标聚焦与抑制噪声。其次,在此基础上文章还对VoVNet进行了如下的有效改进:1)通过引入残差连接减轻更大VoVNet中的饱和问题;2)使用effective Squeeze-Excitation(eSE)解决原有SE中信息损失的问题;使用相同的ResNet101-FPN骨干网络情况下文章的方法性能达到了38.3% mask AP,超过了之前所有的网络,而且还快。与之对应的轻量级版本CenterMask-Lite也取得了33.4% mask AP与38% box AP,其速度在Titan Xp上能跑到35FPS。
在实例分割中比较出名是Mask RCNN与其基础上得到的改进算法,也有从速度上去考虑的算法YOLACT 但是它是采用RetinaNet一阶段检测器做box检测,虽然在速度上相比Mask RCNN快了不少,但是在网络的性能表现上其与Mask RCNN还是有较大的差距的。在下图中展示了上面提到的实例分割算法与本文的算法在速度与性能上的比较: 这篇文章的算法是在FCOS检测器的基础上改进得到的,FCOS是一个anchor free的检测器,因而就少了很多超参数调整的过程。作者在FCOS的基础上添加了SAG-Mask来实现了实例分割。
在RoI区域的在FPN不同层的分配上不同与Mask RCNN,Mask RCNN在进行RoI区域分配的时候并没有考虑输入尺度信息,而这片文章考虑了输入的尺度,采用了自适应尺度的RoI区域分配方式,使得文章算法更加稳定。
在检测网络得backbone方面这里在VoVNet的基础之上进行改进(更深的网络带来更好的结果),解决了在堆叠OSA模块带来的性能饱和问题(由于反传梯度受到干扰),这是通过在OSA模块之间使用残差相连处理的(借鉴ResNet的思想)。
在原有的Squeeze-Excitation(SE)模块(channel attention)中使用两个FC会使得通道信息丢失,因而文章重新设计了SE模块,将其中的2个FC替换为1个FC,得到了新的SE模块eSE。
2. 方法设计
文章的算法结构见下图所示,其主要由三个部分组成:backbone+FPN、FOCS检测头、SAG-Mask分割分支。前面两个是FCOS检测网络中就有的,文章就是再次基础上添加分割分支。
2.1 自适应的RoI分配机制
在Mask RCNN网络中根据检测出来RoI的大小将其分布到不同FPN层上,之后再使用RoI Align进行特征对齐。其实现过程可以描述为如下的映射关系: K = ⌊ k 0 + l o g 2 ( w ∗ h / 224 ) ⌋ K=\lfloor k_0+log_2(\sqrt{w*h}/224) \rfloor K = ⌊ k 0 + l o g 2 ( w ∗ h
/ 2 2 4 ) ⌋ 但是上面的公式并不是很适合本文的方法,其原因主要计入如下两点:
1)在原始的FPN网络中使用的特征是从 P 2 P_2 P 2 到 P 5 P_5 P 5 ,而在文章使用的一阶段网络中使用的是 P 3 P_3