一种基于深度学习的点云语义分割方法与流程

文档序号:21785931发布日期:2020-08-07 20:30阅读:8970来源:国知局
一种基于深度学习的点云语义分割方法与流程

本发明涉及计算机视觉技术领域,具体涉及一种基于深度学习的点云语义分割方法。



背景技术:

随着机器人感知技术的飞速发展,激光雷达、深度相机等作为重要的感知传感器被应用到移动机器人上,因此对上述传感器采集到的点云数据进行有效的语义分割变得至关重要。

基于三维点云的场景理解,包括点云语义分割,在计算机视觉中具有悠久的历史。点云数据具有空间的三维信息,但缺少图像信息具有的纹理信息,因此对点云数据进行语义分割是很有挑战性的工作。

传统的一些方法根据几何距离对场景点云进行聚类分割,这些方法仅仅通过距离信息分割点云,而忽视了点云所具有的语义信息。另一些方法基于三维点云的手工描述子,对点云的结构信息提取手工特征,但是手工特征的表达能力有限,不能达到很好的精度和效果。squeezeseg系列、pixor等方法将三维点云投影到二维平面或球面上,将数据处理为二维图像数据格式,再使用卷积神经网络进行语义分割,将得到的结果反投影回三维空间,得到三维点云语义分割结果;这类方法在将三维点云投影到二维平面时,会损失原本的三维空间信息,由于分辨率和视角遮挡,会损失部分点云。frustum-pointnet、mv3d等方法基于图像和点云的融合信息,对融合信息进行点云语义分割,这类方法使用了图像信息和点云信息,增加了成本和计算量。second、voxelnet等方法将点云数据离散化到体素网格中,然后使用3d卷积操作,这类方法需要选择体素网格的大小,并且3d卷积操作的计算复杂度很高。poinnet、pointnet++提出了基于深度学习的点云特征提取方法,可以有效地提取点云特征,pointrcnn等方法基于深度学习提取的特征对点云场景中感兴趣目标做检测,可以得到目标点云的三维包围框;这类方法是检测方法,而非语义分割方法,不能得到每个空间点的语义类别,并且这类方法将场景所有点云直接放入神经网络,会导致神经网络的计算量大大增加。



技术实现要素:

本发明的目的是提供一种可在不损失空间信息的情况下直接处理三维点云数据、完成点云语义分割任务的基于深度学习的点云语义分割方法。

为了达到上述目的,本发明通过以下技术方案来实现:

一种基于深度学习的点云语义分割方法,包括如下步骤:

s1)根据先验信息对场景作出初步的聚类分割,将不感兴趣点云设置为背景类别,获得潜在感兴趣类别的若干点云簇,再对若干点云簇进一步精炼优化,最终得到候选点云簇;

s1-1)地面拟合分割

根据地面的先验信息,地面被平面模型表达,拟合多个平面nseg;

选取若干高度值较低的种子点,拟合出平面,计算每个点与拟合平面的垂直距离并根据阈值thdist判断该点是否属于平面,属于平面的点被作为新种子点再次拟合平面;重复上述过程niter次;最后将nseg平面拼接在一起来获取整个地面;

s1-2)基于激光雷达环的快速聚类分割

按照一定顺序存储的激光雷达传感器中的每个点,每个点都属于其中一个环;

处在同一个环上的点之间的距离若小于阈值thring,就被聚为一类;处在不同环上的点之间的距离若小于阈值thprop,就被聚为一类;最终每个点都具有一个聚类标签,得到若干点云簇;

s1-3)候选点云簇精炼

当点云簇中点的个数小于阈值thnum时,这个点云簇就被置为背景类;

其中xg,yg,zg为空间点在激光雷达坐标系下的坐标,thnum与距离d成反比;

拟合过滤后的点云簇的最小外接三维包围框,并将这个包围框扩大一个固定距离,合并更多的点云给点云簇;

