HTC论文阅读_目标检测

题目: 混合任务级联

HTC论文阅读_目标检测_02

HTC论文阅读_级联_03

MNC:多任务网络级联,COCO2015分割比赛冠军

FCIS: 首个用于图像实例分割任务的全卷积、端到端的解决方案,该架构在 COCO 2016 图像分割竞赛中获得了第一名。

PANet: CVPR2018关于实例分割(instance segmentation)的文章,既是COCO2017实例分割比赛的冠军,也是目标检测比赛的第二名。

HTC论文阅读_目标检测_04

CC-Net:2019
Cascade R-CNN:CVPR2018
Deep Layer Cascade:2017 CVPR
TridentNet:ICCV2019,多尺度+空洞卷积

HTC论文阅读_深度学习_05

实例分割的进阶三级跳:从 Mask R-CNN  Hybrid Task Cascade

进阶准备Cascade Mask R-CNN
由于 Cascade R-CNN 在目标检测上的效果非常好,作者首先尝试将 Cascade R-CNN Mask R-CNN 直接进行杂交,得到子代 Cascade Mask R-CNN,如上图(a)所示。在这种实现里,每一个 stage Mask R-CNN 类似,都有一个 mask 分支和 bounding box 分支。当前 stage 会接受 RPN 或者上一个 stage 回归过的 bounding boxes 作为输入,然后预测新的 bounding boxes mask。这也是实验中作者所比较的 baseline 模型。(前面已经展示过实验效果了)从实验表格中(见P4图)可以看到其实这个 baseline 模型已经很强了, 这种框架已经达到了超越mask rcnn的效果,但是还存在一个比较明显的弊端,就是在box AP 上提高了 3.5 个点,但是在 mask AP 上只提高了 1.2 个点。这是为什么呢?我们发现直接参与级联的只有box的结果,而且在这个结果的过程中,box和mask的结果并没有信息交互这样的过程。
进阶第一步:Interleaved Execution(实验结果看P6上图)
Cascade R-CNN 虽然强行在每一个 stage 里面塞下了两个分支,但是这两个分支之间在训练过程中没有任何交互,它们是并行执行的。所以作者提出了 Interleaved Execution(交叉执行),也就是在每个 stage 里,先执行 bounding box 分支,将回归过后的 bounding box(经过一个pool) 再交由 mask 分支来预测 mask,如上图(b)所示。这样既增加了每个 stage 内不同分支之间的交互,也消除了训练和测试流程的 gap(差异)。作者发现这种设计对 Mask R-CNN Cascade Mask R-CNN mask 分支都有一定提升(但是由实验结果来看感觉提升不大)。
进阶第二步:Mask Information Flow
(我们回顾上面两种结构,我们发现不同stage之间的信息流主要只有一种,就是通过bbox这条支路传递的信息)

这一步起到了非常重要的作用,对一般 cascade(级联) 结构的设计和改进也具有借鉴意义。作者首先回顾了原始的 Cascade R-CNN 结构(见P6页左下图),每个 stage 都只有 bounding box分支。当前 stage 对下一个 stage 产生影响的途径有两条:
Bi+1的输入特征是Bi预测出回归后的 通过 RoI Align 获得的;
Bi+1的回归目标是依赖Bi的框预测的。
这就是bounding box 分支的信息流,让下一个 stage 的特征和学习目标和当前的 stage 有关。在 cascade 的结构中,这种信息流很重要,让不同 stage 之间在逐渐调整,而不是类似于一种 ensemble(全体)。
然而在 Cascade Mask R-CNN 中,不同 stage 之间的 mask 分支是没有任何直接的信息流的,Mi+1只和当前Bi通过 RoI Align有关联,而与Mi没有任何的联系。多个 stage mask 分支更像是用不同分布的数据进行训练,然后在测试的时候进行 ensemble,而没有起到 stage 之间逐渐调整和增强的作用。为了解决这一问题,我们在相邻的 stage mask 分支之间增加了一条连接,提供 mask 分支的信息流,让Mi+1能够知道Mi的特征。具体实现上如P6页右下图中红色部分所示,我们将Mi的特征经过一个1×1卷积做 feature embedding(特征嵌入),然后输入到Mi+1,这样Mi+1既能得到 backbone 的特征,也能得到上一个 stage 的特征。
进阶第三步:Semantic Feature Fusion(见P7)
这一步是我们尝试将语义分割引入到实例分割的框架中,以获得更好的 spatial context。因为语义分割需要对全图进行精细的像素级的分类,所以它的特征是具有很强的空间位置信息,同时对前景和背景有很强的辨别能力。通过将这个分支的语义信息再融合到 bounding box mask 分支中,这两个分支的性能可以得到较大的提升。
在具体设计上,为了最大限度地和实例分割模型复用 backbone,减少额外的参数,我们在原始的FPN的基础上增加了一个简单的全卷积网络用来做语义分割。首先将FPN的5个 levels 的特征图 resize 到相同大小并相加,然后经过一系列的卷积,再分别预测出语义分割结果和语义分割特征。这里作者使用了 COCO-Stuff 的标注来监督语义分割分支的训练。红色的特征将和原来的 bounding box mask 分支进行融合(在下图中没有画出来),融合的方法作者也是用的简单的相加。

HTC论文阅读_深度学习_06

HTC论文阅读_卷积_07

HTC论文阅读_卷积_08

HTC论文阅读_深度学习_09