基于自适应像素级注意力模型的场景深度估计
2020-06-16陈裕如赵海涛
陈裕如,赵海涛
(华东理工大学 信息科学与工程学院,上海 200237)
引言
深度信息对理解三维场景有着重要的影响,并有助于完成诸如三维重建[1-2]、三维目标检测[3]、即时定位与地图构建(SLAM)[4]等任务,也是无人驾驶技术环境感知中的重要一环[5]。深度估计的目标是为场景中的每个像素指定观察者与由该像素表示的场景点之间的距离。从单视角图像中估计场景的像素深度已经引起了广泛的研究[1,4,6-8]。依赖于Kinect 深度相机(室内)和雷达传感器(室外)的发展,场景深度数据的大量获得成为可能。近年来,基于深度学习的单目深度估计得到了巨大发展,其中卷积神经网络(convolutional neural network,CNN)被大量应用于该领域[6,8-10]。
作为开创性的工作,Eigen[6]等人首先提出了一个多尺度的粗糙-精细模型,其中精细网络对粗糙网络的全局预测进行改进,得到了更准确的结果。为了解决深度数据分布中由重尾效应导致的样本不平衡,Laina[4]等人提出了比L2 回归损失更适合深度估计的反向Huber 损失,因为其对小误差更敏感。Garg[9]等人提出了一种基于图像重建的无监督的单目深度估计框架,在该设定下,Godard[10]等人进一步提出将L1 损失和结构相似性指数的组合作为重建损失进一步提高了成像效果。Wu[8]等人提出一种双向递归神经网络来提取视频序列信息以提高深度估计的稳定性与准确性。此外,基于红外图像的深度估计也受到了广泛的关注[8,11-12],因为红外热成像的特性使其在夜间场景下更具有优势,但由于其缺乏纹理、梯度等细节特征使得预测精度与成像质量不如可见光。
虽然基于CNN 的深度估计模型已经取得了巨大的成功,但仍然存在一些难以解决的问题。从CNN 的结构角度来看,为了学习抽象表示和融合全局特征,基于CNN 的模型通常会随着网络中连续的池化或带步长的卷积操作而不断缩小特征图的空间尺度,这些操作可能会破坏图像的空间信息。深度估计的另一个挑战来自场景中对象的深度分布,Huang[13]等人研究了自然场景的距离图像(range image)的统计特性(距离图像在深度估计领域称为深度图),表明距离图像可以分解成分段平滑的区域,彼此之间几乎没有依赖性,对象边界中通常存在尖锐的不连续性。因此,在场景中“对象”的概念应该更准确地从深度值的变化来定义,而不是从颜色、强度或纹理等低层次特征来定义,所以深度估计的关键在于捕捉对象内和对象间的长距离上下文信息[14]。针对该问题,Yu[15]等人使用扩张卷积(dilated convolution)来扩展卷积核的感受野,文献[14]实现了一个“扩张空间金字塔池化(astrous spatial pyramid pooling,ASPP)”框架,其通过并联放置多个不同扩张率的扩张卷积来捕获多尺度对象和上下文信息。然而,离散化的扩张率不能覆盖复杂和连续的场景深度,很容易引入网格伪影[16],其原因在于当扩张率增加,采样点之间相隔较远,局部信息丢失,而长距离上的一些信息并不相关,因此可能会破坏局部信息之间的连续性。
针对这些挑战,本文提出了一种新的单目深度估计算法,即基于注意力的自适应上下文聚合网络(adaptive context aggregation network, ACANet)用于生成高质量的深度图。本文设计的监督自注意力模型(supervised self-attention, SSA)可以自适应地获得像素级的相似性,其反映了整个特征图中每个像素与任何其他像素之间的关系,从而捕捉了图像特征空间中连续的上下文信息,提高了深度估计的细粒度的同时也抑制了生成图像中的噪点。本文方法的优点如下:
1) 提出的基于注意力机制的卷积神经网络,可以捕捉特征图空间中与每个像素相关联的有意义的上下文信息,显著提高了单目深度估计的成像效果与准确率。
2) 为了消除二维图像和深度图的语义差异,本文引入KL 散度作为注意力损失函数。对注意力损失函数的优化可以最小化注意力分布与通过真实深度值获取的相似性分布之间的散度。分解实验验证了注意力损失函数的有效性。
3) 提出的易于实现的软推理策略与传统的硬推理相比,可以减少离散化误差,生成更加真实的深度图,提高成像质量。
4) 在深度估计数据集(NYU Depth v2)上的实验结果表明了本文提出的算法的优越性。
1 算法框架
1.1 ACANet 网络结构
ACANet 网络架构如图1 所示。本文使用残差神经网络(residual network,ResNet)[17]作为骨架网络来提取RGB 图像的密集特征,其在深层网络中显示出很好的梯度传播能力。但原始ResNet 的过度下采样会阻碍细粒度深度图的重建。因此本文将ResNet 中的block3 和block4 替换为扩张率分别为2 和4 的残差块,这使得后续特征图的尺度保持不变。在场景解析模块中,SSA 能够捕获有辨别力的像素级上下文信息,提取特征图中每个像素的全局空间依赖性,下方的恒等映射(identity)作为捷径连接减轻网络优化的难度,上方的1×1 卷积进行通道间的特征融合,最后通过有序回归[18-19]对网络输出进行分类。
图 1 网络结构图Fig. 1 Structure diagram of network
1.2 有监督的自注意力模型
自注意力模型最早被应用于机器翻译[20]中,之后扩展到计算机视觉任务中,如视频分类[21]等。本文将改进的有监督自注意力模型引入深度估计中。SSA 的细节如图2 所示。
图 2 SSA 结构Fig. 2 Structure diagram of SSA
式中:wi,j表示了第j 个像素与第i 个像素具有语义特性的上下文信息的相关程度。借助于学习到的注意力权重,上下文信息的聚合可以被定义为
由于注意力权重wi,j经过softmax 归一化,因此上式相当于全局的加权池化。通过这种方式,特征提取过程可以通过显示的融合上下文的全局特征表示并被强化。
1.3 损失函数
损失函数 L 包括注意力损失 Latt和有序回归损失 Lord,如下式:
如图2 所示,为了弥补RGB 图像和深度图之间的语义鸿沟,本文设计将KL 散度作为训练自注意力模型的损失函数,用来度量自注意力模型产生的注意力分布与由真实深度生成的相似性分布之间的差异,定义为
式中:wi,j是由式(1)产生的注意力权重;wi,j*由下式计算得到:
本文将深度值在对数空间平均离散化为K 个子间隔,即:
本文采用有序回归作为分类损失函数。有序回归旨在学习附加序数先验知识来预测标签的规则,以解决顺序回归算法。有序回归将一个多分类的问题转化为一系列更简单的二分类问题,其中每一个分类器只决定该样本是否大于类别标签。设 Y ∈RN×2K表示网络的输出概率图,在第i 个位置的损失为
式中:∂i表示预测的深度标签;ρik表示∂i大于k 的概率。整体的有序回归损失为
1.4 有序推理策略
基于分类的深度估计在先前的文献已经被广泛研究,其可以获得深度分布的置信度[19,22-23]。输出置信度图中的每一个元素仅关注特定的深度间隔,这简化了网络的学习,提高了模型的阈值准确率。然而,分类模型的离散化会引入误差。此外,基于硬阈值的推理策略[19,23]只从网络输出中得到了类别信息,忽略了获得的置信度分布,因此在反离散化的计算中可能引入阶梯伪影,这可以在本文的后续实验图中观测到。本文将直接的硬推理推广到软推理版本,称为软性有序推理(soft ordinal inference,SOI)来解决上述问题。SOI 充分利用预测的置信度得到了更加真实的预测。
在获得每个像素的K 个二分类概率后,深度值的硬阈值推理[19]计算式为
式中:η(·)为指示函数。硬阈值推理的取整运算丢弃了网络预测的置信度,这会破坏在一些难分区域的预测结果,降低模型效果。
相反,本文提出的SOI 能够将预测概率转化为连续平滑的深度图,公式如下:
式中:γi∈[0,1) 为预测类别接近∂i+1的程度。当γi=0 时,(13)式与(11)式等效,因此SOI 能够充分利用网络的更多输出信息,即预测置信度来推断像素的深度值。
2 实验与结果
2.1 评价指标
本文遵循当前研究中常用的评价方式[4,6-7],引入深度估计领域的通用评价指标,公式为
式中:di*表示真实深度;di表示预测深度;N 表示有效像素总数。rmse、rel 和rmselog误差用来度量预测深度和真实深度之间的差异,值越小越好。阈值准确度用来度量预测深度,由thr 阈值界定范围内的像素百分比,值越大越好。
2.2 NYU Depth v2 数据集
本文实验使用了室内深度数据集NYU Depth v2[1],由464 个室内场景大约240 k 张RGB-D 图像组成,由Microsoft Kinect 摄像机拍摄的视频序列处理得到,深度范围为0.6 m~10 m。在官方的训练测试集划分中,249 个场景用于训练,其余215个场景用于测试。对于训练集,本文从每个训练场景的视频序列中以固定采样频率采样了大约12 k张图像。原始图像分辨率为480×640 pixel,为减小内存消耗,首先使用双线性插值将其下采样到240×320 pixel,然后再随机裁剪到224×304 pixel,作为网络的输入。在官方给出的654 张测试图像上计算评价指标。
2.3 实验细节
本文使用深度学习框架Pytorch 在单个Nvidia GTX1080Ti GPU 上 实 现 提 出 的 模 型。ACANet 使用ResNet-50 和ResNet-101 作为骨架网络,其参数在ImageNet 分类任务[24]上预训练得到。在所有实验中,深度间隔设置为K=80。学习速率策略应用多项式衰减,衰减公式为 lr×(1−iter/max_iter)power,初始学习率lr 设为2e-4,衰减率power=0.9。优化算法采用随机梯度下降,其中动量和权重衰减分别设置为0.9 和5e-4。
2.4 注意力模型与注意力损失的有效性
为了进行定性分析,本文分别训练有注意力损失和无注意力损失的模型,并将注意力模型所产生的注意力图可视化,如图3 所示。图3 中第1 行和第2 行分别给出了在使用 Latt训练和没有使用 Latt训练的SSA 生成的注意力图,同一列表示相同绿色“+”位置处的注意力图。图3 表明:1) 本文提出的SSA 能够预测有意义的上下文区域,捕获了大范围的依赖关系;2) 通过视觉对比发现,有 Latt约束的模型可以自适应地给出更丰富和全局的上下文区域。如图3 中无 Latt约束的注意力图只能点亮纹理上相似的局部区域,而有 Latt约束的注意力图能够充分捕捉在深度上相似的大范围区域,这说明模型学习到了图像整体的远近布局。因此SSA 可以根据语义相关性,而不是局部或低级图像特征(如亮度或纹理)的相似性来提取上下文信息。
图 3 注意力图可视化Fig. 3 Visualization of attention map
定量结果见表1 所示。其中“w/o”表示没有注意力损失约束的模型,“w”表示有注意力损失约束的模型。数据表明带注意力损失的ACANet 在所有评价指标中获得了更好的结果。因为在上下文信息聚合的过程中,当前像素位置(绿色“+”处)的特征由上下文区域的特征进行线性组合,线性权重wi,j由注意力模型给出(见(1)式和(2)式)。由图3 可见,在有注意力约束的模型中,获得的注意
力权重wi,j分布可以更加广泛而有效地覆盖有意义的上下文区域(注意力图亮度越高,即wi,j越大的物理意义为其深度与像素“+”位置的深度越接近)。因此特征图中任意像素位置的特征值经过上下文聚合能够更加稳定,有效地提高最终的预测结果。
表 1 注意力损失函数的比较Table 1 Comparison of attention loss function
2.5 有序回归分类与软性有序推理的有效性
为了验证有序损失的有效性,本文比较了通过有序损失和常用的交叉熵损失训练得到的深度估计结果。图4 为归一化的混淆矩阵,对角线元素显示了训练网络正确估计其真实类别的像素百分比,非对角线元素显示深度估计出错的位置。从图4 中可以看出,有序损失的混淆矩阵比交叉熵损失的混淆矩阵更具有簇状结构。
图 4 归一化混淆矩阵Fig. 4 Normalized confusion matrix
为了说明软性有序推理的有效性,本文进行了定性和定量实验,所有实验都采用ResNet-50 为骨架网络。实验结果如表2 所示。表2 中“HCE(hard-max cross entropy)”表示采用基于交叉熵分类 的 硬 阈 值 推 理,“SCE(soft-weighted-sum cross entropy)”表示采用基于交叉熵分类的软加权推理[22],“HOI”表示由公式(11)和(12)中定义的基于有序分类的硬阈值推理[19],“SOI”是采用公式(13)~(15)中定义的软性有序推理。同时也给出了现有方法中基于ResNet-50 的模型效果。比较结果表明:1) 软推理的方法优于硬阈值推理(SCE 好于HCE,SOI 好于HOI);2) SOI 相比HOI 的提升幅度比SCE 相比HCE 提升幅度大(例如rmse:0.524 到0.508 下降3%,0.536 到0.532 只下降了0.7%);3) 软性有序推理得到了最佳的结果。从以上分析中可以看出SOI 能够有效提高预测结果,因为其充分利用了模型的预测置信度,弥补了由于离散化带来的误差。直得一提的是,在同样使用SCE 的Li[22]与ACANet 的对比中可以看出,ACANet 的网络模型更优。
表 2 推理策略的比较Table 2 Comparison of inference strategies
硬阈值推理和软性有序推理的定性比较如图5所示。由图5 可以看出,HOI 产生了失真的预测结果,而SOI 的结果平滑且连续,与真实深度图更为相似。这很好地表明了本文提出的软性有序推理可以在不引入阶梯状伪影的情况下给出更加真实的深度图。
图 5 硬阈值推理和软性有序推理的定性比较Fig. 5 Qualitative comparison of hard threshold inference and soft ordered inference
2.6 与现有方法的对比
本文对ACANet 与现有方法进行了比较,对比结果如表3 所示。括号中的“Rx”表示以ResNetx 为骨架网络。从表3 中可以看出,在分别基于ResNet-50 和ResNet-101 的 方 法 中,ACANet 都 取得了较好的效果,特别是在rmse 和rmselog指标上。在同样是基于分类的深度估计的方法中Fu[19],Li[22]和Cao[23]与ACANet 的阈值准确率较为接近。一方面,可能是由于其使用了更强大的骨架网络或模型参数量更大(如Cao[23]使用了ResNet-152);另一方面,由于其使用了更大的训练集(见2.7 节分析),但在rmse 和rmselog指标上ACANet 取得了最好的结果,这是由于本文提出的SOI 能够减小预测深度图的离散化误差。因此综合以上分析,本文的方法取得了有竞争力的实验结果,并在一些评价指标,如阈值准确率,rmse 和rmselog上取得了最优,体现了本文方法的优越性。
定性比较结果如图6 所示。图6 中文献[4]的结果也给出了语义化的预测,但是由于文献[4]的方法对特征图施加了过度的下采样,从而缺少局部的细节重建机制,导致预测结果退化为简单几何体的组合。文献[6]的结果虽然包含大量细节,但深度估计失真较为明显。例如,在图6 的第3 行中,从文献[6]的深度估计结果中不难发现,人的深度信息估计的不够准确。文献[25]的结果较为模糊。与已有方法的定性分析可以发现,本文的深度估计结果更富细节,并且与整体的真实情况更匹配,其原因在于本文的有监督注意力模型能够自适应地提取长距离的上下文特征,对于复杂多变的场景更具有鲁棒性。
表 3 与现有方法的比较Table 3 Comparison with existing methods
另外,基于扩张卷积的方法[15,19]同样聚焦于提取像素的上下文信息,如图7 所示。从图7 的对比结果中可以看出,其产生的深度图容易产生网格状的伪影。原因在于扩张卷积在2 个采样像素之间插入0 值,如果扩张率过大,卷积会过于稀疏,容易导致局部信息的丢失,使得信息之间的连续性被破坏[16]。相反,本文基于注意力模型的方法能够提取连续的上下文信息,不会带来明显的失真。
图 6 定性比较结果Fig. 6 Qualitative comparison results
图 7 对比结果Fig. 7 Comparison results
2.7 模型复杂度的对比
本文比较了ACANet 与现有方法的模型复杂度,如表4 所示。综合考虑了模型所占内存(memory),所用训练集大小(#trainset)与测试阶段的运行速度(fps)。从表4 可以看出:基于ResNet-101 的ACANet相比Fu[19]的模型所占内存更小,却取得了更好的性能;基于ResNet-18 的ACANet 占用内存最小,但也取得了较好的结果;Eigen[6]的运行速度最高,但其rmse 也最高,其他模型的运行速度与内存基本呈线性关系。训练集大小比较结果如图8 所示。从图8 可以看出,Fu[19]的模型与ACANet 的rmse最接近,但其使用的训练集大小为本文的10 倍。以上分析结果表明,本文的方法较好地保证了精确性和运行时间之间的平衡。
表 4 模型容量的比较Table 4 Comparison of model capacity
图 8 训练集大小的比较Fig. 8 Comparison of training set size
3 结论
本文提出了一种基于CNN 的单目深度估计方法,即基于注意力模型的自适应上下文聚合网络(ACANet)。该算法利用有监督的自注意模型(SSA),自适应地学习像素级的注意图来捕捉到长距离的上下文信息,这对于细粒度的深度估计至关重要。上下文信息的聚合有利于增强图像特征的提取,有效地提高了深度估计的准确率。本文还提出了软性有序推理(SOI),充分利用输出置信度来减小离散化误差,提高了生成图像的质量。NYU Depth v2 数据集上的实验很好地证明了ACANet的优越性。之后的研究工作将进一步改进深度估计的网络架构,并将ACANet 扩展到其他的密集标记任务,如语义分割和法向量估计等。