当前位置: 首页 > 科技观察

聊聊高阶自动驾驶系统开发还须解决的问题

时间:2023-03-18 15:39:46 科技观察

下面谈谈在高级别自动驾驶系统开发中需要解决的问题,包括功能开发问题和性能提升问题。例如,从近期的蔚来自动驾驶事故中不难看出,自动驾驶系统要实现真正的自动驾驶,需要解决当前很多边缘场景,这在很大程度上影响了系统的功能安全。.又比如大部分主机厂都想效仿特斯拉,采用类似影子模式进行数据采集和仿真,那么在开发过程中如何防止踩坑也是一个值得思考的问题。此外,基于SOA的开发模式将用于高级别自动驾驶的架构构建。因此,如何在SOA中提高效率,达到通用性、高效性和可靠性的目标,是我们必须解决的问题。本文将针对以上三个急需解决的棘手问题进行阐述,以期为开发者提供参考。如何改进静止物体碰撞检测从开发和测试的角度,我们收集了很多难以解决或者可能有问题的场景。其中,静止目标的识别就是其中之一。从全视觉来看,目前的自动驾驶产品都是基于单目或三目视觉进行检测。但是,这种检测方法存在固有的缺陷,无法改变。由于该方法基于深度学习机器视觉,其表现是识别、分类、检测都在同一个模块中进行,通常无法分割。也就是说,如果无法对目标分类进行分类,往往无法对某些目标进行有效的检测和识别。这种缺失识别很容易导致自动驾驶车辆发生碰撞。为了解释无法很好识别的原因,并总结解决此类问题的方法,这里需要重点关注以下几点:第一,训练数据集不能完全覆盖真实场景中的所有目标。世界;因为很多静止目标不一定是标准车辆,甚至可能是异形车辆、落石、不规则施工灯。因此,开发阶段训练的目标类型在很大程度上不能用于真实的自动驾驶识别场景。二是图像缺乏纹理特征。纹理特征是在包含多个像素的区域中统计计算的,这些区域通常具有旋转不变性;他们对噪音有很强的抵抗力;因此,对于一些质感较差的货车,白墙等,很难通过视觉手段识别。另外,有必要解释为什么深度学习不能很好地识别静止目标。因为深度学习中的机器视觉,尤其是基于单目摄像头检测的机器视觉图像,会将所有静止目标作为背景去掉,从而可以很好地选择对视频理解过程重要的运动目标。不仅可以提高识别效率,还可以很好的降低编码率。同时,为了防止误检,还需要将运动目标与静止目标分开。比如有些路上满是车,移动目标的优先级自然比静止目标高,然后去识别,通常是背景减法,三帧通常,这种识别算法需要1-2秒.但是对于实时性要求高的自动驾驶来说,这段时间可能已经发生了碰撞事故。因此,要解决上述识别性能缺陷,就需要从根源上解决深度学习不足带来的问题。机器视觉主要有两种学习匹配模式,一种是人工模型,另一种是深度学习,通常用于图像识别和分类。由于深度学习主要是通过segmentation和refitting,原则上要遍历每一个像素点,在训练好的模型上乘以数十亿次并设置不同的权重值进行比较,这与人的视觉和机器是不同的想象。是非整体的。从本质上讲,深度学习是一种利用收集到的数据点与现有数据库进行有效匹配,拟合出一个无限接近实际的曲线函数,从而识别预期环境目标、推断趋势并提供预测结果的方法。各种问题。当然,曲线拟合在表示给定数据集时也存在一些风险,即拟合误差。具体来说,算法可能无法识别数据中的正常波动,最终为了拟合优度将噪声视为有效信息。因此,单纯依靠提升SOC芯片的AI加速能力来真正解决这种异常环境下的目标识别能力是不明智的。因为AI加速器只是解决了MAC乘积-累加计算模块的加速计算能力。为真正解决这类识别或匹配错误问题,下一代高性能自动驾驶系统通常采用多传感器融合(毫米波雷达、激光雷达)或多摄像头检测进行优化。开发过辅助驾驶系统的设计人员应该知道,目前这一代的毫米波雷达对金属物体非常敏感,在检测物体的过程中,通常会避免因误检测而误触发AEB。因此,通常会过滤掉许多静止目标。同时,对于一些底盘较高的大货车或特种作业车,由于毫米波雷达的高度问题,往往会被漏检。需要使用传统方法(或非深度学习算法)进行三维目标重建。通常,这可以通过使用激光雷达或高分辨率4D毫米波雷达进行点云重建或使用双目相机进行光流跟踪来优化。基于激光雷达的目标探测方法,其原理是发射探测信号(激光束),然后将接收到的目标反射信号(目标回波)与发射信号进行比较,并进行适当的处??理,得到目标所以回声的点云匹配也是一个深度学习的过程,但是这个过程比弹幕图片识别的分割匹配要快。双目视觉对静态目标的检测依赖于视差图像。这种纯几何视差图可以更准确地定位静态目标的位置。很多情况下,单目视觉可以检测出颠簸的路况、明暗对比强烈的路况,以及一些破损路况中的远距离物体,但3D复原会有很多不确定性。立体相机可以与深度学习相结合,立体点云可以融合图像的RGB信息和纹理信息,有利于远距离目标的识别和3D测量。深度学习可以更精准、更稳定地检测出常见的道路参与者,并融合多种特征,有利于发现更远的道路参与者。另一方面,立体视觉可以同时实现所有道路参与者的3D测量和基于点云的检测。不受物体种类、安装位置和姿态的限制。动态测距更稳定,泛化能力更好。我们结合立体视觉和深度学习来寻找更远距离的目标,同时能够使用立体视觉进行3D表征。上述算法要么依赖于CPU的逻辑运算,包括卡尔曼滤波、平滑操作和梯度处理的实现,要么依赖于GPU的图像深度学习处理。因此,下一代高级别自动驾驶域控制系统需要具备非常好的计算和处理能力,以保证其性能满足要求。ShadowMode能否完美破局目前主机厂或Tier1在开发下一代先进自动驾驶系统时,往往无法全面覆盖环境中可能突然变化的各种工况,而这种初具规模的数据覆盖往往依赖于高质量的数据采集和处理,这里我们通常称之为极端场景的数据覆盖。如何将大量的极端场景数据采集并回传到自动驾驶后台,是我们需要解决的重要问题,也是评估后续自动驾驶系统能否完美破局的关键要素。特斯拉的影子模式开创了高效数据收集的先河。“影子模式”的定义是在人工驾驶状态下,系统及其周围的传感器仍然运行但不参与车辆控制,只是对决策算法进行验证,即不断模拟系统的算法在“影子模式”下进行决策,并将决策与驾驶员的行为进行比较。一旦两者不一致,该场景将被判断为“极端工况”,从而触发数据返回。但是想要很好的理解shadow模式,需要着重解决以下几个问题。1.影子模式如何提供更多更广泛的极端工况检测和采集,包括有标签和无标签的训练场景?因为影子模式通常是数据采集和处理的一部分,除了利用控制端的轨迹差异触发数据记录外,其余工作模式不直接应用于数据记录。如果自动驾驶需要一种高效、快速的影子模式应用方法,则需要在其采集过程中部署深度神经网络,贯穿整个控制过程(包括实现整个感知、预测、规划和决策的整个模块)。控制)。更实用的阴影模式需要扩大其工作范围,这不仅需要比较轨迹来触发数据记录和返回,例如感知目标差异、融合目标差异等都可以触发数据记录和返回。这个过程需要根据实际的采集端口定义相应的数据采集单元。这些单元可以工作在自动驾驶或手动驾驶模式,仅作为数据采集、记录和返回的硬件,不影响车辆控制。2、芯片选择和传感器配置是否如预期的那样支持阴影模式?对于自动驾驶的发展,我们希望影子模式只是一些占用资源较少的简单逻辑操作,影子模式的激活过程不会增加后台处理延迟。如果下一代高级别自动驾驶要实现基于影子模式的数据采集,就必须考虑为影子系统配置额外的芯片,或者在多芯片域控系统中拆分一个芯片。该模块专门用于影子算法训练。另外,以往的影子系统通常运行在L2+系统上,其标配的传感器类型往往比较简单。例如,大多数公司使用5R1V方法进行数据收集。高级的可以配置单激光器。雷达(目前国内量产或即将量产的企业没有该配置),该传感器配置采集的数据能否直接应用于下一代高级别自动驾驶系统尚不确定。因为单个或少数传感器对环境状况的预测和系统的执行能力与多个传感器有很大的区别。因此,在升级高级自动驾驶系统时,其传感器能力必须更上一层楼,用于对整个系统的控制。因此,后续的自动驾驶系统是否还能应用之前L2级别收集的场景数据,还是只能部分应用,需要重新设计和规划。3、应该采用什么样的标准判断方法,才能达到最科学有效的数据回报?影子模式的触发前提是驾驶员对车辆的操作必须是正确的、客观的,因为假设在人工驾驶模式下,系统对环境的判断能力肯定不如驾驶员.但事实真的如此吗?当然不是全部。例如,司机看到前方道路泥泞不堪,担心车轮脏污影响车子外观,选择变道避让。但是,系统不会因此触发自动变道系统。如果以车辆的控制方式作为判断其正确性的标准,那么系统一定是错误的。这个时候触发数据采集返回是没有意义或者不准确的。因此,可以从另一个角度说,在整个自动驾驶控制系统环节中,驾驶员的规律性驾驶行为可能是一种驾驶偏差。这种数据采集和返回的触发模式,其实是为了提升驾驶体验感的一种方式而已。4.阴影模式需要进一步提高问题定位的准确性。由于影子模式是面向视觉驱动端的,所以这种定位问题的方式往往采用逆向追踪的方式,站在执行端的角度看问题。当控制执行过程出现问题时,往往会跟风推回是否是决策端的问题。如果决策端没问题,就继续往前推是不是轨迹预测端,再往前推是不是感知端有问题。另外,感知端也是一个广义的概念,包括真实场景的感知和后续的融合系统。如果场景感知存在问题,融合系统的一系列鲁棒算法处理可以避免感知错误。如果出现错误决策等问题,需要单独筛选出此类异常感知场景。为了过滤掉这种场景下的数据,需要在计划的每一端不断地记录感知到的数据之间的转换,两端之间较大的转换会触发数据被发回。当然,整个过程的计算量会增加很大。目前,自动驾驶系统的整体感知能力还很有限,错误感知导致错误决策的场景时有发生,甚至正确的感知也可能导致误执行。Failure”场景数据需要细化粒度,剔除无效数据的收集和返回,既节省流量又节省存储空间。5、是否建立了自动驾驶系统数据的仿真应用能力?相应的场景检测参数针对算法训练进行了优化,但实际情况是,有效利用道路实测数据进行仿真的能力比较高,各大主机厂、检测机构、tier1还没有完全具备完成这个或能力还不够成熟,架构升级会带来什么样的发展问题?高级别自动驾驶需要融合车路协同、边缘计算、云服务等多种应用场景,需要具备一定的可扩展性、多功能性和自我进化。目前的电子电气架构和软件平台架构都难以解决这些需求,而目前的整车SOA可以很好地解决上述问题。SOA起源于IT领域,在车载SOA环境下最优的实现方式应该是继承基于以太网实现高内聚低耦合的成熟思想。因此,基于SOA架构设计高层次自动驾驶系统过程的重点是实现以下功能:1.服务通信标准化,即面向服务的通信SOME/IP采用RPC(RemoteProcedure)Call)机制,继承了“服务器-客户端”模型。SOME/IP允许客户端及时发现服务器并订阅其感兴趣的服务内容。客户端可以使用“需求-响应”和“防火墙”模型来访问服务器提供的服务,并且服务可以使用通知的方式推送客户已经订阅的服务内容,基本解决了服务沟通的问题。然而,基于SOA架构的通信标准SOME/IP存在两大缺陷:a)仅定义了相对基础的规范,难以保证应用程序的互操作性。b)难以应对大数据和高并发场景。由于缺乏对象序列化能力,SOME/IP软件互操作性容易出现问题。SOME/IP不支持共享存储,基于广播的一对多通信,在自动驾驶场景下性能可能成为问题。2、SOA架构需要对服务进行划分,服务划分以服务重用和灵活重组为目的,即面向服务的重用和共享设计。有必要将SOA系统软件开发过程应用到车辆功能逻辑的定义中。架构将主导或参与需求开发、功能定义、功能实现、子系统设计、组件设计的过程。可复用的设计实现需要能够贯穿始终,最终体现在功能实现的环节。这里需要说明的是,服务复用涉及到原有系统的裁剪和新系统的重构。随着规模的扩大和新功能的增加,信息化交流会增加。因此,在意想不到的情况下将开始经历显着的处理延迟,这可能会导致数据访问延迟。自动驾驶系统对实时性的要求极高,这也是SOA应用的最大局限。另外,对于SOA的软件实现,在构建基于服务的软件架构的过程中,需要充分考虑是否能够承受和适应面向服务的通信设计和面向服务的重组。下一代高级自动驾驶系统需要解决两类问题:我在哪里,我要去哪里?这两类问题,一类依赖于地图定位,另一类依赖于导航控制。基础架构是建立面向服务的设计能力,SOA架构应运而生。如何在新架构下实现高级别自动驾驶系统功能的完美突破,将整体功能体验和性能提升到一个新的高度,是自动驾驶开发者需要关注的问题。无论是整体开发方式还是感知性能,都应该有一个量变到质变的过程。这条道路上还有很多亟待解决的问题,需要我们继续一一解决。