Occupancy Flow: 4D Reconstruction by Learning Particle Dynamics(2)
一直在思考Lcorr和Lrecon的区别和各自的作用,下面用Lc和Lr表示。
首先,看2a,给定第一帧的GT点,然后由速度网络利用式(3)把t=0映射到后面的形变空间t=τ中,接下来与GT的t=τ相比较,求一个loss,Lc,这个主要是训练速度网络,让它学会这个动作包含的形变映射。这里的形变映射基于连续介质力学,也就是如何映射是不用学的,是物理真实的,只是映射到哪里,这个参数是需要学的。
其次,ONet只对输入的第一帧重构,也就是说它只会判断材料空间(采用连续介质力学的说法)的O值。看2b,在t=τ,在GT里随机找一个点,这个点可以在形状里(O值为1),也可以在形状外(O值为0),然后在速度模型预测的t=τ时刻找到对应的点,把这个点逆映射回材料空间t=0,用ONet算一下O值,看看和GT的O值能不能对上。所以Lr的作用是训练ONet能够辨别哪些点属于形状,哪些点不属于。
总结起来,对于速度网络,输入一个动作点云序列,学的是整个空间中所有点的运动规律(搞明白在某个时刻,该把每个点形变映射到哪里);对于ONet,学的是如何辨别空间中的点到底哪个是属于形状自身的。俩网络结合起来,就实现了4D重构,一方面知道空间中哪些点属于形状,另一方面还知道对于这个动作而言,形状内外的这些点每个时刻该映射到什么位置。
3.1 OFlow
\quad
我们考虑在空间和时间上联合估计非刚性3D几何的挑战性问题。更具体地说,我们感兴趣的是推断一个连续的三维形状表示的演变,它隐含地和密集地捕捉时间上的对应。我们将对向量和向量值函数使用粗体,对标量和标量函数使用常规字体。
\quad
令[0, T] →
R
3
\mathbb R^3
R3定义一个点在时间区间[0, T]内的连续3D轨迹,例如
s
(
0
)
∈
R
3
\bold s(0)\in\mathbb R^3
s(0)∈R3以及
s
(
T
)
∈
R
3
\bold s(T)\in\mathbb R^3
s(T)∈R3代表轨迹的起点和终点。进一步,
v
:
R
3
×
[
0
,
T
]
→
R
3
\bold v:\mathbb R^3\times[0,T]\to\mathbb R^3
v:R3×[0,T]→R3代表连续的速度场,描述时间空间中每一个点的3D速度。
s
(
⋅
)
\bold s(\cdot)
s(⋅)和
v
(
⋅
,
⋅
)
\bold v(\cdot,\cdot)
v(⋅,⋅)之间的关系通过下式可微方程来描述(在时间区间[0, T]内):
式(1)的含义, s ( t ) \bold s(t) s(t)是轨迹中时刻t的一个点的3维坐标向量, v \bold v v是空间中的场,受位置s和时刻t两个变量的影响
当对于每个初始条件
s
(
0
)
=
p
,
p
∈
R
3
\bold s(0)=\bold p,\bold p\in\mathbb R^3
s(0)=p,p∈R3求解这个ODE时,我们得到了前向流forward flow
Φ
:
R
3
×
[
0
,
T
]
→
R
3
\Phi:\mathbb R^3\times[0,T]\to\mathbb R^3
Φ:R3×[0,T]→R3满足下式(对应图2a):
流
Φ
(
p
,
t
)
\Phi(\bold p,t)
Φ(p,t)描述了随矢量场
v
(
⋅
,
⋅
)
\bold v(\cdot,\cdot)
v(⋅,⋅)初始点p在时刻t的位置。为了及时向前传播空间信息(例如,体积占用或网格顶点),我们可以将式(2)重新公式化如下:
τ
∈
[
0
,
T
]
\tau\in[0,T]
τ∈[0,T]代表任意时刻的一个随机点,
p
\bold p
p代表
R
3
\mathbb R^3
R3上的空间位置。这个等式可以用标准的数值求解器来求解,例如RK法。
把微分变成了积分形式,有什么好处?如何体现所谓的传播空间信息?可以看做是x2=x1+vt的形式,还是不理解微分变成积分的道理?
举例,
微分问题:已知匀加速直线运动的物体位移为 s ( t ) \bold s(t) s(t),求速度:
s ( t ) = 1 2 a t 2 s(t)=\frac 1 2at^2 s(t)=21at2
v ( t ) = d s d t = a t v(t)= \frac {ds} {dt}=at v(t)=dtds=at
积分问题:已知匀加速直线运动的物体速度为v(t),求位移:
v ( t ) = a t v(t)=at v(t)=at
求s=s(t),使得 d s d t = a t \frac {ds} {dt}=at dtds=at
结果 s = s ( t ) = 1 2 a t 2 + C s=s(t)=\frac 1 2at^2+C s=s(t)=21at2+C
\quad 我们也可以把 Φ ( ⋅ , τ ) \Phi(\cdot,\tau) Φ(⋅,τ)看做一个坐标转换,把t=0的坐标系统转化成t=τ。在连续体力学领域,这些坐标系通常分别称为“材料坐标系”和“空间坐标系”[3]。
连续介质力学不白学,其实就是把原始空间映射到形变空间
\quad
我们定义反向流backforward flow
Ψ
:
R
3
×
[
0
,
T
]
→
R
3
\Psi:\mathbb R^3\times[0,T]\to\mathbb R^3
Ψ:R3×[0,T]→R3(图2b)作为
Φ
\Phi
Φ的逆变换。这个逆变换可以通过对每个
(
p
,
τ
)
∈
R
3
×
[
0
,
T
]
(\bold p,\tau)\in \mathbb R^3\times[0,T]
(p,τ)∈R3×[0,T]和初始条件设置为
Ψ
(
p
,
τ
)
=
r
(
0
)
\Psi(\bold p,\tau)=\bold r(0)
Ψ(p,τ)=r(0)求解逆向ODE得到
这里和式(2)相比,把 Φ \Phi Φ换成了 r \bold r r并且右边加了个负号,这就是ODE的逆吗?
这里的逆,指的应该是从形变空间映射回原始空间,由于 v \bold v v没变,所以有负号,相当于是反向运动。可以看到s.t.后面是 τ \tau τ时刻的位置。
但是目前还不知道这一来一回是怎么起作用的?起了什么作用?为什么back不用积分形式?
由于隐含地捕获了跨时间的对应关系,因此在时间 t = 0 时在坐标系中表示 3D 形状就足够了。然后可以使用式(3)通过传播获得其他时间点的 3D 形状。
这句话好理解,整个形变过程已知的话,完全可以根据原始空间得到后续任何时刻下的形变空间的形状。
\quad
为了表示t=0时刻的3D形状,我们选择了O-Net的方式,
f
:
R
3
→
{
0
,
1
}
f:\mathbb R^3\to\left\{0,1\right\}
f:R3→{0,1},给每一个3D点赋予一个占用值。与基于网格和点的表示方法相比,占用函数允许在任意分辨率下表示平滑的形状以及任意的拓扑结构。我们参数化占用函数
f
(
⋅
)
f(\cdot)
f(⋅)和速度场
v
(
⋅
,
⋅
)
\bold v(\cdot,\cdot)
v(⋅,⋅):
其中,
θ
\theta
θ和
θ
^
\hat \theta
θ^代表网络参数。接下来,我们称
f
θ
(
⋅
)
f_\theta(\cdot)
fθ(⋅)为占用网络ONet,
v
(
⋅
,
⋅
)
\bold v(\cdot,\cdot)
v(⋅,⋅)称为速度网络。我们将描述式(5)和(6)的参数是如何从数据中学习的。
3.2 训练
\quad
我们的目标是通过从 4D 占用时空体积中提取的样本,即每个样本代表空间和时间特定点的占用状态,来训练上述两个网络。由于我们把t=0作为参考坐标系来表示形状,每个t>0的样本都必须被映射回t=0的位置。为了实现这个目标,我们使用反向流
Ψ
:
R
3
×
[
0
,
T
]
→
R
3
\Psi:\mathbb R^3\times[0,T]\to\mathbb R^3
Ψ:R3×[0,T]→R3来描述上述过程(图2b)。预测的时刻t位置为
p
\bold p
p的点的占用值
o
^
θ
,
θ
^
(
p
,
t
)
\hat o_{\theta,\hat\theta}(\bold p,t)
o^θ,θ^(p,t)由下式给出:
Ψ
θ
^
\Psi_{\hat\theta}
Ψθ^指的是依赖于速度网络
v
θ
^
(
⋅
,
⋅
)
\bold v_{\hat\theta}(\cdot,\cdot)
vθ^(⋅,⋅)参数的逆变换。
式(7)的含义是, Ψ \Psi Ψ把处于时刻t、空间位置 p \bold p p的点映射回t=0的空间中,然后ONet在t=0的坐标系中判定这个位置是否在3D形状轮廓内。
\quad
为了实现4D重建,网络需要以额外的输入
x
\bold x
x为条件,例如一个图像序列或者点云序列。令
f
θ
x
(
⋅
)
f_\theta^{\bold x}(\cdot)
fθx(⋅)和
v
θ
^
x
(
⋅
,
⋅
)
v_{\hat\theta}^{\bold x}(\cdot,\cdot)
vθ^x(⋅,⋅)分别代表有条件的占用和速度网络。预测的占用值
o
^
θ
,
θ
^
(
p
,
t
,
x
)
\hat o_{\theta,\hat\theta}(\bold p,t,\bold x)
o^θ,θ^(p,t,x)(在有条件的输入
x
\bold x
x下、时刻t、3D点
p
\bold p
p)由下式给出:
这里全文翻译成有条件的,condition,指的就是伴有图像序列或点云序列输入的模型。
这里输入 x \bold x x的作用就是一个样本包含多个时间上相关的小样本,例如一个样本是一段视频,里面包含连续的视频中的几帧。
模型可以通过二进制交叉熵误差BCE(在
τ
\tau
τ时刻下,3D点
p
\bold p
p,预测的占用
o
^
\hat o
o^和观察到的(实际)占用o之间的BCE):
B
\mathcal B
B代表一个mini-batch,其中包括来自多个时间实例
τ
\tau
τ的多个序列的样本。
式(9)表示的是 τ \tau τ时刻下,点 p \bold p p预测的占用值和实际占用值的BCE,其实就是描述你映射到 τ \tau τ的点是不是都落在真实3D形状内,可以表示形状预测的准确性,所谓重构损失。
BCE损失适用于二分类,正好对应于ONet的输出,占用值是0或者1。
这个损失,在训练的时候应该是,对于一个序列 x \bold x x,每一个时刻 τ \tau τ的所有的点 p \bold p p都比一遍占用值o,然后再去计算下一个序列。
这个loss只负责把当前时刻 t = τ t=\tau t=τ的点映射回t=0,然后比一下o值,只管形状准不准。
\quad
需要注意的是,训练我们的模型不需要跨时间的任何对应。如果可行的话,额外的相关信息可以被合并(图2a),通过传递3D点
p
\bold p
p从t=0到t=
τ
\tau
τ,使用前向流forward flow
Φ
(
p
,
τ
)
\Phi(\bold p, \tau)
Φ(p,τ)(式(3))。相关性损失函数最小化时刻
τ
\tau
τ下的预测位置
Φ
θ
^
x
(
s
(
0
)
,
τ
)
\Phi_{\hat\theta}^\bold x(\bold s(0),\tau)
Φθ^x(s(0),τ)和观测位置
s
(
τ
)
\bold s(\tau)
s(τ)之间的L2距离:
s
\bold s
s代表3D点的GT轨迹。
这个式(10)表示了一条以 s ( 0 ) \bold s(0) s(0)为起点的轨迹,被模型映射到 τ \tau τ时刻的位置 Φ \Phi Φ,和真实值 s ( τ ) \bold s(\tau) s(τ)之间的L2距离。并且求的是整个minibatch的平均距离。
这个loss主要是让网络学会准确的形变映射(时变的),也就是对于一段轨迹或片段,模型要能够把一个点从t=0映射到 t = τ t=\tau t=τ,这就是所谓的时间相关性。
追踪的是每个点的轨迹上的对应,对于重构而言,只要整体符合形状要求就行,每个点的轨迹无所谓。但是对于时间相关性而言,需要学习到每个点在运动过程中的轨迹,真正做到1对1的映射。
但是如果每个点的轨迹都学到了,那还要重构loss有什么用?
\quad 通过在时间上向后求解第二个增广常微分方程,可以使用伴随灵敏度方法[12,50]有效地获得(9)和(10)的梯度。这样,内存占用可以保持不变,但是以更长的计算时间为代价。对于自适应常微分方程求解器,可以选择相对和绝对误差容差来平衡时间和精度。有关详细信息,请参阅[12]。
3.3 推理
\quad
对于一组新的观测
x
\bold x
x,预测时变的3D形状,以t=0时刻作为第一个重建的形状,接下来传播这个t=0时刻的重构到未来
t
∈
(
0
,
T
]
t\in(0,T]
t∈(0,T],来预测后面的3D形状。while可变的形状表示用到我们的方法中来,我们使用多分辨率等值面提取(MISE)方法来从ONet
f
θ
f_\theta
fθ在t=0的预测结果获取一个网格
M
0
=
(
V
0
,
F
0
)
\mathcal M_0=(\mathcal V_0,\mathcal F_0)
M0=(V0,F0)。
V
0
,
F
0
\mathcal V_0,\mathcal F_0
V0,F0分别代表网格mesh的节点verticals以及面faces。对于后面的时间步t,我们使用训练好的速度网络
v
θ
^
\bold v_{\hat \theta}
vθ^,通过求解式(3),来获得
V
0
\mathcal V_0
V0中所有verticals
p
i
\bold p_i
pi的前向变换
Φ
θ
^
(
p
i
,
t
)
\Phi_{\hat\theta}(\bold p_i,t)
Φθ^(pi,t)。时刻t的mesh表达式如下:
请注意,网格在推理过程中只需要提取一次。因此,与在每个时间步独立提取网格的朴素解决方案相比,大量的时间步长的推理要快得多。此外,即使在训练期间仅使用重建损失 (9),我们也隐含地获得了时间相关信息(即网格顶点随时间相关)。
这段大致意思是,因为物体不会大变形,所以只在t=0时刻提取一次网格就行了,并且随后这个网格上的verticals和faces会跟着粒子的形变映射 Φ \Phi Φ一起变化。但是这与推理有什么关系?
Idea,能不能把这种方法拓展到流体中?或者爆炸物?
3.4 实施细节
\quad
对于占用网络和速度网络,我们使用全连接的基于 ResNet 的 [26] 架构,如图 3 所示。
图3:速度网络架构。绿色表示输入,青色表示全连接层,灰色表示其他操作。占用网络架构是相似的,除了输入点维度是 3(无时间轴),输出是维度 1 的占用概率,并且使用条件批量归一化 [16, 18] 代替添加操作并且以输入 x 为条件。
\quad
为了在长度为L的观测序列
x
=
(
x
i
)
i
=
1
,
2
,
…
…
,
L
\bold x=(\bold x_i)_{i=1,2,……,L}
x=(xi)i=1,2,……,L调节ONet网络
f
θ
x
f_\theta^\bold x
fθx和速度网络
v
θ
^
x
\bold v_{\hat\theta}^\bold x
vθ^x,我们使用两个分开的编码网络
g
θ
s
(
x
1
)
g_\theta^s(\bold x_1)
gθs(x1)和
g
θ
^
t
(
x
)
g_{\hat\theta}^t(\bold x)
gθ^t(x),前者是空间编码器,仅仅施加到第一个观测值
x
1
\bold x_1
x1,后者是时间编码器,施加到整个长度为L的观测序列
x
\bold x
x上。输入
x
\bold x
x可以使一个图像序列,
x
i
\bold x_i
xi代表序列中的第i张图片。我们使用空间编码器的输出来在
x
\bold x
x上调节ONet,我们使用时间编码器的输出来在
x
\bold x
x上调节速度网络
v
θ
^
x
\bold v_{\hat\theta}^\bold x
vθ^x。对于空间编码器,如果输入是点云序列,就用PointNet,如果是图像序列,就用Resnet-18。对于时间编码器,如果输入是图像序列,我们采用一个调整过的adjusted PointNet架构,输入是3×L的;如果是点云序列,就用3D卷积网络。
空间编码器的描述,只作用在第一个观测值上,只对初始形状进行编码;
时间编码器, 作用在整个序列上。
4 实验
\quad
我们进行了四种不同类型的实验来研究我们方法的有效性。首先,我们通过训练再现复杂的 3D 运动来评估基于矢量场的表示的表示能力。我们通过在一系列图像或噪声点云上调节网络来进一步研究我们表示的重建能力。随后,我们分别研究了两个mesh和点云的插值和相关性。最后,我们检验了生成能力,通过训练VAE并且考察了隐性表征的质量。
\quad
Baseline。拓展ONet到4D上,作为最原始的基线。ONet4D在时空上是连续的,并且能够增强3D物体表示的复杂性。然而,ONet 4D获取网格信息是耗时的,因为每一帧都要获取一次网格,并且没有产生时间上的关联性。另一个baseline,我们拓展了点集生成网络PSGN到4D上,通过预测一系列的轨迹,而不是单个点。为了公平比较,我们训练PSGN 4D分别在考虑和不考虑时间相关性上。如果考虑时间相关性,我们在每个时间步都独立地评估Chamfer-loss;如果不考虑时间相关性,我们引入了一个推广的Chamfer-loss,它考虑了点的整个轨迹,而不是每个时间点上的独立3D位置。
\quad
在形状匹配和插值实验上,我们对比了最近邻匹配法,Coherent Point Drift CPD,3D-Coded [24](这是寻找人体形状之间对应关系的SOTA)
\quad
数据集。我们使用Dynamic FAUST (D-FAUST) [9],其中包含了10个真人表演各种动作的129个序列的扫描和网格。D- FAUST是非常具有挑战性的,不仅由于人体的精细结构,而且它的非刚性复杂的运动,包括软组织运动。由于每个序列相对较长(多达1251个时间步),为了增加数据集的大小,我们根据实验的不同,将每个序列细分为17到50个时间步的较小片段。我们将所有序列随机分为训练(105)、验证(6)和测试(9)序列,以便在训练中未看到的个体和动作组合上评估模型。此外,我们保留了一个个体(12个序列)来测试个体间的泛化能力。
\quad
由于缺乏时变非刚性三维几何体的公共可用数据集,我们进一步介绍了Warping Cars,这是一个Cars大规模变形的合成数据集。它允许检查我们的方法在非人类的其他类型的变形对象上的性能。为此,我们利用ShapeNet[11]“car”类别并应用随机位移场来获得连续的翘曲运动warping motion。数据生成的细节在补充材料中。
\quad
度量。我们使用体积IoU和Chamfer距离来评估每个时间步长的重建。我们参考[38]对这些指标进行了深入描述。为了评估估计对应的质量,我们引入了如下对应距离:
K
K
K个点
p
(
k
)
(
0
)
,
k
∈
{
1
,
…
…
,
K
}
\bold p^{(k)}(0),k\in\left\{1,……,K\right\}
p(k)(0),k∈{1,……,K},他们在t=0时刻的输出被匹配到GT网格上的最近邻点
p
G
T
(
k
)
(
0
)
\bold p^{(k)}_{GT}(0)
pGT(k)(0)。然后我们在GT网格上找到在
t
=
τ
t=\tau
t=τ时刻
p
G
T
(
k
)
(
0
)
\bold p^{(k)}_{GT}(0)
pGT(k)(0)对应的点
p
G
T
(
k
)
(
τ
)
\bold p^{(k)}_{GT}(\tau)
pGT(k)(τ)。同样地,我们在输出中找到与
p
(
k
)
(
0
)
\bold p^{(k)}(0)
p(k)(0)对应的点
p
(
i
)
(
τ
)
\bold p^{(i)}(\tau)
p(i)(τ)。在时刻
t
=
τ
t=\tau
t=τ的对应的L2距离就是定义为
p
(
k
)
(
τ
)
\bold p^{(k)}(\tau)
p(k)(τ)与
p
G
T
(
k
)
(
τ
)
\bold p^{(k)}_{GT}(\tau)
pGT(k)(τ)的平均L2距离。
为什么 p ( k ) ( 0 ) \bold p^{(k)}(0) p(k)(0)对应的是 p ( i ) ( τ ) \bold p^{(i)}(\tau) p(i)(τ)?而后面说L2距离,又用的 p ( k ) ( τ ) \bold p^{(k)}(\tau) p(k)(τ)?提到了平均L2距离,为什么要用i呢?这个需要看他的代码了。
注意L2距离只能用在我们这种方法中,产生随时间变化的响应,对于ONet 4D不行。与[20,38]类似,我们使用对象边界框最大边长度的1/10倍作为单位1。
4.1 表示能力
\quad
本实验中,我们考察我们的OFlow模型表示3D动作的能力。特别地,我们想要验证时间编码器
g
θ
^
t
\bold g_{\hat\theta}^t
gθ^t和空间编码器
g
θ
s
\bold g_{\theta}^s
gθs的作用。为了实现这个目标,我们训练网络来重构复杂的3D动作,在没有任何额外输入
x
\bold x
x的情况下。
\quad
对于训练,我们从D-FAUST数据集的训练分割中选择3个长度为50的序列,我们(单独)仅使用
L
r
e
c
o
n
\mathcal L_{recon}
Lrecon损失训练我们的网络。随后与ONet 4D比较。
\quad
该实验的结果如图 4 所示。我们看到我们的方法学习了变形 3D 几何的准确表示,产生了与 ONet 4D 相似的 IOU 和 Cham-fer 值。然而,与 ONet 4D 相比,我们只需为 t = 0 提取一次网格,然后我们通过求解时间相关的 ODE 及时向前传播其顶点,从而加快推理速度。此外,虽然 ONet 4D 和我们的方法都成功地学会了表示复杂的 3D 运动,但只有我们的方法会随着时间的推移产生对应关系。
图 4:表示能力。相关性以相同的颜色显示。虽然 ONet 4D 和 OFlow 都成功地学会了表示复杂的 3D 运动,但只有 OFlow 会随着时间的推移产生对应关系,这也会导致更快的推理。我们展示了所有 50 个时间步的推理时间,无论有无考虑MC绘制时间。
这个图的意思,首先精确度上,二者差不多,但是OFlow的时间快了20倍,并且,OFlow的图是彩色的,意味着,每一个点之间都产生了时间上的关联信息。
4.2 4D点云补全
\quad
在第一次重建实验中,网络的输入是 300 个离散点轨迹,每个轨迹由 L = 17 个时间步长组成。我们用标准差为 0.01 的高斯噪声扰动点云。例如,一个真实世界的场景是来自一组标记的(嘈杂的)运动捕捉数据。
\quad
我们只用
L
r
e
c
o
n
\mathcal L_{recon}
Lrecon式(9)训练模型,不会产生相关性联系。此外, 我们考察了同时用重构损失和基于相关性的损失
L
c
o
r
r
\mathcal L_{corr}
Lcorr式(10)的效果。
\quad
我们和ONet 4D以及PSGN 4D相比较。公平起见,我们训练所有的方法都用相同的基于ResNet的PointNet(3.4节)作为时间编码器。我们没有为ONet 4D和PSGN 4D使用额外的空间编码器,因为这两种方法都不能表示形状和运动的分离。
这个空间编码器,以及shape and motion disentangled,是什么关系呢?
\quad
表1和图5总结了D-FAUST数据集的定量和定性结果。我们发现,与PSGN变体和ONet 4D相比,OFlow在IOU方面优于ONet 4D,并实现了最低的Chamfer距离。这令人惊讶,因为PSGN是在Chamfer距离上明确训练的,而OFlow不是。在两种损失情况下,OFlow训练达到最低对应L2-距离。有趣的是,即使在训练过程中没有使用任何相关性,仅使用重建损失进行低训练的OFlow也只实现了稍差的相关性损失。相比之下,在训练期间不使用任何相关性的PSGN变体不会学习有意义的对应。这表明,随着时间的推移,我们的向量场表示有助于学习对应关系。定性上(图5),我们观察到OFlow学习真实的3D运动,而ONet 4D没有。PSGN也能够重建三维运动,但缺乏空间连通性。
表1:4D点云补全(D-FAUST)。这些表显示了D-FAUST数据集上4D点云完成实验的定量结果。我们报告了体积IoU(越高越好)、Chamfer距离(越低越好)和对应关系L2-距离(越低越好)适用于训练期间看到的个人和看不见的个人。
图5:4D点云补全。我们展示了OFlow(w /correspond)的输入和输出在0和1之间的三个等距时间步长,ONet 4D和PSGN 4D(w /correspond)。第一种方法的颜色编码说明了跨时间的对应关系。
\quad
Warping Cars 数据集的定量结果如表 2 所示。我们看到 OFlow 在非常不同的领域也能很好地工作,并实现了最佳的 IoU 和对应的 L2 距离。
表 2:4D 点云补全(warping汽车)。该表显示了在warp汽车数据集上进行 4D 点云完成实验的定量结果。
4.3 从图像序列中重构
\quad
在这个实验中,我们将一系列单视图图像的 4D 重建视为观察
x
\bold x
x。所有方法中时间编码器用的是3.4节提到的架构。
\quad
在表 3 和图 6 中,我们提供了定量和定性结果的总结。与 [38] 和其他人类似,我们观察到从单视图图像序列重建比 4D 点云完成更难。我们怀疑全局图像编码和遮挡是主要挑战,因为视点是随机采样的剪辑,有时会导致运动在图像中不可见。定量性能差异类似于点云实验。图 6 中的定性结果表明,虽然 OFlow 可以相当好地从提供的序列重建复杂的 3D 运动,但其他方法很难做到这一点。它表明 OFlow 的解开的形状和运动表示会导致更好的重建并使网络偏向于物理上合理的运动。
这里再次出现了disentangled shape and motion representation的描述,何谓disentangled?指的是形状和运动的解耦表示方法?
表 3:从图像进行 4D 重建 这两个表总结了从图像序列进行 4D 重建的定量结果
图 6:单图像 4D 重建。我们展示了 OFlow、ONEt 4D 和 PSGN 4D 的输入和输出的 0 和 1 之间的三个时间步长。与图 5 类似,颜色编码说明了对应关系。
4.4 插值以及网格相关性
\quad
接下来两个实验的目标是研究我们的方法在多大程度上可以用于形状匹配和插值。在这两个实验中,任务都是在两个随机采样的点云的底层表面之间找到一个连续的变换。我们仅使用相关性损失 (10) 来训练我们的模型,因为在此设置中不需要恢复 3D 形状。
\quad
我们首先评估我们的方法学习到的相关性的质量。我们在 D-FAUST 数据集上使用与以前相同的拆分。我们与最近邻匹配、非刚性 [43] (CPD) 和专门的最先进的基于学习的方法 3D-Coded [24] 进行比较。虽然前两个在第二个点云中找到最近的邻居或 GMM 质心的最佳拟合,但后者学习到人类模板模型的映射。对于最近邻匹配、OFlow 和 3D-Coded [24],我们使用两个随机采样的大小为 10, 000 的点云作为输入。由于 Coherent Point Drift [43] 直接匹配点集,我们没有通过使用随机点云获得该方法的竞争结果,因此在这种情况下我们使用了完整的顶点集。为了遵守社区标准 [8],我们将不在表面上的预测点投影到最终网格上进行评估。
\quad
我们的结果如表 4 所示。尽管我们的方法主要关注 4D 重建,但我们发现它也估计了高质量的对应关系,优于最近邻和 CPD 基线。虽然它的性能比 3D-Coded 差,但 OFlow 只需要其推理时间的一小部分。此外,我们注意到 3D 编码是一种高度专业化的匹配方法,包括对每个配准进行昂贵的微调,而我们的方法是一种通用的 4D 重建方法,它隐式地估计对应关系。
表 4:形状匹配。此表显示了 D-FAUST 数据集上点云的形状匹配结果
\quad
为了评估 OFlow 的插值能力,我们将序列长度 L 从 17 增加到 30,并与线性插值基线进行比较。对于OFlow,我们预测前向和后向运动并对结果进行平均。对于这两种方法,我们评估所有30 个时间步长的对应关系L2-距离。
\quad
定量和定性结果如图 7 所示。
图 7:插值。该图显示了OFlow和线性插值基线的定量和定性比较。 Occupancy Flow 能够更好地捕捉非刚性 3D 形状的非线性运动。
我们观察到 OFlow 改进了线性插值基线,因为它能够捕获非线性运动。
5 结论
\quad 在这项工作中,我们介绍了 Occupancy Flow,这是一种新颖的 4D 表示随时间变化的 3D 几何图形。与现有的 4D 表示相比,它不使用模板模型,在空间和时间上是连续的,并产生隐含的时间对应。我们的实验验证了它可以有效地用于形状匹配和插值、4D 重建和生成任务。因此,我们相信OFlow是一种有用的表示,可以用于各种时空任务。