目录

1.数据特征

1)xyz位置坐标形成的空间结构

2)反射强度

2.数据挑战

1)不规则性

2)非结构性

3)不完整性

3.点云深度学习方法

PART1  -- 间接方法 

1)基于体素

2)基于投影(包括多视图)

PART2  -- 直接方法 

邻域搜索

边卷积(EdgeConv)公式

1)PointNet And PointNet++

2)基于图的方法


这篇博客是对点云深度学习方法的一个简单总结,之后会继续修改,欢迎指正。


1.数据特征

1)xyz位置坐标形成的空间结构

点云 神经网络 3d模型 点云深度_点云

2)反射强度

按照强度的灰白颜色渲染:

点云 神经网络 3d模型 点云深度_深度学习_02

2.数据挑战

1)不规则性

由于设备和使用方式等的不同,采集到的点云密度不相同,一个点云中的不同区域也不相同。

2)非结构性

点云不同于图像数据,图像数据按照栅格矩阵排列,是结构化的数值。而点云作为空间中离散的点,没有固定的结构用来计算,同时采集点云过程中可能产生一些随机的噪声点,必须通过某种手段去除这些噪点。

3)不完整性

由于物体遮挡,采集到的点云可能不完整。天气也会对点云产生影响,雨雾天气对lidar采集点云数据产生的影响较大。

3.点云深度学习方法

PART1  -- 间接方法 

将非结构化的点云通过某种方式变成结构化的数据,接着就可以使用传统图像领域积累的大量方法进行学习。

1)基于体素

首先对点云建立体素,以体素近似代表点云形成结构化的数据,然后对结构化的三维数据应用3D卷积,3D-GAN等常见的深度学习方法。

点云 神经网络 3d模型 点云深度_卷积_03

2)基于投影(包括多视图)

用投影的办法,将点云转化成栅格图片,由于点云是三维坐标,因此可以从多个视角投影到栅格,进而再使用2D图像上的方法进行学习和融合。

Multi-View Convolutional Neural Network(MVCNN):

点云 神经网络 3d模型 点云深度_点云 神经网络 3d模型_04

PART2  -- 直接方法 

邻域搜索:

K近邻、半径搜索等


边卷积(EdgeConv)公式:

一种聚合节点信息的方法

点云 神经网络 3d模型 点云深度_深度学习_05

点云 神经网络 3d模型 点云深度_点云_06

:参数表示节点i和与节点i相连的节点j,不同方法中的参数有所不同

 

点云 神经网络 3d模型 点云深度_卷积_07

:Θ表示c'*c维的矩阵(类似图像卷积的卷积核),参数X的节点特征维度为c,矩阵乘法Θ*X将使特征维度变为c'维,然后经过一个RELU激活的MLP(全连接层)

点云 神经网络 3d模型 点云深度_卷积_08

:聚合函数,可以是sum/avg/min/max 

 经过一次边卷积后,每个节点将融合与之连接点的信息,特征维度将变为a维。该公式可以   广泛表达下述方法。

1)PointNet And PointNet++

PointNet:

PointNet创造性的提出直接针对点云的深度学习方法。

对于PointNet,边卷积表示为 --

点云 神经网络 3d模型 点云深度_深度学习_09

由于PointNet没有考虑邻域节点之间的联系,

点云 神经网络 3d模型 点云深度_深度学习_10

的参数只有Xi。

PointNet特征提取架构(每个节点单独经过共享参数的边卷积):

点云 神经网络 3d模型 点云深度_点云 神经网络 3d模型_11


完整的PointNet架构:

点云 神经网络 3d模型 点云深度_卷积_12

PointNet++:

针对PointNet没有考虑领域节点的联系,改进并诞生了PointNet++。

对于PointNet++,边卷积表示为 --

点云 神经网络 3d模型 点云深度_人工智能_13

考虑了领域节点信息的PointNet++,

点云 神经网络 3d模型 点云深度_深度学习_10


点云 神经网络 3d模型 点云深度_卷积_15


点云 神经网络 3d模型 点云深度_点云 神经网络 3d模型_16

矩阵的concate,其中Xj代表邻域节点j,Xj-Xi代表节点i与邻域节点的相对距离。

PointNet++特征提取架构:

点云 神经网络 3d模型 点云深度_点云_17


完整的PointNet++架构:

点云 神经网络 3d模型 点云深度_深度学习_18

2)基于图的方法

点云可以连接边从而构成图论中的图,因此,基于图的方法有很大的优势,只要对点云连边建立一个图,就可以使用一般的图卷积神经网络方法。

DGCNN (Dynamic Graph CNN)

DGCNN采用K近邻搜索,建立Graph。特别的,搜索是在特征空间上进行的,在进行边卷积后,特征空间将变成公式中的c'维,在每一次边卷积后神经网络将动态搜索邻域建立Graph,使得神经网络拥有了更进一步的自我调整能力,这也是DGCNN名字的由来。

DGCNN的边卷积表示为 --

点云 神经网络 3d模型 点云深度_点云_19

其中Xi代表节点i,Xj-Xi代表节点i与邻域节点的相对距离,采用了共享参数的MLP,将自己以及邻域的信息相加后再用一个最大池化层选择K条中的一条信息。

点云 神经网络 3d模型 点云深度_点云_20

 为什么DGCNN使用K近邻搜索?

 因为MLP层共享的缘故,所以需要使图中每个节点的度数相同。

完整的DGCNN架构:

点云 神经网络 3d模型 点云深度_深度学习_21

其它思考:

添加注意力机制,如可以将MaxPooling替换成注意力,也就是图卷积中的AG-Net