了解赛车类型并启用 AWS DeepRacer 支持的传感器
了解赛车类型并启用 AWS 支持的传感器 DeepRacer
在 AWS Le DeepRacer ague 中,您可以参加以下类型的赛车赛事:
- 计时赛:在畅通无阻的赛道上争分夺秒,争取尽可能快的单圈时间。
- 避物:在有固定障碍物的赛道上争分夺秒,并以尽可能快的单圈时间为目标。
- Head-to-bot 赛车:在同一赛道上与其他一辆或多辆车竞赛,目标是先于其他车辆越过终点线。
AWS DeepRacer 社区竞赛目前仅支持计时赛。
您应该在您的 AWS DeepRacer 车辆上尝试不同的传感器,使其具有足够的能力来观察给定比赛类型的周围环境。下一节介绍了 AWS DeepRacer 支持的传感器,这些传感器可以启用支持的自动赛车赛事类型。
主题
- 为 AWS DeepRacer 赛车类型选择传感器
- 配置用于训练 AWS DeepRacer 模型的代理
- 为计时赛量身定制 AWS DeepRacer 培训
- 为避物竞赛量身定制 AWS DeepRacer 训练
- 为 head-to-bot 比赛量身定制 AWS DeepRacer 训练
为 AWS DeepRacer 赛车类型选择传感器
您的 AWS DeepRacer 车辆配有前置单目摄像头作为默认传感器。您可以添加另一个前置单目摄像头来制作前置立体摄像头,或者使用 LiDAR 单元补充单目摄像头或立体摄像头。
以下列表总结了 AWS DeepRacer 支持的传感器的功能以及简要 cost-and-benefit 分析:
前置摄像头
单镜头前置摄像头可以捕捉主车辆前方环境的图像,包括轨道边界和形状。它是最便宜的传感器,适用于处理更简单的自动驾驶任务,例如在标记明确的赛道上进行无障碍计时赛。通过适当的训练,它可以避开赛道上固定位置的固定障碍物。但是,障碍物位置信息已内置在经过训练的模型中,因此,该模型可能过度拟合,可能无法推广到其他障碍物放置位置。如果将静止物体放置在随机位置或轨道上的其他移动车辆,模型不太可能趋于一致。
在现实世界中,AWS DeepRacer 车辆带有单镜头前置摄像头作为默认传感器。相机配备 120 度广角镜头,可捕获 RGB 图像,然后以每秒 15 帧 (fps) 的速度转换为 160 x 120 像素的灰度图像。这些传感器属性保留在模拟器中,以最大限度地提高训练后的模型从仿真到现实世界的良好转化机会。
前置立体摄像头
立体相机有两个或多个镜头,可以捕获具有相同分辨率和频率的图像。来自两个镜头的图像用于确定观测物体的深度。来自立体摄像头的深度信息对于主机车辆非常有价值,可以避免撞上前方的障碍物或其他车辆,尤其是在更具动态性的环境下。但是,增加深度信息会使训练融合得更慢。
在 AWS DeepRacer 物理车辆上,双镜头立体摄像头是通过添加另一个单镜头摄像机并将每个摄像头安装在车辆的左侧和右侧来构建的。AWS DeepRacer 软件同步从两个摄像机捕获的图像。捕获的图像被转换为灰度,堆叠,然后输入到神经网络进行推理。在模拟器中复制了相同的机制,以便训练模型很好地推广到现实环境。
LiDAR 传感器
LiDAR 传感器使用旋转的激光器发出可见光谱之外的光脉冲,并确定每个脉冲返回需要多长时间。特定脉冲击中物体的方向和距离以LiDAR 单元为中心的大型 3D 地图中记录为一个点。
例如,LiDAR 可帮助检测主机车辆的盲点,以避免车辆变道时发生碰撞。通过将LiDAR 与mono 声道或立体摄像头相结合,可以使主机车辆捕获足够的信息以采取适当的行动。但是,与相机相比,LiDAR 传感器的成本更高。神经网络必须学习如何解释 LiDAR 数据。因此,培训需要更长的时间才能趋于一致。
在 AWS DeepRacer 物理车辆上,LiDAR 传感器安装在后部,向下倾斜 6 度。它以每秒 10 次旋转的角速度旋转,范围为 15 厘米到 2m。它可以检测主车辆后面和旁边的物体,以及不受前方车辆部件阻挡的高大物体。选择角度和范围是为了使LiDAR 单元不易受到环境噪声的影响。
您可以使用以下支持的传感器组合配置 AWS DeepRacer 车辆:
- 仅限前置单镜头摄像头。
这种配置非常适合计时赛,也适合在固定位置使用物体避障。
- 仅限前置立体摄像头。
这种配置非常适合在固定或随机位置使用物体避障。
- 带LiDAR 的前置单镜头相机。
这种配置非常适合避障或 head-to-bot赛车。
- 带LiDAR 的前置立体摄像头。
这种配置适合避障或 head-to-bot 赛车,但对于计时赛来说可能不是最经济的。
当您添加更多传感器使您的 AWS DeepRacer 车辆从计时赛到物体避开再到 head-to-bot 赛车时,车辆会收集更多有关环境的数据,以便在训练中输入到底层神经网络中。这使得训练更具挑战性,因为需要模型来处理日益增加的复杂性。最后,学习训练模型的任务变得更加艰巨。
要逐步学习,你应该先开始计时赛训练,然后才开始避开物体,然后再开始 head-to-bot 比赛。您将在下一节中找到更多详细建议。
配置用于训练 AWS DeepRacer 模型的代理
要训练强化学习模型,让 AWS DeepRacer 车辆参加避障或 head-to-bot 竞速比赛,您需要使用适当的传感器配置代理。对于简单的计时赛,您可以使用配置了单镜头摄像头的默认代理。在配置代理时,您可以自定义操作空间并选择神经网络拓扑,以便它们能够更好地与所选传感器配合使用,满足预期的行驶要求。此外,您还可以在训练期间更改代理的外观以在视觉上帮助识别。
配置后,代理配置将记录为模型元数据的一部分,用于训练和评估。为了进行评估,代理会自动检索记录的配置,以使用指定的传感器、操作空间和神经网络技术。
本节将指导您在 AWS Blc DeepRacer er。
在 AWS DeepRacer 控制台中配置 AWS DeepRacer 代理
- 登录 AW S DeepRacer 控制台。
- 在主导航窗格中选择 Garage (车库)。
- 首次使用 Garage (车库) 时,您会看到 WELCOME TO THE GARAGE (欢迎使用车库) 对话框。选择 > 或 <
浏览 AWS DeepRacer 车辆支持的各种传感器的简介,或选择 X 关闭对话框。您可以在 Garage (车库)
的帮助面板中找到此介绍性信息。 - 在 Garage (车库) 页面上,选择 Build new vehicle (构建新车辆)。
在 Mod your own vehicle (改装自己的车辆) 页面上,在 Mod specifications (改装规范)
下,选择一个或多个传感器,尝试了解能够满足预期赛车类型的最佳组合。要为您的 AWS DeepRacer 车辆计时赛进行训练,请选择 C amera。为了避障或 head-to-bot
赛车,你想使用其他类型的传感器。要选择立体摄像头,请确保您已购买了额外的单镜头相机。AWS 用两个单镜头摄像机 DeepRacer
制造了立体摄像头。您可以在一辆车上使用单镜头摄像头或双镜头立体摄像头。无论哪种情况,如果您只想让经过训练的模型能够检测和避开避障碍物或
head-to-bot 赛车中的盲点,则可以向代理添加LiDAR 传感器。在 Garage (车库) 页面的 Neural network topologies (神经网络拓扑) 下,选择支持的网络拓扑。
一般来说,更深的神经网络(层次较多)更适合在具有复杂曲线和急转弯的更复杂赛道上行驶、规避静止障碍物的比赛或与其他移动车辆的比赛。但是,更深的神经网络的训练成本更高,模型需要更长的时间才能融合。另一方面,更浅的网络(层次较少)成本更低,需要的训练时间更短。训练后的模型能够处理较简单的赛道条件或行驶要求,例如在没有竞争对手的无障碍赛道上进行的计时赛。
具体而言,AWS DeepRacer 支持 3 层 CNN 或 5 层 CNN。
- 在 Garage (车库) 页面上,选择 Next (下一步) 以继续设置代理的操作空间。
在 Action space (操作空间)
页面上,保留第一次训练的默认设置。对于后续训练,请尝试不同的转向角度、最高速度及其粒度设置。然后选择下一步。
在 “为车辆着色以在人群中脱颖而出” 页面上,在 “命名你的名字” 中输入一个名字,
DeepRacer然后从车辆颜色列表中为特工选择一种颜色。然后,选择 Submit (提交)。
- 在 Garage (车库) 页面上,检查新代理的设置。要进行其他修改,请选择 Mod vehicle (改装车辆),然后从步骤 4
开始重复上述步骤。
现在,您的代理已准备好进行训练了。
为计时赛量身定制 AWS DeepRacer 培训
如果这是您第一次使用 AWS DeepRacer,则应从简单的计时赛开始,熟悉如何训练 AWS DeepRacer 模型来驾驶您的车辆。这样,你就可以更温和地介绍奖励功能、代理、环境等基本概念。你的目标是训练一个模型,让车辆保持在赛道上,并尽可能快地完成一圈。然后,您可以将经过训练的模型部署到您的 AWS DeepRacer 车辆上,在物理赛道上测试驾驶,无需任何其他传感器。
要针对此场景训练模型,您可以从 AWS DeepRacer 控制台的 Garag e 中选择默认代理。默认代理已配置为单个前置摄像头、默认操作空间和默认神经网络拓扑。在转向更复杂的代理之前,开始使用默认代理训练 AWS DeepRacer 模型会很有帮助。
要使用默认代理训练模型,请遵循以下建议。
- 用一条形状更规则和不那么急转弯的简单轨迹开始训练模型。使用默认奖励功能。然后训练模型 30
分钟。训练作业完成后,在同一条赛道上评估您的模型,以观察代理能否完成一圈。 - 阅读有关奖励函数参数的信息。通过不同的激励措施继续训练,以奖励代理人走得更快。将下一个模型的训练时间延长到 1-2
小时。比较第一次训练和第二次训练之间的奖励图。继续试验,直到奖励图停止改善。 - 阅读有关行动空间的更多信息。通过提高最高速度(例如 1 m/s)对模型进行第三次训练。要修改操作空间,当你有机会进行修改时,你必须在
Garage 中建造一个新的代理人。更新代理的最高速度时,请注意,最高速度越高,代理完成评估中赛道的速度就越快,您的 AWS
DeepRacer
车辆在物理赛道上完成一圈的速度也就越快。但是,更高的最高速度通常意味着训练聚合的时间更长,因为代理更有可能在弯道上超速,从而偏离正轨。你可能需要降低粒度,为特工提供更多空间来加速或减速,并通过其他方式进一步调整奖励功能,以帮助训练更快地融合。训练结束后,评估第三个模型,看看单圈时间是否有所改善。继续探索,直到没有更多改进。 - 选择更复杂的曲目,然后重复步骤 1 到步骤
3。在与您过去训练的轨道不同的轨道上评估您的模型,以了解该模型如何推广到不同的虚拟轨道并推广到现实环境。 - (可选)使用不同的超参数值进行实验以改进训练过程,然后重复步骤 1 到步骤 3。
- (可选)检查和分析 AWS DeepRacer 日志。有关可用于分析日志的示例代码,请参阅
https://github.com/aws-samples/aws-deepracer-workshops
/tree/master/log- analysis。
为避物竞赛量身定制 AWS DeepRacer 训练
在你熟悉了计时赛并训练了几个融合模型之后,接下来是下一个要求更高的挑战——避障。在这里,你的目标是训练一个可以在不偏离轨道的情况下尽快完成一圈的模型,同时避免撞上放置在轨道上的物体。对于代理来说,这显然是一个更难学习的问题,而且训练需要更长的时间才能趋于一致。
AWS DeepRacer 控制台支持两种类型的避障训练:可以在赛道上的固定或随机位置放置障碍物。在固定位置下,在整个训练任务中,障碍物会保持固定在同一位置。使用随机位置,障碍物在不同剧集之间随机改变各自的位置。
由于系统的自由度较小,因此训练更容易汇聚在一起以避开固定位置的障碍物。但是,在训练的模型中内置位置信息时,模型可能会过度拟合。因此,模型可能过度拟合,可能无法很好地概括。对于随机定位的避障,训练更难融合,因为特工必须不断学习,以避免在以前从未见过的位置撞上障碍物。但是,使用此选项训练的模型往往可以更好地进行概括,并且可以很好地转移到现实世界中。首先,在固定位置放置障碍物,熟悉行为,然后应对随机地点。
在 AWS DeepRacer 模拟器中,障碍物是长方体盒子,其尺寸(9.5 英寸(长)x 15.25 英寸(宽)x 10/5 英寸(高))与 AWS DeepRacer 车辆的包装箱相同。如果您将包装盒作为障碍物放在物理轨道上,则可以更轻松地将经过训练的模型从模拟器转移到现实世界。
要尝试避障,请遵循以下步骤中概述的推荐做法:
使用默认代理或通过自定义现有代理或构建新代理来尝试新的传感器和操作空间。应将最高速度限制在 0.8 m/s 以下,将速度粒度限制为 1
或 2 级。首先在固定位置放置 2 个物体,训练模型约 3 小时。使用示例奖励函数,在你将要参加比赛的赛道或与该赛道非常相似的赛道上训练模型。AWS
S DeepRacer mile
Speedway(中级)赛道是一条简单的赛道,因此是准备峰会比赛的好选择。使用相同数量的障碍物对同一轨道上的模型进行评估。观察预期的奖励融合数(如果有)。- 阅读有关奖励函数参数的信息。尝试不同的奖励功能。将障碍物数增加到
4。训练代理以查看训练是否在相同的训练时间内趋于一致。如果没有,请再次调整你的奖励功能,降低最高速度或减少障碍物数量,然后再次训练特工。重复试验,直到没有更明显的改善。 - 现在,继续训练,避开随机位置的障碍物。您需要为代理配置额外的传感器,这些传感器可从 AWS DeepRacer 控制台的 Garag e
获得。你可以使用立体摄像头。或者,你可以将LiDAR
单元与单镜头相机或立体相机组合使用,但预计训练时间会更长。将动作空间设置为相对较低的最高速度(例如 2
m/s),以使训练更快地收敛。对于网络架构,使用浅层神经网络,已发现该网络足以避障。 - 在简单的轨道上随机放置 4 个物体,开始训练 4
个小时的避障新代理人。然后在同一条赛道上评估你的模型,看看它能否在障碍物随机放置的情况下完成圈速。如果不是,你可能需要调整奖励功能,尝试不同的传感器并延长训练时间。另一个提示是,你可以尝试克隆现有模型以继续训练,以利用以前学到的经验。 - (可选)为动作空间选择更高的最高速度,或者在轨道上随机放置更多障碍物。尝试不同的传感器组合,调整奖励函数和超参数值。试验 5 层 CNN
网络拓扑。然后,重新训练模型以确定它们如何影响训练的收敛。
为 head-to-bot 比赛量身定制 AWS DeepRacer 训练
完成避障训练后,你现在已经准备好迎接下一个级别的挑战: head-to-bot 比赛训练模型。与避障赛事不同, head-to-bot 赛车的环境充满活力,车辆在移动。您的目标是为您的 AWS DeepRacer 车辆训练模型,使其与其他移动车辆竞争,以便在不偏离轨道或撞上任何其他车辆的情况下先到达终点线。在 AWS DeepRacer 控制台中,您可以让代理与 1-4 辆机器人车辆竞争,从而训练 head-to-bot 赛车模型。一般来说,你应该在更长的赛道上设置更多的障碍物。
每辆机器人车辆都以恒定速度沿着预定义的路径行驶。你可以让它改变车道或留在起跑道上。与避障训练类似,你可以让机器人车辆在两条车道上均匀分布在赛道上。控制台限制你在赛道上最多有 4 辆机器人载具。在赛道上放置更多的竞争车辆可以让学习者有更多机会与其他车辆面对更多不同的情况。这样,它可以在一次训练工作中学到更多,并且代理可以更快地接受培训。但是,每次训练可能需要更长的时间才能趋于一致。
要使用机器人载具训练特工,你应该将代理行动空间的最高速度设置为高于机器人载具的(恒定)速度,这样特工在训练期间有更多的通过机会。作为一个很好的起点,你应该将代理的最高速度设置为 0.8 m/s,将机器人车辆的移动速度设置为 0.4 m/s。如果你让机器人改变车道,训练就会变得更具挑战性,因为特工不仅要学会如何避免在同一车道上撞上前方行驶中的车辆,还要学会如何避免在另一条车道上撞上前方的另一辆行驶中的车辆。你可以设置机器人以随机间隔改变车道。间隔的长度是在开始训练作业之前从您指定的时间范围(例如 1 秒到 5 秒)中随机选择的。这种变道行为更类似于现实世界中的 head-to-bot 赛车行为,训练有素的特工应该会产生更好的效果。但是,训练模型使其趋同需要更长的时间。
按照以下建议的步骤反复进行 head-to-bot 赛车训练:
- 在 AWS DeepRacer 控制台的 Garag e 中,构建一个配置有立体摄像头和 LiDAR
单元的新训练代理。仅使用立体摄像头对抗机器人车辆就可以训练一个相对较好的模型。LiDAR
有助于减少代理人变道时的盲点。不要将最高速度设置得太高。1 m/s 是一个好起点。 - 要为 head-to-bot 赛车训练,从两辆机器人车辆开始。将机器人的移动速度设置为低于代理的最高速度(例如,如果代理的最高速度为 1
m/s,则为 0.5 m/s)。禁用换道选项,然后选择您刚创建的训练代理。使用其中一个奖励函数示例或进行最少的必要修改,然后训练 3
小时。使用你将要参加比赛的赛道,或者与该赛道非常相似的赛道。AWS S DeepRacer mile
Speedway(中级)赛道是一条简单的赛道,因此是准备峰会比赛的好选择。训练完成后,在同一赛道上评估训练后的模型。 - 对于更具挑战性的任务,可以克隆你的训练模型来制作第二个
head-to-bot赛车模型。继续尝试使用更多机器人载具或启用换道选项。从慢速变道操作开始,随机间隔超过 2
秒。你可能还想尝试自定义奖励功能。通常,如果你不考虑超越其他车辆和保持正轨之间的平衡,你的自定义奖励函数逻辑可能与避障函数逻辑类似。根据你之前的模型有多好,你可能需要再训练
3 到 6 个小时。评估您的模型并查看模型的性能。