微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 当自动驾驶汽车遭遇"意外访客":帕多瓦大学的AI如何让激光雷达认出从未见过的障碍物

当自动驾驶汽车遭遇"意外访客":帕多瓦大学的AI如何让激光雷达认出从未见过的障碍物

2026-05-05 16:48
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-05-05 16:48 科技行者

这项由意大利帕多瓦大学研究团队完成的研究,发表于2026年IEEE/CVF计算机视觉与模式识别顶级会议(CVPR 2026),论文编号为arXiv:2604.23604,有兴趣深入了解的读者可通过该编号查询完整论文。

假设你正坐在一辆无人驾驶汽车里,窗外的道路上突然出现了一把从卡车上掉落的办公椅。汽车的"大脑"每天都被训练成认识行人、路灯、其他车辆,但从来没见过落在马路中间的椅子。此时,它会做什么?是把椅子当成路面的一部分直接碾过去,还是能意识到"这是个不认识的东西,要停下来"?

这个问题,正是帕多瓦大学研究团队花费大量心血攻克的核心难题。他们提出了一套全新的系统,名为LIDO(Learning to Identify Out-of-Distribution Objects,学习识别分布外物体的缩写),专门让激光雷达(LiDAR,一种用激光束扫描周围环境、生成三维点云地图的传感器)能够识别出那些它从未在训练中见过的"陌生访客"。

要理解这个研究的意义,可以先把激光雷达想象成一位经验丰富的保安。这位保安每天站在公司门口,认识所有的员工、快递员和常见访客,能快速识别出"这是谁"。但如果哪天来了一个他从未见过的人,他能不能意识到"这个人我不认识,我要特别留意",而不是直接放行,也不是把所有人都当作陌生人?这正是"异常分割"(Anomaly Segmentation)任务的本质——既要准确识别认识的东西,又要对不认识的东西发出警报。

研究团队不仅设计了新的识别方法,还因为现有的测试数据集太过简单、分辨率差异太大而自行构建了三套混合真实与合成场景的新数据集。这两方面的贡献共同构成了这项工作的核心价值。

一、激光雷达眼中的世界长什么样

在深入了解LIDO系统之前,有必要先理解激光雷达是如何"看"世界的。激光雷达不像普通相机那样拍摄二维彩色图像,而是向四周密集地发射激光束,这些激光束碰到物体后会反弹回来,传感器通过计算飞行时间来测量距离。最终,所有这些返回信号会组合成一个由数万乃至数十万个"点"构成的三维空间地图,每个点都携带着它在空间中的位置坐标(x、y、z)以及激光反射强度信息。这张地图被称为"点云"。

点云的好处是能在黑夜、雨雾等各种光照条件下稳定工作,但它的挑战也很明显:每个点只有位置和反射强度,没有颜色,远处的物体点云稀疏而模糊,近处的物体则点云密集。不同型号的激光雷达,发射激光束的数量也不同——常见的有16束、32束、64束甚至128束,束数越多,扫描出的点云越精细,代价自然也越高。

在这个由点构成的三维世界里,"语义分割"任务的目标是给每一个点打上标签:这个点属于地面、这个点属于建筑物、这个点属于行人……而"异常分割"任务则在此基础上再追加一个问题:这个点,是否属于我根本不认识的某个物体?

二、现有方法为何力不从心

在这项研究之前,研究者们已经在二维图像领域积累了丰富的异常检测经验。有人把模型的输出概率当作信心指标,信心低的区域就视为异常;有人训练多个模型,用各模型之间的"意见分歧"来标记异常区域;还有人用生成模型重建输入图像,看哪些区域重建效果差就认为那里有异常。这些方法在图像上有一定效果,但把它们直接搬到激光雷达点云上,往往表现欠佳。

三维点云数据有它独特的复杂性。点的分布不均匀,远处的稀疏、近处的密集;没有颜色信息,仅凭几何形状和反射强度来区分物体;更重要的是,训练时用的激光雷达和测试时用的可能型号不同,分辨率不同,扫描出来的点云"质感"也不同,这会造成显著的"域差距"(Domain Gap)——好比同一个演员在不同导演镜头下看起来判若两人,模型在陌生分辨率的数据上往往会大幅退化。

更棘手的是,现有唯一公开的三维激光雷达异常分割数据集(STU数据集)使用的是128束的高分辨率激光雷达,而大多数训练数据来自64束传感器,这个分辨率跨越本身就是巨大的挑战。该数据集仅有二值标签(是不是异常),没有详细的语义标签,场景也相对简单,异常实例的数量不多。

用一个集成了多个模型的"委员会投票"方案确实能提升效果,但代价是计算量急剧膨胀——要同时运行三个独立的大模型,速度自然快不起来,内存占用也大得惊人。对于需要实时响应的自动驾驶系统来说,这是难以接受的代价。

三、LIDO的核心思路:在"特征空间"里认出陌生人

研究团队选择了一条不同的路径。与其在模型输出的概率层面做文章,不如直接深入到模型内部的"特征空间"里工作。

所谓"特征空间",可以用一个比喻来理解。每个物体经过神经网络处理后,都会被压缩成一个高维的数字向量,就像给每个物体分配了一个独特的"气味"。同类物体的气味彼此相似,不同类物体的气味截然不同。LIDO的核心想法是:为每一类认识的物体训练出一个标准的"气味样本"(称为类原型,Class Prototype),然后在面对新点云时,闻一闻每个点的气味——如果这股气味跟任何一个已知类型都不像,那这个点很可能就属于从未见过的陌生物体。

LIDO由一个特征提取骨干网络和两个并行的处理分支组成。骨干网络采用的是MinkowskiNet,这是一种专门为三维稀疏点云设计的高效卷积网络,能够把原始点云转换成富含语义信息的特征表示。两个分支分别被称为"语义头"和"对比头",它们各司其职,最终在推理阶段合力给出每个点的异常分数。

四、语义头:建立"气味档案"并保持整洁

语义头承担两项任务:一是做常规的语义分割,给每个点打上已知类别的标签;二是为每个已知类别建立并维护一个高质量的"气味档案",也就是类原型。

传统方法通常直接对每个类别的所有点取平均特征作为原型,但这样做有个问题:那些被模型弄错了的点(比如路面上的点被误认成建筑物)也会混进来,污染原型的纯粹性。LIDO引入了一种"置信度加权"机制来解决这个问题。对于每个点,模型会给出一组预测概率,置信度就取这组概率中的最大值。预测越确定,这个点的置信度越高,它对原型的贡献权重也越大;反之,预测模糊的点贡献就小。这样建立起来的原型,就像从档案馆里精心挑选出的标准样本,而非随机堆砌。

此外,语义头还引入了一个"原型接近损失"(Prototype Loss)。在每个训练轮次开始时,模型会用上一轮积累的类原型作为引导,强迫本轮训练中属于某一类的点在特征空间里尽可能靠近该类的原型。这就好比要求所有"狗"的气味都必须聚拢在"狗类气味标准"的附近,不允许散得太开。随着训练的推进,同类点的气味越来越一致,不同类点的气味越来越有区分度。

语义头的训练目标由三部分加权组合而成:常规的交叉熵损失(衡量分类准确性)、Lovász损失(专门针对分割任务优化的损失函数)以及上述原型接近损失。

五、对比头:把陌生物体推到"气味分布"的外围

对比头的使命更加聚焦:在特征空间里把已知类别的点紧紧团结在一起,同时为检测未知物体做好准备。

它使用了两种互补的训练信号。第一种是对比损失(Contrastive Loss)。对于每个类别,对比头会计算该类所有点特征的平均值,然后用这个平均值与类原型进行比对:平均值要尽量靠近本类原型,同时尽量远离其他类的原型。这个拉近-推远的双重压力,会让不同类别的特征分布在高维空间里分散开来,形成彼此清晰隔离的"气味星团"。

