关于嵌入式人工智能?

[复制链接]
山赋 发表于 2023-9-20 11:29:13|来自:北京 | 显示全部楼层 |阅读模式
在百度上看到关于嵌入式人工智能的言论不是很多,想更深入的了解关于这个方面。
嵌入式人工智能概念是怎样的?
需要学习储备哪些知识(不是单独嵌入式的知识储备)?
嵌入式是如何和人工智能结合起来的(具体机器学习算法怎么移植到微控制器上的)?
现在或以后该领域会有哪些职位?
欢迎大家从其他角度对嵌入式人工智能进行讨论。
谢谢!
全部回复5 显示全部楼层
yanjifu 发表于 2023-9-20 11:30:04|来自:北京 | 显示全部楼层
虽然学术界目前还没有嵌入式人工智能的确切定义,但随着人工智能的发展,势必会下沉到边缘、终端和嵌入式市场。嵌入式人工智能将会是未来几年AI发展的方向之一,并将伴随一系列的职位和角色涌现。
什么是嵌入式人工智能

当我们谈论嵌入式人工智能时,我们实际上在谈论将智能技术(AI)应用到一些小而强大的设备上。这些设备可能是智能手机、智能家居、万用表、汽车或者无人机等等。
【传统的嵌入式】是指将计算和控制功能嵌入到电子设备或产品中,以满足特定的任务需求。
比如我们日常使用的智能手机就是最常见的嵌入式系统之一;它集成了处理器、存储器、通信模块和各种传感器,能够进行通信、计算、浏览互联网、拍照等功能。
而如果我们把人工智能嵌入其中,让它实现更高级的人机交互,就是【嵌入式人工智能】。
就好比你的手机中加入了一个智能助手,你可以用语言跟它交流,它能帮你回答问题、提供建议并帮助你完成各种任务,而无需连接到互联网或依赖云端服务器,这就是嵌入式人工智能应用之一。


通俗来讲,嵌入式人工智能就像嵌入机器大脑(cpu)里面的程序,让机器人具备类似于人类的“思维”和“行动力”;比如在汽车领域,智能嵌入式系统可以让汽车实现人机的智能交互、让摄像头具备更加智能的道路情况感知和分析能力,进而帮助做出更加聪明(智能)的决策。


嵌入式人工智能的优点是速度快、功耗低、安全。由于不会去连接云,也就是不用联网不受网络的限制,因此嵌入式人工智能的处理速度非常快且功耗低,同时不会把照片等私密数据上传到云端,所以很安全,不会涉及到隐私问题。
嵌入式与人工智能的结合

那么是如何在嵌入式系统中将机器学习算法部署并运行的呢?也就是如何将人工智能算法和模型集成到嵌入式系统的处理器或微控制器中。
查阅资料后总结出来的步骤如下:

  • 首先要选择算法并训练:需要根据具体应用的需求,比如人脸识别系统等,选择合适的机器学习算法,比如神经网络、决策树或支持向量机。然后再通过大量的训练数据集去进行算法的训练和优化,从而初步得到一个适合嵌入式系统的模型。
  • 第二步量化模型和压缩:考虑到嵌入式系统的资源有限,为了减小模型的大小和计算复杂度,需要通过权重量化、剪枝以及模型蒸馏等方法,对机器学习模型进行量化和压缩。



  • 硬件适配:在完成模型的量化和压缩之后,还需要根据嵌入式系统的硬件平台和处理器架构,对模型和算法进行适配和优化。这可能需要优化计算图,调整数据类型和存储方式以及利用硬件加速器等。
  • 低功耗优化:这一步是为了满足嵌入式系统对低功耗的要求,其中包括优化计算和内存访问模式、降低时钟频率以及利用节能模式等策略。
  • 最后是编译和部署:使用适合目标嵌入式系统的软件工具链进行编译和构建嵌入式固件。这个固件包含了机器学习算法和模型,可以在微控制器上运行。
需要注意的是,将机器学习算法移植到嵌入式系统需要在性能和资源之间进行权衡。因为嵌入式设备的计算能力和存储容量有限,所以通常需要在有限的资源下做出一些妥协和优化,以确保仍然能够达到可接受的性能水平。


综上,通过选择适合应用的算法、对目标硬件进行优化和压缩,并且进行合理的编译和部署,就能够成功地将机器学习算法移植到嵌入式系统上。这样,嵌入式系统就能够在本地进行实时的智能决策和推理,达到更高的智能水平。
需要做哪些知识的储备

