Advertisement

【论文阅读】【综述】Deep Learning for 3D Point Clouds: A Survey

阅读量:

文章目录

  • Survey

    • 3D Shape Classification
      • Projection based
        • Multi-view
    • Voxel
  • 基于点的网络架构

      • 点状MLP网络
  • 卷积型网络

  • 基于图的网络架构

  • 基于数据索引的网络架构

  • 三维物体检测技术

      • 多个视角分析方法
        • 基于分割的算法框架
    • 断面法辅助的检测模型

      • Single Shot Methods

接下来对我来说还不是特别熟悉的内容是

复制代码
  * Instance Segmentation
  * Part Segmentation

这篇综述文章采用了最新的深度学习技术来处理点云数据,并深入探讨了其中的关键算法与应用场景。文中提到的方法非常全面,并且覆盖了多个研究领域中的典型案例。同时,在方法分类方面研究也具有重要意义。然而作为综述类的文章?它每章的小结部分略显平淡缺乏深入分析与总结作用?但总体而言这篇文献仍然能够帮助读者快速了解相关技术并为其构建系统的知识架构提供良好的参考价值

对于做点云的同学,我还是非常建议阅读以下本文的。

本博客与其他相关关于该survey的博客的主要区别在于:本博客不对该survey进行语言上的转换或翻译;而是对其中提到的方法进行深入分析和详细阐述,并结合自身对这一领域的学习和研究进行总结和归纳。

Survey

1、数据集有:

  • ModelNet [6]
  • ShapeNet [7]
  • ScanNet [8]
  • Semantic3D [9]
  • KITTI Vision Benchmark Suite [10]

另外一些自动驾驶的数据集包含...3D object detection & tracking的问题

2、3D问题的分类与图像中的基本是一样的:

  • 三维形状分类
    • 三维物体检测与追踪
    • 三维点云分割

3、所有的方法按照解决的问题,使用的方法按照如下分类:

在这里插入图片描述

3D Shape Classification

该问题涉及图像中的图像分类任务,并属于最基本的问题。从图像处理的发展脉络来看,则可断定,在这一领域中所提出的此类网络将成为Object Detection、Tracking以及Segmentation等技术手段的主要架构。

ModelNet40作为一个广泛应用于多个领域的数据集,在其官方网站官网上即可获取相关排名信息。

Projection based

作者将其Voxel方法归类于Projection-based方法中,并认为体素构建过程被视作点云向3D栅格的投影过程。

Multi-view

主流的方法是MVCNN[15]。通过多角度投影实现对点云数据的处理。其网络架构设计为...

在这里插入图片描述

本文忽视了处于ModelNet40领域性能领先水平的方法RotationNet这一重要技术,在其分类任务中表现突出。相较于MVCNN而言,在采用了更为多样的视角并综合考虑各角度间的相互关系的基础上进行优化后得到的结果更加优秀。

在这里插入图片描述

Multi-View的方法有以下几个特点:

  • 实现简便在于将点云投影至多套视角
  • 现有网络架构可直接接受二维数据并运用卷积神经网络(CNN)进行分析
  • 该方法具有较高的精度表现 RotationNet验证了其优势
  • 由于需要遍历多帧数据以获取完整信息 处理速度会受到限制
  • 通常这类方案在非多视图场景下效果有限 例如自动驾驶车辆无法实时收集多角度数据
Voxel

以VoxNet[22]为例展示了典型的处理方法。通过将点云映射至占据栅格的形式,并随后采用3D卷积操作进行计算的具体过程如图所示:

在这里插入图片描述

Voxel-based methods have been extensively employed in object detection networks, where their main components are often utilized for classification tasks. Additionally, the extracted backbone network can directly serve as a classification network. Among notable examples are VoxelNet, which employs 3D convolutions, PIXOR utilizing 2D convolutions, and PointPillar that constructs a voxel feature map using pointwise convolutions.

Voxel的有以下特点:

  • 易懂之即为栅格化后配合3D或2D卷积使用
    • 运算较慢且内存消耗高:两者皆与分辨率的立方呈正比
    • 体素化过程易导致信息损失较多,在提升分辨率或精度时会显著影响计算效率

Point based

Pointwise MLP network

这类方法主要由PointNet和PointNet++构成,在当前领域中具有显著影响力。在Object Detection领域中基于Point的主干网络多采用该架构设计。典型结构如下

在这里插入图片描述

PontNet++的网络详解

在Pointnet++的基础上进一步发展出了若干改进方案,并列出了相关链接。

