“ 我们都在说corner case,但难得见到这一篇系统性的讨论。”
今天分享一篇arxiv上2021年2月11日的文章:Corner Cases for Visual Perception in Automated Driving: Some Guidance on Detection Approaches,对自动驾驶视觉感知中的Corner Cases进行分析并提出了一些方法论。作者来自于德国布伦瑞克工业大学和大众汽车集团。
任何一个做自动驾驶的人,相信都躲不过一个词:“corner cases”。所谓的corner cases,在论文中使用的定义是“there is a non-predictable relevant object/class in a relevant location”。用大白话来说便是“在正确的位置上出现了不可预测的目标”,例如单纯一把椅子,下图第1列是正常的可预测的椅子,第2-4列对一个计算机视觉模型来说,很可能便是难以预测的“corner cases”。
对自动驾驶而言,倘若感知系统遇到了corner cases,则会带来严重的安全隐患。例如前几年发生的Tesla的Autopilot 没有识别出正在横穿的白色大卡车,直接从侧面撞上去,导致车主立即死亡;Uber 的自动驾驶车在亚利桑那州撞死一名推自行车过马路的女性……
倘若存在能够检测出corner cases的方法,首先,可以用于offline筛选包含corner cases的数据,用于训练新的感知算法,能够用于在实际应用中正确识别和处理这些corner cases情况;其次,还能作为online的安全监控和警告,一旦检测出遇到corner cases情况,可以主动提醒驾驶员进行干预。
论文中根据检测出corner cases的复杂程度,由浅到深,由易到难可以划分为以下五大类,并且给出了一些例子:
-
Pixel level:由数据上的错误造成
local outlier:摄像头掉落导致存在像素点损坏;风挡上出现了污垢,秋天叶子落在风挡上,都会遮蔽摄像头部分视野。
global outlier:在长隧道的尽头,由于晴天大太阳导致摄像头突然出现过度的曝光;夜里对向驶来的车辆开着的大灯让摄像头出现炫光;黄昏时在一条朝西的道路上开,被夕阳光致“盲”。
-
Domain level:数据表现出的对世界的观测产生了整体偏移
- domain shift:冬天到处覆盖着白色的积雪;从法国通过海峡隧道开车到英国,出隧道后发现车辆都是靠左行驶。
-
Object level:数据中存在未曾“见”过的实例
- single-point anomaly,即出现了未知的物体:在居民区的道路中央出现了一只熊;一个拄拐杖和一个推着老人助推小车的人在过马路;
-
Scene level:单帧数据中出现了与预期不一致的场景模式
collective anomaly,熟知的物体出现了大量未知的聚集:市中心聚集大量或站或走、高举标语高喊口号的人群;早晚高峰出现了交通拥堵;十字路口出现了建筑工地,除了日常的交通标志外,还出现大量用于管制工地附近秩序的交通标志;
contextual anomaly,熟知的物体出现在异常的位置:风暴过后一棵倒在路中间的树;油洒在道路上,周围摆放了锥桶,虽然油已经被清理了,但锥桶还未撤掉;一辆车停在人行道上;
-
Scenario level:连续帧数据中出现了与预期不一致的场景模式
anomalous,训练数据中未出现并且存在高碰撞概率:“鬼探头”,旁边静止的车辆前突然出现一个行人;川流不息的路上,一辆相邻车道仅稍微领先的车辆,不打转向灯,突然变道插入;在十字路口不遵循礼让规则的车辆;
novel,训练数据中未出现但不会增加碰撞概率:在视觉系统未见过的可穿越的铁路道口;
risky,训练数据中曾出现并且仍存在一定碰撞概率:在狭窄的道路会车;机动车道上超越骑自行车的人;
论文中介绍了几类corner cases检测的方法,并且根据不同的corner cases类型,也匹配了不同的方法(参见下表)。
具体的方法不在这里做过多介绍,感兴趣的同学可以公众号回复“20210225”获取论文仔细研读。
在我看来,要训练一个corner cases检测的模型并不容易:很难整理一个完全的包含所有类型corner cases的大规模数据集。因此,相较于仅使用有监督方法,将无监督学习与有监督结合的方法应用于corner cases detection可能是比较靠谱的思路。一个典型的例子便是Tesla的影子模式:通过与人类驾驶员行为进行比对,找出潜在的corner cases。而后对这些cases进行标注,加入有监督训练的数据集中。
对于简单的pixel、domain、object level,可以采用一些ood detection、主动学习的思想。对于复杂的scene level和scenario level问题,更多的还是要依赖于深度学习方法从“感知”到“认知”的进化。
参考资料:
[1] https://arxiv.org/abs/2102.05897
- END -
新朋友们可以看看我过往的相关文章
⬇
【相关推荐阅读】