基于点云的语义SLAM方法、装置、电子设备和存储介质
文献发布时间:2023-06-19 11:52:33
技术领域
本申请涉及人工智能技术,具体地,涉及一种基于点云的语义SLAM方法、装置、电子设备和存储介质。
背景技术
随着传感器技术的不断发展,许多智能机器人或无人车辆通过装配的传感器(例如激光雷达)获取环境信息,再借助同步定位与建图(Simultaneous Localization andMapping,SLAM)算法对获取到的环境信息进行运算和分析,完成机器人或无人车的定位及地图的构建。
目前常用的定位与建图(SLAM)方法主要是通过在视觉SLAM算法的框架前端结合深度学习目标检测算法或分割网络算法实现对场景中的动态目标的检测和分割,并在输入SLAM特征抽取前对动态目标进行剔除,即通过相机获取视频或图像信息,对视频或图像信息进行动态目标的检测或分割,最后通过视觉SLAM算法进行定位与建图。
但基于视觉的SLAM技术对环境光的波动性十分敏感,难以在户外场景及光照较差的情况使用。
发明内容
本申请实施例中提供了一种基于点云的语义SLAM方法、装置、电子设备和存储介质,用于解决目前基于视觉的SLAM技术对环境光的波动性十分敏感,难以在户外场景及光照较差的情况使用的问题。
根据本申请实施例的第一个方面,提供了一种基于点云的语义SLAM方法,所述方法包括:
通过训练好的语义分割模型对激光雷达采集到的每一帧数据中包括的三维点云进行分割处理,获得各个三维点云的类别,其中,所述激光雷达设置在运动目标上;
根据各个三维点云的类别对每一帧数据中的静态点云进行特征提取,获得各个帧数据的几何特征;
对连续的两帧数据的几何特征进行运算,获得多个位姿变换矩阵;
基于每连续相邻两帧计算获得的位姿变换矩阵依次进行累积配准,获取所述运动目标的位置和姿态,并基于所述运动目标的位置和姿态构建全局地图。
根据本申请实施例的第二个方面,提供了一种基于点云的语义SLAM装置,所述装置包括:
分割模块,用于通过训练好的语义分割模型对激光雷达采集到的每一帧数据中包括的三维点云进行分割处理,获得各个三维点云的类别,其中,所述激光雷达设置在运动目标上;
特征提取模块,用于根据各个三维点云的类别对每一帧数据中的静态点云进行特征提取,获得各个帧数据的几何特征;
运算模块,用于对连续的两帧数据的几何特征进行运算,获得多个位姿变换矩阵;
地图构建模块,用于基于每连续相邻两帧计算获得的位姿变换矩阵依次进行累积配准,获取所述运动目标的位置和姿态,并基于所述运动目标的位置和姿态构建全局地图。
根据本申请实施例的第三个方面,提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行上述的基于点云的语义SLAM方法。
根据本申请实施例的第四个方法,提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的基于点云的语义SLAM方法。
本申请实施例提供了一种基于点云的语义SLAM方法、装置、电子设备和存储介质,首先通过训练好的语义分割模型对激光雷达采集到的每一帧数据中包括的三维点云进行分割处理,获得各个三维点云的类别,其中,激光雷达设置在运动目标上;然后根据各个三维点云的类别对每一帧数据进行特征提取,获得各个帧数据的几何特征;再对连续的两帧数据的几何特征进行运算,获得多个位姿变换矩阵;最后基于每连续相邻两帧计算获得的位姿变换矩阵依次进行累积配准,获取运动目标的位置和姿态,并基于运动目标的位置和姿态构建全局地图。本申请实施例在进行运动目标的定位和地图构建时,通过事先训练好的语义分割模型对三维点云进行分割,获得三维点云的类别,再基于三维点云的类别对每一帧数据中的静态点云进行几何特征提取,实现语义分割与几何计算的结合,从而可以降低动态目标对累积配准过程的干扰,高效准确地获取到运动目标的位置及姿态,并进行全局地图的构建。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的电子设备的结构示意图;
图2为本申请实施例提供的基于点云的语义SLAM方法的流程图之一;
图3为本申请实施例提供的无人车及车载激光雷达示意图;
图4为本申请实施例提供的基于点云的语义SLAM方法的流程图之二;
图5为本申请实施例提供的语义分割模型的框架图;
图6为本申请实施例提供的基于点云的语义SLAM方法的流程图之三;
图7为本申请实施例提供的步骤S12的子步骤流程图;
图8为本申请实施例提供的以扫描线为单位的平面投影示意图;
图9为本申请实施例提供的交点特征点示意图;
图10为本实施例提供的基于点云的语义SLAM方法、直接SLAM方法与运动目标的原始轨迹绝对误差对比图;
图11为本申请实施例提供的基于点云的语义SLAM装置的功能模块图。
图标:10-电子设备;11-处理器;12-存储器;13-总线;110-基于点云的语义SLAM装置;1101-分割模块;1102-特征提取模块;1103-运算模块;1104-地图构建模块。
具体实施方式
目前的SLAM技术主要是通过装配在机器人或无人车上的激光雷达、声纳、惯性测量单元、红外、相机和GPS等传感器获取到的基础环境信息进行定位和地图构建,且需要针对不同的场景选取不同的传感器组合方案,并且将机器人或无人车的自身位姿同步投影到场景地图中,以获得全局地图,以便于后续可以结合具体任务实现路径规划和运动生成等。
利用传感器数据的语义信息进行辅助建图,能够有效降低或剔除场景动态信息对建图的影响。在实现本申请的过程中,发明人发现目前主流的方法主要通过在视觉SLAM算法框架前端结合流行的深度学习目标检测或分割网络实现对场景中动态目标的检测和分割,并在输入SLAM特征抽取前进行动态目标剔除。但基于视觉的SLAM技术受限于视觉传感器本身限制,对环境光波动性十分敏感,难以在户外场景和光照较差的情况使用。
针对上述问题,本申请实施例提供了一种基于点云的语义SLAM方法、装置、电子设备和存储介质,首先通过训练好的语义分割模型对激光雷达采集到的每一帧数据中包括的三维点云进行分割处理,获得各个三维点云的类别,其中,激光雷达设置在运动目标上;然后根据各个三维点云的类别对每一帧数据进行特征提取,获得各个帧数据的几何特征;再对连续的两帧数据的几何特征进行运算,获得多个位姿变换矩阵;最后基于每连续相邻两帧计算获得的位姿变换矩阵依次进行累积配准,获取运动目标的位置和姿态,并基于运动目标的位置和姿态构建全局地图。本申请实施例在进行运动目标的定位和地图构建时,通过事先训练好的语义分割模型对三维点云进行分割,获得三维点云的类别,再基于三维点云的类别对每一帧数据中的静态点云进行几何特征提取,实现语义分割与几何计算的结合,从而可以降低动态目标对累积配准过程的干扰,高效准确地获取到运动目标的位置及姿态,并进行全局地图的构建。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参照图1,图1为本申请实施例提供的电子设备10的结构示意图。本申请实施例提供的基于点云的语义SLAM方法应用于图1中的电子设备10,该电子设备10可以通过以太网接口或USB接口等连接方式与传感器连接,用于获取传感器采集到的数据。传感器设置在运动目标上,且传感器可以为激光雷达,激光雷达用于获取运动目标四周的激光点云数据,电子设备10根据点云信息进行定位及地图构建。可选地,在本实施例中,运动目标可以为智能机器人或无人车。
可选地,在图1中,电子设备10包括:处理器11、存储器12和总线13,存储器12存储有处理器11可执行的机器可读指令,当电子设备10运行时,11处理器与存储器12之间通过总线13通信,机器可读指令被处理器11执行时执行本申请实施例提供的基于点云的语义SLAM方法,以对运动目标进行定位及地图构建。
下面结合附图对本申请实施例提供的基于点云的语义SLAM方法进行进一步说明。
请参照图2,图2为本申请实施例提供的基于点云的语义SLAM方法的流程图之一。该方法应用于图1中的电子设备10,包括以下步骤:
步骤S11,通过训练好的语义分割模型对激光雷达采集到的每一帧数据中包括的三维点云进行分割处理,获得各个三维点云的类别。
步骤S12,根据各个三维点云的类别对每一帧数据中的静态点云进行特征提取,获得各个帧数据的几何特征。
步骤S13,对连续的两帧数据的几何特征进行运算,获得多个位姿变换矩阵。
步骤S14,基于每连续相邻两帧计算获得的位姿变换矩阵依次进行累积配准,获取运动目标的位置和姿态,并基于运动目标的位置和姿态构建全局地图。
其中,激光雷达设置在运动目标上,运动目标可以是智能机器人或无人车。
本申请实施例在进行运动目标的定位和地图构建时,通过事先训练好的语义分割模型对三维点云进行分割,获得三维点云的类别,再基于三维点云的类别对每一帧数据中的静态点云进行几何特征提取,实现语义分割与几何计算的结合,从而可以降低动态目标对累积配准过程的干扰,高效准确地获取到运动目标的位置及姿态,并进行全局地图的构建。
可选地,在本实施例中,如图3所示,图3为本申请实施例提供的无人车及车载激光雷达示意图。在本实施例中,智能机器人或无人车等其他运动目标上搭载有激光雷达传感器,用于采集车辆行驶过程或机器人移动过程中的道路或室内场景,获取道路或室内环境的三维点云数据,其中,获取到的三维点云为包含空间坐标(x,y,z)和反射率I的四维列表,然后通过训练好的语义分割模型对每一帧数据中的三维点云进行分割处理,可以获得各个三维点云的类别;然后对三维点云进行特征提取,获得每一帧数据的几何特征,再通过L-M估计算法对连续的两帧数据的几何特征进行运算,获得多个位姿变换矩阵,然后基于每个位姿变换矩阵进行累积配准,获取运动目标(即智能机器人或无人车)的位置和姿态信息,并基于运动目标的位置和姿态信息构建全局地图。
可选地,在本实施例中,步骤S13包括:
判断连续两帧数据的几何特征对应的类别是否相同;若相同,则基于两步的莱文贝格-马夸特(Levenberg-Marquardt,L-M)优化方法估计算法对连续两帧数据的强化特征点进行运算,从而构建位姿变换矩阵,其中,几何特征包括强化特征点。
在本实施例中,在配准时,可以使用类别约束限制几何特征匹配,即利用语义分割结果进一步约束特征点的匹配搜索空间,以加速匹配速度,提升配准精度。
可选地,请参照图4,图4为本申请实施例提供的基于点云的语义SLAM方法的流程图之二。在本实施例中,该方法还包括:
步骤S15,对语义分割模型进行训练。
具体地,在本实施例中,步骤S15包括:获取被标记的训练样本集;将训练样本集输入到模型中进行迭代训练,计算模型的实际输出结果与标记结果的Loss函数值;当Loss函数收敛或达到预设的迭代次数时结束迭代训练,获得训练好的语义分割模型。
在对语义分割模型进行训练时,首先通过激光雷达对场景进行三维点云数据采集,以帧为单位存储采集到的三维点云,并为采集到的每个三维点云进行类别标定,得到每个三维点云数据的坐标信息、反射率信息及标定的类别信息,获得被标记的训练样本集。其中,标记的类别可以为汽车、自行车、摩托车、卡车、其他车辆、行人、自行车手、摩托车手、公路、停车处、人行道、其他地面、建筑、围栏、植被、树干、地形、杆、交通信号灯及其他。
可选地,请参照图5,图5为本申请实施例提供的语义分割模型的框架图。在训练时,将训练样本集输入到模型中进行运算。训练样本集中包括的各个三维点云p(x,y,z,i),首先通过局部空间环境编码模块(local spatial context encoding)和池化(Pooling)模块进行三维点云的局部编码,其中池化模块为一个对局部编码进行学习赋权的多层感知机模块(MLP)。每个感知机模块MLP包含基于K近邻(K-Nearest Neighbor,KNN)搜索的空间特征编码。然后,基于赋权池化层对特征编码进行加权求和,特征的权重即为感知机模型的神经元参数,该参数通过模型训练、随机梯度下降和反向传递进行学习得到。
加权的特征还需要与原始的三维点云的局部编码进行拼接,即浅层特征叠加深层特征,进行特征融合增强。最后,特征通过上采样编码恢复到与输出的原始三维点云相同的尺寸,并利用全联通层模拟图卷积扩大感受野。最终的特征通过交叉信息熵进行预测,得到每个点的具体类别p(x,y,z,i,l)(预先设定),其中l(label)为三维点云的分类。
具体地,在本实施例中,针对空间中的三维点云i,通过KNN进行快速搜素,寻找最近的K个邻居节点,然后基于邻居特征对i进行编码,编码公式如下:
其中,S
编码后再通过两个MLP(图5所示的LSCE及Pooling)对编码结果
在输出预测的三维点云的具体类别之后,计算实际输出的类别与期望输出的类别(即预先标记的类别)的Loss函数值,根据Loss函数值通过反向传播调整点云编码和上采样模块中的特征权重;重复训练步骤,直至Loss函数收敛或者达到预设的迭代次数(例如达到1000次的迭代次数)结束训练,获得训练好的语义分割模型。
在实际使用过程中,语义分割模型已经训练完毕,模型中的参数已根据训练结果确定,所输出的类别即为最终分割结果。
值得说明的是,在图5中仅绘制了两层堆叠的多层感知机模块MLP,在本实施例的其他实施方式中,MLP的叠加层数视采用的激光雷达的型号和三维点云的数据量及电子设备10的计算性能决定,在此不作具体限定。
在上述步骤中,本申请实施例在进行运动目标的定位和地图构建时,通过轻量级语义分割模型(即MLP的叠加层数可以根据需要自行设置)对三维点云数据进行分割,并基于三维点云的类别,获取环境场景的各个物体的类别信息,从而可以高效准确地获取到运动目标的位置及姿态,并进行全局地图的构建。可选地,在本实施例中,针对语义分割结果进行优化时,如果直接从原始的三维点云中删除属于动态物分类的点云,会使原始点云形成“空洞”,从而会对后续算法产生影响,因此提出了基于三维体素的洪范策略。洪范策略对分割结果进行体素化编码,利用固定大小的栅格来分割整个场景,然后基于体素内的最大样本对最小样本进行压制,消除不稳定噪声点云和分类错误的点云,尽可能消除可能对SLAM算法带来的随机误差。
具体地,洪范策略方法可以参照图6中的步骤S16至步骤S18,图6为本申请实施例提供的基于点云的语义SLAM方法的流程图之三。在本实施例中,在步骤S12之前,所述方法还包括:
步骤S16,通过相同尺度的体素单位对每一帧数据中包括的三维点云进行体素化。
步骤S17,判断各个有效体素单位内的目标类别对应的三维点云数量是否小于第一预设值。
其中,目标类别在有效体素单位内的数量占比最小。
步骤S18,若是,则将目标类别替换为有效体素单位内数量占比最大的类别。
在上述步骤中,首先基于空间坐标xyz截取中心范围内的点[-xlim,xlim][-ylim,ylim][-zlim,zlim],然后基于固定体素(vx,vy,vz)进行空间剖分,获得以体素为单位的点云数据P(x,y,z,l),其中,l为三维点云P所属的类别,[-xlim,xlim][-ylim,ylim][-zlim,zlim]在三维空间内能够构成一个立方体空间,在这个立方体空间内进行后续的体素洪范操作,(vx,vy,vz)表示体素单位的大小。
例如,可以通过体素化将以激光雷达为中心的[-40,40],[0,70],[-3,1]米范围内的三维点云按照体素大小为0.05*0.05*0.1的单元进行划分。其中,[-40,40],[0,70],[-3,1]分别对应[-xlim,xlim],[-ylim,ylim],[-zlim,zlim],0.05,0.05,0.1则分别表示vx,vy和vz。
在体素洪范时,针对每一个有效体素单位,判断该有效体素单位内的数量占比最小的目标类别的三维点云数量是否小于第一预设值,若是,则将该目标类别替换为该有效体素单位内数量占比最大的类别。
例如,若在一个有效体素单位内,包括20个三维点云,类别分别为A、B、C,其中,有10个三维点云为类别A,6个三维点云为类别B,2个三维点云为类别C,则目标类别为数量占比最小的类别C,判断类别为C的三维点云数量(即2)是否小于第一预设值,若小于,则将类别为C的2个三维点云的类别替换为数量占比最高的类别,即本例中的类别A,若不小于第一预设值,则不进行替换操作。
通过上述洪范步骤,将属于目标类别的三维点云的类别替换为有效体素单位内点云数量占比最大的类别,实现体素单位内的最大数量的样本对最小数量的样本进行压制,消除不稳定噪声点云和错误分类点云,对分割结果进行优化调整,尽可能消除可能对后续的SLAM算法带来的随机误差。
可选地,请继续参照图6,在本实施例中,在步骤S17之前,所述方法还包括:
步骤S19,获取有效体素单位。
具体地,在本实施例中,步骤S19包括:
针对每个体素单位,判断所述体素单位内的三维点云的数量是否大于第二预设值;若是,判断所述体素单位内是否至少包含两个不同的类别;若是,判断所述体素单位内数量占比最大的类别对应的三维点云数量是否大于第三预设值;若是,则将所述体素单位判定为有效体素单位。
在上述步骤中,在进行体素洪范步骤之前,还可以先对体素单位进行过滤,获得有效体素单位,再对有效体素单位进行步骤S17至步骤S18所述的操作,可以加速后续洪范步骤的处理速度。
具体地,针对每一个体素单位,需要判断该体素单位是否同时满足以下的过滤条件:至少包括两个不同的类别、当前体素单位中包括的三维点云数量是否大于第二预设值、体素单位内数量占比最大的类别对应的三维点云数量是否大于第三预设值。若三个条件同时满足,则该体素单位可以被判定为有效体素单位。
例如,若存在三个体素单位X、Y、Z,其中,体素单位X包括100个三维点云,这100个三维点云所属的类别分别为A、B、C,且类别A对应的三维点云数量最多,为80个;体素单位Y包括30个三维点云,这30个三维点云均为A类别;体素单位Z包括60个三维点云,这60个三维点云所属的类别分别为A、B和C,且类别C对应的三维点云数量最多,为25个。
假设第二预设值为50,第三预设值为30,则体素单位X包括的三维点云数量为100,大于50,包括三个不同的类别且数量占比最多的类别A对应的三维点云数量为80,大于50,因此体素单位X为有效体素单位。
体素单位Y包括的三维点云数量为30,小于第二预设值50,且至包括了一个类别,因此体素单位Y不是有效体素单位。
体素单位Z包括的三维点云数量为60,大于第二预设值50,且包括了3个不同的类别,满足其中两个过滤条件,但三维点云数量最多的类别只有25个三维点云,小于第三预设值30,因此体素单位Z也不是有效体素单元。
可选地,在本实施例中,请参照图7,图7为本申请实施例提供的步骤S12的子步骤流程图。在本实施例中,步骤S12包括:
步骤S121,根据每一帧数据对应的多个三维点云的类别,将三维点云划分为静态点云和动态点云。
步骤S122,将静态点云投影到以激光扫描线为单位的平面投影图中,并计算每个静态点云的平滑度。
步骤S123,根据每个静态点云的平滑度的大小提取线特征点和面特征点,获得多个线特征点和多个面特征点。
步骤S124,基于线特征进行空间直线拟合,基于拟合直线的交点提取交点特征点,获得多个交点特征点;
步骤S125,从线特征点、面特征点及交点特征点中获取强化特征点。
在上述步骤中,在处理每一帧数据时,可以根据该帧数据中的三维点云的分割结果,即类别,将所有的三维点云按照类别分为静态点云和动态点云,并剔除动态点云。例如,动态点云对应的类别包括汽车、自行车、摩托车、卡车、其他车辆、行人、自行车手、摩托车手、植物树叶以及一些较远的噪声。
然后再基于静态目标进行几何特征抽取,包括对所有属于地面的点云集提取面特征,对所有不属于面特征的点云集提前线特征,针对线特征进行直线拟合,从直线交点附近范围内的三维点云提取交点特征。
具体地,在提取特征之前,剩余的静态点云投影到以激光扫描线为单位的平面投影图中,如图8所示,图8为本申请实施例提供的以扫描线为单位的平面投影示意图,同时计算每个静态点云到激光雷达中心的距离r,
然后基于平滑度公式和滑动窗口(长度为W)来计算每个激光扫描线上的静态点云的平滑度S,基于平滑度S的大小对静态点云进行排序。
具体地,基于第i个三维点云的前后各W/2(取整)个点计算平滑度S,平滑度公式为:
其中,W为滑动窗口的长度,r
在计算获得当前帧数据中的每个静态点云的平滑度S之后,按照平滑度S从小到大进行排序,依次抽取排序最靠前的点(即平滑度S较小的点)作为线特征点,排序末尾的点(即平滑度S较大的点)作为面特征点。
具体地,线特征点为基于平滑度S排序,大于阈值S
将每根扫描线所得的线特征点和面特征点进行汇总,得到多个面特征点和多个线特征点,构成面特征点集F
交点特征点为对线特征直线拟合结果交点(拟合直线的交点,非具体点)的半径d内的实际点云,若没有则为空。具体地,基于线特征点集进行空间直线拟合,并基于拟合直线的交点(当两根直线距离小于阈值dis=0.2m时,则认为两条直线相交),并将交点和交点半径d=0.4m范围的点作为交点特征,获得交点特征集F
若选取过多的特征点,会降低效率,增加计算负载;若选取的特征点较少,会降低后续特征匹配模块中的计算精度,因此,在本实施例的一种实施方式中,提取的线特征点不超过160个,提取的面特征点不超过320个,提取的交点特征点不超过80个。
可选地,在本实施例中,步骤S125包括:根据平滑度大小从多个线特征点中获取预设数量的强化线特征点;根据平滑度大小从多个面特征点中获取预设数量的强化面特征点;根据平滑度大小从多个交点特征集点中获取预设数量的强化交点特征点。
具体地,在上述步骤中,在获得面特征点集、线特征点集及交点特征点集之后,还可以根据平滑度大小从面特征点集的多个面特征点、线特征点集的多个线特征点及交点特征点集的多个交点特征点中选取多个强化特征点。具体地,可以对面特征点集、线特征点集及交点特征点集基于平滑度S的大小进行排序,并基于排序结果获取预设个数的排序靠前的特征点作为强化特征点。即强化特征点是指从几何特征中按照平滑度大小选取的多个强化线特征点、多个强化面特征点及多个强化交点特征点。
例如,对面特征点集F
在本实施例中,特征提取算法可以利用环境中的类别信息对动态和潜在动态目标(如行人、车辆、骑行者等)进行充分过滤,从而降低动态场景元素对建图配准时抽取的特征点干扰。同时,利用语义分割模型的分割结果来优化面特征点、线特征点和交点特征点抽取,从而加速特征抽取速度和优化精度。
进一步地,在本实施例中,在获得强化特征点之后,步骤S13还可以包括:
判断所述连续两帧数据的几何对应的类别是否相同;若相同,则基于两步的莱文贝格-马夸特(Levenberg-Marquardt,L-M)优化估计算法对连续两帧数据的强化特征点进行运算,从而构建位姿变换矩阵,其中,所述几何特征包括强化特征点。
强化特征点包括强化线特征点、强化面特征点及强化交点特征点。在本实施例中,在配准时,使用类别约束限制面特征点仅与面特征点匹配、线特征点仅与线特征点匹配,交点特征点仅与交点特征点匹配,即利用语义分割结果进一步约束特征点的匹配搜索空间,从而加速匹配速度,提升配准精度。而两个步骤的L-M优化迭代算法则将位姿变换矩阵的6个分量进行拆分,进一步对配准速度进行优化。
在上述步骤中,记t时刻的三维点云为F
然后再基于三类几何特征进行帧间配准,通过两步的莱文贝格-马夸特(Levenberg-Marquardt,L-M)优化法分别通过面特征点与面特征点、线特征点与线特征点,交点特征点与交点特征点进行配准。L-M两步法首先通过面特征点集配准用于评估获得一组T(θ
具体地,获得当上一帧中的各个三维点云到当前帧中的位姿变换矩阵T=[R,tr],其中,R(θ
其中,θ
在本实施例中,在配准时,使用类别约束限制面特征点仅与面特征点匹配、线特征点仅与线特征点匹配,交点特征点仅与交点特征点匹配,同时,也利用语义分割结果进一步约束特征点的匹配搜索空间,从而加速匹配速度,提升配准精度。而两个步骤的L-M优化迭代算法则将位姿变换矩阵的6个分量进行拆分,进一步对配准速度进行优化。
进一步地,在获得每一帧数据对应的位姿变换矩阵后,从第二帧和初始帧的位姿(0,0,0,0,0,0)开始,基于每连续相邻两帧的得到的位姿变换矩阵T
与不进行动态目标过滤相比,本申请实施例基于语义信息的过滤能够有效剔除不稳定点云带来的噪声和潜在配准错误,能够获得更低的绝对位姿估算误差,如图10所示,图10为本实施例提供的基于点云的语义SLAM方法、直接SLAM方法与运动目标的原始轨迹绝对误差对比图。
请参照图11,图11为本申请实施例提供的基于点云的语义SLAM装置110的功能模块图。在本实施例中,基于点云的语义SLAM装置110包括:
分割模块1101,用于通过训练好的语义分割模型对激光雷达采集到的每一帧数据中包括的三维点云进行分割处理,获得各个三维点云的类别,其中,所述激光雷达设置在运动目标上;
特征提取模块1102,用于根据各个三维点云的类别对每一帧数据中的静态点云进行特征提取,获得各个帧数据的几何特征;
运算模块1103,用于对连续的两帧数据的几何特征进行运算,获得多个位姿变换矩阵;
地图构建模块1104,用于基于每连续相邻两帧计算获得的位姿变换矩阵依次进行累积配准,获取所述运动目标的位置和姿态,并基于所述运动目标的位置和姿态构建全局地图。
可选地,在本实施例中,基于点云的语义SLAM装置110还包括:
体素分割模块,用于按照相同尺度的体素单位对每一帧数据中包括的所述三维点云进行分割;
判断模块,用于针对每个有效体素单位,判断有效体素单位内的目标类别对应的三维点云数量是否小于第一预设值,其中,目标类别在所述有效体素单位内的三维点云数量占比最小;
类别替换模块,用于在小于第一预设值时,将所述目标类别替换为有效体素单位内三维点云数量占比最大的类别。
可选地,在本实施例中,基于点云的语义SLAM装置110还包括训练模块,所述训练模块具体用于:获取被标记的训练样本集;将训练样本集输入到模型中进行迭代训练,计算模型的实际输出结果与标记结果的Loss函数值;当Loss函数收敛或达到预设的迭代次数时结束迭代训练,获得训练好的语义分割模型。
值得说明的是,基于点云的语义SLAM装置110中各个模块的工作原理及流程可参照前述提供的基于点云的语义SLAM方法,在此不再赘述。
可选地,本申请实施例还提供了一种存储介质,存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的基于点云的语义SLAM方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
- 基于点云的语义SLAM方法、装置、电子设备和存储介质
- 一种基于点云的语义实例确定方法、装置、电子设备及存储介质