当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]虽然我当然不认为自己是数据科学家,但多年来我在各种简单但功能强大的Edge AI项目上进行了实验。为什么?可能是因为我通常使用的相对受限的硬件适合于构建更简单、不那么雄心勃勃的产品。但有了Edge AI,我们可以执行以前认为在小型硬件上不可能完成的艰巨任务。

虽然我当然不认为自己是数据科学家,但多年来我在各种简单但功能强大的Edge AI项目上进行了实验。为什么?可能是因为我通常使用的相对受限的硬件适合于构建更简单、不那么雄心勃勃的产品。但有了Edge AI,我们可以执行以前认为在小型硬件上不可能完成的艰巨任务。

作为嵌入式设备上机器学习的早期先驱(又名TinyML或Edge AI), Edge Impulse已经发展成为开发人员最喜欢的,当涉及到构建,测试和部署机器学习模型时,从小型esp32到最新的Jetson Orin Nano Super都可以运行。

在这个项目中,我通过展示如何构建一个“多模型”项目,在我的边缘人工智能之旅中迈出了下一步。由于单个ML模型不能总是执行我们需要的每个计算或生成我们需要的每个推理,我们可能需要有效地将多个模型链接在一起以实现我们产品的目的。

具体来说,我们将学习如何:

•利用边缘脉冲建立一个目标检测模型。

•并利用边缘脉冲建立了异常检测模型。

•编写一个Python应用程序,并将应用程序+模型部署到Raspberry Pi 5上。

•生成实时短信和电子邮件警报时,检测到异常,使用蓝调笔记卡蜂窝。

今天,我们的假冒公司生产砖。具体来说,就是那些带有蓝军标志的小砖块。随着这些新砖从传送带上下来,我们想分析它们的问题。当发现“坏砖”时,我们也想要即时通知。

因此,我们将看到当应用程序运行时,我们的对象(砖块)将被对象检测模型检测到,然后被异常检测模型扫描异常。如果达到指定的异常计数,将生成警报并通过蜂窝发送到云,用于SMS和电子邮件通知(附带异常图像!)。

想看看实际的项目吗?加入我们2月27日的网络研讨会:智能视觉,智能工业:边缘脉冲和蓝色异常检测

首先,让我们快速看看我们今天将使用的两个关键平台:Edge Impulse和Blues。

Edge Impulse简介

如果你还不熟悉Edge Impulse,他们提供了一个强大的平台,用于在受限设备上构建、测试、部署和优化Edge AI模型。

我们将使用Edge Impulse Studio来构建部署到树莓派5的对象检测和异常检测ML模型。

蓝调简介

bluesnotecard及其配套的云服务Notehub允许在几乎任何主机微控制器或单板计算机(如树莓派)上添加无线连接。

Notecard提供蜂窝,LoRa,Wi-Fi和卫星选项,是各种规模的物联网项目的易于使用的低功耗选项。

Notecard是用基于json的API编程的,它可以在所有无线电类型中工作,以及用于流行语言(如C, Arduino和Python)的sdk。

正如我们今天将看到的,Blues云服务Notehub与Notecard配对以提供安全的双向通信。您可以发送/接收事件(或blue语言中的Notes),并将这些出站Notes路由到任何云服务(现在是AWS)。

好了,让我们开始建造吧!

构建目标检测模型

我们的第一步是获取足够的图像来构建一个机器学习模型,该模型可以准确地识别传送带上的砖块。

我们可以从这个Python脚本开始,它使用Pi Camera模块每1.5秒拍摄一次移动的传送带的照片。

注意:这个项目的完整Python源代码可以在GitHub上找到,物体检测边缘脉冲项目也可以在这里找到。

允许Python脚本运行并保存足够的砖块在传送带上不同位置的图像(我开始时大约有100个)。有了保存到Pi的图像,是时候在边缘脉冲工作室创建一个新项目了。

转到Data acquisition选项卡并上传您刚刚保存的所有图像。请注意,它会自动将图像分为训练集和测试集。(稍后我们将回到测试方面。)

接下来,每个图像需要将每个砖标记为这样。这有点乏味,但Edge Impulse Studio内部的工具确实使这成为一个相对痛苦的过程!