第二种是"目标球损失"(Objectosphere Loss),这个名字来源于一个几何意象。可以把高维特征空间想象成一个多维空间,原点就在中间。已知类别的点,它们的特征向量应该离原点足够远,也就是特征向量的"长度"(范数)要超过某个阈值r。而对于训练数据中出现的未知或无标注区域的点,则应该尽量靠近原点,特征向量范数趋近于零。

关键的区别在于,原始图像领域的工作通常利用训练数据中的无标注区域来学习"异常特征",而LIDO在训练中完全不使用任何真实的异常样本或无标注区域。它的做法是:把已知类别的点推到离原点足够远的地方,这样那些"没见过的"物体的点就自然落在离原点较近的区域,成为可识别的异常信号。这是一个优雅的转换——无需见过异常,只需把正常的边界划清楚。

六、推理时如何算出异常分数

训练完成后,面对一片新的点云,LIDO会为每个点计算一个介于0到1之间的异常分数,分数越高代表越可能是异常点。这个分数由语义头和对比头各贡献一半,最终取平均。

语义头给出的分数本身又由两部分相乘得到。一部分是余弦距离分数:将当前点的特征向量与所有已知类别的原型逐一计算余弦相似度(类似于衡量两个"气味"的相似程度),取最大值,再用1减去它——如果这个点跟所有已知类别都不像,相似度最大值就很低,异常分数就高。另一部分是熵分数:把特征向量通过softmax转化为各类别的概率分布后,计算该分布的香农熵(信息熵)。当模型非常确定某个点属于某个已知类别时,熵值很低;当模型对所有类别都拿不准时,熵值很高,说明这个点很可能不属于任何已知类别。两者相乘,再做归一化处理,得到语义头的异常分数。

对比头给出的分数则直接基于特征向量的范数:如果某个点的特征向量范数远低于阈值r,说明这个点落在了高维空间的"原点附近",很可能是未知物体,异常分数就高;如果范数超过r,异常分数归零。

七、从零构建三个全新的测试战场

现有数据集的局限性是整个研究领域的短板。于是研究团队自己动手,基于三个广泛使用的自动驾驶语义分割基准数据集,分别构建了三套"混合真实-合成"异常分割数据集。

nuScenes-OoD基于nuScenes数据集的官方验证集构建,使用32束激光雷达采集,包含6019个扫描帧,共插入了2398个(单目标分割)到7268个(多目标分割)异常物体实例。SemanticPOSS-OoD则来自SemanticPOSS数据集的验证序列,使用40束激光雷达,包含500个扫描帧,共有196到586个异常实例。SemanticKITTI-OoD基于大名鼎鼎的SemanticKITTI数据集的验证集,使用64束激光雷达,包含4071个扫描帧,共有1634到4894个异常实例。

这些数据集都同时提供了单目标(Single Split)和多目标(Multi Split)两种版本。单目标版本中,每个含有异常的场景只插入一个异常物体,且仅放置在道路上,约40%的扫描帧含有异常;多目标版本则可能在一帧中插入最多4个异常物体(以40%、30%、20%、10%的递减概率分配数量),放置位置也扩展到停车区、人行道等其他平面区域,约60%的扫描帧含有异常,难度更大。

最值得关注的是,这三套数据集提供了详细的语义标签,而非STU数据集那样简单的二值标签,这使得评估时能同时衡量异常分割性能和语义分割性能。

八、把"假物体"插进真实扫描的艺术

简单地把一个三维模型的点云直接叠加到真实激光雷达扫描中是行不通的。真实激光雷达扫描中,每个物体表面的点是按照激光束的角度规律排列的,点的分布有明显的"行状"纹理;而三维模型表面均匀采样得到的点则杂乱分布,一眼就能看出是拼贴上去的。

为此,研究团队设计了一套精细的插入流程。合成物体的三维模型来自ModelNet数据集,研究团队仔细筛选了29类物体,排除了汽车、行人等已存在于训练数据中的类别,也排除了飞机、吉他等与驾驶场景完全无关的物体。最终选入的包括浴缸、床、书架、瓶子、碗、椅子、杯子、桌子、沙发、帐篷、马桶等,其中书架、衣柜、抽油烟机这类通常不出现在路面的物体被保留下来,通过缩放模拟成路面碎片或障碍物。