Pointwise MLP网络类方法具有以下特点
在计算阶段中,在每一步操作中均存在对应的特征表示,在这一过程中通过多层感知机进行特征提取。其中每一步的操作机制具体表现为:其输入为空间位置处对应的特征向量,并经过多层感知机处理后输出结果即为该采样单元的新特征表示。从图像处理的角度来看,则等价于对每一空间位置处的信息进行独立且自洽的信息提取操作,并且这种操作仅依赖于自身位置处的特征信息。

Convolution-based Networks

相较于Pointwise MLP的方法而言,在计算每个点特征时采用了相邻点的信息。其区别在于,在计算每个点特征时采用了相邻点的信息,并如同在图像处理中不再局限于使用1×1尺寸的卷积核而采用了更大尺寸如3×3大小的卷积核。

而这类方法主要分为两类:一类是基于3D连续卷积网络(3D Continuous Convolution Networks),另一类则是离散卷积网络(3D Discrete Convolution Networks)。了解它们之间的差异可以从图像处理领域的RoI Pooling与RoI Align开始。Conv和Deformable Conv的主要区别在于:前者将feature map视为与像素等同并将其划分为栅格的形式;而后者则认为特征在空间中是连续的,并将feature map视为离散采样的结果,在这种情况下通过差值可以较好地恢复任意一点的空间特征。值得注意的是,在这种假设下权重空间也是连续变化的:正如KPconv文中所述:"we believe that having a consistent domain for g helps the network to learn meaningful representations."其中g表示卷积核。

理解了上述区别,就可以看懂下面一张图:

在这里插入图片描述

b) 认为特征空间具有连续性;c) 认为特征空间具有离散性。具体的细节需要参见相应的论文文献。

Continuous Convolution Network

为了更好地了解Continuous Convolution Networks的内容,请深入讲解RS-CNN和KP-CNN,并访问该链接以获取详细信息

离散卷积网络 本文将深入探讨 Pointwise 卷积神经网络[49]以及 PointCNN[52] 等相关内容,并旨在帮助我们更好地理解离散卷积网络的基础知识和相关技术。

Graph based

我对这部分内容了解得还不够深入。但目前仅涉及到了基于图的方法在空间域中的应用。下面将简要介绍一种典型的DGCNN算法的基本原理及其应用前景。

DGCNN的关键公式为如下:

在这里插入图片描述

新增的特征变量是基于邻域内的点集{x_j}与当前点{x_i}之间的关系进行分析,并通过映射函数h_\theta(·)进行数据转换。随后采用求和运算或取最大值的操作来完成聚合。

其中,DGCNN采用了h_\theta(x_i,x_j)= MLP(x_i, x_j−x_i)这一公式。另外一个是,在x_i的邻域计算过程中,并非仅仅依据点与点之间的距离进行判断,而是包含了特征空间中的距离信息。参考文献中提到:"Our experiments suggests that it is possible and actually beneficial to recompute the graph using nearest neighbors in the features space produces by each layer. 通过使用每一层生成的特征空间中的最近邻居来重新计算图,在实验中发现这是可行且有实际效益的。这种方法的关键区别在于它与固定输入图上工作的图CNN不同。动态更新图是我们的架构命名的原因——Dynamic Graph CNN (DGCNN)。

另外值得文章中提到了Pointnet系列属于Graph CNN的一种特例。具体而言,点网采用的是h_\theta(x_i,x_j)=MLP(x_i)来实现基础特征提取,在点网++结构中则通过自适应层(SA)计算h_\theta(x_i,x_j)= MLP(x_j-x_i)来完成更为复杂的特征提取过程。进一步比较DGCNN和RS-CNN,请参考图2展示了RS-Conv的核心公式。

在这里插入图片描述

与DGCNN中的h_\theta(·)相似的是M(h_{ij})这一部分,在计算过程中采用了类似的函数形式。值得注意的是,在这一设计中还引入了σ函数来进行激活操作(\sigma(A())),而这一过程在DGCNN中则对应于类似的σ函数应用(\sigma())。然而,在具体实现上存在显著的区别:在RS-Conv架构中,在后续计算阶段将通过f_{x_j}进行点积操作来实现特征传递;这等价于说,在这种设计下M函数实际上承担着类似于权重矩阵的作用;而相比之下,在DGCNN架构中生成的特征则是直接由节点表示所承载的信息所决定。这种设计上的差异源于RS-Conv输入的x_j仅包含点坐标信息作为基础特征向量;而相比之下,在DGCNN架构中节点特征则包含了更为丰富的表征信息。

Data Indexing based

有的用Kd-tree,有的用Hash,这里就说一下Kd-Net。Kd-Net的结构如下:

在这里插入图片描述

