Fully-Convolutional Point Networks for Large-Scale Point Clouds

Abstract

       这项工作提出了一种通用的,完全卷积的网络架构,用于有效处理大规模3D数据。 我们的方法的一个显着特点是它能够处理无组织的3D表示,例如点云作为输入,然后将它们内部转换为有序结构,以便能用3D卷积来进行处理。与从输入到输出维持无组织或有组织表示的传统方法相比,我们的方法具有操作存储器有效输入数据表示的优点,同时利用卷积操作的自然结构来避免冗余计算和存储 网络中的空间信息。该网络消除了对原始传感器数据进行预处理或后处理的需要。这与网络的完全卷积性质相结合,使其成为一种端到端的方法,能够同时处理大量空间甚至整个房间的点云,最多可达200k点。 另一个优点是我们的网络可以直接在输入云上生成有序输出或地图预测,从而使其适合作为适用于许多3D任务的通用点云描述符。我们通过在基准数据集上对语义体素分割,语义部分分割和3D场景字幕进行评估,展示了我们网络有效学习低级特征以及复杂构图关系的能力。

1 Introduction

       处理从3D扫描仪或深度相机获得的3D数据 是3D计算机视觉领域丰富应用的基础,场景理解,增强/混合现实,机器人和自动驾驶。从3D场景中提取可靠的语义信息很有用,例如,将虚拟内容适当地添加到我们周围的3D空间或将其描述给视障人士。类似地,在机器人技术中,从深度相机获取的3D数据的处理允许机器人执行超出路径规划和避免碰撞的复杂任务,这需要在现实世界环境中进行智能交互。最近的研究趋势集中在设计有效的学习架构,用于处理常见的3D数据表示,如点云,网格和体素图,用于基于体素的语义场景分割[1],基于部分的3D目标分割[2]和3D对应匹配[3]。等任务。这些模型的主要目标是在处理现实世界数据(如噪声,空洞,遮挡和部分扫描)以及视点变化和3D变换(旋转和平移)时出现的典型问题的鲁棒性。 与语义推断更相关的另一个挑战涉及处理表征真实世界场景的大量类及其通常较大的类内方差。为了追求适用于小规模和大规模任务的多功能3D架构,不仅需要从多个尺度的3D数据中提取有意义的特征,而且还希望一次在大空间区域上操作。为此,由于参数的大幅度减少以及可变输入尺寸的灵活性,全卷积网络(FCN)最近发展到了突出的地位。但是,从最低级别开始学习这些分层统计分布需要大量数据。为了实现这一目标,一些方法训练合成数据,但在应用于现实世界时受到域间隙的影响[5]。缩小这一差距的一大步是ScanNet,一个大规模的室内扫描数据集[1]。由于3D数据中存在额外的维度,在这些具有挑战性的任务上实现最先进性能的方法很快就会达到当前GPU的内存限制[6,7]。虽然上述FCN架构减少了参数的数量,但它要求输入处于有序(密集)形式。为了避免将原始无序数据转换为有序表示的需要,PointNet [2]提出了一种直接对无序点集合进行操作的体系结构。 由于PointNet只学习点云的全局描述符,齐等人 后来用PointNet ++ [8]引入了一个基于分层点的网络。虽然在几项任务中取得了令人瞩目的成果,但由于其完全基于点的性质,PointNet ++无法利用3D卷积提供的内存和性能优势。 这要求PointNet ++冗余地计算和存储每个点的上下文,即使它们在空间上重叠。我们提出了一种用于处理3D数据的通用全卷积网络架构:全卷积点网络(FCPN)。我们的网络是混合的,即设计用于输入无组织的3D表示,例如点云,同时通过3D卷积在内部有组织的处理它们。这与其他方法不同,后者要求输入和内部数据表示为无组织点集[2,8,9]或有组织数据[5,1]。我们的混合方法的优点是可以获得两种表示的好处。与[5,1]不同,我们的网络运行在内存高效的输入表示上,可以很好地适应场景/对象大小,并将其转换为可以通过卷积处理的有组织的内部表示。我们的方法的一个好处是它可以在一次通过处理点云时扩展到大容量。 它也可以在小区域进行训练,例如: 2.4×2.4×2.4米以后在推理过程中应用于较大的点云。在图2中给出了在语义体素标记训练的网络的三个不同尺度上的输出的可视化。虽然所提出的方法主要用于大规模,真实世界的场景理解应用,通过语义体素标记和3D场景字幕任务来证明,该方法也在语义部分分割上进行评估,以证明其作为作用于一系列空间尺度上操作上的通用特征描述符的多功能性。

