ICCV2023 | 室内场景自监督单目深度估计

作者:lovelypanda,来源:GiantPandaCV

1. 笔者总结

本文方法是一种自监督的单目深度估计框架,名为GasMono,专门设计用于室内场景。本方法通过应用多视图几何的方式解决了室内场景中帧间大旋转和低纹理导致自监督深度估计困难的挑战。GasMono首先利用多视图几何方法获取粗糙的相机姿态,然后通过旋转和平移/尺度优化来进一步优化这些姿态。为了减轻低纹理的影响,该框架将视觉Transformer与迭代式自蒸馏机制相结合。通过在多个数据集上进行实验,展示了GasMono框架在室内自监督单目深度估计方面的最先进性能。

论文链接:https://arxiv.org/abs/2309.16019

开源地址:https://github.com/zxcqlf/GasMono

论文名称:GasMono: Geometry-Aided Self-Supervised Monocular Depth Estimation for Indoor Scenes

87444ec5193f226aaa88122f9e78e1a6.png

图1. 现有方法和GasMono的比较。我们的框架在薄物体和全局结构上展现出了卓越的精度。

2. 原文摘要

本文针对室内场景中存在的大旋转和低纹理等挑战,提出了一种单目自监督深度估计的框架。我们通过利用多视几何方法从单目序列中估计粗略的相机姿态来缓解大旋转的问题。然而,我们发现由于训练集中不同场景间的尺度不确定性,直接使用几何粗略姿态并不能提升深度估计的性能,这与直觉相悖。为了解决这个问题,我们提出在训练过程中对这些姿态进行旋转和平移/尺度优化。为了应对低纹理的问题,我们将视觉Transformer的全局推理能力与迭代式自蒸馏机制相结合,提供来自网络自身的更准确的深度指导。在NYUv2、ScanNet、7scenes和KITTI数据集上的实验验证了我们框架中每个组件的有效性,我们的方法在室内自监督单目深度估计方面达到了最先进的水平,并展现了优异的泛化能力。

3. GasMono框架

054a501a037ff182953ee01ae1dd44ad.png

图2. GasMono: 一种基于几何的自监督单目深度估计框架,用于室内场景。注意,在训练过程中没有使用真实标签。通过从多个室内场景中选择的单目图像序列,使用结构从运动(structure-from-motion)软件包COLMAP来估计每个序列上相机的粗略姿态。然后,使用图像序列和粗略姿态来训练深度模型。为了改善粗略的平移,设计了一个AlignNet来估计尺度sNN和残差平移∆t。此外,还设计了一个PoseNet来进一步改善姿态,特别是基于重建和目标图像的粗略旋转。AlignNet和PoseNet只在训练过程中使用。

3.1. 几何辅助姿态估计

自监督单目深度估计框架对于训练视频序列的标准监督协议包括根据估计的深度Dt和相对相机姿态Et→s = Rt→s|tt→s将像素从源图像Is重投影到目标It。这意味着对于目标视图中的像素pt,它在源视图中的坐标ps可以得到

d4fc5cae98744b30d5a9d6a56f80ecc9.png

鉴于在图像之间学习准确的相对姿态存在大旋转的挑战,我们提出摆脱通常使用的PoseNet,并用传统姿态估计算法替换它。为此,我们利用COLMAP为训练集中每个单独的室内序列的图像Ii获得相机姿态ECPi = RCPi |tCPi。然后,对于给定的图像对It,Is,分别是目标和源帧,我们可以获得两者之间的相对姿态 Et→s = RCPt→s|tCPt→s = ECPsECPt−1。与两帧姿态估计不同,COLMAP等结构从运动管道可以在整个序列上进行全局推理。我们认为,由于姿态估计是学习单目深度的一个边缘任务,利用整个序列是值得的。

尽管如此,COLMAP估计的姿态,我们将称之为粗略姿态,有一些问题,特别是1)在训练集的不同序列之间存在尺度不一致性和由于单目歧义导致的尺度漂移,2)由于缺乏纹理导致的旋转和平移中的噪声。这使得COLMAP本身无法无缝地替代PoseNet来训练单目深度网络。

