融合MKF的Pointnet++优化算法研究

2020-06-05 12:18凌岳览
小型微型计算机系统 2020年6期
关键词:准确率密度物体

孙 红,凌岳览

(上海理工大学光电信息与计算机工程学院,上海200093)

1 引 言

近年来,随着相关技术的发展和需求的增加,使移动机器人能够在陌生环境中实现全局定位成为了很多研究的重点问题之一,而使移动机器人实现全局定位的基础在于让机器人能够充分准确的识别存在于陌生环境中的各种影响因素,包括对周围障碍物体进行准确识别分类以及对环境进行局部分割等.

移动机器人主要是通过环境重建[1]、自身位置定位[2]和场景识别[3]三个方面来实现自主定位的.Meyer-Delius[4]团队通过跟踪障碍物位置在半静止环境中的变更而产生噪点的观测,有效的提升在半静止环境中的鲁棒性.Saarinen[5]等人以占用栅格的可递归特性,并结合NDT 地图模型的高效创建特点,有效的表现出了环境的变化.Biber 团队[6]通过“记忆清除(memory decay)”方法,即在长期定位移动的过程中添加最新得到的观测结果,并对最早的记忆进行清除,这种基于采样的更新环境变化的模型在机器人长期定位应用中具有较高的鲁棒性.而在环境扫描识别中,主要有通过人工标注特征[7]和学习获取特征[8]两个方式,Arroyo[9]团队通过环境亮度稳定的特点和多次人工设计的环境特征实现了基于机器人视觉的自主定位.Churchill 等人[10]采用了基于运行经验的自主定位法,将曾经扫描过的环境记录并将该记录为经验,使用视觉里程计将观测的当前环境与经验进行结合,以此来匹配环境定位,提升了同一环境下受到不同影响因素时的匹配效果,但该方法最好满足在同一环境下的要求,容易导致信息爆炸.Arroyo 的团队[11]使用了CNN 卷积深度网络,将每一层的卷积特征与相应的图像特征结合,通过实现特征传递来做到环境匹配,但卷积网络模型一般是高维的,通过此方法来提升环境识别的准确度仍然是个问题.

目前移动机器人获取周围环境主要是靠激光雷达传感器、深度传感器等设备所采集的环境深度信息,或者是通过RGB 摄像头采集信息建立三维环境,但三维环境中由于使用了三维卷积核,计算复杂度较大.而通过激光雷达传感器和深度传感器获取的点云数据能够不受天气等复杂因素的影响,并且对环境的扫描精确度较高.目前处理点云数据常用的方法主要有将点云样本栅格化,通过3D-CNN[12]对均匀分布的点云进行卷积处理,或者将三维点云数据映射到二维平面上进行处理,但可能造成计算的进一步复杂化.而对于一些较为复杂点云数据进行分割时,可采用基于曲率约束的K-means三维点云数据分割方法[13]进行处理.本文通过Pointnet 算法对点云数据直接提取点云特征.同时,本文在Pointnet++算法的基础上提出了一种融合了多采样特征提取(multi-kernel Feature extraction,MKF)的优化算法来解决点云数据可能密度分布不均的问题,通过多采样特征提取的优化算法,当局部区域范围内的点云密度不满足要求时,扩大采集点云数据的尺度半径使获取的点云密度符合要求,提升处理效果的目的.在对点云样本数据划分局部采样区域的过程中需要采用迭代最远点采样、K 近邻算法[14]等方法对点云数据进行聚类.

2 Pointnet++基础理论与相关技术

2.1 解决点云的无序性问题

深度图像由一组无序的点组成,点云数据是一组n* 3 的矩阵,它具有无序性的特点.无序性是指点云中每个点的排列顺序不影响它在空间中对整体结构和形状的表示.大多数对点云的处理方法是先将点云数据映射为二维图像组或是栅格化后再进行后续处理,但是这样的处理方法往往会引起更加复杂的计算.而Pointnet[15]神经网络模型的提出可以将点云数据直接作为网络的输入,并提取点云特征.

Pointnet 网络模型运用深度神经网络中的最大池函数来解决点云的无序性问题[15].由于对称函数的输出不会随着输入因子的排列顺序改变而改变,所以可以通过对称函数对点云集中所有点进行处理,进而得到点云集的全局特征.常用的对称函数是g=max(),即

但是g=max()函数只计算了最大点,即整个点云集最远的边界点,这导致丢失了很多有意义的信息.而由于在高维空间中包含有冗余信息,所以可以将每个点映射到高维空间中,从而对很多有意义的信息进行了保留,在经过最大池函数运算后,接着通过多层感知器γ 得到点云的全局特征.

