刚上大学那年,去了趟宝马总部,他们信誓旦旦,要在2020年推出自动驾驶的产品。现在,各大车企稍微谨慎了些,宣称2025年能够让“相当比例的”的车辆在“部分场景下”自动驾驶。不过呢,个人观点是,这恐怕还是不太行:部分场景下的自动驾驶到了2030年都无法确保推广成功,完全自动驾驶则可能永远都不会实现。
在开始论证之前,我们需要在自动驾驶的概念上达成一致。我的理解是,自动驾驶是指在一定长度的时间内,让机器完全接替人类驾驶车辆的技术。因此,自动打灯不算自动驾驶,自动巡航不算自动驾驶(方向盘还得人管),自动泊车勉强算(但是时间真的太短了,相当局限)。在美国的自动驾驶分级理论中,L3和L4、L5的区别是,L3是部分场景下的自动驾驶,比如说高速公路全程可以让人玩手机,L4、L5则可以全程自动驾驶。L4和L5的区别则在于,人类是否还有选择人工驾驶/自动驾驶的权利,L4的车上可能还保留着方向盘和刹车,而L5可能只剩下一个“紧急情况”按钮。
而我的论点则是,就现状来看,即使是在部分场景下能够稳定表现的自动驾驶,在2025年之前也无法实现,我们最多做到在特定路段、特定路线上的自动驾驶;至于完全自动驾驶,到了2030年也不太可能;而把控制手柄拆掉的想法,恐怕只能在科幻电影中实现了。我并不是对这项技术缺乏信心或者是信任,作为一个不喜欢开车的人,我非常乐意拥抱这项技术。但是,目前还有很多技术难点,导致了自动驾驶离我们还有很遥远的距离。
- 感知的稳定性
先不谈感知的算法问题,我们就说说传感器本身,一言以蔽之,又菜又贵。相机其实是一个很脆弱的传感器,光线的突变会让它失灵(比如进出隧道的瞬间),而下雨、落叶这样的遮挡物也会让它感知范围骤减,到了晚上,普通相机很可能就成了个瞎子,这也是为什么很多研究者现在开始考虑红外相机、事件相机的理由,但是,如果是大雨天,地面像水面一样反光的时候,恐怕这些相机也会罢工。而激光雷达呢?一个精度足够高的激光雷达成本很高,虽然在逐年下降,但还是贵,贵得令人落泪。十几年前,一个激光雷达差不多等于一套房,现在,它也可以拿来换一套顶配的电竞设备。有些在售的、价格听起来正常的车辆确实装了激光雷达,但是那些激光雷达恐怕只能辅助驾驶,如果想要让车辆真的感知清楚周围的环境,配置费用必然不止现在这样,而这个难题在近几年内是不会有显著改变的。
然后是感知算法的正确率问题。根据传统,此处黑一下特斯拉,因为它确实在自动驾驶领域过于激进——不参与加州路测,直接拿客户当实验员测试系统效果,结果经常撞白色货车。但是,最重要的是,即使是像特斯拉这样的自动驾驶商业化方面的领跑者,也时常因为感知方面的问题出现事故,这足以说明目前的感知算法离完善还差多远了。重叠的行人,没见过的物体,更别提目前数据库绝对没有包括的奇形怪状的塑料袋一类的。在算法测试的时候,可能这只是99%正确率留下的那1%,但是到真正出事的时候,没有人会愿意成为这1%的失误的受害者。
- 驾驶决策
驾驶决策是在输入传感器数据/感知结果后,负责决定车需要怎么打方向盘,踩刹车的问题。作为这一方向的研究者,我得说,驾驶决策任务里满满的全是问题。
第一点,说出来可能都难以置信,现在驾驶决策模型甚至都没有公认的有效的评估方法。可能很多人都听说过加州路测,由加州道路管理局授权,让一些公司可以测试他们自动驾驶的车辆跑多少公里需要一次人工干预。但是,这是针对整个自动驾驶系统的——这也是绝大多数实路测试的问题。能让一辆自动驾驶车辆出错的理由很多,在感知错误的情况下,决策到底合不合理并不是一个能够被讨论的问题。而且,道路测试需要上亿公里才能证明系统的可靠性,从成本上来说,即使有公司能付的起,我也并不认为有人会这么去做测试。那么,上仿真器呀。然而,不提商用仿真器(贵),开源的carla之类的,目前提供的交通场景非常有限,不仅如此,场景中npc的行为模拟也离理想效果相去甚远。比如说高速公路的npc车辆仿真,经常就是拿个正态分布决定一下车辆速度就完事了。或者导入真实的车辆轨迹吧,听起来更合理些,就是数据少了点。然而,仿真器的稳定性,以及接口的调用难度,导致很多时候研究者未必采用。反而,由于算法的差异,直接在数据集中比较预测出来的车辆轨迹和实际情况的偏差值(模仿学习),比较最小车距、车辆速度方差(比如约束优化),甚至不做任何比较,就画个轨迹图完事的(比如曲线构造法)。大家八仙过海,自说自话,最多到了挑战赛的时候溜溜谁的车子能跑更远,平时是决计不会统一步调的。
第二点,回到算法本身,目前的算法效果都不太行,有些还贼慢,难以落地。这里的“不太行”说详细点,就是车辆在规定时间内安全地通过一个车流正常的十字路口的成功率在90%上下,通过一个环岛的可能性则不到60%。目前主流的决策树和有限状态机,它们往往无法涵盖所有场景,而且有些情况下,由于规则和规则之间的矛盾,决策模型甚至无解。新兴之秀强化学习和模仿学习,则是吃算力的大头,经常过了一秒钟才对之前的场景做出决策。何况,机器学习类决策模型的可解释性不足是一大硬伤,自动对话机出错,大家可以一笑了之,驾驶决策出错,大家可就要一命呜呼了。
- 恶劣的交通环境
交通环境的恶劣程度既会影响驾驶感知,也会影响驾驶决策,所以单独拿出来强调了。这种恶劣,一方面来自客观条件限制,一方面来自人为。作为一个天天开车的人,我对这两点都深有体会。
高速公路因为货车的频繁运输,坑坑洼洼很多;道路标识有时有涂改痕迹,或者严重磨损。这一类问题显然会严重地干扰感知中的判断,进一步干扰决策。而如果上海的道路条件都如此恶劣,许多其他公共道路建设不如上海完善的城市显然是更加为难自动驾驶系统。
另一方面,不遵守交通规则的人实在是太多了。超速是常规操作,不打灯的变道行为——只能说还好现在自动驾驶还不够发达。闯红灯的人,在高架上骑摩托的人,从匪夷所思的角落钻出来的人。如果想要建立一个能应付这些场面的自动驾驶系统,我们的数据库必须好好拓展才行,仿真器npc设计时也需要多做考虑。
- 车间博弈问题
这是我最近经常在思考的一个问题,听上去其实有点像“如果捡到一千万怎么花”,因为它超出现在的技术水平太远了。但是也确实很有趣,所以也和大家分享一下。
这个问题详细地说,是人类驾驶的车辆与自动驾驶的车辆的道路博弈问题。大家应该可以同意,自动驾驶必须在保证坐车人和周围交通参与者的安全的前提下被实现。但是,考虑到人性,以下情况很可能发生:人类司机发现了另一辆车的驾驶者是人工智能,基于上述共识,人类司机可以相信,即使自己违规驾驶,人工智能车辆为了保证双方的安全,也只能谦让。于是,自动驾驶的车辆被超车、插队的可能性会更大,享受自动驾驶功能的用户的乘车效率会变低。这个问题可以有很多种解决方法,比如车间通讯;提高自动驾驶车辆的威慑性;或者自动驾驶普及率变高之后,“为了更多人的安全”把人类驾驶禁止掉。但是,无论如何,目前的技术显然是不足以解决这个问题的,也就是说,是一个可以研究的点。
小结
总而言之,距离自动驾驶技术真正进入大众的生活,恐怕还差了不止十年。其中一部分重要的障碍来自传感器的成本、感知的算法、驾驶决策模型全方位的有待提高、以及一些外部的客观原因。在我不了解的方面,还有更多定位、建图等领域的难点,以及数不胜数的工程细节。