pdf code

PointFlow : 3D Point Cloud Generation with Continuous Normalizing Flows

这篇论文有一个project page,根据视频完成的一个任务可以这样描述。每一个物体的一种点云表达可以理解为从一个由形状决定的概率分布采样点。我们可以利用一个坐标转换函数,将高斯采样点云转换为最后的输出。本文给出的网络可以根据类别,以及一些随机数,采样出不同形状的一个坐标转换函数。

Background: Continuous normalizing flow

定义指代一系列的可逆变换。输入隐变量的概率分布为.作为输出。输出变量的概率密度则变为 这样可以从使用inverse flow计算:.

这里在这里实体化作为神经网络,这样导数的行列式计算难度不大。

continuous normalizing flow(CNF) for 就是

inverse flow .这里的仍然是一个神经网络,用ODE求解器作为输出。这里的关键思维转变是利用了,Neural Ordinary Equation的思路,将连续叠层的共享权重的神经网络用常微分方程代替.用这个neural ODE的一个重点是使得逆变换可以同样通过ODE时间上相反的一个forward pass实现。

Variational auto-encoder

原文.VAE中,是latent space,包含一个描述作为decoder,还学习一个encoder,它们共同训练去最大化观察器的log-likelihood

.这个均值与方差都是网络直接的输出。

本文提出的方法

首先包含三个模块,第一个是encoder,,将点云编码为一个隐变量,一个先验 over shapes.然后一个decoder, .

point generation from shape representations

具体来说,一个在集合中的点,是使用CNF conditioned on ,转换的结果,也就是neural ODE的forward pass。

这里定义为flow 的连续动力学。 with

Flow-based 先验 over shapes

回顾KL-divergence(相对熵),

forward时:

最终training 目标

ELBO:VAE目标

可以分解为三个部分

Prior:鼓励大概率,较确定的结果(这里用单次蒙特卡洛采样对那个期望进行估计)

Reconstruction:

Posterior Entropy:

本文模型需要最大化这个目标。

总览

image

进一步细节解释:

图中的为类似pointNet结构的,encoder,是一维卷积,最后全连接输出两个维度的均值与方差预测

使用的是FFJORD,里面使用了三个concatsquash层

处拓展了concatsquash层以使得结果与z相关

image