赞
踩
最近自动驾驶和数据闭环结合在一起,原因是自动驾驶工程已经被认可是一个解决数据分布“长尾问题”的任务,时而出现的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”
模块化的方法也是可以采用数据驱动方式,可以分成以下模块:
下面以此分别讨论:
“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”
“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”
“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”
“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”
“A Fast Integrated Planning and Control Framework for AV via Imitation Learning”
“Deep Imitative Models For Flexible Inference, Planning, And Control”
“ZeroScatter: Domain Transfer for Long Distance Imaging and Visionthrough Scattering Media”
“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 Kafka
Apache Spark
Apache Flink
Apache HBase
Apache Cassandra
Presto
Apache Hudi
Apache Airflow
Apache Mesos
Kubernetes
其实AWS的机器学习平台本身也提供了数据标注工具Amazon SageMaker Ground Truth。
如图是微软开源标注工具VOTT(Video Object Tagging Tool):
microsoft/VoTTgithub.com/Microsoft/VoTT/正在上传…重新上传取消
标注工具可以是全自动、半自动和手工等3类。
比如人工标注工具:摄像头图像LabelMe和激光雷达点云PCAT
LabelMe. The Open annotation toollabelme.csail.mit.edu/Release3.0/正在上传…重新上传取消
halostorm/PCAT_open_sourcegithub.com/halostorm/PCAT_open_source正在上传…重新上传取消
还有半自动标注工具:摄像头CVAT、VATIC,激光雷达3D BAT、SAnE,图像点云融合Latte
openvinotoolkit/cvatgithub.com/openvinotoolkit/cvat正在上传…重新上传取消
cvondrick/vaticgithub.com/cvondrick/vatic正在上传…重新上传取消
walzimmer/3d-batgithub.com/walzimmer/3d-bat正在上传…重新上传取消
hasanari/sanegithub.com/hasanari/sane正在上传…重新上传取消
bernwang/lattegithub.com/bernwang/latte正在上传…重新上传取消
自动标注工具:基本没有开源(商用也没有吧)的工具可用。
这里有一些自动标注方面的论文:
“Offboard 3D Object Detection from Point Cloud Sequences“
这里是Nvidia在会议报告中给出的端到端标注流水线:它需要人工介入
在这里顺便提一下“数据可视化”的问题,各种传感器数据除了标注,还需要一个重放、观察和调试的平台。如图是Uber提供的开源可视化工具 Autonomous Visualization System (AVS):
https://avs.auto/#/avs.auto/#/正在上传…重新上传取消
其中”XVIZ“是提出的自动驾驶数据实时传输和可视化协议:
另外,“streetscape.gl“是一个可视化工具包,在XVIZ 协议编码自动驾驶和机器人数据。 它提供了一组可组合的 React 组件,对 XVIZ 数据进行可视化和交互。
模型训练平台,主要是机器学习(深度学习)而言,前面亚马逊AWS提供了自己的ML平台SageMaker。我们知道最早有开源的软件Caffe,目前最流行的是Tensorflow和Pytorch(Caffe2并入)。
Tensorflow
Pytorch
在云平台部署深度学习模型训练,一般采用分布式。按照并行方式,分布式训练一般分为数据并行和模型并行两种。当然,也可采用数据并行和模型并行的混合。
模型并行:不同GPU负责网络模型的不同部分。例如,不同网络层被分配到不同的GPU,或者同一层不同参数被分配到不同GPU。
数据并行:不同GPU有模型的多个副本,每个GPU分配不同的数据,将所有GPU计算结果按照某种方式合并。
模型并行不常用,而数据并行涉及各个GPU之间如何同步模型参数,分为同步更新和异步更新。同步更新等所有GPU的梯度计算完成,再计算新权值,同步新值后,再进行下一轮计算。异步更新是每个GPU梯度计算完无需等待,立即更新权值,然后同步新值进行下一轮计算。
分布式训练系统包括两种架构:Parameter Server Architecture(PS,参数服务器)和Ring -AllReduce Architecture(环-全归约)。
如下图是PS结构图:
这个图是Ring AllReduce的架构图:
Pytorch现在和多个云平台建立合作关系
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。