3.1.1 平移缩放和精炼

为了解决前一个问题,我们部署一个浅层网络AlignNet来在训练过程中精炼平移并重新缩放它,以克服跨训练集中的不同序列的尺度不一致性。

因此,AlignNet处理目标和源图像,并预测应用于COLMAP估计的平移分量tCPt→s的尺度因子sNN和残差移位ΔtNN。然后,从目标视图到源视图的估计平移tt→s得到为

944bc85ce1de6fe0a7368f250612aafc.png

这向量用于方程1,导致仅在学习估计单目深度图时调整训练图像的尺度,使用RCPt→s|t∗t→s。

我们可以将AlignNet视为一个训练优化工具,在训练过程中精炼粗略姿态以使其整体尺度一致。因此,一旦完成训练,它就失去了效用。

86617e770ec88a9e04b163e94de953a5.png

图3. 不同编码器对低纹理深度估计的影响。

3.1.2 旋转优化

前面部分仅关注平移优化,尽管粗略姿态估计的旋转也可能不准确和嘈杂,所以也提出了旋转优化。为了进一步展示训练中旋转优化的效果,在图3中,我们分别报告了不准确粗略旋转(顶部样本)和准确粗略旋转(底部样本)的样本。对于两者,我们基于“Optim t”和“Optim R”计算重构损失,并在第3列中给出。对于第一个样本,由于不准确的粗略旋转,仅优化平移(“Optim t”,第1行)无法补偿错误旋转,从而产生高的重投影误差。在精炼旋转之后,基于“Optim R”的重构(第2行)产生了更低的光度误差。相反,在第二个样本中显示准确的粗略姿态,基于“Optim t”的重构已经可以达到合理的重构图像。

3.2 低纹理区域

在自监督训练中,反向传播行为回复到RGB图像的光度渐变变化。那些具有有效光度变化的区域为深度学习提供强大的渐变,而低纹理区域,如墙壁和地板,无法提供有效的监督信号,因为对深度的多个假设导致光度误差接近零,从而使网络陷入局部最小值。因此,对于低纹理区域,深度估计过程主要依赖于网络自身的推理能力。使用某些额外约束可能有助于缓解这个问题,这些约束来自诸如光流或平面法线之类的提示。尽管如此,这需要额外的监督,并且由于低纹理而在光流的情况下也可能遭受同样的问题。因此,我们选择在架构方面解决它,特别是通过Transformer超越CNN的有限感受野。此外,以前的工作证明了标签蒸馏的有效性,以提高深度网络的准确性。

3.2.1 网络架构

我们的框架由三个网络组成,一个用于单目深度估计的Depth Network,一个用于尺度校正和残差平移预测的Alignment Network(AlignNet),以及一个用于残差姿态估计的PoseNet。整体训练架构如图2所示。

考虑到Transformer在特征之间建模长程关系的出色性能,为了增强低纹理区域的全局特征提取,我们引入了一个Transformer编码器MPViT作为深度编码器。编码器中的自注意力机制以一种高效的因素化方式实现:

ecc08ed4dee3f181912687352dc3ab27.png

其中C指的是嵌入维度。查询(Q)、键(K)和值(V∈R^{N×C})向量是从视觉标记投影的。此外,对于深度解码器,我们用Convex upsampling 替换了Monodepth2等使用的标准上采样,将4个缩放度图像映射带到全分辨率,在此它们用于下面描述的迭代自我蒸馏操作。

算法1 迭代式自蒸馏系统ISD

d8671da114bde6f7cac30e525d699025.png
3.2.2 迭代自我蒸馏

我们提出一个过拟合驱动的迭代自我蒸馏(ISD)过程,以获得最小像素重投影误差的深度图,为任何特定训练样本提供更准确的标签。ISD的关键步骤在算法1中列出。对于每张训练图像,我们多次迭代此过程(行4)。在第一次迭代中,我们在所有尺度上选择每个像素的最小重建误差及其对应的预测深度(第6-14行)。然后,我们通过最小化当前最佳深度图与每个尺度上的预测之间的深度损失来更新网络(第15-16行)。重复此过程多次迭代。

