点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

Part 1  前言

在探讨3D 点云补全专题前,先介绍三个概念:

  • 概念一:partial observation,一个观测或一个侧面观测全面的过程,很多时候比较具有误导性。点云补全也是从某一个侧面恢复到整体的一个过程。

  • 概念二:3D imagination。对于整个3D世界的想象力,其深深植根于我们脑海中。

  • 概念三:LiDAR sensor,一种新的传感器。新一代的 iphone 除了普通的相机传感器之外,更多搭载雷达传感器。这种雷达传感器能够感知周围世界的深度信息,获取包含3D信息的点云数据,如这个椅子的距离信息,而不仅仅是 2D RGB 图像的一个像素值。

 

综合以上三个概念,首先是 partial observation 片面的观察。这个世界上到处都是片面的观察,如何才能获取真相?- 通过 3D 的想象力,从片面的观察中获得这个世界的真相。这个世界是如何表征 3D?- LiDAR sensor,即通过手机或其他设备中的雷达传感器。

明确了这三个概念后,正式进入到 3D 点云补全专题。

Part 2  基于 2.5D 残缺点云的学习增强关系性结构高质量 3D 点云补全方法

2.1 背景&价值

神经学家、视觉科学家 David Marr 从人眼的构造和感知这个视角定义视觉。他认为视觉就是由图像(换言之,即由人眼的视网膜成像)描绘 3D 世界,并确定其中各个物体的方位。

基于此,他提出了一个经典的 3D 世界框架。由 2D RGB 图像出发,先通过表面朝向和深度值的不连续性提取前景物体,从而得到 2.5D,再进一步拓展成为 3D 物体。其中 2D 和 2.5D 都与视角相关,而 3D 模型是以物体为中心的。由某一特定视角观察物体,会得到落在 2D 平面上的 RGB 彩色信息和具有部分深度感知的 2.5D 信息。而 3D 物体客观存在于 3D 世界中,与观察视角无关。

David Marr 提出一个本质问题,人是如何观察感知 3D 世界?

抛去 2D 的纹理和 RGB 彩色信息,我们感知 3D 世界的方法与盲人摸象非常类似:有的人摸到了耳朵,认为看到了扇子;有人摸到象腿,认为看到了大树。于是我们理解到这样类似盲人摸象的问题——由局部的观测推测全局的形态,或由部分的形状恢复完整的形状,都是非常困难的。

随着近年来视觉硬件的高速发展,一系列深度感知设备比如激光雷达、RGBD 相机可以直接获取物体的深度信息。它们也被广泛地应用于计算机、视觉机器人、增强现实和虚拟现实等相关应用中,甚至我们的手机、笔记本电脑中都包含深度相机。

然而,由单一视角或少量视角扫描出的物体往往是残缺不全的,即 David Marr 所提出的视角相关的 2.5D。比如,无人车项目背景下的 Kitti 数据集中,有很多激光雷达扫描的残缺车辆;室内场景重建项目背景下的 ScanNet 数据集中,也有很多通过深度相机采集得到的残缺的椅子和桌子。这些形状上的缺损,极大地限制了视觉和 AI 的感知能力,所以研究人员在尝试解决点云补全这个任务。该任务旨在从部分观测到的点云形状信息(2.5D)恢复完整的物体形态形状信息(3D)。

点云补全对下游任务或多种相关任务有很多益处。第一篇文章佐证了同时实施点云补全和物体检测,可以互相裨益、相辅相成。这是针对 3D 场景的任务和工作。

 

第二篇文章应用点云补全最终实现了衣物的 3D 网格的构建。这是针对与 3D 人体相关的任务和工作。类似的工作还有很多,包括人体重建、无人车感知、机器手抓取等等。

点云补全就是希望基于观察到的残缺不全的点云生成完整的 3D 点云。

2.2 补全方法

我们尝试对比残缺点云和完整点云:顾名思义,残缺点云有缺失的部分,表面上的点分布不均匀(近密远疏);而且,它只是部分保留了局部特征;一个残缺点云可能是多个不同点云的一部分。而我们的终极目标是, 生成一个全局看无缺失、局部看分布均匀的完整点云。注意,点数相同时,均匀分布的点云更有助于生成高质量的 CAD 模型。

那么对于点云补全方法,可以从人对世界的感知来理解。当看到一个熟悉物体的一部分,比如此时此刻正坐着的椅子,我们可能很容易地从脑海里想象出它的全貌,甚至包括各种视角下它的形态。原因主要是我们都有记忆存储,于是我们得到方法一:“我曾经见过”。对应的就是辨识和检索获取,这也是之前很多方法停留的阶段。

然而我们的记忆和感知是有限的。如果见到一个新的椅子形状感觉有点奇怪,但因为只看到它的一部分,我们可能会认为它的另一侧也许和我看到的这一侧相似,甚至于还可以基于我们对椅子的理解来推测。诸如椅子应该有椅腿、椅面、椅背,可能还有一对扶手。于是,方法二:“我推测它是…”。该方法主要是针对相关联的结构,诸如各种对称、阵列来实现点云补全,类似条件性生成。

如果看到的椅子缺失太多,无法辨识并且用于推断的线索太少,那么基于先验知识我们可以猜想出多个合理的完整椅子,即方法三:“我猜想它可以是…”。所以,即使点云残缺严重,我们也能生成多个不同且合理的完整形状,类似非条件性生成。

从另一个角度来看,点云不全涉及到的相关问题也可以分为三个部分。

  • 高保真的 3D 形状重建。补全的终极目标是恢复的形状整体完整并且局部均匀。

  • 关联性的结构推测可能可以隐式地计算形状自身结构的自注意力(如 attention),或者更进一步地显示加强结构关系(如 knowledge graph)。

  • 多模态的 3D 点云生成,可以尝试生成多个可能的候选方案,然后选出最佳的完整形状。

 

我们聚焦本次分享的 CVPR 文章。本文解决点云补全的问题主要针对学习关联性的结构特征,以还原可信并且高精度的完整 3D 形状。我们提出 VRCNet 有两个阶段,分别是概率性建模和关系性增强

概率性建模为后续的关系性增强提供了基础。这种双阶段的架构设计主要是因为 3D 点云不包含规则的网格,这也给直接提取典型局部特征带来了困难,尤其是对于缺损严重的部分。

这些例子佐证了 VRCNet 并不是简单的检索获取,而是一定程度上从观测到的残缺点云中学到了对称性的结构关系。虽然并不是所有的案例都能成功,但是相比较之前的方法,会发现这些成功的结构性生成的结果时,非常振奋人心。

 

2.3 贡献

  • 提出了VRCNet在增强结构关系以完成点云补全。

  • 设计了多个基于关系性的模块以自适应地支持点云学习,并且这些模块可以被广泛地应用到不同的点云学习任务中。

  • 生成了一个大规模多视角残缺点云数据集。

  • 丰富的实验结果彰显出 VRCNet 相比较之前方法的优越性。

 

第一个阶段子网络 PMNet,它主要有两个平行路径构成:上面的橘色部分是重建路径,下面的蓝色部分是补全路径。在训练时,下面的补全路径输入残缺点云,上面的重建路径输入对应的完整点云。

重建路径引导补全路径的学习:从高层次的特征分布和低层次的信息流动。在测试时,不再使用重建路径,也不再输入完整点云,所以也就不会有不公平的信息出现。

两个路径的损失函数分别定义如下,

这里先对一系列点云学习模块进行讨论和对比:

PointNet 是 3D 点云最经典的方法,它提出用具有对称性的方程处理未知点云。为了解决局部几何特征的缺失,PointNet++ 用阶层式的分割多个局部点云,然后学习得到具有多尺度的点云特征信息。它相比 PointNet 需要更多的计算资源,也存在一些诸如需要预设搜索半径等小缺点。DGCNN 用图论中与边相关的计算操作可以高效地提取点云特征,缺点是领域图也是不可导的。

所以在相同的计算权重参数计算各种点云信息,尤其是密度和吸收程度不一定的情况下,会较大地限制网络的适应能力。而 KPConv 则针对点云的空间坐标关系计算出不同的权重参数,进行局部临近点的聚合运算。看上去确实更合理,但是低维的空间坐标关系并不能具有足够的能力描述临近点的关联。比如,两个具有相同相对位置的点,完全可能会有不同的语义关系。

介于此,我们受启发与多种 2D 图像中多种关系性学习操作,诸如 self-attention 和transformer 等等,提出了一系列点云的关系性学习模块,如 PSA 和 PSK。它们分别自适应地学习了点云临近关系和调节点云关系域的大小。此外,加上一个残差链接,得到我们构建第二个子网络 RENet 的基本构建单元 R-PSK。

基于我们设计的点云学习模块,再结合类似 U-Net 的经典架构,我们便搭建起 RENet。使用 Unet 结构对 low-level的点云问题,一般会造成效果变差,但是却可以极大地增强网络训练和测试的效率。关于采样方案,我们发现直接使用常见的 Folding 操作往往会造成局部信息的丢失,尤其是做比较大倍率的上采样使局部信息丢失地更加明显。相比较,通过折叠局部的点云临近图(EFE),既提升了点云的分辨率,又较好地保留了点云局部特征。

我们的训练损失函数主要包括两种,KL-Divergence 和 Symmetric Chamfer Distance。加权三部分损失函数包括重建部分重建路径的损失函数、补全路径的损失函数和关系增强网络的损失函数,最终得到了我们总体的损失函数。

 

此外,我们设计并生成了 MVP 点云数据集。如图所示,最直观的优点有三个:

  • 每一个完整点云对每一个完整形状随机采样了26个均匀分布的虚拟相机,从不同的视角采集多样的局部点云。

  • 设置了较高的虚拟相机分辨率,因此获得了更高质量的局部点云形状。

  • 通过使用 PDS 采用的方法相比较 uniform sampling 获得了更高质量的完整点云形状。

 

点云补全的效果图对比如下:

 

点云补全实验结果对比如下:

2.4 结论

  • 提出了一个综合的点云补全框架:先做全局的形状,再增强恢复点云局部细节。

  • 设计和提出了很多新颖且强大的点云学习模块。

  • 构建了 MVP 数据集。

2.5 未来方向

 

Part 3  基于 GAN 逆映射的无监督点云补全

3.1 背景介绍:

全监督的方法通常是利用成对的 partial 以及完整点云的模拟数据进行训练。这类方法在 in-domain data 上能够取得非常好的效果,但也无可避免地带来三个缺点:

  • 在不同的场景下的多种 partial form,由于 domain gap 不能取得很好的泛化效果。

  • Real scan 没有 ground truth,无法进行全监督的训练。

  • Partial observation 通常存在歧义/模糊性,而现有方法只能给出一个完整点云的解。

 

3.2 ShapeInversion 整体效果

这是 ShapeInversion 的整体实验效果,可以用一个训练模型实现所有 partial form,包括 real scan,同时对有歧义的 partial observation 可以给出多解。

3.3 ShapeInversion 框架

ShapeInversion 首次在点云补全任务中引入 GAN 逆映射(GAN inversion)。该方法充分利用预训练的 GAN 中的先验知识,并且不受残缺点云的域影响。如下图所示,一个潜码通过预训练的 GAN 生成一个完整点云,再通过一个三维降采样模块 M 转化为一个残缺点云,进而与输入的残缺点云计算损失函数。该框架利用梯度下降的方法反传损失函数来更新潜码并且微调预训练的 GAN,从而使生成的完整点云与输入的残缺点云在可见部分最接近。

该方法成功的关键在于解决点云数据带来的固有的挑战:点云的非结构化和无序性。

3.4 提高点云均匀度 – PatchVariance

不同于 2D 图片里固定的像素位置,3D 点云数据具有极其非结构化的特性。因此,GAN 生成的点云往往具有很差的均匀度,即点云不能均匀的分布在物体表面上。这种不均匀性可能引起一些空洞,进而影响点云的完整性。

因此,我们提出一个新的均匀度损失函数 PatchVariance,用来 GAN 预训练阶段提高点云的均匀度:我们在物体表面上随机选取 n 个点,利用 k 临近形成 n 个 patch,再计算这 n 个 patch 密度的方差作为损失函数。

我们选择较小的 k 值,因此在不同种类的物体上,patch 都可以满足平面/曲面的假设;我们同时也保证 n 和 k 的乘积超过点云的点数,使得该损失函数可以作用到整个物体表面。

