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

在这里插入图片描述

1. 简介

本文主要研究新视角合成任务中 Narrow-baseline Stereo Images Pairs(处于同一水平基线的左右视角图像)输入的情况。本文首次提出了 Multiplane Images (MPI) 的场景表达方式,其优点在于:

  1. 只需用网络预测一次 MPI 的场景表达,后续就能重复利用该 MPI 来生成多个不同视角下的图片;
  2. 能够有效获取未出现在 Stereo 输入图像中(被遮挡)的场景结构**。

另外,为了训练网络,本文还提出了一种使用在线视频来生成训练数据的方法(不做介绍)。


2. 方法

2.1. MPI 场景表达

在这里插入图片描述
MPI 包含多个平面,每个平面 d d d 编码两种信息:RGB 颜色图像 C d C_d Cd,透明度 Alpha 图 α d \alpha_d αd,因此整个 MPI 可表示为 RGBA 图像的集合,即 { ( C 1 , α 1 ) , . . . , ( C D , α D ) } \{(C_1,\alpha_1), ..., (C_D,\alpha_D)\} {(C1,α1),...,(CD,αD)} ,其中 D D D 表示平面的数量(作者最终采用了 32 个平面)。

2.2. MPI 网络学习

在这里插入图片描述
模型训练过程中,输入为 ( I 1 , I 2 , c 1 , c 2 ) (I_1,I_2,c_1,c_2) (I1,I2,c1,c2),ground truth 为 ( I t , c t ) (I_t,c_t) (It,ct),其中 I I I 表示图像, c i = ( p i , k i ) c_i=(p_i,k_i) ci=(pi,ki) p i p_i pi 表示相机外参, k i k_i ki 表示相机内参。目标是学习一个 MPI 表达网络 f θ ( ⋅ ) f_\theta(\cdot) fθ(),以 ( I 1 , I 2 , c 1 , c 2 ) (I_1,I_2,c_1,c_2) (I1,I2,c1,c2) 作为输入,推断出 MPI 的场景表达,并重建出 c t c_t ct 相机参数下的目标图像 I t I_t It

网络输入:下面假设 I 1 I_1 I1 为 Reference Source, I 2 I_2 I2 为 Second Source,为了将 I 2 I_2 I2 的位姿信息嵌入到 I 1 I_1 I1 中,作者先计算了一个 Plane Sweep Volume (PSV),即将 I 2 I_2 I2 投影到 I 1 I_1 I1 的不同深度平面上(由于这里采用 Stereo 图像输入, I 1 I_1 I1 I 2 I_2 I2 位于同一水平基线上,故只需将 I 2 I_2 I2 做不同程度的水平偏移即可得到 PSV。和 Stereo Depth Estimation 任务中的 Cost Volume 类似)。之后将 I 2 I_2 I2 的 PSV 和 I 1 I_1 I1 concat 到一起作为网络的输入,输入的尺度为 H × W × 3 ( D + 1 ) H\times W\times 3(D+1) H×W×3(D+1)

网络输出:作者认为如果让网络回归出每个平面对应的 RGBA 四个通道,网络输出的通道数太多,对于网络的学习太过困难,因此,作者采用了一种简单有效的做法,即将每个平面的 RGB 看作是参考图 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 ^ b \hat{I}_b I^b,每个平面的融合概率 w d w_d wd,以及透明度 α d \alpha_d αd,就能够获得完整的 MPI 表达了。总体而言,原本输出的尺寸为 W H ⋅ 4 D WH\cdot4D WH4D,在经过调整之后,变为 W H ⋅ ( 2 D + 3 ) WH\cdot(2D+3) WH(2D+3)

2.3. 可微分新视角合成

MPI 中每个平面可以表示成 n ⋅ x + a = 0 {\bf n}\cdot {\bf x}+a=0 nx+a=0,其中 n {\bf n} n 为平面法向量, x = [ u s , v s , 1 ] T {\bf x}=[u_s,v_s,1]^T x=[us,vs,1]T 为齐次坐标, a a a 为偏置项。MPI 所有平面满足平行平面(Fronto Parallel)假设,因此我们可以假设 n = [ 0 , 0 , 1 ] {\bf n}=[0,0,1] n=[0,0,1] a = − d s a=-d_s a=ds,其中 d s d_s ds 为平面深度

从源相机到目标相机的刚性 3D 变换可定义为一个旋转矩阵 R R R 和一个平移向量 t {\bf t} t,这两个参数可以根据相机外参计算得到。现假设源和目标相机的内参为 k s k_s ks k t k_t kt,对于目标图像 MPI 中每个像素点 ( u t , v t ) (u_t,v_t) (ut,vt),根据标准的 inverse homography,可以计算像素点在源图像 MPI 上的映射:
[ u s , v s , 1 ] T ∼ k s ( R T + R T t n R T a − n R T t k t − 1 ) k s − 1   [ u t , v t , 1 ] T [u_s,v_s,1]^T\sim k_s\Big(R^T+\frac{R^T{\bf tn}R^T}{a-{\bf n}R^T{\bf t}}k_t^{-1}\Big)k_s^{-1}\ [u_t,v_t,1]^T [us,vs,1]Tks(RT+anRTtRTtnRTkt1)ks1 [ut,vt,1]T

利用上述映射关系,可以插值计算出目标图像 MPI 中每个平面的 RGBA 即 C i ′ C_i' Ci α i ′ \alpha_i' αi,之后采用 Alpha Fusion 中标准的 over 操作将各个平面从后向前合成,即可渲染出新视角下的图像:
I ^ t = ∑ i = 1 D ( C i ′ α i ′ ∏ j = i + 1 D ( 1 − α j ′ ) ) \hat{I}_t=\sum^D_{i=1}\big(C_i'\alpha_i'\prod^D_{j=i+1}(1-\alpha_j')\big) I^t=i=1D(Ciαij=i+1D(1αj))

2.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)} \mathcal{L} \Big(\mathcal{R}\big(f_\theta(I_1,I_2,c_1,c_2),c_t\big),I_t\Big) θmin(I1,I2,It,c1,c2,ct)L(R(fθ(I1,I2,c1,c2),ct),It)

R ( ⋅ ) \mathcal{R}(\cdot) R() 表示 Sec. 2.3. 中的渲染流程, L ( ⋅ ) \mathcal{L}(\cdot) L() 为合成的新视角图像和 ground truth 之间的损失,作者这里采用了感知损失:
L ( I ^ t , I t ) = ∑ l λ l ∥ ϕ l ( I ^ t ) − ϕ l ( I t ) ∥ 1 \mathcal{L}(\hat{I}_t,I_t)=\sum_l\lambda_l\Vert\phi_l(\hat{I}_t)-\phi_l(I_t)\Vert_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. 结果展示

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值