如何在单片机上实现边缘的人工智能
扫描二维码
随时随地手机看文章
越来越多的人工智能(AI)在互联网上的东西设备中创造智能的设备,各种应用正受益于这些智能设备。他们学习数据,在没有人为干预的情况下做出自主决策,导致产品与环境进行更合乎逻辑、更像人类的互动。
人工智能和微处理器的结合为单片机开辟了新的市场。它使越来越多的新的应用程序和用例能够使用简单的单片机和人工智能加速来促进智能控制。这些由AI启动的单片机提供了一种独特的DSP计算和机器学习能力(ML)来进行推理,目前正被用于各种各样的应用,如关键字识别、传感器融合、振动分析和语音识别。高性能的单片机能够在视觉和成像方面提供更复杂的应用,如面部识别、指纹分析和自主机器人。
人工智能技术
下面是一些能够使用iot设备的人工智能技术:
机器学习 :机器学习算法基于代表性数据建立模型,使设备能够在没有人为干预的情况下自动识别模式。ML供应商提供了训练模型所需的算法、API和工具,这些模型可以被构建到嵌入式系统中。然后,这些嵌入式系统使用预先训练的模型来驱动基于新输入数据的推论或预测。例如传感器中心,关键词识别,预测维护和分类。
深入学习 深度学习是一种机器学习,通过使用神经网络的许多层来从复杂的输入数据中提取更高层次的特性和见解来训练系统。深度学习与非常大、多样和复杂的输入数据一起工作,并使系统能够迭代学习,随着每一步的进行改进结果。运用深入学习的应用实例有图像处理、客户服务的聊天机器人和面部识别。
自然语言处理(NLP) :NLP是人工智能的一个分支,处理系统与人类之间使用自然语言的互动。NLP帮助系统理解和解释人类语言(文本或语音),并在此基础上做出决策。例如语音识别系统、机器翻译和预测打字.
计算机视觉 :机器/计算机视觉是一个人工智能领域,培训机器收集、解释和理解图像数据,并根据这些数据采取行动。机器从相机上收集数字图像/视频,使用深入学习的模型和图像分析工具,以精确地识别和分类物体,并根据它们"看到"的东西采取行动。例如制造装配线故障检测、医疗诊断、零售店的面部识别和无人驾驶汽车测试。
母婴健康评估计划
过去,人工智能是具有强大CPU核心、大内存资源和用于分析的云连接的MPS和GPS的权限。不过,近年来,随着智能化程度的日益提高,我们开始看到在嵌入式AOT应用程序中使用单片机。移动到边缘是由延迟和成本因素驱动的,涉及到将计算移动到更接近数据的位置。基于单片机的iot设备上的人工智能能够实时决策和更快地响应事件,具有带宽需求较低、功率较低、延迟时间较低、成本较低和安全性较高的优点。由于最近的单片机具有较高的计算能力,以及薄神经网络(NN)框架的可用性,而这些框架更适合于在这些终端设备中使用的资源受限的单片机。
神经网络是一个节点的集合,被安排在一个层中,接收上一层的输入,并生成一个输出,该输出是从输入的加权和偏置和中计算出来的。这个输出沿着所有的输出连接传递到下一层。在训练过程中,训练数据被输入到网络的第一个或输入层,每个层的输出被传递到下一个。最后一层或输出层生成模型的预测值,这些预测值与评估模型错误的已知预期值进行比较。训练过程涉及到在每次迭代中使用一个叫做反传播的过程来完善或调整网络每个层的权重和偏差,直到网络的输出与预期值密切相关。换句话说,网络从输入数据集中反复"学习",并逐步提高输出预测的准确性。
神经网络的训练需要非常高的计算性能和内存,通常在云中进行。经过训练,该预训练的NN模型嵌入到单片机中,并作为基于训练的新输入数据的推理引擎。
这种推理生成需要比模型的训练低得多的计算性能,因此适合于单片机。这种预先训练的NN模型的权重是固定的,可以放在闪存,从而减少SRAM的需求量,使其适合于更多的资源受限的单片机。
关于妇幼保健单位的实施
在单片机上实施AOOT涉及到几个步骤。最常见的方法是使用现有的神经网络(NN)框架模型之一,如卡菲或张力流岩,适合于基于单片机的终端设备解决方案。用于机器学习的NN模型的培训是由人工智能专家使用人工智能供应商提供的工具在云端进行的。利用AI供应商和单片机制造商的工具,对单片机进行了NN模型的优化和集成。采用预先训练的NN模型对单片机进行了推断。
流程的第一步是完全脱机完成,从终端设备或应用程序捕获大量数据,然后用于培训NN模型。模型的拓扑结构由AI开发人员定义,以充分利用可用数据并提供该应用程序所需的输出。对NN模型的训练是通过迭代地将数据集传递到模型中来完成的,目的是持续地减少模型输出时的错误。国家网络框架中有一些工具可以在这个过程中提供帮助。
在第二步中,这些经过培训的模型被转换成适合于单片机的格式,这些模型被优化用于某些功能,如关键字识别或语音识别。这个过程的第一步是使用AI转换工具将它转换为平面缓冲文件。这可以选择性地通过量化器运行,以减少尺寸和优化它的单片机。然后将该平面缓冲区文件转换为C代码,并将其作为运行时可执行文件传输到目标单片机。
这个单片机,配备了预先训练的嵌入式人工智能模型,现在可以部署在终端设备。当新数据输入时,它将通过模型运行,并在培训的基础上生成一个推理。当新的数据类出现时,NN模型可以被送回云端进行再培训,新的再培训模型可以在单片机上编程,可能通过OTA(空)固件升级。
可以用两种不同的方式来架构基于mcu的AI解决方案。为了讨论这个问题,我们假设在目标单片机中使用ARM皮质M核。
在第一种方法中,将转换的NN模型在皮层-MCPU核心上执行,并使用CMS-NN库进行加速。这是一个简单的配置,可以处理没有任何额外的硬件加速度,适合于更简单的AI应用程序,如关键字定位,振动分析和传感器枢纽。
一个更复杂和更高性能的选择包括一个NN加速器或微神经处理单元(U-NSP)硬件在单片机。这些U-NPS在资源受限的iot终端设备中加速机器学习,并可能支持压缩,从而降低模型的功率和尺寸。它们支持能够完全执行音频处理、语音识别、图像分类和对象检测的大多数公共NN网络的操作员。不受u-n-n支持的网络可以回到主CPU核心,并由cms-nn库加速。在此方法中,NN模型被执行在UNP上。
这些方法只展示了在基于单片机的设备中集成AI的几种方法。随着单片机将性能边界推到更高的层次,更接近于来自MPPS的预期,我们希望开始看到包括轻量级学习算法和推理在内的完整的AI功能,直接建立在单片机上。
在边缘的人工智能是未来
未来,关于资源受限的单片机系统的人工智能的实施将呈指数级增长,随着单片机系统推进性能界限,模糊了单片机和MPS之间的界线,越来越多的适合于资源受限设备的小的NN模型开始出现,我们将继续看到新的应用程序和用例出现。
将来,随着单片机性能的提高,除了推理之外,我们可能会看到轻量级学习算法的实现,直接在单片机上运行。这将为单片机制造商开辟新的市场和应用,并将成为它们的一个重大投资领域。