3.3 训练损失

训练损失的关键项由最小视图重建损失组成。

视图重建损失。对于重构图像I~的误差相对于目标图像I,我们采用结构相似性指数度量(SSIM)和L1差异的组合进行衡量:

1cfa342a8d32a11bad94a08b1ff80b31.png

其中α通常设置为0.85 。此外,为了减轻两视图之间的遮挡效应,相对于前向和后向相邻帧进行变形的损失的最小值被计算:

782ffaf1690f52da3d9123c42cb1e380.png

其中‘1’和‘-1’分别指前向和后向相邻帧。

光滑损失。边缘感知平滑损失用于进一步改进反深度映射d:

065c96d83f7900527a93e6c0ea0bd322.png

其中表示平均归一化的反深度。并计算一个自动掩码μ来过滤静止帧和一些重复的纹理区域。

迭代自我蒸馏损失。如前所述,GasMono自我蒸馏伪标签以提供额外的监督。给定根据算法1获得的伪标签,我们最小化预测深度d相对于它的对数误差:

1bf01205d81aba36adc711e08b0ae9e4.png

总损失。最后,在任何给定尺度上计算视图重建损失、光滑损失 和蒸馏项(均带到全分辨率),以获得总损失项。更具体地说,计算两个重建损失,即 和 :

65dd3b1cebd294aba31e5db6697b24b9.png

其中和分别基于平移和旋转优化后得到的姿态进行图像重建计算,β、λ和μ分别设置为0.2、0.001和0.1。最后,在所有尺度上平均总损失。

4. 实验结果

本文的实验结果主要通过在多个数据集上分析和比较GasMono框架的性能来进行评估。在实验部分,作者使用了三个室内数据集(NYUv2、7scenes和ScanNet)和一个室外数据集(KITTI)。作者对GasMono的行为进行了详细的研究,分析了使用COLMAP位置和姿态优化策略训练的GasMono的效果。此外,作者还对模型的各个组件进行了消融实验,评估了它们对解决室内单目深度估计挑战的贡献。最后,作者还与现有的先进方法进行了比较,证明了GasMono在室内自监督单目深度估计中的优势。

表1. 消融研究。

d45d0a5b54538f81db95b980d64ab1fb.png

表2. 在室外KITTI数据集上测试了我们的ISD和不同基线方法。

53082f2ee27f7aec21ac216a167f6aa4.png

表3. 在NYUv2上的评估结果。

feca125e5b3e9eb3cc5a1d328cee822c.png

表4. 在ScanNet上的零测量泛化结果。

ecf65e70aa13e56ee309991828ae5eff.png

表5. 在RGB-D 7场景上的零测量泛化结果。注意,Monoindoor++从每个视频序列中提取每30帧的第一张图像作为测试集,而我们遵循SC-Depthv2,从每10帧中提取第一张图像。

630051787b1011ab66d8d253fca8acea.png

表6. 在RGB-D 7场景上微调后的结果。

4fc264bfe74809ec64a4980a0acc9f93.png

可视化结果如下:

e5b099e2419e717e837d451d8cab99b0.png

图4. 深度评估中的低纹理区域。

38d963c4ab5025b6452455f297bfa7d2.png

图5. 在NYUv2上的定性比较。我们的GasMono相比于基线方法Monodepth2和最近的工作SC-Depthv2,获得了更细致和更准确的深度估计。

03406b64be60e4c1daf50030231ac433.png

图6. 在ScanNet和7scenes上的泛化比较。与TrainFlow、Monodepth2和SC-Depthv2相比,GasMono在新场景上显示出更准确和更细致的深度估计。

413a8f2032e9cc1006c78bb1f3f9bf83.png

5. 结论

