发明内容
有鉴于此,本发明实施例提供一种自动驾驶算法的评估方法和系统,能够根据自动行驶设备的实际运行状况对自动驾驶算法进行针对性地评估,并对自动行驶设备在实际路测过程中的异常行为进行快速分析,查找自动驾驶算法在各个层面的问题,快速定位问题,帮助算法进行快速迭代与优化。
为实现上述目的,根据本发明实施例的一个方面,提供了一种自动驾驶算法的评估方法。
一种自动驾驶算法的评估方法,包括:接收对自动驾驶算法的评估请求,所述评估请求用于请求评估所述自动驾驶算法的一个或多个算法模块;通过消息订阅的方式从消息分发中心获得所述一个或多个算法模块的最佳输入数据;在自动驾驶仿真场景下,将各算法模块的所述最佳输入数据分别输入对应的算法模块,执行所述各算法模块以得到所述各算法模块的输出结果;根据所述自动驾驶仿真场景下的、与所述各算法模块对应的评估参数,分别对所述各算法模块的输出结果进行评估。
可选地,所述消息分发中心中所述算法模块的最佳输入数据为如下二者中的一种:在所述自动驾驶仿真场景下,从该算法模块所依赖的其他算法模块的输出结果中选出的最佳输出结果;对与该算法模块所依赖的其他算法模块所对应的场景目标进行数据标注而得到的标注结果,所述场景目标为与所述自动驾驶仿真场景中的目标相对应的实际场景目标。
可选地,所述自动驾驶算法通过如下方式建立:通过可视化界面接收输入的算法注册信息,利用所述算法注册信息查找注册的算法模块,根据查找到的算法模块建立所述自动驾驶算法。
可选地,所述自动驾驶仿真场景为分布式仿真场景,且所述自动驾驶仿真场景利用预设的动态目标库、静态目标库和场景库构建,通过所述可视化界面显示所述自动驾驶仿真场景。
可选地,执行所述各算法模块以得到所述各算法模块的输出结果的步骤之后,包括:将所述输出结果发送到所述消息分发中心,通过所述消息分发中心保存所述输出结果,并转发到所述可视化界面进行显示。
可选地,根据所述自动驾驶仿真场景下的、与所述各算法模块对应的评估参数,分别对所述各算法模块的输出结果进行评估的步骤,包括:将所述各算法模块的输出结果分别与所述自动驾驶仿真场景下的、与所述各算法模块对应的评估参数的最佳参数值进行比较,从而评估所述各算法模块是否存在异常;其中,所述自动驾驶仿真场景下的、与一算法模块对应的评估参数的最佳参数值为预先设定的数值,或者,为对与该算法模块所对应的场景目标进行数据标注而得到的标注值,所述场景目标为与所述自动驾驶仿真场景中的目标相对应的实际场景目标。
根据本发明实施例的另一方面,提供了一种自动驾驶算法的评估系统。
一种自动驾驶算法的评估系统,包括:评估请求接收模块,用于接收对自动驾驶算法的评估请求,所述评估请求用于请求评估所述自动驾驶算法的一个或多个算法模块;输入数据获取模块,用于通过消息订阅的方式从消息分发中心获得所述一个或多个算法模块的最佳输入数据;算法执行模块,用于在自动驾驶仿真场景下,将各算法模块的所述最佳输入数据分别输入对应的算法模块,执行所述各算法模块以得到所述各算法模块的输出结果;算法评估模块,用于根据所述自动驾驶仿真场景下的、与所述各算法模块对应的评估参数,分别对所述各算法模块的输出结果进行评估。
可选地,输入数据提供模块,用于通过所述消息分发中心提供如下二者之一的所述算法模块的最佳输入数据:在所述自动驾驶仿真场景下,从该算法模块所依赖的其他算法模块的输出结果中选出的最佳输出结果;对与该算法模块所依赖的其他算法模块所对应的场景目标进行数据标注而得到的标注结果,所述场景目标为与所述自动驾驶仿真场景中的目标相对应的实际场景目标。
可选地,还包括算法建立模块,用于:通过可视化界面接收输入的算法注册信息,利用所述算法注册信息查找注册的算法模块,根据查找到的算法模块建立所述自动驾驶算法。
可选地,还包括仿真场景构建模块和显示模块,其中,所述仿真场景构建模块用于利用预设的动态目标库、静态目标库和场景库构建所述自动驾驶仿真场景,所述自动驾驶仿真场景为分布式仿真场景;所述显示模块用于通过所述可视化界面显示所述自动驾驶仿真场景。
可选地,还包括算法结果输出模块,用于:将所述输出结果发送到所述消息分发中心,通过所述消息分发中心保存所述输出结果,并转发到所述显示模块,以通过所述可视化界面进行显示。
可选地,所述算法评估模块还用于:将所述各算法模块的输出结果分别与所述自动驾驶仿真场景下的、与所述各算法模块对应的评估参数的最佳参数值进行比较,从而评估所述各算法模块是否存在异常;其中,所述自动驾驶仿真场景下的、与一算法模块对应的评估参数的最佳参数值为预先设定的数值,或者,为对与该算法模块所对应的场景目标进行数据标注而得到的标注值,所述场景目标为与所述自动驾驶仿真场景中的目标相对应的实际场景目标。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例的自动驾驶算法的评估方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的自动驾驶算法的评估方法。
上述发明中的一个实施例具有如下优点或有益效果:接收对自动驾驶算法的评估请求,评估请求用于请求评估自动驾驶算法的一个或多个算法模块;通过消息订阅的方式从消息分发中心获得所述一个或多个算法模块的最佳输入数据;在自动驾驶仿真场景下,将各算法模块的最佳输入数据分别输入对应的算法模块,执行各算法模块以得到各算法模块的输出结果;根据自动驾驶仿真场景下的、与各算法模块对应的评估参数,分别对各算法模块的输出结果进行评估。能够根据自动行驶设备的实际运行状况对自动驾驶算法进行针对性地评估,并对自动行驶设备在实际路测过程中的异常行为进行快速分析,查找自动驾驶算法在各个层面的问题,快速定位问题,帮助算法进行快速迭代与优化。此外,还可以实现对不同测试场景下算法的优劣进行评价,以选出最优的算法组合。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
图1是根据本发明第一实施例的自动驾驶算法的评估方法的主要步骤示意图。
如图1所示,本发明实施例的自动驾驶算法的评估方法主要包括如下的步骤S101至步骤S104。
步骤S101:接收对自动驾驶算法的评估请求,评估请求用于请求评估自动驾驶算法的一个或多个算法模块。
自动驾驶算法通过如下方式建立:通过可视化界面接收输入的算法注册信息,利用算法注册信息查找注册的算法模块,根据查找到的算法模块建立自动驾驶算法。
步骤S102:通过消息订阅的方式从消息分发中心获得自动驾驶算法的一个或多个算法模块的最佳输入数据。
其中当算法模块为多个时,可以通过分布式部署在仿真服务器端的多个仿真模拟服务,分别从消息分发中心获得各自执行的算法模块的最佳输入数据。算法模块在仿真模拟服务中执行。
消息分发中心中算法模块的最佳输入数据为如下二者中的一种:在自动驾驶仿真场景下,从该算法模块所依赖的其他算法模块的输出结果中选出的最佳输出结果;对与该算法模块所依赖的其他算法模块所对应的场景目标进行数据标注而得到的标注结果,场景目标为与自动驾驶仿真场景中的目标相对应的实际场景目标。一个算法模块(第一算法模块)依赖另一算法模块(第二算法模块)是指如下情形:第二算法模块的输出为第一算法模块的输入。
自动驾驶仿真场景为分布式仿真场景,自动驾驶仿真场景可以利用预设的动态目标库、静态目标库和场景库构建,通过可视化界面可以显示自动驾驶仿真场景。
步骤S103:在自动驾驶仿真场景下,将各算法模块的最佳输入数据分别输入对应的算法模块,执行各算法模块以得到各算法模块的输出结果。
各仿真模拟服务分别执行各自的算法模块,以得到各算法模块的输出结果,然后分别将各算法模块的输出结果发布到消息分发中心,消息分发中心保存各输出结果,并转发到可视化界面进行显示。
不同算法模块的自动驾驶仿真场景可以不同。
步骤S104:根据自动驾驶仿真场景下的、与各算法模块对应的评估参数,分别对各算法模块的输出结果进行评估。
具体地,将各算法模块的输出结果分别与自动驾驶仿真场景下的、与各算法模块对应的评估参数的最佳参数值进行比较,从而评估各算法模块是否存在异常;其中,
自动驾驶仿真场景下的、与一算法模块对应的评估参数的最佳参数值为预先设定的数值,或者,为对与该算法模块所对应的场景目标进行数据标注而得到的标注值,场景目标为与自动驾驶仿真场景中的目标相对应的实际场景目标。例如,对于场景感知模块,评估参数的最佳参数值为实际场景目标的标注值;对于规划控制模块,评估参数的最佳参数值为预先设定的数值,例如,规划控制模块运行中障碍物碰撞次数为零最佳,即该评估参数的最佳参数值为零。
图2是根据本发明第二实施例的自动驾驶算法仿真平台的构成示意图。
如图2所示,本发明实施例的自动驾驶算法仿真平台包含仿真客户端(简称客户端)与仿真服务器端(简称服务器端)。客户端包括高精度地图、三维场景的构建与显示、点云的标注、数据可视化、仿真模拟事件回放等功能,通过客户端可以利用多种可视化方法对算法执行结果进行显示,同时客户端也可以对仿真任务进行干预,实现对问题的快速定位。服务器端可以基于分布式计算平台对仿真任务进行执行,并能够基于算法分析服务对仿真模拟的执行结果进行自动评估。利用本发明实施例的自动驾驶算法仿真平台,可以实现对自动驾驶算法的一个或多个算法模块的快速综合评估,并且在需要定位自动驾驶算法的整个算法流程链(其中包括一个自动驾驶算法的所有算法模块)中的问题时,可以利用本仿真平台对自动驾驶算法的逐个算法模块进行评估,从而定位出异常的算法模块。以下详细介绍该仿真平台。
本发明实施例的自动驾驶算法可以为机器人、AGV(自动导引运输车)等各自自动行驶设备的自动驾驶算法。以下以智能机器人的自动驾驶算法为例进行说明。
自动驾驶算法仿真平台中,仿真客户端可以基于场景库与目标库(其中动态目标库包括动态目标如行人、车辆等,静态目标库包括静态目标如建筑、道路、绿色植物等)快速进行自动驾驶仿真的三维场景(即自动驾驶仿真场景,或简称三维场景)的构建。
仿真客户端同时包括高精地图显示、三维场景显示、视频流显示、数据可视化等功能,这些功能主要用于显示实际的或模拟的自动驾驶的三维场景,以及自动驾驶算法各算法模块的计算结果(或称输出结果),并对算法计算结果进行分析和评估,各算法模块的计算结果和对计算结果的评估结果可以通过可视化界面显示,通过可视化界面可使数据可视化,以及显示三维场景、视频流、高精地图等。
另外,仿真客户端也包含目标标注、三维点云生成的功能,其可以基于逼真的三维仿真场景生成对应的激光点云数据,并在三维场景中对场景目标预先进行数据标注,然后将激光点云数据传递给点云处理算法,由于在三维场景中已经对场景目标进行了数据标注,从而将点云处理算法的实际结果与上述数据标注的标注结果进行比对,便可定位点云处理算法的问题所在,以便于对点云处理算法进行优化和效果验证。其中,点云处理算法为场景感知算法的一种,场景感知算法是自动驾驶算法的一个算法模块。
仿真客户端还可以将仿真服务模拟的结果进行回放,并可以控制播放的速度与进度。
仿真服务器端主要包括任务调度服务(或称任务调度中心)、算法注册服务、消息分发中心、算法分析服务、仿真模拟服务。其中,仿真模拟服务可以为多个,且采用分布式部署方式。
仿真服务器接收仿真客户端的仿真任务的请求,将仿真任务分配到指定的仿真模拟服务执行,以运行自动驾驶算法的算法模块,具体所运行的算法模块在仿真任务中指定。仿真模拟服务在仿真模拟过程中产生的消息通过消息分发中心进行转发,该消息主要是运行算法模块得到的输出结果。仿真模拟服务中的算法必须是经过算法注册服务注册过的,经过注册的算法模块有各自的算法注册信息,用户在仿真客户端可以通过可视化界面接收输入的算法注册信息,仿真客户端利用算法注册信息可以在算法注册服务中查找注册的算法模块,根据查找到的算法模块建立自动驾驶算法,从而使得用户可以方便地在客户端设置算法流程链,并基于该算法流程链新建仿真任务。
仿真服务器端中的算法分析服务,基于仿真任务的执行结果进行算法的效果自动评估,即根据自动驾驶仿真场景下的、与各算法模块对应的评估参数,分别对各算法模块的输出结果进行评估。
基于上述的设计,利用本发明实施例的智能机器人仿真平台能够对自动驾驶算法进行有效地算法评估,对机器人在实际路测过程中出现的异常行为进行快速分析,查找自动驾驶算法在场景感知、路径规划等各个算法模块层面的问题,并推动相关算法模块的优化。
图3是根据本发明第三实施例的自动驾驶算法的运行流程示意图。
智能机器人进行自主导航的过程非常复杂,其自动驾驶的主要流程如下:首先,智能机器人需要根据各类传感器(包括摄像头与激光雷达等)获取的数据,进行多源数据融合与场景感知,其中包括多种算法,包括场景分割、车道线识别、交通标志识别、运动目标识别与运动估计等;然后根据场景感知的结果结合定位数据、高精度地图数据以及地图导航结果进行运动规划;最后根据运动规划结果驱动机器人的动力系统与底盘控制系统控制机器人的运动方向、速度与姿态。因此,在智能机器人的自动驾驶流程中,整个自动驾驶算法的每个算法为一个算法模块,当机器人在实际路测过程中在出现异常行为,需要定位具体是哪个算法模块出现了异常,而现有技术无法通过模拟来解决该问题,另外现有技术也无法针对性的对自动驾驶算法的某一个或多个算法模块进行评估。
为了更有效地分析和定位智能机器人在运行过程中的问题,本发明设计了一套基于ROS(Robot Operating System,机器人操作系统)的消息通讯服务,并基于该通讯服务实现对智能机器人在运行过程中产生的数据(包括环境感知、决策规划结果)进行实时分析、事后回放,并基于仿真环境进行受控模拟测试,分析智能机器人在环境感知、路径规划、行为决策等各个方面算法的运行效果。通过在仿真环境中显示智能机器人的定位信息、运动轨迹、行为意图,并叠加高精度地图以及实时算法效果展示,可以更加直观地综合显示智能机器人的各类信息(包括运行各算法模块的输出结果),从而快速判断机器人运行状态,分析运行过程中产生问题的原因。
本发明实施例的消息通讯服务基于消息分发中心实现,基于该消息通讯服务,自动驾驶算法的各算法模块被有机地串联起来,各算法模块的输出结果可以被订阅并被消息分发中心转发。通过限定各个环节算法模块的输入和观测输出,并通过在仿真场景的展示,可以判断出现问题的算法模块,帮助算法研究人员快速定位问题。本发明实施例的自动驾驶算法的运行流程如图3所示,各种算法之间通过消息分发中心进行通讯,一般而言一个算法模块的输入可能是一个或多个其他算法模块的输出。图3中以算法A、算法B、算法C代表自动驾驶算法的算法模块进行说明,其中实线箭头为消息传递的数据链,虚线箭头为逻辑链,自动驾驶算法实际的算法流程链更加复杂,图3中各算法(算法模块)的输出结果都属于消息。
执行各算法模块以得到各算法模块的输出结果之后,将该输出结果发布到消息分发中心,消息分发中心保存各输出结果,并转发到仿真客户端,仿真客户端可以接收各算法模块的输出结果,也可以实时地在可视化界面进行显示各输出结果。
如果用户需要验证某个算法模块是否有问题,可以通过限定该算法模块的输入,并观测该算法模块的输出结果来快速定位问题。例如,假设算法A为场景感知算法模块,算法B为其下游的决策控制算法模块,如果用户需要评估决策控制算法模块是否存在异常,为了排除场景感知算法模块的影响,可以将用户认为效果最佳的场景感知结果限定为决策控制算法模块的输入,并观测决策控制算法模块的输出结果是否合理,从而评估决策控制算法模块的效果。其中,效果最佳的场景感知结果可以视为决策控制算法模块的最佳输入数据,其可以由运行决策控制算法模块的仿真模拟服务通过消息订阅的方式从消息分发中心获得。
最佳输入数据可以是:在当前使用的自动驾驶仿真场景下,从场景感知算法模块的输出结果中选出的最佳输出结果,具体选择哪一输出结果为最佳输出结果需要由用户人为进行选择,因此,通过这种方式得到的最佳输入数据是相对理想的最佳输入。其中,场景感知算法模块将输出结果(场景感知结果)发送到消息分发中心进行存储,用户可以通过仿真客户端从消息分发中心中选择认为效果最佳的场景感知结果,作为决策控制算法模块的最佳输入数据。
或者,最佳输入数据可以是:对场景感知算法模块所对应的场景目标进行数据标注而得到的标注结果,场景目标为与当前使用的自动驾驶仿真场景中的目标相对应的实际场景目标,例如用户对行人、机动车等场景目标进行标注,然后将标注结果作为场景感知算法模块的输出,传递给决策控制算法模块,用于判断决策控制算法模块是否有问题。由于标注的结果是场景感知的真值,因此通过这种方式得到的最佳输入数据是理想的最佳输入。其中,数据标注可以在仿真客户端实现,例如利用图2的仿真平台的点云显示与目标标注功能实现,然后仿真客户端将标注结果发送到消息分发中心,以便决策控制算法模块使用。
本发明实施例基于消息通讯服务来实现各个算法模块之间的通讯,并通过引入消息分发中心来实现外部系统(例如仿真客户端)对整个算法执行链的部分环节的输入输出进行控制,从而实现对问题的快速定位。
在自动驾驶算法评估的实施过程中,首先需要对自动驾驶算法的各算法模块进行单独评估,即设置单个算法模块的输入,运行该算法模块,然后分析该算法模块的输出结果,根据预先设定的评估参数,对算法模块在各个测试场景数据的运行结果进行评估。
以对车辆的自动行驶算法中的规划控制算法模块的评估为例,规划控制算法模块的输入数据包括全局导航路径、高精度矢量地图,在给定车辆的位置和起始方向后,规划控制算法模块即可以规划出符合车辆动力学特性的运动规划路径。如果需要评估规划控制算法模块躲避障碍物的效果,还需要提供场景感知模块识别出的障碍物位置与运动方向速度,并且根据预先设定的评估参数,例如障碍物碰撞次数、车辆行驶平稳度等进行评估。
图4是根据本发明第四实施例的规划控制算法模块的评估流程示意图,其中,测试场景为模拟测试场景,是车辆行驶的仿真场景,在获取全局规划路径并设定车辆初始位置和方向之后,启动并运行该规划控制算法模块,在车辆行驶过程中,规划控制算法模块需要判断是否需要重新规划路径(例如当车辆前方出现障碍物等情况下需要重新规划),在需要重新规划的情况下,规划控制算法模块判断是否需要添加障碍物,若不需要添加障碍物,则输出路径规划结果;若需要添加障碍物,则利用本发明实施例的自动驾驶仿真平台的可视化界面,在动态目标库或静态目标库中相应地选择静态障碍物或动态障碍物,并添加到仿真场景中,将添加的障碍物在测试场景下的场景感知的标注结果作为规划控制算法模块的输入,进行车辆规划控制,并得到路径规划结果,当规划控制算法模块运行结束后,对算法执行结果(即规划控制算法模块的输出结果)进行评估,例如根据障碍物碰撞次数是否为零(最佳参数值为零,表示未发生触碰),评估规划控制算法模块的避障效果是否异常。
对算法流程链上的一个算法模块执行单独评估,可以对自动驾驶算法的个别算法模块进行针对性评估,另外,可以通过分布式部署的服务分别对自动驾驶算法的多个算法模块分别进行评估,从而实现对自动驾驶算法的多个算法模块的针对性评估。除此之外,对自动驾驶算法的整个算法流程链上的各算法模块逐一执行单独评估,还可以定位出算法流程链中出现问题的算法模块。
本发明实施例还可以对自动驾驶算法的整个算法流程链上的各算法模块进行整体评估。
图5是根据本发明第五实施例的自动驾驶算法流程链的整体评估流程示意图。对于算法流程链的整体评估,其流程与单个算法模块的单独评估类似,首先需要选择模拟测试场景(即图5中的测试场景),获取全局规划路径,然后设置车辆的起点和初始方向,然后启动自动驾驶算法仿真程序,以按照算法流程链逐一执行自动驾驶算法的各算法模块(包括定位、场景感知、规划控制等各个算法模块),其中,每个算法模块的输入为其依赖的上游算法模块的输出。
在运行自动驾驶算法仿真程序之前,需要给场景感知算法模块传入模拟的传感器数据,例如激光雷达数据、摄像头图片、超声波雷达等,场景感知算法模块会根据输入的传感器数据进行目标的检测跟踪、红绿灯识别、车道线识别等,并将识别的结果发布到消息分发中心。各算法模块根据需要去订阅消息分发中心中保存的算法模块输出结果,将获得的输出结果作为输入以执行算法模块本身,然后将各自的输出结果发布到消息分发中心,以供其他算法模块使用。在整个算法链路成功执行后,模拟的车辆会根据规划控制算法模块输出的规划路径行驶。在整个自动驾驶算法仿真模拟任务执行结束后,仿真服务器端的算法分析服务基于设定的评估参数,根据仿真任务执行过程中输出的日志信息,对仿真任务的执行结果进行评估。
通过整体评估,可以将各个算法模块组合而进行各种场景的仿真测试,根据测试结果,对不同测试场景下算法的优劣做评价,然后选出最优的算法组合,例如从多个定位模块、多个场景感知算法模块、多个规划控制算法模块中,选出具体哪组算法模块组成的自动驾驶算法的算法流程链是最优的。
图6是根据本发明第六实施例的自动驾驶算法的评估系统的主要模块示意图。
本发明第六实施例的自动驾驶算法的评估系统600主要包括:评估请求接收模块601、输入数据获取模块602、算法执行模块603、算法评估模块604。
评估请求接收模块601,用于接收对自动驾驶算法的评估请求,评估请求用于请求评估自动驾驶算法的一个或多个算法模块。
输入数据获取模块602,用于通过消息订阅的方式从消息分发中心获得一个或多个算法模块的最佳输入数据。
算法执行模块603,用于在自动驾驶仿真场景下,将各算法模块的最佳输入数据分别输入对应的算法模块,执行各算法模块以得到各算法模块的输出结果。
算法评估模块604,用于根据自动驾驶仿真场景下的、与各算法模块对应的评估参数,分别对各算法模块的输出结果进行评估。
自动驾驶算法的评估系统600还可以包括输入数据提供模块,用于通过消息分发中心提供如下二者之一的算法模块最佳输入数据:
在自动驾驶仿真场景下,从该算法模块所依赖的其他算法模块的输出结果中选出的最佳输出结果;
对与该算法模块所依赖的其他算法模块所对应的场景目标进行数据标注而得到的标注结果,场景目标为与所述自动驾驶仿真场景中的目标相对应的实际场景目标。
自动驾驶算法的评估系统600还可以包括算法建立模块,用于:通过可视化界面接收输入的算法注册信息,利用算法注册信息查找注册的算法模块,根据查找到的算法模块建立自动驾驶算法。
自动驾驶算法的评估系统600还可以包括仿真场景构建模块和显示模块,其中,仿真场景构建模块用于利用预设的动态目标库、静态目标库和场景库构建自动驾驶仿真场景,自动驾驶仿真场景为分布式仿真场景;显示模块用于通过可视化界面显示自动驾驶仿真场景。
自动驾驶算法的评估系统600还可以包括算法结果输出模块,用于:将算法模块的输出结果发送到消息分发中心,通过消息分发中心保存该输出结果,并将输出结果转发到显示模块,以通过可视化界面进行显示。
算法评估模块604具体可以用于:将各算法模块的输出结果分别与自动驾驶仿真场景下的、与各算法模块对应的评估参数的最佳参数值进行比较,从而评估各算法模块是否存在异常;其中,自动驾驶仿真场景下的、与一算法模块对应的评估参数的最佳参数值为预先设定的数值,或者,为对与该算法模块所对应的场景目标进行数据标注而得到的标注值,场景目标为与自动驾驶仿真场景中的目标相对应的实际场景目标。
另外,在本发明实施例中所述自动驾驶算法的评估系统的具体实施内容,在上面所述自动驾驶算法的评估方法中已经详细说明了,故在此重复内容不再说明。
图7示出了可以应用本发明实施例的自动驾驶算法的评估方法或自动驾驶算法的评估系统的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的自动驾驶算法的评估方法一般由服务器705执行,相应地,自动驾驶算法的评估系统一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统800的结构示意图。图8示出的终端设备或服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括评估请求接收模块、输入数据获取模块、算法执行模块、算法评估模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,评估请求接收模块还可以被描述为“用于接收对自动驾驶算法的评估请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收对自动驾驶算法的评估请求,所述评估请求用于请求评估所述自动驾驶算法的一个或多个算法模块;通过消息订阅的方式从消息分发中心获得所述一个或多个算法模块的最佳输入数据;在自动驾驶仿真场景下,将各算法模块的所述最佳输入数据分别输入对应的算法模块,执行所述各算法模块以得到所述各算法模块的输出结果;根据所述自动驾驶仿真场景下的、与所述各算法模块对应的评估参数,分别对所述各算法模块的输出结果进行评估。
根据本发明实施例的技术方案,接收对自动驾驶算法的评估请求,评估请求用于请求评估自动驾驶算法的一个或多个算法模块;通过消息订阅的方式从消息分发中心获得所述一个或多个算法模块的最佳输入数据;在自动驾驶仿真场景下,将各算法模块的最佳输入数据分别输入对应的算法模块,执行各算法模块以得到各算法模块的输出结果;根据自动驾驶仿真场景下的、与各算法模块对应的评估参数,分别对各算法模块的输出结果进行评估。能够根据自动行驶设备的实际运行状况对自动驾驶算法进行针对性地评估,并对自动行驶设备在实际路测过程中的异常行为进行快速分析,查找自动驾驶算法在各个层面的问题,快速定位问题,帮助算法进行快速迭代与优化。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。