目录
五. 点云数据特征提取--PointNet/PointNet++
一. 点云数据
点云数据由激光雷达扫描得到,利用大量的离散数据点描绘具体实际的几何信息等,每个点都有唯一的三维位置坐标(x,y,z)。
二. 点云分割与分类
点云分割:针对一个具体图像,用不同颜色的点分别标定不同类型的物体,即是对该图像进行点云分割。在传统的RGB数据中,我们需要对每一个像素点进行判断。而点云数据中,则是需要对每一个具体的点进行判断。包括部件分割和场景分割。
点云分类:将点云分到不同的点云集,同一个点云集具有相似或相同的属性。
三. 点云生成与补全
点云生成:利用深度学习将图像数据转换成点云数据。
点云补全: 激光雷达扫描得到的点云数据具有近密远疏的特点,存在数据不完整的弊端。点云补全任务通过编码(Encoder)解码(Decoder)网络将不完整的数据转换成完整数据。
(一). 点云补全方案
利用骨骼点逐级恢复点云(骨架
细节)
利用最远点采样的方法构建骨骼点
1. 整体网络模型
整体网络模型由生成器和判别器组成。生成器中,MRE:对不同数量的点云分别进行特征提取。
CMLP:PointNet-MLP中是对最后一层进行maxpool,但最后一层的特征更趋于表现全局的特征。为了表现不同层次的特征,CMLP对每一层都进行maxpool,并将每层次maxpool后得到的特征拼接在一起。
生成器中,PPD:对MRE得到的特征进行全连接降维,并分层预测。在primary预测较少的骨骼点后,需要进行下一步更多点的预测,此时应该结合上一步预测特征进行预测。
在判别器中,对预测值与真实值进行校验。
2. 优化目标
(损失函数)
四. 点云物体检测与配准
点云配准:利用具体实际的不同视角图间的对应点将不同视角合成、配准成完整的立体图像。
五. 点云数据特征提取--PointNet/PointNet++
在对图像进行分割等操作之前,我们需要先提取数据的特征。在RGB数据中,我们可以利用backbone提取特征。对于点云数据,我们可以利用PointNet或PointNet++将每一个点转换成特征(向量),其中PointNet++是对PointNet的优化(考虑了局部数据间的关系)。
(一). PointNet
1. 基本出发点
考虑到点云数据具有无序性,搭建的模型需要具备置换不变性(即任意交换数据点的顺序不影响模型输出结果),例如求和、max函数等。
PointNet直接利用Max函数求特征向量每个维度最大值,但为了避免过度损失特征,PointNet先将特征升维再做Max操作。
2. 基本模型架构
首先,对多个三维的位置数据进行多次全连接或卷积,得到高维的特征。然后,对高维的特征进行Max操作得到一个特征向量。最后,经过权重参数矩阵将得到的特征向量映射成所需的分类个数。
3. 整体网络架构
模型输入数据为n×3的矩阵,其中n为点云个数,3为点云位置坐标。经过多次全连接后,依次将每个点的维度从3升至64、128、1024。对升维后的数据进行最大池化(maxpool)操作,取每一个维度中的最大值,重新组合成一个1024维向量(即全局特征)。如果是进行分类任务,需要继续对1024维的全局特征进行多次全连接,降维至所需的分类个数,并输出该整体特征。如果是进行分割任务(针对每一个点进行分类),为了兼顾点的自身信息和数据全局信息,每个点都将表征自身信息的64维向量与1024维全局向量进行拼接,然后类似于整体的分类,将每个点的特征向量降维至总分类的个数。
(二). PointNet++
为了优化PointNet仅考虑个体或整体而无法融合局部特征,PointNet++从局部入手,并维持整体思想不变。
1.基本出发点
2. 基本模型架构
(1). 中心点的选取--最远点采样
尽可能覆盖整体数据
随机选取第一个中心点
遍历其余所有点,当点到已有中心点的距离最长时,选其作为中心点。其中,点到已有中心点的距离定义:该点到所有中心点的距离的最小值。
(2). 分组
为了使分组后每个组中的点的个数一致,当簇内点较少时,取离簇中心最近的点进行复制多份,当簇内点较多时,将里簇中心最远的多个点舍去。可以规定不同的分组半径与簇内点个数。
(3). 对各组进行特征提取
其中,维度变换即是中心点个数与每个点的特征交换以便于下一步的卷积操作。通过卷积进行升维后,需要对特征进行Max操作。
(4). 多次采样,分组,卷积
对第一次选取的中心点继续进行采样、分组、卷积操作,类推。在每一次循环操作后,都需要进行特征拼接,最终得到batch*中心点个数*特征(多次卷积后得到的特征和)。
3. 分类整体网络架构
其中,N:当前点的个数,d:点的位置信息(x,y,z),C:附加特征信息。
4. 分割整体网络架构
特征提取层保持不变,但是由于特征提取时数据点减少且分割任务需要输出每个点的特征,因此在输出层需要对点进行上采样。其中,通过插值进行逆过程时,点的特征C2需要特征提取对应状态的C1拼接。
5. 问题与改进
PointNet++易受输入点个数影响,当输入点个数减少时,PointNet++准确度快速下降。
改进:
MSG:在分组的时候,可以设置多个半径,每个半径的数据都放进PointNet中处理得到特征,最后将特征拼接起来。
MRG:跨层次提取不同分辨率特征,即两个不同层次经过PointNet处理后得到的特征进行拼接。