Fully-Convolutional Point Networks for Large-Scale Point Clouds_第1张图片

       我们的主要贡献是(1)基于混合无组织输入/组织内部表示的网络; (2)第一个在原始点集上运行的完全卷积网络。我们通过在高达80平方米的完整ScanNet场景区域上运行它来展示其可扩展性。 此外,我们通过在大规模语义体素标注和3D零件分割上进行评估来展示我们学习的特征描述符的多功能性。此外,作为第三个贡献,我们探索了我们的方法对于我们配音3D字幕的新任务的适用性,该任务解决了从室内空间的部分3D重建中提取有意义的文本描述。我们演示了我们的方法如何非常适合处理此任务,利用其嵌入上下文信息的能力,从无序输入生成空间有序的输出描述符,这是字幕所必需的。 对于这项任务,我们还发布了一个带有人工注释字幕的新颖数据集。

2 Related Work

       深度学习已经对3D计算机视觉产生了重大影响。那些3D深度学习方法可以归类为(a),对有序输入进行操作的基于体积或体素的模型(参见第2.1节)或(b)完全使用无序数据的基于点的模型(参见第2.2节)。一些方法不直接处理3D数据,而是在2D中操作或2.5D(RGB-D),例如,多视图CNN [10,11,12]。 通常,RGB(-D)基于方法的方法更侧重于颜色信息,而不是几何。这使得它在不同的照明条件下不太稳健。相反,我们提出的方法是完全几何的,因此我们不在此进一步回顾基于RGB-D的方法。

2.1 Voxel-based networks

       大多数基于体积或体素的3D深度学习方法通​​过在各种任务上实现最先进的精度[1,13,14,15,5]来证明其价值。这些方法采用卷积体系结构来有效地处理数据。然而,这需要组织输入数据 - 存储在预定义顺序的密集网格中。然后用该语义类标记该网格中的每个均匀大小的体素。 3D数据的有序表示具有以邻居的恒定时间(O(1))查找为特征的优点。这种表示通常明确地模拟空白空间,使其占用大量内存。由于3D数据通常非常稀疏,因此效率特别低。此外,体素化对数据施加明确的分辨率。要将稀疏3D数据转换为密集表示,需要预处理:使用简单占用网格或通过对其进行编码,例如,在截断的有向距离字段(TSDF)中进行预处理KinectFusion [16,5]。这意味着模型不会看到数据本身,而是看到它的下采样编码。VoxNet是使用3D卷积网络进行物体识别的开创性工作[13]。同样,Wu等学习应用于形状识别和补充的深度体素表示[17]。另一个应用于医学成像的流行示例是3D U-Net [14]。它以132×132×116的相对较高的输入分辨率处理,但仅输出体积的中心。在当前存储器可用性的情况下,较大空间的体素化通常需要以较低的采样密度进行标记,这意味着分辨率的损失。或者,如果使用较小的上下文来通知每个体素的预测,则可以实现更高的密度。例如,ScanNet [1]使用体素邻域的占用特征对场景中的每个约5cm体素列执行语义体素标记。SSCNet通过使用扩张卷积实现联合语义标记和完成深度图像的2.26立方米更大空间范围。 但是,在这种情况下,输出的大小和分辨率也会降低[5]。为了解决这一限制,OctNet建议使用OctTrees,通过在OctTree数据结构上直接引入卷积,在深度学习环境中有效地分割八分圆中的3D空间[7]。Klokov和Lempitsky展示了使用kd-trees的另一种解决方案[6]。 然而,这些方法仍然施加最小的空间离散化。我们的网络灵活高效,足以缓解此内存限制,无需以任何方式对输入进行离散化。

