← 返回 2026-04-28

面向 3D LiDAR 异常分割的学习识别分布外物体方法 Learning to Identify Out-of-Distribution Objects for 3D LiDAR Anomaly Segmentation

Simone Mosco, Daniel Fusaro, Alberto Pretto 📅 2026-04-26 👍 6 2026-07-13 08:36
3D LiDAR 分布外检测 异常分割 特征空间学习 自动驾驶

在特征空间中建模内类分布的轻量级 LiDAR 异常分割方法,并发布三个混合仿真数据集

前置知识

LiDAR 语义分割

为点云中每个 3D 点分配一个语义类别标签(如汽车、行人、道路)。主流方法按表征方式分为 point-based(如 PointNet++)、projection-based(如 RangeNet++,把点云投影成 2D 距离图像)、voxel-based(如 MinkowskiNet 的稀疏 3D 卷积)和 hybrid 四类。本文采用 MinkowskiNet 作为骨干网络,因其对稀疏 LiDAR 数据既高效又能保留 3D 几何信息。

理解 LiDAR 语义分割是看懂本文的前置条件——LIDO 是把语义分割的特征空间重新利用来做异常检测,二者共享同一个骨干网络和大部分训练流程。

异常分割(Anomaly Segmentation)

在常规语义分割基础上,给每个点额外打一个「是否是训练时没见过的物体」的二分类标签。2D 图像领域已有 Fishyscapes、SegmentMeIfYouCan 等基准,常用做法包括 max-logit、MC Dropout 估计不确定性、deep ensemble 投票、基于特征空间建模(如 Open-World Semantic Segmentation)。本文的灵感主要来自图像领域 Sodano 等人 2024 年的工作,把类似思想扩展到 3D LiDAR。

本文的目标正是这个任务,需要先了解它在 2D 领域的成熟做法,才能体会到 LIDO 把「在特征空间建模」这一思路直接搬到 3D 的价值。

分布外检测(Out-of-Distribution Detection)

识别模型训练时没见过的类别样本。常用方法有基于 softmax 概率(max-logit、entropy)、基于不确定性的(MC Dropout、deep ensemble)、基于特征空间的(objectosphere loss 把内类特征推到半径 r 的超球面外)。本文综合使用 confidence-based prototype + contrastive loss + objectosphere loss 三种手段约束特征分布。

LIDO 的核心创新就是直接对特征分布建模来识别 OoD 点,必须熟悉 OoD 常用做法才能理解本文相对 baseline 的优势。

MinkowskiNet 稀疏 3D 卷积

Choy 等人 2019 年提出的 4D 稀疏卷积网络,通过只对非空体素做卷积极大降低计算量,是当前 LiDAR 语义分割的主流骨干。本文直接使用它,配合两个简单的线性 head 分别做语义分割和异常检测。

是本文方法的骨干,影响最终特征质量和效率;理解它的稀疏性才能明白为什么 LIDO 能在 21.7M 参数下跑出 38ms 实时速度。

Lambertian 反射模型

描述理想漫反射表面的反射强度公式:$i = \frac{\rho \cdot \max(0, \langle n, r \rangle)}{d^2}$,其中 $\rho$ 是反射率、$n$ 是法向、$r$ 是入射方向、$d$ 是距离。本文用这个物理模型为插入的合成异常物体计算 LiDAR 强度(intensity/remission)值,比 CARLA 等仿真器只用距离近似更接近真实 LiDAR 行为。

理解数据合成时如何让插入物体的强度值与真实 LiDAR 扫描一致,是评估本文数据集质量的关键。

研究动机

