Depth from Videos in the Wild

Gordon 2019 · 论文

一句话总结 — 这项工作(ICCV 2019)将自监督深度学习推向了真正不受约束的视频场景,通过与深度、自运动(ego-motion)和物体运动一起学习相机内参(包括镜头畸变),从而能够在相机未知的任意视频上进行训练。

问题

SfM-Learner一脉的自监督深度方法从原始视频中学习,方式是将一帧变形(warp)到另一帧并惩罚光度误差——但它们假设相机内参已知,这将训练限制在像KITTI这样已标定的数据集上,并且当场景中包含独立运动的物体或遮挡时性能会下降。如果目标是从世界上的视频(任意相机、任意内容)中学习几何,那么标定假设和静态场景假设都必须被抛弃。

方法与架构

两个卷积网络仅以跨帧一致性作为监督信号联合训练:一个深度网络(以ResNet-18为基础的UNet,softplus激活函数 z=log(1+e)z=\log(1+\mathrm{e}^{\ell}) 将logits映射为深度)从单张图像预测深度,以及一个运动网络(受FlowNet启发的UNet),从两帧图像预测相机旋转 r0r_0、全局平移 t0t_0、逐像素残差平移场,以及相机内参——每个内参都由瓶颈层各自的1x1卷积输出。相邻帧之间的骨干变形关系为

zp=KRK1zp+Kt,z^{\prime}p^{\prime}=KRK^{-1}zp+Kt,

其中 KK 是内参矩阵,p,pp,p^{\prime} 是齐次像素坐标,z,zz,z^{\prime} 是深度,R,tR,t 是运动。

为何内参可学习。 损失仅通过 KtKtKRK1KRK^{-1} 依赖于 KK;平移不提供任何信号(一个错误的 K~\tilde{K},配合 t~=K~1Kt\tilde{t}=\tilde{K}^{-1}Kt,会使损失不变),但旋转会提供信号——没有任何 K~,R~\tilde{K},\tilde{R} 能重现 KRK1KRK^{-1}。论文从帧间旋转推导出焦距的容差:

δfx<2fx2w2ry;δfy<2fy2h2rx,\delta f_{x}<\frac{2f_{x}^{2}}{w^{2}r_{y}};\quad\delta f_{y}<\frac{2f_{y}^{2}}{h^{2}r_{x}},

其中 rx,ryr_x,r_y 是旋转角度(弧度制),w,hw,h 是图像尺寸——旋转越大,焦距被约束得越紧。

物体运动。 RR 在整幅图像上保持恒定;tt 只允许在一个粗略的”可能可移动”掩码 mm 内偏离常数(检测框的并集即可——无需实例分割或跟踪):

t(x,y)=t0+m(x,y)δt(x,y).t(x,y)=t_{0}+m(x,y)\,\delta t(x,y).

遮挡感知损失。 每个源像素用其预测深度反投影,按运动场移动,再重投影;一个像素只有在其变换后的深度满足 zi,jzi,jtz^{\prime}_{i^{\prime},j^{\prime}}\leq z^{t}_{i^{\prime},j^{\prime}}(即它落在目标深度图的前方)时才会进入(L1光度+深度+运动循环一致性)损失——该条件在两个方向上对称应用。当深度差异较大时,SSIM的权重会被降低。随机化层归一化——在均值和方差上加入乘性高斯噪声的层归一化——取代了批归一化,因为批归一化表现出异常行为(准确率随批大小增大而下降)。

实验结果

对SLAM的意义

这篇论文移除了从无限视频中学习几何的最后一道实际障碍:标定。将相机参数当作又一个可学习输出的想法,在学习式相机模型(Neural Ray Surfaces)中再次出现,并与当今无标定的前馈式重建(DUSt3R风格的模型在不给定内参的情况下预测几何)相呼应。对SLAM从业者而言,它也是在光度自监督内部处理动态物体和遮挡的一个参考点——这是直接法长期以来的顽固失效模式。

相关条目