2.2 Point-based networks

       PointNet [2]是一项直接针对无序点开展工作的开创性工作。齐等人 展示了直接使用点集的优势,在连续空间中学习更准确的分布,从而避免了对输入施加采样分辨率的需要。PointNet在单一规模操作的同时,在分类,零件分割和场景分割任务方面实现了最先进的性能。他们进一步声称对可变点密度和异常值具有鲁棒性。然而,由于PointNet不捕获局部特征,作者后来引入了PointNet ++ [8]一个多尺度基于点的网络,该网络使用PointNet作为语义分割的本地特征学习器,以及其他任务。在语义分割任务中,首先抽象点上下文,然后通过潜在空间中的3NN插值进行传播。对于大规模场景分割任务,PointNet ++冗余地处理和存储整个网络中的点的上下文是相关的。这可以防止PointNet ++在一次通过中处理大空间。 而是在语义场景分割任务中,它处理由8192个点表示的1.5×1.5×3米的滑动区域。我们的工作是 - 作为同类中的第一个 - 混合并因此定位在这些体积和基于点的方法之间。因此,允许通过使用3D卷积进行强大的多尺度特征编码,同时仍然直接处理点集。

3 Fully-Convolutional Point Network

       我们的网络在无组织输入上运行,并将PointNet [2]用作低级特征描述符。与PointNet ++ [8]相反,采用了统一的采样策略。此步骤捕获每个局部区域中的精确局部几何,并将无序输入内部转换为有序表示以供进一步处理。这种转换之后是3D卷积,然后学习多个尺度的成分关系。我们的网络以三个等级S 1,S 2和S 3抽象空间。在每个尺度上以1×1×1和3×3×3卷积跳过连接,可以使网络捕获的特征尺度总数翻倍。在最高抽象尺度下,特征通过它们与每个体素的距离加权平均汇总在一起。一旦在每个抽象比例下产生特征,相同大小的特征体积被连接并通过3D解卷积逐步上采样以实现期望的输出采样密度。图3概述了所提出的架构。根据场景,可以应用额外的卷积,潜在最近邻插值或完全连接的层,以分别产生有序的端到端点映射或单值输出。在以下部分中,将更详细地描述我们网络的不同组件。

3.1 Architecture

       全卷积点网络由四个主要模块组成:一系列抽象层,不同尺度的特征学习者,加权平均汇集层和合并阶段,其中响应被分层次地合并在一起。

Fully-Convolutional Point Networks for Large-Scale Point Clouds_第2张图片

Abstraction Layers

        三个抽象层用于在空间和概念上实现分层分区。 第一级捕获基本边缘和角落等几何特征,二级响应复杂结构和其他结构背景下的最高层次结构。

        第一级采用简化的PointNet [8],经证实可有效捕获局部区域的几何形状。 它包括半径搜索和分组,1×1×1卷积,后跟最大池层。在均匀间隔的3D网格中应用PointNet会生成表示最低级别物理特征的3D特征体积。此特征体积将输入下一个抽象层。 更高级别的抽象层实现为3D卷积,内核大小和步幅为2。它们被设计成以非重叠的方式抽象空间,前面的抽象层的8个特征(八分圆)由后续层中的单个单元表示,就像OctTree一样。这种非重叠的空间划分显着减少了 在每个抽象级别存储空间所需的内存。

Feature Learners

       通过三个抽象层次,我们现在采用1×1×1和3×3×3卷积来提取更多尺度的有意义的特征(见图4)。 对于每个抽象级别,跳过连接在级别的固有空间尺度上传播要素以及稍后在网络中合并的3×。 这允许网络更好地识别更宽范围的结构并且克服抽象层的严格非重叠分区。

Weighted Average Pooling

       加权平均池化层高效地结合了远程上下文信息。对最高抽象层次的每一个单元,空间中所有其他单元的响应通过他们到该单元周围1m球体的欧式距离给平均在一起加权。因此,最靠近该球体表面的细胞的权重最大。这强调了远程上下文信息,而不是关于已经由相应的3×3×3跳过连接捕获的直接相邻小区的信息。这通过允许相邻语义影响预测来改善网络的辨别能力。例如,通过考虑桌子或附近的水槽来区分椅子和厕所。该层的无参数特性不仅具有极高的成本效益,而且提供了更具信息性的信号。平均空间池有效地消除了附近结构的精确配置,同时保留了它们的语义身份。这是一个理想的特性,因为附近物体或结构的身份有助于区分边界情况,而不是它们所处的配置。在椅子/马桶的例子中,知道附近水槽的存在比在水槽位于马桶右侧的事实要多得多。我们还避免了一个固有的挑战:更大规模的空间背景(> 1m)鼓励模型学习整个空间配置,这不会导致强大的普遍性。最后,平均加权汇集层表现出在推理期间将网络扩展到更大空间所需的灵活性。

