基于Mid-360的语义SLAM:点云目标检测与环境语义构建
传统SLAM构建的是环境的几何地图,只告诉机器人"哪里有障碍、哪里有平面",而语义SLAM更进一步,要在几何地图的基础上,识别出环境里"有什么"——哪是墙壁、哪是门、哪是货架、哪是人。这样构建出的语义地图,不仅包含空间的几何信息,还包含环境中各类物体的类别信息,能支撑机器人更智能地理解和操作环境。Livox Mid-360(简称Mid-360)提供360°的大视场点云,为点云目标检测和环境语义构建提供了数据基础。这篇文章就从语义SLAM的需求出发,拆解基于Mid-360的点云目标检测、以及环境语义构建的实现思路和关键点。
先理解语义SLAM相比传统SLAM多了什么
要设计基于Mid-360的语义SLAM,先要理解它相比传统SLAM到底多做了什么,才能有针对性地构建。
传统SLAM的输出,是环境的几何地图和机器人的位姿,它描述的是空间结构:墙壁在哪个位置、障碍物在哪个方向、地面在哪个高度。但传统SLAM不区分这些结构的类别,墙壁、门、货架、人,在几何地图里都是"障碍物"或者"平面",机器人不知道它们分别是什么。
语义SLAM在这个基础上增加了一层语义信息:通过目标检测、语义分割,识别出环境中各类物体及其类别,把几何信息和语义信息结合,构建语义地图。这样的语义地图里,不只是"这里有一面平面",而是"这里是一扇门""这里是一排货架""这里有一个人"。语义信息让机器人能更智能地理解环境,支撑它执行需要理解场景的任务,比如找到某类物体、避开特定区域。
理解了语义SLAM"几何加语义"的双重目标,就能看清基于Mid-360构建语义SLAM,需要把点云几何处理和点云语义识别结合起来的逻辑。
点云目标检测的实现思路
基于Mid-360的语义SLAM,核心之一是从360°点云里检测出环境中的各类目标,识别它们的类别和位置。
点云目标检测的思路,是从Mid-360的点云里找出属于某个物体的点,聚类成一个目标,并识别这个目标属于什么类别。检测时,先对点云做预处理(去畸变、滤波、降采样,前面文章讲过),把点云整理干净;再通过聚类把属于同一个物体的点归到一起,得到一个个候选目标;最后对每个候选目标做分类,判断它是人、车辆、货架、门还是其他物体。
分类可以基于几何特征,比如用物体的尺寸、形状、点云分布特征来区分不同类别;也可以结合深度学习方法,把点云转换成适合神经网络的表示,用训练好的模型做目标分类。Mid-360的非重复扫描点云,密度中心密边缘疏,目标检测时要注意这个特点,对中心区域的目标检测更充分、边缘区域相对弱,算法和参数要考虑点云密度不均匀的影响。
360°大视场让Mid-360能同时检测机器人周围多个方向的目标,一次扫描就能感知周围一圈环境里的各类物体,这对语义构建和实时感知都很有价值。
环境语义构建的实现思路
检测出环境中的目标之后,要把语义信息和SLAM的几何地图结合,构建出环境的语义地图,这是语义SLAM的关键环节。
环境语义构建的思路,是把SLAM建立的环境几何地图,和点云目标检测得到的语义信息融合起来。SLAM提供环境的几何结构(墙面、地面、障碍物的位置)和机器人的位姿,目标检测提供各类物体的位置和类别,把两者结合,就得到一张既有几何结构、又有物体类别的语义地图。地图里的每个区域或物体,都有对应的类别标签。
构建语义地图时,关键是把语义信息准确"贴"到几何位置上。检测出的目标要转换到地图坐标系下,和地图里的对应位置对齐,才能把类别标签准确赋给对应的地图区域。随着机器人移动、多帧检测累积,语义信息在地图上不断融合、更新,逐步形成完整、一致的环境语义地图。
语义地图的构建是一个持续累积的过程,要处理好目标检测的误检、漏检,通过多帧融合消除单帧检测的错误,让语义地图既准确又一致。Mid-360扫描的范围和细节,影响语义地图对远近距离物体的覆盖和描述。
落地时的关键考虑
基于Mid-360构建语义SLAM,落地时有几个关键点需要特别把握。
第一个关键点是点云密度不均匀的影响。Mid-360点云中心密、边缘疏,目标检测在中心区域更充分、边缘区域相对弱,语义构建对远距离、边缘区域物体的识别可能不如近距离、中心区域稳定。落地时要把点云密度特点纳入目标检测和语义构建的设计,必要时通过降采样、多帧融合来补偿边缘区域的不足。
第二个关键点是目标检测和SLAM的耦合。语义SLAM里,目标检测和SLAM不是完全独立的,检测出的语义信息可以帮助SLAM(比如识别出的静态物体作为地图特征),SLAM提供的位姿又帮助语义信息准确落位。要处理好两者的耦合关系,让语义和几何相互促进,而不是相互干扰。
第三个关键点是算力和实时性。点云目标检测(尤其深度学习方法)和语义地图更新都要消耗算力,在嵌入式平台上(前面文章讲过RK3588算力评估)要评估算力是否够用、做参数优化,保证语义SLAM在移动机器人上实时运行。
整体来看,基于Mid-360的语义SLAM,是在传统几何SLAM基础上,通过点云目标检测识别环境物体的类别、把语义信息和几何地图结合,构建出既有几何结构又有物体类别的语义地图。点云目标检测利用Mid-360的360°点云,通过预处理、聚类、分类识别各类目标;环境语义构建把检测的语义信息准确融合到几何地图上,持续累积形成完整语义地图。落地时要处理好点云密度不均匀、目标检测与SLAM的耦合、以及算力和实时性这几个关键点,让基于Mid-360的语义SLAM在机器人上稳定运行,支撑机器人更智能地理解和操作环境。