插入流程的核心步骤是球形投影。研究团队先对物体表面进行密集的均匀点采样,再将整个场景(原始扫描加上插入的物体点云)一起投影到一个代表激光雷达扫描视角的二维"距离图像"上。这个投影过程会自动处理遮挡问题——被物体挡住的背景点会被移除,物体本身的点则按照激光束的行列规律重新排布,变成真正符合激光雷达扫描特征的"行状"分布。再从距离图像还原回三维点云,得到的便是几何上完全自洽的混合场景。

强度值的处理同样考究。ModelNet模型没有反射强度信息,研究团队采用朗伯反射模型来计算每个点的模拟强度值。计算公式考虑了物体表面法向量与激光束方向的夹角(正对激光束的表面反射更强)、传感器到点的距离(距离越远反射越弱)以及物体材质的固有反射率。研究团队为每类物体指定了符合现实的材质和反射率:光滑陶瓷(浴缸、碗、马桶)反射率0.60,玻璃反射率0.20,木材反射率0.40,布料(帐篷、沙发)反射率0.30……这些数值参考了现实测量数据和渲染引擎的材质参数库。

最后,计算出的强度值还会根据目标扫描帧的平均强度进行归一化,并叠加小量高斯噪声,使插入物体的亮度与整体场景保持一致,进一步消除人工痕迹。

九、在真实世界数据集上的硬碰硬较量

研究团队在STU数据集(使用128束高分辨率激光雷达,包含19个验证序列和51个测试序列,含1965个异常实例)上与多种基线方法进行了正面比较。所有基线方法都建立在Mask4Former3D这个强力的三维分割框架之上,分别叠加了MC Dropout(蒙特卡洛随机失活,通过多次随机丢弃神经元来估计不确定性)、RbA(一种基于掩码预测的异常检测方法)、Max Logit(取最大原始输出值作为异常分数)、Void Classifier(增加一个"未知类"进行训练)和Deep Ensemble(三个模型集成)这五种策略。

在验证集上,LIDO的AUROC(衡量整体区分能力的曲线面积,越高越好)达到95.05%,超越集成方法的90.93%;FPR@95(在95%真正例率时的假正例率,越低越好)为34.86%,与集成方法的37.34%相当;AP(平均精度,综合衡量精确率和召回率,越高越好)达到27.53%,相比集成方法的6.94%提升了将近4倍。在测试集上,LIDO同样以93.67% AUROC、34.29% FPR@95和14.99% AP领先所有方法。

这里值得特别指出的是AP指标的巨大差距。AP对于类别严重不平衡的场景(正常点远多于异常点)特别敏感,它要求模型不仅要把异常点排在前面,还要精确地只把异常点排在前面。LIDO在AP上的显著领先,说明它能够精准地定位到那些异常点,而不是通过把大量正常点也标记为异常来蒙混过关。

值得一提的是,LIDO在训练时完全使用的是64束分辨率的SemanticKITTI数据,而STU使用的是128束分辨率,这个分辨率跨越构成了显著的域差距。LIDO能在跨域场景下保持如此高的性能,显示出特征空间建模方法对域差距的良好鲁棒性。

在LIDO训练时使用的阈值参数r的选取上,研究团队做了敏感性实验。与图像领域的经验不同,激光雷达点云特征的范数普遍偏大,因此最优阈值r=5.0,远高于图像领域通常使用的较小值。这说明不同感知模态的特征分布特性存在本质差异,方法迁移时需要重新校准。

十、在新构建数据集上的表现与深入分析

在SemanticPOSS-OoD数据集上,LIDO在单目标和多目标分割上均显著超过所有竞争方法。然而,这个数据集整体性能都偏低,研究团队分析认为原因是SemanticPOSS中存在大量稀疏的动态实例(如远处的行人),这些稀疏点云在形态上与部分异常物体相似,容易引发混淆。同时,40束的相对较低分辨率也限制了模型能够提取的特征数量,对原型建立质量有影响。

