电子说
将人工智能放入嵌入式应用程序的吸引力是显而易见的,例如使用面部识别来授权访问工厂车间的机器控制。人脸识别、语音控制、异常检测,有了AI就有了很多可能。我将在此博客中使用 face-id 作为示例。比传统的人机界面和密码更易于使用、更智能、更强大。更不用说其他人都在这样做。AI 的工作方式可能看起来很神奇,但它可以做的是迅速成为最低限度的期望。没有人愿意根据昨天的技术透明地评估产品。
挑战
产品制造商有问题。基于人工智能的开发与标准的嵌入式开发有很大不同。你不是在写软件,至少是为了核心功能。你必须训练一个神经网络来识别模式(如图像),就像你在学校训练一个孩子一样。然后,您必须针对嵌入式设备的受限占用空间优化该网络,以满足尺寸和功率目标。神经网络可能不是常规代码,但网络及其计算仍然会消耗内存并消耗功率。作为嵌入式开发人员,您知道尽可能压缩这些指标的重要性。我将在下一篇博客中讨论这个问题。现在让我们至少了解一下这些神经网络是如何工作的。
基础知识
我不想向您介绍关于神经网络的冗长解释。正是您将要做的事情才能使您的应用程序正常工作。神经网络在概念上是一系列“神经元”层。每个神经元从前一层或输入数据中读取两个(或更多)输入,使用经过训练的权重进行计算并前馈结果。基于这些权重,一个层会检测特征,随着您在层中移动,它会逐渐变得更加复杂,最终在输出端识别出复杂的图像。
第一个聪明的部分是设计网络——有多少层,层之间的连接等等——核心神经网络算法。第二个聪明的部分是训练。这是一个过程,其中许多图像通过网络运行,并带有标签以识别应该识别的内容。这些运行建立了识别所需的权重值。
如果您有野心,您可以从头开始为TensorFlow等标准网络之一构建自己的神经网络。您也可以从开源选项开始,例如face-id 的这个选项。您可以将所有这些构建到一个可以在笔记本电脑上运行的应用程序中,这对于想要注册新批准的面孔的客户来说非常方便。现在,您可以使用一组经过批准的多个姿势的人脸测试集开始训练您的网络。
为什么不直接在云端执行此操作?
有些服务可以在线进行人脸识别——无需在您的设备上使用凌乱的人工智能。只需拍照,将其上传到云端,应用程序会回传一个 OK,您的产品就会批准下一步。
但是 - 您所有获批准的员工都需要在云中拥有他们的照片和其他凭据。对于安全和隐私而言,这可能不是一个好主意。每次工作人员想要访问机器时,您将消耗相当多的能量将图像传输到云。而且,如果您的 Internet 连接中断,则在它恢复之前,任何人都无法获得批准。在设备上进行身份验证可以保护隐私和安全,保持低功率需求,即使在网络连接断开时也能继续工作。
接下来——嵌入你训练有素的网络
现在你已经完成了人工智能的困难部分,你必须将它下载到你的设备上。这本身就是一个有趣的步骤,您肯定需要 AI 平台的帮助。我将在下一篇博客中详细讨论。同时,有关更多信息,请查看“实时嵌入式世界的深度学习”。
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !