杨天宇 谭台哲 王俊锴
摘要:随着三维点云数据在计算机视觉任务的逐渐流行,合成或重建高分辨率、高保真点云的能力变得至关重要。虽然深度学习模型最近在点云识别和点云分类任务中取得了成功,但点云生成任务还困难重重。本文提出了一种基于流模型的点云生成模型,使用深度学习技术训练好该模型之后,只需要从简单的高斯分布随机采样数据,然后通过我们的模型就可以产生全新的高质量的点云形状。基于我们模型生成的点云的质量比大多数现存的模型都要好,可以为其他一些任务提供很好的先验点云,比如三维重建、点云补全任务。
关键词:点云;生成模型;流模型 ;深度学习;先验点云
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2021)30-0033-04
开放科学(资源服务)标识码(OSID):
3D Point Cloud Generation Method Based on Flow Model
TAN Tai-zhe, YANG Tian-yu, Wang Jun-kai
(School of computers science, Guangdong University of Technology, Guangzhou 510006, China)
Abstract: With the gradual popularity of 3D point cloud in computer vision tasks, the ability of high-fidelity point cloud to be synthesized or reconstructed gradually. Although the deep learning model has recently proposed a stream model-based point cloud generation model in point cloud recognition and point cloud classification tasks, after training the model using deep learning technology, it only needs to randomly sample data from a simple Gaussian distribution. Then we can generate a new estimated point cloud shape through our model. The quality of the point cloud generated based on our model is better than most existing models. It can provide a good prior point cloud for some other tasks, such as 3D reconstruction, and point cloud completion tasks.
Key words: point cloud; generative model; flow based model; deep learning; prior point cloud
1 引言
随着点云在自动驾驶、三维建模,考古与文物保护等任务的流行,研究点云成为了一种趋势。目前点云分类任务和点云目标检测任务已经取得了不错的成绩,然而,点云生成任务还比较少的研究。Diego等人在2019年提出了tree-GAN模型[8],运用GAN来做点云生成,但是训练起来非常困难,不能生成指定的点云。P Mandikal在2019年的WACV通过编码器-解码器结构的网络生成稀疏的点云,但是其在密集点云的生成任务表现不佳。自从基于流模型的GLOW提出后,研究人员们视线再一次关注到流生成模型。来自康奈尔大学和英伟达的研究人员在2019ICCV提出了三维点云生成模型PointFlow,使得更多的研究人员关注到基于流模型三维点云的生成任务。
2 生成模型
所谓生成模型,就是给定训练数据,我们要生成与该数据分布相同的新样本。假设训练数据服从分布,生成样本服从分布,生成模型的作用就是使得这两个分布 和尽可能的相似。所以生成模型的本质就是希望用一个我们知道的概率模型来拟合给定的训练样本,即我们能够写出一个带参数θ的分布。深度神经网络作为万能的函数拟合器,却不能够随意拟合一个概率分布,因为概率分布有“非负”和“归一化”的要求。为了解决这个问题,研究学者们提出了四种生成模型:自回归模型、变分编码器、对抗生成网络、流模型。
2.1 自回归模型
自回归模型在PixelCNN和PixelRNN上展示了很不错的实验效果,但是由于是按照像素点去生成图像导致计算成本高,在可并行性上受限,在处理大型数据如大型图像或视频是具有一定麻烦的。
2.2 变分自编码器(VAE)
VAE是在自编码器的基础上让图像编码的潜在向量服从高斯分布从而实现图像的生成,优化了数据对数似然的下界,VAE在图像生成上是可并行的,但是VAE存在着生成图像模糊的问题。VAE的优势在于小样本学习,他专注于从给定集合中生成新的样本[3]。
2.3 生成对抗网络(GAN)
GAN抛弃具体的密度分布模型,只要样本的特征。通过博弈来训练一个分布函数得到符合的很好的样本特征。GAN在图像生成任务中比较有优势,在很多GAN的拓展工作中也取得了很大的提高。但是GAN生成的样本多样性不足以及訓练过程不稳定是GAN普遍存在的问题,同时GAN没有潜在空间编码器,从而缺乏对数据的全面支持。
2.4 流模型
在使用深度学习训练网络的时候,似然对数函数
基于流的生成模型总结一下具有以下优点:
a)精确的潜在变量推断和对数似然评估,在VAE中编码后只能推理出对应于数据点的潜在变量的近似值。在像Glow这样的可逆生成模型中,可以在没有近似的情况下实现潜在变量的精确的推理,还可以优化数据的精确对数似然,而不是其下限[5]。
b)高效的推理和合成,自回归模型如PixelCNN,也是可逆的,然而这样的模型合成难以实现并行化,并且通常在并行硬件上效率低下。而基于流的生成模型如Glow和RealNVP都能有效实现推理与合成的并行化。
c)自回归模型的隐藏层有未知的边际分布,使其执行有效的数据操作上很困难;由于GAN没有编码器,所以很难表征完整的数据分布。基于流的模型能够学习高维数据中的复杂依赖关系,并学习语义上有意义的潜在空间,实时生成大量合成样本。
3 流模型在点云生成的应用
流模型现在已经很成熟的应用在图像生成任务上,并且效果也还不错比如OpenAI在2018的NeurIPS提出的GLOW模型[5]。而将流模型运用在点云生成任务上的研究相对比较少。来自康奈尔大学和英伟达的研究人员在2019ICCV提出了一种基于流模型的三维点云生成模型PointFlow,这是流模型第一次应用在点云生成任务[3]。PointFlow通过为分布的分布建模,分别建立物体形状的分布和给定物体的点云的分布,以此来完成对于物体点云的生成任务。为了生成点云,作者对分布的分布进行建模,也就是说不仅需要为形状分布进行建模,同时需要对特定形状下的点云进行建模。研究人员通过先验分布点的可逆参数化变换代替了直接对点云分布的建模。这意味着在给定模型的情况下,首先从通用的高斯先验中进行采样,而后基于参数变换将他们移动到与目标形状对应的新位置,使得参数化的变化和变量的分布都可以利用这一模型进行描述。更重要的是,这种模型还带来了更强大的表达能力。在可以估计概率密度、提升变分下限的同时,还可以避免由GANs带来的复杂训练。但是PointFlow有着它的缺点,一是训练时间非常久;二是对于稀疏的点云,生成效果不是很好。
基于PointFlow的不足,我们提出了一种改进的模型。我们同样使用连续归一化流来为给定形状下点的分布进行建模。连续归一化流可以视为三维欧式空间中的向量场,它可以通过对某一通用的先验分布进行转换(例如高斯分布)推导出点云的分布。连续归一化流是一系列可逆的映射,可以将已知的初始化分布映射到更为复杂的分布上去。
3.1 点云生成过程
我们的目标是生成点云,根据图1将我们的模型网络结构设计如图2。首先,从高斯分布里面随机采样M个数据y1,y2,…,yM。每个数据表示一个点云,并且他们各自包含有对应点云的x轴、y轴和z轴坐标。然后将这M个点云通过可逆的网络g,网络g就会移动这些点云位置,从而获得新的点云。因为同一个类别的点云会有不同的形状,比如飞机这个类别就有客机,战斗机等等,所以为了使我们的模型产生不同形状的点云,我们使用一个高维度的隐变量S来控制生成点云的形状。我们从高斯分布里面随机采样数据(采样的数据维度和S相同),然后将采样的数据送入可逆的网络f,这样就可以获得一个S。接着将S送入网络g就可以生成不同形状的点云。
3.2 网络训练过程
根据图2可知训练的过程和点云生成的过程是逆向的。我们想要从熟知的高斯分布生成点云,而点云所处的分布非常复杂且我们还不知道表达式。这时,我们借助于数据集的点云,从点云采样数据,然后逆向通过可逆网络g和可逆网络f,只要这样产生的分布和高斯分布一样,则可逆网络g和可逆网络f训练完成。如图3,训练过程我们分成2个分支,分支1(图2的上部分):首先把从数据集获得的点云数据采样M个点。将这M个点通过一个编码器获得隐变量S,然后将S喂入可逆网络f-1产生S`,f-1训练目标是使得S`和从高斯分布采样得到的高维向量尽量接近。分支2(图3的下部分):可逆网络g-1的训练目标是将之前从数据集点云数据采样的M个点移动到新的位置,使得他们和从高斯分布采样的点的位置尽可能的接近。受到图像分类任务的启示,我们对从数据集点云数据采样的M个点进行数据增强,具体来说就是对每个采样到的点随机加一下噪声扰动。得益于流模型的可逆性带来的似然计算,我们的网络可以端到端稳定地训练。训练结束后,我们就可以获得编码器、可逆网络f-1和可逆网络g-1的参数。
4 实验
与大多数做点云生成的任务一样,我们使用ShapeNet核心数据集中的三种不同类别(飞机、椅子和汽车)进行实验,每个类别分别训练。在模型训练阶段,我们随机从点云形状采样2048个点作为训练样本,使用2张2080ti GPU进行训练。一共训练了15000个轮次。
4.1 实验结果
图4展示了基于我们模型的点云生成的大致过程。最左边是从高斯分布随机采样的点云,最右边是我们模型最终生成的点云。从左往右展示了点云的生成过程。上面的是汽车,中间是椅子,下面的是飞机。
图5展示的是从我们模型生成的一些新样本。第一行飞机,第二行汽车,第三行椅子。从图中我们知道,模型可以生成不同形状的点云,比如飞机类别,可以生成客机或者战斗机,机翼的大小和方向也不同,尾翼形状也各异。再看椅子类别,或是生成靠背的椅子,或是生成沙發,或是不带扶手,或是带扶手的。椅子的凳脚也是各种样式。
4.2 模型评估
我们使用由Lopez-Paz和Oquab[7]提出的1-NNA来评估我们的模型性能。1-NNA的理想分数为50%。为了计算1-NNA,可以使用两种不同的距离度量,倒角距离(CD)和运土距离(EMD)来测量点云之间的相似度。1-NNA的生成结果如表1所示。
从表1我们可以看出,我们的模型是全面优于的r-GAN,在飞机和椅子类别上,也优于PointFlow。在汽车类别中,我们略差于PointFlow,但是优于r-GAN。
5 结语
在本文中,我们介绍了一种基于流模型的点云生成框架。通过实验证明,我们只需要使用简单的高斯分布采样,让样本通过我们的模型之后就可以产生高质量的样本。我们提出的基于流模型的点云生成模型性能比其他的方法效果好很多,甚至逼近目前最先进的方法。未来的工作我们考虑将我们的模型应用在单个图像重建点云。
参考文献:
[1] Chen T Q, Rubanova Y, Bettencourt J, et al. Neural ordinary differential equations. In Advances in neural information processing systems, pp. 6571–6583, 2018.
[2] Tian Qi Chen, Yulia Rubanova, Jesse Bettencourt, and David K Duvenaud. Neural ordinary differential equations.In NeurIPS, 2018.
[3] Yang G D,Huang X,Hao Z K,et al.PointFlow:3D point cloud generation with continuous normalizing flows[C]//2019 IEEE/CVF International Conference on Computer Vision (ICCV).October 27 - November 2,2019,Seoul,Korea (South).IEEE,2019:4540-4549.
[4] Valsesia, Diego, Fracastoro, Giulia, Magli, Enrico. Learning Localized Generative Models for 3D Point Clouds via Graph Convolution,In ICCV019.
[5] Kingma D P, Dhariwal P. Glow: Generative flow with invertible 1x1 convolutions. In Advances in Neural Information Processing Systems, 2018: 10215-10224.
[6] Panos Achlioptas, Olga Diamanti, Ioannis Mitliagkas, and Leonidas Guibas. Learning representations and generative models for 3d point clouds. In ICML, 2018.
[7] Lopez-Paz D,Oquab M.Revisiting classifier two-sample tests[EB/OL].2016:arXiv:1610.06545[stat.ML].https://arxiv.org/abs/1610.06545
[8] Shu D,Park S W,Kwon J.3D point cloud generative adversarial network based on tree structured graph convolutions[C]//2019 IEEE/CVF International Conference on Computer Vision (ICCV).October 27 - November 2,2019,Seoul,Korea (South).IEEE,2019:3858-3867.
【通聯编辑:唐一东】