本文提出了GasMono,一种利用几何信息的自监督单目深度估计框架,适用于复杂的室内场景。我们的方法通过缩放和精炼两个步骤,解决了自监督训练中由于姿态估计不准确而导致的尺度不一致和深度不精确的问题,并有效地利用了几何方法提供的粗略姿态。实验结果表明,我们的方法在NYUv2和KITTI数据集上显著并稳定地超越了所有现有方法。此外,我们的方法在ScanNet和7Scenes数据集上也表现出了优异的泛化能力。

—END—

高效学习3D视觉三部曲

第一步 加入行业交流群,保持技术的先进性

目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:

[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;

[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;

[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。

[三维重建方向]NeRF、colmap、OpenMVS、MVSNet等。

[无人机方向]四旋翼建模、无人机飞控等。

除了这些,还有求职、硬件选型、视觉产品落地等交流群。

大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。

fcfdc6ac87f6198dce97be5830cc90af.jpeg
添加小助理微信:cv3d007, 拉你入群
第二步 加入知识星球,问题及时得到解答
3.1 「3D视觉从入门到精通」技术星球

针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」

学习3D视觉核心技术,扫描查看,3天内无条件退款 dfb63e4dbf9914192235f848fef512a7.jpeg
高质量教程资料、答疑解惑、助你高效解决问题
3.2 3D视觉岗求职星球

本星球:3D视觉岗求职星球 依托于公众号「3D视觉工坊」和「计算机视觉工坊」、「3DCV」,旨在发布3D视觉项目、3D视觉产品、3D视觉算法招聘信息,具体内容主要包括:

  • 收集汇总并发布3D视觉领域优秀企业的最新招聘信息。

  • 发布项目需求,包括2D、3D视觉、深度学习、VSLAM,自动驾驶、三维重建、结构光、机械臂位姿估计与抓取、光场重建、无人机、AR/VR等。

  • 分享3D视觉算法岗的秋招、春招准备攻略,心得体会,内推机会、实习机会等,涉及计算机视觉、SLAM、深度学习、自动驾驶、大数据等方向。

  • 星球内含有多家企业HR及猎头提供就业机会。群主和嘉宾既有21届/22届/23届参与招聘拿到算法offer(含有海康威视、阿里、美团、华为等大厂offer)。

  • 发布3D视觉行业新科技产品,触及行业新动向。

ecd60a4852a4d5d2cb8bb3e649b3d823.jpeg
扫码加入,3D视觉岗求职星球,简历投起来
第三步 系统学习3D视觉,对模块知识体系,深刻理解并运行

如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com

科研论文写作:

[1]国内首个面向三维视觉的科研方法与学术论文写作教程

基础课程:

[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶

[2]面向三维视觉的Linux嵌入式系统教程[理论+代码+实战]

[3]如何学习相机模型与标定?(代码+实战)

[4]ROS2从入门到精通:理论与实战

[5]彻底理解dToF雷达系统设计[理论+代码+实战]

工业3D视觉方向课程:

[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]

[2]保姆级线结构光(单目&双目)三维重建系统教程

[3]机械臂抓取从入门到实战课程(理论+源码)

[4]三维点云处理:算法与实战汇总

[5]彻底搞懂基于Open3D的点云处理教程!

[6]3D视觉缺陷检测教程:理论与实战!

SLAM方向课程:

[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战

[2]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战

[3](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化

[4]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析

[5]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)

[6](第二期)ORB-SLAM3理论讲解与代码精析

机器人导航与路径规划

[1]移动机器人规划控制入门与实践:基于Navigation2

视觉三维重建:

[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进

[2]基于深度学习的三维重建MVSNet系列 [论文+源码+应用+科研]

自动驾驶方向课程:

[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)

[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程

[3]单目深度估计方法:算法梳理与代码实现

[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)

[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)

无人机:

[1] 零基础入门四旋翼建模与控制(MATLAB仿真)[理论+实战]

最后

1、3D视觉文章投稿作者招募

2、3D视觉课程(自动驾驶、SLAM和工业3D视觉)主讲老师招募

3、顶会论文分享与3D视觉传感器行业直播邀请

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值