无限场景开放式仿真器 PGDrive:Improving the Generalization of End-to-End Driving through Procedural Generation


本文介绍一个拥有无限场景开放式驾驶仿真器:PGDrive,通过 Procedural Generation 技术可以生成无限多的驾驶场景,由香港中文大学周博磊团队开发。

论文地址:https://arxiv.org/pdf/2012.13681.pdf

项目地址:https://decisionforce.github.io/pgdrive/


0. Absrtact

(这里先给出本文摘要)

在过去的几年中,基于学习的自动驾驶系统(learning-based self driving system)受到了越多越多的关注。为了保证安全性,自动驾驶系统首先在模拟器中开发和验证,然后再应用到真实世界中。但是,大多数现有的驾驶模拟器仅包含一组固定的场景和数量有限的配置设置。这很容易造成系统的过拟合,以及缺乏对未见场景的泛化能力。

为了更好地评估和改善端到端驾驶系统的泛化能力,本文将介绍一个开放、高度可配置的驾驶模拟器 PGDrive,模拟器具有procedural generation 的特征。模拟器首先通过提出的生成算法从基本blocks中采样来生成多样化的道路网络。然后将它们转变为交互式训练环境,在该环境中以逼真的运动学方法渲染车辆附近的交通流。实验结果证实随着procedural generation的场景数量的增加,能够提高自动驾驶汽车在不同交通密度道路网络场景的泛化能力。


1. Introduction & Related Work

( 本文的引言部分和第二部分研究现状这里就不详细介绍了,大家可以查看原文,我在这里大致总结下。)

  • Self Driving
    自动驾驶研究可以分为两类:模块化(modular)端到端(end-to-end)。在模块化研究中,自动驾驶系统由许多子系统组成,如感知,定位,规划,控制,决策等。模块化设计的优势是可解释性,如果发生故障或意外行为,则可以轻松识别出发生故障的模块。 但是,设计和维护模块需要花费大量的人力,并且还可能会因人工设计而导致系统内部冗余。另一方面,一种流行的端到端方法是通过强化学习 驾驶汽车。近年来,强化学习能够通过与环境交互来发现特定于任务的知识,因此大大减轻了对精心设计和领域知识的需求。 同时,强化学习主体通过对环境的探索来学习,因此其能力不限于训练数据。
  • Driving Simulators
    这里介绍了8种常用的驾驶模拟器,CARLA,GTA V,SUMMIT,Flow,TORCS,Duckietown,Highway-env,SMARTS。它们的主要劣势是地图场景有限,不能提供多样的训练场景来帮助自动驾驶汽车提高泛化能力。
  • Procedural Feneration
    这里介绍了过程生成技术,使用到了数据增强,域随机化,GAN等技术来设计过程生成算法。
  • Generalization
    这里提出强化学习可以解决过拟合现象,在本文作者中比较了SACPPO两种强化学习算法的学习能力。

2. PGDrive Simulator

下表给出了PGDrive与其它驾驶模拟器的比较,可以看到,PGDrive最突出的特征是支持Procedural Generation,可以生成无限多的驾驶场景。
在这里插入图片描述


A. Road Blocks

如下图所示,有7种基本道路块(road block)Straight,Ramp,Fork,Roundabout,Curve,T-Intersection,Intersection。 它们是基本的道路块,可以任意组合来形成道路网络。
在这里插入图片描述

B. Procedural Generation of Driving Scene (重点)

下面将介绍本文提出的Procedural Generation算法(如下图所示)。

  • 首先随机选择一个基本road blockGwG_wGw
  • 随机旋转所选择的road block,判断GwG_wGwGnetG_{net}Gnet之间是否能连接起来,如果成功的话,则将新块GwG_wGw添加到GnetG_{net}Gnet中,这里至多进行TTT次尝试,每个GnetG_{net}Gnet包含nnn个blocks。
  • 最后是对交通流进行初始化设置,包括汽车类型,运动学参数,目标速度等。
    在这里插入图片描述

3. Experiments

Results on Generalization

论文比较了SACPPO两种强化学习算法的泛化能力,可以看到随着训练场景数量的增加,算法在测试集上的性能不断提高,其中SAC算法性能优于PPO
在这里插入图片描述
最后,作者在项目网站上也给出了一个视频demo。

Reinforcement Learning 自动驾驶仿真

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java容器类2:Map及HashMap深入解读

Java的编程过程中经常会和Map打交道,现在我们来一起了解一下Map的底层实现,其中的思想结构对我们平时接口设计和编程也有一定借鉴作用。(以下接口分析都是以jdk1.8源码为参考依据) 1. Map An object that maps keys to values. A map cannot contain du…

两阶段3D目标检测网络 SIENet: Spatial Information Enhancement Network for 3D Object Detection from Point Cloud

本文介绍一篇两阶段的3D目标检测网络:SIENet。 这里重点是理解本文提出的 Hybrid-Paradigm Region Proposal Network 和 Spatial Information Enhancement module。 论文链接为:https://arxiv.org/abs/2103.15396 项目链接为:https://githu…

java容器类3:set/HastSet/MapSet深入解读

介绍 Set:集合,是一个不包含重复数据的集合。(A collection that contains no duplicate elements. ) set中最多包含一个null元素,否者包含了两个相同的元素,不符合定义。 上一篇学习了Java中的容器类的一…

Bandit算法原理及Python实战

目录 1)什么是Bandit算法 为选择而生。 Bandit算法与推荐系统 怎么选择Bandit算法? 2)常用Bandit算法 Thompson sampling算法 UCB算法 Epsilon-Greedy算法 Greedy算法 3)Bandit算法Python实战 参考资料: 推荐系统里面有…

