ICCV 2023 | RPL:自动驾驶中道路异常检测的新思路

编辑 | CVer

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【全栈算法】技术交流群

本文只做学术分享,如有侵权,联系删文

Residual Pattern Learning: 在不影响模型闭集表现的情况下分割异常物体

Out-of-Distribution (OoD) Segmentation 是在原有的闭集分割器的基础上, 让模型进一步拥有识别异常物体的能力。现在的SOTA的方法都是基于重新fine-tuning/retraining整个闭集Segmentation网络, 这样会导致对原本inlier object的性能下降。同时, 大多数OoD的办法很难对多个不同的环境进行很好的拟合, 导致识别异常物体的性能在不同的场景会落差很大。

在这里和大家分享一波我们ICCV 2023中稿的工作 "Residual Pattern Learning for Pixel-wise Out-of-Distribution Detection in Semantic Segmentation". 在本次工作中, 我们针对当前OoD Segmentation中的两个问题进行了优化, 并且用consistent checkpoint 在所有数据集上取得了非常好的性能。        

d6e89e47bbfe2bc4b56cd9d71608c7c8.png

文章地址: https://arxiv.org/abs/2211.14512

代码地址:https://github.com/yyliu01/RPL

训练细节:https://wandb.ai/yy/RPL?workspace=user-pyedog1976

背景:

语义分割模型用于将像素级别的sample分类到 In Distribution (ID) 类别中。然而,当在开放世界中部署时,这些模型的可靠性不仅取决于其对ID像素的分类能力,还取决于其对Out-of-Distribution (OoD) 像素的检测能力。比如在autonomous driving的任务中, 路上出现一些障碍物 (OoD object, 比如说`路障`) 的时候, 传统的闭集semantic segmentation并不能很好的检测出这些物体。因为原本的segmentation 模型在训练的时候并没有定义这些种类, 导致这类物体会被判定成head categories (e.g., road), 会对驾驶造成潜在的危险。

OoD Segmentation方向概述:

088b14f9a277749c6553fd916f89a3b5.png

1). 锁网络:最straight forward的方法就是直接通过softmax 或者 energy的结果来把segmentation输出的mask里面潜在的low confidence pixel判断成OoD。这种方法的好处是不会影响ID的segmentation性能, 并且不需要训练网络, 但是在遇到复杂的inlier或者outlier的时候, 性能会下降的很明显, 如上图 (a) 所示。

2). 重新训练:最近的办法主要是通过Outlier Exposure (OE) 将一个不相干的OoD数据集加入到ID数据集, 然后fine-tune已经训练好的close-set segmentation模型。在这个fine-tuning过程中, 利用新加入的OoD object来强行增加原本segmentation模型对异常的敏感度, 使得其OoD分割的性能得到了非常大的提升。但是这类方法的重新训练会导致原本ID类别的分割的性能受到不可逆的干扰, 如图 (b) 所示。

由这两点为motivation, 我们想要在保留原本inlier的分类性能的情况下, 得到一个稳定有效的OoD 分割器, 如图 (c)。

方法:

130a906ed92b2877928a4c4580185f14.png

1). Residual Pattern Block (RPL):

与以往直接fine-tuning/retraining 分割网络不同, 我们在在原本的网络上外接了一个轻便的RPL block (frpl),然后原本的segmentation模型会全程锁住。基本思路是, frpl block对ID的pixel不做任何影响, 但是对潜在的OoD pixel做一个扰动, 让对应的confidence大幅下降, 进而通过最终map里的energy来判别是不是异常。

在训练过程中, 我们先用原本的网络生成 y_tilde (ID pseudo label):

       3407cb704756998e6efaebe14fd4e410.png

然后用RPL扰动后的原本网络的结果:

3c9b76314362c8e04433f6824a861bff.png

对ID的pixel, 我们用cross-entropy来做penalty, 保证原本对OE的OoD object, 我们用下面的Energy cost function来约束他的能量

     ad0aca5e749d8d5568b8bf6ac6971591.png