现有的 3D LiDAR 异常分割方法存在两大根本缺陷。第一类是简单复用 2D 图像领域的后处理技术,比如 max-logit、deep ensemble 等,这些方法本质上是把 2D softmax 输出当作异常分数,没有利用 LiDAR 几何信息,效果差且计算昂贵——例如 Mask4Former3D + Deep Ensemble 需要 118.8M 参数、287ms 推理时间。第二类依赖未标注区域当作隐式异常(如把没标签的点都当 OoD),这种做法在干净的训练数据上不成立,且无法真正检测「训练时从未见过的类别」。更棘手的是数据匮乏问题:目前公开可用的 3D LiDAR 异常分割数据集只有 STU 一个,但它用 128-beam 高分辨率 LiDAR 采集,与主流训练集(SemanticKITTI 64-beam、nuScenes 32-beam、SemanticPOSS 40-beam)存在严重的传感器域差异;SOD 数据集只有 16-beam 低分辨率扫描,域差距更大;CODA 来自多个真实数据集但只用 bounding box 标注且部分异常物体可能在训练集出现;TOR4D/Rare4D 则是不公开的私有数据。这让大多数论文无法公平比较,研究进展受限。

本文的目标是本文提出一个直接在 LiDAR 特征空间建模内类分布的方法 LIDO,无需任何异常样本参与训练;同时发布三个基于主流 LiDAR 语义分割基准(SemanticKITTI、SemanticPOSS、nuScenes)的混合仿真 OoD 数据集,填补「不同传感器分辨率下都缺乏带语义标签的 LiDAR 异常分割基准」这一空白。最终目标是同时做到:方法上避免 2D 后处理技术的局限,数据上覆盖主流 LiDAR 传感器分辨率(32/40/64-beam),并提供完整的逐点语义标签(而非仅 bounding box 或二值 mask)。

与已有工作不同的是,现有方法走的两条路——「2D 后处理」和「未标注区域当作异常」——都没有真正利用 3D 特征空间的分布信息。LIDO 的独特切入角度是:借鉴图像领域 Sodano 等人的做法,把 confidence-based prototype 与 contrastive learning、objectosphere loss 结合起来,让内类点在特征空间中形成紧凑聚类、且被推到半径为 $r$ 的超球面之外,从而异常点会自然落入球心附近。在数据层面,作者没有像 STU 那样采集全新高分辨率数据,而是设计了一套物理一致的数据合成流程:先把 ModelNet 模型按 LiDAR 波束几何重投影获得 beam-like 采样模式,再用 Lambertian 反射模型计算强度值,最终把合成 OoD 物体插入真实 LiDAR 扫描中,这种「真实场景 + 合成异常」的混合策略既保证域内数据真实,又避开了人工标注异常物体的昂贵成本。

核心方法

LIDO 的整体思路是「共享骨干 + 双 head 联合训练 + 双分数融合」。给定一个 LiDAR 扫描 $X \in \mathbb{R}^{N \times 4}$(每点包含 $(x_n, y_n, z_n, i_n)$),先送入 MinkowskiNet 骨干提取逐点特征,然后分两条支路:一条是 Semantic Head,负责逐点分类并构建每类的「置信度原型」(confidence-based prototype);另一条是 Contrastive Head,用对比学习和 objectosphere loss 在特征空间里把内类推到超球面外。训练时只用 inlier 类别监督(不接触任何异常样本),推理时把两个 head 输出的异常分数融合——语义头给出「到最近原型的余弦距离 × softmax 熵」的复合分数,对比头给出「特征范数是否低于阈值 $r$」的分数——两者平均后归一化得到最终 $s_n \in [0,1]$ 的异常概率。这种设计的核心思想是:不依赖任何后处理或额外推理开销,直接从学到的特征分布里识别分布外样本。

LIDO 与已有方法的本质区别在于「在特征空间主动约束内类分布」而非「在输出空间被动检测异常」。对比一下:(1) Max-Logit/Entropy 只看最后一层 softmax 的统计量,不关心特征本身的几何;(2) Deep Ensemble 通过多个模型投票估计 epistemic uncertainty,但需要训练 3 个完整模型、参数 ×3、推理 ×2.6~7 倍;(3) Void Classifier 需要额外训练一个异常类,把异常信息泄漏到训练集;(4) RbA 需要已知/未知二分类样本。LIDO 则只用单一模型、单一 backbone,通过 prototype loss 把同类点拉近,通过 contrastive loss 把不同类点推开,通过 objectosphere loss 把所有内类点统一推到 $|f_p'|^2 > r$ 的超球面外——异常点没有这些约束,会自动落在球心附近或远离所有原型,因此 $|f_p'|^2$ 偏小或余弦相似度偏小。这种「几何约束」做法的好处是训练阶段不需要任何异常数据,推理阶段不需要任何后处理或额外前向传播。