学习嵌入式人工智能离不开计算机基础和机器学习两大部分,因此需要综合掌握计算机科学技术、编程技能、数据科学和机器学习、深度学习和神经网络、信号处理和图像处理、嵌入式系统开发、边缘计算和优化等技术。
首先基本的计算机科学和编程技能是必须的;要了解基本的计算机体系结构、操作系统,同时掌握至少一种编程语言,比如Python、C/C++等,才能理解并实现各种算法和数据结构。
然后是数据科学和机器学习,具备统计学、线性代数和概率论等数学基础,才能更好理解机器学习算法的原理和常用模型,如决策树、支持向量机、神经网络等等。
在此基础上再去掌握机器学习,了解深度学习的原理、方法和常用的神经网络结构比如卷积神经网络(CNN)、循环神经网络(RNN)等。还要掌握常用的信号处理技术、图像处理算法和计算机视觉方法,以便处理传感器数据和图像信息。


最后还需要了解嵌入式系统的工作原理和开发方法,并且掌握相关工具和技术。比如熟悉微控制器、嵌入式操作系统等硬件平台,了解嵌入式系统的开发方法,如编译器和调试工具等。熟悉边缘计算的概念和应用,了解模型压缩、量化和部署优化等优化技术,可以提高嵌入式人工智能系统的性能和效率。
以上只是嵌入式人工智能需要储备的知识大纲和方向,具体的经验还需要通过做项目从实践中总结出来。
最近知学堂推出了一门免费新课:《AI大模型的程序进阶之旅》,讲解了AI大模型如何帮助程序员提高自己的工作效率,以及未来可以发展的职业方向,其中还会深入剖析AI大模型的底层工作原理,如果你想了解AI大模型最前沿的基本知识,对以后学习嵌入式人工智能打下基础,建议你去听一听。
现在或以后会涌现哪些职位

嵌入式人工智能处在一个交叉学科的领域,需要综合掌握计算机科学、人工智能、数据库、嵌入式系统等相关领域知识和技能的人才。
打开boss输入嵌入式人工智能,可以看到目前已经有比较大的需求了,从电子信息、汽车到计算机软件领域,都需要相应的嵌入式软件开发岗位,同时给出的薪资也比较高,未来前景还是非常不错的。


未来在计算机、汽车、无人机、智能家居、数码IT等领域都会有嵌入式人工智能的开发岗位,而且随着人工智能的火热,需求只会越来越旺盛。
可以预计未来将会有以下这些岗位(当然有些目前已经有了):

  • 嵌入式人工智能工程师:负责设计、开发和优化嵌入式人工智能算法和模型,使其能够在资源受限的环境中高效地运行。
  • 嵌入式深度学习工程师:专注于深度学习算法在嵌入式系统中的应用,包括模型训练、量化、压缩和部署等方面。
  • 嵌入式视觉算法工程师:研发和优化嵌入式系统中的计算机视觉算法,实现图像和视频处理、目标检测、跟踪等功能。
  • 嵌入式语音识别工程师:负责开发和优化嵌入式语音识别系统,使其能够实时、准确地识别和理解语音指令。
  • 嵌入式自然语言处理工程师:专注于嵌入式系统中自然语言处理算法的开发,使设备能够理解和生成自然语言。
  • 嵌入式机器学习工程师:负责将机器学习算法应用于嵌入式系统中,实现智能决策和优化。
随着技术的发展和应用的扩大,人们对人工智能需求的增长,还会涌现出更多新的岗位和职业。
但可以相信的是,这些岗位的到来只是时间问题,发展快就是近两年,慢一点就是三五年。毕竟我们可以永远相信计算机行业的更新迭代速度,在不久的将来会是一个嵌入式人工智能需求旺盛的时代。


如果你本身就是嵌入式开发领域的,那么岗位的发展趋势可以参照:单片机开发→嵌入式Linux应用程序开发→底层驱动开发→嵌入式人工智能开发。未来嵌入式人工智能领域将会大有可为。
所以趁早学习嵌入式人工智,也是为以后的发展提早做打算。与其纠结未来要往哪个方向发展,不如现在就开始学(juan)起来,知乎知学堂推出的免费课程《AI大模型的程序进阶之旅》很值得一看,因为AI圈每天都会更新行业消息,技术也在如火如荼地更新,与其后期再补习,不如现在就学起来吧。
<a data-draft-node="block" data-draft-type="edu-card" data-edu-card-id="1684992941108551681">
心中只有他 发表于 2023-9-20 11:30:52|来自:北京 | 显示全部楼层

