这是一个临时材料,整理后的内容在这里。
这篇文章把深度估计和语义分割联系起来。之前有些工作把深度用于语义分割,大都使用RGBD数据集,本文则使用单张静态图像。
长尾分布:
作者发现像素个数在像素深度和语义标签上呈现长尾分布,如下图1。深度值呈现长尾分布主要由获取深度时的透视效应(the perspective-effect during the depth acquisition process)造成。把所有区域等同看待的损失函数更多地受深度值较小的区域影响,而对深度值较大的区域(长长的尾部)不敏感。忽略这个分布会影响模型精确度,尤其在深度值较大的区域(长长的尾部)。
图1
为了应对以上两个挑战(长尾分布、深度估计和语义标注共享信息),作者设计的网络同时估计一个静态图像的深度和语义标签。
创新工作:
- 深入研究深度值较大的区域,提出关注驱动(attention-driven)的损失作为监督:这样的损失缓解数据偏差问题(大部分像素深度值较小)使模型"看"得更深。
- 为了更好地利用语义信息,提出一个协同网络自动学习两个任务(深度估计和语义标注)之间的信息共享策略,信息在网络内和网络间传递:语义标签有助于深度估计(如果天空是远的,墙是竖直的),深度估计也有助于语义标注(尤其是外观相似的不同物体)。在协同网络架构中提出一个信息传播策略,用一个动态路由方法把语义整合到深度估计中,该策略由一个横向共享单元和一个半稠密上跳跃(skip-up)连接实现。
深度感知目标函数:
- 关注驱动损失:。其中是像素索引,是深度图像素数量,和分别是预测的深度值和实际的深度值,是距离度量如或范式等,是一个深度感知关注项(depth-aware attention term)使网络更关注深度值较大的区域。这样,反向传播时梯度更偏重少数远距离区域。因此和深度相关,可以定义为真实深度值的一个线性函数。
- 为了避免训练刚开始时出现梯度消失,学习近距离区域时出现中断,引入正则化项描述训练过程中的学习状态。如果网络预测的深度值接近实际值,接近0,否则接近1。这样,即使对近距离区域(接近0),梯度仍然能通过原始损失函数反向传播。增加了训练稳定性。总之,使网络关注近距离区域的同时,还使网络更关注远距离区域。
网络架构:
协同网络是一个多任务DCNN,主要包含4部分:深度预测子网络、语义标注子网络、知识共享单元/连接、关注驱动损失,如下图2。一个主干(backbone)编码器(如VGG、ResNet)把输入的RGB图像从颜色空间转换到高维特征空间,得到的高维特征空间分别被两个子网络用于重建深度和语义标签。两个任务间的知识共享通过横向共享单元(LSU)实现,LSU在训练阶段自动学习传播流,在测试时形成一个最佳结构。此外,知识共享还以半稠密向上跳跃连接(SUC)的形式存在于每个子网络内部。最终整个网络被基于深度和关注的损失监督。
图2
横向共享单元LSU:
在协同网络中,提出一个双向横向共享单元(LSU)以一个动态路由的方式学习共享策略。信息传递通过正向传递和反向传播实现。每隔两个反卷积层,添加LSU共享另一个任务的残差知识/表示。不同于手工调优的结构,LSU能够从任务间层和任务内层获得额外细微的共享信息。LSU的结构如图3左部,它在两个任务中提供全分享(fully-sharing)路由。假设当前的反卷积层产生的特征图是和,分享的特征表示可以表示为:,其中和是特征图的权重参数,和是特征图的权重参数。共享表示和传播到下层反卷积层。所有的参数都是学习来的。虽然所有LSU有相同的内部结构,但它们有各自的参数,这样可以更灵活地共享。
图3
还加入了恒等映射保证任务内的信息传播,避免传播中断或特征污染。这种类残差结构(恒等连接+残差共享)有利于梯度反向传播。图4说明了LSU的效果。
半稠密向上跳跃连接SUC:
SUC在解码器中进行上采样和跳跃连接。过程中的我们用代替作者的那个上部带'/'的符号。
作者提出的网络框架在编码器后分为深度估计、语义标注两路,称为两个任务。在任务内添加SUC是为了任务内(相对于任务间)的知识共享和保存长期记忆(前一层反卷积层传过来的反卷积结果称为短期记忆)。这其实就是跳跃连接。SUC可以表示为:,其中和分别是解码器的输入输出,是第层反卷积的输出,如图3,作者的实验中。是一个上采样操作,和其他跳跃连接一样,如果不用上采样,特征图尺寸不同,不能合并(如tf.concat)。
其它损失项:
- 梯度损失:,核(两个带绝对值符号的项)来自Sobel特征检测器,和分别代表水平方向和竖直方向。语义信息也考虑进来。所以总的梯度损失是:。
- 语义焦点损失:焦点损失起源于目标检测。为了让网络更关注长尾,使用损失项,其中是像素的预测标签,是类别索引。和是调节关注的平衡权重和焦点参数。
总的关注损失:。
关注可视化:
使用空间关注图表示网络的关注部分。如图5。
图5