具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,换句话说,描述的实施例根据除了这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,还可以包含其他内容,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于只清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在具备完全确定性的仿真器中,我们可以允许实验人员直接指定每一个步骤所需要的计算时间,其中具备完全确定性的仿真器,具备完全确定性的仿真器可以针对同一场景的同一输入实现精确复现。
请结合参看图1,其为本申请实施例提供的仿真方法的流程图,仿真方法包括如下步骤。
步骤S101,对所述多个计算步骤进行第一次仿真,得到第一仿真表现。其中,第一次仿真为自动驾驶车辆在实际行驶中可能遇到的场景,包括红绿灯识别、车道线识别,障碍物识别,路径规划、车辆速度、车辆加速度中的一种或几种。其中,第一仿真表现为自动驾驶车辆在仿真器中进行仿真测试并通过可视化处理展现的仿真结果,请结合参看图6,第一仿真表现可以可视化的显示出来,第一仿真表现为3。具体地,根据自动驾驶车辆在仿真测试中产生的数据,通过评分规则对仿真测试中产生的数据进行评分,得出仿真结果,再根据显示规则,将仿真结果可视化,最后得出第一次仿真表现。评分规则包括但不限于用于表示自动驾驶车辆驾驶行为安全性的安全性标准、用于表示自动驾驶车辆驾驶行为是否符合交通规则的合规性标准、用于表示乘坐自动驾驶车辆的体感舒适性的舒适度标准、用于表示是否符合预设行为的真值标准、用于表示各仿真模块生成的中间结果的阶段性状况标准等等。例如,在自动驾驶车辆行驶方向前方有行人横穿马路的场景中,如果自动驾驶车辆在距离行人5米时,才采取紧急制动措施,此时刹车距离过短,乘客乘坐不舒适,采取紧急制动会获取较低的评分。如果自动驾驶车辆是自动驾驶车辆在距离行人20米处就缓慢制动,既可以避免撞到行人,也可以避免后车追尾,同时保证了乘客的乘坐舒适度,采取缓慢制动的驾驶行为将获得高评分。
具体地,对仿真器来说,实验人员发出的仿真指令需要仿真器中多个计算步骤进行协调,仿真器才能实现相应的仿真目的,即一条仿真指令需要被拆分为多个计算步骤来分别执行。例如,当实验人员通过用户终端设备向仿真器发送自动驾驶车辆左转的指令时,可能需要经过仿真器中的定位、感知、规划、决策、控制等计算步骤才能实现使自动驾驶车辆左转的目的。此时,需要将左转的仿真指令分为获取自动驾驶车辆当前的定位信息,获取自动驾驶车辆周围环境的感知数据,根据定位信息和感知数据规划左转路线,根据左转路线控制自动驾驶车辆行驶等计算步骤。请结合参看图2,其为仿真测试的一般计算步骤示意图。例如,仿真器执行左转的仿真指令时,仿真器执行定位计算步骤1消耗50ms,其中,定位计算步骤1为获取自动驾驶车辆当前的定位信息。仿真器执行感知计算步骤2消耗100ms,其中,感知计算步骤2为获取自动驾驶车辆周围环境的感知数据。仿真器执行规划计算步骤3消耗150ms,其中,规划计算步骤3为根据定位信息和感知数据规划左转路线,左转路线为一条或者多条。仿真器执行决策计算步骤4消耗100ms,其中,决策计算步骤4为选择规划计算步骤3产生的一条或者多条左转路线中一条最优左转路线。仿真器执行控制计算步骤5消耗100ms,其中,控制计算步骤5为根据决策计算步骤4选择的最优左转路线控制自动驾驶车辆行驶。
步骤S102,获取每个所述计算步骤的原始计算时间。具体地,仿真器在执行一条仿真指令需要被拆分为多个计算步骤来分别执行,并可以获取每个计算步骤的计算消耗时间。请结合参看图2,例如,仿真器执行定位计算步骤1消耗50ms,则定位计算步骤1原始计算时间为50ms;仿真器执行感知计算步骤2消耗100ms,则感知计算步骤2的原始计算时间为100ms;仿真器执行规划计算步骤3消耗150ms,则规划计算步骤3的原始计算时间为150ms;仿真器执行决策计算步骤4消耗100ms,则决策计算步骤4的原始计算时间为100ms;仿真器执行控制计算步骤5消耗100ms,则控制计算步骤5的原始计算时间为100ms。
步骤S103,修改所述多个计算步骤中的一个或者多个计算步骤的原始计算时间,得到所述一个或者多个计算步骤的调整计算时间。具体地,实验人员在仿真器可以修改一个或者多个计算步骤的原始计算时间,得到一个或者多个计算步骤的调整计算时间,修改后的调整计算时间可以比原始计算时间长或者短。实验人员可以通过调整仿真器中计算步骤的计算资源、硬件等手段达到修改所述多个计算步骤中的一个或者多个计算步骤的原始计算时间的目的。请结合参看图2,例如,定位计算步骤1原始计算时间为50ms及规划计算步骤3原始计算时间为100ms;修改了定位计算步骤1和规划计算步骤3的原始计算时间,修改后的调整计算时间为30ms和200ms。通过增加计算资源使得定位计算步骤1的调整计算时间为30ms。而应该通过减少计算资源、使用性能差一点的硬件使得规划计算步骤3的调整计算时间为200ms。
步骤S104,对所述多个计算步骤进行第二次仿真,得到第二仿真表现。具体地,根据步骤S103得到的调整计算时间在仿真器中对多个计算步骤进行重新进行仿真测试。其中,第二次仿真为自动驾驶车辆在实际行驶中可能遇到的场景,包括红绿灯识别、车道线识别,障碍物识别,路径规划、车辆速度、车辆加速度中的一种或几种。其中,第二仿真表现为自动驾驶车辆在仿真器中进行仿真测试并通过可视化处理展现的仿真结果。具体地,第一次仿真和第二次仿真的场景数据不变。场景数据包括但不限于虚拟数据、自动驾驶车辆路测时采集的真实数据、以及虚拟数据和真实数据的结合等。其中,虚拟数据为仿真系统中虚拟场景生成的数据。
步骤S105,将所述第一仿真表现和所述第二仿真表现进行比较。例如,将仿真器执行左转仿真测试的第一仿真表现和第二仿真表现进行比较。可以将第一仿真表现和第二仿真表现通过可视化软件进行处理,可以选择用条形图、曲线图、折线图、散点图、直方图、箱线图二维颜色矩阵图、三维颜色矩阵图、饼状图、条形图一种或者多种等形式直观地进行可视化的方式输出仿真结果,得到比较图。从而更加方便快捷的了解到第一仿真表现和第二仿真表现的优劣,比较出性能更好的的仿真表现。例如,请结合参看图6,第一仿真表现为3,第二仿真表现为9。
步骤S106,当所述第二仿真表现优于所述第一仿真表现,输出第一优化建议,所述第一优化建议为是否需要对所述一个或者多个计算步骤进行研发优化,所述研发优化为硬件性能优化、算法简化改进、计算资源加快加大、或代码优化中的一种或几种措施。
具体地,当所述调整计算时间比所述原始计算时间短,且所述第二仿真表现与所述第一仿真表现的差值大于第一预设值时,输出需要对所述一个或者多个计算步骤进行研发优化的所述第一优化建议。如图8,在自动驾驶车辆行驶方向前方突然出现行人横穿马路的场景中,感知计算步骤2的原始计算时间为200ms、规划计算步骤3的原始计算时间为200ms、决策计算步骤4的原始计算时间为200ms、控制计算步骤5的原始计算时间为200ms。缩短计算时间后,感知计算步骤2的调整计算时间为100ms、规划计算步骤3的调整计算时间为100ms、决策计算步骤4的调整计算时间为50ms、控制计算步骤5的调整计算时间为50ms。这个场景中第一次仿真时,自动驾驶车辆因为反应时间长,在距离行人较近的距离采取紧急制动,虽然也可以避免撞到行人,但是刹车距离短,自动驾驶车辆前后晃动明显,乘客的乘坐体验不好,根据评分规则第一仿真表现为3。而在第二次仿真中,缩短了感知计算步骤2、规划计算步骤3、决策计算步骤4及控制计算步骤5的计算时间,自动驾驶车辆,可以在检测到行人时,快速做出反应,在较远距离采用缓慢制动,既可以避免撞到行人,也可以避免后车追尾,同时保证了乘客的乘坐舒适度,根据评分规则第二仿真表现为8。此时第二仿真表现优于第一仿真表现,且第二仿真表现与第一仿真表现的差值为5大于第一预设值3,说明该一个或者多个步骤的计算速度是痛点,需要对该一个或者多个计算步骤进行研发优化。
具体地,当所述调整计算时间比所述原始计算时间短,且所述第二仿真表现与所述第一仿真表现的差值小于第一预设值时,输出不需要对所述一个或者多个计算步骤进行研发优化的所述第一优化建议。
例如,在自动驾驶车辆红绿灯识别的仿真场景中,自动驾驶车辆需要通过定位计算步骤1获取自动驾驶车辆的当前位置,再通过感知计算步骤2获取红绿灯的图片数据,其次,通过决策计算步骤5通过自动驾驶车辆的当前位置、高清地图和红绿灯的图片数据进行识别。这个场景中第一次仿真时,决策计算步骤的原始计算时间为100ms;而在第二次仿真时,修改决策计算步骤的调整计算时间为50ms,得出第一次仿真表现为7,第二次仿真表现为8。两次仿真测试自动驾驶车辆都可以准确识别出红绿灯的状态,反应速度为毫秒级,在该场景中,对两次仿真表现的影响不大。第一次仿真表现为7,第二次仿真表现为8,第一预设值为3,两次仿真表现的差值为1小于第一预设值3,说明提升该一个或者多个计算步骤的速度,对自动驾驶车辆的性能提高不大,则不需要该一个或者多个计算步骤进行研发优化。
上述通过在仿真器缩短某一个或者多个计算步骤的计算消耗时间,比较缩短前和缩短后的仿真表现。若缩短某一个或者多个计算步骤后,第二仿真表现优于第一仿真表现,且第二仿真表现与所述第一仿真表现的差值大于第一预设值时,则说明提高了该一个或者多个计算步骤的速度,对自动驾驶车辆的性能提高有很大帮助,该一个或者多个计算步骤为自动驾驶车辆或者机器人的痛点,可以对该一个或者多个计算步骤进行研发优先。若缩短某一个或者多个计算步骤后,第二仿真表现优于第一仿真表现,且所述第二仿真表现与所述第一仿真表现的差值小于第一预设值时,则说明即使提高了该一个或者多个计算步骤的速度,对自动驾驶车辆或者机器人的整体性能没有明显提高,不值得花费研发资源在提升该一个或者多个计算步骤的速度,有助于实验人员对项目进行有效的规划。
步骤S107,当所述第二仿真表现劣于所述第一仿真表现,输出第二优化建议,第二优化建议为是否转移所述一个或者多个计算步骤的计算资源。
具体地,当所述调整计算时间比所述原始计算时间长,且所述第一仿真表现与所述第二仿真表现的差值大于第二预设值时,输出不转移所述一个或者多个计算步骤的计算资源所述第二优化建议。在仿真测试中,延长某一个或者多个计算步骤的计算时间。例如,在自动驾驶车辆行驶方向前方有障碍物时的仿真场景中,自动驾驶车辆通过定位计算步骤1、感知计算步骤2、规划计算步骤3、决策计算步骤4、控制计算步骤5等步骤完成。如图10,调整前定位计算步骤1原始计算时间为50ms、感知计算步骤2的原始计算时间为50ms、规划计算步骤3的原始计算时间为50ms、决策计算步骤4的原始计算时间为50ms、控制计算步骤5的原始计算时间为50ms,第一次仿真的总计算消耗时间为250ms。如图11,调整后感知计算步骤2的调整计算时间为100ms、规划计算步骤3的调整计算时间为100ms、决策计算步骤4的调整计算时间为100ms、控制计算步骤5的调整计算时间为100ms,第二次仿真的总计算消耗时间为450ms。这个场景中第一次仿真时,自动驾驶车辆在检测到障碍物时,反应速度快,可以在较远距离采用缓慢制动或者缓慢变道的方式,既可以避免撞到障碍物,同时保证了乘客的乘坐舒适度,根据评分规则第一次仿真为8。而在第二次仿真时,自动驾驶车辆因为延长了4个计算步骤的计算时间,导致自动驾驶车辆在检测到障碍物时,反应速度变慢,进而采取紧张制动或者紧急改道避让的方式,在紧急改道避让时,车轮压到车道实线,不符合交通规则的合规性标准,又导致乘客的乘坐体验不好,通过评分规则第二仿真表现为3。实验人员设置第二预设值为4,第一次仿真与第二仿真的差值为5大于第二预设值4,说明该一个或者多个计算步骤的速度会影响到自动驾驶车辆的性能,则不转移该一个或者多个计算步骤的计算资源。
具体地,当所述调整计算时间比所述原始计算时间长,且所述第一仿真表现与所述第二仿真表现的差值小于第二预设值时,输出转移所述一个或者多个计算步骤的计算资源的所述第二优化建议。例如,自动驾驶车辆直行仿真场景中,延长了定位计算步骤1的计算时间,第二仿真表现与所述第一仿真表现没有明显变化。其中,若第一仿真表现为8,第二仿真表现为7,则认为第二仿真表现与所述第一仿真表现的差值为1小于第二预设值4。说明该定位计算步骤1的速度变慢,对自动驾驶车辆的性能影响不大,可以将该定位计算步骤1的计算资源转移到其他计算步骤。
上述通过在仿真器延长某一个或者多个计算步骤的计算消耗时间,比较延长前和延长后的仿真表现。若延长某一个或者多个计算步骤后,第二仿真表现劣于第一仿真表现,则说明如果减少该一个或者多个计算步骤后,会降低自动驾驶车辆或者机器人的性能,不能将该一个或者多个计算步骤的计算资源转移到其他的计算步骤。若延长某一个或者多个计算步骤后,第二仿真表现与所述第一仿真表现没有明显变化,则说明该一个或者多个计算步骤的计算资源过剩,使用更少的计算资源,也不影响自动驾驶车辆或者机器人的性能,可以将计算资源转移到其他计算步骤。
上述实施例中,通过获取仿真器正常情况下的第一仿真表现,在修改一个或者多个计算步骤的计算消耗时间,获得仿真器的第二仿真表现,将第一仿真表现与第二仿真表现进行比较,可以找出需要优化的计算步骤,该需要优化的计算步骤得到优化,对整个自动驾驶车辆或者机器人的性能有很大提升。应该加大对该计算步骤的研发优化。实现了快速找到自动驾驶车辆或者机器人的痛点,需分配更多的计算资源或者更多研发力量进行提升,节省了研发人力资源和研发时间,有助于实验人员对项目进行有效的优化规划。
请结合参看图3,其为本申请实施例提供的仿真方法的第一实施例的流程图。
步骤S201,修改所述多个计算步骤中的一个或者多个计算步骤的计算时间为极限计算时间,其中,所述极限计算时间为所述一个或者多个计算步骤在提供最优硬件资源情况下的计算时间。具体地,将最优的硬件资源提供给该一个或者多个计算步骤,在最优硬件资源的条件下将该一个或者多个计算步骤的计算消耗时间降低到最短。
步骤S202,对所述一个或者多个计算步骤进行仿真,得到第三仿真表现。具体地,仿真器根据实验人员的仿真指令,进行仿真测试,得出第三仿真表现。
步骤S203,判断第三仿真表现是否大于预设表现值。具体地,实验人员会设置一个预设表现值。
步骤S204,当第三仿真表现大于预设表现值,输出不需要对所述一个或者多个计算步骤进行研究优化的所述第一优化建议。具体地,当第三仿真表现值为8时,预设表现值为7,则第三仿真表现值大于预设表现值。说明自动驾驶车辆的Ai算法能力足够,不需要进行研发优化。
上述实施例中,若在仿真器使得某一个或者多个计算步骤的计算消耗时间为极限计算时间,自动驾驶车辆或者机器人都能达到预设的仿真表现,则说明自动驾驶车辆或者机器人现有算法能力足够。不需要对该步骤进行代码优化或者算法简化改进等的一种或者多种。
请结合参看图4,其为本申请实施例提供的仿真方法的第二实施例的流程图。
步骤S301,对所述一个或者多个计算步骤的计算速度进行随机或有规律的调整。具体地,可以让一个或者多个计算步骤的计算速度的进行随机或有规律的调整。
步骤S302,对所述多个计算步骤进行多次仿真,得到多次仿真表现。具体地,每调整一个一个或者多个计算步骤的计算速度就进行一次仿真,最终得到多个仿真表现。
步骤S303,判断所述多次仿真中是否存在一个仿真表现与另一个仿真的差值大于第三预设值。具体地,通过计算出多个仿真表现相互之间的差值,与预设的第三预设值进行比较。
步骤S304,当所述多次仿真中不存在一个仿真表现与另一个仿真的差值大于第三预设值时,输出不需要对所述一个或者多个计算步骤进行研发优化的所述第一优化建议。例如,第三预设值为3,不存在一个仿真表现与另一个仿真的差值大于第三预设值3,则说明自动驾驶车辆的自动驾驶系统的稳定性很好,不需要对该一个或者多个计算步骤进行研发优化。
请参看图5,其为本申请实施例提供的仿真计算机设备的内部结构示意图。仿真计算机设备200用于仿真,仿真计算机设备200包括存储器202、以及处理器201。其中,存储器202用于存储计算机可执行程序,处理器201用于执行可执行程序以实现如上述实施例提供的仿真方法。
其中,处理器201在一些实施例中可以是一中央处理器(Central ProcessingUnit,CPU)、控制器、微控制器、微处理器或其它数据处理芯片,用于运行存储器202中存储的计算机可执行程序。具体地,处理器201执行可执行程序以实现上述仿真方法。
存储器202至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器202在一些实施例中可以是仿真计算机设备200的内部存储单元,例如仿真计算机设备200的硬盘。存储器202在另一些实施例中也可以是的外部仿真计算机设备200存储设备,例如仿真计算机设备200上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器202还可以既包括仿真计算机设备200的内部存储单元也包括外部存储设备。存储器202不仅可以用于存储安装于仿真计算机设备200的应用软件及各类数据,例如实现自动驾驶的仿真方法的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
仿真计算机设备200还包括总线203。总线203可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,仿真计算机设备200还可以包括显示组件204。显示组件204可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示组件204也可以适当的称为显示装置或显示单元,用于显示在仿真计算机设备200中处理的信息以及用于显示可视化的用户界面。
进一步地,仿真计算机设备200还可以包括通信组件205。通信组件205可选的可以包括有线通信组件和/或无线通信组件(如WI-FI通信组件、蓝牙通信组件等),通常用于在仿真计算机设备200与其它仿真计算机设备之间建立通信连接。
图5仅示出了具有部分组件以及实现图自动驾驶的仿真方法的仿真计算机设备200,本领域技术人员可以理解的是,图5示出的结构并不构成对仿真计算机设备200的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该仿真计算机设备可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
请参看图7,其为本申请实施例提供的计算机可读的存储介质的示意图。存储介质300用于存储仿真程序。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台仿真计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、流动硬盘、只读存储介质(ROM,Read-OnlyMemory)、随机存取存储介质(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。