2.2 两种算法的网络结构

通过运用Pointnet 神经网络结构能够解决点云的无序性,并将点云通过多层感知器进行高维空间映射,同时采用最大池化层进行特征整合,用以直接对点云数据进行深度学习处理.采用Pointnet 结构可以基于点云数据对物体进行分类识别和环境语义分割.

但是在对局部特征进行处理和点云密度近密远疏的情况下,Pointnet 的处理效果并不理想,在此基础上提出了Pointnet++,该网络结构是在Pointnet 结构的基础上进行优化,在为了处理局部特征Qi 等人[16]提出了采用分层结构.该结构一共分为三个部分,分别是采样部分、分组部分和特征提取部分.首先在采样层中使用迭代最远点采样(FPS)选取一定数量合适的质心点,接着在分组层中通过邻域算法在选取的质心点一定区域内选取合适的点集,然后在特征提取层中对点集重复迭代使用Pointnet,从而生成新的中心点,接着送入下一个分层结构继续重复步骤.随着不断重复分层结构,所提取的中心点个数越来越少,但其中包含的信息越来越多,从而解决了局部特征的问题.接着为了解决点云样本有时呈现出密度近密远疏的特点,本文提出一种多采样特征提取(MKF)的方法,即当在预定采样kernel 的范围内点云密度不足时,扩大kernel 半径选取更多的点云提取其特征,提取多个采样特征,放弃低密度特征而采用高密度点云的特征,来解决点云密度过低的情况,该方法可根据局部区域范围内的点云密度,及时调整点云的采集范围,使采集到的点云密度符合要求,从而能够提升处理效果.

2.3 MKF 多采样特征优化

在卷积神经网络中一般采用较小的kernal 范围,但当点云样本出现密度近密远疏的情况时,由于尺度半径选择的问题,可能会产生点云密度过低,导致处理效果不理想的问题.

图1 多采样特征提取Fig.1 Multi-sampling feature extraction

为了处理这一问题,当预定采样kernel 的范围内点云密度过低不满足要求时,扩大采样尺度半径,增加采样范围,从而能够选取更多的点云数据.当选择多个采样区域时,放弃低密度区域而采用高密度点云的区域特征.如图1 所示,kernel_r1 区域拥有足够的点云密度,则对采样质心和所采样质心附近邻域点进行Pointnet 处理后,得到局部特征F1.在kernel_r2 区域范围内点云密度并未满足处理精度要求,则扩大采样尺度半径,在kernel_r2'区域重新采样,当满足采样密度需求后,再通过Pointnet 得到局部特征,从而解决了点云样本密度近密远疏时,点云密度无法满足处理精度的问题.

表1 MKF Pointnet++采样流程Table 1 MKF Pointnet++sampling process

采样具体流程如表1 所示,首先设置模型的初始参数,接着将深度传感器等设备所采集到的点云样本数据输入进模型,并对输入的点云样本数据进行局部区域的划分.然后通过迭代最远点的方法获取该局部区域内指定数量的质心点,再根据邻域规则,对上述所选择质心点的一定范围内选取点云集,若该点云集的密度符合点云密度要求,则对点云数据采用Pointnet 模型处理从而获得点云特征向量.若该区域点云密度不足,则进一步扩大采样尺度半径,并重新进行采样,对低密度尺度半径内的采样进行舍弃,直至该区域的点云密度能符合要求,再输入Pointnet 模型处理获得特征向量.

3 实验结果与分析

为了验证本文所提出的基于MKF 优化的Pointnet++网络结构在物体目标识别和环境局部分割的可行性和精确性.本文首先以ModelNet40[17]为数据集,分别采用Pointnet 和MKF Pointnet++算法进行物体识别分类效果进行对比,并与各公开算法的识别精度进行对比.接着使用公开数据集S3DIS Dataset[18],并采用 Pointnet++和 MKF Pointnet++进行环境语义分割处理,通过两者准确率的对比,比较两者的分割效果.

实验1.Pointnet 和MKF Pointnet++在物体识别上的对比

首先使用MKF Pointnet++算法对ModelNet40 点云数据集进行分类训练,将点云数据集分为7 组,其中5 组作为训练样本,剩下2 组作为测试样本,每组样本都包含了所有标签.先输入训练样本,对模型进行训练.在训练样本中,分别以batch=50、100、150…600 为 Sampling & Grouping Layer,对每一层 Sampling & Grouping Layer 使用 mini point net 进行训练,共训练150 代.具体训练参数为batch_size=16,decay_rate=0.7,learning_rate=0.001,max_epoch=150,num_point=1024,得到训练过程数据如表2 所示.

表2 MKF Pointnet++训练准确率与误差表Table 2 MKF Pointnet++training accuracy and error table

分析上述表2 可知,分层结构的MKF Pointnet++在每一层Sampling &Grouping Layer 上准确率都是逐步上升的,不同的迭代次数都继承上一代的最后一层分类结果.将通过训练样本得到的分类模型,输入2 组测试样本,测试得到每个标签的分类准确率.

接着使用Pointnet 算法对同一点云数据集进行分类训练,同样将7 组点集中的5 组作为训练样本,剩下2 组作为测试样本,对模型进行训练.设置的训练参数为batch_size=16,decay_rate=0.7,learning_rate=0.001,m ax_epoch=150,num_point=1024,同样将测试样本输入到得到的训练模型中,得到每个标签的分类准确率.

图2 MKF Pointnet++和Pointnet 的识别率对比Fig.2 Comparison of MKF Pointnet++and Pointnet recognition rates

将MKF Pointnet++与Pointnet 算法得到的测试准确率绘制如图2 所示的对比曲线,由图2 可以看出,总体上MKF Pointnet++在物体识别准确率上要优于Pointnet 算法,在部分标签上MKF Pointnet++的识别准确率相比Pointnet 有了很大的提升.在部分低密度的点云样本情况下,MKF Pointnet++仍能有较好的识别效果.

为了进一步说明MKF Pointnet++在物体识别方面的准确率,使用各公开算法得到在数据集ModelNet40 下的物体识别的准确率,最终结果如表3 所示.从表3 中看出 Light-Net[19]、Primitive-GAN[20]和 Pointnet 算法的准确率较为接近,高于 3DShapeNets[17]算法的准确率,而 MVCNN[21]和 MKF Pointnet++算法的准确率要高于实验中的其他算法,可以看出这两种算法在物体识别分类上都有较好的效果.

表3 各公开算法识别准确度对比Table 3 Comparison of recognition accuracy of public algorithms

实验2.基于Pointnet++和MKF Pointnet++的环境分割

MKF Pointnet++算法是对Pointnet++算法的进一步优化,为了验证MKF Pointnet++在环境分割效果上要优于Pointnet++,将两种算法进行实验对比,分析其在环境分割上的准确率.

实验2 中采用公开数据集S3DIS Dataset,本次使用的环境样本共6 个区域,前5 个区域为训练样本,区域6 为测试样本.首先采用MKF Pointnet++算法进行环境分割,设置具体训练参数如下:batch_size=6,learning_rate=0.001,max_epoch=50,num_point=2048,test_area=6.训练结束后将测试样本区域6 输入进通过训练得到的MKF Piontnet++环境分割模型,得到相应的测试准确率.

接着采用Pointnet++算法同样在局部区域范围内对环境进行分割,得到环境分割的测试准确度.Pointnet++和MKF Pointnet++算法的测试准确度对比结果如图3 所示.从图3 中可以看出MKF Pointnet++算法在大部分环境分割上要优于Pointnet++的效果.

图3 MKF Pointnet++和Pointnet++的准确率对比Fig.3 MKF Pointnet++and Pointnet++accuracy comparison

表4 是MKF Pointnet++和Pointnet++算法在部分环境下进行分割的准确率比,MKF Pointnet++在大多数环境样本中的分割效果均优于Pointnet++,部分环境分割准确率有较大的提升,但在少量环境中Pointnet++的分割效果较MKF Pointnet++更优,分析其原因可能是在部分区域扩大采样区域半径达到了设定最大值,但仍未满足点云密度需求,所以MKF Pointnet++并无扩大采样半径的算法优势,导致了Pointnet++在这些环境中的分割准确率更高.

表4 MKF Pointnet++和Pointnet++的准确率比Table 4 MKF Pointnet++and Pointnet++accuracy ratio

图4 所示的是Pointnet++和MFK Pointnet++对环境中的各个物体进行分割的效果图.

图4 环境分割效果图Fig.4 Environmental segmentation effect map

从图4 Pointnet++和MKF Pointnet++环境分割效果图来看,可以发现在整体环境分割的效果上MKF Pointnet++和Pointnet++都有不错的效果,但是基于MKF 的Pointnet++在处理低密度的点云时有更好的效果,物体分割的识别精度也比Pointnet++更高.

