文章目录

  • 原理分析
  • 实施细节
  • 限制条件



单目深度估计transformer和cnn结合的优势性_计算机视觉

会议/期刊:CVPR2017

论文题目:《Unsupervised Learning of Depth and Ego-Motion from Video》

论文链接:Unsupervised Learning of Depth and Ego-Motion from Video (arxiv.org)

开源代码:tinghuiz/SfMLearner: An unsupervised learning framework for depth and ego-motion estimation from monocular videos (github.com)

原理分析

单目深度估计transformer和cnn结合的优势性_算法_02

SfMLearner算法的原理:

  • 利用Depth CNN对当前图像进行深度估计,得到当前图像的深度图
  • 将相邻帧(包括当前帧、上一帧、下一帧)输入Pose CNN,得到旋转矩阵R和平移矩阵T,预测相机的位姿变化
  • 将1、2得到的当前深度图和相邻帧对的R、T矩阵,计算出当前帧和下一帧的映射关系,然后将当前帧warp到下一帧

深度学习论文中的warp是指什么?
warp就是将一个图像上的点变换到另一张图像上

  • 最后将warp出来的图像(predict)与真实的下一帧(goundturth)计算loss,作为无监督的依据,实现无监督学习

实施细节


单目深度估计transformer和cnn结合的优势性_旋转矩阵_03

  1. 将当前帧 单目深度估计transformer和cnn结合的优势性_深度图_04 输入到 Depth CNN 并预测出当前帧的深度图单目深度估计transformer和cnn结合的优势性_音视频_05
  2. 将其与邻近帧 单目深度估计transformer和cnn结合的优势性_算法_06单目深度估计transformer和cnn结合的优势性_深度图_07 组成邻近帧对 {单目深度估计transformer和cnn结合的优势性_旋转矩阵_08} 和 {单目深度估计transformer和cnn结合的优势性_计算机视觉_09} 分别输入到 Pose CNN,预测出六个自由度的帧间位姿变化(单目深度估计transformer和cnn结合的优势性_深度图_10)。可以得到旋转矩阵 𝑹 和平移矩阵 𝒕。
    其中 R 为 3*3 的旋转矩阵,𝑡 = 单目深度估计transformer和cnn结合的优势性_算法_11,𝑹 和 𝒕 合成为一个 4 *4 位姿变化矩阵 单目深度估计transformer和cnn结合的优势性_旋转矩阵_12
    单目深度估计transformer和cnn结合的优势性_深度图_13
  3. 现在令 单目深度估计transformer和cnn结合的优势性_深度图_14 为当前帧齐次像素坐标系下的坐标,单目深度估计transformer和cnn结合的优势性_音视频_15 为邻近 帧齐次像素坐标系下的坐标,根据 CNN 预测出的当前帧深度图 单目深度估计transformer和cnn结合的优势性_音视频_16 和帧间位姿 变化矩阵 单目深度估计transformer和cnn结合的优势性_计算机视觉_17,可以得到 单目深度估计transformer和cnn结合的优势性_音视频_18 帧间映射关系:
    单目深度估计transformer和cnn结合的优势性_旋转矩阵_19
    其中𝑲 为相机内参矩阵,在本文实验中相机内参矩阵 𝑲 是已知的。下面对该映射关系公式进行分析
    当前帧的像素坐标系下坐标为单目深度估计transformer和cnn结合的优势性_深度图_20,首先要将坐标从像素坐标系转换到成像坐标系,成像坐标系:单目深度估计transformer和cnn结合的优势性_音视频_21单目深度估计transformer和cnn结合的优势性_深度图_22,然后要将坐标从成像坐标系转换成相机坐标系,相机坐标系:单目深度估计transformer和cnn结合的优势性_深度图_23,即 单目深度估计transformer和cnn结合的优势性_计算机视觉_24;此时坐标是三维坐标, 左乘位姿变化坐标就可以得到变换后的三维坐标:单目深度估计transformer和cnn结合的优势性_算法_25;最后将变换后的三维坐标从相机坐标系转换到像素坐标系:单目深度估计transformer和cnn结合的优势性_旋转矩阵_26,即:
    单目深度估计transformer和cnn结合的优势性_深度图_27
  4. 单目深度估计transformer和cnn结合的优势性_深度图_28

