Project Icon

Autonomous-Driving-in-Carla-using-Deep-Reinforcement-Learning

CARLA仿真中的深度强化学习自动驾驶模型

该项目在CARLA仿真环境中,使用深度强化学习方法进行自动驾驶训练。通过结合PPO算法和变分自编码器(VAE),加速学习并提高驾驶决策能力。项目采用Python和PyTorch构建,重点在于自动驾驶和障碍物回避的持续学习。对于推动自动驾驶技术和决策效率研究具有显著意义。

实现用于自动驾驶的深度强化学习模型

人工智能(AI)在几乎所有技术领域中都在迅速发展,自驾车的研究就是其中之一。在这项工作中,我们将利用最先进的方法,通过深度强化学习(DRL)方法来训练我们的代理自主驾驶。我们将使用一个开源模拟器,CARLA,来进行我们的实验,提供一个超真实的城市模拟环境来训练我们的模型。由于直接在真实世界中使用我们的算法带有许多风险和道德问题,所以我们使用这些模拟器来帮助我们进行测试。

此外,DRL在学习复杂决策任务方面显示出令人鼓舞的成果,从战略游戏到困难的谜题。在这里,我们将研究一种叫做近端策略优化(PPO)的按照策略学习的DRL算法在模拟驾驶环境中如何学会在预定路线上导航。这项工作的主要目标是研究DRL模型如何在连续的状态和动作空间中训练一个代理。我们的主要贡献是一个基于PPO的代理,它可以在我们的基于CARLA的环境中可靠地学会驾驶。此外,我们还实现了一个变分自编码器(VAE),它将高维观察压缩成一个可能更易学习的低维潜空间,从而帮助我们的代理更快地学习。

项目简介

这项工作的目标是开发一个端到端的自动驾驶解决方案,它可以向车辆发送指令,以帮助其朝正确的方向行驶并尽量避免碰撞,分为以下几个部分:

  1. CARLA环境设置
  2. 变分自编码器
  3. 近端策略优化

我们使用了CARLA(版本0.9.8)作为我们的环境(城市模拟器)。我们还总结了一些结果和分析,以进一步简化这个问题。

请查看文档工作这里以更好地理解整个项目。

前提条件

我们使用的是CARLA(0.9.8)+附加地图。我们主要关注的是两个城镇,即城镇2和城镇7,所以建议您下载附加地图文件和CARLA服务器一起。您可以将附加地图目录中的地图复制粘贴到CARLA目录中,以确保一切顺利。

接下来我们建议您在WindowsLinux上设置您的项目,因为这是目前CARLA支持的两个操作系统。

项目设置(安装)

为了设置这个项目,建议您克隆这个存储库,并确保您安装了Python v3.7.+(64位)版本。在克隆这个存储库后,我们可以为这个项目创建一个Python虚拟环境 💥 我们称之为venv python -m venv venv。如果愿意,您可以叫它别的名字 :) 现在我们可以激活我们的虚拟环境 source venv/Script/activate,在安装任何依赖项之前不要忘记这样做。接下来我们可以使用pip安装依赖项,使用以下命令 pip install -r requirements.txt。我们不仅使用pip作为我们的依赖项管理器,还使用poetry,因此在仓库中执行以下命令 cd poetry/ && poetry update。这将使用poetry安装所有其他依赖项。一旦一切设置完毕,我们就差不多完成了!

下载CARLA服务器(0.9.8)+附加地图,并确保您已经阅读了本仓库的前提条件。一旦服务器启动并运行,我们可以使用python continuous_driver.py --exp-name=ppo --train=False命令启动我们的客户端。在此之前不要忘记启动Carla服务器。耶!!!

构建工具

方法论

封装三个最基本组件的架构布局:

  1. CARLA模拟。
  2. VAE。
  3. PPO代理。

架构方法论

如何运行

运行训练好的代理

在项目中,我们为您提供了两个预训练的PPO代理,每个城镇一个(城镇02和城镇07)。 该模型的预训练序列化文件放置在preTrained_models/PPO/<town>文件夹中。

python continuous_driver.py --exp-name ppo --train False

默认情况下,我们在城镇07,但我们可以通过以下参数改为城镇02:

python continuous_driver.py --exp-name ppo --train False --town Town02

训练一个新代理

为了训练一个新代理,请使用以下命令:

python continuous_driver.py --exp-name ppo

这将开始使用默认参数训练一个代理,检查点将写入checkpoints/PPO/<town>/,其他指标将记录到logs/PPO/<town>/。与上面一样,默认情况下我们在城镇07进行训练,但我们可以通过添加此参数改为城镇02 --town Town02

我们的训练是这样的。

城镇 7

城镇 2

变分自编码器

变分自编码器(VAE)训练过程从自动和手动驾驶开始,收集12,000张160x80的语义分割图像用于训练。然后,我们将SS图像作为变分自编码器的输入(h ∗ 𝑤 ∗ 𝑐 = 38400输入单元)。在我们的DRL网络训练时,VAE的权重被冻结。

变分自编码器

一旦我们训练好了我们的VAE,我们可以使用以下命令来检查重建图像:

cd autoencoder && python reconstructor.py

原始图像到重建图像

项目架构管道(编码器到PPO)

以下图表描述了VAE+PPO训练管道。注意:所有变量名缺少下标𝑡。

VAE + PPO训练管道

文件概述

文件描述
continuous_driver.py训练/测试我们连续代理(如PPO代理)的脚本
discrete_driver.py训练我们离散代理(如决斗DQN代理)的脚本(在进行中
encoder_init.py使用经过训练的编码器将传入图像(状态)转换为潜在空间的脚本
parameters.py包含项目的超参数
simulation/connection.pyCARLA环境类,负责与CARLA服务器建立连接
simulation/environment.py欢CARLA环境类,包含大部分环境设置功能(受gym启发的类结构)
simulation/sensors.pyCARLA环境文件,包含所有代理的传感器类(设置)
simulation/settings.pyCARLA环境文件,包含环境设置参数
runs/包含Tensorboard图表/图形的文件夹
preTrained_models/ppo包含预训练模型序列化文件的文件夹
networks/on_policy/agent.py包含我们PPO代理代码
networks/on_policy/ppo.py包含我们PPO网络代码
logs/包含我们代理在训练期间记录的指标的文件夹
info/包含项目图像、动图、图表和文档的信息文件夹
checkpints/包含我们代理在训练期间保存的序列化参数的文件夹
carla/包含CARL egg文件的文件夹,用于与服务器建立连接
autoencoder/包含我们变分自编码器(VAE)代码的文件夹

查看Tensorboard中的训练进度/图表:

tensorboard --logdir runs/

作者

Idrees Razak - GitHub, LinkedIn

许可证

该项目根据MIT许可进行许可,请参见LICENSE.md文件了解详情

致谢

感谢Dr. Toka László教授在这项工作中的卓越领导和不懈支持。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号