嵌入式系统中人工智能和机器学习的实际应用

2020-06-29 15:05:57 嵌入式开发中心 32

嵌入式开发通常由部署高度优化和高效的系统的需求所驱动。

人工智能是一门计算机科学学科,致力于研究如何使用计算机来模仿人类智能。自20世纪计算机技术问世以来,人工智能就已经存在了,当时诸如Alan Turing之类的先驱者预见到了计算机以人类可以类似的方式解决问题的可能性。

经典的计算机编程通过在代码中显式编码算法,指导计算机执行逻辑来处理数据和计算输出来解决问题。相比之下,机器学习(ML)是一种人工智能方法,旨在寻找数据模式,并根据数据进行有效学习。有很多方法可以实现,包括预标记数据(或不标记数据),指导算法开发的强化学习,通过统计分析(或其他某种方式)提取特征,然后根据经过训练的数据集对输入数据进行分类。确定具有指定置信度的输出。

深度学习(DL)是机器学习(ML)的子集,它使用多层神经网络从迭代的大型数据集中训练模型。训练后,模型可以查看新数据集以推断出新数据。这种方法最近引起了很多关注,并已应用于各种问题,如图像处理和语音识别或金融资产建模。我们认为这种方法也对未来的关键基础架构和设备产生重大影响。

在嵌入式系统中应用ML / DL

由于创建精确模型所需的大量数据集以及训练模型所需的大量计算能力,因此通常在云或高性能计算环境中进行训练。相反,推论通常应用于靠近数据源的设备中。尽管分布式培训或边缘培训是一个非常令人感兴趣的话题,但它并不是当今大多数ML系统的部署方式。为了简单起见,我们假设训练在云中进行,而推理将在边缘或设备内进行。

如前所述,MLDL是以数据为中心的学科。这样,创建和训练模型需要访问大型数据集以及为数据处理提供丰富环境的工具和环境。使用了简化数据处理,实现复杂的数学库和统计分析的框架和语言。这些通常是诸如Python之类的语言框架,然后在其上构建ML框架。有很多这样的框架,但一些常见的框架包括TensorFlowCaffePyTorch

ML框架可用于模型开发和训练,也可用于在边缘使用经过训练的模型来运行推理引擎。

ML是高度计算密集型的,早期部署(例如在自动驾驶汽车中)依赖于专用的硬件加速器,例如GPUFPGA或专用的神经网络。随着这些加速器在SoC中变得越来越普遍,我们可以预期看到高效的引擎在受限设备中运行DL模型。发生这种情况时,另一个部署选项是编译经过训练的模型,以在DNN加速器上进行优化部署。一些这样的工具已经存在,并且需要现代的编译器框架(例如LLVM)以模型前端和硬件加速器后端为目标。

对嵌入式开发的影响

嵌入式开发通常由部署高度优化和高效的系统的需求所驱动。经典的开发方法是从非常受限的硬件和软件环境开始,并仅在需要时才添加功能。这是RTOS应用程序的典型领域。

随着技术的快速变化,我们看到开发方法首先要使复杂的系统正常工作,然后在以后的阶段进行优化以进行部署。与软件的许多重大进步一样,开源社区是ML中创新步伐和规模的重要推动力。拥抱源于开源的工具和框架,这些工具和框架通常始于Linux的开发,正迅速成为主要的创新途径。因此,同时使用实时操作系统(RTOS)和Linux,或将开源从Linux迁移到RTOS都是必须得到支持的重要开发人员旅程。

无论公司是刚刚起步还是准备部署优化的机器学习解决方案,他们都必须构建基础技术和丰富的开发环境来抽象化复杂性并启用异构运行时环境。





24小时全国服务热线:0755-88879880

 

深圳市朗锐智科实业有限公司是深圳航大物联网研究院旗下专注物联网方案实施实现的创新企业,致力于成为“领先的物联网综合方案服务提供商”。

提供从云到端的全流程产品研发和生产服务,硬件设计涵盖单片机、ARM、X86、DSP等平台,软件开发跨Windows、linux、android及IOS等操作系统,应用技术从数据采集、工业通讯、自动化控制到机器视觉等,服务领域从电梯安全、油田监控、环保监测、铁路安全、现代农业到医疗健康等。

以物联网综合解决方案为基础,通过高效软硬件开发,服务客户的垂直行业应用,帮助客户实现物联网项目快速实施快速盈利。

在线留言
深圳市朗锐智科实业有限公司