参考链接:

像素坐标系:像素坐标系的原点在左上角,并且单位为像素。比如一张224*224的图片,它的原点就在左上角的地方,然后x轴长224,y轴长224

成像坐标系:图像坐标系的坐标原点是成像平面的中心。例如:红色圈出来的区域,即是图像坐标系, 红色的原点,可以记为图像坐标系的原点

单目深度估计transformer和cnn结合的优势性_旋转矩阵_29

相机坐标系:下图红色坐标轴表示的,即是一个相机坐标。 与世界坐标非常像,只是世界坐标的原点是固定的,而相机坐标的原点,可以是任意的相机位置

单目深度估计transformer和cnn结合的优势性_算法_30

😎世界坐标、相机坐标、图像坐标和像素坐标的关系:

单目深度估计transformer和cnn结合的优势性_算法_31

  1. 最后,得到了帧间的像素级映射关系后,我们就可以像光流一样进行帧间的 warp 操作

图中当前帧 单目深度估计transformer和cnn结合的优势性_深度图_04 上的像素点 单目深度估计transformer和cnn结合的优势性_深度图_14 可以根据预测出的深度图和位姿变化矩阵,映射到 邻近帧 单目深度估计transformer和cnn结合的优势性_旋转矩阵_34 上的 单目深度估计transformer和cnn结合的优势性_音视频_15 点。该映射后的点不一定会刚好映射到 单目深度估计transformer和cnn结合的优势性_旋转矩阵_34 的像素点上,而是大概率如图中一样,映射到由 单目深度估计transformer和cnn结合的优势性_旋转矩阵_34 上的 单目深度估计transformer和cnn结合的优势性_深度图_38 , 单目深度估计transformer和cnn结合的优势性_音视频_39 , 单目深度估计transformer和cnn结合的优势性_计算机视觉_40 , 单目深度估计transformer和cnn结合的优势性_算法_41 四个像素点组成的方格里。因 此这里和 DFF 的 warp 操作一样,要用双线性插值算法,求出 单目深度估计transformer和cnn结合的优势性_音视频_15 的值,再将此值 返回给当前帧 单目深度估计transformer和cnn结合的优势性_深度图_04 的像素点 单目深度估计transformer和cnn结合的优势性_深度图_14,从而完成 warp 操作

限制条件

  1. 图片中没有运动的对象,场景是静态的
  2. 目标视图和源视图之间没有遮挡
  3. 表面是朗伯型的,使得光一致性误差是有意义的

朗伯面是指在一个固定的照明角度下从所有视场方向上观测都具有相同亮度的表面,也就是反射亮度是一个常数。理想朗伯面是物体表面对入射光进行完全的反射,吸收率为0

为了提高对第一点因素(图片中没有运动的对象,场景是静态的)的抗性,作者额外训练了一个解释模型。输出一个像素级的粗糙蒙版(掩码),用来过滤掉会运动的物体,该 mask 用于 loss 计算的时候,对运动 的物体赋予一个较小的权重,对背景区域赋予一个较大的权重,以实现让网络自动屏蔽掉对场景变换估计有干扰的区域

在下图中,Pose CNN和解释模型共享前面的解码器流程,然后分别扩展到预测6-DOF相对姿势和多尺度可解释性掩码两个分支网络。经过红色网络的即是解释模型

单目深度估计transformer和cnn结合的优势性_算法_45

高亮的部分就是估计出来运动的对象,该块像素会被赋予一个比较低的权重计算loss

单目深度估计transformer和cnn结合的优势性_深度图_46