前言

因为特别想搞一个AI小智那样的语音聊天嵌入式设备,一直想搞一个AI+嵌入式开发的项目,想学习一些相关的知识,在此之前,我一直以为AI+嵌入式只是我想的那样,把AI载入各种开发板,然后就可以了,最近开始了解到Edge AI这个概念,我才明白,原来其中大有区别。

什么是云端AI?

这应该是大众眼里的AI+嵌入式,包括我自己,其实就是嵌入式设备或者板子只负责接收信号,或者只执行特定操作。

比如我们常见的AI小智模型,是它只负责在嵌入式设备里装载语音识别和语音唤醒模型,通过识别“你好,小智”后被唤醒,至于之后能实现的对话,不是真的有个AI模型在嵌入式设备里面跑代码,而是语音识别模块只负责把你说的话,可能先转换成文字,或是直接上传云端,让云端的服务器上跑着的AI模型来处理再把处理后输出的回复还给嵌入式设备,让嵌入式设备去输出语句。

再比如,我们常见的图像识别模型,就是嵌入式设备,搭载摄像头,通过摄像头拍的每一张照片,本地的嵌入式设备不进行识别,而是把照片上传个体云端的服务器,让服务器上跑着的AI模型来识别,再把识别之后的结果返回给嵌入式设备。

这种云端AI的好处就是,特别节省嵌入式设备的资源,使得性能没那么好的板子,也能带起来各种识别模型,但是坏处就是,一旦断网,链接不了云平台,链接不了服务器,直接就用不了了。

什么是Edge AI?

我们了解云端AI之后,就能进行类比,知道Edge AI的真面目了。

Edge AI,其实就是不依赖服务器和云平台了,直接把获取到的数据在本地进行处理

例如上面2个例子,如果是使用的Edge AI,那么语音识别模块识别到的文字就不会上传云端,而是直接让板子进行本地处理,直接得出回复;摄像头拍摄的照片也不会上传云端了,而是直接让板子进行识别,直接得出识别结果。

这种Edge AI的好处,就是摆脱了网络的限制,使得真正完整的AI程序能够在本地部署,不需要云平台上服务器的AI去帮忙计算结果,但是坏处自然很明显,就是极度依赖板子的性能,嵌入式设备必须拥有NPU(后面会提及)来专门处理你想实现的高级的AI模型,否则只能跑特别特别特别简单的Edge AI模型。

什么是机器学习?

机器学习,其实是以上2种AI部署的模型基础,以上2种AI部署方式,需要识别、计算所用到的AI模型,都是需要先进行数据投喂+对错学习的,这就是机器学习。

详细来说,机器学习就是你把一大堆的数据喂给AI模型,告诉他,这1000张照片是猫,这1000张照片是狗,然后AI模型就会自己找规律,知道AI对于这2个概念——猫和狗能够进行区分的时候,模型就训练好了。

之后,你部署到云服务器 → 叫"云端 AI",部署到嵌入式设备上 → 叫"Edge AI"。用的是同一个机器学习模型,区别只是跑在哪。

总的来说:机器学习是训练方法,模型是产物,部署位置决定了叫 Cloud AI 还是 Edge AI。

什么是NPU?

 NPU 就是专门为跑 AI 模型定制的"加速协处理器",跟 STM32 里的 FPU(浮点运算单元)是一个道理——不是替代CPU,是给它当帮手。

用FPU(浮点运算单元)进行类比理解,FPU专门帮CPU计算浮点数相关的计算,而NPU就是专门帮CPU计算卷积、矩阵乘法的,而我们了解到,所以的AI推理都是基于线性代数里的那些知识,NPU就能很好的帮CPU处理这些复杂的计算,帮助实现AI相关识别的计算。

注意!并不是没有NPU就不能跑AI模型了,没有 NPU 的嵌入式设备也能跑 Edge AI。对性能要求高的场景需要 NPU来加速计算,如果没有 NPU 就只能跑轻量模型

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