论文阅读笔记--Stereo Magnification: Learning view synthesis using multiplane images


在这里插入图片描述

摘要

视图合成问题(即从已知的视图生成一个场景的新奇视图),部分由于在虚拟现实和增强现实中引人注目的应用,最近引起了人们的注意。

在这次文章中,作者探索了一个有趣的视图合成场景:从窄基线立体相机(包括VR相机和如今广泛使用的双镜头摄像手机)拍摄的图像中推断出新视图。

作者将这个问题称为 立体放大 ,并提出了一个学习框架,该框架利用了我们称为多平面图像(MPIs)的一种新的分层表示。

该方法还使用了一个用于学习视图外推的大量新数据源:YouTube上的在线视频。

利用从这些视频中挖掘的数据,我们训练了一个深度网络,该网络可以从输入的立体图像对预测MPI。

这个推断出来的MPI可以用来合成一系列新的场景视图,包括大大超出输入基线的推断视图。

我们表明,我们的方法与几种最近的视图合成方法比较,并展示了在放大窄基线立体图像的应用。

1.介绍

本文章的主要任务就是立体放大,典型的应用有:

  • 将原本基线距离只有 1 c m 1 cm 1cm 的立体视图进行外推,得到基线距离达到 6.3 c m 6.3 cm 6.3cm的立体视图,从而创建一张具有引人注目的3D立体效果的照片
    在这里插入图片描述

  • 或者将一对立体图像对转化为一段头部运动的小范围完全视差
    在这里插入图片描述
    立体放大的挑战有:

  • 只有两个视图作为输入

  • 希望能够处理有反射和透明度的具有挑战性的场景

  • 需要能够渲染那些被遮挡因而在输入视图中不可见的像素。

为了解决这些挑战,文章中方法是从大量的视觉数据中学习进行视图外推:

  1. 作者寻求一种场景表示,它可以从一对输入视图中预测一次,然后重用它来预测许多输出视图,这与之前必须分别预测每个输出视图的工作不同。
  2. 我们需要一种能够有效地捕获隐藏在一个或两个输入视图中的表面的表示。
  3. 我们需要符合我们任务的训练数据。仅仅收集立体视觉对是不够的,因为对于训练,我们还需要与输入立体视觉对有一定距离的额外视图作为我们的ground truth。
  4. 因此,作者先是提出了MPI(多平面图像)这种图像表示;并利用大量的线上视频制作符合本次任务的数据集

2.相关工作

与其他工作的不同:

  • 该方法预测了一次场景表示,并重用它来实时呈现一系列输出视图。
  • 预测一次,然后在运行时重用以呈现多个视图的表示。
  • 我们使用的多平面图像(MPI)表示结合了之前方法的几个吸引人的特性,包括处理多层和表示边界周围混合像素或反射/透明对象的层的“柔软性”。至关重要的是,我们还发现它适用于通过深度网络进行学习

3.提出的方法

指定两张具有已知的相机参数的图片 I 1 , I 2 I_1, I_2 I1,I2, 我们的目标是学习一个深度神经网络来推断出一个适合于合成同一场景的新视图的全局场景表示,特别是在输入视图之外进行推断。
请注意,当我们在这篇论文集中于立体输入时,我们的方法可以适用于更一般的视图合成,包括单个或多个输入视图。

3.1 多平面图像表示(MPI)

我们采用的全局场景表示是相对于参考坐标系在一定深度范围内的一组平面(fronto-parallel planes),其中每一个平面 d d d 编码一个RGB彩色图像 C d C_d Cd 和一个阿尔法/透明度图 α d \alpha_d αd,即
d = ( C d , α d ) d=(C_d, \alpha_d) d=(Cd,αd)
而本文用到的图像表示 M P I MPI MPI 就是这样的RGBA表示层的一个集合:
{ ( C 1 , α 1 ) , . . . , ( C D , α D ) } \{ (C_1, \alpha_1), ...,(C_D, \alpha_D)\} {(C1,α1),...,(CD,αD)}
其中 D D D 是深度平面的数量。

关于RGBA图像的知识,参考博客:图像处理的alpha通道(RGBA图像)

M P I MPI MPI 中每一层中的像素都是固定在某一深度的,每层使用一个 a l p h a alpha alpha 通道来编码可见性。

为了从MPI渲染得到图片(很高效),图层使用标准的 “ o v e r ” a l p h a “over” alpha overalpha 合成操作从前后顺序组成。正如下图所示:在这里插入图片描述

3.2 从立体对学习

文章主要提出一个基于学习的神经网络模型,用于从立体对推断出 M P I MPI MPI. 具体的流程图如下所示:
在这里插入图片描述
除了输入图像对 I 1 , I 2 I_1, I_2 I1,I2,还有输入他们对应的相机参数 c 1 = ( p 1 , k 1 ) c_1 = (p_1,k_1) c1=(p1,k1) c 2 = ( p 2 , k 2 ) c_2 = (p_2, k_2) c2=(p2,k2), 其中 p i 和 k i p_i 和 k_i piki 分别表示相机的外参数和内参数。

什么是相机的外参数与内参数?
参考博客:SLAM入门之视觉里程计(2):相机模型(内参数,外参数)

预测场景的参考坐标系: 第一张输入图像 I 1 I_1 I1 的相机中心。(比如 p 1 p_1 p1 被固定为同一位置)

训练集: 由大量的元组 < I 1 , I 2 , I t , c 1 , c 2 , c t > <I_1, I_2, I_t, c_1, c_2, c_t> <I1,I2,It,c1,c2,ct>组成,其中 I t I_t It c t c_t ct是目标groun-truth图像和它的相机参数。
网络输入 I ^ 2 \hat I_2 I^2 + I 1 I_1 I1 ( H × W × 3 ( D + 1 ) ) H \times W \times 3(D+1) ) H×W×3(D+1))
其中 I ^ 2 \hat I_2 I^2 简单地说是 I 2 I_2 I2 的移动版本。为了对来自 I 2 I_2 I2 的位姿信息进行编码,作者计算平面扫描体(PSV),在一组 D D D 个固定深度平面上将 I 2 I_2 I2 重投影到参考相机中。并且这些深度平面与输出MPI的深度平面重合。平面扫描计算结果是一组重投影图像
{ I ^ 2 1 , . . . , I ^ 2 D } \{\hat I_2^1,..., \hat I_2^D\} {I^21,...,I^2D}
由于是在颜色通道上进行拼接, I ^ 2 \hat I_2 I^2 是一个 H × W × 3 D H \times W \times 3D H×W×3D 大小的张量。

直观地说,PSV表示允许网络通过简单地比较 I 1 I_1 I1 I 2 I_2 I2 的每个平面重投影来推断场景的几何形状——在任何给定像素上的场景深度通常是在 I 1 I_1 I1 和重投影的 I 2 I_2 I2 一致的深度平面上。
在这里插入图片描述

网络输出: 每个深度平面的透明图 α d \alpha_d αd, 背景图片 I ^ b \hat I_b I^b +混合权重 w b w_b wb ( W H ⋅ ( 2 D + 3 ) WH\cdot (2D+3) WH(2D+3))
作者假设场景中的颜色信息可以通过两幅图像建模,前景和背景图像,其中前景图像仅仅是参考图 I 1 I_1 I1 ,背景图像 I ^ b \hat I_b I^b是由网络预测的,并且旨在捕捉隐藏的外观表面。因此,对于每一深度平面, 每一张RGB图像 C d C_d Cd 计算为前景图片 I 1 I_1 I1 和背景图片 I ^ b \hat I_b I^b之间的逐个像素加权平均值:
C d = w d ⊙ I 1 + ( 1 − w d ) ⊙ I ^ b C_d = w_d\odot I_1 + (1-w_d)\odot \hat I_b Cd=wdI1+(1wd)I^b
直观地来说,对于前景内容占主导的附近的平面, I 1 I_1 I1 将占有更高的权重,而 I ^ b \hat I_b I^b 用于捕捉在参考视图中被遮挡的表面。
在这里插入图片描述

3.3 使用MPIs进行可微视图合成

给定关于一个参考帧的 M P I MPI MPI 表示,我们能够通过对每个平面的RGBA图像应用平面变换(逆单应性),并将已转换的图像按前后顺序组合成单个图像的阿尔法组合,最终合成得到一个新奇视图 I ^ t \hat I_t I^t

平面变换和阿尔法组合都是可微的,因此可以很容易地融入到学习流程的其余部分中

3.3.1 平面变换

该平面变换操作将MPI中的RGBA平面反向扭曲到目标视点上。

M P I MPI MPI 平面的几何变换为
n ⋅ x + a = 0 n\cdot x+a = 0 nx+a=0
其中 n n n 表示法线平面, x = [ u s , v s , 1 ] T x = [u_s, v_s,1]^T x=[us,vs,1]T 是源像素齐次坐标, a a a 是平面偏置

由于 源 M P I MPI MPI平面是与参考源相机正面平行的, 我们有 n = [ 0 , 0 , 1 ] n=[0,0,1] n=[0,0,1] a = − d s a=-d_s a=ds,其中 d s d_s ds 是源 M P I MPI MPI 平面的深度。

从源到目标摄像机的刚性三维变换矩阵映射由一个三维旋转 R R R 和平移 t t t 定义,而源相机参数与目标相机参数记为 k s , k t k_s, k_t ks,kt

对于 M P I MPI MPI 中的每一个像素 ( u t , v t ) (u_t, v_t) (ut,vt), 我们利用标准的逆单应性获取:
[ u s v s 1 ] ∼ k s ( R T + R T t n R T a − n R T t ) k t − 1 [ u t v t 1 ] \begin{bmatrix} u_s\\ v_s\\ 1 \end{bmatrix}\sim k_s\big ( R^T + \frac{R^T tnR^T}{a-nR^Tt}\big )k_t^{-1}\begin{bmatrix} u_t\\ v_t\\ 1 \end{bmatrix} usvs1ks(RT+anRTtRTtnRT)kt1utvt1

3.3.2 Alpha 合成

将平面变换应用到 M P I MPI MPI 的每个平面上,然后使用工作1中的标准的操作将彩色图像按前后顺序进行alpha合成得到预测目标视图。

3.4 目标函数

对于一个训练集 : < I 1 , I 2 , I t , c 1 , c 2 , c t > <I_1, I_2, I_t, c_1, c_2, c_t> <I1,I2,It,c1,c2,ct>,我们通过以下式子优化网络参数:
min ⁡ θ ∑ < I 1 , I 2 , I t , c 1 , c 2 , c t > L ( R ( f θ ( I 1 , I 2 , c 1 , c 2 ) , c t ) , I t ) , \min_{\theta}\sum_{<I_1, I_2, I_t, c_1, c_2, c_t>} L(R(f_{\theta}(I_1,I_2,c_1,c_2),c_t),I_t), θmin<I1,I2,It,c1,c2,ct>L(R(fθ(I1,I2,c1,c2),ct),It),
其中, R ( ⋅ ) R(\cdot) R()表示在3.3节中描述的渲染过程,利用 推断出来的 M P I MPI MPI f θ ( I 1 , I 2 , c 1 , c 2 ) f_{\theta}(I_1,I_2,c_1,c_2) fθ(I1,I2,c1,c2) 和目标相机 c t c_t ct 合成一个新奇视图, L ( ⋅ ) L(\cdot) L()是合成的视图与ground-truth之间的损失函数。

在本文中,用到了一个深度特征匹配损失(来自工作2的感知损失),并用了归一化后的VGG-19层:
L ( I ^ t , I t ) = ∑ l λ l ∣ ∣ ϕ l ( I ^ t ) − ϕ l ( I t ) ∣ ∣ 1 L(\hat I_t, I_t) = \sum_l\lambda_l||\phi_l(\hat I_t)-\phi_l(I_t)||_1 L(I^t,It)=lλlϕl(I^t)ϕl(It)1
其中, { ϕ l } \{\phi_l\} {ϕl}是VGG-19中一系列网络层(conv1_2,conv2_2,conv3_2,conv4_2, 和 conv5_2), 而权重超参数 { λ l } \{\lambda_l\} {λl}设置为每一层神经元个数的倒数。

3.5 实现细节

除非另有说明,我们使用D = 32个平面设置为等距视差(逆深度),近平面和远平面分别设置为1m和100m

网络结构如下:
在这里插入图片描述

训练的时候图像和MPI的空间分辨率为 1024 × 576 1024\times 576 1024×576, 但是测试的时候模型适用于任意分辨率的图像。

4. 数据

为了训练,我们需要三联图像连同他们的相对相机姿态和内在特征。

我们确定了大量此类数据的现有来源:YouTube上用移动摄像机拍摄的视频片段。

要实现这种方法,我们需要能够识别出合适的视频片段,也就是说,从移动的摄像机中拍摄的静态场景的片段,具有最小的失真(如运动模糊或滚动快门失真),并且没有其他编辑效果(如标题和叠加)。最后,给定一个合适的片段,我们必须估计每一帧的摄像机参数。

作者在大量线上视频中发现房地产商拍的介绍视频适用于本次任务。

为了建立这个数据集,作者设计了一条从YouTube上获取合适视频的流程

  1. 识别一组要下载的候选视频
  2. 在每一个视频上运行一个摄像机跟踪器,以估计每一帧的初始摄像机姿态,并将视频细分为不同的镜头/片段。
  3. 执行一个完整的束调整,为每个片段获得高质量的姿态
  4. 过滤删除任何剩余的不合适的片段。

4.1 识别视频

我们手动找到了一些专门或几乎专门发布房地产视频的YouTube频道,并使用YouTube API检索每个频道下列出的视频id。这产生了一组大约1500个候选视频。

4.2 利用SLAM识别和跟踪视频片段

作者发现,出于本次任务的目的,可以为在机器人社区开发的SLAM(同步定位和映射)技术调整现代算法。

视觉SLAM方法以一系列帧图像为输入,建立并维护了一个稀疏或半密集的场景三维重建,并以一种与这种重建相一致的方式来估计当前框架的视点。文章使用了 ORB-SLAM2 系统3

利用该系统进行可用视频片段的识别和跟踪的流程:

  1. 照常将连续的视频帧图片输入 ORB-SLAM2系统
  2. 当算法上报说它开始跟踪相机时,标记片段的开始
  3. 当ORB-SLAM2不能够跟踪K= 6连续帧,或达到了最大序列长度L,考虑结束该视频片段的跟踪
  4. 保持最终场景模型不变,对片段中的所有帧进行再处理,以估计出每个摄像机的姿态一致。
  5. 重新初始化ORB-SLAM2系统,使它已经准备好开始跟踪后续帧上的新片段。

因为包括ORB-SLAM2在内的SLAM方法需要已知的摄像机特性,比如视场(对于任意的在线视频来说,这是未知的),所以我们简单地假设视场为90度。这一假设在识别好的片段时效果出奇的好。

最后,为了提高速度,在这个阶段我们处理了一个低分辨率的视频版本。上述处理的结果是每个视频的一组片段或序列,以及一组初步的摄像机参数。

4.3 通过束调整(wiki)精细化相机姿态参数

下图展示了一个示例输出:
在这里插入图片描述
接下来,我们以更高的分辨率处理每个序列,使用标准的从运动中提取特征的流程从每一帧中提取特征,跨帧匹配这些特征,并使用Ceres非线性最小二乘优化器执行全局bundle调整4。我们使用ORB-SLAM2找到的姿态来初始化相机,并在优化中添加了一个弱惩罚,以鼓励参数不要偏离它们的初始值太远。每个序列的输出是一组调整后的相机姿态,一个估计的视场,和一个稀疏的点云表示场景。……

4.4 过滤和剪裁

4.5 选择训练三元组

5.5 应用

5.5.1 应用1

智能手机拍摄的图像对–> IPD 图像对
我们用iPhone X(一款最新的双镜头相机手机,基线为~ 1.4cm)捕获了一组图像对,使用的应用程序保存了两个捕获的视图。由于两个摄像头的焦距不同,该应用程序会裁剪大角度的图像,以匹配较窄的视场图像。

对于每个图像对,我们运行了一个校准程序,使用它们的标称值作为初始化来改进摄像机的内在特性。

然后我们应用我们的模型(在房地产数据上训练)将基线放大到约6.3cm(放大倍数为4.5x)。图11中以浮雕图像的形式显示了几个结果,并在补充视频中以摇摆动画的形式显示。图11突出说明了外推图像如何提供更引人注目的3D感觉,并说明了我们的模型如何可以推广到非典型的房地产场景的新场景(例如第一个例子中的马克·吐温雕塑)。最后,请注意我们的方法可以处理有趣的材料(例如第一个场景中的反射玻璃和光滑的地板)。
在这里插入图片描述

5.5.2 应用2

立体对扩展为一维光场
我们还演示了采用大基线立体对合成连续的“一维光场”-即。,沿着一条贯穿源视图的线的一组视图。对于这个应用程序,我们下载了由Fujifilm FinePix Real 3D W1立体相机拍摄的以7.7cm为基线的立体对,并外推到以26.7cm为基线(放大系数为~ 3.5x)的连续视图集。图12显示了作为浮雕的示例输入和输出;请参阅补充视频以获得最终序列的动画。这个输入基线、放大因子和场景内容对我们的模型来说是一个具有挑战性的情况,并且可以观察到背景中的拉伸等工件。尽管如此,结果显示了可信的插值和外推源图像。
在这里插入图片描述


  1. Thomas Porter and Tom Duff. 1984. Compositing Digital Images. In Proc. SIGGRAPH.
    Christian Riechert, Frederik Zilly, Peter Kauff, Jens Güther, and Ralf Schäfer. 2012. Fully
    automatic stereo-to-multiview conversion in autostereoscopic displays. The Best of
    IET and IBC 4 (09 2012). ↩︎

  2. Alexey Dosovitskiy and Thomas Brox. 2016. Generating images with perceptual
    similarity metrics based on deep networks. In NIPS ↩︎

  3. Jakob Engel, Vladlen Koltun, and Daniel Cremers. 2018. Direct sparse odometry. IEEE
    Trans. on Pattern Analysis and Machine Intelligence 40, 3 (2018). ↩︎

  4. Sameer Agarwal, Keir Mierle, and Others. 2016. Ceres Solver. http://ceres-solver.org.
    (2016). ↩︎

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值