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

安稳与你 提交于 2020-02-07 20:53:44

本文是最新的使用深度学习处理点云的综述文章,本文所提及的方法非常全,可以作为一个文章索引来看,而且本论文对方法的分类也很有意义。但是作为综述性文章,本文每章节的结论有点弱,并没有通过对文章的综述产生太多指导性的结论。但总体来说,这篇文章对于读者,起到了查缺补漏和搭建知识框架的作用。

接下来,有些我读过的论文,我会把链接放上去。我不翻译本文,只是总结一些我的理解。

Survey

1、数据集有:

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

还有一些自动驾驶的数据集也包含了3D object detection & tracking的问题。

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

  • 3D shape classification
  • 3D object detection and tracking
  • 3D point cloud segmentation

3、所有的方法按照解决的问题,使用的方法按照如下分类:
在这里插入图片描述

3D Shape Classification

该问题对应图像中的图像分类问题,是最简单的问题。按照图像处理的发展过程,可以认为,这部分提出来的网络将是Object Detection,Tracking和Segmentation方法的主干网络。

ModelNet40是一个普遍使用的数据集,排名可以在官网找到

Projection based

作者把Voxel的方法解归入到了Projection based的方法中,认为体素的构建过程是点云向3D栅格的投影过程。

Multi-view

典型的方法就是MVCNN[15],将pointcloud投影到不同的视角下,其网络框架如下:
在这里插入图片描述
本文漏掉了目前ModelNet40精度最高的方法RotationNet,也是Multi-view类型的。相比于MVCNN,RotationNet使用了更多的视角,并在处理了每个视角的关系。其网络结构如下:
在这里插入图片描述
Multi-View的方法有以下几个特点:

  • 理解简单,就是将点云投影到不同的view
  • 网络结构已有,投影到2D平面之后,就可以用处理图像的CNN处理
  • 精度高:RotationNet已有体现
  • 处理速度慢:要处理多幅图像
  • 对于一般场景不适用:因为要获取multi-view,例如智能车场景,就不可能获取多个view的投影

Voxel

典型方法以VoxNet[22]为例,就是把点云投影为占据栅格,然后使用3D convolution进行计算,具体结构如下图:
在这里插入图片描述
Voxel的方法在Object Detection的网络中也广泛使用,而其主干网络拿出来就可以作为Classification的网络使用,不同的代表有使用3D卷积的VoxelNet,使用2D卷积的PIXOR,使用Pointwise的feature构建Voxel的PointPillar等

Voxel的有以下特点:

  • 理解容易,就是栅格化然后使用3D或者2D卷积
  • 速度慢,占用内存大:内存占用和计算量都是与分辨率的立方有关
  • 在体素化的过程中容易丢失信息,分辨率(精度)与计算效率的trade-off明显

Point based

Pointwise MLP network

这类方法以PointNet和PointNet++为主要代表,也是目前影响力最大的方法,Object Detection中Point based的主干网络大多用此网络搭建。典型结构如下:
在这里插入图片描述

PontNet++的网络详解

在Pointnet++的基础上,又出现了一些改进方法

Pointwise MLP network类方法的特点如下
在计算过程中,每个点都对应一个feature,计算每个点的feature都是使用MLP计算,MLP的输入时某个点的feature,输出是这个点的新的feature。对应图像处理中的理解就是,都使用1x1的卷积核,每个像素的feature的计算过程只与自身的feature有关。

Convolution-based Networks

相比于Pointwise MLP的方法来说,Convolution-based方法在于一个点的feature在计算的时候使用了其他点的feature,类比于图像处理中,使用的卷积核不再是1x1,而是出现了3x3这种的卷积核。
而这类方法又分为两种,一种是3D Continuous Convolution Networks(3D连续卷积网络),一种是3D Discrete Convolution Networks(3D离散卷积网络)。理解这两者的区别可以先参考一下图像处理中的RoI Pooling与RoI Align,Conv和Deformable Conv。RoI Pooling和Conv都是对bin处理的,也就是说,认为feature map是与像素一样,分成栅格的。而后者RoI Align和Deformable Conv则认为特征在空间内是连续的,而feature map只不过是离散的采样,通过差值可以较好的恢复特征空间内任意一点的特征。
理解了上述区别,就可以看懂下面一张图:
在这里插入图片描述
(b)认为特征空间是连续的,©认为特征空间是离散的。具体的细节需要看具体的论文。

Continuous Convolution Network

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!