MonoDepth
Godard 2016 · 论文
一句话总结 — 一种自监督单目深度估计方法,通过左右光度一致性在立体图像对上训练:训练时用立体图像作为监督信号,但测试时仅需单张图像即可。
问题
监督式单目深度估计将深度视为一个回归问题,因此需要海量的真值深度,而即便是昂贵的激光扫描仪,在存在运动和反射的自然场景中也难以给出精确的深度值。相比之下,立体相机装置便宜且普及。MonoDepth 的核心洞见是在训练阶段将深度估计问题转化为一个图像重建问题:预测将一个校正视图变形到另一个视图的视差场 ,等价于通过 (基线 ,焦距 )预测深度,因此图像重建误差就成为训练信号,完全不需要深度标签。
方法与架构
网络。 一个受 DispNet 启发的全卷积编码器-解码器网络(3100 万参数;ResNet50 编码器变体有 4800 万参数),带有跳跃连接,并在四个尺度上输出视差。关键之处在于,网络仅从左图出发即可同时预测两幅视差图 和 ;右图仅用于损失计算。反向变形使用来自空间变换网络(spatial transformer networks)的完全可微双线性采样器:。视差通过缩放的 sigmoid 被约束在 范围内;ELU 替代了 ReLU(后者会使中间尺度的视差过早冻结),反卷积则被最近邻上采样加卷积所替代。
损失函数。 总损失 ,每个尺度组合三个镜像(左/右)项:
- 外观匹配 — SSIM 加 L1 光度重建(,简化的 块滤波 SSIM):
- 边缘感知的视差平滑性 — 对视差梯度施加 L1 约束,在图像边缘处降低权重,使深度不连续处与物体边界对齐:
- 左右视差一致性 — 这是关键创新点;左视图的视差图必须等于投影后的右视图视差图:
朴素的单方向采样会产生与错误图像对齐的视差,或产生”纹理复制”伪影以及深度不连续处的误差;在 和 之间强制互一致性可以同时修复这两个问题。权重设置:,每个尺度 。使用 Adam(学习率 ,批大小 8)训练 50 个 epoch,在 Titan X 上耗时约 25 小时;使用翻转/颜色抖动数据增强。一个测试时后处理步骤(pp)对图像及其镜像的视差取平均,以抑制立体去遮挡带来的渐变伪影。测试时仅使用最精细尺度上的 ;对于 512×256 图像,推理耗时低于 35 毫秒(28+ FPS)。
实验结果
- KITTI 数据集划分(200 张官方视差图像):左右一致性在所有指标上均优于无 LR 变体以及 Deep3D 图像形成基线(Ours K:Abs Rel 0.124,RMSE 6.125,D1-all 30.27,对比 Deep3D 的 0.412/13.69/66.85);Cityscapes 预训练加 KITTI 微调将结果提升至 0.104/5.417,加上 ResNet 和后处理则达到 0.097/5.093。
- Eigen 数据集划分(697 张测试图像):仅在 KITTI 上训练,Abs Rel 0.148,RMSE 5.927, = 0.803 —— 在没有任何深度标签的情况下超越了 Eigen 等人(0.203)和 Liu 等人(0.201)的监督方法;使用 ResNet + pp 的 CS+K 组合达到 Abs Rel 0.114,RMSE 4.935, = 0.861。在限定 50 米范围内,其表现优于 Garg 等人(0.140 对比 Garg 的 0.169 Abs Rel)。
- 泛化能力:在 Make3D 数据集上,尽管从未在该数据集上训练过,仍取得了优于完全监督方法的定性结果;一个立体输入变体表现更佳(Abs Rel 0.068),这也印证了单目才是更困难的问题。
对SLAM的意义
MonoDepth 开创了自监督深度估计的先河,并催生了一个庞大的研究方向(Monodepth2、PackNet 及其他众多后续工作);其左右一致性以及 SSIM + L1 光度损失机制已成为该领域的标准工具。对于 SLAM 而言,它开辟了一条可以从 SLAM 系统本就在采集的同类原始驾驶/机器人视频数据中训练出深度先验的道路——无需深度传感器——这也是 D3VO、MonoRec 以及现代单目稠密建图所依赖的自监督深度技术路线的基础。
相关条目
- SfM-Learner — 单目视频对应版本(深度加自我运动)
- 自监督深度 — 概念总览
- MiDaS — 面向多数据集泛化的后续工作
- MonoRec — 建立在此谱系之上的稠密重建方法
- D3VO — 基于该自监督训练思想构建的深度视觉里程计