{{detailStore.author.is_follow?'已关注':'关注'}}
L2 辅助驾驶难解之谜:为何无法识别静止物体?
新出行原创 · 精品文章

一则因领航辅助驾驶酿出事故的惨剧如一则钟声,敲醒了整个汽车界。

在讣告中我们看到林先生在驾驶 ES8 途径沿海高速涵江路段时候发生交通事故,并且在此期间林先生处于 NOP 领航辅助驾驶状态。

随后在事故中 ES8 迎面撞上了静止停在路边的养护车,车主在事故中不幸丧生。

我们为逝者感到惋惜,哀悼逝去的用户,我们也相信蔚来会给出一个公平公正的答复。

而这一次我们不针对事件做评论,而是讨论这件事背后,也就是在 L2 辅助驾驶状态下为何无法识别静止物体?

我们目的是为了让用户带来进一步认知辅助驾驶的边界,正确使用辅助驾驶。

 一、静止物体,为何会成为“眼角”底的盲区?

如何看辅助驾驶的工作逻辑:

其实智能驾驶的工作逻辑和我们人类相似。通过眼睛来感知我们周围的物体,利用大脑进行计算,然后再控制我们手脚运动。

所以我们回到智能驾驶的发展路径上看,也对应成感知、决策到控制。

伴随着更高阶的智能驾驶的推进,这个链路的合作需要更加紧密。最佳的结果就是我们人一样,从眼睛、大脑以及四肢的协同基本没有任何延迟,相互高效配合。

了解了架构背后,我们今天来谈谈当前辅助驾驶为何还无法解决静止物体的识别?我们分为三个部分:

  • 首先从“眼睛”的感知入手,看看为何高速下静止物体会成为“盲区”;
  • 另外我们看看除了感知以外,我们的“大脑层”需要如何应对;
  •  AEB 算法在场景的应用

按理论上看,摄像头与毫米波雷达所获的画面信息与人眼所获的画面是类似的,所以不应该出现有个庞大物体的出现会无法感知到的问题。

但实际并不然,碰巧高速状态下对静止物体的识别就是一个特例。

二、视觉:“我看不懂的东西就当它不存在吧”

和我们人类的逻辑不同,系统的眼睛在处理场景时对物体的感知和分类(辨别)是协同工作的,如果眼睛看到的一个东西,但辨别不出物体,大脑则会默认过滤掉这个信息。

所以这就是看到需要不断训练的神经网络,来完成数据标注、定义,也就是每一个能够感知的物体设置一个 ID,这样才能够让检测与分类一起协同工作。

我们看到无论是高速、还是低速行驶状态下,车辆、行人以及自行车等检测类别特别多、追踪的难度也很大,同时还需要解决解决距离识别的问题。

这时候,在我们飞奔的高速下就会遇到两个难题:

第一个是我们看到的特种车辆、不同样式的工作车或者改装车等等,“眼睛”如果无法做到准确的识感知和分类,来不及处理势必带来危险。

第二是在高速上,我们眼睛的感知算法可能感知到前方的静止物体,但跟踪算法可能无法做到,这也可能导致在遇到静止物体时,整个传感器的计算无法做到瞬时收敛。

三、毫米波雷达:静止物体是克星

马斯克谈到 V9 版本时大谈毫米波雷达带来的诟病,例如突然一脚刹车(幽灵刹车),十分困扰。

实际上这主要由于毫米波作为单一传感器时所暴露出来的「短板」。

1、毫米波雷达无法识别静止物体?

毫米波可以理解成波长介于 1-10 毫米的电磁波,利用发射毫米波以及接受反射回来的信号,利用回波图像的强度来判断以此来计算目标物的相对速度信息、距离等信息。

其实这就是“多普勒”效应,我们可以理解为我们闭着眼睛时听一台车在我们穿过,来判断它的距离和速度。

那毫米波是否无法识别静态物体呢?

这其实是一个伪命题。所有的雷达都能识别静态物体。

我们知道毫米波雷达作为单一传感器时,是无法成像的、也没有颜色感知,也就是它呈现的是一幅纯粹的点云信息。

毫米波点云信息。
激光雷达点云信息。

同时毫米波雷达本身缺乏高度信息以及对金属敏感性,凭借反射回来的“点”信息来判断物体有些危险。

实际道路中如果我们闭着眼睛、没有高度信息参考,例如广告牌、桥梁、高架、信号灯等物体传输来的信号动作为障碍物,那频发作“幽灵刹车”在所难免。

所以毫米波雷达本身会对行驶道路中反射回来的静止物体做滤除(静态杂波过滤),也就是把速度为零的信号抹去。

2、另一原因是毫米波雷达的分辨率。

我们上面看到毫米波雷达发出的是波束,角分辨率指的是扇形波束两端看距离多远才能够识别出两个物体。

也就是说如果两个物体间隔的距离大于分辨率所能探测的距离,那么才能被毫米波雷达所探测,反之两个物体则会被视为单一物体。

这里我们看看与激光雷达对比,做更深的理解。

激光雷达所发出的为激光,角分辨率同样指的是两个探测点相邻的角度间隔,但实际上角分辨率越小则表明分辨的目标越小,点云数据也会越细腻,所以这里指的是点云的密度信息。

相比激光雷达、摄像头,我们看到在毫米波雷达对于远距离物体的识别并不清楚,例如常常把两个物体识别为一个,只有近距离后才能识别准确。

而如果在高速场景下,对于判断的时机还有留给刹车距离都带来挑战。

四、大脑背后的推理家:预测

另一个难点在于对于预测精准度的问题。

我们知道感知结合的信息是对环境周围作原始数据收集,例如我们利用“眼睛”输出图像信息、毫米波输出速度信息、激光雷达输出点云信息等。

而系统也会对这些信息计算,例如每个时间点中这些障碍物对应的位置、距离、速度、朝向以及加速度等。

预测的逻辑在于这里,在计算时,我们是在感知信息的基础下做预测:

例如我们预测目标物接下来的走向以及我们自身车辆的路线规划。

下面这个场景就是小鹏记忆泊车时系统对于地库里行走的行人做预测:

小鹏记忆泊车时对行人做行为预测。

与低速状态不同,如果在高速状态下,我们对物体的预测需要“提前”,这样才能留够整个刹车距离。

但问题在于预测和计算需要通过感知的历史帧信息作为参考,例如我们遇到前方有一台从 100 时速下降到 0 静止的车辆时:

  • 我们的大脑要利用 10 帧或者 20 帧的时间追踪、计算一个物体的速度。
  • 而此时利用的实际是一个历史信息,也就是前 10 、20 帧的信息作为参考,在等到前方车时速为 0 时,可能计算此时的平均值并不是为 0 。

在高速状态下遇到静止物体等目标物,这对于自车辆系统而言,能不能快速对车辆的速度、行为预测等信息需要作出快速反应,才能做好应对的对策。

当前大多数车企处于 L2 的辅助驾驶重心放在了对感知融合上,但实际上特别是针对高速状态下遇慢车、城区道路遇横穿行人、违章的机动车甚至各种 corner case(长尾场景) 等,都需要预测与规化、控制的协同。

而这也需要大量的数据进行驱动优化。

五、 AEB(自动紧急制动)不是「万金油」

AEB 算法大部分通过雷达以及摄像头等来做碰撞风险监测以及协助做主动制动,但我们常常会想起在辅助驾驶未发挥作用时,会有 AEB(自动紧急制动) 系统来“兜底”。

但实际上 AEB(自动紧急制动)并非单纯设计为辅助驾驶的“冗余”系统,也不是万金油。

它只是作为一种减轻撞击的辅助安全系统。它的使用场景也有界限。

例如从蔚来官方来看,工作范围是在 8km/h~85km/h之间;在自动紧急制动被触发后,车速最多会降低 40km/h来减缓碰撞的可能,随后就会释放制动器。

而特斯拉公布的工作范围为 10km/h~150km/h 之间;最大减速范围为 50km/h。 

源自蔚来官网。
源自蔚来官网。

也就是系统会通过通过预警、自动制动等方式避免碰撞或减轻碰撞的程度,而在超出工作区间时,系统并不会作出超过时速的调整。

除了工作区间以内激活以外,AEB 的判断其实也并不能 100% 准确,因为 AEB 如果过于灵活,在我们日常行驶中特别是在高速下误触发,带来的后果也不堪设想。

所以目前工程师们不是依赖一套固定的参考来讨论不同环境,对于城区以及高速环境下, AEB 系统的敏感度也不同,例如在高速状态下可以适当提高制动力度。

六、总结

现阶段看,全栈算法的自研依旧是现阶段一项重要的“功课”,无论是对场景的更新以及迭代上也会有新的优势。而我们也看到,国内对于激光雷达传感器的融合也陆续上车,这也将提高更多场景的处理能力。

在展望技术发展的同时,我们在事件中也看到用户安全、用户交互以及对用户辅助驾驶的普及依旧是一个重点和难点。

可以肯定的是,人机共驾在当前来看需要持续很长的时间。所以在“光鲜”的功能背后更多的还是需要用户安全与体验作为实际的根基,这才是真正的带来科技普惠以及用户为本。

最后想和大家说的是,辅助驾驶依旧只是辅助驾驶,特别对于用户而言,驾驶安全依旧要牢记于心。

写评论
积分赞赏
点赞
评论区
  • 编辑
  • {{is_favourite ? '已收藏' : '收藏'}}
  • 举报
  • 加入黑名单
  • 删除
  • 取消置顶
  • 置顶推荐
    • 6小时
    • 12小时
    • 24小时
    • 3天
    • 一周
    • 长期
  • {{digest?'撤销精华':'设为精华'}}
回到顶部
  • 全部评论{{detailStore.commentnum}} 条
  • 只看作者
  • 最热
  • 最新
  • 最早

「待审核」

{{ comment.relativeTime }} 已被赞赏 {{comment.integral}} 积分 回复

暂无相关评论

发表一下个人看法吧

飞机先生 Lv.5

认证:新出行编辑

简介:可微信可电联,72小时为新出行用户服务。

24956

获赞

24

关注

2471

粉丝

3566

原创

{{recommend_circle[curIndex].series[0].name}}

指导价:
{{recommend_circle[curIndex].series[0].price.max>0?(recommend_circle[curIndex].series[0].price.min == recommend_circle[curIndex].series[0].price.max) ? `${recommend_circle[curIndex].series[0].price.min}万` : `${recommend_circle[curIndex].series[0].price.min}-${recommend_circle[curIndex].series[0].price.max}万`:'暂无报价'}}

{{item.title}}
进入社区