下一步是创建你的“冲动”(Edge impulse用来描述完整的ML管道)。前往Impulse设计选项卡并遵循提供的默认选项(Edge Impulse在帮助您根据已提供的数据选择正确选项时非常聪明!)。

然后,您将前往图像选项卡,从标记的图像生成功能。在我们的例子中,我们只创建了一个功能:“砖块”。

接下来,访问Object detection选项卡来训练模型。所有的培训都发生在云端,所以不需要本地工具或花哨的gpu !

一旦您的模型得到训练,就转到模型测试选项卡。还记得分配给测试集的映像吗?好吧,因为这些被标记但不用于训练模型,它们是模型快速测试的完美候选者。

你应该会发现80-90%的对象(砖块)被成功检测!

现在可以在树莓派上下载模型文件。有关如何在Pi上设置Edge Impulse CLI的说明,请参阅Edge Impulse文档。

要登录到Edge Impulse并下载刚刚创建的模型文件,您将在Pi上使用这样的命令:

建立异常检测模型

在这一点上,我们有一个功能对象检测模型,将识别传送带上的砖块。很好,但现在我们要仔细检查每块砖是否有异常。

和上一个模型一样,我们的第一步是获取砖块的图像。不幸的是,我们不能使用与前一步相同的图像,因为我们需要这些新图像特定于砖块本身,而不需要任何其他周围环境。

幸运的是,Edge Impulse的Louis Moreau构建了一个基于flask的python应用程序,让我们可以使用我们刚刚创建的对象检测模型来保存砖块的单个图像。

注意:这个Python脚本是从前面提到的项目派生出来的。这个版本包含了一些轻微的调整,但所有的功劳都是路易斯的!此外,你可以在Edge Impulse Studio找到我的这个ML项目版本。

当你将——save-images-interval标志传递给这个Python脚本时,它会按照你指定的节奏(以秒为单位)简单地保存检测到的对象图像:

让一些砖块在传送带上运行,这个Python应用程序将在短时间内生成许多有用的砖块图像。

回到Edge Impulse Studio,为异常检测模型创建一个新项目。

转到图像采集选项卡并上传您刚刚保存的所有图像。这一次,您可以指定一个标签,而不是单独标记图像。“无异常”)上载时,所有图片。

进入冲量选项卡,设置冲量:

之后,完成模型的步骤与之前相同:

前往图像选项卡生成功能。

转到视觉异常检测选项卡来训练你的模型。

在model testing选项卡下测试您的模型。

您可以点击一个单独的测试样本,看看是否/为什么边缘脉冲检测到任何异常在您的测试图像。在接下来的例子中,我意识到传送带的一小部分反射了很多光,导致模型认为这是砖的异常!

使用与上面相同的命令下载模型文件,但这次使用——clean参数切换到新项目:

这样,我们就完成了Edge Impulse。是时候了解更多关于安全无线连接的信息了!

设置蓝调记事卡和Notehub

这个项目的Blues Notecard和Notehub的优点是能够使用蜂窝,LoRa, Wi-Fi或卫星连接,同时使用相同的,简单的基于json的API。

现在,虽然许多基于pi的项目可以使用机载Wi-Fi,但通常部署在Wi-Fi范围之外,或者本地IT不希望为不安全/未知的设备提供Wi-Fi访问。

当您选择Notecard和Notehub,你有一个交钥匙,完全安全的云管道在您的处置!

记事卡硬件设置

在这个项目中,我们将使用即将发布的“中频”Notecard Cellular。这款Notecard变体使用LTE Cat-1 bis,这是一种用于支持物联网应用的LTE协议。它提供与Cat-1相同的吞吐量和延迟,在任何支持LTE的地方都支持,但更便宜,只需要一个天线设计即可运行。

记事卡插到一个叫做记事卡的载体板上。目前使用的是专用于Raspberry Pi兼容的单板计算机,称为Notecarrier Pi Hat。这个帽子然后通过提供的头插入树莓派。

记事卡软件设置

