【泡泡图灵智库】深度-注意力体引导单目深度估计
泡泡图灵智库,带你精读机器人顶级会议文章
标题:Guiding Monocular Depth Estimation Using Depth-Attention Volume
作者:Lam Huynh,Phong Nguyen-Ha,Jiri Matas,Esa Rahtu and Janne Heikkila
来源:ECCV 2020
编译:陈圣伦
审核:李鑫
这是泡泡图灵智库推送的第561篇文章,欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权
摘要
大家好,今天为大家带来的文章是——Guiding Monocular Depth Estimation Using Depth-Attention Volume
从单一图像恢复场景深度是一个需要额外的先验的病态问题,通常被称为单目深度线索,用于消除不同三维解释的歧义性。在最近的工作中,这些先验是通过使用深度神经网络从大数据集以端到端的方式学习。在这篇论文中,我们提出了一种使用室内环境中普遍存在的平面结构引导深度估计方法。通过将非局部共面性约束,与称为深度-注意力体(DAV)的注意力机制合并到网络中实现。在NYU-Depth-v2和ScanNet两个常用的室内数据集上进行的实验表明,我们的方法获得了最先进的深度估计结果,同时参数数量小。代码地址:
https://github.com/HuynhLam/DAV
背景与贡献
主要贡献
1.提出了一种注意力机制---深度注意力体,可捕获了共面点之间的非局部深度依赖。
2.一种端到端的神经网络结构,隐式学习从场景中识别平面结构,并将其作为单目深度估计的先验。
3.达到NYU-Depth-v2和ScanNet数据集的最先进的深度估计结果,与以前的方法相比,使用了少量的参数。
算法核心
A:深度-注意力体
已知两图像点P0=(x0,y0)和P1=(x1,y1)以及深度d0,d1,可以定义深度-注意力A(P0,P1)是P1预测P0的深度的能力。这种能力量化为[0,1]的置信度,0表示不具备能力,1表示能力最大。
从训练图像中检测N个平面,并参数化为S=(nx,ny,nz,c),其中(nx,ny,nz)为法线,c为原点到平面的正交距离。可构建全部N个平面的一阶深度-注意力体:
其中σ是sigmoid函数,X0=(x0,y0,d0,1),X1=(x1,y1,d1,1)。深度-注意力体表示四维张量H*W*H*W,实际操作时下采样为八分之一。
使用真实值构建零阶深度-注意力体,
最后,组合这些深度-注意力体的最大值,图3。
B:网络结构
图1是模型的流程,包括三个主要模块:编码器、非局部深度-注意力模块和解码器。
图1 网络流程
使用22层的空洞残差网络作为编码器(DRN-D-22)。它删除了空洞残差网络(DRN)中的max-polling层。解码器采用上采样的策略,两个双线性插值之后是一个3*3的卷积,然后使用两个5*5的卷积估计最终的深度图。
图2 非局部深度-注意力模块。·为元素乘法,+为元素和,×为外积。
图2显示了非局部深度-注意力模块的结构,输入特征图X得到相同大小的输出特征Y。该模块的主要目的是将深度-注意力体(DAV)的非局部信息添加到Y中,但也用于监督深度-注意力体的学习。
图3 深度-注意力体是深度注意图的集合
C:损失函数
注意力损失:主要目的是减少估计值和真实值DAV之间的误差。
Lmae表示平均绝对误差,A^表示预测,A表示真实值。此外,还最小化了两者之间的角度,
最终的注意力损失如下,
深度损失:它是中三种损失的组合(Llog,Lgrad和Lnorm)。
公式中M是有效深度数量,di是真实值,d^是预测值。F(x)=log(x+α),α=0.5。
其中△x和△y是误差的梯度。
Lnorm通过角度损失来优化细节,法线定义n为(-▽x(d),-▽y(d),1)。最终深度损失为,
网络的最终损失如下,
主要结果
表1 NYU-Depth-v2数据集评估结国=果。↓代表越低越好,↑代表越高越好。
表2 ScanNet数据集评估结果。
图4 ScanNet测试集的深度图。
如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号。