联系我们,获取演示、技术规范和报价
By using this site you agree to the use of cookies for analytics Learn More

博客 | 如何开发自动驾驶汽车的人工智能(AI)?

Illustration of artificial intelligence for cars

如何开发自动驾驶汽车的人工智能(AI)?

 

Reading time
6 minutes

为汽车行业开发人工智能系统的数据科学平台

Elektrobit 致力于开发系统,使我们的客户能够在汽车领域可靠且安全地部署新兴的前沿技术。数据科学和人工智能正在塑造汽车行业的未来,其中自动驾驶汽车的梦想正变得越来越现实。

Elektrobit 的数据科学平台如图 1 所示,旨在构建用于各个汽车领域(如自动驾驶系统)的人工智能引擎。

我们希望帮助回答以下问题:

  • 人工智能在汽车行业中的作用是什么?
  • 为什么开发此类系统需要一个稳健的框架?

 

Data science platform for automotive artificial intelligence
Figure 1: Architecture of Elektrobit’s data science platform for artificial intelligence engines

 

人工智能的数字时代

人工智能(AI)指的是模仿人类认知功能(如学习和解决问题)的机器。 随着数字计算设备的发展,AI 获得了首次定义,正如其他数字技术一样,它经历了炒作和低谷的周期。 目前,人工智能正准备释放下一波数字颠覆,我们已经在计算机视觉、机器人、汽车开发和语言处理等多个领域看到现实生活中的好处。 由 AI 驱动的机器现在可以执行许多任务,如识别复杂模式、综合信息、得出结论和预测。

尽管 AI 的成功显著,但值得记住的是,它也有局限性。 例如,许多 AI 系统的一个主要批评是它们通常被视为“黑盒”,仅根据训练数据集映射输入和输出变量之间的关系。 这引发了关于系统是否能够推广到训练数据集中未出现的情况的担忧,以及通常很难深入了解问题和解决方案本质的情况。
21 世纪,由于深度学习等领域的进展,AI 再次受到关注,这得益于更快的计算机和大数据的可用性。 所有这些进展都得到了经典处理器单元计算能力不断提高的促进,但更重要的是得益于强大的图形处理单元(GPU),它们的图像处理速度比普通处理器快 40 到 80 倍。 这使得人工智能系统的训练速度在过去两年中提高了五倍甚至六倍。
 

架构

图 1 所示的 Elektrobit 数据科学平台架构遵循深度学习设计工作流中的两个主要操作:训练和推理,以及用于硬件集成和性能提升的附加层。工作台负责通过利用现有方法和工具进行系统的训练、原型设计和开发,并将 AI 算法视为平台中的工具箱。 训练本身将先前定义的数据输入网络,并通过强化正确的预测和纠正错误的预测来使其学习新能力。Elektrobit 数据科学平台中用于人工智能引擎的工具箱示例:合成数据生成器:使用我们的“生成一拍学习”算法人工生成合成数据。

  • 驾驶上下文理解:从网格融合信息中分类驾驶上下文
  • 行为仲裁:从现实世界的网格表示中理解驾驶上下文和策略优化
  • 驾驶仿真环境:在虚拟仿真器(如 Microsoft 的 AirSim)中训练、评估和测试 AI 算法
  • ADTF/ROS/Cloud 接口:与汽车和机器人框架(EB Assist ADTF 或机器人操作系统(ROS))接口,以及在云环境中部署训练和评估作业的可能性。

推理引擎代表训练模型的应用部署包装器。 例如,一个这样的包装器是用于驾驶上下文理解的 EB Assist ADTF(汽车数据和时间触发框架)组件。
我们使用的开源 AI 软件库是 Caffe2、TensorFlow 和 Cognitive Neural ToolKit(CNTK)。 这些是通过性能评估比较中表现最好的三种。
 

为汽车构建人工智能