Notecard的API都是基于json的。这意味着您向Notecard发送(和从Notecard接收)的所有内容都是JSON。例如,要获得Notecard的GPS位置,您可以使用该卡。位置API:

...并以JSON格式返回请求的数据:

但是,在使用Python这样的语言时,最好使用note-python库与Notecard进行接口。

在提供的Python脚本中,您将看到发送了几个命令来配置Notecard以与云通信。让我们快速浏览一下:

首先,我们使用枢纽。设置API来告诉Notecard在Notehub中使用哪个云项目(是的,我们将在稍后创建一个免费的Notehub项目):

其次,可选地创建一个模板,有效地为Notecard提供一个“提示”,以便更有效地存储数据并将数据发送到Notehub。模板API:

被语法弄糊涂了?“异常”和“image_data”旁边的那些值只是作为提示告诉Notecard异常计数将是2字节带符号的整数,图像数据将是字符串(base64编码的图像字符串)。

再往下,我们将得到最后一个Notecard命令,那就是笔记。添加API。这将在每次检测到异常图像时创建一个注释(或事件),并将异常计数(以及前面提到的二进制图像数据的base64编码字符串)发送到云:

注意:同样,请务必查阅该项目的完整源代码,以便在上下文中更好地理解这些命令。

Notehub云设置

前往notehub。创建您的免费蓝调Notehub帐户。

创建您的第一个项目并复制您的全局唯一产品标识符:

这个字符串表示Python脚本中使用的NOTEHUB_PRODUCT_UID的值。

当您使用Notecard和Notehub时,这就是将您的产品连接到云所需要的全部!

运行Python应用

是时候开始谈正事了。如果此时运行Python脚本,它将执行以下操作:

扫描视频馈送中的物体(砖块)。

如果发现了砖块,它将使用第二个ML模型扫描异常情况。

如果在一张图像中发现足够多的异常,它将发送一个事件(一个笔记)到Notehub。

事实上,你会看到这些数据开始出现在Notehub:

这很棒,但是我们仍然缺少与我们的云服务的集成,今天的云服务是一个AWS Lambda函数,用于接收来自Notehub的数据,而Twilio + SendGrid用于接收短信和电子邮件通知。

创建AWS Lambda函数

lambda是非常容易创建的云函数,它允许您处理来自任意源的入站数据(从Notehub路由数据的完美候选)。

Lambda函数的完整源代码可以在GitHub上找到。

我将指出一些关键部分:

将图像保存到S3

当Notehub将事件路由到Lambda时,我们希望将base64编码的字符串作为jpeg图像保存到S3桶中(是的,这意味着您还必须在AWS中设置S3桶):

然后,我们需要在S3中为该图像生成一个安全的URL,以便我们可以将其传递给Twilio和SendGrid以发出警报:

最后,我们将使用Twilio和SendGrid sdk来发送SMS和电子邮件通知。

以下是Twilio所需的代码:

注意:我正在掩盖设置Twilio和SendGrid帐户的一些要求。要完成这一步,您将需要两个服务中的一些密钥、id和令牌,因此请查看Twilio文档和SendGrid文档。

最后,确保部署Lambda函数并从Configuration选项卡复制function URL,因为您将在下一步中用到它。

将数据从Notehub路由到AWS

我们的最后一步(我保证)是在Notehub中配置一条路由,将事件发送给Lambda函数。

返回到Notehub并单击Routes选项卡。

使用“AWS”选项创建一条新路由:

确保在Type下拉框中选择Lambda(这是默认的),并将函数URL粘贴到URL字段中:

向下滚动一点,确保你的异常。qo选择Notefile作为唯一将被路由到Lambda函数的Note/事件(否则,来自您的Notecard的所有事件也将被发送到AWS):

一定要保存路线,这样你就万事通了!

回到你的树莓派,让我们再次运行Python应用程序:

尝试切换对象的位置,混淆其中的一些,或者以其他方式制造一个“异常”。如果你观察Pi终端的输出,你应该会看到检测到的异常:

在一个重要的异常检测后,在几秒钟内,你会看到这些事件显示在Notehub和图像文件将出现在你的S3桶:

最后,您将看到短信和电子邮件通知,让您知道检测到异常情况(以及在对象本身上识别异常的有用图像!):