在SemanticKITTI-OoD上,LIDO在单目标分割上以93.36% AUROC和10.60% AP领先;在多目标分割上,Deep Ensemble方法以92.19% AUROC略胜,但其FPR高达28.64%,而LIDO的FPR为39.04%。值得注意的是,Deep Ensemble在多目标分割上虽然AUROC和FPR较好,但AP仅12.04%,低于LIDO的9.42%则是反过来,说明集成方法倾向于把更多点预测为异常(从而降低FPR),但这种"广撒网"的策略也带来了更多误报,在AP指标上未能展现出更好的精准性。

在nuScenes-OoD上,32束的低分辨率是最大挑战。LIDO达到了89.33%(单目标)和87.25%(多目标)的AUROC,与MinkowskiNet骨干网络的集成方法相当,但在AP指标上略低于基于Mask4Former3D的集成方法(6.79% vs 18.34%)。研究团队指出,nuScenes的低点密度严重影响了类原型的构建质量,反映在语义分割性能也下降明显(mIoU从72.75%降至60.61%)。摩托车和自行车类别由于数据量极少(分别只有全部数据的0.03%和0.01%),其特征学习几乎失效,频繁被错分为更常见的"人工建筑"类别。

对于整体AP偏低的问题,研究团队给出了几层解释。激光雷达数据本身存在严重的类别不平衡,正常点压倒性地多于异常点;模型对某些类别边界区域(如道路与人行道交界处)天然存在不确定性,这种不确定性会产生假阳性;远处的稀疏点同样是误报的高发区。有趣的是,多目标分割版本的AP普遍高于单目标版本,研究团队认为这是因为多目标场景中异常点的绝对数量更多,在统计上有利于AP的计算。

十一、计算效率的惊人差距

除了性能指标,研究团队还专门测试了各方法的运行时间和资源消耗(在NVIDIA A40 GPU上进行)。LIDO拥有2170万个参数,推理时间仅38毫秒(nuScenes-OoD),在STU的128束高分辨率数据上也只需90毫秒,内存占用0.6GB,完全满足实时处理需求。

相比之下,Mask4Former3D单模型就有3960万参数,推理需要168毫秒(nuScenes-OoD),在STU上则需392毫秒。顺序运行的Deep Ensemble(三个模型依次运行)在nuScenes-OoD上需要861毫秒,在STU上更是长达2628毫秒——超过2.5秒,对于需要实时决策的自动驾驶系统来说完全不可接受。即使是并行运行三个模型的版本,nuScenes-OoD上也需要287毫秒,内存消耗高达5.7GB,是LIDO的近10倍。

这种效率上的巨大差距,在实际部署中意味着本质性的不同。LIDO可以直接装进车载嵌入式计算平台,而集成方法则需要高端工作站级别的硬件支撑。

十二、消融实验:拆开看每个零件的作用

为了验证每个设计选择的必要性,研究团队系统地进行了消融实验,在STU验证集上逐步添加各个组件,观察性能变化。

从只有基础语义分割加最大输出值(Max Logit)推理开始,AUROC已有90.92%,但AP仅0.97%。加入原型损失后,无论是使用阈值推理还是余弦距离推理,AP都有小幅提升,说明更紧凑的类原型确实改善了特征分布的质量。当同时加入对比损失后,配合语义头分数(余弦距离乘以熵)推理,AUROC升至95.04%,AP跃升至12.88%。进一步加入目标球损失,并将语义头分数与对比头分数各取一半融合(即完整的LIDO),AUROC保持在95.05%,AP达到最高的27.53%。

有个细节很有意思:单独使用对比头分数(仅基于特征范数)推理时,FPR高达100%,说明单靠范数阈值来判断异常是不可靠的,必须与语义头的余弦距离和熵分数结合才能发挥作用。两个头的分数互为补充,共同覆盖对方的盲区。

这个逐步验证的过程,就像是拆解一台精密仪器,确认每个零件都有其不可或缺的功能,缺少任何一个都会让整体性能打折扣。