Kd-trees是一种用于管理点云的数据结构,在计算机视觉领域具有重要应用价值。它采用二叉树结构对三维空间中的散乱点集进行组织与查询处理,在空间划分方面展现出良好的性能特点。每个叶子节点对应于一个具体的三维空间中的点实体,在同一层中的相邻节点具有关联性。该算法通过递归划分的方法实现了高效的近邻搜索功能,在特征提取过程中表现出显著的优势。图中用圆形标记显示特征值,并通过箭头连接的方式表示多层感知机(MLP)模型之间的信息传递路径

同样可以发现DGCNN与Kd-Net之间的联系:如果将DGCNN中在邻域内选取点的方式改为利用kd-tree结构进行查找,并将k相邻的点缩减为单个最近邻点,则会形成Kd-Net。这种早期方法虽然在一定程度上解决了相关问题(它代表着这一类方法),但我认为这种方法可能会被基于卷积或图论的方法取代。

3D Object Detection

我可以详细解读关于3D Object Detection领域的相关论文,并分享我的见解。在该survey中的一些内容我也已经详细阐述过,在此基础上我会补充一些新的见解。此外,在该 survey 暂未涉及的一些内容也会有所涉及。本文重点阐述了与分类方法相关的知识。

Region Proposal-based Methods

就是我们常说的Two-Stage方法,在实际应用中具体体现为两个主要步骤:首先需要生成每个样本对应的候选框(即Proposals),接着根据 Proposal 内部特征进行优化以获得更精确的结果。其中,在图像领域中具有代表性的是Faster-RCNN模型。具体来说,在 Proposal 生成策略上存在以下几种不同的实现方式

Multi-view Methods

说是基于多视角的方法(Multi-view Methods),但实际情况是Proposals的主要生成过程主要基于俯视图(BEV)进行。基于俯视图进行Proposals生成的主要优点在于

  • Proposal在俯视图中是独立呈现的,在前视图中则容易出现重叠。
  • 前视图画有透视效果,在不同距离时点上同一个类别的Proposal会呈现出不同程度的比例变化。

基于对BEV的需求,在实际应用中,默认的做法是对点云数据先将其转换为栅格形式(即体素化),这使得后续的GridConvulation能够有效地捕捉空间关系并提取特征信息。”

Multi-view既然叫Multi-view,自然需要考虑Multi-view特征的融合,所以有一些文章就在讨论如何进行Multi-view的融合。而前视图本身又是相机视角,所以何不在前视图中引入RGB这个特征?这就是本survey中Multi-view Methods中的First所讨论的事情。
Multi-view Methods中的Second所讨论的则是如何增强网络的表示性能,因为用了2D Convolution,所以很多增强手段就可以借鉴图像中得,例如Second中提到的SCANet,这篇文章细看下来,与CBAM就很像啊。

Segmentation-based Methods

如前所述,在某种程度上来说,在栅格化(体素化)这一过程中 Multi-view 实际上与其形成了对比关系,并且相较于第一部分 3D Shape Classification 中基于投影的方法而言

在借鉴RS-CNN中与其他图像识别网络进行比较时,前几行能够清晰地反映出两者之间的相似性;而后五行则会自然地推导出相关结论。

Image Classification 3D Shape Classification
像素
特征图 点云中每个点的特征的集合
特征图的降采样 点的降采样
由特征图的中的一个cell的特征回归box的参数 由点云中的点的特征回归box的参数
由特征图的中的一个cell的特征分类该cell是否对应一个box 由点云中的点的特征分类该点是否对应一个box

其基本思想即为基于分割的方法核心理念。具体而言,在特征提取阶段我们计算每个点的特征向量,并在后续阶段利用这些特征信息来进行box参数预测。

Frustum-based Methods

结合相机与激光雷达进行信息融合的另一种思路是能否参考现有的二维物体检测技术成果?首先在图像中标识出车辆的位置随后利用透视变换将其转换成三维棱柱形状接着对该三维结构进行检测这一过程类似于基于分割的方法

这类方法的重要代表即是Frustum-Net,
然而这也是一种早期的方法。
目前主流方法已被广泛应用于BEV中生成proposals,
其中RGB图像主要用于特征提取。

Single Shot Methods

我认为这块内容的分类存在不足。该survey将Single Shot Methods划分为两种类型:BEV-based Methods和Point Cloud-basedMethods

