对抗场景的迭代生成

文档序号:24793817发布日期:2021-04-23 16:54阅读:189来源:国知局
对抗场景的迭代生成
对抗场景的迭代生成
1.本申请技术领域
2.本申请涉及用于生成自动驾驶智能体的场景的系统和方法。


背景技术:

3.自动驾驶是近年来备受关注的领域。自动驾驶车辆可以使用不同的传感器来感测其周围环境和车辆运行参数。自动驾驶车辆还可以包括自动驾驶智能体,用于处理感测的环境和车辆运行参数,以确定车辆的状态;根据车辆的状态、自动驾驶智能体的学习策略和目标对象选择动作;将选择的动作输出至车辆控制器。车辆控制器确定与选择动作对应的控制命令,并将控制命令输出至机电系统。机电系统负责执行控制命令,以实现目标对象。当自动驾驶车辆在真实世界环境中使用时,自动驾驶智能体在执行动作时选择使自动驾驶车辆以安全可靠方式操作的动作至关重要,因为不以安全可靠方式操作可能导致致命事故。因此,自动驾驶智能体需要在各种环境条件(白天、夜间、雨天、雪天等)下以不同场景(高速公路驾驶、低交通量城市区域驾驶等)进行测试。然而,生成一组可靠的评估场景,即不会导致自动驾驶智能体不能运行的评估场景,并不是一个简单的任务。
4.目前,主要通过两个方向生成自动驾驶智能体的评估场景。一种是人工定义具有不同难度的场景。例如,晴天在低交通量高速公路上驾驶可为一种轻松场景,而雨天在拥挤的城市区域驾驶可为一种困难场景。另一种是使用生成模型来生成具有不同难度的模拟场景。例如,生成模型可以适用于生成依赖于高维数据(如图像和点云)的场景。生成模型可用于生成各种评估和训练场景。
5.然而,即使使用当前的生成模型,也很难生成可用于适当地测试自动车辆智能体的对抗场景。
6.因此,需要一种用于生成自动驾驶智能体的对抗场景的系统和方法。


技术实现要素:

7.本文描述了一种用于生成评估自动驾驶智能体的对抗场景的系统和方法。在所描述的示例中,对抗场景的生成基于自动驾驶智能体在先前对抗场景下的历史性能。在一个示例性方面中,一种用于生成对抗场景和训练自动驾驶智能体的方法和系统,使用场景来提高自动驾驶智能体的性能;逐步修改定义所述场景的已选参数,直至所述自动驾驶智能体不能在修改后参数所定义的场景中进行满足条件的操作;然后使用所述修改后参数所定义的场景来改进所述自动驾驶智能体。
8.在一些方面中,本申请描述一种用于使用一个或多个参数集训练自动驾驶车辆的自动驾驶智能体的方法,其中每个参数集定义了所述自动驾驶车辆的相应驾驶场景。所述方法包括:通过修改所述参数集中一个参数集的一个或多个参数而生成新的参数集来定义新的驾驶场景,并在所述新的驾驶场景下对所述自动驾驶智能体的性能进行评估;重复所述生成和评估操作,直到所述自动驾驶智能体不能满足所述新的驾驶场景的预定义性能阈值为止,其中修改所述一个或多个参数的每个实例是基于预先评估的所述自动驾驶智能体
的性能;使用包括所述新的参数集的至少一个参数集来训练所述自动驾驶智能体以更新所述自动驾驶智能体的学习策略。
9.在上文任一项中,所述一个或多个参数集可以存储在数据库中。所述方法可包括:在所述重复操作后,将包括一个或多个修改后参数的所述新的参数集存储在所述数据库中。
10.在上文任一项中,在生成所述新的参数集之前,使用所述一个或多个参数集的样本对所述自动驾驶智能体进行预训练。
11.在上文任一项中,所述自动驾驶智能体可使用机器学习,所述至少一个参数集用作训练数据集,用于训练所述自动驾驶智能体。
12.在上文任一项中,修改所述一个或多个参数可包括:根据一个或多个预定义约束条件修改所述一个或多个参数。
13.在上文任一项中,使用预定义规则或约束性优化算法应用所述一个或多个约束条件中的至少一个。
14.在上文任一项中,修改所述一个或多个参数可以包括:确定表示给定参数的给定变化如何影响所述自动驾驶智能体性能的梯度;根据所述梯度,按照预计会向所述自动驾驶智能体发起挑战的方向修改所述给定参数。
15.在上文任一项中,修改所述一个或多个参数可以包括:使用优化算法修改至少一个参数向所述自动驾驶智能体发起挑战。
16.在一些方面中,本申请描述了一种处理单元,包括:处理器;存储器,耦合到所述处理器,所述存储器存储自动驾驶车辆的自动驾驶智能体的机器可执行指令,所述指令在由所述处理单元执行时使所述处理单元执行以下操作:修改定义了所述自动驾驶车辆的相应驾驶场景的参数集中的一个或多个参数而生成新的参数集来定义所述自动驾驶车辆的新的驾驶场景,并在所述新的驾驶场景下对所述自动驾驶智能体的性能进行评估;重复所述生成和评估操作,直到所述自动驾驶智能体不能满足所述新的驾驶场景的预定义性能阈值为止,其中修改所述一个或多个参数的每个实例是基于预先评估的所述自动驾驶智能体的性能;使用包括所述新的参数集的至少一个参数集来训练所述自动驾驶智能体以学习所述自动驾驶智能体的策略。
17.在上文任一项中,所述一个或多个参数集可以存储在数据库中。所述指令还可以使所述处理单元:在所述重复操作后,将包括一个或多个修改后参数的所述新的参数集存储在所述数据库中。
18.在上文任一项中,在生成所述新的参数集之前,使用所述一个或多个参数集的样本对所述自动驾驶智能体进行预训练。
19.在上文任一项中,所述自动驾驶智能体可使用机器学习,所述至少一个参数集可以用作训练数据集,用于训练所述自动驾驶智能体。
20.在上文任一项中,所述指令还可使所述处理单元通过以下方式修改所述一个或多个参数:根据一个或多个预定义约束条件修改所述一个或多个参数。
21.在上文任一项中,使用预定义规则或约束性优化算法应用所述一个或多个约束条件中的至少一个。
22.在上文任一项中,所述指令还可使所述处理单元通过以下方式修改所述一个或多
个参数:确定表示给定参数的给定变化如何影响所述自动驾驶智能体性能的梯度;根据所述梯度,按照预计会向所述自动驾驶智能体发起挑战的方向修改所述给定参数。
23.在上文任一项中,所述指令还可使所述处理单元通过以下方式修改所述一个或多个参数:使用优化算法修改至少一个参数向所述自动驾驶智能体发起挑战。
24.在上文任一项中,所述处理单元可以在所述自动驾驶车辆中实现,所述指令还可使所述处理单元实现所述自动驾驶车辆中的所述自动驾驶智能体。
附图说明
25.现在将通过示例参考示出本申请的示例实施例的附图,其中:
26.图1是示例性自动驾驶车辆的一些组件的框图;
27.图2是可用于实现智能体或系统的处理单元的一些组件的框图;
28.图3是示例性实施例提供的场景生成系统的框图;
29.图4是示例性实施例提供的表示场景生成方法的流程图;
30.图5是图3系统的场景生成器的场景生成函数的伪代码表示;
31.图6是场景的图形化规划表示;
32.图7是图3系统的场景生成器的训练函数和评估函数的伪代码表示;
33.图8是图3系统的场景生成器的对抗场景生成函数的伪代码表示;
34.图9是基于图6场景的另一场景的图形化规划表示。
35.在不同的附图中可能使用了相似的附图标记来表示相似的组件。
具体实施方式
36.本申请的一些示例以自动驾驶车辆为例进行描述。尽管本文描述的示例可以指自动驾驶车辆等汽车,但本申请可以在其它形式的自动驾驶或半自动驾驶车辆中实现,包括电车、地铁、卡车、公共汽车、水面和水下航行器和船只、飞机、无人机(也称为无人飞行载具(unmanned aerial vehicle,uav))、仓储设备、制造设施设备、施工设备、农用设备、吸尘器和剪草机等自动服务机器人,以及其它机器人设备。自动驾驶车辆可以包括不载客车辆和载客车辆。
37.图1是示例性自动驾驶车辆100的一些组件的框图;尽管车辆100被描述为自动的,但可以在全自动、半自动或完全用户控制模式下操作。在本申请中,在汽车的实施例中描述车辆100,然而,如上所述,本申请可以在其它车辆中实现。
38.例如,车辆100包括传感器系统110、自动驾驶智能体(autonomous driving agent,ada)105、规划系统130、车辆控制系统140和机电系统150。车辆100也可酌情包括其它系统和组件。例如,车辆的系统及组件,包括传感器系统110、自动驾驶智能体105、规划系统130、车辆控制系统140和机电系统150,可以通过有线或无线通信相互通信。在本示例中,ada 105、规划系统130和车辆控制系统140是不同的软件系统,可以在一个或多个芯片(例如,专用集成电路(application

specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fgpa)和/或其它类型的芯片)上实现。例如,ada 105、规划系统130和车辆控制系统140可以使用一个芯片、两个芯片或三个不同的芯片(使用相同或不同类型的芯片)来实现。图1示出了从传感器系统110到规划系统130和ada 105、
从规划系统130到ada105、从ada 105到车辆控制系统140、从车辆控制系统140到机电系统150(在下文进一步详细讨论)的示例性数据流(箭头所示)。然而,应理解,可以在系统105、110、130、140、150之间以各种不同方式发送数据,并且可以在系统105、110、130、140、150之间进行双向数据通信。
39.传感器系统110包括各种感测单元,用于收集关于车辆100和车辆100运行环境的信息,以供ada 105使用。ada 105从车辆100的规划系统130接收目标对象,并根据传感器数据和目标对象选择车辆100要执行的一个或多个动作,传感器数据表示从传感器系统110接收的所收集信息。向车辆控制系统140提供一个或多个选择动作,所述车辆控制系统140确定对应于从ada 105接收的每个动作的命令。车辆控制系统140向机电系统150提供对应于每个动作的控制信号,机电系统150实现相应的控制信号以使车辆100执行选择动作。
40.在示例性实施例中,传感器系统110包括感测单元阵列,所述感测单元收集关于车辆100和车辆100运行环境的信息,并向规划系统130提供表示所收集信息的传感器数据,以使规划系统130能够为车辆100生成驾驶规划,以及向ada 105提供传感器数据以使ada 105能够确定车辆100的实时状态s。车辆状态s可以包括下列类别的状态信息,例如:(1)车辆环境(s
e
),包括车辆运行的空间的环境方面和特征,例如:道路布局(如道路、车道、车道边界、交叉路口);存在固定对象及这些对象的特征(如路缘、路障、交通标志、交通灯);道路情况(如潮湿、干燥、结冰);环境光照条件(如明亮、阴暗);天气状况(如晴天、雨天、雪天、阴天)和温度;(2)其它移动物体(s
o
),包括关于车辆可检测范围内其它移动对象的信息(如其它机动车辆、单车、行人、动物);(3)车辆物理状态(s
v
),包括有关实际车辆的信息,包括位置信息(如车辆相对于地理参照系的位置)以及车辆的动力学参数(如速度、加速度、姿势(俯仰、偏航、滚动)、引擎rpm、油门位置、刹车位置、传动齿轮比等)。一般而言,在机器人运动规划中,动力学一词涉及速度、加速度、力/扭矩界限必须满足,运动学约束(例如,避开障碍物)也必须满足的一类问题。动力学参数是上文所述的与此类运动规划问题相关的参数。
41.在这方面,车辆传感器系统110包括雷达单元112、激光雷达单元114、相机116、全球定位系统(global location system,gps)单元118和车辆传感器119等。车辆传感器119可以包括用于收集关于车辆100的动力学参数的信息并提供表示车辆100的动力学参数的传感器数据的传感器,包括用于感测转向角度、线性速度、线性加速度和角加速度、姿势(俯仰、偏航、滚动)、指南针行进方向、车辆振动、油门状态、刹车状态、车轮牵引、传动齿轮比、座舱温度和压力的传感器,以及用于感测外部温度和压力、降水和噪声等其它可能参数的外部环境传感器。
42.ada 105是软件智能体(例如,计算机程序),包括可由车辆100的一个或多个专用处理单元或一个或多个通用处理单元执行的指令,并且可以包括任意数量的独立或相互连接的子智能体模块。在各种示例中,可以使用一个或多个基于规则的模块、基于机器学习的模块或基于规则的模块和基于学习的模块的组合来实现ada 105。基于规则的模块是可以通过基于规则的算法实现的模块。基于机器学习的模块是指通过机器学习算法和训练样本生成或构建的模块。例如,基于机器学习的模块是使用深度学习算法或强化学习算法等机器学习算法构建或生成。
43.虽然ada 105可以采取许多不同形式,但是在图1的图示示例中,ada 105包括至少两个逻辑子智能体模块,即状态估计系统120和动作选择系统135。状态估计系统120从传感
器系统110接收传感器数据并使用传感器数据来生成估计的车辆状态s={s
e
,s
o
,s
v
}。例如,可以使用从雷达单元112、激光雷达单元114和相机单元116和其它传感器接收的传感器数据来确定车辆100运行的环境(例如,任何直接围绕固定障碍物、车道和车道界线以及交通信号灯/标志等)以及存在其它运动对象(如行人或其它车辆)和运动对象行为。来自gps单元118和其它车辆传感器119的传感器数据可用于确定车辆100的地理位置。来自车辆传感器119和gps单元118的传感器数据以及来自其它传感器单元的传感器数据可用于确定车辆动力学参数,包括车辆100相对于参照系的速度和姿势。
44.动作选择系统135从状态估计系统120接收实时估计的车辆状态,并从规划系统130选择满足目标对象(对象)所需的一个或多个动作。车辆控制系统140用于根据动作选择系统135提供的选择动作控制车辆100的操作。车辆控制系统140可用于提供对车辆100的完全、部分或辅助控制。机电系统150从车辆控制系统140接收控制信号以操作车辆100的机械和/或机电组件,例如引擎、变速器、转向系统和制动系统。
45.如上所述,ada 105可以在一个或多个处理单元中至少部分地实现。作为示例,图2示出了包括一个或多个物理处理器210(例如,微处理器、图形处理单元、数字信号处理器或其它计算元件)的处理单元200的示例,所述一个或多个物理处理器210耦合到电子存储器220和一个或多个输入和输出接口或设备230。电子存储器220可以包括非瞬时性存储器(例如闪存)和瞬时性存储器(例如ram)。非瞬时性存储器可存储指令、数据和/或软件模块,以供处理器210执行以执行本文中所描述的系统的功能。电子存储器220的非瞬时性存储器部分可存储用于实现车辆100的其它操作的其它软件指令和数据。电子存储器220可包括任何合适的易失性和/或非易失性存储和检索设备,例如包括闪存、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、硬盘、光盘、用户识别模块(subscriber identity module,sim)卡、记忆棒、安全数码(secure digital,sd)存储卡,和其它状态存储设备。在图2的示例中,处理单元200的电子存储器220存储使处理器210能够实现ada105的指令和数据。存储在电子存储器200中的指令在由处理器210执行时使处理器210实现ada 105。在一些示例中,处理单元200可配置为多个虚拟机,每个虚拟机用于实现相应模块。
46.如上所述,当自动驾驶车辆被释放到现实世界中时,为确保车辆100在可以合理预计会遇到的所有现实世界场景中安全运行,必须在多个不同场景中充分评估车辆自动驾驶智能体,这是至关重要的。本申请重点在于用于生成对抗场景以评估和改进ada 105等智能体的系统和方法。对抗场景是指ada 105无法在其中满足条件地执行的场景。换言之,对抗场景是ada 105选择动作导致车辆100在场景中无法安全运行的场景。用不同的度量标准来度量性能。
47.一个场景实际上是模拟了ada 105在真实世界场景中运行一段时间的经验的数据集。在这方面,评估场景的一个分量是生成数据,所述数据模拟在真实世界场景期间一段时间内表示ada 105将从传感器系统110接收的所收集信息的传感器数据。在示例性实施例中,参数用于定义评估场景的一个或多个特征。测量ada 105的性能用于评估场景,并且随着ada 105性能的提高,定义评估场景的参数发生修改以生成对于ada 105更困难的新的评估场景。因此,产生了新的评估场景,其中考虑到了ada105在现有评估场景方面的以往性能。
48.尽管可以用许多不同的方式参数化场景,但在一些示例性实施例中,使用两个参数集来定义评估场景。一个参数集包括环境参数(p
env
),例如,这些环境参数可以大致对应于上述关于车辆环境(s
e
)的状态属性。例如,一个场景的环境参数(environmental parameter,ep)可以定义道路布局(如道路、车道、车道边界、交叉路口);存在固定对象及这些对象的特征(如路缘、路障、交通标志、交通灯);道路情况(如潮湿、干燥、结冰);环境光照条件(如明亮、阴暗);天气状况(如晴天、雨天、雪天、阴天)和温度。
49.第二参数集包括非玩家角色(non

player character,npc)策略参数(p
npp
)。npc策略参数p
npp
为每个npc定义行为,并包括通常对应于上述场景中针关于其它运动对象(s
o
)的车辆状态属性的参数。npc策略参数p
npp
包括为每个npc单独定义的参数。例如,npc策略参数p
npp
可以定义自动驾驶车辆之外的运动对象的行为,如其它机动车、自行车、行人和动物。
50.图3是示例性实施例提供的场景生成系统(scenario generation system,sgs)300的示例的逻辑组件。sgs 300包括场景数据库310,场景数据库310包括存储基线集或初始场景314(1)至314(n)(通常称为初始场景314)的信息的初始场景库312和存储生成场景318(1)至318(m)(通常称为生成场景318)的信息的生成场景库316。sgs 300还包括场景生成器320,用于产生生成场景318。图4是示例性实施例提供的场景生成器320采取的动作的流程图。在示例性实施例中,sgs 300可以在处理器单元上实现,例如上文所述的处理器单元200。在一些示例中,场景数据库310除了存储实际场景之外,还可以存储用于生成相应场景的参数集。例如,初始场景库312可以存储用于生成初始场景314(1)至314(n)的相应参数集(也称为初始参数集),而不是存储实际初始场景314(1)至314(n)。类似地,生成场景库316可以存储用于生成所述生成参数318(1)至318(m)的相应参数集(也称为生成参数集),而不是存储实际生成场景318(1)至318(m)。存储用于生成给定场景的参数集,而不是存储场景本身,可能需要更少的内存资源,并且可能更有效地利用资源。此外,存储参数集可有助于修改后参数值,以生成更具挑战性的场景,如下文进一步论述。
51.基线或初始场景314(1)至314(n)提供基本场景数据,场景生成器320可以根据所述基本场景数据产生生成场景318。在这方面,初始场景314(1)至314(n)可以包括现有场景数据的副本或链接。例如,此类数据可以包括当车辆100在真实世界中以数据采集模式运行时由相机单元112获得的图像数据、由激光雷达单元114获得的点云数据、由雷达单元116获得的雷达数据、由传感器系统110获得的道路布局数据。在替代性实施例中,场景数据可以由模拟数据生成系统生成。在示例性实施例中,至少预定义场景环境参数(p
env
)的子集,并且可以预定义npc策略参数(p
npp
)中的一些参数,并将其包括在存储和用于生成初始场景314(1)至314(n)的相应初始参数集中。
52.如图3所示,在一些示例中,可以将初始场景314(1)至314(n)(或对应的初始参数集)划分为场景组。例如,“密集城区”类场景314(1)可以包括预定义参数,表示通过市中心密集道路大都会区的驱动器;“郊区住宅”类场景314(2)可以包括预定义参数,表示通过具有学校和公园的郊区住宅区的驱动器。如图3所示,初始场景314(1)至314(n)的特异性程度(例如,可能与为特定场景预定义的参数数量成正比)可以不同。例如,可能存在多种公路类场景,每种情景都有代表不同天气状况的数据,如“高速公路——晴天”类场景314(4)和“高速公路——雨天”类场景315(5)所示。
53.图4中的流程图示出了用于生成新的对抗场景和训练ada 105的示例性方法。在图
4的示例中,ada 105可以是预训练的或部分预训练的,以学习ada 105的策略。例如,ada 105可能已经使用来自生成场景库316的之前生成的场景的样本进行了预训练。使用图4的示例性方法,可以在更具挑战性的对抗场景下进一步训练预训练后的ada105,以更新ada 105的学习策略。在其它示例中,可以将ada 105的预训练作为示例性方法的一部分进行(例如,使用下文讨论的初始场景参数),并且将预训练后的ada 105的进一步训练作为所述方法的一部分进行。
54.参考图4,在示例性实施例中,场景生成从初始场景库312中选择(操作410)初始场景314(1)至314(n)(或对应的初始参数集)中的一个开始。在一些示例中,可以在场景生成器320(例如,从人类操作者)接收的输入中指定选择(操作410),或者,可以由场景生成器320执行选择(操作410)。然后根据需要(操作415)选择包括初始环境参数和初始策略参数(p
env
、p
npp
)的初始参数集,生成新场景。在这方面,至少一些初始环境参数(p
env
)和可能一些包括在初始参数集中的策略参数(p
npp
)将根据已选初始情景314预先确定(例如,由从初始场景库312检索的初始参数集预先确定)。然而,可能需要将初始参数集中包括的初始参数中的至少一些初始参数进行初始化,以便配置新场景的生成。例如,在“高速公路——晴天”场景314(4)的情况下,需要初始化的策略参数(p
npp
)可以包括指定:车辆100的操作空间中其它车辆的数量(num_vehicles);其它车辆变道的频率(change_lane_frequency);其它车辆的速度(speed_y);相对于其它车辆的距离阈值(vertical_distance_threshold和change_lane_threshold)的参数。需要初始化的环境参数(p
env
)可以包括指定:高速公路车道宽度(lane_width)和高速公路车道数量(number_of_lanes)的参数。
55.然后,使用初始参数集生成新场景318(1)(操作420),并且参数集存储在生成场景库316中。在示例性实施例中,场景生成器320包括在操作420中调用的生成场景函数322。具体而言,生成场景函数322可用于为新场景318(1)生成场景持续时间的场景参数集,场景持续时间的长度对应于所定义的时间步长t0至t
end
的数量。可以修改或修改场景参数集中的每个场景参数。在至少一些示例中,场景生成器320可以包括多个生成场景函数322,以独特方式配置每个生成场景函数322修改包含在场景参数集合中的相应场景参数。
56.为了说明的目的,生成场景函数322的伪代码表示如图5所示,由该函数生成的场景318(1)的时间步长t的图形表示如图6所示。在所说明的示例中,类别场景为“高速公路——晴天”,并且基于在操作410中选定的初始类别场景“高速公路——晴天”314(4)。在本示例中,动作415中的初始参数集包括:(num_vehicles、change_lane_frequency、speed_y、change_lane_threshold、vertical_distance_threshold、change_lane_threshold、lane_width、number_of_lanes)以及初始参数集中的每个参数在操作420中传递给生成场景函数322。如图5和图6所示,本示例中的生成场景函数322生成场景参数,所述场景参数包括定义与车辆100共享多车道高速公路的多个npc 604(如其它车辆)的行为的npc策略参数p
npp
。可以生成场景策略参数,以定义npc 604在场景的持续时间内(时间步长t0至t
end
)的一系列路程点和速度。定义场景318(1)的场景参数存储在场景数据库310(操作420)中。
57.在至少一些示例性实施例中,场景生成器320可调用多个不同的生成场景函数322,每个生成场景函数322为场景318(1)提供相应的场景参数集。
58.从场景数据库310(例如,包括新生成的场景318(1))采样的一个或多个存储场景(或相应的存储参数集)。采样场景用于训练ada 105修改或更新其学习的策略。然后,使用
来自场景数据库310的场景,评估训练后的ada105(例如,ada 105的学习策略)的性能。用于训练ada 105的场景和用于评估ada 105的场景可以不同。例如,可以将存储的场景(或相应的存储的参数集)标记为训练场景或评估(或非训练)场景,或以其他方式指示为训练场景或评估(或非训练)场景。用于训练ada 105所采样的场景可以仅从那些已被指示为训练场景的场景采样。然后,可以使用仅从非训练场景中采样或从训练场景和非训练场景中采样的场景对训练后的ada 105进行评估(可选地,通过加权调整样本中训练场景和非训练场景的比例)。在一些示例中,存储的场景可能不分类为训练场景或非训练场景。可以使用采样场景训练ada 105,并且可以使用添加噪声(或其它添加变化)的采样场景完成对训练后的ada105进行评估。重复训练和评估操作,直到ada 105性能达到或超过阈值(th)(操作440)。
59.从场景数据库310采样的场景可包括或不包括新生成的场景318(1)。例如,可以通过从场景数据库310接收符合场景类别的预定义数量的存储场景(或相应存储参数集)来对场景数据库310进行采样。可以使用各种合适的采样方法从场景数据库310中进行采样。例如,可以使用均匀采样、加权采样或基于分布的采样。可以选择采样场景以具有适当挑战性。例如,训练后的ada 105的评估可以生成表示训练后的ada 105性能的性能度量。采样技术可以使用性能度量(例如,作为权重)从场景数据库310获取样本。例如,性能度量可指示ada 105的性能与特定参数(或特定参数值)关联性较差。然后,采样方法可以从以特定参数为目标的场景数据库310中获取样本(例如,选择在该参数的整个可能值范围内对ada105提出挑战的样本)。在示例性实施例中,场景生成器320包括为实现操作440而调用的ada训练函数324和ada评估函数326(参见图3)。虽然ada训练功能324和ada评估功能326可以分别以多种不同方式实现,但是图7示出了可能的ada训练函数324和ada评估函数326实现的伪代码表示。
60.ada训练函数324用于训练ada105修改或更新其学习的策略,直到ada105可以选择在使车辆100安全运行的采样场景中执行的动作。这种培训的实际形式可以取决于ada105的配置。图7所示为ada训练函数324的伪代码版本。ada训练函数324的伪代码版本表示训练ada105使用强化学习修改或更新ada 105的学习策略。然而,应理解,ada训练函数324可以使用其它机器学习技术或方法来更新或修改ada 105的学习策略,例如,监督学习技术或方法。在这种情况下,包括新生成的场景318(1)在内的采样场景集为ada105的训练数据。
61.为了训练ada105,可以将采样场景(包括新生成的场景318(1))转换为ada105接受的适当输入。例如,如上所述,ada105期望接收目标对象和传感器数据。因此,可以在模拟器中使用场景参数来模拟传感器数据和将生成的对象,这可以是作为训练数据提供给ada 105的输入。还可以通过直接训练动作选择系统135来训练ada 105,例如,通过从采样场景模拟车辆状态并提供该状态作为动作选择系统135的训练数据。
62.当根据ada105控制时,根据车辆100的性能评估ada105。因此,为了评估ada105,可以使用ada 105生成的选择动作来模拟车辆100的结果状态,并且可以评估所述状态。
63.在一些示例中,可以使用基于规则的编程实现ada 105,并且可以通过修改编程来执行训练ada105,编程规则由ada105使用,以使ada 105能够在采样场景中充分执行。
64.在通过ada训练函数324完成训练之后,使用ada评估函数326测试所得到的训练后的ada 105,以确定训练后的ada 105是否能够在取样场景中充分执行。在示例性实施例中,使用采样场景集作为评估数据集来评估用于实现训练后的ada 105的目标对象输出的选择
动作,以确定是否达到一个或多个性能阈值。例如,对应于训练后的ada 105输出的选择动作的车辆控制信号可以由驾驶模拟器在采样场景下监控,以确定性能度量,例如碰撞次数、平均速度、智能体车辆姿势、特定事件之间的平均时间等。训练ada 105以使用采样场景修改或更新其学习策略,并评估训练后的ada 105,直到由一个或多个已选性能度量测量的性能超过一个或多个性能阈值th。
65.一旦训练后的ada 105已经证明其能够成功处理采样场景,则场景生成器320用于生成以下难度增加的对抗场景。如操作450所示,产生了新的对抗场景。在示例性实施例中,场景生成器320调用生成对抗场景函数328(参见图3)。图8是示例性实施例提供的生成对抗场景函数328的伪代码表示。如图8所示,生成对抗场景函数328调用生成场景函数322上,并评估ada函数326生成新的场景参数(new_parameters)。
66.如操作460所示,在新场景的参数集所定义的新场景中评估训练后的ada 105,以确定ada 105是否能够通过将一个或多个已测度量与一个或多个性能阈值(可以包括与操作440中用于评估初始场景的性能的阈值th不同的阈值)进行比较所指示来满足条件地执行新场景。如决策块470所示,如果ada 105通过评估(即,性能满足或大于阈值),则新生成的对抗场景过于简单(即,不够对抗)以至于不能生成训练样本,以进一步训练ada 105改善ada105的性能。场景生成器320重复生成和评估场景参数修改的新的对抗场景的操作450、460,直到生成使ada105在其场景性能下发生故障(即,不在决策块470处通过)。导致对抗场景的故障适合于用于改进ada105,因此,导致对抗场景的故障的场景参数作为新生成场景318(2)存储于生成场景库316中(操作420)。然后,可以将新生成的对抗场景(或相应参数集)包括在抽样场景中,这些场景用于进一步训练ada105更新或修改其学习的策略,直到ada 105可以满足条件地执行采样场景(包括新生成的对抗场景318(2))(操作440)。生成其它对抗场景的循环可以继续,其中每个随后生成的对抗场景都受到之前生成的场景的影响。当ada 105在足够数量的对抗情景下经过充分训练时,新的对抗情景的生成和ada 105的进一步训练可能结束。例如,图4的方法可以在已经执行预定数量的周期时结束。
67.在生成的对抗场景下进行训练的ada 105可用于车辆100中,以在真实世界中发挥性能。在其它情况下,可以使用其它训练技术进一步训练ada 105。
68.在示例性实施例中,场景生成器320通过以特定速率和约束条件(为了使场景符合现实,可以预先定义)更改场景的参数来生成新场景导致ada的性能降低。通常,根据训练后的ada 105的评估性能生成新的对抗场景参数。例如,可以通过主动学习的方式为npc选择策略参数,从而增加ada 105策略的不确定性。然后,具有新参数的新场景(可以包括新的环境参数,新的npc策略参数,或者两者都包括)可以用作进一步训练ada105的训练集,以修改或更新ada105的策略。例如,数值参数可以逐渐修改或系统地修改,例如通过逐渐增大或减小参数值,或者通过使用梯度函数。当ada 105执行每个场景时,给定参数修改对ada性能的影响可以用作确定修改后参数的方向(例如,增加或减少)的基础,以便向ada105发起挑战,即,向预计会降低ada 105性能的方向修改所述参数。在一些示例中,可以使用优化算法(例如,贝叶斯优化)来修改给定参数值,以向ada 105发起挑战。优化算法可用于以预计会降低ada 105性能的方式修改所述参数。在一些示例中,可以使用采样技术(例如,蒙特卡洛采样)来修改给定参数值。
69.修改后参数可以有一个或多个预定义的约束条件,使得修改后的参数在真实驾驶
场景的范围内。也可以根据经验规则修改后参数值。例如,参数可以是非数字的(例如,类别参数),并且可能更适合使用规则(例如,雨天比晴天更具有挑战性),而不是一个梯度来决定如何修改这个参数。可以使用其它方法来生成新的场景参数,以向ada 105发起挑战。
70.图4的方法可以由sgs 300执行,其可以由如图2所示的处理单元200实现。在图2的样本中,显示sgs 300和ada 105均在同一处理单元200内实现(反过来,可在车辆100中实现)。在其它示例中,sgs 300和ada 105可以使用单独的处理单元实现。例如,可以使用车辆100的处理单元200来实现ada 105,并且可以使用可在车辆100外部的不同处理单元来实现sgs 300。例如,sgs 300可以在工作站中实现,在这种情况下,ada 105在生成场景下的场景生成和培训可以在车辆100之外进行。
71.图9以图形形式说明了生成场景越来越困难。图9的左侧示出了上文结合图6所讨论的第一生成场景318(1)。如上所述,生成场景318(1)包括非玩家角色(non

player character,npc)604(例如,其它车辆)与车辆100共享多车道高速公路。图9的右侧示出了随后的对抗生成场景318(2)。用于新生成的场景318(2)的npc 604的策略参数定义了新路点,所述新路点导致npc 604的车道变化数量大得多,npc 604与车辆100之间的垂直距离小得多。因此,车辆100的ada 105的右侧场景更加困难。
72.因此,在示例性实施例中,当ada105在初始测试场景中变得更好时,场景生成器320开始修改场景参数。可能存在场景生成器320如何修改场景参数的一个或多个预定义的约束条件(例如,社会车辆不能高速倒车)。这些约束条件可以作为一组硬性规则应用,或者在其它npc由各自的npc算法定义的情况下,这些约束条件可以算法等级应用(允许在真实世界中以某种概率违反规则)。ada 105的性能根据场景参数的变化进行测量。例如,随着其它汽车的速度增加,或者行人开始有更多的不可预知的动作,ada 105开始发生更多故障。当ada 105开始发生更多故障的时候,ada105也积极地学习新场景并开始更好地处理它们。同时,场景生成器320通过修改参数使得场景更有难度。可以根据每个参数如何影响ada 105的性能来自动确定场景参数的变化方向(梯度)。
73.在示例性实施例中,参数变化受限于生成现实场景的同时避免生成不切实际场景的结果。例如,所有汽车在高速公路上高速倒车的场景是不现实的,也是不可取的。避免不切实际的场景可以通过规则或算法来处理(例如,在生成雨天场景时,生成器/鉴别器设置可有助于确保生成的场景是现实的。
74.在各种示例中,可以使用一个或多个基于规则的模块,基于机器学习的模块或基于规则的模块和基于机器学习的模块的组合来实现场景生成器320的各个方面,包括至少一些函数322、324、326和328。基于机器学习的模块是通过机器学习算法和训练样本构建或生成的。可用于构建或生成基于机器学习的模块的基于机器学习的算法的示例包括贝叶斯算法、生成算法、监督算法、高斯过程、基于深度学习的算法和梯度下降/上升算法等。
75.尽管如上所述,场景生成、培训和评估设想了ada 105的端到端全球培训和评估,如上文以图1为例对ada105进行的描述,ada 105可以包括若干个基于规则的函数和模块和/或基于学习的函数和模块(例如,系统120、130、140)。因此,在一些示例中,ada 105的训练和评估可侧重于选择性地训练ada 105的一个或多个单个子系统智能体,以及特定场景318可侧重于训练特定的单个子系统智能体。例如,可以生成针对专门训练状态估计系统120的激光雷达点云分析子系统智能体以检测对象边界的场景。在这种情况下,可以仅对激
光雷达点云分析子系统智能体执行训练和评估。
76.本申请描述了场景(对应参数集)存储于场景数据库312中和从场景数据库312中检索场景(或相应参数集)的示例。然而,应理解,在其它示例中,场景可能不存储于数据库中。例如,场景可以存储在云中、临时存储器中或硬盘驱动器中,而不是数据库中。在其它示例中,可以动态生成场景,而不是存储和检索场景。应理解,存储位置以及是否存储场景或仅是临时场景是本申请范围内的变体。
77.尽管本申请以特定的顺序描述了方法和流程,但可以视情况省略或更改方法和流程的一个或多个步骤。一个或多个步骤可以按顺序执行,但不是按描述的顺序执行(视情况而定)。
78.尽管描述了本申请,但至少部分地,就方法而言,本领域普通技术人员将理解,本申请还涉及各种组件,用于通过硬件组件、软件或两者的任意组合执行所描述的方法的至少一些方面和特征。相应地,本申请的技术方案可通过软件产品的形式体现。合适的软件产品可以存储在预先记录的存储设备或其它类似的非易失性或非瞬时性计算机可读介质中,例如,dvd、cd

rom、usb闪存盘、可移动硬盘或其它存储介质等。软件产品包括其上存储的指令,这些指令使处理设备(例如个人计算机、服务器或网络设备)能够执行本文所公开的方法的示例。
79.本申请可以其它特定形式体现,而不脱离权利要求的主题。所描述的示例性实施例在各方面都仅仅是示意性的,而不是限制性的。可以将上述一个或多个实施例中的选定特征组合以创建未明确描述的替代性实施例,理解适合此类组合的特征在本申请的范围内。
80.还公开了公开范围内的所有值和子范围。此外,虽然本文所公开和显示的系统、器件和流程可包括特定数量的元素/组件,但可以修改所述系统、器件和组合件,以包括此类元素/组件中的更多或更少的元素/组件。例如,尽管所公开的任何元素/组件可引用为单数,但可以修改本文所公开的实施例以包括多个此类元素/组件。本文所描述的主题旨在覆盖和涵盖所有适当的技术变更。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1