你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建自动驾驶汽车运营(AVOps)解决方案

Azure 机器学习
Azure 数据工厂
Azure Data Share
Azure Batch
GitHub

解决方案创意

本文介绍解决方案思路。 云架构师可以使用本指南来帮助可视化此体系结构的典型实现的主要组件。 使用本文作为一个起点,设计一个架构良好的解决方案,该解决方案符合工作负荷的特定要求。

此体系结构提供有关开发自动化驾驶解决方案的指导和建议。

建筑

显示 AVOps 体系结构的 关系图。

下载包含本文体系结构关系图的 Visio 文件

数据流

  1. 测量数据来自相机、雷达、超声波、激光雷达和车辆遥测等传感器的数据流。 车辆中的数据记录器在记录器存储设备上存储测量数据。 然后,记录器存储数据上传到登陆数据湖。 Azure Data BoxAzure Stack Edge等服务,或专用连接(如 Azure ExpressRoute)将数据引入 Azure。

    度量数据也可以是模拟或其他来源的合成数据。 (MDF4、TDMS 和 rosbag 是度量的常见数据格式。在 DataOps 阶段中,将处理引入的度量值。 执行验证和数据质量检查(如校验和)以删除低质量数据。 在此阶段中,将提取测试驱动程序在体验版期间记录的原始信息元数据。 此数据存储在集中式元数据目录中。 此信息可帮助下游进程识别特定的场景和序列。

  2. 数据由 Azure 数据工厂处理, 提取、转换和加载(ETL)管道。 输出以原始和二进制数据的形式存储在 azure Data Lake 中。 元数据存储在 Azure Cosmos DB。 然后,根据方案,它可能会发送到 azure 数据资源管理器 ,或 Azure 认知搜索

  3. 数据中添加了其他信息、见解和上下文,以提高其准确性和可靠性。

  4. 提取的度量数据通过 Azure Data Share提供给标记合作伙伴(人工循环)。 第三方合作伙伴通过单独的 Data Lake 帐户执行自动标记、存储和访问数据。

  5. 标记数据集流向下游 MLOps 流程,主要是为了创建感知模型和传感器融合模型。 这些模型执行由自动驾驶汽车用来检测场景的功能(即车道变化、道路堵塞、行人、红绿灯和交通标志)。

  6. ValOps 阶段,训练的模型通过开放循环和闭路测试进行验证。

  7. Foxglove等工具,Azure Kubernetes 服务Azure 容器实例,直观显示引入和处理的数据。

数据采集

数据收集是自动驾驶汽车运营(AVOps) 的主要 挑战之一。 下图显示了如何收集和存储数据湖中的脱机和联机车辆数据的示例。

显示脱机和联机数据收集的关系图。

DataOps

数据操作(DataOps)是一组用于提高数据操作质量、速度和可靠性的做法、流程和工具。 用于自动驾驶的 DataOps 流的目标是确保用于控制车辆的数据具有高质量、准确且可靠的数据。 通过使用一致的 DataOps 流,可以提高数据操作的速度和准确性,并做出更好的决策来控制自动驾驶汽车。

DataOps 组件

  • Data Box 用于通过区域运营商将收集的车辆数据传输到 Azure。
  • ExpressRoute 通过专用连接将本地网络扩展到Microsoft云中。
  • Azure Data Lake Storage 基于阶段(例如原始或提取)存储数据。
  • Azure 数据工厂 通过 批处理计算 执行 ETL,并创建用于协调数据移动和转换数据的数据驱动工作流。
  • Azure Batch 针对数据整理、筛选和准备数据以及提取元数据等任务运行大规模应用程序。
  • Azure Cosmos DB 存储元数据结果,例如存储的度量值。
  • Data Share 用于与合作伙伴组织(如标记公司)共享数据,并增强安全性。
  • Azure Databricks 提供了一组工具,用于大规模维护企业级数据解决方案。 需要对大量车辆数据执行长时间运行的操作。 数据工程师使用 Azure Databricks 作为分析工作台。
  • Azure Synapse Analytics 缩短跨数据仓库和大数据系统的见解时间。
  • Azure 认知搜索 提供数据目录搜索服务。

MLOps

机器学习操作(MLOps)包括:

  • 特征提取模型(如 CLIP 和 YOLO)用于对场景进行分类(例如,行人是否在场景中)在 DataOps 管道中。
  • 用于标记引入的图像和激光雷达数据和雷达数据的自动标记模型。
  • 用于检测对象和场景的感知和计算机视觉模型。
  • 组合传感器流的传感器融合模型。

感知模型是此体系结构的重要组成部分。 此 Azure 机器学习模型使用检测到的和提取的场景生成对象检测模型。

容器化机器学习模型传输到芯片(SoC)硬件上的系统可以读取的格式,并在 MLOps 管道中出现验证/模拟软件。 此步骤需要 SoC 制造商的支持。

MLOps 组件

  • Azure 机器学习 用于开发机器学习算法,例如特征提取、自动标记、对象检测和分类以及传感器融合。
  • Azure DevOps 支持 CI/CD、测试和自动化等 DevOps 任务。
  • 适用于企业 的 GitHub 是 DevOps 任务的替代选择,例如 CI/CD、测试和自动化。
  • Azure 容器注册表 使你能够在专用注册表中生成、存储和管理容器映像和项目。

ValOps

验证操作(ValOps)是在执行昂贵的实际环境测试之前,通过 托管方案在模拟环境中测试开发模型的过程。 ValOps 测试有助于确保模型满足所需的性能标准、准确性标准和安全要求。 云中验证过程的目标是在实时环境中部署自动驾驶汽车之前识别并解决任何潜在问题。 ValOps 包括:

  • 模拟验证。 基于云的模拟(开放循环闭循环测试)环境可实现自动驾驶汽车模型的虚拟测试。 此测试大规模运行,成本低于实际测试。
  • 性能验证。 基于云的基础结构可以运行大规模测试来评估自动驾驶汽车模型的性能。 性能验证可能包括压力测试、负载测试和基准。

使用 ValOps 进行验证有助于利用基于云的基础结构的可伸缩性、灵活性和成本效益,并缩短自动驾驶汽车模型的上市时间。

开放循环测试

重新模拟或 传感器处理,是自动驾驶功能的开放循环测试和验证系统。 这是一个复杂的过程,可能存在安全、数据隐私、数据版本控制和审核的法规要求。 重新模拟过程通过云中的图形记录了来自各种汽车传感器的原始数据。 重新模拟验证数据处理算法或检测回归。 OEM 将传感器组合在表示真实车辆的定向无环图中。

重新模拟是大规模并行计算作业。 它使用数万个核心来处理数十或数百个数据。 它需要 I/O 吞吐量超过 30 GB/秒。 来自多个传感器的数据合并到数据集中,这些数据集表示当车辆导航真实时车辆计算机视觉系统所记录的视图。 开放循环测试使用重播和评分根据地面真相验证算法的性能。 输出稍后在工作流中用于算法训练。

  • 数据集源自收集原始传感器数据的测试车队车辆(例如相机、激光雷达、雷达和超声波数据)。
  • 数据量取决于相机分辨率和车辆上的传感器数量。
  • 原始数据针对设备的不同软件版本重新处理。
  • 原始传感器数据将发送到传感器软件的传感器输入接口。
  • 输出与以前的软件版本的输出进行比较,并针对 bug 修复或新功能(例如检测新对象类型)进行检查。
  • 在更新模型和软件后,将执行第二次重新注入作业。
  • 地面真相数据用于验证结果。
  • 结果将写入存储和卸载到 Azure 数据资源管理器进行可视化。

闭循环测试和模拟

自动驾驶汽车的封闭式测试是测试车辆功能的过程,同时包括来自环境的实时反馈。 车辆的行为既基于其预先编程的行为,也基于它遇到的动态条件,并相应地调整其操作。 闭循环测试在更复杂的现实环境中运行。 它用于评估车辆处理真实场景的能力,包括它对意外情况的反应。 封闭式测试的目标是验证车辆能否在各种条件下安全有效地运行,并根据需要优化其控制算法和决策过程。

ValOps 管道集成了闭路测试、第三方模拟和 ISV 应用程序。

方案管理

在 ValOps 阶段,使用真实方案的目录来验证自动驾驶解决方案模拟自动驾驶汽车行为的能力。 目标是通过从可公开访问和自由使用的数字地图中自动读取路线网络(该方案的一部分)来加快方案目录的创建速度。 将第三方工具用于方案管理或轻型开源模拟器(如 CARLA),它支持 OpenDRIVE (xodr) 格式。 有关详细信息,请参阅 ScenarioRunner for CARLA

ValOps 组件

  • Azure Kubernetes 服务 在 Fabric 框架中运行大规模批量推理,以便进行开放式循环验证。 建议使用 BlobFuse2 访问度量文件。 也可以使用 NFS,但需要评估用例的性能。
  • Azure Batch 在 Fabric 框架中运行大规模批处理推理,以便进行开放式循环验证。
  • Azure 数据资源管理器 为度量和 KPI(即重新模拟和作业运行)提供分析服务。

集中式 AVOps 函数

AVOps 体系结构很复杂,涉及各种第三方、角色和开发阶段,因此实施良好的治理模型非常重要。

建议创建一个集中式团队来处理基础结构预配、成本管理、元数据和数据目录、世系以及整体业务流程和事件处理等功能。 集中这些服务是高效且简化操作的。

建议使用集中式团队来处理这些职责:

  • 提供 ARM/Bicep 模板,包括标准服务的模板,例如 AVOps 体系结构的每个区域和子区域使用的存储和计算
  • 实现 AVOps 数据循环的事件驱动的业务流程的中央 Azure 服务总线/Azure 事件中心实例
  • 元数据目录的所有权
  • 跨所有 AVOps 组件实现端到端世系和可跟踪性的功能

显示集中式 AVOps 函数的 关系图。

方案详细信息

可以使用此体系结构在 Azure 上构建自动化驾驶解决方案。

潜在的用例

汽车 OEM、第 1 层供应商和开发自动化驾驶解决方案的 ISV。

考虑

这些注意事项实现 Azure Well-Architected Framework 的支柱,这是一组指导原则,可用于提高工作负荷的质量。 有关详细信息,请参阅 azure Well-Architected FrameworkMicrosoft。

安全

安全性提供针对故意攻击和滥用宝贵数据和系统的保证。 有关详细信息,请参阅 安全支柱概述。

了解汽车 OEM 与云提供商之间的责任划分非常重要。 在车辆中,OEM 拥有整个堆栈,但随着数据转移到云中,一些责任将转移到云提供商。 Azure 平台即服务(PaaS)在物理堆栈上提供内置的安全性,包括操作系统。 除了基础结构安全组件外,还可以应用以下改进。 这些改进可实现 Zero-Trust 方法。

成本优化

成本优化是减少不必要的费用并提高运营效率。 有关详细信息,请参阅 成本优化支柱概述。

可以使用这些策略来降低与开发自动驾驶解决方案相关的成本:

  • 优化云基础结构。 仔细规划和管理云基础结构有助于降低成本。 例如,使用经济高效的实例类型和缩放基础结构来满足不断变化的工作负荷。 按照 azure 云采用框架中的指南进行操作。
  • 使用 现成虚拟机。 可以确定 AVOps 部署中的哪些工作负载不需要在特定时间范围内进行处理,并将现成虚拟机用于这些工作负荷。 现成虚拟机允许利用未使用的 Azure 容量来节省大量成本。 如果 Azure 需要恢复容量,Azure 基础结构将逐出现成虚拟机。
  • 使用自动缩放。 通过自动缩放,可以根据需求自动调整云基础结构,减少手动干预的需求,并帮助降低成本。 有关详细信息,请参阅 用于缩放的设计。
  • 请考虑将热层、冷层和存档层用于存储。 在自动驾驶解决方案中,存储成本可能很大,因此需要选择经济高效的存储选项,例如冷存储或不经常访问存储。 有关详细信息,请参阅 数据生命周期管理
  • 使用成本管理和优化工具。 Microsoft成本管理 提供了一些工具,可帮助你识别和解决成本降低方面的问题,例如未使用或未充分利用的资源。
  • 请考虑使用 Azure 服务。 例如,可以使用 Azure 机器学习 来生成和训练自动驾驶模型。 使用这些服务比构建和维护内部基础设施更具成本效益。
  • 使用共享资源。 如果可能,可以使用共享资源(如共享数据库或共享计算资源)来降低与自动驾驶开发相关的成本。 集中式函数 在此体系结构中,例如,实现中央总线、事件中心和元数据目录。 Azure Data Share 等服务还可以帮助你实现此目标。

贡献

本文由Microsoft维护。 它最初由以下参与者编写。

主要作者:

其他参与者:

若要查看非公共LinkedIn配置文件,请登录到LinkedIn。

后续步骤

有关为自动驾驶系统开发 DataOps 的详细信息,请参阅:

你可能还对以下相关文章感兴趣: