将人工智能应用于嵌入式应用程序的吸引力是显而易见的,例如,使用Face-id来授权访问工厂地板上的机器控制。人脸识别,语音控制,异常检测,人工智能有很多可能性。
人工智能的开发与标准嵌入式开发有很大不同。你不是在写软件,至少是为了核心功能。你必须训练神经网络来识别模式(比如图像),然后,你必须优化该网络,以满足嵌入式设备有限的占地面积,从而达到尺寸和功率目标。神经网络可能不是传统的代码,但网络及其计算仍然消耗内存和能量。作为一名嵌入式开发人员,你知道尽可能多地压缩这些指标是多么重要。现在让我们至少了解一下这些神经网络是如何工作的。
基础
神经网络在概念上是一系列“神经元”层。每个神经元从前一层读取两个(或更多)输入或输入数据,使用训练好的权重进行计算,并反馈结果。基于这些权重,层检测特征,当你在层中移动时,特征会逐渐变得更复杂,最终在输出端识别出复杂的图像。
第一个聪明的部分是设计网络——有多少层,层与层之间的连接等等——核心神经网络算法。第二个聪明的部分是训练。这是一个过程,在这个过程中,许多图像在网络中运行,并通过标签识别应该识别的内容。这些运行建立了识别所需的权重值。
与嵌入式开发不同的是,在人工智能的开发中,你可以从零开始构建自己的神经网络。你也可以从一个开源选项开始,比如这个face-id选项。你可以将所有这些都构建到一个可以在笔记本电脑上运行的应用程序中,这对于想要注册新的核准面孔的客户来说非常方便。现在,你可以开始在多个姿势中使用一组经批准的人脸测试集来训练你的人际网络。
为什么不在云端做呢?
有一些服务可以在线进行人脸识别——无需在你的设备上使用凌乱的人工智能。只需拍下照片,上传到云端,应用程序就会传回一个OK,你的产品就会批准下一步。
但是–所有获得批准的员工都需要在云中保存他们的照片和其他凭证。对于安全和隐私来说,这可能不是一个好主意。每当工作人员想要访问机器时,将图像传输到云端会消耗大量的能量。如果你的互联网连接断开了,在它恢复之前,任何人都不能被批准。在设备上执行正确的身份验证可以保护隐私和安全,保持较低的电源需求,即使在网络连接断开时也可以继续工作。
现在你已经完成了人工智能的硬部分,你必须将其下载到你的设备上。这本身就是一个有趣的步骤,你肯定需要AI平台的帮助。在把 AI 技术部署于终端设备的过程中,嵌入式开发技术至关重要。简单来说,这一过程需要对芯片进行全方位考量以评估芯片的性能,然后根据神经网络算法做特殊化处理,无缝对接嵌入式设备的能力。既没有浪费运算单元,又最大程度地体现算法的精度,这是一个艺术活,也是技术活。