书籍:Deep Learning on Microcontrollers: Learn how to develop embedded AI applications using TinyML
作者:Atul Krishna Gupta,Dr. Siva Prasad Nandyala
出版:BPB Publications
入群邀请:7个专业方向交流群+1个资料需求群
原文地址:书籍下载-《微控器上的深度学习:基于TinyML开发嵌入式AI应用程序》
01 书籍介绍

TinyML,用于在资源受限的设备上实现机器学习,例如微控制器和嵌入式系统。如果你想利用这些低成本、低功耗但异常强大的设备,那么这本书就是为你而写的。
本书旨在提高TinyML应用的易用性,特别是对于缺乏资源或专业知识但是要在基于微控制器的电路板上开发和部署TinyML应用的专家。
本书首先简要介绍了人工智能的经典方法,帮您熟悉适合嵌入式设备和微控制器的不同ML模型开发工具、库和框架。然后,本书将帮助您使用ArduinoNanoRP2040电路板构建一个手势数字识别系统,并使用SyntiantTinyML电路板构建一个识别关键词的AI项目。最后,本书总结了所涵盖的概念,并简要介绍了零样本学习、一次样本学习、联邦学习和MLOps等主题。
02 通过本书将学习

· 学习如何使用SyntiantTinyML电路板构建关键字识别系统。
· 学习如何使用ArduinoNanoRP2040构建空中手势数字识别系统。
· 学习如何在EdgeImpulse和ArduinoIDE上测试和部署模型。
· 了解提高系统级性能的技巧。
· 探索不同行业中微小型机器学习的各种实际应用场景。
通过本书的学习,您将能够轻松地开发和部署端到端TinyML解决方案。
03 这本书适合哪些伙伴?

本书面向物联网开发人员、系统工程师、软件工程师、硬件工程师以及有兴趣将人工智能集成到工作中的专业人士。
对于对微控制器和物联网设备感兴趣但可能不知道从哪里开始的工程本科生来说,本书是宝贵的资源。
04 书籍大纲



1. 书籍下载-《嵌入式机器人:从移动机器人到自动驾驶》
2. 书籍下载-《自动驾驶公交车》
3. 书籍下载-《车辆动力学与控制:高级方法》
4. 书籍下载-《仓库中的自主移动机器人》
5. 书籍下载-《路线图:通过人工智能实现工业4.0》
server100 发表于 2023-9-20 11:31:38|来自:北京 | 显示全部楼层
大家都比较关心嵌入式和人工智能,薪资和发展前景等等,下面来分析一下。
目前的嵌入式开发更倾向于智能化,也就是我们所说的智能硬件(硬件+软件),从现在各种前沿的嵌入式产品来看的确如此,嵌入式产品的一个发展趋势是更倾向与自动化控制和人机交互,而不是强调“算法”这一块。
要区分你仅仅是一名嵌入式工程师而不是算法工程师,你需要做的仅仅是与他们的“云端大脑”进行对接,调用他们API就完事了。由于人工智能、深度学习、神经网络、区块链、大数据等先进学科的崛起,很多人都产生质疑:“嵌入式还有发展前景吗”? 这个问题我在这里可以很肯定地告诉你:“嵌入式有很好的发展前景,前沿嵌入式技术即将崛起,或者说已经崛起”。的确,人工智能、大数据这些学科会给嵌入式带来冲击,就目前来看,大学生更倾向与python编程语言、机器学习这一块,而嵌入式学者的确比往年有所下降。但学者少了并不代表他的需求就少了,并不代表他的薪资水平下降了,目前的一个嵌入式技术更倾向于与智能学科相结合的趋势。
以百度机器人为例,机器人的核心是大脑,即是“数据和算法”,但机器人大脑想机器人身躯能够像人类一样活动,能说会道,行走自如,那么就必须得依靠嵌入式技术。这就是我所说的嵌入式+智能学科应用,从长久来看,嵌入式只会越来越火,智能学科的崛起必定带动新型的嵌入式技术发展。
对于发展前景,有一项更重要的参数,那就是当今嵌入式软件工程师的薪资水平。我下面给出一些理性的数据,是从各大招聘平台调研而来(数据只能作为参考,具体薪资还是得看个人修为,有的达不到该薪资水平,有的早已超过该薪资水平):
非211、985院校应届毕业生平均月薪:8K;
是211、985院校应届毕业生平均月薪:12K;
一年工作经验者月薪:10K-20K;
二年工作经验者月薪:20K-30K;
三年到五年工作经验者月薪:30K-50K;
五年到十年工作经验者月薪:50K-100K;