Merging

       对应于每一个抽象级别的跳跃连接首先被连接。然后通过3D解卷积将其上采样到其空间分辨率的2倍。这允许每个抽象级别的特征逐渐合并到彼此中。 1×1×1卷积在解卷积之间为模型增加表达能力。

3.2 Output Representations

       网络的几种变体适用于不同的场景:为了产生有组织的输出,网络配备有额外的反卷积层以产生所需的输出点密度。潜在最近邻插值用于将语义映射到输入云中的每个点的端到端处理的应用中。 在汇总整个输入时,例如在场景字幕的情况下,完全连接的层是合适的。

3.3 Uniform vs. Furthest Point Sampling

       最远点采样对于描述结构(占用空间)的特征非常有效,因为它没有预先假设数据的空间分布。但是,为了描述整个空间(占用+未占用),统一采样是确保我们考虑它的每个部分的唯一方法。

3.4 Full-Volume Prediction

        全卷积点网络标记其给定的完整空间体积输入。它通过在执行3×3×3卷积之前将特征映射上采样到原始采样密度以及对称填充特征体积来实现这一点。 这通过以下事实得到验证:直接在输入体积之外的区域最可能表现出与其中最接近的单元相同的占用特性,因为存在于体积边缘的占用特性可能超出它。

3.5 Scalability

       该网络是灵活的,因为它可以在较小的训练样本上进行训练,然后在推理过程中放大到比单次训练中的训练大几倍的处理空间。该网络成功预测了一次80k2的空间,包括200k点。可以在较稀疏的点密度处理甚至更大的空间范围。 这进一步扩展了网络的多功能性,用于其他用例,例如自动驾驶。

4 3D Captioning

       我们介绍了一个新的场景理解任务,我们称之为3D字幕:生成有意义的空间文本描述。我们设想这对于辅助技术是有用的,特别是对于在不熟悉的环境中导航和交互时的视障人士。为了测试模型对此任务的熟练程度,我们创建了一个基于ScanNet的人类注释标题数据集[1],我们选择最能描述ScanNet中空间多样性的前25个句子。它们旨在回答3种类型的问题:“我所处空间的功能价值是什么?”,“我怎么能移动?”,以及“我如何与空间互动?”。场景的每100帧用0或更多适用的标题注释。然后验证数据集以删除异常值。为此,构建了场景标题注释工具,用于注释大约一半的ScanNet。我们将此数据集与源代码一起发布。字幕数据集的统计数据在补充材料中给出。

5 Evaluation

       我们在(a)小规模3D部分分割以及(b)大规模语义分割任务(参见第5.1节)上评估我们的方法。我们在ScanNet上评估语义分割,ScanNet是一个3D数据集,包含1513个室内环境的RGB-D扫描,具有相应的表面重建和语义分割[1]。这使我们可以将我们的结果与ScanNet的基于体素的预测[1]和PointNet ++基于点云的语义分割[8]进行比较。我们实现了可比性能,而 - 由于我们的完全卷积架构 - 能够同时处理相当大的空间。我们在5.2节中对基于模型的零件分割的基准数据集进行的第二次评估(b)显示了我们的网络能够推广到其他任务和更小的尺度。为了进一步展示空间有序描述符在更高级别场景理解任务中的有用性,我们训练我们的网络预测看不见场景的标题(参见第4节) - 这里给出了3D字幕任务的结果5.3。

5.1 Semantic Voxel Labeling

       在语义体素标注任务中,训练网络以预测来自一组20个语义类的输入中的占用空间的语义。我们提出了语义体素标签的网络变体以及实验装置。

Data Preparation

       按照ScanNet中的相同步骤生成训练样本。根据已发布的ScanNet train/set拆分,我们从1201个场景中提取至少占2%的占用率和70%的有效注释。训练样本为2.4m的立方,均匀点间距为5cm立方。这产生了75k的训练集。在训练期间,样本被重新采样到16k点的固定基数。增强功能即时执行:沿上下轴的随机旋转增强,+/- 2cm范围内的抖动增大和0-80%之间的点丢失。 输入中仅存在点的X,Y,Z坐标。地面实况包括20个对象类和1个表示未占用空间的类。通过预测场景的2.4m立方剪切来处理312场景测试集中的每个场景。 每个语义类由数据集中其每点频率的逆对数加权。

