论文框架:
作者提出一种基于多任务的网络串联方法(Multi-task Network Cascade),解决问题实例分割(Instance-aware Semantic Segmentation)。该模型分成三个子网络,differentiate instance,estimate mask,category object。分别针对三个问题,获取region-level的检测框,得到pixel-level的mask,对每个mask获得category-level的label。
流程图如下:
其中conv feature map使用VGG-16获得。
并且,该模型不同于一般的多任务网络,他的后一任务的loss依赖于前一任务的输出,所以他的三个loss都是不独立的。
I. Regressing Box-level Instance
第一个子网络获得每个目标的bounding box,和objectness score(class-agnostic,即不知道该目标属于哪一类)。
这个子网络使用Region-Proposal-Networks(RPN)的网络框架,输入是shared feature map(即特征图),连接一个3X3的卷积层用来降维,再接一个1X1的卷积层来回归box location和classifying object/non-object。
作者采用RPN的loss function :
其中
II. Regressing Mask-level Instance
在stage-2,输入:shared features 和 stage-1 box,输出:基于每个box的pixel-level segmentation mask。在这部分,mask-level instance 依旧是class-agnostic。
对于输入的stage-1 box,使用Region-of-interest(RoI) pooling 提取box特征(目的是从feature map上获取对应的任意尺寸的box的特征)。再接两个全连接层(fc layer),前一个负责降维至256,后一个fc layer负责回归pixel-level mask。
其中
可以看出,
III. Category Instance
stage-3,输入:shared features,stage-1 box和stage-2 mask。输出:每个Instance的category score。
在stage-2中,我们提取了每个box的feature,现在我们继续提取每个mask的feature:
其中
然后作者考虑同时使用masked feature 和 box-based feature。通过连接softmax classifier 预测N+1种类。
Loss函数如下:
技术挑战:
End-to-end Training
本文定义了一个整体的Loss function:
但不同于普通的多任务学习,该论文的后一级任务都是基于前一级的输出。
在end-to-end训练任务中,最主要的技术挑战就是在使用RoI pooling的过程中,预测框
Differentiable RoI Warping Layers
原始的RoI pooling layer 是在一个box内的离散网格执行max pooling。所以本文要在RoI pooling layer中,增加
大体的计算公式如下:
具体实现略(之后补充)。
Masking layers
在
剩余略(之后补充)。