方法步骤详情

训练阶段包含以下具体步骤:(1) 输入为 $X \in \mathbb{R}^{N \times 4}$ 的 LiDAR 扫描,送入 MinkowskiNet 提取稀疏 3D 特征;(2) Semantic Head 用一个线性层产生每点预 softmax 特征 $f_p$,用加权交叉熵损失 $\mathcal{L}_{ce}$(公式 1)做语义监督,并对所有 true-positive 点按置信度 $\kappa_p = \max(f_p)$ 加权累积形成 confidence-based prototype $CP_c$(公式 2);(3) 下一 epoch 起始时,用上一 epoch 累积的 $CP_c^{e-1}$ 通过 prototype-based cosine embedding loss $\mathcal{L}_{prot}$(公式 3)把同类点拉向原型;(4) Semantic Head 总损失 $\mathcal{L}_{shead} = \lambda_1 \mathcal{L}_{ce} + \lambda_2 \mathcal{L}_{lovasz} + \lambda_3 \mathcal{L}_{prot}$,加入 Lovasz 损失以优化 mIoU;(5) Contrastive Head 用另一个线性层产生特征 $f_p'$,先计算每类均值 $\bar{f}_c$(公式 5),用对比损失 $\mathcal{L}_{cont}$(公式 6,温度 $\tau=0.1$)把 $\bar{f}_c$ 拉向对应原型、推开其他类原型;(6) 同时用 objectosphere loss $\mathcal{L}_{obj}$(公式 7,阈值 $r=5.0$)惩罚所有内类点的 $|f_p'|^2 \leq r$,把它们推到超球面外;(7) Contrastive Head 总损失 $\mathcal{L}_{chead} = \lambda_4 \mathcal{L}_{cont} + \lambda_5 \mathcal{L}_{obj}$。推理阶段:(1) Semantic Head 用余弦相似度 $\text{sim}_{n,c}=\langle f_n, CP_c\rangle$ 做分类(公式 9-10);(2) 异常分数 = 余弦距离 × Shannon 熵 $s_n^{sem}$(公式 11-12);(3) Contrastive Head 给出 $s_n^{cont} = \min(1, |f_n'|^2 / r)$(公式 13);(4) 最终异常分数 $s_n = \frac{1}{2}(s_n^{sem} + s_n^{cont})$ 归一化到 [0,1](公式 14)。

技术新颖性

本文的技术新颖性主要体现在三个层面。第一是「feature-space geometric anomaly modeling」,把图像领域 Sodano 等人的 confidence-based prototype 思路第一次系统地移植到 LiDAR 3D 特征空间,并发现 LiDAR 特征范数天然比图像大(需要 $r=5.0$ 而非 $r=1.0$),这一点论文通过消融实验(表 11)做了专门验证。第二是「物理一致的 LiDAR 异常数据合成协议」,包含三个非平凡的工程贡献:(a) 把 ModelNet 模型投影到 range image 后再 reproject 回 3D,从而自动按 LiDAR 波束模式采样、避免遮挡并保持几何对齐(公式 16);(b) 用 Lambertian 反射模型 $i = \rho \cdot \max(0, \langle n, r \rangle)/d^2$ 计算强度值,并按真实扫描的平均强度做归一化加高斯扰动;(c) 设计了 single/multi split,前者只在 road 插入、后者允许在 parking/sidewalk 等多平面插入,难度阶梯清晰。第三是「单模型 + 双 head + 双分数融合」的轻量级推理架构,最终只需 21.7M 参数、38ms 推理时间,比 Deep Ensemble 的 118.8M、287ms 在效率上有数量级提升(表 6),但 AP 反而高 9.82 个百分点(27.53% vs 6.94%,STU 验证集)。

Overview of the proposed LIDO approach
Figure 2: Overview of the proposed LIDO approach
Examples of ModelNet objects selected for the creation of the proposed OoD datasets
Figure 4: Examples of ModelNet objects selected for the creation of the proposed OoD datasets
Distribution of anomaly points on the XY plane across all proposed OoD datasets
Figure 5: Distribution of anomaly points on the XY plane across all proposed OoD datasets
Example of computed intensity values in the proposed OoD datasets
Figure 6: Example of computed intensity values in the proposed OoD datasets

实验结果

LIDO 在四个数据集上都取得了 SOTA 或有竞争力的结果。在真实世界基准 STU 上(表 2),LIDO 在验证集取得 AUROC 95.05%、FPR@95 34.86%、AP 27.53%,测试集 AUROC 93.67%、AP 14.99%,其中 AP 相比之前的 SOTA Deep Ensemble(验证集 6.94%、测试集 5.17%)提升超过 9.8 个百分点,相对提升接近 4 倍——这是论文最有说服力的结果,说明「在特征空间建模」对真实 LiDAR 异常识别效果远好于「softmax 后处理 + ensemble」。在 SemanticPOSS-OoD(表 3)上,LIDO 在 single split 取得 AUROC 91.51%、AP 3.97%,multi split AUROC 90.84%、AP 5.92%,都显著超过所有 baselines。在 SemanticKITTI-OoD(表 4)上,LIDO 在 single split 取得 AUROC 93.36%、AP 10.60%(SOTA),multi split 取得 AUROC 89.89%、AP 9.42%(接近 baseline)。在 nuScenes-OoD(表 5)这一最难的低分辨率基准上,LIDO 取得 AUROC 89.33%/87.25%、AP 6.79%/10.53%,AUROC 与 Deep Ensemble 接近但 AP 略低,作者归因于 32-beam 扫描点云稀疏、prototype 难建。距离分析(表 14)显示 LIDO 在 0-10m 范围内 AP 高达 40.77%、10-20m 仍有 44.07%,但 30-40m 跌到 0.21%、40-50m 仅 0.02%,说明远距离稀疏点的异常检测仍是开放问题。语义分割性能(表 7)方面,LIDO 在加入额外异常损失后 mIoU 略降(如 SemanticKITTI 64.99→61.34、nuScenes 72.75→60.61),但 STU 上仍有竞争力(35.14 vs 36.75)。消融实验(表 8)表明 prototype loss + contrastive loss + objectosphere loss 三者叠加的最终分数 $s_n$ 配合才能取得最佳组合(AUROC 95.05%、FPR 34.86%、AP 27.53%),单独使用任何一种都会显著掉点(AP 从 27.53% 跌到 0.97-16.67%)。

Comparison of publicly available LiDAR datasets for Anomaly Segmentation
Table 1: Comparison of publicly available LiDAR datasets for Anomaly Segmentation
Anomaly Segmentation performance on STU dataset
Table 2: Anomaly Segmentation performance on STU dataset
Anomaly Segmentation performance on SemanticPOSS-OoD dataset
Table 3: Anomaly Segmentation performance on SemanticPOSS-OoD dataset
Anomaly Segmentation performance on SemanticKITTI-OoD dataset
Table 4: Anomaly Segmentation performance on SemanticKITTI-OoD dataset
Anomaly Segmentation performance on nuScenes-OoD dataset
Table 5: Anomaly Segmentation performance on nuScenes-OoD dataset
Model complexity and runtime comparison on nuScenes-OoD dataset
Table 6: Model complexity and runtime comparison on nuScenes-OoD dataset
Semantic segmentation results (mIoU, %) of standard baseline and our proposed approach
Table 7: Semantic segmentation results (mIoU, %) of standard baseline and our proposed approach
Ablation study of the LiDAR anomaly segmentation pipeline on STU validation set
Table 8: Ablation study of the LiDAR anomaly segmentation pipeline on STU validation set
Details of the anomaly objects inserted in the proposed OoD datasets
Table 9: Details of the anomaly objects inserted in the proposed OoD datasets
Material properties and reflectivity values for the selected ModelNet objects
Table 10: Material properties and reflectivity values for the selected ModelNet objects
Ablation study on the threshold r in the contrastive head score
Table 11: Ablation study on the threshold r in the contrastive head score
Ablation study on the impact of the LiDAR anomaly segmentation pipeline on semantic segmentation
Table 12: Ablation study on the impact of the LiDAR anomaly segmentation pipeline on semantic segmentation
Model runtime comparison across different datasets
Table 13: Model runtime comparison across different datasets
Range-based evaluation on STU validation set (AP, %)
Table 14: Range-based evaluation on STU validation set (AP, %)
Anomaly Segmentation results on STU and SemanticKITTI-OoD (Multi split)
Figure 3: Anomaly Segmentation results on STU and SemanticKITTI-OoD (Multi split)
查看结构化数据
任务指标本文基线提升
STU 验证集异常分割 AUROC (%) 95.05 90.93 (Mask4Former3D + Deep Ensemble) +4.12
STU 验证集异常分割 AP (%) 27.53 6.94 (Mask4Former3D + Deep Ensemble) +20.59 (相对提升 296%)
STU 验证集异常分割 FPR@95 (%) 34.86 37.34 (Mask4Former3D + Deep Ensemble) -2.48
STU 测试集异常分割 AUROC (%) 93.67 86.74 (Mask4Former3D + Deep Ensemble) +6.93
SemanticPOSS-OoD (Single) AUROC (%) 91.51 85.86 (Deep Ensemble) +5.65
SemanticPOSS-OoD (Multi) AP (%) 5.92 1.21 (Deep Ensemble) +4.71 (相对提升 389%)
SemanticKITTI-OoD (Single) AP (%) 10.60 6.20 (Deep Ensemble) +4.40
SemanticKITTI-OoD (Single) AUROC (%) 93.36 92.87 (Deep Ensemble) +0.49
nuScenes-OoD (Single) AUROC (%) 89.33 91.79 (Deep Ensemble) -2.46 (略低于 baseline)
推理效率 Runtime (ms) 38 287 (Parallel Deep Ensemble) 快 7.6 倍
模型规模 Params (M) 21.7 118.8 (Deep Ensemble) 小 5.5 倍

局限与改进

作者在论文中明确承认了几点限制:第一,在 nuScenes-OoD(32-beam)这种极低分辨率基准上,LIDO 的 AP 仅为 6.79%(single split)/10.53%(multi split),低于 Deep Ensemble 的 18.34%/23.87%,说明当每帧点数过少时 prototype 难以可靠构建,性能反而不如 ensemble 投票;第二,距离衰减严重,表 14 显示 30-40m 的异常物体 AP 仅 0.21%、40-50m 几乎为 0,远距离稀疏点的特征范数难以稳定估计;第三,AP 指标整体仍受 LiDAR 数据严重的类不平衡(bicycle/motorcycle 仅占 0.01-0.03%)和现有语义分割模型固有误分类的影响(如 road/bicycle 经常被错分)。我自己观察到几个论文未明说但客观存在的问题:(1) 数据集虽然覆盖了 32/40/64-beam 三种主流分辨率,但完全没有 128-beam(Velodyne HDL-64E 升级版或 Hesai AT128)的 OoD 数据,而 STU 正是 128-beam,新数据与 STU 仍有分辨率缺口;(2) 合成的 ModelNet 物体(椅子、浴缸、钢琴等)虽然做了物理一致的强度估计,但它们的尺寸、姿态、位置仍然与真实道路场景异常(如掉落货物、动物)有分布差异;(3) 论文对「为什么会做 OoD 检测」的实时安全应用讨论偏少,缺乏端到端在自动驾驶 stack 中的延迟、误报成本分析;(4) MinkowskiNet 作为骨干选择相对保守,未与最近的 RangeFormer、PTv3 等 SOTA 骨干做对比,可能存在 backbone 层面的不公平。

独立分析的弱点

独立分析来看,LIDO 主要有以下几个可改进的弱点。(1) 对低分辨率点云鲁棒性差:nuScenes-OoD 上的 AP 显著低于 ensemble,根本原因是 confidence-based prototype 在点数过少时方差大、对比学习的类间推力也难稳定——改进方向是引入不确定性加权的 prototype,或者对 prototype 加贝叶斯先验(variational prototype)。(2) 长距离异常漏检:30m 之外 AP 几乎归零,远距离点云稀疏 + 噪声大导致特征范数偏离正常分布——可结合 LiDAR 距离自适应特征归一化(不同距离段用不同的 prototype 半径 $r$)。(3) AP 指标整体偏低:即便 STU 验证集也只有 27.53%,主要由 PR 曲线在低召回区域的快速跌落造成——可考虑在推理阶段引入 class-agnostic NMS 或者基于几何先验的异常框假设(先用语义点群聚类再判断),能显著提高 AP。(4) 数据集多样性有限:异常物体全是 ModelNet 室内物体,缺乏真实道路常见的异常类型(如掉落的轮胎、动物、塑料袋、施工区反光锥等),且都从单一 CAD 模型采样、缺乏纹理和运动模糊——改进方向是引入 Gaussian Splatting 等新视角合成或用真实采集的负样本替换。(5) 单 backbone 依赖:MinkowskiNet 对稀疏卷积的 kernel 设计不一定最优,可尝试最近 PTv3、RangeFormer 等注意力骨干。

未来方向

作者在结论部分明确指出了两个未来方向:第一是把方法扩展到 cross-domain 任务(引用了 DPGLA、COSMix 等 LiDAR 域自适应工作),增强在 nuScenes/SemanticKITTI/STU 等不同数据域之间的泛化能力;第二是研究不确定性估计对 LiDAR 语义分割的影响(引用 Calib3D、置信度估计等工作),进一步提高异常预测的可靠性。基于论文成果还可以延伸的方向包括:(1) 把 LIDO 的特征空间范式扩展到 4D 时序 LiDAR 异常分割(结合前后帧 prototype tracking),可能显著提升漏检率;(2) 把 LIDO 与视觉语言模型(如 CLIP)结合,做 open-vocabulary 异常分类——不仅告诉「这是异常」,还告诉「这是哪种异常」;(3) 把混合仿真数据集作为预训练数据,先在大量合成 OoD 场景上预训练 confidence-based prototype,再到真实数据 fine-tune,可能缓解远距离异常漏检;(4) 探索端到端的实时部署(论文已经做到 38ms,但还要算上语义分割和规划模块的端到端时延),把异常分数作为规划模块的风险输入;(5) 研究 failure case 发现的可解释性,借助 LIDO 的特征范数可视化错误预测,提高安全审计能力。

复现评估

复现性方面本文做得相当完善:作者明确承诺「Code and datasets are available at https://simom0.github.io/lido-page/」,三个新数据集(nuScenes-OoD、SemanticPOSS-OoD、SemanticKITTI-OoD)连同 ModelNet 反射率表(表 10)、插入协议、范围图像投影代码都会公开,reproducibility 门槛较低。训练要求方面:单卡 NVIDIA A40、64 epochs、batch size 4、SGD 优化器(lr 从 0 线性 warm-up 到 $2.4 \times 10^{-1}$ 再 cosine 退火到 $1 \times 10^{-2}$,weight decay $1 \times 10^{-4}$),超参数 $r=5.0$、$\tau=0.1$、$\lambda_1=1.0$、$\lambda_2=1.5$、$\lambda_3=0.1$、$\lambda_4=0.5$、$\lambda_5=0.5$ 全部在论文中给出。从零训练一次约 1-2 天(单 A40),推理 38ms 实时。实现难度方面,核心的 confidence-based prototype、contrastive loss、objectosphere loss 都是几行 PyTorch 代码即可实现,最花时间的是数据合成协议(range image 投影 + Lambertian 反射强度 + 标签融合),这部分作者提供了完整协议文档。潜在复现障碍:(1) STU 数据集本身需要单独申请(参考 Nekrasov 等人的 CVPR 2025 论文获取方式);(2) SemanticKITTI/nuScenes/SemanticPOSS 都是需要许可的常用数据集,复现者需要先申请这些;(3) 论文未提供详细的随机种子和训练日志,复现结果可能有 ±1-2 个百分点波动。总体而言,论文复现友好度评为 4/5,方法、数据、协议、超参数齐全,仅缺训练细节。