M-detector
M-detector
2023
Paper: Moving event detection from LiDAR point streams
Code: https://github.com/hku-mars/M-detector
在点云“流式采样”的时间尺度上,对每个新到达的激光雷达点进行“点到即判”,判断其是否来自运动体;同时可在短窗内聚合为帧级运动事件
方法
核心假设:在静态刚体世界里,历史观测(经过里程计去畸变并对齐到统一坐标系)所形成的可见表面,对后续沿近似相同视线方向的观测应保持遮挡一致;任何打破这种几何遮挡关系的“前穿/后露”,提示该点属于运动体
依赖与约束:需要稳定的里程计用于去畸变与配准;以角域投影近似射线一致性;短时历史窗口足以提供“静态背景”的遮挡证据
系统框架
数据摄取与时序对齐
- 输入流:激光点流和里程计流(位姿轨迹)
- 去畸变:将每个点按其时间戳用里程计插值对齐到统一参考系,得到本体坐标下的去畸变点
- 缓冲区:维护一个小延迟的点缓冲以协调“写入深度图”和“输出判定”的先后,避免竞态
球面深度图记忆
- 角域投影:将$x, y, z$坐标转球坐标
- 角域量化:以设定的水平/垂直分辨率将 $\left ( \theta , \varphi \right ) $映射到像素格,保证近似同向射线落在同一或相邻像素。量化到离散角分辨率的像素索引 $\left ( i,j \right ) $
- 多张短窗深度图:以时间为轴维护最多$N$张“深度图快照”,每张覆盖时长$\Delta T$。每个像素仅保留有限个最近的深度样本与统计量,用于后续局部查询与投票
逐点遮挡一致性检验
- 邻域检索:对新点的像素 $\left ( i,j \right ) $,在水平/垂直角域半径内采样一个小邻域,与多张历史深度图中的前沿深度对比
- 一致性判据:若新点与历史表面的遮挡关系被打破(出现“前穿/后露”),为该点累积一次“遮挡不一致”计数;当计数超过阈值,即判为运动点
- 时间投票:跨多张深度图做投票抑制噪声,并限定每像素样本数控制复杂度
输出与后处理
- 逐点输出(point-out):低时延标注每个点的动态/静态标签
- 帧级输出(frame-out):在短窗内对运动点做连通聚类与时间一致性过滤,形成稳定的运动体片段或实例,按需回馈耦合以提高鲁棒性
算法细节
- 像素存储:每个像素维护至多$K$个深度样本(如最小、分位数、时间戳),用于近似该方向上的“静态前沿”
遮挡一致性测试
几何关系: 设新点沿单位方向$u$的测量为$r$, 历史在邻域内的代表深度为$d_m$, 在静态场景中,若视线相近,则应有:
\[r > \approx \min_m d_m\]前穿检测
\[\mathrm{viotau ion}^+ = \left [ r < \left ( \min_m d_m - \tau \right ) \right ]\]即新点比历史前沿显著更近(阈值 $ \tau $ 吸收量化与噪声)
后露检测:
\[\mathrm{viotau ion}^- = \left [ \min_m d_m <\left ( r - \tau \right ) \right ]\]即历史点“本应被新点遮挡却仍可见”,提示历史为运动体或当前为运动体的互证
投票与阈值
在多个时间片、多个邻域像素上累积 $\mathrm{viotau ion}^+, \mathrm{viotau ion}^-$ 计数, 如果:
\[\sum \left ( \mathrm{viotau ion}^+ \vee \mathrm{viotau ion}^- \right ) \ge \gamma\]则标记该新点为运动点。参数 $\gamma$ 控制敏感度与误报的平衡
邻域与稳健化
- 角域邻域:水平/垂直角半径决定参与投票的像素范围;过大会引入误匹配,过小则证据不足。
- 时域衰减:对更近时刻的深度图赋更高权重,降低里程计漂移对远时历史的影响。
- 样本选择:像素内优先使用“更近、更新”的样本代表前沿,辅以分位数或中值抑制离群点。
其他
复杂度与时延
- 近似常数时间:每点查询被角域大小、时间片数与像素样本上限共同界定,形成稳定的 O(1) 处理;无需全局重建或帧级配准,因此实现微秒到毫秒级的判定延迟。
- 内存受控:深度图数量 $N$ 与每像素容量 $K$ 线性控制显存/内存占用
输出形态
- 逐点标签:为每个点附加二值或概率型“运动事件”标签,可直接用于动态点过滤、即时避障或早期触发策略。
- 帧级实例:对短窗内的运动点做空间聚类与时间耦合,输出实例级的轨迹片段、体素包围盒或掩膜,便于与跟踪/规划模块衔接。
- 耦合策略:可选择将帧级稳定结果反哺到像素记忆(例如屏蔽已确认的动态区域),降低持续性动态对背景建模的干扰
关键参数
- 角分辨率与视场:控制投影精度与覆盖范围,需与传感器实际一致。
- 时间窗口与张数:决定历史覆盖长度与对噪声/漂移的权衡。
- 邻域大小与阈值:角域半径、深度容差 $\tau$、投票阈值 $\gamma$ 共同决定灵敏度。
- 像素容量上限:平衡稳健性与实时性,避免像素内样本过多导致查询膨胀
局限与失效
- 里程计依赖:姿态/速度误差会转化为虚假不一致;高速机动时需缩短时间窗、收紧阈值
- 动态密集背景:当“静态背景证据”稀薄(如人群/车流充满视野)时,误检率上升;需依赖帧级聚类与时间一致性平滑
- 远距与低信噪:远距回波抖动、多回波与雨雪尘雾可能触发误报;可通过提高 $\tau$、加强分位统计缓解