先说说为什么我觉得问题,我们一步一步来理解:
1)可以把这两种方法分别对应到Region Proposal-based Methods中的Multi-View Methods和Segmentation-based Methods。因为我在上面已经阐述了,Multi-View Methods基本是在BEV中生成Proposal,所以其处理方法是与BEV-based的方法是一样的,无非是一个Two-stage和One-Stage的问题。Segmentation-based Methods则是使用Point生成Proposal,与Point Cloud-based Methods这个名字对应。
2)那么如果按照这个理解方法,那么原文中对Point Cloud-based Methods的定义就出现了问题:*“These methods convert a point cloud into a regular representation (e.g., 2D map), and then apply CNN to predict both categories and 3D boxes of objects.”*所以说白了,其实这个regular representation和2D map其实也是栅格化(体素化)的一种,无非是在高度上,只有一层栅格而已。3)再看Point Cloud-based Methods中所列举的方法,基本也是用了栅格化的手段(栅格化的高度也并非都是1层,也就是说并不是都变成了2D map),然后很使用CNN。看框架而言,这就是BEV-based Methods啊。

我想分享一下我对Point Cloud-based Methods的理解:首先讨论图像处理中的2D Object Detection问题时会发现从观察RetinaNet与Faster RCNN的角度来看它们在功能上具有相似之处这反映出二维物体检测任务中的一体化与分阶段策略之间的联系

将此与3D Object Detection进行对比我发现基于点云的方法在结构上类似于PointRCNN所采用的RPN框架然而在实际应用中我发现这类方法并不存在可能是由于其检测效果未能达到预期水平

我不同意认为 survey 中的这种分类方法存在不足之处。实际上,我认为这种命名方式不够准确或恰当,并且从实用角度来看,将数据分成两个类别并无实际意义。


接下来就是我并不是很了解的部分

我的相关领域知识尚浅,在跟踪、流估计以及分割方面的研究经验不足。通过阅读该综述论文,涉及领域的学术研究相对较少,未来会更加注重记录从该综述中获得的知识点。

3D Tracking

三维追踪与三维物体检测相关联,并需关注物体的边界框。然而,在survey中讨论到的三维追踪所涉及的不同挑战包括遮挡、光照变化以及缩放问题。然而,在二维追踪中遇到的困难,在三维追踪中这些问题相对容易处理。

  • occlusion:在自动驾驶系统中被追踪的三维物体在其运动过程中始终位于三维空间中的不同区域以避免相互遮挡现象。特别是在俯视图观察下各物体彼此分离。
    • illumination:通过使用激光雷达技术可有效解决光照环境下的测量问题。
    • scale:同样地,在俯视图视角下各物体本身的尺度大小并未因位置变化而发生改变。

而对box的检测问题则在3D Object Detection领域得到了有效的解决。然而,在后续阶段时使用各种滤波器进行目标跟踪的思想与2D的情形基本一致。

3D Scene Flow Estimation

此问题可类比为图像内预测光流的问题。此问题可理解为不再仅进行Object的Tracking而是对整个场景中每一个点进行Tracking这使问题难度明显提升在此过程中我对FlowNet的相关研究略知一二而本综述主要针对FlowNet所讨论的一个关键问题是动态场景下的Tracking效果如何进一步提升特别是在以动态障碍物为主导的复杂环境中目前仍面临诸多技术挑战这些问题在实际应用中的表现效果往往不尽如人意

3D Point Cloud Segmentation

其核心概念在于采用基于3D Shape Classification的技术构建主干网络,并随后构建Encoder-Decoder架构。在输入数据中提取每个元素对应的特征向量,并通过这些特征向量计算出分割掩码。

Instance Segmentation

3D Semantic Segmentation

基于所述的基本思想, 因此, 3D Semantic Segmentation的方法也可以采用与3D Shape Classification类似的分类方式进行分类. 在设计该网络时, 许多学术文献都会采用Decoder结构并结合Semantic Segmentation进行测试, 用于验证其性能.

Projection based

Projection based包括以下方法:

  • Multi-view: 通过将Point Cloud数据映射到多视角的二维图像中,并运用二维语义分割的方法进行分析后整合这些多视角的数据来推断Point Cloud的空间分割情况。该方法的主要弊端在于计算量较大且结果易受观察角度的影响。
  • Spherical Representation: 主要用于自动驾驶场景中的语义分割任务。这种技术源于激光雷达设备的工作原理——它只能探测前方物体而不具备侧向感知能力。其基本思路与Multi-view方法相似之处在于仅采用单一视角进行数据处理。
  • Voxel: 在将点云转换为体素表示的过程中会遇到一定的挑战:一方面由于信息压缩可能导致精度降低;另一方面体素网格越密集表示越细致但计算复杂度也随之上升。然而其显著优点在于良好的可扩展性:基于体素的网络架构能够适应不同尺度的空间分布特性无需预先固定点云的具体维度。
  • Permutohedral Lattice Representation: 该方法尚不清楚具体细节
Point-based networks

同样,分为:

  • Point-wise MLP
  • Convoution-based
  • Graph based

Instance Segmentation

Part Segmentation

全部评论 (0)

还没有任何评论哟~