ava容器类4:Queue深入解读

Collection的其它两大分支:List和Set在前面已近分析过,这篇来分析一下Queue的底层实现。 前三篇关于Java容器类的文章: java容器类1:Collection,List,ArrayList,LinkedList深入解读 java容器类2:Map及HashMap深入解…

Waymo离线点云序列3D物体检测网络 (3D Auto Labeling): Offboard 3D Object Detection from Point Cloud Sequences

本文介绍一篇Waymo基于点云序列的3D物体检测网络:3D Auto Labeling,论文已收录于CVPR 2021。 这里重点是理解本文提出的 Object-centric Auto Labeling。 论文链接为:https://arxiv.org/abs/2103.05073 2021-09-02补充:本文作者…

Waymo自动驾驶数据集介绍与使用教程

本文将对Waymo自动驾驶数据集(Waymo Open Dataset)进行介绍。 论文链接为:https://arxiv.org/abs/1912.04838v7 项目链接为:https://github.com/waymo-research/waymo-open-dataset 数据集链接为:https://waymo.com…

Java 并发基础——线程安全性

线程安全:多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类都能表现出正确的行为,那么久称这个类是线程安全的。 在线程安全类中封…

详解一阶段3D物体检测网络 SE-SSD: Self-Ensembling Single-Stage Object Detector From Point Cloud

本文介绍一篇一阶段的3D物体检测网络:SE-SSD,论文已收录于 CVPR 2021。 这里重点是理解本文提出的 Consistency Loss 、Orientation-Aware Distance-IoU Loss、Shape-Aware Data Augmentation。 论文链接为:https://arxiv.org/pdf/2104.0980…

详解3D点云分割网络 Cylindrical and Asymmetrical 3D Convolution Networksfor LiDAR Segmentation

本文介绍一篇3D点云分割网络:Cylinder3D,论文已收录于 CVPR 2021。 这里重点是理解本文提出的 Cylindrical Partition 和 Asymmetrical 3D Convolution Network。 论文链接为:https://arxiv.org/pdf/2011.10033.pdf 项目链接为:…

自动驾驶3D物体检测研究综述 3D Object Detection for Autonomous Driving: A Survey

本文介绍一篇最新的自动驾驶3D物体检测研究综述(2021年6月份发布),来源于中国人民大学,论文共26页,99篇参考文献。 论文链接为:https://arxiv.org/pdf/2106.10823.pdf 0. Abstract 自动驾驶被看作是避免人…

Java中接口的多继承

我们知道Java的类只能继承一个类,但可以实现多个接口。但是你知道么?Java中的接口却可以继承多个接口。本文就来说一说Java中接口的多继承。 进入主题之前,先扩展一下。Java为什么只支持单继承呢? 我们不妨假设Java支持多继承&a…

详解基于IMU/GPS的行人定位: IMU/GPS Based Pedestrian Localization

本文介绍一篇使用 IMU/GPS 数据融合的行人定位论文,这里重点是理解本文提出的 Stop Detection 和 GPS Correction。 论文地址为:https://www.researchgate.net/publication/261452498_IMUGPS_based_pedestrian_localization 1. Introduction 低成本的 …

每次maven刷新jdk都要重新设置

pom.xml <java.version>17</java.version> 改为<java.version>1.8</java.version>

【CodeForces - 706D】Vasiliy's Multiset(01字典树)

题干&#xff1a; Author has gone out of the stories about Vasiliy, so here is just a formal task description. You are given q queries and a multiset A, initially containing only integer 0. There are three types of queries: " x" — add integer …

详解自动驾驶仿真框架OpenCDA: An Open Cooperative Driving Automation Framework Integrated with Co-Simulation

本文介绍一款同时支持协同驾驶开发与测试、自动驾驶全栈开发 和 CARLA-SUMO联合仿真的开源框架 OpenCDA&#xff0c;论文已收录于 ITSC 2021。主要feature有&#xff1a; 支持CARLA-SUMO联合仿真&#xff0c;CARLA端主管环境渲染、传感器模拟、车辆动力&#xff0c;Sumo端主管…

JavaMonitor 监视器

为什么wait(), notify()和notifyAll()必须在同步方法或者同步块中被调用&#xff1f; 当一个线程需要调用对象的wait()方法的时候&#xff0c;这个线程必须拥有该对象的锁&#xff0c;接着它就会释放这个对象锁并进入等待状态直到其他线程调用这个对象上的notify()方法。同样的…

KITTI自动驾驶数据集可视化教程

本文介绍关于自动驾驶数据集KITTI的基本操作&#xff0c;包括Camera和LiDAR可视化教程&#xff0c;源码已上传&#xff1a;https://download.csdn.net/download/cg129054036/20907604 1. 数据准备 将 KITTI 数据 (calib, image_2, label_2, velodyne) 添加到 dataset/KITTI/ob…

重读经典《Quaternion kinematics for the error-state Kalman filter》

本文将介绍一篇关于 四元数运动学的误差卡尔曼滤波 经典论文。本文结构如下&#xff1a; 第1章四元数定义和性质介绍&#xff0c;包括&#xff1a;加法、减法、乘法&#xff08;矩阵表示&#xff09;、模、幂数、指数运算等。第2章旋转群定义和性质介绍&#xff0c;包括&#…

【CodeForces - 789C】Functions again(最大子段和变形,dp,思维)

题干&#xff1a; Something happened in Uzhlyandia again... There are riots on the streets... Famous Uzhlyandian superheroes Shean the Sheep and Stas the Giraffe were called in order to save the situation. Upon the arriving, they found that citizens are wo…