汽车如何获得智能?从感知、计算到线控执行

刚开始了解自动驾驶时,我很容易把它理解成一个算法问题。

汽车安装摄像头,模型识别道路、车辆和行人,再根据识别结果控制方向和速度。只要算法越来越聪明,汽车自然就能逐渐学会自己开。

这个理解不能说错,但它只看到了整套系统中最显眼的一部分。

真正的自动驾驶,更像是在给汽车重新搭建一套从感知到思考再到行动的能力。传感器负责感知周围环境,芯片和计算平台负责处理数据,模型负责理解环境、预测变化并作出判断,车载网络负责把数据和指令传递到车辆各处,转向、制动和动力系统再把判断变成真实动作。

这里任何一个环节出了问题,最终都会影响驾驶结果。摄像头看见了行人,但数据传得太慢,车辆可能来不及反应。模型判断应该减速,但制动系统执行不及时,正确判断也失去了意义。芯片有很高的算力,但数据读取和传输跟不上,模型仍然跑不顺。软件在测试环境里表现很好,但到了雨雪、高温、颠簸等真实环境中无法稳定工作,也很难真正落地。

自动驾驶并不是在传统汽车上简单增加一个AI功能。它其实是在重新搭建汽车理解世界、处理信息和作用于现实世界的整套底层能力。

一、汽车首先要建立对周围世界的感知

人类开车时,会不断观察周围环境。

前方车辆是否减速,路边行人有没有准备进入车道,旁边车辆是不是正在压线,后方摩托车是不是快速接近。这些判断对人来说几乎是下意识完成的。

汽车没有这样的天然能力,只能依赖传感器把现实世界转化成可以计算的信息。

摄像头最接近人的眼睛,可以识别车道线、交通灯、车辆、行人和各种道路标志。但它比较依赖光线,在夜晚、逆光、雨雪或者镜头被污染时,效果可能受到影响。

毫米波雷达更擅长测量目标的距离和相对速度,对光照条件不太敏感,在部分恶劣天气中也能保持工作。

激光雷达可以比较直接地测量周围空间的距离和形状,帮助车辆建立三维环境信息。

不同传感器看到的是现实世界的不同侧面。

真正困难的地方,不只是多装几个传感器,而是把这些信息拼成同一个世界。

比如摄像头识别出前方有一个行人,雷达测到这个目标正在移动,激光雷达又给出了距离信息。系统需要确认,这几组信息说的是不是同一个目标。

如果不同传感器采集信息的时间没有对齐,安装位置存在偏差,或者某个传感器受到了干扰,系统对周围环境的理解就可能发生偏差。

我以前很容易把更多传感器理解成看得更清楚。后来才发现,多几双眼睛只是第一步。更难的是,让这些眼睛看到的是同一个世界。

除了实时感知,自动驾驶过去还经常借助另一类信息:高精地图

高精地图可以提前告诉汽车道路结构、车道位置、路口等信息,相当于在车辆到达之前,已经给了它一部分环境先验。

但地图也有局限。道路会施工,车道会改变,大规模地图还需要持续更新和维护。

现在出现了不同的技术路线,有些系统仍然把地图作为重要信息来源,也有些系统希望减少对高精地图的依赖,让汽车更多依靠实时感知处理陌生道路。

本质上,它们都在解决同一个问题。汽车对世界的理解,有多少来自提前知道,又有多少来自现场看到。

而到了这里,汽车主要解决的还是周围有什么,它们在哪里,它们正在怎样运动。

至于这些车辆和行人接下来可能做什么,以及自己的车应该怎样行动,还要交给更上层的模型。

二、传感器看到的世界,还要穿过汽车的神经系统

传感器每时每刻都会产生大量数据。摄像头不断传回图像,雷达持续更新目标的距离和速度,汽车本身还在产生轮速、方向、加速度和车辆姿态等信息。

这些数据需要先在车内传输和汇聚,再交给计算系统处理。这就像眼睛获取信息以后,还需要通过神经传递到大脑。

传统汽车中,不同功能往往由不同的电子控制单元,也就是ECU负责。车窗、空调、发动机、车灯、安全气囊、娱乐系统,各自都可能有独立控制器。一辆汽车中可能分布着几十个甚至更多这样的小脑。

过去这种方式没有太大问题,因为不同功能相对独立。

但随着汽车越来越智能,尤其是自动驾驶开始产生大量高带宽数据,这种高度分散的架构会越来越复杂。

不同系统需要交换更多数据,软件也需要跨越越来越多的控制器协同。汽车电子架构正在逐渐从大量分散的小控制器,走向更集中的计算方式。

一个重要方向,就是中央计算+区域控制

简单理解,就是把过去散落在车里的很多小脑,逐渐集中到少数几个更强的计算平台,同时通过分布在车身不同区域的控制节点,连接附近的传感器和执行器。

自动驾驶并不是推动这种变化的唯一原因,但它明显加快了这个过程。

因为只有当数据、计算和软件开始更加统一地管理,越来越复杂的智能功能才更容易协同和升级。

三、算力很重要,但不是越大越好

自动驾驶需要处理大量数据,所以高算力当然重要。

但汽车里的计算有一个非常现实的要求,它不能慢慢想。

前方车辆突然急刹时,系统需要迅速完成目标识别、距离判断、轨迹预测和制动决策。如果模型最后给出了正确答案,却晚了半秒,这个答案可能已经没有意义。

判断一套车端计算平台,不能只看宣传中的TOPS数字。芯片算得很快,但传感器数据传不过来,算力发挥不出来。模型很强,但芯片和内存之间搬运数据太慢,处理过程还是会被拖住。芯片性能很好,但功耗和发热太高,也很难在汽车这种长期暴露在高温、低温、震动环境中的设备里稳定运行。

汽车也不像云端服务器,服务器出问题,可以增加机器、迁移任务或者重启。而汽车必须在真实道路上持续工作,而且很多情况下根本没有重新来一次的机会。

一套真正好用的车端计算平台,需要同时平衡:算力、延迟、功耗、散热、可靠性和成本。

这让我逐渐理解,为什么汽车芯片很难只靠一个漂亮参数取胜。

最终重要的不是它理论上能算多少,而是在合理的成本和功耗下,它能不能稳定、及时地把驾驶任务完成。

四、真正困难的,不是看到一辆车,而是知道它接下来可能做什么

汽车识别出前方有一辆车,并不意味着它已经知道该怎么开。它还需要理解现在发生了什么,并预测接下来可能发生什么。

前车正在减速,可能是遇到了拥堵,也可能准备靠边停车。路边的行人还没有迈进车道,但已经表现出准备过马路的趋势。旁边车辆没有打转向灯,却不断靠近车道线,它可能很快就会变道。这些问题已经超出了简单的识别物体。

自动驾驶模型不仅需要知道世界里有什么,还需要理解这些物体之间的关系,并预测它们接下来可能怎样行动。

传统自动驾驶系统通常会把任务分成几个环节。识别周围有什么,判断其他交通参与者可能怎样运动,决定自己的车接下来应该走哪条轨迹、保持什么速度,然后再把这些目标转换成具体的转向、制动和动力指令。

这种方式结构清楚,也比较容易定位问题。但模块之间传递信息时,也可能发生损失。前面一个小误差,到了后面可能被进一步放大。

这也是为什么近几年越来越多公司开始探索端到端路线。它希望减少人工拆分模块带来的限制,让模型直接从传感器信息中学习更完整的驾驶行为。

但端到端也会带来新的问题。模型内部的判断过程更难解释,出现异常以后,也可能更难快速找到原因。

模块化和端到端并不是简单的新旧替代,而是在工程可控性、可解释性和模型整体能力之间做不同的取舍。而端到端也不意味着把安全完全交给AI。

真正量产的自动驾驶系统,还需要配合故障监控、安全约束、冗余设计和失效处理机制。

模型负责让汽车越来越会开,工程安全体系负责保证即使某个环节出现问题,车辆仍然尽可能保持可控。

五、模型决定怎么走,汽车还要真的做出来

假设系统已经判断前方突然出现障碍物,车辆需要减速,同时向左避让。

这时,模型给出的只是一个行动目标。车辆控制系统还需要进一步把它翻译成具体指令。方向转多少,转多快,制动力应该有多大,动力输出应该怎样调整。最终,执行机构才真正让车轮转动、让刹车产生制动力。

传统汽车里,人通过方向盘、刹车踏板和油门控制车辆。

而自动驾驶要求汽车能够通过电子控制指令,自主完成转向、减速和加速。这里最重要的,不是能不能动,而是能不能准确、及时、可靠地动。

越接近高阶自动驾驶,系统越需要考虑异常发生以后的处理方式。

传感器失效以后怎么办,主要计算平台出现异常怎么办,通信出现问题怎么办,制动或者转向系统出现故障以后,车辆还能不能安全减速或者停车。

普通软件出错,可能只是程序卡住或者页面崩溃。而物理AI出错,却可能直接变成现实世界里的错误动作,这往往会让人付出沉重的代价。

六、自动驾驶真正难的,是把整套系统长期磨合在一起


文章原文

免责声明:上述内容仅代表发帖人个人观点,不构成本平台的任何投资建议。

举报

评论

  • 推荐
  • 最新
empty
暂无评论