自动驾驶系统在过去十年经历了从技术突破到资本热潮的快速发展,得益于传感器技术、人工智能和高性能计算的进步,吸引了谷歌、特斯拉等科技巨头和传统汽车制造商的大量投资。
然而,近年来,自动驾驶技术面临着复杂驾驶环境中的技术挑战、长尾问题,安全性尚未充分验证、法规和伦理问题滞后等困难,加之高昂的研发和部署成本、未明晰的盈利模式以及消费者对其接受度低,导致许多人对自动驾驶前景持怀疑态度,认为自动驾驶是一个伪命题,前景不明朗。
自动驾驶技术自诞生以来,其技术也经历了显著的发展和演变,特别是在神经网络的进化和应用方面。这一演变可以大致分为几个阶段,从最初的基于规则的系统,逐步转向基于神经网络的复杂系统,从小规模、模块化的算法迈向基于大规模神经网络的整体解决方案。
直到今年,随着AI技术的兴起,端对端自动驾驶技术的出现给苦苦挣扎的自动驾驶领域的带来了新的希望。与传统自动驾驶系统依赖于多种独立模块(如感知、规划、控制等)不同,端对端技术通过单一的深度学习模型直接将传感器输入映射为驾驶动作。这种方法简化了系统架构,减少了各模块之间的复杂交互,显著提高了自动驾驶系统的效率和响应速度。
那么,问题来了,和现有的分布式技术路线,端到端优势在哪里,是否真的能够解决目前自动驾驶的真正的困境,给自动驾驶技术带来新的突破呢?
01
分治法的困境
刚才我们聊到,传统自动驾驶系统采用分布式的架构或解决办法,通常将整个系统划分为以下几个独立的模块:
本质上来讲,分布式自动驾驶系统属于分治法(Divide and Conquer)解决方案,这个其实也是我们目前解决问题最常用的手段,原理是将复杂的问题分解为若干较小的子问题,分别解决这些子问题,然后将其结果合并以得到原问题的解。分治法的核心思想在于“分而治之”,通过递归的方式处理问题,直到每个子问题足够简单。
那么,分治法有哪些优势呢?
1. 模块化设计
2. 可扩展性
模块化设计便于系统的扩展和升级,可以在不影响其他模块的情况下对某个模块进行改进和替换。
3. 鲁棒性和可靠性
通过将复杂问题分解为简单子问题,系统的鲁棒性和可靠性得到提高,因为每个模块都可以专注于特定功能,并进行优化和冗余设计。
4. 并行处理
那么对于自动驾驶系统,分治法为什么就不行了呢?
基于分治法的分布式自动驾驶系统其实是我们面对复杂问题最基本的解决思路,通过将问题白盒化,简单化,分工协作,最终达成目的,这些年分治法的自动驾驶系统虽然也取得了很大的进步,实现了一定程度的高级别自动驾驶,在处理大部分的驾驶场景时表现都比较良好,但在面对大量罕见和复杂的边缘情况时,表现却不够可靠,这种方法也存在显著的局限性:
1. 模块间通信和协调的复杂性
式系统依赖于各模块之间的高效通信和精确协调。每个模块需要实时共享大量数据,以确保整个系统的一致性。这种高频次的数据交换增加了系统的通信开销和延迟,并且容易产生同步问题,导致系统响应变慢或出现决策错误。
2. 信息丢失和数据一致性问题
在分治方法中,各模块处理的数据可能存在不同步和不一致的情况。例如,感知模块和规划模块在处理同一场景时,若数据传递过程中存在延迟或丢包,可能导致系统对当前环境的理解出现偏差,进而影响最终的驾驶决策。
3. 系统集成与兼容性挑战
由于各模块可能由不同团队使用不同技术和算法开发,系统集成时容易出现兼容性问题。各模块接口的标准化和数据格式的一致性难以保证,增加了集成难度和维护成本,限制了系统的可扩展性和灵活性。
4. 调试和优化的复杂性
分治法的模块化结构使得系统整体性能的调试和优化变得困难。单个模块的性能瓶颈或错误可能影响整个系统的表现,跨模块的协作调试需要大量时间和资源。系统的故障诊断和修复也变得复杂,影响了开发效率和系统的可靠性。
5. 全局视角的缺乏
分治方法倾向于将任务分解为独立的局部问题,每个模块只关注自身的任务,缺乏全局视角。这可能导致各模块的独立决策无法有效协调,无法处理复杂动态环境下的全局优化问题,降低系统的整体智能化水平和适应性。
6. 数据冗余与资源浪费
02
长尾问题的绝望
长尾问题的具体表现为:
1. 罕见的道路情况
例如,遇到异常天气条件(如大雪、浓雾)、道路施工、落石或被水淹没的路段等。
2. 不规则的交通行为
例如,行人突然闯入道路、其他驾驶员的危险驾驶行为、动物突然横穿马路,驾驶参与者手势动作等。
3. 复杂的城市环境
例如,繁忙的交叉路口、非标准交通信号、特殊交通规则(如特定时间段的限行)等。
4. 意外事件
例如,交通事故现场、紧急车辆通行、路面上意外的障碍物等。
那么,长尾问题出现的本质原因是什么,解决的难度在哪里?
1. 数据稀缺
罕见场景的数据量有限,训练数据不足导致系统难以有效学习和应对这些情况。而收集罕见事件的数据不仅需要大量时间和成本,而且这些事件本身发生的频率低,进一步加大了数据获取的难度。
2. 模型泛化
3. 安全性要求
4. 计算资源
那么长尾问题怎么解决呢?
1. 数据增强和合成
2. 迁移学习和少样本学习
3. 在线学习和持续学习
4. 多模型集成
通过集成多个模型的方法,例如,视觉语言大模型(VLM),甚至是真正的世界模型,提高系统的鲁棒性和泛化能力,降低单一模型在处理罕见事件时的失误率。
这种方式实际上目前已经有一些企业在进行尝试,例如,如下图所示,理想汽车今年提到的端到端快慢模型的结合,其中将视觉语言大模型(VLM)作为慢系统,在传统的端到端模型无法支持驾驶任务的时候进行介入和输入校正信息。
03
端到端的新希望
所以不管是自动驾驶长尾问题,还是分治法解决方法,都让高级别自动驾驶困难重重,算法工程师需要针对每个长尾问题,分而治之,非常耗时耗力,需要大量工程师维护,这对当今以快为上的汽车内卷时代,当然是绝对不允许的。
在这样的大背景下,端到端自动驾驶(End-to-End Autonomous Driving)顺势而生,旨在通过深度学习等人工智能技术,从传感器输入直接生成驾驶决策输出,简化传统自动驾驶系统的复杂性,通过一个统一的模型,将传感器输入(如摄像头、雷达和激光雷达数据)直接映射到驾驶控制命令(如转向、加速和制动),不需要显式的分层模块化设计。
当然端到端自动驾驶系统也存在不少挑战,例如:
1. 数据需求
一般来说,高质量的数据需要具备以下特性:
完整的维度信息:数据应包含全面的环境和情境信息,以便系统能够在不同情况下做出准确判断。
广泛的分布多样性:训练数据应涵盖广泛的场景,如不同的天气条件、路况和交通情况。这种多样性确保了系统在各种实际驾驶环境中都能表现良好。
更重要的是,数据中的驾驶场景要达到“老司机”的驾驶水平。然而,许多驾驶员并不是“老司机”。因此,需要一套筛选机制,仅提取“老司机”所驾驶的车辆在特定场景下的高质量数据。这样的筛选机制可以通过以下方式实现:
驾驶行为分析:通过分析驾驶员的行为和反应,识别出那些表现出高水平驾驶技能的数据片段。
机器学习筛选:使用机器学习算法,从大量数据中自动筛选出高质量的驾驶场景,确保训练数据的优质和有效性。
人工审核:结合人工审核,对筛选出的数据进行进一步的验证,确保其符合高质量标准
所以获取并筛选出高质量训练数据也是需要大量的人力和物力,这绝对是一项不小的挑战!
模型需要在各种不同的驾驶环境和条件下表现良好,这要求其具有很强的泛化能力。
那么,端到端就是未来吗?
坦白讲,这个问题很难回答,未来犹未可知,下面分享我个人的几个观点,以此共勉:
数据为王的时代
端到端技术的现状
寻找分治法和端到端方法的平衡点
分治法中的全局视角:在分治方法中引入更多的全局视角和协同优化机制。通过共享中间特征和信息,确保各模块之间的协调与一致,从而提升系统的整体性能和稳定性。 融合架构:开发更为先进的统一模型,将分治法的模块化设计与端到端的整体优化相结合。利用协同优化技术,将端到端方法的全局最优和分治法的局部优化结合起来,形成一个具有高度协同性和鲁棒性的混合系统。这样可以在复杂驾驶环境中提供更加灵活和可靠的解决方案。 渐进式过渡:在实现完全端到端系统之前,逐步过渡,先将某些关键任务(如感知和规划)集成到端到端框架中,通过不断迭代和优化,逐步实现全端到端的目标。 数据驱动优化:持续收集和分析驾驶数据,进行在线学习和自适应更新,确保系统能够不断适应和应对新的驾驶环境和挑战。
Transformer绝对不是终点
模型重训的必要性:新算法通常带来新的结构和优化方法,这可能要求对现有模型进行重新训练,以充分利用新算法的优势。然而,完全重训并非总是必要的,有时可以通过迁移学习等技术,在新算法的基础上微调现有模型,减少训练成本。 兼容性和扩展性:未来的算法设计将更加注重兼容性和扩展性。新的算法可能会与现有算法结合,形成混合模型,逐步优化和替代现有部分,而无需完全推翻现有系统。 持续优化与在线学习:自动驾驶系统将越来越多地采用在线学习和持续优化的方法。新算法的引入可以逐步替换和优化现有模型,而无需彻底重训。这种渐进式的过渡将减少对系统的冲击,确保自动驾驶技术的平稳发展。
AI系列,端到端自动驾驶相关的内容我们就聊完了,希望能够给朋友们对其带来更多理解。
END
【点赞】和【在看】= 原创的动力
多谢【点赞】和【在看】