s2)将s1)阶段得到的若干点云簇做坐标转换和数据扩增处理,再送入语义分割的神经网络中提取点云特征,通过监督学习训练神经网络;

s2-1)数据预处理

选取每个点云簇的局部坐标系,任取其三维包围框的底部顶点作为原点,xyz轴为包围框的边,建立右手直角坐标系;将点云簇翻转并绕z轴旋转扩增,将原始数据及扩增数据一起送入神经网络;

s2-2)基于深度学习的语义分割

每个点云簇被采样到一个固定点数n,若点云数量num大于n则该点云簇被随机采样至n,若点云数量num小于n则该点云簇的部分点被重复采样直至总点数为n;

使用pointnet++网络中的点云特征提取模块,使用三层特征传播层(分别降采样至128,32,1),两层全连接层和一层随机失活层(随机保持概率设为0.7);

每个点的特征向量为p={x,y,z,i,n},其中x,y,z为点云簇局部坐标系下每个点的坐标,i为激光雷达测量的点的反射强度,描述了原始点云簇点的数量num与采样点数量n的相对关系;

s2-3)通过监督学习训练神经网络

采用无人驾驶场景的kittiraw数据集,采用监督学习对模型进行训练,并根据s2-1)中的方法对训练数据扩增;

使用focalloss为网络的误差,fl(pt)=-α(1-pt)γlog(pt);其中,pt为网络预测的每个点的类别概率,α设为0.25,γ设为2;

获取训练误差后,网络将沿梯度方向进行传播,更新网络参数,迭代至收敛。

本发明与现有技术相比,具有以下优点:

本发明一种基于深度学习的点云语义分割方法,解决了传统分割方法语义信息缺失、点云手工特征表达能力差、点云映射过程损失信息、处理大规模点云计算量大等问题。

本发明提出的基于深度学习的两阶段点云语义分割方法,通过一阶段的处理,大大减少了后续无效点云的计算;二阶段直接在三维空间对点云提取特征,避免了信息损失,能够使用深度学习的方法有效获取点云的不同尺度特征,使得网络学习到点云的低维的结构特征和高维丰富的语义特征,最终预测出每个点的语义类别概率。本发明所述的方法得到的场景点云的语义分割结果可以广泛应用到机器人导航、自动驾驶等任务中。

附图说明

图1是本发明一种基于深度学习的点云语义分割方法的流程示意图。

图2是本发明一种基于深度学习的点云语义分割方法的候选点云簇示意图。

图3是本发明一种基于深度学习的点云语义分割方法的坐标系转换示意图。

图4是本发明一种基于深度学习的点云语义分割方法的数据增广示意图。

图5是本发明一种基于深度学习的点云语义分割方法的无人驾驶场景点云的标注真值示意图。

图6是本发明一种基于深度学习的点云语义分割方法的预测结果实际效果图。

具体实施方式

下面结合附图,对本发明的实施例作进一步详细的描述。

如图1所示,一种基于深度学习的点云语义分割方法,包括如下步骤:

s1)根据先验信息对场景作出初步的聚类分割,将不感兴趣点云设置为背景类别,获得潜在感兴趣类别的若干点云簇,再对若干点云簇进一步精炼优化,最终得到候选点云簇。这一阶段包括地面拟合分割算法、基于激光雷达环的快速聚类分割算法和候选点云簇精炼方法。

s1-1)地面拟合分割

将地面拟合并移除,可以大大减少点云数量及后续的计算量。

属于地面的点云分布是具有规律的。根据地面的先验信息,地面被平面模型表达,并且地面点云的高度值较小。由于测量噪声及地面不平整,需拟合多个平面nseg。

选取若干高度值较低的种子点,拟合出平面,计算每个点与拟合平面的垂直距离并根据阈值thdist判断该点是否属于平面,属于平面的点被作为新种子点再次拟合平面;重复上述过程niter次;最后将nseg平面拼接在一起来获取整个地面。