图5 Pointnet++和MKF Pointnet++识别效果对比图Fig.5 Comparison of the recognition effect of Pointnet++and MKF Pointnet++

图5(a)的局部分割区域是沙发点云图,可以发现MKF Pointnet++的分割效果要优于Pointnet++.同样如图5(b)所示,Pointnet++无法对柜子完全分割,相比之下 MKF Pointnet++的识别分割效果更好.又如图5(c)环境中,Pointnet++在密度不足的环境上识别分割效果并不理想,Pointnet++将柱子错识别成墙体,而MKF Pointnet++能够完整的识别出整根柱子.

综上分析可知,MKF Pointnet++进行多采样特征优化后,在局部环境的分割处理和低密度点云的环境分割处理上都有优于Pointnet++的表现.

为了进一步排除系统初始化的时间影响,记录在算法迭代中期较为稳定的实时性,实时性记录实验数据参数batch_size=6,max_epoch=50,num_point=1024,cur_epoch=40 如表5 所示.

表5 实时性对比Table 5 Real-time comparison

分析表5 可知,在模型大小上Pointnet 算法远高于Pointnet++和MKF Pointnet++算法,由于MKF Pointnet++比Pointnet++多了采样尺度选择模块,在模型容量上要略高.在实时性方面,虽然Pointnet 有较好的实时性,但Pointnet++和MKF Pointnet++通过增加了分层结构和多尺度采样,在识别准确度上要远高于Pointnet 算法,而在环境分割上MKF Pointnet++的分割效果上要优于Pointnet++.

实验3.不同点云密度的物体识别

针对Pointnet++在低密度点云的环境下识别效果不佳的情况,MKF Pointnet++提出了一种基于多采样特征的优化方法.实验3 在不同点云密度的情况下,对比MKF Point net++、Pointnet++以及Pointnet 在物体识别上的准确度.

实验3 中对进行物体识别的样本点云密度进行修改,将num_point 参数分别修改为1024、512 和256.接着在不同样本点云密度的情况下,分析对比Pointnet、Pointnet++和MKF Pointnet++三种算法对物体的识别效果,对比结果如图6 所示.

图6 不同点云密度下的识别效果对比Fig.6 Comparison of recognition effects under different point cloud densities

由图6 可知,在点云密度不同的情况下Pointnet、Pointnet++和MKF Pointnet++有不同的识别效果,在点云密度为1024 时,此时点云密度足够高,三种算法都能有不错的识别效果,MKF Pointnet++略高于Pointnet++和Pointnet,而当点云密度下降时,Pointnet 和Pointnet++的识别准确率都有较为明显的下降.当点云密度降低至256 时,Pointnet 和Pointnet++的识别准确率较MKF Pointnet++相差较大.所以,在点云样本低密度情况下MKF Pointnet++通过扩大采样半径,仍能保持较优的识别效果.

4 结 论

对障碍物体进行识别分类和环境分割都是移动机器人实现全局定位的技术基础,所以本文在点云数据下研究MKF Pointnet++算法在物体识别分类和环境分割方面的效果.实验对比表明,在基于MKF 优化的Pointnet++算法在物体识别分类与环境分割的效果上都优于Pointnet 以及Pointnet++,而且在点云低密度的环境下,MKF Pointnet++算法也有更好的识别效果.MKF Pointnet++算法的可行性与精确性能为移动机器人实现全局定位提供更好的技术保证.

通过MKF 对Pointnet++算法进行优化,在物体识别分类和环境分割应用上有较好的表现,但仍有进一步改进和研究的地方.

1.MKF Pointnet++算法在每一分层结构中都需要判断是否满足点云密度需求,如果不满足需要重新进行采样,这样会大大增加算法的时间,使算法无法满足实时性要求.所以在后续研究上可以通过改变采样方式或跨层采样特征结合的方式改进这方面问题.Qi 等人[16]提出将处理后的采样点特征通过距离插值和跨越跳级链路的跨层传播策略.可以将该方向作为下一步的研究方向,能够减少MKF Pointnet++算法的采样时间.

2.在选取局部区域的质心点后,采用了K 近邻迭代查询的规则选取质心点一定范围内的点集,这种方式在空间表述的局部邻域上,不能有效的满足固定的范围尺度.后续可研究其他能够代替K 近邻查询规则的方法,从而提升在局部采样区域点集获取的效率.

猜你喜欢
准确率密度物体
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
“密度”练习
密度的应用趣谈
密度的不变性与可变性
揭开物体沉浮的秘密
为什么同一物体在世界各地重量不一样?
“力”常考易错点扫描