下一个步骤

我希望你能体验到使用Edge Impulse实现多模型边缘人工智能解决方案是多么容易,并将其与Blues, AWS和Twilio + SendGrid连接到云。

今天用你自己的Notecard和noteccarrier Pi Hat开始使用Blues(或者如果你想使用基于stm32的微控制器,可以查看Blues Starter Kit for Cell+WiFi)。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为解决使用现有接装纸分离装置生产“视窗烟支”时出现的安装调整难度大、耗时长、稳定性差,烟支接装纸外观质量缺陷率高等问题,设计了一种接装纸三级分离和控制装置。通过接装纸初步分离、分离定位控制和最终定位输送装置模块化设计,且...

关键字: 视窗烟支 接装纸 分离 控制

构建了机载电源特性测试系统 , 包括硬件平台和软件平台:硬件平台用于产生电源特性测试所需激励信号 , 软件 平台实现电源特性测试架构的 自动切换和电源特性的数据采集;硬件平台由APS15000线性功放 、LVA2500线...

关键字: 电源特性测试 测试切换 数据采集 自动控制

作为业内持续专注于物联网(IoT)芯片开发的厂商,Silicon Labs(芯科科技)自2021年剥离基础设施与汽车(I&A)业务后,全力聚焦物联网领域。而随着物联网迈向全场景无缝连接与人工智能(AI)端侧赋能的新阶段,...

关键字: 芯科科技 IoT BLE AoA Sub-G AI

永磁同步电机具有高效节能 、低噪声 、高功率密度等显著优点 ,特别适用于新能源电动汽车行业 。针对城市用轻型 低速电动汽车的应用 , 分析了一款内置式永磁同步电机的设计方法及特点 , 对汽车驱动电机的基本性能及设计策略进...

关键字: 永磁同步电机 新能源汽车 有限元计算 电机设计 内置式

介绍了“W ”型锅炉的燃烧特性 ,深度调峰过程中常见的问题及风险点 。结合某电厂630 MW超临界机组在200 MW负 荷深度调峰过程中给煤机断煤引起的燃烧恶化工况 ,对燃烧恶化后的现象 、处理过程及原因进行了全面分...

关键字: “W”型锅炉 深度调峰 燃烧恶化 稳燃措施

在地铁供电系统中 ,直流牵引系统故障可能会导致地铁列车失电 ,对运营服务造成严重影响 。地铁出入场(段)线 的部分直流牵引供电设备处于露天环境 , 与正线隧道内较为封闭的环境相比 , 易因外部环境影响 ,导致设备故障 。...

关键字: 出入段线 牵引直流开关 电流变化率保护 跳闸

在现代电力系统中 , 无论是大电流 、高电压 、快速运行的电源开关系统 , 还是高速电机的驱动系统 , 电磁干扰的传 播一直是系统设计的难点 。鉴于此 ,介绍了通过控制高速开关核心模块PWM(脉宽调制)的展频方式来减少E...

关键字: 电磁干扰(EMI) 脉宽调制(PWM) 展频

水厂作为城市供水系统的重要组成部分 , 其电气设计的合理性和高效性直接关系到整个供水系统的稳定性和经 济性 。鉴于此 ,从供配电系统 、设备选型 、电缆敷设 、节能措施及智慧化平台等五个维度 , 结合现行规范与工程实践...

关键字: 水厂 电气设计 供配电系统 智慧化平台

由于负载的特殊性和运行条件的复杂性 ,海上油气平台的电气系统功率因数普遍较低 。这种低功率因数会对电力 系统造成一系列负面影响 , 包括电能损耗增加 、设备运行效率降低及对平台电力系统的冲击 。鉴于此 , 结合具体项目案...

关键字: 油气平台 静止无功发生器(SVG) 功率因数 无功补偿 改造案例

在电子制造领域,DFM(Design for Manufacturability,可制造性设计)作为连接研发与量产的桥梁,通过在设计阶段预判制造风险,已成为提升产品良率、降低成本的核心工具。以手机摄像头模组封装工艺为例,...

关键字: DFM BSOB
关闭