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

干货第一时间送达

作者丨单博

来源丨 笑傲算法江湖

点击进入—>3D视觉工坊学习交流群

国防科大 IEEE TPAMI 2020
本文仅用于学术分享,如有侵权,请联系后台作删文处理
部分参考https://zhuanlan.zhihu.com/p/103640399

0 摘要

点云学习(Point cloud learning)因其在计算机视觉、自动驾驶、机器人等领域的广泛应用而受到越来越多的关注。深度学习作为人工智能的主流技术,已经成功地应用于解决各种2D视觉问题。然而,由于用深度神经网络处理点云所面临的独特挑战,点云的深度学习仍处于起步阶段。

最近,关于点云的深入学习变得更加繁荣,有许多方法被提出来,解决这一领域的不同问题。为了促进未来的研究,本文综述了点云深度学习方法的最新进展。包括三个主要任务,3D分类、3D目标检测跟踪和3D点云分割

1 Introduction

随着3D采集技术的快速发展,3D传感器变得越来越可用且价格实惠,包括各种类型的3D扫描仪激光雷达RGB-D相机(如Kinect、RealSense和Apple深度相机)。这些传感器获取的三维数据可以提供丰富的几何、形状和比例信息。借助于二维图像,三维数据为更好地了解机器周围环境提供了机会。三维数据在不同领域有着广泛的应用,包括自动驾驶、机器人技术、遥感和医疗。

三维数据通常可以用不同的格式表示,包括深度图像点云网格体积网格。点云表示作为一种常用的表示格式,在三维空间中保留了原始的几何信息,而不需要进行任何离散化。因此,它是许多场景理解相关应用的首选表示,如自主驾驶和机器人技术。近年来,深度学习技术已成为计算机视觉、语音识别、自然语言处理等领域的研究热点。然而,三维点云的深度学习仍然面临着几个重大的挑战,如数据集的小规模、高维性和三维点云的非结构化性质。在此基础上,重点分析了用于三维点云处理的深度学习方法。

点云的深度学习越来越受到人们的关注,特别是近五年来。还发布了一些公开数据集,例如 ModelNetScanObjectNNShapeNetPartNetS3DISScanNetSemantic3DApololCar3DKITTI Vision基准套件。这些数据集进一步推动了三维点云深度学习的研究,越来越多的方法被提出来解决与点云处理相关的各种问题,包括三维形状分类、三维目标检测与跟踪、三维点云分割、三维点云配准等,六自由度姿态估计和三维重建。关于三维数据的深度学习的调查也很少,我们的论文是第一次专门关注点云理解的深度学习方法。图1显示了现有的点云学习方法。

图1:三维点云深度学习方法的分类

2 BACKGROUND

2.1 Datasets

  • 分类数据集主要分为:合成数据集[6], [8]和真实场景数据集[7], [11];

  • 检测与跟踪数据集主要分为:室内[11], [25]的和室外[14], [28], [30], [31];

  • 分割数据集主要分为:移动式激光扫描仪(MLS)[15],[34],[36],航空激光扫描仪(ALS)[33],[38],静态地面激光扫描仪(TLS) [12], RGB-D 相机[11]和其他3D扫描仪[10]。

表1:数据集汇总

2.2 评估方式

  • 分类任务的主要指标:Overall Accuracy (OA) 和 mean class accuracy (mAcc)

  • 检测任务的主要指标:Average Precision (AP)

  • 单目标跟踪的主要指标:Precision 和 Succes

  • 多目标跟踪的主要指标:Average Multi-Object Tracking Accuracy (AMOTA) 和 Average Multi-Object Tracking Precision (AMOTP)

  • 分割任务的主要指标:OA, mean Intersection over Union (mIoU) 和 mean class Accuracy (mAcc),另外也有 mean Average Precision (mAP)

3 3D分类

此任务的方法通常是先学习每个点的嵌入,然后使用聚合方法从整个点云中提取全局形状嵌入。最后通过将全局嵌入嵌入到几个完全连通的层中来实现分类。根据神经网络输入的数据类型,现有的三维形状分类方法可分为基于多视图、基于体积和基于点的方法。如图2

图2:3D分类方法

基于多视图的方法将非结构化点云投影到二维图像中,而基于体积的方法将点云转换为三维体积表示。然后,利用成熟的二维或三维卷积网络实现形状分类。相比之下,基于点的方法直接在原始点云上工作,而不需要任何体素化或投影。基于点的方法不会引入显性信息丢失并日益流行。

3.1 Multi-view based Methods