s1-2)基于激光雷达环的快速聚类分割

按照一定顺序存储的激光雷达传感器中的每个点,每个点都属于其中一个环,例如velodynehdl-64elidar有64个环。

处在同一个环上的点之间的距离若小于阈值thring,就被聚为一类;处在不同环上的点之间的距离若小于阈值thprop,就被聚为一类;最终每个点都具有一个聚类标签,得到若干点云簇;

s1-3)候选点云簇精炼

当点云簇中点的个数小于阈值thnum时,这个点云簇就被置为背景类;

由于点云近密远疏,thnum与距离d成反比,其中xg,yg,zg为空间点在激光雷达坐标系下的坐标。

由于拟合地面算法中会将部分物体点云的底部归为地面(例如,车的轮子,人的脚,标志物的底部),需拟合过滤后的点云簇的最小外接三维包围框,并将这个包围框扩大一个固定距离,合并更多的点云给点云簇。

s2)将s1)阶段得到的若干点云簇做坐标转换和数据扩增处理,再送入语义分割的神经网络中提取点云特征,通过监督学习训练神经网络。这一阶段包括数据预处理方法、基于深度学习的语义分割网络和训练方法。

s2-1)数据预处理

点云簇分布在场景的各个位置,它们的坐标变换剧烈,若直接送入神经网络,网络难以拟合不易收敛。因此,选取每个点云簇的局部坐标系,任取其三维包围框的底部顶点作为原点,xyz轴为包围框的边,建立右手直角坐标系。

在局部坐标系下点云簇在空间的分布差异不会影响神经网络,点云簇的朝向分布不同会造成数据数据分布不均衡,因此将点云簇翻转并绕z轴旋转扩增,将原始数据及扩增数据一起送入神经网络。

s2-2)基于深度学习的语义分割

每个点云簇被采样到一个固定点数n,若点云数量num大于n则该点云簇被随机采样至n,若点云数量num小于n则该点云簇的部分点被重复采样直至总点数为n。

使用pointnet++网络中的点云特征提取模块,使用三层特征传播层(分别降采样至128,32,1),两层全连接层和一层随机失活层(随机保持概率设为0.7)。

每个点的特征向量为p={x,y,z,i,n},其中x,y,z为点云簇局部坐标系下每个点的坐标,i为激光雷达测量的点的反射强度,描述了原始点云簇点的数量num与采样点数量n的相对关系。

s2-3)通过监督学习训练神经网络

采用无人驾驶场景的kittiraw数据集,采用监督学习对模型进行训练,并根据s2-1)中的方法对训练数据扩增。

使用focalloss为网络的误差,fl(pt)=-α(1-pt)γlog(pt);其中,pt为网络预测的每个点的类别概率,α设为0.25,γ设为2。

获取训练误差后,网络将沿梯度方向进行传播,更新网络参数,迭代至收敛。

具体实施例中,s1)阶段的参数设置如下,nseg=3,niter=3,

thseeds=0.4m,thdist=0.3m,thring=0.5m,thprop=1.0m,thnum=30,

并在优化点云簇操作中沿x,y方向扩大0.1m,沿z方向扩大0.4m。

使用kittiraw数据集中的激光雷达数据,共有12915帧点云,随机选取9234帧数据作为训练集,3681帧数据作为验证集。

如图2所示为具体实施例的候选点云簇示意图,并将其送入s2)阶段。如图3所示进行坐标系变换,并按照图4所示进行数据增广后,从混合数据中随机选择批数据分批输送到待训练的网络中,根据真值和网络预测计算点云语义分割网络的误差,并按照梯度反向传播的方法进行参数的迭代更新,并利用gpu进行加速,直到网络的误差降低到设定的阈值之内或者网络迭代的次数满足要求时停止训练。

如图5所示为一个无人驾驶场景点云的标注真值。

如图6所示为本发明的预测结果的实际效果图。

以上所述仅是本发明优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1