在训练的过程中, RPL不会导致原本segmentation模型的性能受到影响, 并且能高效的分割出潜在的OoD pixel。

2). Context-Robust Contrastive Learning (CoroCL):

目前所有OoD Segmentation在不同场景下的表现都不稳定, 比如大多数分割器在城市场景下能够很好的检测到物体, 但是在以下乡村的环境 (context) 下就会直接失效。

fab3c134dc47c5dc41b0378d02733253.png

为了应对这个问题, 增强网络对多个context的鲁棒性, 我们引用了supervised contrastive learning。我们在RPL的基础上多加了一层projection layer, 并且随机提取四种样本, 分别是

1). ID 场景里的 inlier pixel, 2). ID 场景里的OoD pixel,           ceb2833134ad37aded6c7aaa07847d20.png 和

3). OoD 场景里的inlier pixiel 4). OoD 场景里的OoD Pixel         a257ff3d4133345f54e90ee33104b5d4.png

我们通过InfoNCE来将不同场景的Inlier pixel聚合到一起, 并且推远OoD pixel       f0a8bf9a13da0b6cbf64b6559420a27b.png

实验:

1). Test Results (wandb visualisation:https://wandb.ai/yy/RPL?workspace=user-pyedog1976)     

da77c44b6f071e10fae166f929fb0311.png

我们的结果在多个benchmark上获得了最稳定的结果, 超过了之前的SOTA超过10个点的FPR和20个点的AuPRC。

2). Ablation Study

391079317bc7d6572c82b5190bd8ffeb.png

在消融实验里, 我们可以先比较了用entropy和energy用来当loss的结果, 然后比较了使用RPL和直接使用一个binary OoD 检测器 (最后一行), RPL与Energy带来了稳定的提升。然而RPL在不同的context也有之前OoD segmentation的通病: 在FS-Static\L&F这种city环境下效果很好, 但是在其他的benchmark比如Anomaly&RoadAnomaly表现却很差 (25.65 & 17.74), CoroCL很好的缓解了这个问题。

2.1). Ablation of RPL

83f5a9c23cf494c657ab682ddfa4f962.png

在上图, 我们比较了原本close-set 分割模型的 mIoU [39] 和 其他re-training based OoD ([3], [9] and [31]) 在close-set的表现。我们的方法和freeze model 的方法 [13] 在ID数据集没有改变, 但是我们的方法有更好的识别OoD pixel的性能 (如section 1.) 所示)。


f14c042bb9bd3d9e483daeac5456959b.png

同时如上表, 我们RPL block可以对其他的OoD的方法在所有benchmark带来进一步的提升。

2.2). Ablation of CoroCL

35567230e9c633fe838a18327dfff355.png

我们在对anchor set 和 contrastive set的选择上, 测试了不同的组合。在最后我们发现当使用Anchor set为Inlier与OE, Contrastive set为全部种类时效果最好。在这种组合下, InfoNCE只会将         1bb3b2054602370204b8906ef54d2f3f.png互相拉近, 推远          06361e36f46ccae6f59978191d45693a.png , 但不会把两种OoD          50fe646d74ce94a4ce143458f38a3f99.png拉近。

3). The Learned RPL Feature

e1294d8253be694e7ff9fb3164fa9d8d.png

我们用self-attention

torch.einsum(’abc,bca->bc’,r, r.permute(1,2,0))

来可视化RPL的输出学到的OoD pattern (r)。在上图可以看到, RPL对潜在的OoD object会输出扰动, 而ID的pixel会拟合0输出。

3). Final Visualisation

fc688a6f81c13b9674eb9a24afd81bfb.png

* 颜色越偏红 代表异常可能性越高

① 全网独家视频课程

BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码学习)

9ae3b18a418ff4cc7182f0c394a19484.png 视频官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

86ffe997949dda3d2498d4729a517f50.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

8bec0c7346c328ce491bd120bbfb9d12.jpeg

④【自动驾驶之心】平台矩阵,欢迎联系我们!

f04d253bc9cdcd521fec06de3c11c35b.jpeg

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值