人工智能(ai)通常是一件通用的解决问题的利器,随时准备迎接任何挑战。而有些时候,它被认为预示着文明本身的终结。作为工程师,我们如何才能在开发应用程序的过程中更好地利用人工智能,或者更正确地利用机器学习(ml)呢? 人工智能领域的最新进展真的会让我们变得多余吗?
提到人工智能(ai),无疑是吸引主流媒体注意的一种重要方式。由于互联网和云服务的发展,再加上时不时有问题的数据源,新的人工智能驱动的服务似乎无处不在。点击几下鼠标后,你的文字可以放进morgan·freeman的嘴里,或者你的图像融入到一件新的艺术品中,这些有趣而发人深省的想法,要在嵌入式系统中实现并非易事,但这是该行业内部正在发生的事情。
大多数嵌入式系统使用基于规则的编程方法来实现其功能。给定一组输入数据,一系列if/else或switch语句决定如何响应。对于有限数量的输入,这种方法效果很好。然而,在某些时候,输入的数量或它们之间关系的微妙之处使得很难定义明确的、程序化的规则。
举个例子,想象一下工厂里有一台马达一周7天、每天24小时运转。经验告诉我们,随着时间的推移,会发生磨损,轴承润滑脂会变稠,进而改变机器的启动时间、噪声、振动模式、电机工作温度和电流等参数。定期维护是当今应对这一挑战的方式,但它会导致固定的停机时间,从而中断生产。
此外,它不太可能捕捉到由轴、轴承、套管或夹具的细微断裂引起的即将发生的故障。经过正确训练后,人工智能方法可以使用复杂的数据源组合来确定潜在故障。如果这种智能可以部署到基于微控制器的系统中,那么就会得到一个经济实惠的监控系统,既节省了时间和金钱,又减少了不必要的润滑和零件更换造成的浪费。
1 将智能引入微控制器中
在微控制器层面,我们谈论的是机器学习(ml),而不是 al。这意味着对机器进行编程,使用通过分析可用数据制定的规则来做出决策。虽然微控制器的功能强大到足以执行这样的ml算法,但从训练数据中学习仍然超出了它们的能力范围,如果不是云服务器,至少需要一台台式计算机来执行。edge impulse成立于2019年,开发了一个专门用于嵌入式系统中ml的平台,并成功地与全球半导体供应商进行合作推广。
任何ml应用程序的起点都是数据。虽然一些应用(比如自动驾驶)需要tb级的训练数据,但简单的基于微控制器的系统可以从少量(几千字节)的数据中学习。因此,将数据从板上取出并放到edge impulse环境中是第一个挑战。最初的想法是使用 arduino的串行接口将其发送到您的pc,然后从那里将其作为文本文件上传。然而,他们的平台是为了直接获取数据。
2 数据:al的食物
其中一个工具是data forwarder,这是一个命令行(cli)应用程序,可以将数据从开发板直接发送到edge impulse环境。使用用户名和密码即可在pc上的串行端口和服务器之间建立链接。在微控制器方面,所需要的只是通过串行接口以逗号或制表符分隔的格式输出数据。如果采样率相对较低,那么这是直接从传感器收集代表性数据的理想方法(见图1)。更强大的嵌入式系统(如树莓派或nvidia jetson nano)可以使用提供的软件开发工具包(sdk)。它也支持麦克风和摄像头等传感器产生更可观的数据量。
数据上传后,下一步就是定义“脉冲”。它们由两个部分组成:第一部分将数据切片成更小的块,并使用信号处理技术提取特征,这确保了可用的传感器数据被转换成第二个信号处理阶段信息的一致性;第二部分是学习和分类的过程(见图2)。在一个示例项目“连续运动识别”中,很好地解释了如何配置这些块来分析加速度计数据并将此输入分类为4种手势之一。
这是任何ml开发中最关键的一步,通常需要横向思维和多次迭代来确定最佳方法。有时候,忽略一些传感器输入是最好的解决方案,而其他时候,则需要更多的数据。你甚至可能会发现正在过度学习,或者选择的神经网络模型不适合你试图进行的分类。另一个至关重要的步骤是异常分类。在示例项目中,有4种定义的手势。然而,需要排除其他类似于学习手势的动作。良好的异常检测提供了鲁棒性更好的ml结果。
最后一步是部署。通过web界面下载所选设备的固件,以便集成到你的应用程序中。对于arduino,会生成一个库,而对于其他微控制器,则可以生成一个c++文件。当然,微控制器的性能差别很大。为了确保最佳结果,edge impulse提供了eon 调谐器。该工具可以通过使用目标设备、内存大小和延迟等信息进一步提高检测精度,加快推理速度,并降低内存需求(见图3)。
3 实际应用中的ml
实际的应用程序正在使用这种方法来嵌入ml功能。slatesafety的band集成了一系列生物识别传感器,以监测在具有挑战性的情况下工作的工人(见图4)。这些人员包括从急救人员到穿戴重型个人防护装备(ppe)的工业工人,比如消防员。他们的产品通常会将数据上传到云端,这样就可以监测用户的生命体征了。
但是,特别是在灾难情况下,网络连接可能不完整甚至根本不存在。开发团队利用edge impulse将边缘ml集成到现有产品中,并对历史生物识别数据进行了训练。使用eon tuner,该算法针对硬件进行了优化,然后使用无线更新进行部署。现在,即使在没有无线连接的情况下,band也可以在存在热衰竭风险时向佩戴者提供警告。
4 利用al改进产品开发
当然,人工智能并不一定要集成到产品中,它也可以用于产品的开发。今天,许多复杂的应用程序都是使用基于模型的方法开发的,本质上是使用软件和物理学的数学方程来描述事物是如何工作的。然而,这种方法也有其局限性,这就使monolith和他们的自学ai平台有了用武之地。
该平台能够根据已经收集到的数据学习复杂系统的物理特性。例如,车辆在测试轨道上进行一系列测试,多个传感器监测偏航和滚转以及车轮速度和加速度。收集不同悬架刚度的数据,可以很好地了解车辆对一系列驾驶情况的反应。通常情况下,这些数据将被分析,从而在下一次试车时应用新的设置。monolith可以评估第一组测试运行的数据,并以很高的精度预测悬架变化的结果。该结果可用于更快地磨练最佳悬架设置,减少所需的额外物理测试运行次数。
这种方法也可以应用于计量。燃气表必须非常准确,以确保正确计费。但当仪表必须测量一系列不同的气体时,这是具有一定挑战性的。对客户来说,模拟超声波仪表已经将纯粹的数学分析推向了极限,使得重复的测试过程成为实现所需认证的唯一校准解决方案。幸运的是,所有的测试都产生了丰富的数据集用于分析。使用自学习ai模型,所需的测试量下降了高达70%,显著加快了开发速度。
5 大幅压缩ai计算成本
像darpa大挑战赛这样的比赛,团队建造了可以穿越蜿蜒路线的自动驾驶汽车,引发了人们对自动驾驶汽车的兴趣。近20年后的今天,已经投入了大量资金,但收效甚微,似乎只有waymo提供了真正的自动驾驶汽车乘车服务,但这些服务仅在美国的凤凰城和旧金山运营。其中一个问题是,让一台计算机控制汽车是非常具有挑战性的。车辆不仅要不断评估周围的情况,还必须预测其他司机和道路使用者的行为,比如行人和骑自行车的人可能不遵守交通规则。
目前的情况是,汽车的电气和电子(e/e)架构正在发生变化,以满足未来自动驾驶汽车的需求。随着大量传感器提供大量数据,行业正在转向自动网联车。目前,这种方法正在形成先进的驾驶员辅助系统(adas),它通过控制制动、加速和转向,可以在驾驶员犯错时介入。根据美国汽车工程师协会(sae)的车辆自动驾驶水平,高档车辆目前达到了l2+级,其中一些达到了l3级。然而,完全的“解放双手”级别的自动驾驶是l5级,所以我们还有很长一段路要走。
eurotech等公司正在支持该行业加快必要算法的开发。目前,一次8小时的试驾会收集120 tb的数据,这些数据必须返回实验室进行处理和分析。ai算法的改进可以在实验室中使用收集到的数据进行测试,但支持现场测试和算法开发的数据很少。
利用在液体冷却方面的经验,eurotech提供了一系列能够胜任这项任务的边缘al硬件,本质上是可以放在汽车后备箱里的小型超级计算机。像dynacor40 36这样的设备经过加固,可以在公路和越野车辆中使用。这款无风扇计算机采用16核英特尔至强 cpu(64 gb ram),最多两个nvidia gv100 gpu(32 gb ram),提供237
tflops来处理深度学习应用程序(见图5)。几个千兆以太网接口支持摄取大量传感器数据,包括雷达、摄像头和激光雷达等数据,并将这些数据注入32 tb的固态存储器中。通过在试驾期间进行更多的推理和强化测试,实现l5级自动驾驶的过程可能会显著加快。
6 ai会危及我们的工作吗?
社交媒体上正在讨论ai的进步是否会危及创意产业的工作岗位。openai推出的dall·e2将自然语言需求转化为图像(见图6)。但是,也许更令人印象深刻的是它能够真实地编辑现有图像。例如,它可以移除前景或背景中的物体。此外,如果给它一幅荷兰画家维米尔(vermeer)的作品,al可以扩展它的“戴珍珠耳环的女孩”,使人们对画中她所处的房间有一个可信的印象。
然而,作家(比如elektor和其他知名媒体的编辑团队)对chatgpt的推出感到震惊。这种al可以以会话方式和多种语言与用户进行交互。到目前为止,关于碳化硅(sic)mosfet和氮化镓(gan)晶体管优点的讨论,以及它们相对于硅mosfet的优点,已经出现了高度精准的效果。因此,即使是小众话题,似乎也被很好地涵盖了。
虽然这个工具非常聪明,但它只知道训练之前相关话题的答案。因为它不是持续学习的,所以不会了解最新的时事或最新的k pop乐队剧(shame)。另一个小问题是,过了一段时间,答案似乎变得有点老套和公式化。
总之,嵌入式系统和ai越来越多地被用于创建智能、自主设备和系统中。嵌入式系统为ai算法的运行提供了硬件和软件平台,而ai算法使这些系统能够以更智能和更人性化的方式感知、分析和响应其环境。随着嵌入式系统和ai的能力不断提高,我们期待在机器人、医疗保健、交通运输等领域看到一系列令人兴奋的新应用。
数据链路层的功能
中国电信正在积极对5G+垂直行业等十大行业进行探索
超声波气象传感器厂家有哪些
解析工业相机如何进行视觉检测
AI智能识别助力城市交通智能化
开发应用程序中如何更好地利用人工智能
数字资产抵押系统开发的优势以及上手的交易特点
英特尔发布第九代酷睿处理器!
介绍环氧树脂灌胶加工所用胶水的九大特点
2019年8K电视缘何受热捧?(附预测数据)
矿山边坡综合在线监测-全方位解决方案
安防技术成为楼宇智能化发展重要需求
为物联网快速编程RA MCU创新套件
新唐科技NUC029SEE控制器简介
脉冲激光能量参数关系_脉冲激光器的能量换算
高通推出一套完整的5G射频前端解决方案 几乎解决所有5G手机隐忧
5G网络到底提升在了哪,有何优势呢?
曝苹果最早4月推出新款iPad Pro
Linux背后的思想
机械密封的组成、材料、运行与维护