从Cascade R-CNN到Hybrid Task Cascade

原文 | https://arxiv.org/abs/1901.07518

Faster R-CNN算法及其实现详解:https://zhuanlan.zhihu.com/p/31426458

Mask-RCNN 算法及其实现详解:https://blog.csdn.net/remanented/article/details/79564045

传统的Faster R-CNN结构如下:

è¿éåå¾çæè¿°

在train阶段,其最终的输出结果是通过如下一个简单的IoU阈值判断来决定哪些proposal作为output

Cascade R-CNN Innovation
作者的Idea,是设计cascade的bbox cls/reg机制: 
总共有三个roi-wise subnet相cascade (级联) ,每个roi-wise subnet采用不同的IoU阈值。依次为0.5、0.6、0.7。 
对应的网络结构如下: 

è¿éåå¾çæè¿°

具体可参考:https://blog.csdn.net/jningwei/article/details/80622837 

 

Hybrid Task Cascade结构图如下

基本来自原作者的知乎:https://zhuanlan.zhihu.com/p/57629509

 第一步:Cascade Mask R-CNN

由于 Cascade R-CNN 在物体检测上的结果非常好,我们首先尝试将 Cascade R-CNN 和 Mask R-CNN 直接进行杂交,得到子代 Cascade Mask R-CNN,如上图(a)所示。在这种实现里,每一个 stage 和 Mask R-CNN 相似,都有一个 mask 分支 和 box 分支。当前 stage 会接受 RPN 或者 上一个 stage 回归过的框作为输入,然后预测新的框和 mask。这也是实验中我们所比较的 baseline,从实验表格可以看到其实这个 baseline 已经很强了,但是仍然存在明显的问题,主要在于 Cascade Mask R-CNN 相比 Mask R-CNN 在 box AP 上提高了 3.5 个点,但是在 mask AP 上只提高了 1.2 个点。

第二步:Interleaved Execution

Cascade R-CNN 虽然强行在每一个 stage 里面塞下了两个分支,但是这两个分支之间在训练过程中没有任何交互,它们是并行执行的。所以我们提出 Interleaved Execution,也即在每个 stage 里,先执行 box 分支,将回归过的框再交由 mask 分支来预测 mask,如上图(b)所示。这样既增加了每个 stage 内不同分支之间的交互,也消除了训练和测试流程的 gap。我们发现这种设计对 Mask R-CNN 和 Cascade Mask R-CNN 的 mask 分支都有一定提升。

第三步:Mask Information Flow

 在相邻的stage的mask分支间增加一条新的连接,提供mask分支的信息流,让 不同stage之间相互调整

第四步:Semantic Feature Fusion

这一步是我们尝试将语义分割引入到实例分割框架中,以获得更好的 spatial context。因为语义分割需要对全图进行精细的像素级的分类,所以它的特征是具有很强的空间位置信息,同时对前景和背景有很强的辨别能力。通过将这个分支的语义信息再融合到 box 和 mask 分支中,这两个分支的性能可以得到较大提升。

在具体设计上,为了最大限度和实例分割模型复用 backbone,减少额外参数,我们在原始的 FPN 的基础上增加了一个简单的全卷积网络用来做语义分割。首先将 FPN 的 5 个 level 的特征图 resize 到相同大小并相加,然后经过一系列卷积,再分别预测出语义分割结果和语义分割特征。这里我们使用 COCO-Stuff 的标注来监督语义分割分支的训练。红色的特征将和原来的 box 和 mask 分支进行融合(在下图中没有画出),融合的方法我们也是采用简单的相加。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章