人工智能给嵌入式带来的冲击,是福也是祸,人工智能实现智能化无处不依赖嵌入式技术,人工智能学科在不知不觉中带动嵌入式技术革新。从一系列智能产品,包括无人机、智能音响、机器人控制、城市天眼系统、智能家具、自动驾驶汽车、扫地机器人、小米手环等等。有哪个不依靠嵌入式技术来实现?并没有,人工智能越是想向人类表达他的智能水平,越是要依靠嵌入式技术。所以前沿嵌入式技术更倾向于嵌入式+智能学科的发展,当智能学科真正崛起,嵌入式必定又是一次浪潮与技术革新。
静观人间 发表于 2023-9-20 11:31:51|来自:北京 | 显示全部楼层
嵌入式人工智能是目前人工智能发展的一个分支.
目前人工智能经历了一次大洗牌, 从05年前知识结构化流派, 到了现在的数值流派(大数据, "狂"计算), 其结果之一是, 主力从原来的大学教授转到了拥有海量数据, 拥有百万核心处理器的IT公司, 连论文领域都已经被公司占领, 学霸, 学阀, 要么挡不住, 要么投靠大公司.
嵌入式人工智能, 是以上发展过程中, 依靠海量计算资源无法平民化的结果.
现在采用的方式是, 用TPU/GPU在云端完成模型训练, 得到模型参数; 然后以嵌入式的方式, 放到移动端, 实现人工智能的应用, 这方面, 几乎所有公司都在投入资源. 包括高通, 百度, 等企业.
---
对于个人而言, 如果是学术领域, 写几篇文章还是不错的, 包括模型规模优化, 包括计算性能优化, 包括缩减模型, 包括模型的传递和复现.
作为工程应用, 实际上你用到的很多都已经是嵌入式人工智能的产品了, 比如现在的讯飞出的儿童手表, 思必驰出的汽车导航智能产品等.
普通老百姓不受影响.
xchina 发表于 2023-9-20 11:32:32|来自:北京 | 显示全部楼层
谢邀!我就自己了解的方面简单作答,不全面的地方请参考其他答主的回答,我与题主共同学习。

我好像没有在学界看到正式提出嵌入式人工智能的概念,但人工智能不可能没有嵌入式。人工智能的领域庞大涵盖学科众多,应用范围也很多,比如:机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程……

不管怎么划分作为计算的输入输出是离不开嵌入式的,而现在在计算部分也开始有嵌入式的解决方案,因为在某些应用场景中无法可靠甚至根本不能采用云端计算的方式进行AI计算,于是AI的计算本地化的要求催生出一大批基于本地计算的嵌入式人工智能解决方案。除了传统的嵌入式处理器之外还有专用的人工智能芯片这里我就不展开了下面的链接有介绍:
“忘掉酷睿和骁龙:人工智能时代你该认识这些芯片 - IT国际新闻 - C114(中国通信网)”

另外就是FPGA或者FPGA+MPU的解决方案,这里呢我就放一个私货视频在下面的链接里了:
“DeePhi Deep Learning Platforms: Powered by Xilinx”

上述三种方式各有优缺点:第一种,映射算法最快可以迅速将AI算法移植到嵌入式MPU上,但明显资源受限;第二种,可以将AI算法计算加速到一个可观的程度但价格比较昂贵且计算的通用性不强;第三种,可以说介于一二之间,计算资源较第一种丰富,也能对AI计算加速,同时它还具有第二种方案所没有的灵活性。

关于需要储备的知识,不管是AI如何应用到嵌入式系统上相应的AI基础知识:AI的数学工具、CS相应理论、就算你没有足够的精力学得比较深入至少也要“看过猪跑”,接下来就是现在大名鼎鼎的CNN、BNN之类的东西了,你需要理解其基本原理,然后AI的嵌入式应用方案中你自己根据你自己感兴趣的方案去补充相应的知识。

以我了解的第三种方案为例,现在FPGA+MPU基于Soc的AI解决方案很多,主要是把CNN或其他算法映射到FPGA进行运算实现和加速,由MPU进行计算调度。这样的解决方案造就了很大的市场需求,因为往往懂AI算法的工程师不了解FPGA而懂FPGA的工程师不了解AI,所以这种解决方案需要的人才要求AI与FPGA兼修才能够高效可靠地将AI算法映射到FPGA上。

以上算是砖头了,期待其他答主的美玉。谢谢!

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则