可达空间,中文又称可行驶区域,英文称Drivable Space (DS)或Free Space,本文统一称为可达空间。顾名思义,就是要判断自动驾驶车辆周围可以行驶,也就是可以进行规划和控制的区域。可达空间是自动驾驶领域的重要感知算法之一,对辅助驾驶或者自动驾驶的行车安全起到至关重要的“兜底”作用。但与其它常见感知任务相比(例如动态目标检测和车道线检测),可达空间更像是一个不为人知的幕后英雄。
涵盖范围
可达空间的具体定义和涵盖范围,学界和业界没有统一的标准。结合实际道路场景,我们尝试着给可达空间下一个更清晰的定义。行车场景的环境元素通常会包含:道路边界(路牙子)、车道线、动态障碍物和静态障碍物。
为了保证行车安全,感知模块需要对环境元素进行识别。除了一般容易定义的动态障碍物(人或车辆等)、静态障碍物和车道线以外,还有道路边界、未知动态障碍物和未知静态障碍物。这些不好定义的环境元素则可一并归入可达空间任务中,作为一个辅助任务来支撑动态物体和静态物体识别。
如上图所示,红色的粗实线代表道路物理边沿(路牙子),黑色的虚实细线代表道路表面的标线(车道线)。虽然大部分情形车辆都在实线的道路标线内部行驶,但是紧急情况下也可以在实线标线和路牙子之间的路肩行驶和停车。行车的安全底线第一是,必须要躲避路牙子等道路物理边沿。
动态障碍物又分为已知类型的还有未知类型的。已知类型的动态障碍物,比如常见的各种车辆、行人、自行车、摩托车等,都可以利用动态物体目标检测网络来检出。不过路上往往会出现一些未知类型的动态障碍物,比如不太常见的三轮摩托车、魔改的各类交通工具,还有各种脚踩“风火轮”的行人。为了行车安全,我们也必须躲避这些未知的动态障碍物(Unidentified Dynamic Object, UDO)。这里所说的“未知”也是一个相对概念,随着感知系统的演进,未知也会变成已知,不过总会有未知的长尾类型存在。
静态障碍物里,也分为已知类型的和未知类型的。已知类型的静态障碍物有两个特点,可数并且类别明确(语义特征明显),比如交通锥、交通桶等,因此可以利用目标检测网络进行实例检测。但是除了这些已知类型的静态障碍物,也会出现例如各种类别的人为摆放的路牌,还有人为或者非人为造成的道路障碍。这些静态障碍物也有两个特点,没有明确的可数性质或者没有明确的类别(语义特征不明显)。侧翻的车辆,也可以算作未知类型静态障碍物。为了行车安全,我们也必须躲避这些未知的静态障碍物(Unidentified Static Object/stuff, USO)。
两重“兜底”
可达空间,作为一个感知任务的设立,是为了兜底检测那些语义类别不清晰的障碍物而设立的。在自动驾驶中,这些未知动静障碍物我们统称为一般障碍物(general obstacle)。
第一重“兜底”是按照分类(taxonomy)概念上进行的,可以做到不重不漏(Mutually Exclusive Collectively Exhaustive,或者MECE)地覆盖所有的环境元素,如下图。考虑到自动驾驶的两条指导方针:安全和合规,我们可以将相关任务分类。车道线等道路标志识别是合规的需求。动态静态障碍物识别,以及可达空间识别是安全的需求。从这个角度来讲,可达空间是一个“安全兜底”的任务。
但其实还有一重兜底,是更为实际的。当动态物体检测任务对语义明确的已知物体进行检测的时候,往往也会有漏检发生,我们也需要利用可达空间进行兜底。
总结一下,这两重兜底是:
● 动态和静态语义无法涵盖的,需要可达空间兜底。
● 动态和静态语义可以涵盖,但是漏检的,也需要可达空间兜底。
我们再来说下可达空间在具体使用过程中和动静态检测任务的关系。为了达到对语义分类兜底的效果,可达空间的算法必定需要一个更加底层的,对语义分类不敏感的(semantics-agnostic)方案。换句话说,可达空间的输出,并不会针对不同语义的有不同的处理。这决定了可达空间任务的直接输出对所有的障碍物一视同仁,动静态物体检测任务的那些予以明确的输出目标,可达空间也会无差别涵盖。
这也决定了需要有一步后处理的步骤,对可达空间的输出和动静态物体检测的输出进行融合。动静态物体检测已经涵盖的物体,可达空间就不会双重输出。这里的后处理步骤一般涉及到很强的工程实践,学术论文中往往避而不谈,有些可惜。
由上图的感知任务分类可以看到,可达空间并不是替代动态物体感知或者静态物体感知的方案,而是作为一种对其他感知任务的补充。
两个概念
眼尖的大家可能已经意识到了,其实上面我们讲可达空间的时候,其实有两个相关联的,但是不完全一致的概念。这里我们稍微花点时间,探讨一下这两个概念。
第一个是作为车周空间一部分的可达空间,是指道路边界以内,车辆可以行驶的区域,并且排除掉动态的交通参与者和静态的障碍物,所形成的车辆可以来做行驶规划的区域。这在上面车周空间划分的示意图中是绿色的胶囊形的模块。
第二个概念是作为感知任务的可达空间检测任务,是指感知任务里面协助完成构建可达空间的任务,聚焦的是检测出哪些不是自车可达的部分,从而定义可达空间的边界。由上面涵盖范围的讨论和示意图中右方感知任务的列表所知,可达空间检测任务包含道路边界、未知动态障碍物和未知静态障碍物的检测。
很有趣的是,作为感知任务的可达空间,检测的其实不是可达空间本身,而是他们的补集障碍物实例或者边缘。从这个角度上来讲,之后我们会介绍的占据网络(occupancy network)可能是一个更加贴合的名称。
总结
由上可见,可达空间对自动驾驶而言是一项重要的感知“兜底”任务,在L2/L3的辅助驾驶领域到L4 robotaxi领域,乃至通用机器人领域,都是不可或缺的安全保护网。
之后,我们还会介绍一下学术界关于可达空间的主流研究方向,和工业界的使用方法,包括自动驾驶里面的可达空间如何拓展到机器人领域。欢迎大家保持关注!
本文作者:小鹏汽车自动驾驶技术开发部感知组。更多精彩内容: