【论文】点云识别与分割:PointNet

1 引言

早期三维场景的识别与分割主要有三种方法,一是多视角,即将多张二维图片堆叠成三维立体做以处理,二是体素化,即对若干能表达实体的立方体素进行处理,三是非欧式处理。点云相较来说容易获取且表达简单,PointNet就是一种点云的识别与分割的方法。

2 分析

点云主要有三个性质,它决定其不可使用简单的深度学习方法进行分割处理;
一是无序性,即点云的输入是无序的,但是其在空间中呈现的效果不会因顺序发生改变;
二是空间相关性,点云常表示为 ( x , y , z , R G B ) (x,y,z,RGB) (x,y,z,RGB)格式,空间互相临近的点会对全局特征以及点特征造成影响;
三是转换不变性,即点云经过彷射变换后,其经过神经网络后的输出值不应有变换。

3 PointNet

针对点云在深度学习中的特性, P o i n t N e t PointNet PointNet提供了新思路以解决。
【论文】点云识别与分割:PointNet_第1张图片

3.1 对称函数

对称函数的对称是针对输入值而言,比如定义 f ( a , b ) = a + b f(a,b) = a + b f(a,b)=a+b则对于输入值 ( 1 , 2 ) (1,2) (1,2) ( 2 , 1 ) (2,1) (2,1)而言 f ( 1 , 2 ) = f ( 2 , 1 ) f(1,2) = f(2,1) f(1,2)=f(2,1),函数的输出结果并未因为输入值的顺序而发生改变,这样的函数我们称为对称函数。

如何显式的去除点云的无序性所带来的影响呢?此处采用了 M a x P o o l i n g Max Pooling MaxPooling最大池化函数,它将取出矩阵每一列中最大的元素。

3.2 T-net

T − n e t T-net Tnet是一个自适应生成彷射矩阵的神经网络,它将会使输入矩阵转换至合适后续操作、提升结果质量的状态。
在这里插入图片描述

3.3 处理流程

1)输入点云数据 n × 3 n\times3 n×3矩阵,经历预处理环节,借由 T − n e t T-net Tnet生成彷射矩阵对其进行变化,使之转换为更良好的角度;
2)历经MLP(64,64)生成 n × 64 n\times64 n×64矩阵,借由 T − n e t T-net Tnet生成彷射矩阵对其进行变化,在特征层面对齐;
3)历经MLP(64,128,1024)生成 n × 1024 n\times1024 n×1024矩阵;
4)使用对称函数 M a x P o o l i n g Max Pooling MaxPooling,取出全局向量 1 × 1024 1\times1024 1×1024
5)历经MLP(512,526,k)生成 1 × 1\times 1× k k k矩阵。
这里的 1 × 1\times 1× k k k矩阵是输入点云相对于 k k k种对象的得分,即得分越高,该输入是这类对象的概率越大。
至此完成点云识别。
6)取出2)中获得的处理完的特征向量,将其与4)中的全局向量做以拼接;
7)经由MLP(512,256,128,128,m)生成 n × n\times n× m m m矩阵。
这里的 n × n\times n× m m m矩阵是每一点对于 m m m种对象的得分。
自此完成点云分割。

4 说明

4.1 无序性

参见本人在浅层神经网络对于神经元的描述,我们对于输入值提供了MLPs,最后一层提供了1024个神经元,即1024个思考角度,这1024个神经元对输入点进行思考,最终生成 n × 1024 n\times1024 n×1024矩阵,矩阵中的每一个元素代表了对应神经元对该点的思考结果。

M a x P o o l i n g Max Pooling MaxPooling对每一列进行操作,选出了该列最大的一个值,共计 1024 1024 1024个,该值的选择不以行作为依据,即初始点输入的顺序不会改变最终 M a x P o o l i n g Max Pooling MaxPooling的结果,即成功解决了输入点无序性的问题。

同时, M a x P o o l i n g Max Pooling MaxPooling的输出值将输入值以 1024 1024 1024个点所概括,表达了点云数据的全局性质,当输入值发生微小扰动,其结果也不会对输出产生较大影响,提供了较高的稳定性。
【论文】点云识别与分割:PointNet_第2张图片

4.2 空间相关性

在点云分割中将特征向量与全局向量结合,充分考虑了点与点,点与实体空间关系对结果造成的影响

4.3 转换不变性

通过 T − n e t T-net Tnet使问题的到了解决,无论输入如何,都将自适应的转换为恰当的角度。
【论文】点云识别与分割:PointNet_第3张图片

5 总结

亮点: M a x P o o l i n g Max Pooling MaxPooling解决了无序性的问题并提供了模型稳定性。

你可能感兴趣的:(点云,深度学习,神经网络,python)