开源
Europilot:使用ETS2来开发自动驾驶算法
来源:元经纪     阅读:721
网站管理员
发布于 2023-03-16 06:58
查看主页

概述

Europilot 是一个开源项目,它利用流行的欧洲卡车模拟器 (ETS2) 来开发自动驾驶算法。

将 europilot 视为游戏环境与您最喜欢的深度学习框架(例如 Keras 或 Tensorflow)之间的桥梁。使用 europilot,您可以捕获游戏屏幕输入,并以编程方式控制模拟器内的卡车。

Europilot 可以通过以下两种方式之一使用:培训或测试。

对于训练,europilot 可以捕获屏幕输入并实时输出一个 numpy 数组,同时获取方向盘操纵杆值。相关屏幕截图和操纵杆值之间的映射写入 csv 文件中。

为了进行测试,europilot 可以创建一个可以在游戏中识别的虚拟操纵杆驱动程序,它可以用于以编程方式控制卡车。使用这个操纵杆,您可以创建一个实时推理网络,以游戏画面作为输入,并输出相关的操纵杆命令,例如转向。

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

单击以查看 YouTube 上的示例演示。

单击以阅读有关我们项目背后动机的博客文章。

入门

首先,克隆项目

git clone git@github.com:marshq/europilot.git

如果你想在本地安装 europilot,

python setup.py install

您还可以安装必备库并直接在此项目路径中执行某些操作。

pip install -r requirements.txt
python
>>> import europilot
>>> europilot.__version__
'0.0.1'

要开始生成训练数据,请查看脚本目录中的generate_training_data.py 。

注意,需要使用模块opencv编译opencv_contrib才能使用屏幕选择 gui。

否则,您应该指定一个屏幕区域,通过将自定义Box对象分配给来捕获该区域train.Config.BOX

训练数据生成完成后,您可能需要手动检查每张图像以检查是否记录了不需要的数据。检查clean_up.ipynb是否有一个简单的脚本来删除不需要的数据以及 csv 文件中的伴随行。另请查看preprocess.ipynbget_mean_std.ipynb以获取预处理数据的示例代码。

PilotNet.ipynb是 Mariusz Bojarski 的End to End Learning for Self-Driving Cars的实现,略有不同。上面显示的演示是使用以下笔记本创建的。

要在模型上运行推理,请查看脚本目录中的inference.ipynb 。

样本训练数据

对于那些感兴趣的人,这里提供了一个由 162,495 张图像组成的驾驶数据集(17G)。

通用架构

Europilot 通过简化的界面隐藏了捕获屏幕数据和操纵杆数据的复杂性。在内部,操纵杆数据流被解析为机器可读格式,对我们来说就是罗技 G27。如果您有不同的操纵杆,请根据需要修改joystick.py 。

我们目前有使用 Keras 实现的示例笔记本。我们希望在其他流行的框架中添加更多示例。

虚拟操纵杆驱动程序是通过在内核中附加用户空间驱动程序,通过将事件输出到 udev 来实现的。这个驱动程序可以在 ETS2 中被识别。请注意,驱动必须在游戏开始前进行初始化,否则不会出现在控制器页面中。

为什么选择 ETS2 ?

Europilot 捕获屏幕输入,因此从技术上讲它与游戏无关。我们选择 ETS2 作为我们的第一个目标有几个原因。

  • 多平台支持:ETS2 支持 Windows、OS X 和 Linux。开发者可以在 Macbook 或 Ubuntu 工作站上运行游戏。这让 ETS2 领先于 GTA 5 等游戏。

  • 逼真的图形/物理:我们研究了开源游戏,但发现图形或物理引擎对于我们的用例来说不够逼真。毕竟,ETS2 的标题中包含“模拟器”。

  • 乐趣:拥有大型数据集对于开发良好的模型至关重要。因此,作为开发人员,您必须花很多时间玩您的目标游戏。幸运的是,ETS2 玩起来很有趣!

[/hidecontent]

 
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
雷神屏幕挂灯l1pro上架京东:支持双光源设计
绿色消费成年轻人“心头好”(大数据观察·青年消费新趋势)
首次演示聚变能发电!合肥紧凑型聚变能实验装置工程总装正式启动
1月最新Android性能榜出炉:vivo天玑9400旗舰夺冠
今年福建重点支持人工智能等领域公共服务能力提升

首页

分类

定制方案

消息

我的