Network

        语义体素标记网络的三个空间尺度S1,S2,S3分别为15cm,30cm,60cm。 因此,网络提取了15厘米,30厘米,45厘米,60厘米,90厘米和180厘米的特征,并在60厘米的空间尺度上汇集了特征。 每个抽象,特征学习和上采样层遵循三个1×1×1层。 另外的去卷积层实现5cm 3的最终输出密度。 在该层之前应用Dropout(50%)。 我们还在最后一层使用最终的3×3×3卷积来强制相邻预测中的空间连续性,从而避免单点错误分类。 使用ADAM优化器训练网络,学习速率为0.01,每个时期减半,持续5个时期。

Results

        表1给出了基于体素的20个类的语义分段的定量结果。 我们的方法实现了82.6%的加权精度和54.2%的未加权精度; 相比之下,ScanNet只能正确标记73%(加权)或50.8%(未加权)的体素。 三个PointNet ++变体(MSG + DP)的最佳表现报告为84.5%(加权)或60.2%(未加权)。 我们的方法在很大程度上优于ScanNet,特别是在类别上:桌子,厕所,椅子和书架。 请注意,与PointNet ++相比,我们的方法具有能够处理从小浴室到整个公寓的所有场景的优势,而PointNet ++将滑动量的预测与多数投票相结合。 图5显示了一些具有相应基础事实注释的定性结果。

Fully-Convolutional Point Networks for Large-Scale Point Clouds_第3张图片

5.2 Part Segmentation

        我们还在较小规模的点云处理任务上评估我们的方法,基于模型的语义部分分割。为了评估这一点,Yi等人。 [19]提供了基于ShapeNet的基准部分分割数据集。 它包含16种类型对象的50个部分类别。 例如,汽车类型特征部分类别:引擎盖,车顶,车轮和车身。 (见表2)。

Fully-Convolutional Point Networks for Large-Scale Point Clouds_第4张图片

Data Preparation

          对于此任务,我们直接在提供的数据上进行训练,无需任何预处理。在训练期间,输入云首先重新调整为最大适合单位球体(直径2米),然后像前一个任务一样增加点丢失和抖动,以及随机移动(+/- 5cm)和缩放(+/- 10%)即时。

Fully-Convolutional Point Networks for Large-Scale Point Clouds_第5张图片

Network

         网络的输入空间范围为2.8米,以使云中的每个点都具有完整的有效上下文。 三个空间尺度S1,S2,S3分别为10cm,20cm,40cm。 三个1×1×1层也遵循每个抽象,特征学习和上采样层。 在将特征上采样回到原始采样分辨率之后,在潜在空间中执行三最近邻插值。然后,与我们比较的方法一样,将单热编码对象类连接到每个点的特征向量,然后是三个最终的1×1×1层,它们之间有50%的丢失。

Results

       该方法在16个对象类别中的12个中优于该基准数据集的最新技术。 可视化示例在图6中给出。

Fully-Convolutional Point Networks for Large-Scale Point Clouds_第6张图片

5.3 Captioning

       为了证明空间有序输出的有用性,我们基于FCPN网络评估3D字幕任务的基线方法。 为了训练字幕模型,我们采用语义体素标记网络并用三个完全连接的层替换最终的上采样层和随后的卷积层。我们冻结语义体素标签网络的权重,并仅在此任务上训练完全连接的层。 再一次,字幕由其在训练集中的频率的倒数对数加权。 我们考虑网络产生的前3个最可靠的字幕。 示例在图7中示出。与标准的基于图像的字幕不同,所提供的结果暗示3D字幕输出与所提出的网络一起如何有效地总结关于特定视点的相关场景几何形状以辅助导航和交互任务。 补充材料中提供了其他结果。

Fully-Convolutional Point Networks for Large-Scale Point Clouds_第7张图片

6 Conclusions

       在论文中,我们提出了第一个完全卷积神经网络,它在无序点集上运行。 我们表明,在完全卷积的情况下,我们能够在一次拍摄中以比现有技术水平更大的空间进行处理。 我们进一步表明,它可以用作通用特征描述符,通过在不同尺度的挑战性基准上进行评估,即语义场景和基于部分的对象分割。 这表明了它在不同任务和应用领域的熟练程度。 此外,由于它学习了一个空间有序的描述符,它为更高级别的场景理解任务(如字幕)打开了大门。 至于未来的工作,我们有兴趣探索更广泛的语义类,并使用我们的网络来培养更具表现力的语言模型。

你可能感兴趣的:(Fully-Convolutional Point Networks for Large-Scale Point Clouds)