首先将一个三维图形投影到多个视图中,然后提取各个视图的特征,然后融合这些特征进行精确的形状分类。如何将多视图特征聚合成一个有区别的全局表示是这些方法的一个关键挑战。

  • MVCNN(Multi-view Convolutional Neural Networks for 3D Shape Recognition)(CVPR'15)是一个开创性的工作,它简单地将多视图特性汇集到一个全局描述符中。但是,最大池只保留特定视图中的最大元素,从而导致信息丢失。

  • MHBN[41]通过协调bilin监听池集成局部卷积特征,生成一个紧凑的全局描述符。Yang等人[42]首先利用关系网络在一组视图上利用相互关系(如区域-区域关系和视图-视图关系),然后聚合这些视图以获得有区别的3D对象表示。此外,还提出了其他几种方法[43],[44],[45],[46],以提高识别精度。

  • 与之前的方法不同,Wei等人[47]通过将多个视图作为grpah节点,在View-GCN中使用了有向图。然后将由局部图卷积、非局部消息传递和选择性视图采样组成的核心层应用于构建的图。最后,将所有级别的最大池节点特征串联起来,形成全局形状描述符。

3.2 Volumetric-based Methods

通常将点云体素化为三维网格,然后将三维卷积神经网络(CNN)应用于体表示进行形状分类。

  • VoxNet(IROS'15)[48]: A 3D convolutional neural network for real-time object recognition(VoxNet)网络、基于卷积深度的三维形状网,虽然已经取得了令人鼓舞的性能,但由于计算量和内存占用随着分辨率的增加而呈立方体增长,因此这些方法无法很好地适应密集的三维数据。

  • Wu等人[6]提出了一种基于卷积深度信念的3D shapenet,从各种3D形状(由二进制变量在体素网格上的概率分布表示)中学习点的分布。

尽管已经取得了令人鼓舞的性能,但由于计算和内存占用随着分辨率的增加呈立方体增长,这些方法无法很好地扩展到密集的3D数据。

3.3 Point-based Methods

基于网络结构的不同,这类方法可以被分为以下几类,包括:点光滑的MLP(PointWise);基于卷积的方法;基于图的方法;基于数据索引的方法以及其它网络。

3.3.1 Pointwise MLP Methods

使用多个共享多层感知器(MLP)独立地对每个点建模,然后使用对称聚合函数聚合全局特征,如图3所示。典型的二维图像深度学习方法由于其固有的数据不规则性而不能直接应用于三维点云。

图3:PointNet的轻量级架构。n表示输入点的个数,M表示每个点学习特征的维数
  • PointNetPointNet: Deep learning on point sets for 3D classification and segmentation(PointNet) 直接以点云作为输入并实现对称函数的置换不变性。PointNet使用几个MLP层独立地学习点态特征,并使用最大池化层提取全局特征。由于PointNet中每个点的特征都是独立学习的,因此无法获取点之间的局部结构信息。

  • PointNet++因此,提出了一种层次网络pointnet++来从每个点的邻域中捕捉精细的几何结构。作为PointNet++层次结构的核心,其集合抽象层由三层组成:采样层、分组层和基于PointNet的学习层。通过叠加多个集合抽象层次,pointnet++从局部几何结构中学习特征,并逐层抽象局部特征。

由于PointNet[5]的简单性和较强的表示能力,许多网络都是基于它开发的。Mo-Net[55]的架构类似于PointNet[5],但它采用有限的力矩集作为其输入。Ponit Attention Transformer(PATs)[56]用它自己的绝对位置和相对于相邻点的相对位置表示每个点,并通过MLP学习高维特征。然后,利用分组洗选注意(GSA)捕获点之间的关系,并开发一个排列不变、可微、可训练的端到端冈贝尔子集采样(GSS)层来学习层级的度量特征。PointWeb [57] uti在pointnet++[54]的基础上,对局部邻域的上下文进行处理,使用自适应特征调整(AFA)改进点特征。Duan等人[58]提出了一种结构关系网络(SRN)利用MLP学习不同局部结构之间的结构关系特征。Lin等人[59]通过为PointNet学习的输入空间和函数空间构建查找表,加快了推理过程。ModelNet和ShapeNet数据集上的推理时间比中等机器上的PointNet加快了1.5 ms和32倍。SRINet[60]首先投射一个点云以获得旋转不变表示,然后利用基于pointnet的骨干网提取全局特征,并利用基于图的聚合提取局部特征。在PointASNL中,Yan等[61]利用自适应采样(Adaptive Sampling, AS)模块自适应调整由最远点采样(FPS)算法采样的点的坐标和特征,并提出了local-non-local (L-NL)模块来捕获这些采样点的本地和远程依赖关系。

3.3.2 Convolution-based Methods

与二维网格结构(如图像)上定义的卷积核相比,由于点云的不规则性,三维点云的卷积核很难设计。根据卷积核的类型,目前的三维卷积方法可分为连续卷积法和离散卷积法,如图4所示。

图4:一个点的局部邻域的连续和离散卷积的图示。(a)表示以点p为中心的局部邻域qi;(b)和(c)分别表示三维连续卷积和离散卷积
3D Continuous Convolution Methods

这类方法在连续的空间中定义卷积核,其中邻居点的权重与它和中心点的空间分布有关。3D卷积可被认为是在给定子集上的加权。MLP是一种简单的学习权重的方法。作为RS-CNN[62]的核心层,RS-Conv将某个点周围的局部子集作为其输入,使用MLP的方法来进行卷积,学习低维关系到高维关系的映射。(“And the convolution is implemented using an MLP by learning the mapping from low-level relations to high-level relations between points in the local subset”)。在[63]中,卷积核的元素是在单位球中随机选取的,接着使用基于MLP的连续函数来确定核元素的位置与点云的关系。在DensePoint[64]中,卷积被定义为单层感知机(Single-Layer Perceptron)。某层的特征是将其之前所有层的特征级联起来,从而使得空间信息被充分利用。Thomas等人[65]使用一组可学习的核点,提出了三维点云的刚性和变形核点卷积(KPConv)算子。ConvPoint[66]将卷积核分为空间部分和特征部分。空间部分的位置从一个单位球中随机选择,并通过一个简单的MLP学习权重函数。

有些方法使用已有的算法来进行卷积。在PointConv[67]中,卷积被定义为对重要性采样的连续3D卷积的蒙特卡洛估计。卷积核由加权函数(由MLP层学到)和密度函数(由核密度估计和MLP层学到)组成。为了提升内存和计算效率,3D卷积被简化成两部分:矩阵乘法和2D卷积,在相同的参数设置下,内存消耗可减小64倍。在MCCNN[68]中,卷积被当做是蒙特卡洛估计的过程(依赖样本的密度函数,用MLP实现),使用泊松圆盘采样(Poisson disk sampling)来构建点云等级。该卷积算子可用于在两个或多个采样方法之间进行卷积,并可处理不同的采样密度。在SpiderCNN[69]中,SpiderConv提出将卷积定义为阶跃函数与定义在k个最近邻居上的泰勒展开的乘积。阶跃函数通过编码局部测地线距离来捕获粗几何,而泰勒展开通过在立方体的顶点插入任意值来捕获固有的局部ge度量变化。此外,还提出了一种基于径向的三维点云卷积网络PCNN [70]基函数。

针对三维卷积网络所面临的旋转等变问题,提出了几种解决方法。Esteves等人[71]提出了3D球形CNN来学习3D形状的旋转等变表示,该方法以多值球形函数为输入。通过在球面调和域上用锚点参数化谱,得到了局部卷积滤波器。张量场网络[72]被用来定义点卷积运算为可学习的径向函数和球面谐波的乘积,球面谐波与三维旋转、平移和排列具有局部等变性。[73]中的卷积是基于球面互相关定义的,并使用广义快速傅立叶变换(FFT)算法实现。SPHNet[74]基于PCNN,通过在体积函数卷积过程中加入球形谐波核来实现旋转不变性。

为了加快计算速度,Flex-Convolution [75]将卷积核的权重定义为对k个最近邻的标准标量积,可以使用CUDA进行加速。实验结果表明,该算法在参数较少、内存消耗较低的小数据集上具有较好的性能。

3D Discrete Convolution Methods

在规则网格上定义卷积核,其中相邻点的权重与相对于中心点的偏移量(offset)有关。

[76]将非归一化的点云变换至归一化的网格,接着在各个网格上定义卷积核。与2D卷积不同(在各个像素上分配权重),所提的3D卷积核在网格内的所有点赋予相同的权重。对于给定点,邻域内所有点(在相同网格上)的平均特征通过之前的层来计算得到。接着,所有网格的平均特征通过加权和产生当前层的输出。[77]定义了球状的卷积核,通过将3D球体邻域分成多个体素bins,并且将各个bin通过学到的加权矩阵联系到一起。球状卷积核的输出由其邻域点的加权均值 通过非线性激活层得到。在GeoConv[78]中,一个点与其相邻点之间的几何关系是基于六个基显式建模的。沿基的每个方向的边缘特征由方向相关的可学习矩阵独立加权。这些方向相关的特征然后根据给定点及其相邻点形成的角度进行聚合。对于一个给定的点,它在当前层的特征被定义为给定点的特征及其上一层相邻边缘特征的和。

PointCNN[79]通过χ-conv trans(通过MLP实现)将输入点转换为潜在的和潜在的规范顺序,然后对转换后的特征应用典型的卷积算子。Zhang等人[81]提出了一种RIConv算子来实现在方差中进行旋转,该算子以低级旋转不变的几何特征为输入,然后通过简单的bin方法将卷积转化为1D。A-CNN[82]通过在查询点的每个环上按内核大小循环近邻数组来定义环形卷积,并学习局部子集中近邻点之间的关系。

为了降低3D CNNs的计算和存储成本,Kumawat等人[83]提出了一种基于3D短期傅里叶变换(STFT)的校正局部相位体积(ReLPV)块,用于在3D局部邻域中提取相位,该块显著减少了参数的数量。在SFCNN[84]中,点云被投影到具有对齐球坐标的正则型二十面体格上。然后通过卷积-maxpool -卷积结构对球面格的顶点及其邻近点拼接的特征进行卷积。SFCNN抗旋转和扰动。

3.3.3 Graph-based Methods

将点云中的每个点看作图的顶点,并根据每个点的邻域生成有向边。然后在空间或光谱域中进行特征学习。典型的基于图的网络如图5所示。

图5:基于图网络
空间域中的基于图的方法

这类方法在空间域中定义卷积和池化操作。卷积通过在空间邻域内的MLP实现,池化操作通过集成信息产生新的较粗的图。各个顶点的特征由坐标、激光强度、颜色来确定,各个边的特征由两个连接点的几何属性确定。

作为先驱工作,[85]将各个点视为图的顶点,利用有向边将顶点与其邻域内的点相连,接着使用Edge-Condition Convolution(使用生成filter的网络得到,MLP等)。最大池化用来集成邻域信息,图的粗化使用VoxelGrid[86]算法得到。首先通过卷积和池化的相互交错,再跟着为全局平均池化和全连接层来产生分类score。

DGCNN[87]中,在特征空间中构造一个图,并在网络的每一层之后动态更新。MLP作为EdgeConv的核心层,被用作每条边缘的特征学习函数,通道对称聚合应用于与每个点的邻居相关联的边缘特征。此外,LDGCNN[88]去掉了转换网络,并将DGCNN[87]中来自不同层的hier—度量特征连接起来,以提高其性能并减小模型尺寸。还提出了端到端无监督深度AutoEncoder网络(即 FoldingNet [89]),该网络使用向量化局部协方差矩阵和点坐标的拼接作为输入。受Inception[90]和DGCNN[87]的启发,Hassani和Haley[91]提出了一种无监督的多节点任务自动编码器来学习点和形状特征。编码器是基于多尺度图构造的。该译码器使用三元非监督任务(包括聚类、自监督分类和侦察构造)构建,并与多任务损失联合训练。Liu等[92]提出了一种基于图卷积的动态点聚集模块(DPAM),将点聚集(采样、分组和池化)的过程简化为一个简单的步骤,该过程通过聚集矩阵和点特征矩阵的乘法实现。在点网体系结构的基础上,通过堆叠多个DPAM来构建一个层次化的学习体系结构。与Pointnet++ [54]的层次结构策略相比,DPAM动态地利用了点之间的关系,并在语义空间中聚合了点。

为了利用局部几何结构,KCNet[93]基于核相关学习特征。具体地说,描述局部结构几何类型的一组可学习点被定义为核。然后,计算了核与给定点邻域之间的亲和度。在G3D[94]中,将卷积定义为邻接矩阵多项式的变体,将池化定义为将拉普拉斯矩阵和verutx矩阵乘以一个粗化矩阵。ClusterNet[95]利用一个严格的旋转不变量模块,从每个点的k个最近邻居中提取旋转不变量的特征,并基于无监督凝聚层次聚类方法构建点云的层次结构[96]。每一个的特性子集群首先通过EdgeConv块学习,然后通过最大池聚集。

为了解决当前数据结构方法(如FPS和邻居点查询)耗时的问题,Xu等人[97]提出融合基于体积和基于点的方法的优点,以提高计算效率。在ModelNet分类任务上的实验表明,所提出的Grid-GCN网络的计算效率比其他模型平均提高5倍。

谱域中的基于图的方法

这类方法将卷积定义为谱的滤波,是通过在图上的拉普拉斯矩阵的特征向量上的乘法来实现的[98][99]。与上述方法不同的是,RGCNN[100]将点云中的点与其余所有的点相连得到图,接着在各层当中更新图的拉普拉斯矩阵。为了使相邻顶点的特征更加相似,图信号光滑的先验被加入到了损失函数中。为了解决数据的不同图拓扑结构带来的挑战,AGCN[101]中的SGC-LL层利用一个可学习距离度量来参数化图上两个顶点之间的相似性。利用高斯核和学习距离归一化了从图中得到的邻接矩阵。HGNN[102]通过在超图上应用频谱卷积来构建超边卷积层。

上述方法都是在全图上操作的。为了利用详细的局部结构信息,Wang等人[103]提出了一种端到端光谱卷积网络LocalSpecGCN,用于处理局部图(由k个最近邻构建)。该方法不需要对图的拉普拉斯矩阵和图的层次结构进行离线计算。在PointGCN[104]中,基于点云的k个最近邻居构建了一个图,并且使用高斯核对每条边进行加权。卷积函数定义为图谱域中的切比雪夫多项式。全局池和多分辨率池用于捕获点云的全局和局部特征。Pan等人[105]通过对谱域中k个最近邻图进行卷积,提出了3DTI-Net。对几何变换的不变性是通过学习相对欧氏距离和方向距离来实现的。

3.3.4 Hierarchical Data Structure-based Methods

基于索引数据的网络是基于不同的数据索引结构(八叉树、KD树)构建的。在这类方法中,点的特征是从叶节点到根节点中分级学习的道德。

[77]提出了八叉树导向的CNN,利用了球状卷积核。网络中的每一层对应八叉树的一层,球状的卷积核在各层中均使用。当前神经元的值是:在之前层中相关的子节点的均值。而Kd-Net[106]由多重的K-d树构成,这些K-d树在每次迭代时有着不同的分裂方向。根据从下到上的方法,非叶节点的表示是由其子节点通过MLP计算得到的。根节点的特征(描述整个点云)最终被送入至全连接层来得到分类输出。值得注意的是,Kd-Net在各级之间共享参数。3DContextNet[107]使用标准的平衡K-d树进行特征提取和集成。

在每个级别上,点特征首先通过基于局部线索(模拟局部区域内点之间的相互依赖关系)和全局上下文线索(模拟一个位置相对于所有其他位置的关系)的MLP学习。然后,利用MLP从子节点计算非叶节点的特征,并通过最大池化聚合。为了分类,重复上述过程,直到获得根节点。

SO-Net网络的层次结构是通过点到节点k次最近邻搜索来构建的[108]。具体而言,采用一种改进的排列不变自组织图(SOM)来模拟点云的空间分布。通过一系列完全连接的层,从归一化点到节点坐标中学习单个点的特征。SOM中每个节点的特征是使用通道最大池从与该节点相关的点特征中提取出来的。然后使用类似于PointNet[5]的方法从节点特征中学习最后一个特征。与Pointnet++[54]相比,SOM的层次结构更加高效,充分挖掘了点云的空间分布。

3.3.5 Other Methods

此外,还提出了许多其他方案。RBFNet[113]通过聚集来自核位置和大小可学习的稀疏分布径向基函数(RBF)核的特征,显式地为点的空间分布建模。3DPointCapsNet[112]使用点式MLP和卷积层学习相关度为度量值为1 × 4的特征中的点,并使用多个最大池化层提取全局潜在表示。在无监督动态路由的基础上,学习了具有代表性的强潜在胶囊。Qin等人[116]提出了一种用于3D点云表示的端到端unsu授权域适应网络PointDAN。为了捕捉点云的语义属性,提出了一种自监督方法来重构点云,该点云的各个部分已经进行了大规模重排[117]。Li等人[118]提出了一种自动扩充框架PointAugment,用于自动优化和扩充用于网络训练的点云样本。具体地说,每个输入样本的形状变换和点位移都是自动学习的,网络通过交替优化和更新其可学习参数来训练 增强器和分类器。受形状上下文[119]的启发,Xie等人[109]提出了一种ShapeContextNet体系结构,将亲和性点选择和紧凑特征集合结合到使用点产品自注意的软对齐操作中[120]。为了处理3D点云中的噪声和遮挡,Bobkov等人[121]将手工制作的基于点对函数的4D旋转不变描述子输入到4D卷积神经网络中。Prokudin等[122]首先从单位球随机采样一个分布均匀的基点集,然后将点云编码为到基点集的最小距离。因此,点云被转换为一个相对较小的固定长度的向量。然后可以用现有的机器学习方法处理编码后的表示。

RCNet[115]利用标准RNN和2D CNN构建了一个用于3D点云处理的排列不变网络。首先将点云划分为平行光束,并沿特定维度排序,然后将每个光束送入共享RNN。学习到的特征进一步被输入到一个有效的2D CNN中,用于层次结构的特征聚合。为了提高RCNet-E的描述能力,提出了将多个RCNets沿不同划分和排序方向进行集成的方法。

Point2Sequences [114]是另一个基于RNN的模型,它捕获点云局部区域中不同区域之间的相关性。它将从多个尺度的局部区域学习到的特征视为序列,并将这些来自所有局部区域的序列输入到基于RNN的编码器-解码器结构中,以聚合局部区域的特征。

一些方法也可以从3D点云和2D图像中学习。在PVNet[110]中,从多视点图像中提取的高层次全局特征通过嵌入网络投射到点云的子空间中,并通过软注意掩码与点云特征融合。最后,利用残差连接对融合特征和多视图特征进行形状识别。随后,进一步提出PVRNet[111],通过关系评分模块来开发3D点云与其多个视图之间的关系。在关系评分的基础上,对二维全局视图特征进行增强,实现点级的单视图融合和点级的多视图融合。

3.4 Summary

ModelNet10/40[6]数据集是3D形状分类中最常用的数据集。表2显示了不同基于点的网络所获得的结果。可以得出以下几点观察:

  • 点态MLP网络通常作为其他类型网络学习点态特征的基本构建块。

  • 作为一种标准的深度学习架构,基于卷积的网络可以在不规则的3D点云上获得卓越的性能。对于不规则数据的离散卷积网络和连续卷积网络都应该给予更多的关注。

  • 基于图的网络由于其固有的强大的数据处理能力,近年来受到越来越多的关注。然而,将谱域的基于图的网络扩展到各种图结构仍然是一个挑战。

表2

4 3D目标检测与跟踪

图6:3D目标检测

4.1 3D Object Detection

与普通2D中的目标检测方法类似,3D中的目标检测方法也可分为两类:基于候选区域的方法和直接映射的方法。

图7:3D目标检测

4.1.1 Region Proposal-based Methods

这些方法首先产生一些可能包含物体的区域(Proposals),接着对各个区域提取特征,来决定各个候选区域的物体类别。

根据不同的产生候选区域的方法,这些方法可进一步分为三类:基于多视角的方法;基于分割的方法以及基于锥体的方法。

Multi-view based Methods

这类方法从不同的视角图像(雷达前景图,鸟瞰图,图像等)中融合各个候选框的特征,来产生3D旋转盒。在[4]中,Chen等人从鸟瞰图中产生一组准确的3D候选框,并且将其投影到其它视角中(雷达前景图,RGB图像),接着将各个区域的特征组合到一起,来预测有方向的3D bounding boxes。尽管这种方法在0.25IOU, 300个候选框设置时达到了99.1%的recall,但是速度非常慢。后续的基于多视角的3D物体检测方法主要从以下两个方面来提升。

(1)提出了很多方法来有效的融合不同模态之间的信息。为了针对小物体产生有较高recall的候选框,[126]提出了多模态的基于融合融合的区域生成网络。首先从鸟瞰图和普通图像视角提取相同大小的特征,然后在各个元素位置使用了平均池化来融合特征。[127]利用了连续的卷积来进行图像与3D雷达前景图的特征融合。具体而言,他们对BEV(鸟瞰视角)空间中的每个点提取最近的对应点的图像特征,接着通过将图像特征投影至BEV空间的方法,使用双线性插值得到稠密的BEV的特征图。实验结果证明稠密的BEV特征图比起离散的图像特征图和LiDAR(雷达激光)特征图更加适合3D物体检测。[128]提出了多任务,多感知器的3D物体检测网络来进行端到端的训练。具体而言,利用多种任务(2D物体检测,背景估计,深度补偿),帮助网络学习到更好的特征表示。学习到的跨模态的表示,可进一步用来产生更准确的物体检测结果。实验证明这类方法在2D,3D,BEV识别任务上有着非常好的提升,在TOR4D基准[129, 130]上超越了之前的SOTA。

(2)其它的一些方法致力于提取更鲁棒的表示。[39]通过引入空间Channel注意力机制模块(Spatial Channel Attention Module),探索了多尺度的环境信息,其捕获了全局的以及多尺度的场景环境,加强了有用的特征。同样的,通过将不同尺度的低层次特征融合的方法,他们提出了Extension Spatial Unsample模块来得到有着更丰富空间信息的高层次特征,接着来产生更可靠的3D物体候选框。尽管达到了更好的检测效果,但上述所提的多视角方法都需要较长的运行时间,因为他们在各个候选框都进行了特征的池化。因此,[131]使用了提前的ROI池化卷积(pre-ROI pooling convolution)来提高[4]的效率。具体而言,他们将大部分的卷及操作移动到ROI pooling模块之前。因此,对于所有的物体候选框,ROI卷积只使用一次。实验结果显示这类方法可达到11.1fps, 速度达到了MV3D[4]的5倍。

Segmentation-based Methods

这类方法首先利用现有的语义分割技术来移除多数的背景点,接着在前景点上,产生大量的高质量的候选框来节约计算。与多视角的方法[4],[126],[131]相比,这类方法达到了更好的物体recall,并且更适合一些复杂的场景。

[132]中,Yang et al使用了2D的分割网络来预测前景的像素并将其投影至点云中,以此来剔除掉多数的背景点。接着在这些前景点中生成候选框,并且设计了一种新的标准称之为PointsIoU来减少候选框的冗余性和模棱两可之处。跟着[132]的脚步,[133]提出了PointRCNN的框架。具体而言,他们直接对3D点云进行分割,得到前景点,并且将语义特征和局部空间特征融合从而得到高质量的3D boxes。[143]跟着[122]中的RPN,提出了一种利用图卷积网络来进行3D物体检测。具体而言,利用图卷积,在此处引入了两个模块来修复物体的候选框。第一个模块R-GCN利用一个候选框中的所有点,得到每个候选框的特征集成。第二个模块C-GCN将所有候选框中的每一帧信息融合起来,利用环境来回归准确的物体boxes。[135]将点云投影至基于图像的分割网络的输出,将其附加至语义的预测值。通过将涂色的点送入至一些检测器中[133,136,137],得到了显著的性能提升。[138]将每个点与spherical anchor相关联,每个点的语义值用来移除多余的anchors。这样的方法得到了更好的recall以及有着更小的计算消耗。与此同时,文中提出了PointsPool层,对候选框中的内部点学习相容的特征,并且引入了并行的IOU来提高位置的准确度的检测性能。

Frustum-based Methods

这类方法首先利用现有的2D物体检测子,产生2D的候选矩形框,接着对每个2D的候选框提取3D的锥体候选框,如 图8(c) 所示。尽管这类方法可以有效地给出3D物体的坐标,但step-by-step的pipeline使得性能受限(受限于2D图像的检测子)。

F-PointNets[139]为此类方向的先驱工作。它在每个2D区域上产生锥形的候选框,并且应用PointNet[5]或PointNet++[54]来学习各个3D锥体的点云特征,从而进行3D box的估计。在随后的工作中,[140]提出了Point-SENet模块,来预测一系列的缩放因子,从而被用来突出有用特征和抑制无用特征。同时他们也将PointSIFT[141]模块集成至网络中,来获取点云的方向信息,其可以得到对形状尺度的强鲁棒性。该方法在[14], [25]的数据集上,与F-PointNets [139]相比得到了显著的提高。

方法[142]利用了2D图像区域和对应的锥体点来回归3D boxes。为了融合图像特征和点云的全局特征,他们提出了全局的融合网络来直接回归box的角坐标。他们也提出了稠密的网络网络来预测各个点对于各个角的补偿(offsets)。[143]第一次从2D图像中估计2D的bounding boxes和3D物体姿态,从而提取物体候选框。这类3D候选框被送入至box 回归网络来预测准确的3D物体boxes。[144]对于各个2D区域,在锥体轴上产生一系列的锥体,并使用PointNet来对各个锥体提取特征。锥体层次的特征用来产生2D特征图,再被送入至FCN来估计3D box。该方法在基于2D图像的方法中达到了state-of-the-art的性能,并且在KITTI积分榜上排在很靠前的位置。[145]首先在鸟瞰图上得到初步的检测结果,接着基于鸟瞰图的预测结果,提取小部分点的子集,再应用局部的微调网络来学习局部特征,预测高精度的3D bounding boxes。

Other Methods

受轴向IoU在图像目标检测中的成功激励,Zhou等人[146]将两个3D旋转边界盒的IoU集成到几个先进的检测器[133]、[137]、[158],以实现一致的性能改进。Chen等人[147]提出了一种两阶段网络架构,可以同时使用点云和体素表示。首先,对点云进行体素化,并将点云输入到三维骨干网中生成初始检测结果。其次,进一步利用初始预测的内点特征进行箱体细化。虽然这种设计在概念上很简单,但在保持16.7 fps的速度的同时,它达到了与[133]相当的性能。Shi等人[148]提出了PointVoxel-RCNN (PV-RCNN),利用3D卷积网络和基于PointNet的集合抽象来学习点云特征。具体来说,输入点云首先体素化,然后输入到三维稀疏卷积网络中生成高质量的提案。然后,通过体素集抽象模块将学习到的体素相关特征编码为一个小的关键点集。此外,他们还提出了一个关键点到网格的ROI抽象模块,以捕获丰富的上下文信息用于框细化。实验结果表明,该方法的性能明显优于以往的方法,在KITTI三维检测基准的Car类测试中排名第一。

受到Hough投票的二维物体探测器的启发,Qi等人[124]提出了VoteNet,直接从点云中对物体的虚拟中心点进行投票,并通过聚集投票特征生成一组高质量的3D物体提议。VoteNet的性能明显优于之前仅使用几何信息的方法,并在两个大型室内工作台(即ScanNet[11]和SUN RGB-D[25])上实现了最先进的性能。然而,对于部分遮挡的物体,虚拟中心点的预测是不稳定的。此外,Feng等人[149]增加了方向向量的辅助分支,以提高虚拟中心点和3D候选盒的预测精度。此外,建立了提案之间的三维对象-对象关系图,强调了用于精确目标检测的有用特征。Qi等人[150]提出了一种ImVoteNet检测器,将2D对象检测线索(如几何和语义/纹理线索)融合到3D投票管道中。Shi等人[151]观察到3D对象的ground truth box提供了对象内部部分的精确位置,受到这一启发,提出了Part-A2 Net,该网络由部分感知阶段和部分聚合阶段组成。部分感知阶段采用类似UNet的[165]net工作,并带有稀疏卷积和稀疏反褶积,以学习点级特征,用于预测和粗略生成对象内部部件位置。零件聚合阶段采用感知roi的池化来聚合预测的零件位置,进行箱体细化。

4.1.2 Single Shot Methods

这类方法使用单阶段的网络,直接预测类别概率和回归物体的3D bounding boxes。这类方法不需要产生区域候选框和后处理。结果是,这类方法有着很快的速度,很适合实时的应用。根据输入数据的形式,single shot方法可分为两类:基于鸟瞰图的方法和基于点云的方法。

BEV-based Methods

基于鸟瞰图的方法将BEV表示作为输入。[129]将场景的点云离散化,使用FCN来预测位置和物体的航向角。该方法超越了大多数的single shot方法(VeloFCN [154], 3D-FCN [155] 和 Vote3Deep [156])并且达到了28.6fps。之后,[152]利用HP map提供的几何和语义先验信息,提高了[129]的鲁棒性和检测性能。具体来说,他们从HD地图上获取地面点的坐标,然后用相对于地面的距离进行BEV表示,以弥补由于道路坡度引起的平移方差。此外,他们沿着通道维度将二元道路掩模与BEV表示连接起来,以聚焦于移动的物体。因为不是所有地方都有高清地图,所以它们也提出了一种在线地图预测模块,用于从单个LiDAR点云中估计地图先验。该地图感知方法在TOR4D[129]、[130]和KITTI[14]数据集上的表现明显优于基线。但对不同密度点云的概化性能较差。为了解决这个问题,Beltr´an等人[153]提出了一种考虑差异的归一化图在不同的激光雷达传感器之间。归一化映射是一个与BEV映射具有相同分辨率的2D网格,它对每个单元格中包含的最大点数进行编码。结果表明,该归一化映射显著提高了基于BEV的检测器的泛化能力。

Discretization-based Methods

离散化方法将点云转换为规则的离散表示,然后应用CNN预测对象的类别和3D盒子。

Li等人[154]提出了第一种使用FCN进行3D目标检测的方法。他们将点云转换为2D点图,并使用2D FCN预测对象的边界框和置信度。随后,他们[155]将点云离散为具有长、宽、高、通道等维度的4D张量,并将基于二维fcns的检测技术扩展到三维领域进行三维物体检测。与[154]相比,基于3D fcn的方法[155]在精度上获得了20%以上的增益,但由于3D卷积和数据稀疏性,不可避免地要消耗更多的计算资源。为了解决体素的稀疏性问题,Engelcke等人[156]利用以特征为中心的投票方案为每个非空体素生成一组选票,并通过累积选票获得卷积结果。它的计算复杂度与被占用的体素数量成正比。Li等人[157]通过堆叠多个稀疏的3D CNN构建了一个3D骨干网。该方法充分利用体素的稀疏性来节省内存和加快计算速度。该三维骨干网在不引入大量计算量的前提下,提取了丰富的三维特征进行目标检测。

Zhou等人[136]提出了一种基于体素的端到端可训练框架VoxelNet。他们将点云划分为等间距的体素,并将每个体素中的特征编码为4D张量。然后连接区域建议网络产生检测结果。虽然该方法性能较强,但由于体素的稀疏性和三维卷积的影响,其速度非常慢。之后Yan等[158]利用稀疏卷积网络[166]提高了[136]的推理效率。他们还提出了正弦误差角度损失来解决0和π方向之间的歧义。Sindagi等人[159]在早期阶段通过融合图像和点云特征扩展了VoxelNet。具体来说,他们将[136]生成的非空体素投影到图像中,并使用预先训练的网络提取每个投影体素的图像特征。然后将这些图像特征与体素特征连接起来,生成精确的3D盒子。与[136]、[158]相比,该方法可以有效利用多模态信息,减少假阳性和阴性。Lang等人[137]提出了一种名为point柱子的3D对象检测器。该方法利用PointNet[5]学习以垂直列(柱子)组织的点云的特征,并将学习到的特征编码为伪图像。然后应用二维物体检测管道预测三维边界盒。在AP方面,point柱子优于大多数融合方法(包括MV3D [4], RoarNet[143]和AVOD[126])。此外,point柱子可以在3D和BEV KITTI[14]基准上以62帧/秒的速度运行,使其非常适合实际应用。

He等人[160]观察到,在现有的单镜头检测器逐步缩小的特征图中,点云的部分空间信息不可避免地会丢失,受此启发,He等人提出了一种SA-SSD检测器,利用细粒度结构信息提高定位精度。具体来说,他们首先将点云转换为张量,并将其输入骨干网,以提取多级特征。此外,利用具有点级监督的辅助网络引导特征学习点云的结构。实验结果表明,SA-SSD在KITTI BEV检测基准的Car类中排名第2。

Point-based Methods

这些方法直接以原始点云作为输入。3DSSD[161]是这方面的开创性工作。它引入了距离- fps (D-FPS)和特征- fps (F-FPS)的融合采样策略,以去除耗时的特征传播(FP)层和[133]中的细化模块。然后,利用候选生成(Candidate Generation, CG)层充分挖掘代表点,进一步将代表点输入带有3D中心度标签的无锚回归头,预测3D对象盒。实验结果表明,3DSSD在保持25fps速度的情况下,性能优于两阶段点法PointRCNN [133]。

Other Methods

Meyer等人[162]提出了一种名为LaserNet的高效3D物体检测器。该方法预测每个点在边界盒上的概率分布,然后结合这些点分布生成最终的3D对象盒。进一步,采用点云的密集距离视图(RV)表示作为输入,提出了一种快速的均值-位移算法来降低点云预测产生的噪声。LaserNet在0 ~ 50米范围内实现了最先进的性能,运行时间明显低于现有方法。Meyer等人[163]随后扩展了LaserNet [162],利用RGB图像(例如50至70米)提供的密集纹理。具体来说,他们通过将3D点云投影到2D图像上,将LiDAR点与图像像素相关联,并利用这种关联将RGB信息融合到3D点中。他们还认为3D语义分割是学习更好表示的辅助任务。该方法在保持LaserNet高效率的同时,在长距离(例如50 ~ 70米)的对象检测和语义分割方面都取得了显著的改进。Chen等人[164]观察到孤立物体上的点可以提供关于物体位置和方向的丰富信息,受此启发,提出了一种新的热点表示和第一个基于热点的无锚检测器。具体来说,原始点云首先体素化,然后输入骨干网络生成3D特征图。利用这些特征图对热点进行分类,同时预测三维边界盒。注意,热点分配在骨干网的最后一个卷积层。实验结果表明,该方法对稀疏点云具有较好的鲁棒性。Shi et el。[125]提出了一种用于检测激光雷达点云三维目标的图神经网络Point-GNN。他们首先将输入点云编码为具有固定半径的近邻图,然后将该图输入Point-GNN,以预测对象的类别和盒子。

4.2 3D Object Tracking

给定物体在第一帧中的位置,目标跟踪的任务是估计其在后续帧中的状态[167],[168]。由于三维目标跟踪可以利用点云中丰富的几何信息,因此有望克服基于图像的跟踪所面临的遮挡、光照和尺度变化等缺点。

受Siamese网络[169]在基于图像的目标跟踪方面的成功启发,Giancola等人[170]提出了一种形状补全正则化的3D Siamese网络。具体来说,他们首先使用卡尔曼滤波器生成候选对象,然后使用形状正则化将模型和候选对象编码成一个紧凑的表示。然后使用余弦相似度在下一帧中搜索被跟踪对象的位置。该方法可以作为对象跟踪的替代方法,并且显著优于大多数2D对象跟踪方法,包括STAPLECA[171]和SiamFC[169]。为了高效地搜索目标对象,Zarzar等人[172]利用2D Siamese网络生成大量的粗对象可对BEV表示进行解析。然后,他们利用3D Siamese网络中的余弦相似度,对罐头证书进行了细化。该方法在精确度(即18%)和成功率(即12%)方面显著优于[170]。Simon等人[173]提出了一种用于语义点云的3D对象检测和跟踪体系结构。他们首先通过融合二维视觉语义信息生成体素化语义点云,然后利用时间信息提高多目标跟踪的准确性和鲁棒性。此外,他们还引入了一种功能强大且简化的评估指标(即量表-旋转-翻译评分(SRFs)),以加速训练和推断。Complexer-YOLO取得了很好的跟踪性能,并且仍然可以实时运行。此外,Qi等人[174]提出了点到箱(Point-to-Box, P2B)网络。他们将模板和搜索区域放入主干中以获取种子。搜索区域利用目标特异性特征增强种子,然后通过Hough投票回归潜在目标中心。实验结果表明,当以40帧/秒的速度运行时,P2B的性能比[170]高出10%以上。

4.3 3D Scene Flow Estimation

给定两个点云和,3D场景流 描述了中的每一个点到Y中相应位置的移动,。图9显示了两个KITTI点云之间的3D场景流。类似于二维视觉中的光流估计,一些方法已经开始从点云序列中学习有用的信息(如3D场景流、空间临时信息)。

图9

Liu等人[175]提出FlowNet3D可以直接从一对连续的点云中学习场景流。FlowNet3D通过流嵌入层学习点级特征和运动特征。然而,FlowNet3D有两个问题。首先,一些预测的运动向量在方向上明显不同于地面真实情况。其次,FlowNet很难应用于非静态场景,特别是由可变形物体引起的场景。为了解决这一问题,Wang等人[176]引入了余弦距离损失来最小化预测与地面真相之间的角度。此外,他们还提出了点到平面的距离损失,以提高刚性和动态场景的精度。实验结果表明,这两个损失项将FlowNet3D的准确率从57.85%提高到63.43%,加快和稳定了训练过程。Gu等人[177]提出了一种分层Permutohedral Lattice FlowNet (HPLFlowNet)来直接估计大规模点云的场景流。在降低计算成本的同时,提出了几种双边卷积层来恢复原始点云的结构信息。

为了有效地处理顺序点云,Fan和Yang[178]提出了PointRNN、PointGRU和PointLSTM网络以及一个序列对序列模型来跟踪mov - ing点。PointRNN、PointGRU和PointLSTM能够捕获空间临时信息,并对动态点云进行建模。类似地,Liu等人[179]提出了metenet直接从动态学习表示点云。该方法学习从时空相邻点聚合信息。进一步引入直接分组和链流分组来确定时间邻居。然而,上述方法的性能受到数据集规模的限制。Mittal等人[180]提出了两种自我监督损失,在大型未标记数据集上训练他们的网络。他们的主要思想是,一个鲁棒的场景流量估计方法应该在正向和反向预测都有效。由于场景流的不可测性,预测变换点的最近邻被认为是伪地真。然而,真正的地面真相可能与最近的点不一样。为了避免这一问题,他们计算了反向的场景流,并提出了一个循环一致性损失来将点平移到原始位置。实验结果表明,该自监督方法优于现有的基于监督学习的方法。

4.4 Summary

KITTI[14]基准是自动驾驶领域最具影响力的数据集之一,在学术界和工业界都得到了广泛应用。表3表4展示了不同检测器在KITTI测试3D基准测试上获得的结果。可以看出以下几点:

  • 基于区域提案的方法是这两种方法中被研究最多的方法,并且在KITTI测试3D和BEV台架测试的结果中都大大优于单发方法。

  • 现有的3D物体探测器有两个限制。首先,现有方法的远程检测能力相对较差。第二,如何充分利用图像中的纹理信息仍然是一个有待解决的问题。

  • 多任务学习是3D目标检测的未来发展方向。例如,MMF[128]学习跨模态表示,通过合并多个任务来实现最先进的检测性能。

  • 3D目标跟踪和场景流量估计是新兴的研究课题,自2019年以来逐渐受到越来越多的关注。

表3

表4

5 3D Point Cloud Segmentation

3D点云分割要求了解全局的几何结构以及各个点的细粒度的细节。根据分割的细粒度,3D 点云分割方法可分为以下三类:语义分割(场景级)、实例分割(物体级)和part segmentation(part level)。

5.1 3D Semantic Segmentation

给定一个点云,语义分割的目标是,根据语义信息,将各个点分成一定的子集。与3D形状分类的分类类似,语义分割可分为两种方法:基于投影的方法和基于点的方法。

图10:3D语义分割

Intermediate regular representations可被分成以下几种:多视角表示[148], [149]、球状表示[150], [151], [152]、体素表示[153], [154], [155]、超多面体晶格表示[156], [157]以及混合表示[158], [159]。具体可见图11。

图11:Intermediate regular representations

5.1.1 基于投影的网络

多视角表示

  • [181]首先将3D点云从多个虚拟的相机视角投影至2D平面上,接着,使用多流的FCN在人造的图像上预测各个像素的scores。最终各个点的语义标签为不同视角上scores的融合。

  • 相似地,[182]首先利用多组相机的位置,得到点云的一些RGB和深度图。接着使用2D的分割网络,在这些图片上得到各个像素的label,这些从RGB和深度图上得到的scores用来融合(使用redisual correction[192])。

  • 基于点云是从局部欧式曲面上采样得到的假设,[193]引入了tangent convolutions进行稠密的点云分割。该方法首先将各个点周围的局部曲面投影至虚拟的切平面。Tangent convolutions在曲面上直接进行。

总的来说,多视角分割方法的性能对视角的选择和遮挡非常敏感。同时,这类方法并未能完全利用潜在的几何和结构信息,因为投影操作不可避免地引入了信息损失。

球状表示

  • 为了得到更快更准确的3D点云分割,[183]提出了基于SqueezeNet和条件随机场的端到端的网络。

  • 为了进一步提升分割准确率,引入了SqueezeSegV2[184]利用无监督的domain adaptation解决domain shift。

  • [185]提出了**RangeNet++**,针对LiDAR点云进行实时的语义分割。2D深度图的语义标签首先转移至3D点云上,接着使用基于KNN的后处理步骤来减轻离散化误差的问题。

与单一的视角映射相比,球映射保持了更多的信息,并且更适合LiDAR点云。然而,这样的中间表示不可避免地引入了一些问题,比如离散化误差和遮挡问题。

5.1.2 基于离散化的方法

密集离散化表示

  • [195]首先将点云分成一系列占有的体素。接着将这些过渡数据送入至fully-3D CNN中进行体素级别的分割。最后,一格体素中的所有点的语义信息与该体素的label相同。该方法的性能极其受限于体素的细粒度和边界的伪影。

  • 之后,[196]提出SEGCloud来得到更细粒度和global consistent的语义分割。该方法引入了确定性的三线性插值,将由3D-FCNN产生的粗糙的网格预测映射回点云中,接着使用Fully Connected CRF,确保推测出的点云有着空间上的一致性。

  • [186]引入了一种基于核的变分自编码器结构地局部几何结构进行编码。这里摒弃了binary occupancy representations, 使用RBF得到连续的表示,并且捕获到每个体素中点的分布。再使用VAE将各个体素中的点映射至隐空间,最后使用CNN得到鲁棒的特征表示。

良好的尺度扩展性质是体素表示中的优点之一。具体而言,基于体素的网络对于有着不同空间尺寸的点云,其训练和测试是不受限制的。

  • 在Fully-Convolutional Point Network(FCPN)[187] 中,不同级别的几何相关性从点云中提取出来,再使用3D卷积核加权的均值池化来提取特征。该方法可处理大规模的点云,并且在推断时有着良好的尺度扩展性质。

  • [198]提出了ScanComplete来实现3D补全,以及对各个体素进行语义预测。该方法利用了全卷积网络的尺度扩展性,在训练和测试阶段应对不同的输入数据大小。使用从粗到细的策略来提高预测结果的分辨率。

综上所述,体素表示很自然地保留了3D点云的邻域结构。其规范的数据形式也是的标准的3D卷积可师姐应用。这些因素在这一领域有着不错的性能提升。然而,体素化的过程内在地引入了离散化的伪影和信息损失。通常,高分辨率会导致较高的内存和计算消耗,低分辨率引入了信息的损失。在实际中如何选择合适的网格分辨率是non-trivial的。

系数离散化表示

体素表示(volumetric representation)是稀疏的,其中非零元素的数量仅仅占很小一部分。因此,在空间上稀疏的数据使用稠密的卷积网络是比较无效的。

  • 为此,[166]提出了子流形的稀疏卷积网络。该方法显著地减小了内存拟合计算消耗,通过限制卷积的输出只能与被占据的体素有关。同时,该稀疏卷积也可以通知提取出的特征的稀疏性。该子流形稀疏卷积很适合处理高维度且空间较稀疏的数据。

  • 更进一步,[199]提出的“MinkowskiNet”,即4D时间-空间卷积网络用以3D视频感知。广义上的稀疏卷积来处理高维数据。

  • 另一方面,Su等人[188]提出了基于双边卷积层(BCLs)的稀疏点阵网络(SPLATNet)。该方法首先将原始点云插值到一个互面体稀疏点阵中,然后利用BCL对稀疏点阵的占用部分进行卷积。然后将过滤后的输出插值回原始点云。此外,该方法还可以灵活地联合处理多视图图像和点云。

  • 此外,Rosu等人[189]提出了LatticeNet来实现对大型点云的高效处理。还引入了一个名为DeformsSlice的数据相关插值模块,将点阵特征反向投影到点云上。

5.1.3 混合表示

为了进一步利用所有可用信息,许多方法试图学习多模态特征。

  • [190]提出了joint 3D-mult-view网络,来组合RGB和几何特征。一个3D CNN流和一些2D CNN流用来提取特征,另一个可微分的back-projection layer用来合并3D和2D特征。

  • 更进一步,[200]提出了unified point-based network来学习2D纹理信息,3D结构和全局特征。该方法直接应用基于点的网络来提取局部几何特征和环境信息。

  • [191]提出了Multiview PointNet(MVPNet)来集成2D多视角特征和空间几何特征。

5.1.4 基于点的网络

基于点的网络直接在点云上进行操作。然而,点云通常是无序且无结构的,使得直接应用标准的CNN不现实。为此,先驱的工作PointNet[5]用来对每个点进行特征学习,使用的是标准的MLP和全局特征。基于PointNet,一系列基于点的网络被提出。总体而言,这类方法可悲简单的分为以下几类:基于各个点的MLP方法,基于点卷积的方法,基于RNN的方法和基于图的方法。

Pointwise MLP Methods

这类方法通常利用共享的MLP作为网络中的基本单元。然而,由共享MLP提取出的各个点上的特征,并不能获取到点云中的局部几何关系,以及点与点之间的关系[5]。为了获取各个点周围更广泛的信息,以及学习到更丰富的局部结构,有很多方法被提出,包括基于邻近点特征池化的方法,基于注意力机制的集成(attention-based aggregation)以及局部-全局的特征级联。

Neighboring feature pooling:为了获取局部的几何形式,这类方法通过将局部邻域点集成的方式,对各个点学习特征。

  • 具体而言,PointNet++[54]将点分层次,逐步地分成一些组,如下图所示。多尺度的grouping和多分辨率的grouping来克服点云多样性造成的问题。图12(a)

  • 之后,[141]提出了PointSIFT模块来实现方向的编码和scale awareness。该模块通过使用3阶段的有向的卷积操作,将8个空间方向的信息堆叠并且编码,将多尺度的特征提取并级联来实现对不同尺度的适应性。

  • 与PointNet++中使用GROUPING的方法不同,[204]利用K-Means聚类和KNN的方法在世界空间和特征空间定义两种邻域。基于这样的假设:来自于同一类的点在特征空间中应当接近,该论文提出了pairwise distance loss and a centroid loss来对特征学习进行正则。

  • 为了建模点与点之间的相互关系,[57]提出了PointWeb来寻找局部区域内所有点对之间的关系。

  • [205]提出了置换不变性的卷积称之为Shellconv

  • [206]提出了有效、轻量的网络称为RandLA-Net实现大规模的点云处理。该方法利用随机样本采样,在内存和计算方面提升很多。提出的局部特征集成用来获取和保持几何特征。

Attention-based aggregation

  • 为了进一步提升分割的准确率,[120]针对点云分割,提出了基于注意力的机制。

  • [56]提出了组随机注意力机制(group shuffle attention)来建模点之间的关系,并且提出了具有置换不变性、task-agnostic以及可微分的Gumbel Subset Sampling(GSS)来替代被广泛应用的Furthest Point Sampling(FPS)方法。该方法对离群点不敏感,并且可以选择具有代表性的点的子集。

  • 为了更好地获取点云的空间分布,[207]提出了Local Spatial Aware(LSA)层来学习空间感知权重。

  • 与CRF类似,[208]提出了Attention-based Score Refinement(ASR)模块对分割的结果进行后处理。初始分割结果通过pooling的方式进行修正。该模块很容易被集成至其他的深度网络中来提升分割效果。

Local-global concatenation:[112]提出了置换不变性的PS2-Net,将点云的局部结构和全局信息合并。Edgeconv[87]与NetVLAD[209]重复的级联起来,来获取局部信息和场景级别的全局特征。

Point Convolution Methods

这类方法通常试图提出在点云上进行更有效的卷积操作。

  • [76]提出了在各个点上的卷积操作,其中邻域点被分入至kernel cell,卷积时卷积核有权重。

  • [201]提出了称之为PCCN的网络,该网络基于参数化的连续卷积层。该层的核参数通过MLP和张成的连续向量空间所参数化。图12(b)

  • [65]提出了Kernel Point Fully Convolutional Network(KP-FCNN),基于Kernel Point Convolution(KPConv)。具体而言,KPConv的卷积权重由欧式空间的距离决定,卷积核的点数也并不固定。卷积核点的位置由一个最优化问题确定。

  • 在[211]中,作者提供了丰富的消融实验(ablation experiments)和可视化结果展示了集成方法中,感受野的重要性。同时他们提出了Dilated Point Convolution(DPC)操作,来集成邻近点的特征,进而取代KNN的方法。该方法在提升感受野上非常有效,并且可以容易地集成至aggregation-based networks。

图12

RNN-based Methods

为了获取点云中的内在环境特征,RNN也比用来进行点云的语义分割。

  • 基于PointNet[5], [213]首先将一大块点云转换成多尺度的块和网格块来获取输入级别的环境。接着,使用PointNet对各个块提取特征并送入Consolidation Units 或Recurrent Consolidation Units来获取输出级别的环境信息。实验结果显示,这样处理空间环境信息的方法在提高分割性能时是很重要的。

  • [212]提出了一种轻量的模块,利用了slice pooling layer将无序的点云特征转换成有序的特征向量。

  • [202]提出了Pointwise Pyramid Pooling (3P)模块来获取从粗到细的局部特征,并利用双向的RNN来实现端到端学习。图12(c)

  • 然而这类方法损失了丰富的几何特征和密度分布[220]。[220]提出了Dynamic Aggregation Network(DAR-Net)来同时考虑全局场景复杂度和局部几何特征。

  • [221]提出了3DCNN-DQN-RNN。该网络首先使用3DCNN学习空间分布和颜色特征,使用DQN进一步定位类别物体。最后级联的特征向量送入RNN中获取最后的分割结果。

Graph-based Methods

为了获取3D点云中潜在的形状和几何结构,一些方法使用了图神经网络。

  • [203]将点云看做是一些相连的简单形状和Superpoint的集合,并且使用有向图来获取结构和环境信息。接着讲大规模的点云分割问题分成三个子问题,即,geometrically homogeneous partition, superpoint embedding and contextual segmentation。图12(d)

  • 为了进一步提升,[214]提出了有监督的框架 to oversegment a point cloud into pure superpoints。

  • 为了更好地获取高维空间中的局部几何关系,[222]提出了基于Graph Embedding Module(GEM)和Pyramid Attention Network(PAN)的网络PyramNet。GEM模块将点云表述为有向无环图,并且在构建相似度矩阵时,利用协方差矩阵代替欧式距离。在PAN模块中,使用4个不同尺寸的卷积核来提取特征。

  • 在[215]中,提出的Graph Attention Convolution用来选择性地提取特征。该操作是通过根据不同相邻点和fea通道的空间位置和特征差异动态分配注意权重来实现的。GAC可以学习捕获鉴别的特征进行分割,并且与常用的CRF模型具有相似的特征。

  • Ma等人[223]提出了一种点全局上下文推理(PointGCR)模块,使用无向图表示沿通道维度捕获全局上下文信息。PointGCR是一个即插即用的端到端可培训模块。它可以很容易地集成到现有的细分网络中,以实现性能改进。

此外,最近的一些工作试图在弱监督下实现点云的语义分割。

  • Wei等人[224]提出了一种两阶段方法,用子云级标签训练分割网络。

  • Xu等人[225]研究了几种用于点云语义分割的不精确监督方案。他们还提出了一种仅能用部分标记点(例如10%)进行训练的网络。

5.2 Instance Segmentation

与语义分割相比,实例分割更具有挑战性因为它需要更准确和更小的细粒度,具体而言,他不仅需要将有着不同语义的点分辨出来,还需要将有着相同语义的实例分出来。总体而言,目前的方法可分为两个方向:基于候选框的方法以及不需要候选框的方法。一些里程碑式的方法具体见图13

图13:3D实例分割方法

5.2.1 Proposal-based Methods

这类方法将实例分割问题分成两个子任务:3D物体检测实例mask预测

  • [226]提出了3D fully-convolutional Semantic Instance Segmentation (3D-SIS) network,来实现在RGB-D数据上的语义实例分割。该网络从颜色和几何中学习特征。与3D目标检测类似,3D Region Proposal Network(3D-RPN)和3D ROI layer用来预测bounding box的位置,物体类别和实例的mask。

  • 根据合成分析策略,[227]提出了Generative Shape Proposal Network(GSPN)来产生3D候选框。这些候选框再通过R-PointNet修正。最终的标签通过预测各个点的二进制mask来得到。与直接从点云中回归3D bounding boxes不同,该方法移除了许多无用的候选框。

  • [228]通过将2D panoptic分割延伸至3D映射,提出了在线的体素化3D行社系统来实现大规模的3D重建,给语义标签以及实例分割。该方法首先利用2D语义和实例分割获得像素级别的panoptic 标签,接着将这些标签集成至体素map中。使用全连接的CRF来实现准确的分割。该语义映射系统可得到高质量的语义映射和具有判别性的目标检测。

  • [229]提出了单阶段的,不需要anchor的可训练网络称为3D-BoNet,来实现点云上的实例分割。该方法对所有可能的实例直接回归大致的3D bounding boxes,接着利用点级别的二分类器来获取实例标签。特别地,该bounding boxe的任务是被当做是最优分配问题。同时,使用了multi-criteria 损失函数来正则化生成的bounding boxes。该方法不需要任何的后处理操作,并且有很高的计算效率。

  • [230]提出了针对大规模户外LiDAR点云进行实例分割的网络。该方法使用self-attention blocks,在点云的鸟瞰图上学习特征表示,最后获取的实例分割标签基于预测的水平中心和高度限制。

  • Shi等人[231]提出了一种层级意识 变分去噪递归自动编码器(VDRAE) 预测室内三维空间布局。目标建议 由递归上下文迭代生成和细化吗 聚合和传播。

总体而言,基于提议的方法[226]、[227]、[229]、[232]直观直观,实例分割结果通常具有较好的客观性。然而,这些方法需要多阶段的训练和对新提案的修剪。因此通常都需要更多的时间和计算资源。

5.2.2 Proposal-free Methods

不需要候选框的方法[233-240]并没有目标检测的模块。作为替代的是,他们通常将实例分割认为是语义分割后的聚类步骤。具体而言,需要现有的方法都基于这样的假设:属于同一实例的点应当有着相似的特征。因此这类方法通常聚焦于判别式的特征学习和点云聚类。

  • [233]作为先驱性的工作,首次提出了Similarity Group Proposal Network(SGPN)。该方法首先对每个点学习特征和语义map,接着引入相似度矩阵来表示各对点之间的相似度。为了学习到更多的判别式特征,使用了double-hinge loss来互相适应相似度矩阵和语义分割的结果。最后使用启发式的NMS方法将相似的点归并进一个实例中。由于相似度矩阵的构建需要大量的内存消耗,该方法应用的规模收到了限制。

  • 类似地,[237]首先利用子流形稀疏卷积来预测各个体素的语义scores,急着引入聚类算法将点聚集至实例中。

  • 更进一步,[238]提出了structure-aware loss来学习判别式的embeddings。该损失函数同时考虑了特征的相似度和点之间的几何关系。最后使用基于注意力机制的graph CNN来自适应地对特征进行修正。

由于一个点的语义分类和实例标签通常互相决定,许多方法将该两个任务合并成一个任务。

  • [234]通过引入端到端可学习的Associatively Segmenting Instances and Semantics (ASIS)模块,将两个任务集成到一起。实验结果显示语义特征和实例特征可相互支撑,达到了一定的性能提升。

  • [235]首先引入了Multi-Task Point-Wise Network(MT-PNet), 给各个点分配标签信息,并且对特征空间的embedding进行正则。接着将预测的语义标签和embeddings融合至Multi-Value Conditional Random Field(MV-CRF)进行联合优化。最后,mean-field variational inference用来得到语义标签和实例标签。

  • [244]提出了Dynamic Region Growing (DRG) method,自动地将点云分成一系列的块,接着使用无监督的K-means++ 算法进行聚类。接着在环境信息的指导下进行大规模的patch segmentation。最后,这类有标签的patches融合进物体级别,得到最后的语义和实例标签。

为了实现在整个3D场景上的实例分割

  • [236]提出了混合的2D-3D网络,该网络学习全局一致性的实例特征和局部的几何特征。学习到的特征被组合起来实现语义和实例分割。

  • 在将点聚集成实例时,并非使用GroupMerging算法[197],而是更灵活的Meanshift[233]。

  • [246]同时学习了每个实例的独特的特征表示,以及对于物体中心的方向信息。使用feature embedding loss and directional loss 在隐空间中学习特征。Mean-shift 聚类和NMS用来将体素积聚成实例。该方法在ScanNet[11]基准上达到了SOTA性能。同时,预测出的方向信息可以确定实例的边界。

  • [247]引入了概率embeddings进行点云的实例分割。该方法也继承了不确定估计并且提出了新的损失函数。

  • Jiang等人[240] 提出了一种PointGroup网络,它由语义分割分支和偏移量预测 分支。双集聚类算法和ScoreNet 是否进一步利用以获得更好的分组结果

总体而言,不需要候选框的方法不需要耗费资源的区域生成步骤。然而,该方法的准确率较低因为该方法不检测物体的边界。

5.3 Part Segmentation

零件分割(Part Segmentation)的主要困难来自于两方面。第一,有相同语义标签的部件有着较大的几何变化和不确定性;第二,该方法需要对噪声和采样具有鲁棒性。

  • [248]提出了VoxSegNet,在3D体素数据上来实现细粒度的零件分割。Spatial Dense Extraction(SDE)模块用来在稀疏体素数据上提取大规模的具有判别性的e特征。学习到的特征被重新赋予权重,并且使用Attention Feature Aggregation (AFA)模块进行融合。

  • [249]将FCN与surface-based CRF组合,实现端到端的3D 零件分割。他们首先从不同的视角产生图像来实现optimal surface coverage,并将这些图片送入至2D网络产生置信图。接着,使用surface-based CRF将置信图集成起来,用来对整个场景打标签。

  • [250]引入了Synchronized Spectral CNN(SyncSpecCNN),在不规则非同构形状图上实现卷积。

  • [251]通过引入Shape Fully Convolutional Networks(SFCN),在3D网格上实现了形状分割,并且将三种低层次的几何特征作为输入。接着利用基于投票的多标签graph cut来修正分割结果。

  • [252]提出了弱监督的CoSegNet进行3D形状分割。该网络将一些未分割的3D点云形状作为输入,接着通过最小化group consistency loss,产生形状零件的标签。与CRF类似,预训练的part-refinement网络用来修正并且去噪。

  • [253]提出了Branched Auto-encoder network(BAE-NET)用来无监督,one-shot和弱监督3D形状分割。该方法将形状分割任务看做是特征学习问题并试图找到最简单的零件表示(通过最小化形状重建损失函数)。基于编码-解码的结构,该网络的每个分支都在学习特定零件形状的相容表示。学到的特征与点坐标一起送入解码器中,产生二进制的值(该值表示该点是否属于这一part)。该方法有着良好的繁华性,并且可以处理大规模的3D形状几何。然而该方法对处值较为敏感,并且并未利用到形状的语义信息,妨碍了该方法在每次迭代中得到鲁棒、稳定的估计。

  • [254]提出了一种自顶向下递归零件分解网络(PartNet),用于分层形状分割。与现有的将形状分割为固定标签集的方法不同,该网络将零件分割为级联二元标记问题,并根据几何结构将输入点云分解为任意数量的零件。

  • [255]针对零镜头3D零件分割任务,提出了一种基于学习的分组框架。为了提高跨类别泛化能力,该方法倾向于学习一种分组策略,限制网络在局部环境中学习零件级特征。

5.4 Summary

表5:分割结果对比

待进一步研究的问题有:

  • 由于常规的数据表示,基于投影的方法和基于离散化的方法都可以从二维图像中利用成熟的网络架构。然而,基于投影的方法的主要局限性在于3D-2D投影带来的信息丢失,而基于离散化的方法的主要瓶颈是分辨率的提高带来的计算和存储成本的大幅增加。为此,在索引结构基础上构建稀疏卷积是一种可行的解决方案,值得进一步探索。

  • 基于点的网络是最常被研究的方法。然而,点表示自然不具有显式的邻近信息,现有的大多数基于点的方法不得不借助于昂贵的邻近搜索机制(如KNN或ball query)。这从本质上限制了这些方法的效率,因为邻居搜索机制既需要很高的计算成本,又需要不规则的内存访问。

  • 从不平衡数据中学习仍然是点云分割中一个具有挑战性的问题。虽然有几种的方法取得了显著的综合成绩,但它们在类标很少的情况下表现仍然有限。例如,RandLA-Net在Semantic3D的reduced-8子集上获得了76.0%的整体IoU,而在hardscape类上获得了41.1%的非常低的IoU。

  • 大多数现有的方法都适用于小点云(如1m*1m,共4096个点)。在实际中,深度传感器获取的点云通常是巨大的、大规模的。因此,有必要进一步研究大规模点云的有效分割问题。

  • 已有少数文献开始研究动态点云的时空信息。预期时空信息可以帮助提高后续任务的性能,如三维目标识别、分割和完成。

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

点击进入—>3D视觉工坊学习交流群

干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

3D视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
2.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
3.国内首个面向工业级实战的点云处理课程
4.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
5.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
6.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
7.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

8.从零搭建一套结构光3D重建系统[理论+源码+实践]

9.单目深度估计方法:算法梳理与代码实现

10.自动驾驶中的深度学习模型部署实战

11.相机模型与标定(单目+双目+鱼眼)

12.重磅!四旋翼飞行器:算法与实战

13.ROS2从入门到精通:理论与实战

14.国内首个3D缺陷检测教程:理论、源码与实战

15.基于Open3D的点云处理入门与实战教程

16.透彻理解视觉ORB-SLAM3:理论基础+代码解析+算法改进

重磅!粉丝学习交流群已成立

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

扫描以下二维码,添加小助理微信(dddvisiona),一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿,微信号:dddvisiona

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

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

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

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

TPAMI三维点云深度学习技术综述相关推荐

  1. 应用于语义分割问题的深度学习技术综述(语义分割综述)

    应用于语义分割问题的深度学习技术综述 基本介绍 摘要 1 .引言 2.术语及背景概念 2.1 常见的深度网络架构 2.1.1 AlexNet 2.1.2 VGG 2.1.3 GoogLeNet 2.1 ...

  2. 应用于语义分割问题的深度学习技术综述

    论文地址:https://arxiv.org/abs/1704.06857 应用于语义分割问题的深度学习技术综述 摘要 计算机视觉与机器学习研究者对图像语义分割问题越来越感兴趣.越来越多的应用场景需要 ...

  3. 【深度学习论文翻译】应用于语义分割问题的深度学习技术综述01

    目录 一.前言 二.摘要 三.引言 四.术语及背景概念 1. 常见的深度网络架构 2. 迁移学习 3. 数据预处理与数据增强 五. 数据集及竞赛 1.2维数据集 2.2.5维数据集 3.3维数据集 一 ...

  4. 国防科技大学发布最新「3D点云深度学习」综述论文

    点击上方"深度学习技术前沿",选择"星标"公众号 资源干货,第一时间送达 3D点云学习( Point Clouds)作为近年来的研究热点之一,受到了广泛关注,每 ...

  5. 综述 | 国防科技大学发布最新「3D点云深度学习」综述论文

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :专知 [人工智能资源(书籍 ...

  6. 【论文速读】点云深度学习论文综述

    点云PCL免费知识星球,点云论文速读. 文章:Deep Learning for 3D Point Clouds: A Survey 作者:Yulan Guo , Hanyun Wang , Qing ...

  7. 隐私保护深度学习技术综述

    摘要 当机器学习算法需要为训练过程访问高度敏感的数据时,存在挑战和问题.为了解决这些问题,人们发展了几种保护隐私的深度学习技术,包括安全多方计算和神经网络中的同态加密.也有几种方法可以对神经网络进行改 ...

  8. 点云深度学习:多一维看世界【VALSE Webinar】Panel实录

    编者按:随着深度学习技术的进展,如何通过深度学习对三维数据进行学习并提高几何处理方法的智能性成为近期研究工作的热点.三维技术的发展和应用正在受到学术界和工业界越来越多的关注.VALSE Webinar ...

  9. 2020最新点云深度学习综述

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章. ●论文摘要 点云是在三维空间中点 ...

最新文章

  1. 技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起
  2. mustache 渲染文本一直渲染不出来
  3. JAVA设计模式(09):结构型-代理模式(Proxy)
  4. 0729------Linux网络编程----------使用 select 、poll 和 epoll 模型 编写客户端程序
  5. java仿真软件_一个简单的Java仿真程序
  6. 路由器下交换机下计算机不能共享,路由器下接交换机,路由下的电脑和交换机下的电脑如何实现打印机共享?...
  7. java用栈处理四则运算_Java 用栈处理四则运算
  8. PyTorch之Sequential
  9. 门槛回归模型_stata15:门槛模型
  10. 什么叫AI优先?不如你看谷歌CEO的办公位在哪儿
  11. 十大进销存软件排行榜 免费进销存软件推荐 进销存软件什么好用
  12. 云图说 | 勒索病毒防治解决方案
  13. linux下搜索文件名,Linux系统中怎么搜索文件命令大全
  14. aso优化师是什么_【aso优化师赵星凯】简述为什么要做aso?
  15. 将ACII码转为浮点数
  16. vue使用el-tabs实现标签页(内存+vuex)
  17. 仿新浪微博 android,android 仿新浪微博
  18. 使用O2OA二次开发搭建企业办公平台(二)平台部署篇:端口冲突和服务器端口配置
  19. 复现XXL-JOB 任务调度中心后台任意命令执行漏洞
  20. 三星ODIN刷机包的修改

热门文章

  1. RDD操作(超详细)
  2. RabbitMQ系列随笔
  3. 推荐10个值得一听的国外技术播客
  4. 库乐队安卓版_【浦东小学音乐教研】玩转“酷”乐队
  5. MacBook M1配置Pytorch
  6. 股市java_Java获取股市交易日
  7. mpvue+mpvueWeUI搭建小程序
  8. python负数取模_负数的取模运算
  9. android studio 出现: Design editor is unavailable until a successful build 问题的处理
  10. x32dbg、x64dbg逆向微信发送信息