正则化预处理过程中随机抽样的局部补丁间的方差(方程如下所示):

3.5 k-Mask - 三维的降采样模块

类比 GAN 逆映射在 2D 图像修复任务中的应用,我们需要一个降采样的 mask 把生成的完整点云转化成与输入点云对应的残缺点云。然而,点云不规则和无序的特性使得点云补全任务与图像修复有显著区别。在 2D 图片修复中,图片之间的像素对应关系显而易见,所以我们可以很容易计算出可见部分的损失函数。

而在点云补全任务中,得到两个点云的之间点的对应关系通常比较困难,因为两个物体的对应区域很有可能处在三维空间中的不同位置,这给三维中的降采样模块增加了挑战。另外,这种对应关系往往比较模糊,并且因不同点云而异。

 

因此,我们提出了 k-Mask 来动态地获得输入的残缺点云和任意输出的完整点云的对应关系。具体而言,对于残缺点云中的每一个点,我们利用欧几里得距离找到该点在给定完整点云中的 k 个对应点,来解决点对应关系模糊的问题。由此,残缺点云中所有点的 k 个对应点的合集就构成了与输入残缺点云对应的输出残缺点云:

3.6 实验结果

ShapeInversion 在众多场景下取得了出色的表现。

 

首先,在 ShapeNet 基准上,ShapeInversion 优于 SOTA 无监督方法,并可与用配对数据学习的有监督方法相媲美,如下表所示:

其次,在真实世界的 real scan 上取得了全所未有的效果:

第三,在 cross-domain 的实验中,ShapeInversion 也展现出色的泛化能力。对于其他方法,绿色表示域内结果,而紫色表示域外结果。

第四,当输入物体太过残缺因而产生不确定性,ShapeInversion 可以提供多解,并且保证每个解都合理的反应残缺物体的可见部分:

第五, 由于 GAN 的引入,ShapeInversion 能够很好的实现对已知点云形状的编辑,如下面两图的扰动和差值:


3.7 总结

  • 提出了 ShapeInversion,首次将 GAN 反演应用于三维形状完成。

  • 解决了由于 3D 数据的本质而带来的内在挑战,以充分利用预先训练过的 GAN 捕获的先验信息。

  • ShapeInversion 展示了非凡的泛化能力,为真实世界的扫描和不同形式和不完整水平的部分输入提供了鲁棒的结果。

Part 4 Q&A

Q1:点补全的缺失的部分大小有限制吗。

其实是没有限制的。因为是用 virtual scan 来采集片面的视角,采集到的那个视角一般点数会比较多,但是会 down-sample 到同样的点数。所以,点数上面是没有区别的。但至于占整体形状的百分比,其实是不相同的。

Q2:为什么 vae 能捕获两个层次的信息?

Vae 在计算过程中会在 encoder 中编码 distribution,然后两个路径间的 distribution 之间会做 regulation。此外,两个 paths 之间会有共享参数。这种操作可以使得在两个 paths 做 back propagation 的时候有在 gradient level 和 distribution level 两个层次上面的 penalty。

 

Q3:学习到的 relation 是点和点之间的关系吗?

是点和点之间的关系,但是又不能完全是。在《exploring self attention for image recognition》中,把 attention 定义成两种:一种是 pairwise attention,是一个明确计算点和点之间的联系;另外一种是 patchwise attention,是通过对当前的中心点之间的关联邻域的全局考量,以此来计算它们之间的关系。

 

Q4:KITTI 的每一帧数据都很大,如何补全?

与以往的工作 pcl2pcl 一样,我们的输入为物体而非场景的残缺点云,并且把残缺点云调整到 canonical frame。值得注意的是,尽管我们在点的个数上与 pcl2pcl 的操作保持一致,即将残缺输入统一上采样或者降采样到2048个点,但我们提出的 k-Mask 对输入点云的点数有很好的鲁棒性。

 

Q5:Pretraind generator 一定是用 GAN 吗?用 VAE 不可可以?

VAE 也可以学到物体形状的先验,所以理论上 VAE 也可以做点云补全。但如何利用这个先验知识来做补全/重建就值得思考了。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