十三、语义分割性能的小代价

引入异常分割的额外训练目标,不可避免地对基础语义分割性能产生了一定影响。与纯语义分割基线相比,LIDO在SemanticKITTI-OoD上的mIoU从64.99%降至61.34%,在SemanticPOSS-OoD上从57.07%降至55.63%,在STU上从36.75%降至35.14%,在nuScenes-OoD上降幅最大,从72.75%降至60.61%。

研究团队进一步分析了这个降幅的构成:原型损失是造成mIoU下降的主要原因(单独加入原型损失使mIoU从64.8%降至60.7%),而后续加入的对比损失和目标球损失反而略微弥补了一些(mIoU回升至61.0%和61.2%),这与消融实验中观察到的趋势一致。在逐类分析中,摩托车手(Motorcyclist)类别在加入LIDO损失后从0.1%mIoU降至0.0%,这类极罕见的类别受到的冲击最大。

归根结底,这是一个在语义分割精度与异常检测能力之间做权衡的设计选择。LIDO选择了适度牺牲语义分割精度(约3-12个百分点,视数据集而定),换取大幅提升的异常检测能力,这在实际自动驾驶场景中是一个合理的取舍——漏识别一个障碍物的后果远比多几个误分类的路面点要严重得多。

说到底,LIDO这项研究的价值在于为自动驾驶和机器人感知领域的一个长期痛点提供了一个兼具性能和效率的解决思路。它证明了直接在特征空间内建立"已知类别的气味边界",比在模型输出端做各种后处理更加根本和有效。帕多瓦大学的研究团队同时还指出了未来的改进方向:将LIDO拓展到跨域场景(即用在与训练数据分布差异更大的环境中),以及进一步研究如何量化模型的不确定性,从而在长距离和稀疏点云条件下做出更可靠的异常判断。

这些方向的突破,或许意味着无人驾驶汽车真正做到"遇事不慌"还需要更多研究努力,但LIDO无疑是向这个目标迈出的扎实一步。感兴趣的读者可以通过arXiv编号2604.23604查阅完整论文,或访问研究团队的项目主页获取代码和数据集。

Q&A

Q1:LIDO方法和直接训练多个模型集成的方法相比,哪个更适合实际部署?

A:在性能上,LIDO在STU数据集上的平均精度(AP)比三模型集成方法高出将近4倍;在效率上,LIDO的推理时间约38至90毫秒,内存占用仅0.6GB,而集成方法顺序运行需要超过800毫秒甚至2.5秒,内存消耗达到5.7GB。对于需要实时响应的自动驾驶系统,LIDO明显更适合实际部署,集成方法则更适合对速度要求不高的离线分析场景。

Q2:LIDO构建的三个新数据集和现有STU数据集有什么本质区别?

A:STU数据集使用128束高分辨率激光雷达,仅提供二值异常标签,场景相对简单,异常实例数量有限。三个新数据集(nuScenes-OoD、SemanticPOSS-OoD、SemanticKITTI-OoD)则覆盖了32束、40束和64束三种不同分辨率,同时提供详细的语义标签,场景更复杂,异常物体多达29类,且有单目标和多目标两种难度版本。更重要的是,新数据集通过几何对齐和物理反射模型计算强度值,确保合成物体与真实扫描的一致性,异常实例总数也远超STU。

Q3:激光雷达异常分割为什么比普通图像异常检测更难解决?

A:激光雷达点云面临几个图像领域没有的独特挑战。首先,点云只有位置坐标和反射强度,没有颜色信息,可用特征维度少得多。其次,点的空间分布极不均匀,近处密集远处稀疏,远处的异常物体可能只有寥寥几个点,识别难度极高。此外,不同型号激光雷达的束数不同会造成显著的域差距,训练数据和测试数据的点云"质感"差异可能很大,模型泛化难度更高。最后,公开数据集极为匮乏,现有数据集要么分辨率差异大,要么异常标注简单,这些都制约了方法的发展。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-