最近自动驾驶和数据闭环结合在一起,原因是自动驾驶工程已经被认可是一个解决数据分布“长尾问题”的任务,时而出现的corner case(极端情况)是对数据驱动的算法模型进行升级的来源之一,如图所示。
构成这个自动驾驶数据闭环的核心技术和模块都有哪些呢?首先是这个自动驾驶的算法和模块是数据驱动的,其次源源不断的数据需要有合理有效的方法去利用。
如图是Tesla众所周知的Autopilot数据引擎框架:确认模型误差、数据标注和清洗、模型训练和重新部署。
这是谷歌waymo报告提到的数据闭环平台:其中有数据挖掘、主动学习、自动标注、自动化模型调试优化、测试校验和部署发布。
如图是英伟达公司在自动驾驶开发建立的机器学习平台MAGLEV,也是基于闭环的模型迭代:其中有smart的数据选择、数据标注、模型搜索、训练、评估、调试和部署。
下面对数据闭环各个组成部分进一步讨论:
自动驾驶的数据驱动模型;
云计算平台的基建和大数据处理技术;
训练数据标注工具;
大型模型训练平台;
模型测试和检验;
相关的机器学习技术。
应该说,自动驾驶的算法模块,基本都是数据驱动的训练模型要优于基于规则或者优化的,尤其是感知和预测。
以下图(综述论文 “A Survey of Autonomous Driving: Common Practices and Emerging Technologies”)为例,现在自动驾驶的开发基本是模块化的(a),只有个别是采用端到端模式(b)。
端到端模式可以说绝对是数据驱动的(如图为例),因为传统的优化和规则方法无法处理如此复杂的系统设计和公式化。
“E2E Learning of Driving Models with Surround-View Cameras and Route Planners”
模块化的方法也是可以采用数据驱动方式,可以分成以下模块:
感知:图像/激光雷达/毫米波雷达
地图+定位
预测(感知-预测)
规划决策(预测-规划)
控制(规划-控制)
传感器预处理
模拟仿真
下面以此分别讨论:
1)感知:2-D/3-D 目标检测和分割基本是采用深度学习模型,无论激光雷达、摄像头或者传感器融合的形式;跟踪基本是tracking-by-detection方式,不过把跟踪和检测集成在一起做深度学习模型也是大家讨论的热点之一。
“Keep your Eyes on the Lane: Real-time Attention-guided Lane Detection”
“M3DSSD: Monocular 3D Single Stage Object Detector”
“PointPillars: Fast Encoders for Object Detection from Point Clouds”
“Joint 3D Proposal Generation and Object Detection from View Aggregation”
”Seeing Through Fog: Deep Multimodal Sensor Fusion in Unseen Adverse Weather“
“Fast and Furious: R-T E2E 3D Detection, Tracking & Motion Forecasting with a Single Cnn”
2)地图定位:车辆定位中基于语义地图的方法,在语义目标提取也是采用深度学习模型,甚至语义地图的制作也是如此,目前感兴趣的地图更新(或者在线地图)多半需要检测语义目标。定位的后端也可以是数据驱动的解决,包括全局定位和相对定位,最近SLAM和深度学习的结合工作也如火如荼进行。
“LCDNet: Deep Loop Closure Detection andPoint Cloud Registration for LiDAR SLAM”
“DeepSFM: Structure From Motion Via DeepBundle Adjustment”
“HDMapNet: An Online HD Map Construction and Evaluation Framework”
3)预测:障碍物的轨迹预测现在已经是自动驾驶发展至今的重点之一,现在重要性可以说是高于感知。如何建模智体行为、如何建模智体之间的交互和轨迹预测的动作多模态性,自然最佳方式是采用数据来训练。另外,感知-预测结合解决也是需要大量数据训练去得到合理的模型。
“Learning Lane Graph Representations for Motion Forecasting”
“PnPNet: End-to-End Perception and Prediction with Tracking in the Loop”
“Deep Multi-Task Learning for Joint Localization, Perception, and Prediction”
“TNT: Target-driven Trajectory Prediction”
4)规划:规划问题可以是传统的规则方法,也可以是强化学习或者模仿学习,其中强化学习也需要数据学习惩罚/奖励和策略。目前人们关心规划的地域化和个性化问题,这个比起感知的类似问题解决起来更加困难,比如激进还是保守地进行换道超车和并道汇入。最近有讨论合并预测和规划的解决方法,甚至包括地图定位一起建模,这个没有数据的“喂养”是很难成立的。
“DSDNet: Deep Structured self-Driving Network”
“End-to-end Interpretable Neural Motion Planner”
“MP3: A Unified Model to Map, Perceive,Predict and Plan”
“Probabilistic Anchor Trajectory Hypotheses For Behavior Prediction”
“VectorNet: Encoding HD Maps and Agent Dynamics From Vectorized Representation”
“Deep Imitation Learning for AV in Generic Urban Scenarios with Enhanced Safety”
“Perceive, Predict, and Plan: Safe Motion Planning Through Interpretable Semantic Rep”
5)控制:应该说,控制的传统方法相对成熟,不过并不是说数据驱动就没有价值,实际上规划和控制的确集成在一起建模也是大家感兴趣的领域,前面提到的强化学习和模仿学习同样是不错的解决手段。
“A Fast Integrated Planning and Control Framework for AV via Imitation Learning”
“Deep Imitative Models For Flexible Inference, Planning, And Control”
6)传感器预处理:在进入感知模块之前,传感器的数据处理,比如污染检测、修补、去噪和增强等,传统的方法也会被数据驱动的机器学习方法取代。
“ZeroScatter: Domain Transfer for Long Distance Imaging and Visionthrough Scattering Media”
7)模拟仿真:模拟仿真需要对车辆/行人、传感器、交通环境和道路环境建模,有时候无法直接获得逼真的合成模型,特别是实际发生的交通事件,有时候不得不采用真实传感器数据来建模合成。下图是GAN-based的雨夜图像合成方法。
“ForkGAN: Seeing into the Rainy Night”
数据闭环需要一个云计算/边缘计算平台和大数据的处理技术,这个不可能在单车或单机实现的。大数据云计算发展多年,在资源管理调度、数据批处理/流处理、工作流管理、分布式计算、系统状态监控和数据库存储等方面提供了数据闭环的基础设施支持,比如亚马逊AWS、微软Azure和谷歌云等。
Amazon Elastic Compute Cloud(EC2)是亚马逊云服务AWS的一部分,而Amazon Elastic MapReduce(EMR) 是其大数据云平台,可使用多种开放源代码工具处理大量数据,例如数据流处理Apache Spark、数据仓库Apache Hive和Apache HBase、数据流处理Apache Flink、数据湖Apache Hudi和大数据分布式SQL查询引擎Presto。
下图是亚马逊云AWS提供的自动驾驶数据处理服务平台例子:其中标明1-10个任务环节
下图是AWS给出的一个自动驾驶数据流水线框架:数据收集、注入和存储、模型训练和部署;其中Snowball是AWS的边缘计算系列之一,负责车辆和AWS S3之间的数据传输;其他还有两个,是AWS Snowcone和 AWS Snowmobile。
可以看到,AWS使用了数据存储S3、数据传输Snowball、数据库DynamoDB、数据流处理Flink和Spark、搜索引擎Elasticsearch、工作流管理Apache Airflow和机器学习开发平台SageMaker等。
其他开源的使用,比如流处理的实时数据馈送平台Apache Kafka、资源管理&调度Apache Mesos和分布NoSQL数据库Apache Cassandra。
如图是国内自动驾驶公司Momenta基于亚马逊AWS建立的系统架构实例图:
其中AWS IoT Greengrass 提供边缘计算及机器学习推理功能,可以实时处理车辆中的本地规则和事件,同时最大限度地降低向云传输数据的成本。
其中P3实例和C5实例是Amazon EC2提供的。Amazon CloudFront是AWS的CDN,Amazon Glacier是在线文件存储服务,而Amazon FSx for Lustre 是可扩展的高性能文件存储系统。
除此之外,亚马逊指出的,Momenta采用的AWS服务还包括:监控可观测性服务Amazon CloudWatch、关系数据库Amazon Relational Database Service (Amazon RDS)、实时流数据处理和分析服务Amazon Kinesis(包括Video Streams、Data Streams、Data Firehose和Data Analytics)和消息队列服务Amazon Simple Queue Service (Amazon SQS)等。
最近Momenta还采用Amazon Elastic Kubernetes Service (EKS) 运行容器Kubernetes。此外亚马逊也推荐了Kubernetes服务,AWS Fargate。
Apache KafkaApache Spark
Apache Flink
Apache HBase
Apache Cassandra
PrestoApache Hudi
Apache Airflow
Apache Mesos
Kubernetes
已完成
数据加载中