Depth from Videos in the Wild
Gordon 2019 · 论文
一句话总结 — 这项工作(ICCV 2019)将自监督深度学习推向了真正不受约束的视频场景,通过与深度、自运动(ego-motion)和物体运动一起学习相机内参(包括镜头畸变),从而能够在相机未知的任意视频上进行训练。
问题
SfM-Learner一脉的自监督深度方法从原始视频中学习,方式是将一帧变形(warp)到另一帧并惩罚光度误差——但它们假设相机内参已知,这将训练限制在像KITTI这样已标定的数据集上,并且当场景中包含独立运动的物体或遮挡时性能会下降。如果目标是从世界上的视频(任意相机、任意内容)中学习几何,那么标定假设和静态场景假设都必须被抛弃。
方法与架构
两个卷积网络仅以跨帧一致性作为监督信号联合训练:一个深度网络(以ResNet-18为基础的UNet,softplus激活函数 将logits映射为深度)从单张图像预测深度,以及一个运动网络(受FlowNet启发的UNet),从两帧图像预测相机旋转 、全局平移 、逐像素残差平移场,以及相机内参——每个内参都由瓶颈层各自的1x1卷积输出。相邻帧之间的骨干变形关系为
其中 是内参矩阵, 是齐次像素坐标, 是深度, 是运动。
为何内参可学习。 损失仅通过 和 依赖于 ;平移不提供任何信号(一个错误的 ,配合 ,会使损失不变),但旋转会提供信号——没有任何 能重现 。论文从帧间旋转推导出焦距的容差:
其中 是旋转角度(弧度制), 是图像尺寸——旋转越大,焦距被约束得越紧。
物体运动。 在整幅图像上保持恒定; 只允许在一个粗略的”可能可移动”掩码 内偏离常数(检测框的并集即可——无需实例分割或跟踪):
遮挡感知损失。 每个源像素用其预测深度反投影,按运动场移动,再重投影;一个像素只有在其变换后的深度满足 (即它落在目标深度图的前方)时才会进入(L1光度+深度+运动循环一致性)损失——该条件在两个方向上对称应用。当深度差异较大时,SSIM的权重会被降低。随机化层归一化——在均值和方差上加入乘性高斯噪声的层归一化——取代了批归一化,因为批归一化表现出异常行为(准确率随批大小增大而下降)。
实验结果
- KITTI(Eigen划分,80米截断):使用学习到的内参时Abs Rel为0.128,使用给定内参时为0.129——两者都超过了Struct2Depth(0.141)、Godard(0.133)、GeoNet(0.155)。
- Cityscapes:Abs Rel 0.127(学习内参)对比Struct2Depth的0.145。
- 合并Cityscapes + KITTI(内参可学习)提升了两者:Abs Rel在CS上为0.121,在KITTI上为0.124。在合并数据集上的消融实验:去掉物体运动为0.172/0.130,去掉遮挡感知损失为0.127/0.126,去掉随机化层归一化为0.124/0.127;用检测框代替分割掩码效果同样好(0.120/0.125)。
- 内参精度(EuRoC):学习到的 ,对比真值250.2,,对比真值261.3,二次径向畸变 ,对比真值 ——全部误差在几个像素以内。EuRoC样本外深度评测(训练于机房场景,测试于Vicon Room 2 01):Abs Rel 0.332,该数据集此前没有先行工作。
- 里程计(KITTI 09/10):使用学习并校正后的内参时,平移漂移 为2.7%/6.8%,对比Struct2Depth的10.2%/28.9%;ATE为0.010/0.007。
- 从YouTube8M四旋翼飞行器视频中学习到的深度效果(定性)——涵盖了多个视场角和畸变各不相同的未知相机。
对SLAM的意义
这篇论文移除了从无限视频中学习几何的最后一道实际障碍:标定。将相机参数当作又一个可学习输出的想法,在学习式相机模型(Neural Ray Surfaces)中再次出现,并与当今无标定的前馈式重建(DUSt3R风格的模型在不给定内参的情况下预测几何)相呼应。对SLAM从业者而言,它也是在光度自监督内部处理动态物体和遮挡的一个参考点——这是直接法长期以来的顽固失效模式。