Mapless Online Detection of Dynamic Objects in 3D Lidar



前言

最近在做动态点滤除的work,在调研相关的文献,所以打算记录一下自己对相关文献的理解,如果有理解不到位的地方,也请大家不吝指正。

一、摘要

  本文提出了一种无模型、无设置(?)的三维激光雷达数据中动态物体在线检测方法。我们明确补偿了当今3D旋转激光雷达传感器的运动失真。我们的检测方法使用运动补偿的自由空间查询算法,并在点级别上对动态(当前移动)和静态(当前静止)标签进行分类。为了进行定量分析,我们使用CARLA(一种用于自动驾驶研究的开源模拟器),用运动失真的激光雷达数据建立了一个基准。我们还使用Velodyne HDL-64E在驾驶场景中提供了真实数据的定性分析。与现有的无模型3D激光雷达方法相比,我们的方法是独特的,因为它不依赖设置且补偿了点云运动失真

二、方法

来自论文配图

1.odometry

  即激光雷达里程计,算出当前帧的位姿。

2.点云比较

  当前帧和之前一帧进行比较。当前帧的点转移到世界坐标系下,针对当前帧中的每个点,拟合出其邻域的点张成的平面,然后计算之前一帧当中与该点最近的一个点到该平面的距离。距离超过阈值的认为是潜在的动态点。若当前帧中有些点的邻域点过少,没法计算平面,那么就构建点到点距离,同样的,认为距离超过阈值的是潜在动态点。
  作者特别强调这两帧之间需要有一定的时间间隔(scan gap),以确保动态物体移动的距离够远,能够被检测出来。

3.free space check

  由于之前检测出来的动态点中包含一些假动态点,例如新扫描到的点和之前被遮挡的点,和由于点的稀疏性导致估计出的平面不够好而产生的误判点,因此需要进行free space check。
  该操作是针对当前帧的动态点,寻找之前帧当中扫描到该点的那束激光,然后若之前那束激光穿过了该点成的平面上,则说明该点确实是动态的,若激光束打到了该点成的平面上(freespace border),就认为这个点是静态点,若该点处于激光束打到平面的后面(outside freespace),则该点的状态未知。
  可以看到,流程图当中的free space check包含了Backward和Forward两部分,Backward部分是检查该点是否在之前帧的free space当中,而Forward部分是检查该点是否在之后帧的free space当中。Forward检查的对象是那些在Backward检查时在freespace外(outside freespace)的点,这些点可能是动态的,论文举了一个例子:一辆正驶离激光雷达的汽车,它永远不会出现在之前帧的freespace内部。而在Forward检查时可以将这种情况检测出来。不过论文指出在进行Forward freespace check时,两帧没必要有一定的时间间隔(scan gap),因为远离的对象具有垂直于移动方向的表面几何图形(没理解。。原文: A scan gap is not needed for forward because objects moving away have surface geometry perpendicular to the movement direction)。

3.箱式滤波器

  作者说free space check容易出错,因为激光雷达的分辨率有限(例如远处的free space),我理解是在远处,激光雷达线与线的间隔会很大,导致free space check寻找到的最靠近的激光束其实距离该点也比较远,没法反映该点的真实状况,导致远处会出现一些假的、孤立的动态点。因此作者用一个同或(XNOR)滤波器(Figure 5)把这些点滤除掉
在这里插入图片描述

4.区域生长

  通常,scan gap不足以使目标完全离开其先前的位置。因此,作者用一种区域生长的方法将动态物体完整地滤除。作者使用Klasing等人提出的三维点云聚类方法[19],一种径向有界最近邻策略逐步将动态点分组成不同物体。作者使用Moosmann等人的迭代点云分割方法来进行区域生长[20],通过测试相邻点是平行还是凸出,物体逐渐生长,直到找不到为止。

总结

  这篇文章讲的方法大致就是这样了,个人总结了下优缺点,优点:freespace check比较好地解决了遮挡区域和新扫描到的区域误判问题;缺点:1.不仅要和之前的帧比较,也要和之后的帧比较,无法实时;2.freespace check的计算量挺大(存疑)。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