精华内容
下载资源
问答
  • 自动驾驶是汽车产业与人工智能、高性能计算、大数据、物联网等新一代信息技术以及交通出行、城市管理等领域深度融合的产物,对降低交通拥堵、事故率,帮助城市构建安全环境
  • 自动驾驶是汽车产业与人工智能、高性能计算、大数据、物联网等新一代信息 技术以及交通出行、城市管理等领域深度融合的产物,对降低交通拥堵、事故率,帮助城市构建安全、高效的未来出行结构,对汽车产业变革,...
  • 自动驾驶测试中的场景构建

    千次阅读 2019-06-13 08:25:54
    场景自动驾驶测试系统中相当重要的一环,测试场景的多样性、覆盖性、典型性等能够影响到测试结果的准确性,从而保证自动驾驶的安全与质量。 场景,指的是行驶场合和驾驶情景的组合,它受行驶环境的深刻影响,如...

    https://www.toutiao.com/a6701087401596420619/

     

    场景是自动驾驶测试系统中相当重要的一环,测试场景的多样性、覆盖性、典型性等能够影响到测试结果的准确性,从而保证自动驾驶的安全与质量。

    场景,指的是行驶场合和驾驶情景的组合,它受行驶环境的深刻影响,如道路、交通、天气、光照等因素,共同构成整个场景概念。场景是在一定时间和空间范围内环境与驾驶行为的综合反映,描述了道路、交通设施、气象条件、交通参与物等外部状态以及自车的驾驶任务和状态等信息。从场景架构来看,有不同的行驶场合,像高速公路、乡村道路、城市工况、机场、码头、封闭园区等;在该场合下,如何驾驶、驾驶任务、驾驶速度、驾驶模式等一起构成了整个场景的三维架构。

    与传统汽车的物理性能测试评价体系不同,自动驾驶汽车在测试评价内容形式上都有明显不同,在传统汽车测试基础上发生了根本性的改变:传统汽车测试注重评价机器在执行命令时的表现,自动驾驶测试重视评价整车多传感器的配合以及传感器融合输出的感知、判断和决策能力;传统测试的场景存在固定模式和情境,但自动驾驶汽车的测试场景需要具备多样化、典型性等特点,需要尽可能覆盖所有复杂的特殊场景;自动驾驶测试的软件系统和硬件设备也都发生了天翻地覆的变化。

    目前自动驾驶领域安全事故频发,安全成为自动驾驶领域要解决的本质问题,业界和社会都需要具备更高可靠性的自动驾驶技术来夯实发展基础,其中,挖掘测试场景、丰富和完善测试技术是提高自动驾驶安全性能的极重要一步。

     

    自动驾驶测试中的场景构建

     

     

    一、场景要素

    自动驾驶汽车上路行驶时要面临各种各样错综复杂的环境,测试体系不可能对其一一穷尽,因此可以按照一定的分类方法将各种测试场景进行分类划归:

    1.对象

    对象就像舞台剧里的演员,是指场景里出现的其他人或车,以及其他影响行驶决策的或是所有可能自主运动的物体或动物。这一方面主要依赖自动驾驶的各种传感器,包括毫米波雷达雷达、摄像头、超声波探头、激光雷达等,同时也要进行大量的实时计算,预测对方下一秒的前进方向。

    物体类型:如路灯、垃圾箱、路牌等

    对象移动速度:静止、低速移动(如骑自行车的人)、高速移动(如飞驰的汽车)

    对象移动方向:在自动驾驶汽车的左边还是右边,移动相对角度是多少

    对象数量:如果看到很多辆警车停在路边,或是遇到一群鸭子过马路,都需要减慢速度

    环境意识:对于有生命的对象,自动驾驶车也需要判断该对象有没有在仔细看路,比如酒驾的司机、5岁的小孩、一边走路一边看手机的年轻人

     

    自动驾驶测试中的场景构建

     

     

    2.路况

    路况是指道路的特征以及交通管制的特征,不会随环境变化而变动,自动驾驶车都可以提前预知。主要通过提前绘制好的地图自主定位。

    交叉口设计:十字路口、T型路口、Y型路口

    交通管制方式:红绿灯样式、停车牌、避让牌

    车道数量:单车道、4车道

    车道线:有分割线、无分割线

    车道类型:自行车道、公交车道、超车道

    限速:25mph,商业区限速、居民区限速

    马路类型:高速、普通路、小路

    角度:上坡、下坡、颠簸

    区域:学校区、医院区、山区、施工区

     

    自动驾驶测试中的场景构建

     

     

    3.环境

    环境是场景必不可少的元素,很大程度上决定了自动驾驶汽车能否上路。和路况不同,这里的环境指所有可能变化的环境因素,其很多数据需要依赖外界实时传给自动驾驶汽车。

    天气:降雨量、风速、温度、能见度

    光照:阴天、日出日落时间、太阳光角度

    路面:结冰、积水、施工

    信号:5G信号强弱(地道里的信号可能会很差)

    噪音:周围噪音会影响行人或其他车辆听到自动驾驶汽车发出的信号

     

    自动驾驶测试中的场景构建

     

     

    4.行为

    这里的行为是自动驾驶汽车本身的行为,这方面的数据主要依靠路径规划。

    驾驶方向:直行、倒车、U型掉头、左转、右转、弧线、离开车道、并入车道

    速度:静止、低速行驶、高速行驶

    加速度:加速、减速、匀速

    信号:自动驾驶汽车发出的视觉信号和声音信号等

    二、测试场景的体系架构

    将以上不同类别的场景要素排列组合,构成一个完整的场景体系,称作场景库。例如跟车场景、人行横道线、死路、对向来车、行人不遵守交规、障碍车辆逆行等。一个场景库基本的构建流程是:首先以路侧数据、车载数据、虚拟数据三种来源输入、存储场景源;其次,要通过场景挖掘、场景分类、场景演绎等方式有层级、有规划地构建场景库;最后将场景库应用于场景测试环节,包括软件在环、硬件在环、整车在环、封闭道路、开放道路五种。

    三、场景测试结果评价依据

    在不同的场景库中进行测试,对测试结果的评价应该按照什么要求要划分呢?

    安全评价

    1.对系统组件进行识别和定义,确认自动驾驶系统每一个模块的组件。

    2.由于场景要素的特殊性,不同组件在不同情况下的有效性和风险性可能发生变化,这样就需要对每一个组件进行失效分析和风险评估,确认安全等级和安全目标,确认安全风险等级包括风险的可能性、可控制性和严重性。

    3.确认安全需求。

    4.安全需求测试执行。

    5.认证测试计划和执行。

    功能评价

    要确定车辆在不同的场景库中应该怎样表现:

    1.针对以上不同的场景库进行分析,确定并描述在此场景下期待自动驾驶汽车拥有什么样的表现,详细表述用户需求。

    2.确认功能范围,根据环境需求和操作设计域进行不同的配置。

    3.对功能需求进行细颗粒度的划分,便于对每项功能进行测试。随着功能需求的细颗粒化,功能测试的需求也会越来越明确。

     

    四、主要的测试场景构建技术

    场景库的数据包括虚拟数据和现实数据,但虚拟数据的来源依然是现实数据,因此,收集驾驶环境中的真实数据对测试场景数据库的构建作用是根本性的。收集数据的途径和方式多种多样,包括LIDAR激光雷达、RADAR雷达、摄像头等,其中,视觉分析技术由于信息量大、场景要素挖掘范围广;常规性和易得性;对场景参与物分类更加准确等优势特点成为了最主要的场景挖掘技术。依靠视觉分析进行场景挖掘时需要对视频进行分解,对每帧图片进行物体识别、每帧提取的物体列表进行存储跟踪、对帧中的物体进行属性分析与行为判别,通过传感器对分析数据,形成典型数据场景,分类构建场景数据库。

    场景覆盖性典型性要求越来越高、场景挖掘技术不断发展的今天,对场景库构建提出了完善产业链的要求,面向产业链的场景库构建与测试服务体系有场景数据服务、场景挖掘服务、加速测试服务、定制化场景库服务等,通过产业化实现场景测试的市场化高效运作。

    展开全文
  • 一个自动驾驶仿真软件的运行可视...因为自动驾驶的核心痛点之一就是成本,而仿真测试能把大量自动驾驶开发和测试的成本转化为GPU的物料成本和工程师的知识经验成本,进而大大缓解该痛点。 当前,几乎每家自动驾驶

    文章来源:https://www.sohu.com/a/435321552_120847142

    一个自动驾驶仿真软件的运行可视化界面

    什么是自动驾驶仿真?个人来下一个不成熟的定义,自动驾驶仿真是借助计算机虚拟技术对实际交通系统进行某种层次的抽象。

    仿真的重要性已经不容置疑,自动驾驶想要大规模商业化落地,仿真是绕不过去的。为什么?因为自动驾驶的核心痛点之一就是成本,而仿真测试能把大量自动驾驶开发和测试的成本转化为GPU的物料成本和工程师的知识经验成本,进而大大缓解该痛点。

    当前,几乎每家自动驾驶公司或涉及相应业务的公司都在进行仿真相关的工作。但同是仿真,不同公司的水平却参差不齐,不同工程师的仿真工程经验也有很大差异。如何才能搭建一个良性的高效的自动驾驶仿真体系?如何才能成为一名优秀的自动驾驶仿真工程师?这是公众号的未来讨论核心。

    搭建自动驾驶仿真体系是一个下限很低,上限很高的事情。下载一个仿真软件,它可以是MATLAB,CarSim,也可以是CARLA、Lgsvl,或者是Prescan、VTD,通过文档学习一下仿真流程,就基本可以开始进行相关工作,这是大多数人对自动驾驶仿真的认识,也是这个细分领域门槛不高的佐证。但需要清楚的是,一个良性的自动驾驶仿真体系是一个标准的系统工程,它包括广义上的场景、系统以及评价三个主要模块,贯穿自动驾驶的开发、测试、落地以及运营等整个流程。有人说,需要让最熟悉自动驾驶系统的人来承担仿真相关工作,这个观点从某种程度上来说是正确的。

    接下来就让我们按照这三个主要维度,来谈谈一个良性的自动驾驶仿真体系应该包括什么。

    1、仿真场景

    场景是仿真体系的开端,它在整个体系扮演着极其重要的角色,但其重要性相比于仿真系统却相对容易被忽略。而且随着仿真系统和评价体系的逐渐完善,越往后期,场景在整个体系中扮演的角色越重要。场景之所以有此地位,本质是因为其是对自动驾驶相关数据的一种价值提炼,是发挥数据价值的必须且高效的途径之一。基于场景的测试方法可以弥补基于里程的测试方法的局限性,在提高系统开发效率、产品落地效率方面都有重要作用

    以光照程度为自变量的场景

    1.1 场景形式

    场景形式指的是场景数据的具体呈现方式。为什么要着重介绍场景的形式?核心在于三个字:标准化。标准化的场景体系的作用包括但不限于以下几点:

    提高对原始数据的提取以及转化效率;

    方便构建冗余度低的场景体系;

    方便不同场景体系之间的比较以及场景交换;

    减轻第三方测试时的多余工作。

    目前相对比较通用的场景形式是由德国PEGASUS项目提出的功能场景-逻辑场景-具体场景三层体系。举个例子,功能场景可以描述为,“自车(被测车)在当前车道运行,在自车前方有前车加速运行,自车跟随前车行驶。” 逻辑场景则提炼出关键场景参数,并赋予场景参数特定的取值范围,如以上描述的场景可提取自车车速,前车车速以及加速度,自车与前车距离等参数,每个参数都有一定的取值范围和分布特性,参数之间可能还存在相关性。具体场景则需要选取特定的场景参数值,组成场景参数向量,并通过具体的场景语言表示。以上示例只是为了说明三层场景体系的内涵,具体的表述形式会有更多细节,需要有更多的标准和约束。

    三层场景体系

    具体场景需要转换为计算机可理解的语言即场景语言才能发挥作用。场景语言是一种可用以描述自动驾驶系统待处理的外部环境的计算机可解析的形式化语言。

    场景语言的具体形式不一。针对功能场景、逻辑场景以及具体场景都有相应的场景语言:如针对前两者,有M-SDL等高级场景语言;针对后者有OpenSCENARIO、GeoScenario等。不同仿真软件支持的场景语言也不同:如CARLA和lgsvl等都支持基于Python脚本的场景语言;CARLA、VTD和最新版本的51Sim-One1.2等支持基于XML的场景语言。此外,protobuf、JSON都可以作为承载具体场景语言的格式。

    这其中的关键不在于语言本身,而在于能全面且不冗余的覆盖交通元素的体系标准。目前已有一些机构在推相应的标准,比较成功的是由VTD发起的由ASAM(国际)/ CASAM(国内)推动的OpenX系列。公众号在后期会围绕OpenX系列展开较多介绍,因为这是目前看来最有可能推广开来的一个标准。具体也可以关注中汽中心周博林周博的分享。

    M-SDL 一种高级场景语言

    1.2 场景内容

    1.2.1 基于知识、数据的场景来源在确定场景形式后,后期日常工作会围绕场景内容的构建展开。场景内容有两个主要来源:知识和数据。其中,基于知识的方法主要是依赖于具体场景结构,综合借鉴各相关学科的知识,分析自动驾驶系统需要处理的静、动态元素类型,并结合自动驾驶系统的测试需求构建场景。基于数据的分析方法则是从采集的自然驾驶数据中分析提取出有价值的场景。

    基于知识、数据的场景构建方法最终都可以生成测试所需要的具体场景,这部分也是公众号后期要展开讨论的核心内容之一。

    知识驱动和数据驱动的场景生成方法

    1.2.2 具体静、动态场景内容从具体元素的角度看待场景内容,可将元素分为静态元素和动态元素(半动态)两部分。

    静态场景元素的分析和提取相对较简单,主要包括道路、基础交通设施(交通标线、交通标志、交通信号灯以及抽象的交通规则等)、天气、光照、其他建筑物基础设施等,难点在于一些连续量(如光照和雨量)的取值范围分析,以及不同静态场景元素之间的约束关系。

    动态场景元素的提炼和转化相对较为困难。主要原因如下:

    除了静态场景元素固有的连续值取值范围和多约束问题外,交通行为是在一个高度复杂的存在多种约束条件的环境下的高交互性行为;

    交通参与者类型众多,包括重卡、轻卡、乘用车、电动车、行人等,每种交通参与者都有自己特定的动态行为模式;

    具体的动态行为模式有多种类型:带时间戳的轨迹数据、基于行为分类的数据(如跟车、换道等)、基于Agent的动态行为;

    在实际提取动态交通数据时,需要考虑采集车自身的影响,即考虑处理交互性;

    简单动态交通元素的分析以及大规模复杂交通元素的提取和具体形式有较多不同,需要不同的技术手段。

    以上都是在提取动态场景内容时需要考虑的问题,也是公众号未来会重点展开的内容。

    动态交通流示意

    1.2.3 场景提取pipline最后再大致回顾一下场景提取的pipline。基本流程是数据采集、数据提取和数据转化。传统的数据采集工作,包括数据存储、数据标注、数据分类在企业中往往由基础架构部门负责,这部分在理论上和实践上也已经相当成熟了。仿真需要重点关注的是如何高效的从数据中提取有价值的场景,并将其转化为具体的场景格式。

    2、仿真系统

    仿真系统是整个仿真体系中承上启下的部分。它播放仿真场景,测试研究对象,通过仿真数据接口提供被测对象的运行表现数据。仿真系统是当之无愧的仿真体系核心,前面抛出有个仿真软件就能进行仿真工作的观点,只是为了说明构建仿真体系的下限。但在实际应用工作中,仿真系统的性能也决定着整个仿真体系的上限。

    接下来我们来谈谈应该怎么看待仿真系统,围绕着仿真系统又该重点关注什么工作。

    2.1 仿真软件 | 被测对象 | 通信环境

    首先需要明确的是,仿真系统不止是仿真软件。从狭义上来说,它是仿真软件、通信环境与被测对象的集合;从广义上来说,它又包括云仿真环境等。

    其次需要明确的是,仿真系统是具体的工具,是“术”。而在构建仿真系统时,作为仿真工程师在关注“术”之余,也需要关注“道”的部分。不同仿真软件、不同的通信环境、不同的被测对象都有各自的特点,作为仿真工程师需要了解不同仿真模块各自的共有属性,并充分理解并利用不同对象的特异性。关键是做到兼容并包,调节需求和客观仿真资源之间的矛盾。

    仿真软件

    在了解不同仿真软件的共有属性方面,可以学习基本的pipline。从比较粗的粒度上看,基本的仿真pipline是加载静态地图、构建动态场景、接入被测对象、导出运行数据、结果评价处理。这之后就基本可以上手一个仿真软件,剩余的深入拓展工作也可以围绕整体流程向外展开。

    在了解不同仿真软件的差异方面,需要明白市面上各类软件各自的特点,集中精力是正确的,但是封闭眼界并不可取。单就自动驾驶仿真软件而言,Prescan、VTD、Panosim、51simOne、GaiA等商业自动驾驶仿真软件,CARLA、lgsvl、Airsim等开源自动驾驶仿真软件,稍微粗糙一些的DeepDrive、一些基于ROS构建的自动驾驶仿真平台,就都有各自的可取之处。

    CARLA Simulator

    另外,还有一些专精于特定功能仿真的软件。如在交通流仿真方面有Vissim、SUMO、High-env等;在动力学仿真方面有CarSim、Trucksim、Carmaker等软件;在静态场景仿真方面有一些大规模城市构建仿真软件;在构建复杂交通流场景方面也有一些软件。这些软件都可以纳入到整个自动驾驶仿真体系里来。我们会以后也会重点展开介绍各软件的不同点。

    SUMO Simulator

    被测对象根据被测对象的不同,业界常用的仿真工具链包括模型在环(MIL)、软件在环(SIL)、硬件在环(HIL)、整车在环(VIL)。目前SIL在各类公司应用范围最广,但其他各类也都有自己的独特优势和测试必要性;按照自然开发的流程,完整的测试过程也确实需要兼顾这几种平台。站在具体实践角度,每种在环仿真平台有适配于自己的仿真软件和技术栈,其中部分要掌握的技术如下:

    MIL与SIL相似,最基础的问题是通信环境构建,往上进一步则需要研究仿真效率、实时性、同步性等;

    HIL需要补充实时机与硬件通信接口的知识;

    VIL是大工程,需要投入大量人力物力来搭建专门的实验室,目前一般都应用于驾驶员在环仿真。

    各种技术栈也是我们未来要探讨的重点之一,SIL会是主体,其他几种优先级会放的低一些。

    通信环境

    最后再来说说通信环境,即仿真软件和被测对象之间的信息传输环境。其基础是利用计算机网络的相关知识完成信息传输工作,也即各种JD描述中提到的开发仿真接口。

    一般情况下,可以通过通信中间件处理仿真数据,并将其转化为被测对象所需的数据格式进行传输。中间件类型有很多,常用的可能有基于ROS的中间件、基于AutoSAR的中间件等。关键问题是结合具体测试需求选择合适的中间件;以及如何减少仿真消息的延迟和丢失以保证通信效率,这和仿真的可用度密切相关。

    总之,优秀的仿真工程师除了需要有为软件增加仿真功能的能力外,更关键的是需要对自动驾驶系统有整体宏观上和局部微观上的理解,并能对接各方其他工程师的需求。在此基础上,如果是基于成熟商业仿真软件进行工作,就围绕着说明书、教程以及培训,同时与仿真软件的技术支持工程师时刻保持交流,并不断积累自己的应用能力。如果是基于开源仿真软件进行开发,则需要时刻关注软件的新版本和新功能,多刷issue以解惑。当然,也可时刻关注借助一些典型的基于仿真平台的优秀项目提升自己的能力。

    2.2 静态环境模块 | 交通流模块 | 传感器模块 | 动力学模块 | 数据模块

    在了解基本仿真系统的构成后,还是需要再回到仿真软件本身。只有在了解仿真软件的机理并清楚相应软件的缺陷之后,才能高效的对接各种测试需求以及针对性地开发相应功能。

    以我个人的理解,一个完整的自动驾驶仿真软件从逻辑上包括静态环境模块,交通流模块 ,传感器模块,动力学模块,数据模块(包括场景模块)。针对每个模块都有一些亟需解决的关键仿真问题。

    静态环境模块静态环境模块指构建、维护静态场景的模块。具体需要的静态元素需要同感知组进行对接,也可以结合具体的专家知识提取分析产品ODD。之后需要设计符合真实情况的场景元素并以合理的方法进行泛化。

    这一模块的关键问题在于静态环境的真实度保障以及自动化构建大规模静态场景的方法两方面。

    交通流模块对应于动态场景的概念,参考51VR公众号的总结,需要重点关注以下几种动态场景构建方式。每种构建方式都有一整套基础理论和实践手段,之后我们会一一展开。

    典型交通行为建模,如启动、跟车、换道、超车、十字路口处理等。这部分主要可以使用DBM相关方法进行分析。

    利用AI技术生成驾驶模型,在虚拟世界中设置AI车辆自动行驶,AI可以学习交通流的特性,尤其在行人仿真方面有比较好的成效。这部分主要可以使用模仿学习、强化学习来完成;

    导入交通学中的交通流模型,并引入数学概率分布数学模型。这样的交通流模型包括宏观交通流模型和微观模型,相应的数学概率分布模型应该以高斯模型为主,这部分可以通过与SUMO/Vissim联合仿真完成,也可直接构建交通流模型。

    将真人开车的数据导入交通流中,研究rare-events simulation,主要利用驾驶模拟器实现。

    Agent-based traffic simulation

    传感器模块传感器模块是连接外界环境和被测车辆的媒介。针对不同的被测对象,有不同的传感器模块使用方法。在进行决策规划系统测试时,可使用对象级传感器,由此可以避免传感器模型的不准确带来的大部分后续问题。对于需要原始仿真信息(如图像、点云)的被测系统,则需要基于实际产品情况精确标定传感器参数,如对于图像传感器标定位置外参和畸变系数等内参,对于激光雷达等传感器,标定线数、旋转速度等。

    传感器建模是个处理难度很高的模块,目前有物理建模和统计建模两种典型的传感器建模方法。物理建模难度比较高,且需要大量的计算资源;统计建模方法始终存在真实度gap。如何弥补这两种模型的缺陷是需要深入讨论的问题。

    一个可以借鉴的手段来自waymo,对于感知仿真的相关问题,它们似乎没有直接进行传感器建模,而是采用GAN的方式解决。如果必须要用到传感器建模,对于统计建模的方法,可以精心设计噪声参数并通过数据处理方法解决由真实程度带来的仿真结果差异。对于物理建模,则要看各仿真器的硬实力。但不管怎么样,首要的是处理真实程度的问题,其次是考虑计算资源的约束。

    Surfel GAN

    动力学模块这部分的重要性不再多提。它在传统车辆仿真工作中占有非常重要的地位,相关的理论和实践工作也已非常成熟。但不能因为待攻克的工程问题比较少就忽略它,相反,必须高度重视动力学仿真的结果,因为它的精确度可以直接影响仿真结果的可用程度。这部分的工作主要需考虑的是集成动力学仿真的方式,是内部支持还是通过与CarSim等进行联仿支持高精度动力学仿真?要不要考虑实时性问题?

    总的来说,对于动力学仿真模块,要熟练掌握CarSim和TruckSim等动力学仿真软件和各种动力学模型,掌握联仿方法,动力学模型标定方法。另外,百度提供了一种基于数据的动力学建模方法,也有很高的实用价值。

    数据管理模块本文指管理整个仿真数据pipline的模块,它的内涵覆盖范围很广,包括场景解析、仿真过程记录、过程回放、数据导出等等。每个具体功能都可以专门拿出一篇文章来谈,这部分也非常重要,但限于篇幅在此就不具体展开了。

    2.3 本地仿真 | 大规模云仿真 | 稀有事件仿真

    仿真可以降低时间成本、经济成本,提高测试的安全性。但是要保证自动驾驶系统的安全性,需要进行非常多的测试里程。即使采用场景测试的方法作为补充,但由于可能的场景参数较多以及部分参数具有连续性,因此很容易形成海量的测试场景。在这样的前提条件下,只用几个本地仿真系统的话,跑完这些场景的时间成本是不可接受的。能否合理解决这个问题,决定着仿真体系能不能发挥最大效能。

    目前学术界/工业界有以下几个主流方案。其一是大规模云仿真,这也是工业界正在推动的主要路径,通过使用云资源进行并行计算,并在不同agent之间交换仿真结果以提高效率。另外一种由学术界重点推动的方法,则是借助场景的概念,通过设计一些策略缩少无风险里程,或者提高能对自动驾驶系统形成特定挑战的场景的生成效率,即通过“压力测试”提高仿真效率。

    Sim Cloud of TAD

    One Case of Stress Test

    3、仿真评价

    最后说说整个仿真体系中最容易被忽略的部分,基于仿真的评价。想象这样一个需求,自动驾驶系统更新了一个重要功能,相应的版本从V0.8更新到V0.9,现在需要进行回归测试以保证新的修改在解决新问题的同时,不对系统已经被验证过的能力造成影响。需要怎么做?

    这时首要是要准备一个“标准场景库”,这个场景库也必须被精心设计,此处先不具体展开。考虑另外一个问题,如何保证系统过了这个场景库?用pass/fail的二元指标,或者违反交通规则的次数? 这种指标是有局限性的。最大的问题在于,由于仿真测试和实车测试结果的差异性,单纯的二元指标会催生大量的假阴性、假阳性结果,进而造成系统的安全性风险。因此我们需要建立一个更合理的评价体系,设计带有连续值属性的评价指标,通过评估“距离”来评估系统的安全性。

    具体仿真评价指标的设计需要精确对接产品需求。不同的算法,不同的系统有自己的特定指标,这些可灵活发挥的点比较少,关键是对接好开发工程师的具体需求;面向第三方的评价体系则相对更具灵活性,可以设计面向安全性、舒适性、经济性等维度的具体指标。

    总的来说,评价体系是必须精心设计的,因为它是评估迭代后的系统性能是否变好的基础。

    4、主要挑战

    在文章的最后,我们再集中谈谈目前仿真工作中遇到的几个挑战。

    4.1 Reality Gap

    Gap1:仿真对物理现实的表现是不充分的。举个典型例子,在针对感知系统进行测试时,是否需要保证渲染图像/点云和现实世界的高度一致性?由仿真合成的图像/点云等用于训练对应的自动驾驶系统是否能有效提高性能?

    保持高度一致性需要非常高的成本。为了规避较高成本,目前也有一部分相关研究工作。典型的如百度的AADS(虚实结合)、谷歌的SurfelGAN(以GAN为代表的一系列工作)等。

    Gap2:考虑所有相关的物理现象具有挑战性。举一些典型例子,简单车辆模型如果没有包含轮胎模型,在较高速度下如何考虑转向以及加减速等行为?如何建模随机过程(如信号噪声)并将这些模型作为一个整体集成到仿真中?如何将V2X仿真与物理地形仿真集成在一起?

    解决这些问题,要开源节流。例如,感知渲染做不好,从工程的角度,可以考虑把仿真重心放在决策规划和控制上,而感知测试的重心可暂时放在回放型仿真上。或者仿真工程师可在已有的gap下,通过数据处理分析,以及一些交叉验证手段来覆盖掉gap。

    总的来说,若系统在仿真环境和实际运行环境之间的表现差异太大,必须仔细分析造成差异的关键矛盾。如果该矛盾在短期内因为客观原因不能解决,则需果断调整重心。仿真非常有用,但不是测试过程的万能药,为了仿真而仿真是没什么意义的。

    4.2 Complexity & Lack & Business

    Complexity复杂性表征在三个方面。其一,自动驾驶软件本身的多样性;其二,单个仿真软件的功能复杂性;其三,针对特定系统和特定软件开发仿真接口的复杂性。

    当前的自动驾驶仿真软件确实很多。VTD、Prescan、51Simone、PanoSim、GaiA、rfPro、CARLA、Airsim、Lgsvl、DeepDrive、Carsim、CarMaker;甚至Matlab/Simulink、GTA-5、Gazebo都可用于自动驾驶仿真。每个仿真软件都有自己的优缺点,如果面对具体测试需求不断切换要使用的模拟器,无疑会增加很多学习成本。此外,面向同一被测系统,针对不同自动驾驶仿真软件,往往需要开发不同的仿真接口,这也需要较高的时间成本。如此之多的仿真套件也不利于工程师日常维护,进而在开展工程级别的大规模仿真测试会有较多掣肘。

    Lack

    如果有一款足够完美的自动驾驶仿真软件是不是就一劳永逸了呢?

    话虽如此,但实际情况没这么简单。从功能来说,目前很难说有一款公认的足够完美的自动驾驶仿真软件。大部分软件都还不能同时支持以下列举的全部功能:

    由于可能破坏物理引擎的稳定性无法提供高于实时的模拟速度;

    不支持高效的无GUI运行(headless execution)模式进而影响自动化测试等;

    建模基于复杂多维真实交通行为的动态场景时需要较高数据成本以及专业知识;

    构建大规模真实、异构静态场景时需要较高时间成本;

    适配多种场景语言(或者说,将场景编码为场景语言)时,需要较高的时间成本;

    不支持多agent联合仿真以及跨多台机器仿真会话有效分发;

    不支持大规模场景(整个市区级)(此需求合理性有待讨论)。

    Business不可否认,对有些自动驾驶仿真领域的深耕玩家而言,以上功能都已直接间接得开发成熟。但在实际进行研发时,还必须考虑软件使用的经济成本、所用数据安全性、仿真与基础架构的契合度(与数据闭环的契合度)。

    因此部分机构还是会去独立开发完善一个仿真系统。此时,以上提到的相应功能开发也正是自动驾驶仿真工程师可能的部分日常工作。

    4.3 Reproducibility

    可复现性,某种角度上也叫仿真结果的确定性,包括两个方面,由仿真到现实的可复现性和仿真本身的可复现性。需要注意的是,前者是可复现性的重点和难点,需要通过精心处理Reality gap 解决,这里只是说说相对容易被忽略的后者。在实际测试过程中,只有在一定程度上保障了系统的可复现性,就可以知道对代码所做的更改是否修复了问题,进而有利于测试自动化和CI,规避假阴性和假阳性的结果。

    MIL、SIL、HIL、VIL,无论是哪种仿真系统,仿真结果都可能存在一定噪声。表现在采用同一组场景,重复运行多次,评价指标值会出现一定的波动。自动驾驶系统作为CPS系统的一种,相应的仿真结果出现波动是正常的。由于波动出现的原因受众多较难追溯的因素影响(线程不稳定性、信息传输帧率、指标本身的高度非线性),因此需要精确建模噪声并定量分析的可能性较小。一种可行方法是通过多次运行实验,采用平均值等统计处理手段尝试定性解决这个问题。另外一种可行的方法则是通过设计模糊化、综合化的评价指标实现。

    4.4 CI

    在CI中集成仿真是大势所趋。但其会受到以下特性影响。

    模拟器可靠性。CI的挑战之一是仿真软件本身的可靠性。在自动化中使用仿真软件时,可能有意外的崩溃、时间和同步问题。

    接口稳定性。自动驾驶仿真软件接口的稳定性会对自动化过程产生重大影响,因为不一致的、不稳定的、脆弱的仿真软件接口可能会导致客户端应用程序出现故障。这里需要做大量的工程工作,来不断开发并维护仿真接口。

    5、结语

    自动驾驶仿真体系的搭建,下限很低,上限也很高。它在很多方面上决定着一个自动驾驶公司或部门能走多远。合理的完整的仿真体系能加速整个系统的开发和测试,提供正反馈。

    目前已有很多知名公司和前辈分享了许多仿真相关的知识,这些知识令人受益匪浅,但由于每次分享时间有限,所以不太能展开更多,不易形成完整的系统。国内的51VR等于2019年参与出台了自动驾驶仿真蓝皮书,这本书为仿真的学习提供了系统学习路线,但受限于蓝皮书的性质,不易展开更多细节。文章来源:无人车情报局

    展开全文
  • 自动驾驶场景图像分割(Unet)

    千次阅读 2021-12-06 17:22:10
    使用Unet进行自动驾驶场景图像分割。

    本文使用matlab环境,测试了自动驾驶场景的图像分割任务。分割网络使用Unet。

    一千张标注图像,最终训练精度达到 90%。

     

     数据准备

    场景预标注数据下载地址:Semantic Segmentation for Self Driving Cars | Kaggle

    数据下载可能需要翻墙,如果无法下载可移步 自动驾驶场景图像-分割标注数据.zip

    数据标注了13个类别,每个类别具体名字未知,随便给个类名测试。

    imagedir="E:\DLDatasets\kaggle\SelfDriving\dataA\dataA\CameraRGB";
    labeldir="E:\DLDatasets\kaggle\SelfDriving\dataA\dataA\CameraSeg";
    
    classNames=["c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","c10","c11","c12"];
    labelIds=0:12;
    
    imds=imageDatastore(imagedir, "ReadFcn",@readImage);
    pxds=pixelLabelDatastore(labeldir,classNames,labelIds,"ReadFcn",@readLabel);
    
    ds=combine(imds,pxds);
    

    图像原始大小为 600x800,首先自定义数据读取函数将其缩放到 96x128,另外标注图像是三通道,需要将其转成单通道图像。

    function [data] = readImage(path)
        data=imread(path);
        data=imresize(data,[96 128]);
    end
    
    function [data] = readLabel(path)
        data=imread(path);
        data=data(:,:,1);
        data=imresize(data,[96 128]);
    end
    

    定义网络及参数

    % 定义网络
    imageSize = [96 128 3];
    numClasses = 13;
    lgraph = unetLayers(imageSize, numClasses);
    % 训练参数
    options = trainingOptions('adam', ...
        'InitialLearnRate',1e-3, ...   % 1e-4不收敛,改为1e-3
        'MaxEpochs',100, ...
        "MiniBatchSize", 8,...
        'VerboseFrequency',50, ...
        'Plots','training-progress');
    

     训练

    net = trainNetwork(ds,lgraph,options)

    最终训练情况

     测试

    pic = imread("E:\DLDatasets\kaggle\SelfDriving\dataA\dataA\CameraRgb\02_00_120.png");
    msk = imread("E:\DLDatasets\kaggle\SelfDriving\dataA\dataA\CameraSeg\02_00_120.png");
    pic = imresize(pic, [96,128]);
    msk = imresize(msk, [96,128]);
    msk=msk(:,:,1);
    out2 = predict(net,pic);
    
    [h,w,~] = size(out2);
    result = uint8(zeros(h,w));
    
    for y = 1:h
        for x = 1:w
            [~,i]=max(out2(y,x,:));
            result(y,x)=i-1;
        end
    end
    
    result = result*20;
    
    msk = msk*20;
    
    subplot(1,3,1)
    imshow(pic)
    subplot(1,3,2)
    imshow(result,'Colormap',jet(255))
    subplot(1,3,3)
    imshow(msk,'Colormap',jet(255))
    

     

     

     

    展开全文
  • #边缘计算阅读周#读书的人,有梦可做。边缘计算社区联合6大出版社邀您一起阅读,一起做追梦人。今天推荐的书是电子工业出版社 博文视点推出的边缘计算佳作《边缘计算 方法与工程实践》,这本书...

    #边缘计算阅读周# 

    读书的人,有梦可做。

    边缘计算社区联合6大出版社邀您一起阅读,一起做追梦人。

    今天推荐的书是电子工业出版社 博文视点推出的边缘计算佳作《边缘计算 方法与工程实践》,这本书张骏老师主编,几位作者都是英特尔背景,这本书以工程实践为导向,详细阐述和分析了边缘计算的整体技术细节。对边缘计算的概念、原理、基础架构、软件架构、安全管理等方面都进行了深入剖析,并对业界的发展现状进行了全面介绍。

    以下为书里的边缘计算与自动驾驶部分篇章,阅读一下,文末有惊喜。

    自动驾驶

    自动驾驶是新一轮科技革命背景下的新兴技术,集中运用了现代传感、信息与通信、自动控制、计算机和人工智能等技术,代表着未来汽车技术的方向,也是汽车产业转型升级的关键,是目前世界公认的汽车发展方向。据麦肯锡预测,2030年售出的新车中,自动驾驶汽车的比例将达到15%。

    其实早在20世纪80年代,在美国国防部先进研究项目局的支持下,自动驾驶技术的研究热潮就已经掀起。1984 年,卡耐基梅隆大学研发了全世界第一辆真正意义上的自动驾驶车辆,该车辆利用激光雷达、计算机视觉及自动控制技术完成对周边环境的感知,并据此做出决策自动控制车辆,在特定道路环境下最高时速大约31km/h。

    2014年,国际汽车工程师协会(SAE International)制订了一套自动驾驶汽车分级标准, 将汽车智能化水平分成 6 个等级:无自动化、驾驶支援、部分自动化、有条件自动化、高度自动化、完全自动化,具体定义如图 5-7 所示。

    0

    1

    边缘计算在自动驾驶中的应用场景


    汽车自动驾驶具有“智慧”和“能力”两层含义。所谓“智慧”是指汽车能够像人一样智能地感知、综合、判断、推理、决断和记忆;所谓“能力”是指自动驾驶汽车能够确保“智慧” 有效执行,可以实施主动控制,并能够进行人机交互与协同。自动驾驶是“智慧”和“能力” 的有机结合,二者相辅相成,缺一不可。

    为实现“智慧”和“能力”,自动驾驶技术一般包括环境感知、决策规划和车辆控制三部分。类似于人类驾驶员在驾驶过程中,通过视觉、听觉、触觉等感官系统感知行驶环境和车辆状态,自动驾驶系统通过配置内部和外部传感器获取自身状态及周边环境信息。内部传感器主要包括车辆速度传感器、加速传感器、轮速传感器、横摆角速度传感器等。主流的外部传感器包括摄像头、激光雷达、毫米波雷达及定位系统等,这些传感器可以提供海量的全方位行驶环境信息。为有效利用这些传感器信息,需要利用传感器融合技术将多种传感器在空间和时间上的独立信息、互补信息以及冗余信息按照某种准则组合起来,从而提供对环境的准确理解。决策规划子系统代表了自动驾驶技术的认知层,包括决策和规划两个方面。

    决策体系定义了各部分之间的相互关系和功能分配,决定了车辆的安全行驶模式 ;规划部分用以生成安全、实时的无碰撞轨迹。车辆控制子系统用以实现车辆的纵向车距、车速控制和横向车辆位置控制等,是车辆智能化的最终执行机构。环境感知和决策规划对应自动驾驶系统的“智慧”,而车辆控制则体现了其“能力”。

    为了实现 L4 级或L5 级的自动驾驶,仅仅实现单车的“智慧”是不够的。如图 5-8 所示,需要通过车联网 V2X 实现车辆与道路以及交通数据的全面感知,获取比单车的内外部传感器更多的信息,增强对非视距范围内环境的感知,并通过高清3D动态地图实时共享自动驾驶的位置。例如在雨雪、大雾等恶劣天气下,或在交叉路口、拐弯等场景下,雷达和摄像头无法清晰辨别前方障碍,通过V2X来获取道路、行车等实时数据,可以实现智能预测路况,避免意外事故的发生。

    随着自动驾驶等级的提升,并且配备的车内和车外高级传感器更多,一辆自动驾驶汽车每天可以产生高达大约 25TB 的原始数据。这些原始数据需要在本地进行实时的处理、融合、特征提取,包括基于深度学习的目标检测和跟踪等高级分析;同时需要利用 V2X 提升对环境、道路和其他车辆的感知能力,通过 3D 高清地图进行实时建模和定位、路径规划和选择、驾驶策略调整,进而安全地控制车辆。由于这些计算任务都需要在车内终结来保证处理和响应的实时性,因此需要性能强大可靠的边缘计算平台来执行。考虑到计算任务的差异性,为了提高执行效率并降低功耗和成本,一般需要支持异构的计算平台。

    1.自动驾驶的发展现状

    参与自动驾驶技术开发的企业大体可以分为五种:平台厂商(例如谷歌Waymo、百度Apollo),硬件供应商(例如英特尔 CPU/FPGA、英伟达 GPU),车企(例如特斯拉、奥迪、通用),车辆零部件企业(例如博世),技术解决方案提供者(例如英特尔 Mobileye)。截至目前,市场主要以 L2 级自动驾驶的量产以及拥有 L3 级或 L4 级的部分功能为主。

    L2级的自动驾驶基本有两种解决方案:一种是现在很多传统车厂使用的前视摄像头,加毫米波雷达和视觉感知芯片的方案;还有一种则是类似特斯拉、谷歌等使用的多个摄像头与声波雷达环视,并通过一个中央计算机进行融合计算的方案。

    目前特斯拉 Autopilot在 ADAS 市场上已经达到了无人驾驶 L2级水准,并拥有部分 L3 级的潜力,但是由于预警信息还不完全到位,并没有完全达到 L3 级。特斯拉 Autopilot的进化史是“硬件先行,软件后更新”。每一台特斯拉都会配置当时最新的硬件,然后通过OTA不断更新固件,获得更完善的驾驶辅助或自动驾驶功能。

    自2016 年 10 月以来,特斯拉生产的每辆汽车都配备有自动驾驶硬件套件,包括摄像头、雷达、超声波传感器和可升级的车载计算机。目前,全球大约有 150000 台这种“Auto2.0”硬件版本的特斯拉正行驶在路上,同时软件系统可以通过OTA 更新升级车辆。庞大的用户群可以源源不断地供给真实路况的驾驶数据,帮助Autopilot训练和迭代算法。

    自从谷歌的“萤火虫”退役之后,Waymo更倾向于打造从算法到硬件的一整套体系,让汽车厂商能够直接安装于自家车上就成了自动驾驶,类似安卓在智能手机中的上游位置,包括定制化的芯片和激光雷达传感器。Waymo方案是提前为自动驾驶汽车要运行的汽车进行环境建模, 比一般意义上的高清地图包含更多的环境细节信息,然后通过计算机视觉与激光雷达的算法融合,形成自动驾驶的策略和算法基础。因此,Waymo一般在自己掌握完整环境数据的地区才会开展服务,并通过在美国各个地区,各种极端环境下展开测试,积累大量的实车上路数据,从而逐步扩大技术能适应的能力范围。

    Mobileye 主要从事 ADAS 系统和自动驾驶视觉技术开发,拥有针对自动驾驶领域自主研发的 EyeQ 系列视觉处理芯片以及配套的基于视觉算法的完整解决方案。目前,该方案已经更新到第五代,第六代 EyeQ 6 也在紧锣密鼓的开发中。Mobileye 的最大优势在于使用单一摄像头采集路面信息,对周围环境进行精细解读,无须更多的摄像头从而降低方案成本。

    2017 年 3 月,英特尔花费 153 亿美元收购了这家全球最大的ADAS 供应商。对于英特尔来说,收购 Mobileye 是其构建自动驾驶版图中非常重要的一环。在收购 Mobileye 之前,英特尔还先后收购了FPGA 芯片巨头 Altera、视觉算法公司 Movidius,以此形成了自动驾驶端到端的完整解决方案。

    在中国,百度在自动驾驶领域布局最早也最全面。百度的Apollo策略与谷歌 Waymo不同, 主要区别在于 Waymo并不愿意放弃硬件体系的主导权,而 Apollo则更愿意显现出开放的姿态, 以多领域的人工智能技术、平台服务、软件服务为主。在硬件端,Apollo提出的是构建参考硬件体系,并希望吸引更多垂直硬件领域的合作者。截至 2018年 12月,百度 Apollo生态合作伙伴规模已达 133家。Apollo开放平台目前已发展到 3.0阶段,包括开放认证平台、参考硬件平台、开放软件系统、云服务平台及完整解决方案等 5个主要功能平台,达到在限制条件下如封闭园区内的产品级的自动驾驶。

    此外,从 2016年开始,百度便在路侧感知传感器方案、路侧感知算法、车端感知融合算法、数据压缩与通信优化、V2X终端硬件及软件、V2X安全等方面布局,进行 “车路协同”全栈研发,成为业内最早布局车路协同的公司之一。在商业化方面,百度Apollo与金龙客车打造的全球首款 L4 级量产自动驾驶巴士“阿波龙”已于2018年 7 月 4 日量产下线。

    在自动驾驶的边缘计算平台选择方面,目前大部分厂家选择以CPU 或 GPU 为主的计算平台。例如谷歌从 2009 年开始开发无人车,采用英特尔的计算平台,包括最新的克莱斯勒大捷龙无人车,如图 5-9 所示,采用了英特尔的 Xeon 服务器芯片、Altera 的 FPGA 和英特尔的以太网关芯片。

    实际上不只是Waymo,百度计算参考平台基于台湾 Neousys Nuvo-6108GC 工控机,使用英特尔双至强E5-2658V3 12 核 CPU,主要用来处理激光雷达云点和图像数据,另一部分为FPGA。

    相比自动驾驶领域比较新的技术,如TSN网络交换器,大部分厂家都会选择用 FPGA 实现自动驾驶。原因主要是 TSN 协议复杂,标准延续的周期很长。在 ADAS 领域,FPGA 用得更多,奔驰S系列每辆车使用多达 18 个 FPGA。FPGA 最突出的优势是功耗低,一般只有同样性能 GPU 的 1/10。这使得 FPGA 更容易通过严苛的车规级认证,特别是高等级的ISO26262认证。由于 ASIC 的开发和量产周期长等特点,目前在自动驾驶领域使用 ASIC 的较少。

    2.自动驾驶边缘计算的趋势

    目前在自动驾驶中使用的工控机是一种加固的增强型个人计算机。如图5-10 所示,它可以作为一个工业控制器在工业环境中可靠运行,采用符合EIA 标准的全钢化工业机箱,增强了抗电磁干扰能力,并采用总线结构和模块化设计技术。CPU 及各功能模块皆使用插板式结构,并带有压杆软锁定,提高了抗冲击、抗振动能力。整体架构设计需要考虑 ISO26262 的要求。CPU、GPU、FPGA 以及总线都做冗余设计,防止出现单点故障。

    当整体 IPC 系统失效时,还有 MCU做最后的保证,直接发送指令到车辆 CAN 总线中控制车辆停车。目前这种集中式的架构比较方便,将所有的计算工作统一放到一个工控机中,算法迭代不需要过度考虑硬件的整体设计和车规要求,用传统的 x86 架构就可以非常快捷地搭建出计算平台,卡槽设计也方便更新硬件。

    但此方案整体体积较大、功耗高,不适用于未来的量产。随着自动驾驶的成熟和量产,将越来越多地采用域控制器嵌入式的方案 :将各个传感器的原始数据接入到 Sensor Box 中,在 Sensor Box 中完成数据的融合,再将融合后的数据传输到计算平台上进行自动驾驶算法处理。自动驾驶汽车功能复杂,为了保证各个模块和功能间不互相影响,且出于安全性考虑,将大量采用域控制器。根据不同的功能实现分为车身域控制器、车载娱乐域控制器、动力总成域控制器、自动驾驶域控制器等。以自动驾驶域控制器为例,其承担了自动驾驶需要的数据处理运算,包括毫米波雷达、摄像头、激光雷达、组合导航等设备的数据处理,也承担了自动驾驶算法的运算。

    随着自动驾驶的技术发展,算法不断完善。算法固化后可以做 ASIC 专用芯片,将传感器和算法集成到一起,实现在传感器内部完成边缘计算,进一步降低后端计算平台的计算量,有利于降低功耗、体积。例如激光雷达处理需要高效的处理平台和先进的嵌入式软件。Renesas 公司将包含高性能图像处理技术及低功耗的汽车 R-CarSoC 与 Dibotics 的 3D 实时定位和制图(SLAM)技术相结合,提供 SLAM on Chip ™,可在 SoC 上实现实时、先进的激光雷达数据处理。同时,随着深度学习算法在自动驾驶的模型训练及推理中应用得越来越多,一些厂商也开始定制自己的 AI 芯片:例如百度的昆仑,将在Autopilot 3.0 上使用自研处理芯片的特斯拉。

    自动驾驶除了包括车载计算单元,还涉及 RSU、MEC 和 CDN 等边缘服务器。随着 5G 技术的商用,特别是对于车路协同解决方案(V2X),将满足其对于超大带宽和超高可靠性的需求。同时,原本在数据中心中运行的负载可以卸载到网络边缘侧,例如高清 3D 地图更新、实时交通路况的推送、深度学习模型训练和大数据分析等,从而进一步降低传输时延,提高响应速度。

     

    0

    2

    自动驾驶的边缘计算架构


    自动驾驶的边缘计算架构依赖于边云协同和LTE/5G提供的通信基础设施和服务。边缘侧主要指车载边缘计算单元、RSU 或 MEC 服务器等。其中车载单元是环境感知、决策规划和车辆控制的主体,但依赖于RSU 或 MEC 服务器的协作,如 RSU 给车载单元提供了更多关于道路和行人的信息。但是有些功能运行在云端更加合适甚至无法替代,例如车辆远程控制、车辆模拟仿真和验证、节点管理、数据的持久化保存和管理等。

    自动驾驶边缘计算平台的特点主要包括如下几点。

    1.负载整合

    目前,每辆汽车搭载超过 60 ~100多个电子控制单元,用来支持娱乐、仪表盘、通信、引擎和座位控制等功能。例如,一款豪华车拥有144个 ECU,其中约 73 个使用 CAN 总线连接、61 个使用 LIN 网络,剩余 10 个使用 FlexRay,这些不同 ECU 之间互联的线缆长度加起来长达 4293m。这些线缆不仅增加成本和重量,对其进行安装和维护的工作量和成本也非常高。

    随着电动汽车和自动驾驶汽车的发展,包括 AI、云计算、车联网 V2X 等新技术不断应用于汽车行业中,使得汽车控制系统的复杂度愈来愈高。同时,人们对于数字化生活的需求也逐渐扩展到汽车上,例如4K娱乐、虚拟办公、语音与手势识别、手机连接信息娱乐系统(IVI) 等。所有这些都促使着汽车品牌厂商不断采用负载整合的方式来简化汽车控制系统,集成不同系统的 HMI,缩短上市时间。具体而言,就是将 ADAS、IVI、数字仪表、HUD 和后座娱乐系统等不同属性的负载,通过虚拟化技术运行在同一个硬件平台上,如图5-11所示。

    同时,基于虚拟化和硬件抽象层 HAL 的负载整合,更易于实现云端对整车驾驶系统进行灵活的业务编排、深度学习模型更新、软件和固件升级等。

     

    2.异构计算

    由于自动驾驶边缘平台集成了多种不同属性的计算任务,例如精确地理定位和路径规划、基于深度学习的目标识别和检测、图像预处理和特征提取、传感器融合和目标跟踪等。而这些不同的计算任务在不同的硬件平台上运行的性能和能耗比是不一样的。一般而言,对于目标识别和跟踪的卷积运算而言,GPU 相对于 DSP 和 CPU 的性能更好、能耗更低。而对于产生定位信息的特征提取算法而言,使用 DSP 则是更好的选择。

    因此,为了提高自动驾驶边缘计算平台的性能和能耗比,降低计算时延,采用异构计算是非常重要的。异构计算针对不同计算任务选择合适的硬件实现,充分发挥不同硬件平台的优势,并通过统一上层软件接口来屏蔽硬件多样性。如图5-12所示为不同硬件平台适合负载类型的比较。

    3.实时性

    自动驾驶汽车对系统响应的实时性要求非常高,例如在危险情况下,车辆制动响应时间直接关系到车辆、乘客和道路安全。制动反应时间不仅仅包括车辆控制时间,而是整个自动驾驶系统的响应时间,其中包括给网络云端计算处理、车间协商处理的时间,也包括车辆本身系统计算和制动处理的时间。如果要使汽车在 100km/h 时速条件下的制动距离不超过 30m,那么系统整体响应时间不能超过 100ms,这与最好的F1车手的反应时间接近。

    将自动驾驶的响应实时地划分到对其边缘计算平台各个功能模块的要求,包括:

    •对周围目标检测和精确定位的时间:15~20ms。

    •各种传感器数据融合和分析的时间:10~15ms。

    •行为和路径规划时间:25~40ms。

    在整个计算过程中,都需要考虑网络通信带来的时延,因此由5G所带来的低时延高可靠应用场景(uRLLC)是非常关键的。它能够使得自动驾驶汽车实现端到端低于1ms的时延,并且可靠性接近 100%。同时 5G 网络可以根据数据优先级来灵活分配网络处理能力,从而保证车辆控制信号传输保持较快的响应速度。

    4.连接性

    车联网的核心是连接性,希望实现车辆与一切可能影响车辆的实体实现信息交互,包括车人通信(V2P)、车网通信(V2N)、车辆之间通信(V2V)和车路通信(V2I)等。

    V2X通信技术目前有 DSRC 与C-V2X(Cellular V2X,即以蜂窝通信技术为基础的 V2X) 两大路线。专用短距离通信技术(Dedicated Short Range Communication,DSRC)发展较早, 目前已经非常成熟。但随着 LTE 技术的应用推广和 5G 的兴起,未来 C-V2X 在汽车联网领域也将有广阔的市场空间。

    DSRC 技术基于三套标准:

    (1)IEEE1609,标题为“车载环境无线接入标准系列(WAVE)”,定义了网络的架构和流程。

    (2)SAEJ2735和 SAEJ2945定义了消息包中携带的信息。该数据将包括来自汽车上的传感器的信息,例如位置、行进方向、速度和制动信息。

    (3)IEEE802.11p,它定义了汽车相关的“DSRC”的物理标准。

    DSRC 顶层协议栈是基于 IEEE 1609 标准开发的,V2V 信息交互使用的是轻量WSMP(WAVE Short Message Protocol),而不是 Wi-Fi 使用的TCP/IP协议,TCP/IP 协议用于 V2I 和 V2N 信息交互。DSRC 底层、物理层和无线链路控制是基于 IEEE 802.11p。基于 IEEE 802.11p 的 DSRC 技术的组网需要新建大量路侧单元 roadside unit,这种类基站设备的新建成本较大, 其硬件产品成本也比较高。

    C-V2X 是由 3GPP(3rd Generation Partnership Project)定义的基于蜂窝通信的 V2X 技术,它包含基于 LTE 以及未来 5G 的 V2X 系统,是DSRC 技术的有力补充。它借助已存在的LTE 网络设施来实现 V2V、V2N、V2I 的信息交互,这项技术最吸引人的地方是它能紧跟变革,适应于更复杂的安全应用场景,满足低时延、高可靠性和大带宽要求。C-V2X 的优势之一是直接利用现有蜂窝网络,使用现有基站和频段,组网成本明显降低。随着蜂窝通信技术的发展,我国在 LTE 布局多年,网络覆盖全国大部分地区,是全球最大的LTE 市场,5G 通信已经开始商用,所以在中国市场 C-V2X 更被看好,但未来也可能是DSRC 和 C-V2X 并存的状态。

    除了 DSRC 和 C-V2X,自动驾驶汽车的 TCU 中还包含 Wi-Fi 热点、蓝牙通信、GPS 等。

    5.  FuSa 功能安全

    随着汽车电子和电气系统数量的不断增加,一些高端豪华轿车上有多达100多个 ECU,其中安全气囊系统、制动系统、底盘控制系统、发动机控制系统和线控系统等都是安全相关系统。当系统出现故障时,系统必须转入安全状态或降级模式,避免系统功能失效而导致人员伤亡。失效可能是由于规范错误(比如安全需求不完整)、人为原因的错误(比如软件问题)、环境的影响(比如电磁干扰)等原因引起的。为了实现汽车电子和电气系统的功能安全设计,《道路车辆功能安全》标准 ISO 26262 于 2011年正式发布,为开发汽车安全相关系统提供了指南,该标准的基础是适用于任何行业的电子、电气、可编程电子系统的功能安全标准——IEC 61508。

    按照 ISO 26262 标准对系统做功能安全设计,前期重要的一个步骤是对系统进行危害分析和风险评估,识别出系统的危害并且对危害的风险等级——ASIL(Automotive Safety Integration Level,汽车安全完整性等级)进行评估。ASIL有四个等级,分别为 A、B、C 和D。其中 A 是最低的等级,D是最高的等级。ASIL 等级决定了对系统安全性的要求,ASIL等级越高,对系统的安全性要求越高,为实现安全付出的代价越大,也意味着硬件的诊断覆盖率越高,开发流程越严格,具有开发成本增加、开发周期延长等特点。

    为了让整个系统达到至少 ASIL-B 等级, 汽车集成电路需要满足 ASIL-C甚至是 ASIL-D 等级,同时汽车的集成电路需要符合 AEC-Q100规范,这是 ISO 26262 标准的基本要求。AEC-Q100是由美国汽车电子协会 AEC 主要针对车载应用的集成电路产品所设计出的一套应力测试标准,此规范对于提升产品信赖性及品质保证相当重要。AEC-Q100 为了预防可能发生的各种状况或潜在的故障状态,对每一个芯片进行严格的质量与可靠度确认,特别对产品功能与性能进行标准规范测试。

    一般集成芯片或模块供应商会提供针对自身平台优化过的功能安全的库或 SDK 来缩减客户的开发周期,并降低由于加入功能安全特性而带来的硬件性能的损失。

    6.安全性

    汽车互联可以给用户带来巨大便利,但同时也将汽车系统暴露在互联网带来的负面风险中,自动驾驶边缘平台的安全性问题也愈加突出:

    •越来越多网络化、智能化车载控制器:BCM、IMMO、PKE/RKE、TBOX、IVI、ADAS等。

    •越来越多网络化、智能化的车载传感器:TPMS、Camera、LIDAR、RADAR等。

    •越来越多输入口、接口层和代码:OBD、CAN、无线、手机、云等。

    •越来越多云端控制权、无人驾驶操控权:远程管理、频繁 OTA、远程驾驶、远程手机控制等。

    •越来越小集成化、成熟度高的车载通信:4G/5G、Wi-Fi、蓝牙、NFC、RFID等。

    (1)自动驾驶的安全层级。自动驾驶的安全可以分为3个层级,如表 5-2 所示,包括 ECU安全、车身信息系统安全和云端服务安全。

    (2)自动驾驶测试验证。SAE 在 2016 年 1 月发布的J3061推荐规程《信息物理融合系统网络安全指南》是首部针对汽车网络安全而制定的指导性文件。其配套的 J3101 号文件《路面车辆应用的硬件保护安全要求》,让设计者可以采取一些措施,为车辆提供多重保护,比如将验证密钥存储在微控制器的受保护区域中。

    所以在自动驾驶中,安全是自动驾驶技术开发的第一条。为了降低和避免实际道路测试中的风险,在实际道路测试前要做好充分的仿真、台架、封闭场地的测试验证。


    本文未经许可,不得转载

    本文摘自《边缘计算方法与工程实践》,作者张骏,英特尔资深专家,这本书内容还不错,推荐购买。

    最近京东、当当搞活动,

    非常优惠,

    两杯咖啡的钱就把书籍带回家。

    点击下方链接直接购买!

    边缘计算社区从 电子工业出版社 博文视点 争取到5本做福利,赠送给大家。

    在本文下方留言,分享您认为边缘计算的弊端或者缺点(不少于20字),挑选5个精彩留言,送价值99元的《边缘计算方法与工程实践》一本。(全国包邮,一周发货)活动时间截止到7月17日早上9:21.

    读书的人,有梦可做。边缘计算阅读周,一起做追梦人。

    再次感谢电子工业出版社 博文视点 对边缘计算社区的大力支持!

    展开全文
  • 自动驾驶是指车辆通过传感器感知周围环境,在没有人为干预的情况下,实时 改变驾驶行为,完成驾驶任务。...间接感知型方法将自动驾驶任务分为目标检测、目标跟踪、场景语义分割、相机模 型和标定、三维重建等
  • 自动驾驶与移动边缘计算

    千次阅读 2019-01-11 00:00:34
    传统网络运营商负责对传输流进行控制(比如转发和包过滤等),但在移动边缘计算中,云服务器也部署在每个基站上。因此,网络运营商也承担了为移动用户提供服务的重要责任。移动边缘计算平台通过为边缘网...
  • MATLAB-自动驾驶-场景生成

    千次阅读 2020-04-30 16:31:46
    MATLAB-自动驾驶数据标注创建驾驶场景 开始学习MATLAB自动驾驶工具箱,主要是读官方文档 数据标注 标注方法可选择,包括自动驾驶工具箱和计算机视觉工具箱。 根据数据的类型选择不同的标注工具箱: 无序且大小不一...
  • 自动驾驶场景要求(速度方面和检测速度方面) 汽车从运动到静止状态需要一个制动距离,为了安全起见,根据国际标准中制动距离的要求,一辆满载的小车在正常泊油路上以30K m/h的速度行驶,制动距离不得大于9米,若...
  • 综述 | 自动驾驶中的计算机视觉

    千次阅读 2020-01-09 18:02:00
    点上方蓝字计算机视觉联盟获取更干货在右上方···设为星标★,与你不见不散编辑:Sophia计算机视觉联盟 报道 |公众号CVLianMeng转载于 :https://ar...
  • 研究单位与企业,通过详细收集并整理当前行业现状,结合自动驾驶仿真领域 位 行业专家意见汇编而成。蓝皮书内容涵盖仿真测试的意义、测试方法和作用、搭建 技术方案、软件现状、虚拟场景数据库、数据集、示范区...
  • 日前,高通公司旗下恩智浦自动驾驶实验室主任戴维德桑托(Davide Santo)就未来自动驾驶汽车应该采用分布式计算架构还是中心式计算架构进行了论述,过本篇文章将就此展开。 引子 随着汽车自动驾驶程度的提高...
  • 美国(V2X)发展现状与反思 美国网联自动驾驶现状分析和启示 5G:狂欢终将落幕 行业正待启航 人车路网云五维协同发展5G车联网 使能千行百业,网络切片你行吗? 智能网联车载终端渗透率提升之道 5G智能网联路侧设备...
  • 空旷的场地上,自动驾驶系统感知系统模拟的虚拟场景,自动驾驶系 统根据虚拟的场景发出控制指令,再通过传感器将车辆的实轨迹反 馈到虚拟环境中,实珌真车与虚拟环境的融合,从而进行车辆操控的 验证 司机在环( Driver in...
  • 详解3D点云在自动驾驶中的应用场景

    千次阅读 2021-12-31 18:34:01
    什么是3D点云? 3D点云是将标注对象进行可视化以进行更加详细的检测和分类,从而获取维度精准的分割。在获取物体表面每个采样点的空间坐标后,得到的是一个点的集合,即为“点云...3D点云的应用场景 3D点云是一种常见
  • 1、什么是自动驾驶汽车 1.1 基本概念定义 1)自动驾驶汽车是通过搭载先进的车载传感器、控制器和数据处理器、执行机构等装置,借助车联网、5G和V2X等现代移动通信与网络技术实现交通参与物与彼此间的互换与共享,...
  • 简单来说,云计算就是将很计算机资源和服务集中起来,人们只要接入互联网,将能很轻易、方便的访问各种基于云的应用信息,省去了安装和维护的繁琐操作。 当然,个人和企业也能使用云计算中心提供的服务,或者...
  • 来源:智车科技摘要:驾驶场景数据是智能网联汽车研发与测试的基础数据资源,是评价智能网联汽车功能安全的重要“案例库”与“习题集”,是重新定义智能汽车等级的关键数据依据。驾驶...
  • 自动驾驶系统进阶与项目实战(四)自动驾驶高精度地图构建中的三维场景识别和闭环检测 闭环检测(loop-closure detection)是SLAM中非常关键的一部分,当然也是自动驾驶高精度地图(HD Map)构建的核心技术之一,...
  • 来源:智车科技2020年初,新冠疫情突发,百度、京东、美团等在各地提供无人配送、无人清扫服务。在抗击疫情的过程中,自动驾驶商业化得到了很好的实践验证。当自动驾驶技术渐渐走入现实场景,那...
  • 人工智能自动驾驶.ppt

    2020-09-25 20:40:52
    中国人工智能产业 01 人僧业定义 人工智能产业是指以人工智能关键技术为核心的,由基础支撑和应用场景 组成的,一个覆盖领域非常广阔的产业 置A 人工智能产业是一个体系 机器人智能医疗智能驾驶智 应用能家居否能安防...
  • 随着外部传感、运动规划和车辆控制等方面取得显著的成果,自动驾驶汽车的自主创新能够很好地帮助车辆在预先设定的场景下独立运行。通常,自动驾驶车辆中的系统架构由三个主要处理模块组成,参见图1作为图示[2]。...
  • 自动驾驶仿真测试的意义

    千次阅读 2020-12-11 15:53:41
    但作为新兴事物,自动驾驶汽车仍面临着大量问题需要克服,如道路测试的时间成本、各国对于自动驾驶的法律法规容忍度、极端场景及危险工况的测试安全性、各国道路交通环境及习惯不同等问题,都给自动驾驶系统研发测试...
  • 自动驾驶数据集介绍

    千次阅读 2020-12-08 13:50:05
    文章目录自动驾驶数据集介绍KITTIApolloScapeBDD100KWaymoMapillary Vistas DatasetCityscapePandaSetA2D2Oxford’s Robotic CarNusScenesH3DCaltechLyft Level5SemanticKITTIFord Multi-AV Seasonal Dataset 自动...
  • 摘要:本文中盘点了百度、阿里、腾讯、华为四家巨头的自动驾驶事迹,以及从车路协同、车联网、高精度地图等方面对四家公司进行了梳理。   今年阿里9 月云栖大会、华为10 月全联接大会、百度11 月世界大会、腾讯11...
  • 近年来,随着人工智能技术的迅速发展,传统汽车行业与信息技术结合,在汽车自动驾驶技术方面的研究取得了长足进步,业内很大公司都在此领域投入巨资进行研发,如国外的谷歌、丰田,国内的百度、比亚迪等公司都推出...
  • 许多自动驾驶汽车运动计划器都是在C或C ++中接近金属的地方实现的,或者他们利用CUDA或OpenCL等计算平台在GPU上以高度并行的方式生成计划。 使用WebGL,我们可以在浏览器中实施类似的并行计划算法,该算法可以在...
  • 需要通过车联网V2X实现车辆与道路以及交通数据的全面感知,获取比单车的内外部传感器更的信息,增强对非视距范围内环境的感知,并通过高清3D动态地图实时共享自动驾驶的位置。 2.什么是高清3D地图? 高清3D动态...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,483
精华内容 12,193
关键字:

自动驾驶多场景计算

友情链接: ASP.zip