在汽车行业中,构建软件模块的一个重要方面是进一步实现代码工业化并将其集成到车辆嵌入式平台中。

在 Elektrobit 的数据科学平台中开发 AI 算法遵循图 2 所示的工作流。 第一步是定义需求并收集训练过程所需的数据。 收集数据后,需要进行预处理,包括注释、归一化和过滤。 数据预处理是一个关键步骤,使 AI 算法的原型设计得以正确进行。 还需要设计阶段,然后是训练和验证过程。 一旦 AI 算法经过测试和验证,就可以作为 AI 推理引擎部署。

 

Development workflow of automotive AI
Figure 2: Development workflow inside Elektrobit’s data science platform for artificial intelligence engines

 

作为用例示例,我们正在使用该平台为 ADTF 构建推理引擎。 这些引擎集成在 EB robinos 中,后者包括用于自动驾驶的软件模块。 每个过滤器封装了一个 AI 算法,如驾驶上下文理解、合成数据生成、物体检测和识别,或驾驶场景的语义分割。

包装器作为动态链接库导出,并在实现的过滤器中引用。 Elektrobit 数据科学平台的一个核心理念是模块化,涉及为每个 AI 组件拥有独立的模块。 这种方法将深度学习功能封装在 ADTF 内部,并帮助开发人员轻松访问和测试现有方法,或为其特定问题实现自己的解决方案。

优化算法是设计人工智能推理引擎概念时考虑的另一个阶段。 为了提高计算速度,最佳方法是使用 AI 专用的图形计算单元和低级加速库(例如 NVIDIA 推出的深度神经网络原语库 cuDNN)来并行化工作负载。

汽车软件工程仍然需要一个稳健且可预测的开发周期。汽车领域的软件开发过程受若干国际标准约束,即 Automotive SPICE 和 ISO 26262。在软件方面,公认的标准在概念上仍依赖于传统的 V 型模型开发生命周期。

从更可控的 V 型模型角度来处理深度学习非常重要,以便应对一长串挑战,例如训练、验证和测试数据集的要求,数据定义和预处理的标准,以及参数调优的影响。

图 3 中,我们提出了一个用于平台内原型设计和开发的 V 模型。 数据定义——归一化和清理——以及通过 AI 推理引擎架构的利用是关键的开发阶段,因为 DNN 的功能行为是其架构结构和通过训练的自动适应的综合结果。 将获得的推理引擎与测试场景的部署和统计评估的集成提供了评估此类架构模型所需的评估工具。

 

Software development paradigm of artificial intelligence for cars
Figure 3: V-model software development paradigm for prototyping and development within Elektrobit’s data science platform for artificial intelligence engines

 

通过 Elektrobit 的数据科学平台和相应的 V 模型开发的 ADTF 推理引擎是 Deep Grid Net(DGN)。 其概念如图 4 所示,DGN 是一个深度学习系统,用于理解自动驾驶汽车的驾驶上下文。

DGN 算法通过分析从融合的原始传感器数据构建的局部占用网格(OGs)来预测这种上下文。 本文提出的 DGN 方法利用深度神经网络架构的强大功能,学习交通场景的基于网格的表示。 通过使用 OGs 而不是原始图像数据,我们能够应对自动驾驶场景中常见的不确定性,例如传感器校准、姿态、时间和延迟的变化。 

 

Architecture for understanding the context of automated car driving
Figure 4. DeepGrid Net (DGN) architecture

 

这种学习到的表示随后可以用于不同的自动驾驶任务,例如驾驶上下文理解。DGN 算法可以部署在 EB robinos 软件模块中,这些模块用于为汽车创建具备人工智能的自动驾驶系统。

作者

Article Author of artificial intelligence for cars

Sorin M. Grigorescu
人工智能负责人

Article Author of artificial intelligence for cars

Tiberiu Cocias
团队经理

Article Author of artificial intelligence for cars

Bogdan Trasnea
高级软件开发工程师