论文阅读笔记二十二:End-to-End Instance Segmentation with Recurrent Attention(CVPR2017)
论文源址:https://arxiv.org/abs/1605.09410
tensorflow 代码:https://github.com/renmengye/rec-attend-public
摘要
卷积网络在像语义分割等结构预测任务中效果较好,但对于场景中不同实例个体分割仍存在一定的挑战性。实例分割有很多应用场景,比如,自动驾驶,图像捕捉,智能视频问答系统等。将大量的图形模型与低层次的可视化信息相结合用于实例分割。该文提出了一个端到端的带有注意力机制的RNN结构,来进行精细的实例分割。该网络顺序生成每个区域中的分割对象。
介绍
传统的语义分割无法指明图像中每个类别物体的个数。实例分割与之相比难度要大一些,因为实例分割需要区分相邻的,忽略的实例。在面向基于图像的机器理解的过程中进行实例分割也是十分重要的。实例分割的数据集有CityScapes。
对于实例分割,一种可行的方法是将其当作为一个结构输出问题。一个至关重要的问题是结构输出的维度。这个维度可以是目标物的个数乘以该物体的像素。标准的FCN网络很难将图像中的所有实例标记进行输出。进来有结合图形结构进行实例分割,但造成的结构过于复杂,同时需要消耗大量的时间,另外,这种方式无法进行端到端的训练。
像目标检测相似,重合也是实例分割中的一个主要挑战,为了自底向上的解决此问题,需要将两个互不相关的区域进行融合,对于小规模来说,这十分具有挑战性。使用NMS可以处理重合问题,但由于检测时会有大量的前景重叠,因此使用NMS可能会降低检测的效果。受此启发,本文使用一种递归方式来进行活动的NMS,对重合问题进行自上而下的分析。
一个相关问题是对一个图像中每个目标类别的实例个数进行统计。计数问题已经形成了一个特殊的任务设置,检测通过后接的回归进行实现,或者对一个计数误差标准进行区分度的学习。
为解决上述挑战,该文提出了一种基于RNN同时,利用注意力机制的新模型用于实例分割。该网络进行实例分割的同时,进行了计数操作。通过使用一个时间链,使一次只输出一个实例。执行动态的NMS,利用一个已经分割好的目标,用于辅助后续重合的目标物中。受人反复和专注的思想启发,使用基于RNN对一个实例进行分割。分割与计数进行联合训练可以使定义的循环网络的方程自动的进行停止操作。
循环注意力机制
本文主要包含四个部分:(1)external memory:捕捉分割物体的状态(2)box proposal network:负责对感兴趣的目标物体进行定位。(3)segmentation network:对box中的物体进行像素级的分类(分割)。(4)scoring network :决定一个实例是否被找到,同时决定何时进行停止操作。网络结构如下
符号:
输入的预处理:
预训练一个FCN网络,包含两部分,(1)由一系列带跳跃结构的翻卷积网络生成的1通道的像素级前景分割结果。(2)对每个目标物体生成一个角度的map。对于每一个前景像素,计算其相对于物体中心的相关角度,同时,将角度量化为8个不同的类别,生成8个通道,如下图。对角度的预测可以增强模型对目标物边界细节信息的编码。预训练模型的输入为三通道的彩色图像,输出为9通道(1通道的前景+8通道的角度)
(1)External memory
为了在已分割的目标物决定下一个寻找的方向。该文结合external memory用于提供以前所有步骤得到的边界细节信息。该文假设完整的分割信息有助于网络分析目标物体重合的原因,同时,决定下一个感兴趣区域。feature map共计有10个通道,第一个通道用于添加基于先前操作产生的新的像素。其他通道用于保存输入图片。
(2)Box network
该模块用于定位下一个感兴趣物体的位置。卷积网络输出一个大小为H'xW‘xL的feature map u_t,使用CNN对整副图像进行激活操作过于复杂,而且处理过程较为低效。简单的池化操作无法保存位置,该文选择动态池化操作来提取空间维度上的有用信息。通过增加一个权重,由于一次单向过程无法为上层网络提供足够的信息进而可以准确的将框画出,该文采用LSTM,每次输入一个维度为L的向量来观察不同位置的信息。所有位置的初始化为均匀分布。
将LSTM的隐层状态送入一个线性网络层中用于预测框的坐标。将框参数化为:
同时,尺度因子也会被线性层进行预测,用于将patch恢复至原图大小。
子区域的提取
该文参考DRAW采用高斯插值核从输入x中提取一个HxW的patch。同时,用d_t与原图进行拼接。该模型输出一个矩形框定位不同形状的目标物体。索引i,j代表HxW维度的patch。a,b代表原始图像的位置。Fx,Fy为维度的矩阵,代表原图 (a,b)位置对提取的patch中(i,j)的作用大小。
,为由box network预测得到的高斯插值核的均值与方差。
(3)Segmentation network
分割网络首先利用卷积网络生成一个feature map v_t,然后应用一个基于跳跃结构的翻卷积网络来进行上采样将低分辨率恢复至全部尺寸的分割结果。经过一个全卷积层,得到一个patch-level的分割预测热图接着,利用计算得到的高斯核将预测的patch重新映射为原图,学习好的放大预测的框,常量抑制框外的像素,用sigmoid函数产生0至1的分割值。
(4)Scoring network
为了得到图像中目标物体的个数,同时为了完成序列化处理过程,该文增加了一个scoring network。该文中的score 模型提取box network 和segmentation network中隐层状态的信息,来产生一个0至1的分数。
终止条件:该文整个模型的训练的序列长度为目标物体最大数量加1。进行inference时,当输出的score 降到0.5时就结束迭代过程。同时,损失函数有利于scores的降低。
损失函数
总的损失为三个损失分支的和:(1)分割IoU loss Ly(2)box IoU loss Lb(3)分数交叉熵损失Ls 在实验中将损失相关系数固定为1。
(a)匹配IoU损失(mIoU)实例分割的一个主要挑战,是模型的预测输出与实例ground truth的匹配。该文通过最大化权重进行预测与ground truth的二分图匹配。通过匹配方法,可以使损失函数对ground-truth的实例不敏感。不同于直接惩罚假正与假反的分割方法,本文的匹配权重为一对分割结果IoU的分数。通过Hungarian算法进行计算得到matching。通过此算法并不需要反向传播来优化此网络。
(b)Soft box IoU loss:虽然可以根据生成的框的四个坐标中推出准确的IoU的值。但若两个框不重复,则其梯度就会消失。不利于基于梯度下降法的学习。该文提出了一个较宽松的box IoU。同样利用高斯核将一个patch重新映射原始的大小。对框的ground truth 进行padding,通过匹配预测得到的框与padding 后的ground truth进行匹配得到mIoU。匹配到的ground truth 在宽和高上进行缩放操作。
(c)monotonic score loss:为了满足可以自行停止迭代操作。网络首先应该输出更多确信的目标物。该文设计一个损失函数促进score的降低。score为1的迭代与先前的下界进行比较,而0的会与接下来score的上界进行比较。
训练过程
Booststrap training:box与segmentation网络以来彼此的输出来决定下一时间段的动作。针对这两个网络的本质的特点:该文提出了一个bootstrap 训练方法:先使用分割与box的ground truth对网络分开进行预训练。后期,将ground truth替换为模型预测的数值。
Scheduled sampling:为了平滑各个阶段之间输出的变化,提出了scheduled sampling。在网络的输入阶段,渐渐的将ground truth移除。在训练时,外部存储结构中的输入有一个随即开关,利用与ground truth 或者前阶段网络的输出中匹配最大的部分进行实例分割。在训练的结束阶段,整个模型完全依赖于来自前几步的输出。与预测过程相同。
实验
Reference
[1] S. Antol, A. Agrawal, J. Lu, M. Mitchell, D. Batra, C. L.Zitnick, and D. Parikh. VQA: Visual question answering. In ICCV, 2015. 1
[2] M. Bai and R. Urtasun. Deep watershed transform for instance segmentation. CoRR, abs/1611.08303, 2016. 5
[3] D. Banica and C. Sminchisescu. Second-order constrained parametric proposals and sequential search-based structured prediction for semantic segmentation in RGB-D images. In
CVPR, 2015. 5