当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]灯光在变化,摄像机角度在调整,新的对象类别不断出现,而这些在训练数据中从未存在。原本在测试中准确率达到95%的模型,在生产环境中却只能达到70%。你需要立即推出一个改进后的模型,而不是等到下个季度,或是在维护窗口期间。现在就行动起来,覆盖所有设备,无需派遣工程师逐一检查。

1. 为什么您的边缘AI模型需要空中更新

你训练了一个模型,它在实验室中能准确分类图像。你将其部署到现场设备上,然后现实发生了变化。

灯光在变化,摄像机角度在调整,新的对象类别不断出现,而这些在训练数据中从未存在。原本在测试中准确率达到95%的模型,在生产环境中却只能达到70%。你需要立即推出一个改进后的模型,而不是等到下个季度,或是在维护窗口期间。现在就行动起来,覆盖所有设备,无需派遣工程师逐一检查。

这是模型更新的问题,也是边缘AI生命周期中最大的短板之一。机器学习社区拥有成熟的训练工具(如Edge Impulse、TensorFlow、PyTorch)和成熟的推理工具(如TFLite、ONNX Runtime),但将模型部署到生产设备上通常仍需手动操作:通过SSH登录设备,复制文件,然后重启服务。这种方法适用于原型机,但无法应对十台设备,更不用说上千台了。

本文将介绍如何使用物联网设备管理平台Golioth,为运行图像分类任务的Linux边缘设备提供空中(OTA)模型更新的实用方案。我们将全面讲解整个工作流程:设备配置、模型上传、版本创建以及在推理仍在进行时实现几秒钟内生效的更新部署。

2. 生产中模型更新的挑战

将模型部署到边缘设备是一次性事件,而保持该模型的时效性则是一个持续性的运营挑战。其困难之处在于:模型漂移

真实世界的数据会随着时间变化。一个基于夏季图像训练的模型在冬季时性能会下降。一个针对某一批次产品训练的工厂检测模型,可能无法发现下一批次中的缺陷。模型本身并不会崩溃,而是逐渐变得不准确,往往无人察觉,直到为时已晚。

车队管理

当您拥有多个设备时,每个设备可能运行不同的版本。部分设备在最近一次更新期间可能处于离线状态,或位于网络连接不稳定的位置。您需要一个系统来追踪每台设备的版本,并协调这些差异。

零停机要求

生产系统不能因更新而停机。安防摄像头需要在加载新模型时持续进行分类。质量检测系统不能因固件重写而暂停生产线。更新过程必须在后台进行,确保新模型能够无缝生效。

回滚安全

有时新模型的表现会比旧模型更差。你需要能够快速回退到之前的版本,而无需重新训练或从头开始部署。这就需要保留版本化的副本,并具备在不同版本之间切换的机制。

安全

模型文件属于知识产权,通过互联网传输至可能位于不可信物理位置的设备。传输机制需要加密通信、身份认证的设备以及完整性验证,以确保模型在传输过程中不会被篡改。

3. 解决方案:Golioth 用于机器学习模型交付

Golioth 是一个物联网设备管理平台,可提供安全且可扩展的固件远程升级(OTA)。虽然它通常用于向微控制器交付固件,但其构件管理系统也非常适合将机器学习模型部署到 Linux 边缘设备上。

建筑结构简单明了:

•Edge Impulse(或您选择的训练工具)会生成一个 trained.tflite 模型和一个标签文件。

•Golioth 将模型作为版本化的资源托管,并管理您设备群组的发布。

•您的边缘设备运行一个轻量级更新器,用于从Golioth获取新模型,并运行一个执行推理的Python脚本。

关键在于职责分离。模型更新器负责云通信、身份验证、下载和文件管理,而推理脚本则处理摄像头捕获和分类任务。它们作为独立进程运行。当新模型到达时,更新器将其写入磁盘,并通知推理脚本重新加载——无需重启,也无停机时间。

4. 设备注册与认证

在设备能够接收模型更新之前,必须先在Golioth上注册并获取认证凭据。这可确保只有授权设备才能拉取您的模型,并且模型通过加密连接传输。4.1 创建项目

Golioth 中的每一个事物都存在于一个项目中。项目可以将您的设备、资产和发布版本集中管理。在 Golioth 控制台创建一个代表您部署的项目,例如“工厂质检”或“零售分析”。

4.2 添加设备

每个物理设备在Golioth中都会获得一个唯一的标识。请前往“设备”页面,创建一个新的设备,并为其赋予一个有意义的名称,以标识其位置或功能,例如“camera-line-3”或“entry-classifier-01”。

4.3 使用PSK凭据进行认证

Golioth 支持两种设备认证方式:预共享密钥(PSK)和基于证书的(PKI)。

PSK 是更简单的选项。每个设备会从 Golioth 控制台获取一个 PSK 身份标识和一个 PSK 密钥,并将其设置为设备上的环境变量。这适用于快速原型开发和小型部署。

对于本项目,我们使用证书认证(PKI),相关内容将在下一节中介绍。

4.4 证书认证

对于生产部署,基于证书的身份验证(PKI)提供了更强的安全性。每台设备都会获得由您的证书颁发机构(CA)签名的唯一X.509证书。在TLS握手过程中,设备会出示其证书,Golioth则将其与已注册的CA进行比对验证。

证书认证消除了管理单个PSK密钥的必要性,并支持大规模自动化配置。模型更新器从磁盘读取三个PEM文件:

•设备证书:用于识别该特定设备

•设备私钥:用于验证证书的所有权

•Golioth 根 CA:验证服务器确实是 Golioth

PSK 和证书认证功能相同,仅在配置复杂性和安全级别上有所不同。开发和小型部署可使用 PSK;生产环境中的集群则应使用证书。

5. 通过Golioth部署模型

一旦您的设备完成注册并通过身份验证,即可开始推送模型。Golioth 的 OTA 系统采用三个概念:包(您要交付的内容)、批次(接收者)和部署(接收时间)。

5.1 创建包

Golioth 中的包代表您设备上一个可升级的组件。每个包都有名称、描述以及一组版本化的资源列表。对于图像分类,我们创建两个包:

如果项目中的两个不同设备使用相同的模型,您只需一个AI模型包。通过分组(cohorts)可独立部署到两种设备类型上。

创建一个包:

•在Golioth Web控制台中导航至包

•点击创建

•请输入包名(例如:ai-model)

•可选地添加描述和元数据属性

•点击创建

•重复标签包装的操作。

上传一个版本:

•在包列表中打开你的包

•点击新版本

•设置版本号(例如:1.0.0 或简写为 1)

选择要上传的二进制文件(您的 .tflite 模型或 labels.txt)

•点击上传物品

新版本会显示在版本列表中。每个版本都是不可更改的——一旦上传,便无法修改。要推送更新后的模型,请上传新的版本(例如版本2)。这将为您提供所有已部署模型的完整历史记录,便于随时回滚。

5.2 创建队列

在将更新部署到设备之前,您需要先将其分配到一个组中。组是一组接收相同软件包和固件更新的设备。

通常,您会为每种设备类型或部署阶段创建一个队列。例如:

生产:现场所有生产设备

canary:一个小型子集,会优先接收更新以进行验证

dev:内部测试设备

开始时,一个批次就足够了。

创建一个队列:

前往Golioth网络控制台中的群组

点击创建分组

请输入一个名称(例如:默认或开发)

点击创建

将设备分配给该组。

在控制台中有三种方法可以实现这一点:

从队列页面:点击“添加设备”,在表格中找到您的设备,然后点击“添加”。

从设备索引中:选择带有复选框的设备,点击批量操作 → 分配到群组,然后选择该群组

从“编辑设备”页面:点击“编辑”,从下拉菜单中选择一个组别,然后点击“保存”。

一旦设备被分配到某个群组并连接到Golioth,它将立即收到该群组的当前部署清单。

5.3 部署更新

部署会将特定的一组软件包版本推送到同一组中的所有设备。每个组每次只能有一个有效的部署。当你创建新的部署时,它会取代之前的部署,并立即推送到该组中所有已连接的设备。

要创建部署:

1:转到群组并选择您的群组

2:点击右上角的“部署”

3:选择要包含的软件包和版本:

AI模型 → 版本1

标签 → 版本 1

4:点击“下一步”以查看更改

5:点击开始部署

部署将推送到该组中的所有设备。在设备端,模型更新器接收到清单,识别出新包后开始下载。

5.4 升级到新模型版本

当您准备好要部署重新训练的模型时:

1:进入“包” → “ai-model” → “新版本”

2:将新的 .tflite 文件上传为版本 2

3:前往“群组” → 你的群组 → 部署

4:选择 ai-model v2 + labels v1(如果标签已更改,则选择 v2)

5:查看并点击开始部署

队列中每个设备上的模型更新器都会接收新的清单文件,仅下载已更改的工件,更新符号链接,并通知 Python 推理脚本重新加载——整个过程在几秒钟内完成。

6. 亲眼见证其运作

让我们来看一个真实的部署场景。我们有一个在 Edge Impulse 中训练好的图像分类模型,用于识别两种水果:橙子和甜椒。初始模型(v1)使用了有限的数据进行训练,性能不稳定。我们将通过 Golioth 推送改进后的模型(v2),并实时观察更新效果。

6.1 重新开始

设备初始时会有一个空的模型目录。模型更新器连接到Golioth并订阅了清单更新:

与此同时,Python推理脚本启动并等待模型到达:

6.2 首次模型交付(v1)

我们发布了首个包含Golioth控制台中的ai-model v1和labels v1的版本。更新器接收到清单后开始下载:

Python 脚本接收到信号后加载模型:

摄像头画面开始显示预测结果。但这个初始模型是使用有限数据训练的,经常将橙子误判为甜椒,置信度分数大约在20%到30%之间。

6.3 推送改进后的模型(v2)

在 Edge Impulse 中使用更多数据和更多训练轮次进行重新训练后,我们获得了一个准确率显著提高的 v2 模型。我们将该模型上传至 Golioth 作为 ai-model v2,创建一个新版本(ai-model v2 + labels v1),并将其部署上线。更新器会检测到新版本并自动下载:

请注意,标签文件并未重新下载。更新器检测到磁盘上已存在标签v1,因此跳过了该文件,仅传输了新模型。Python脚本会立即重新加载:

摄像头画面现在显示准确的分类结果,置信度在70%至85%之间。“模型已重新加载”横幅会短暂出现在视频画面中,以确认更新已生效。

从在Golioth控制台点击“Roll Out”到新模型在设备上运行推理,整个更新过程在标准宽带连接下仅需几秒钟,对于一个419KB的模型来说。

6.4 磁盘内容

在部署两个版本后,模型目录如下所示:

两个版本均保留在磁盘上。如果 v2 在特定环境中表现不佳,可以通过创建一个引用 ai-model v1 的新版本来回滚,或者手动将符号链接指向旧版本。

7. 模型部署的最佳实践

7.1 版本 全部内容

上传到Golioth的每个型号都会获得一个版本号。使用该版本号可以准确追踪每台设备上运行的具体内容。当设备报告问题时,第一个应该问的问题是:“它运行的是哪个型号版本?” 磁盘上的版本文件和Golioth控制台都能立即回答这个问题。

7.2 始终为模型附带标签

如果向模型添加了新的类别,标签文件必须相应更新以保持一致。将两者同时包含在同一个Golioth版本中,可确保它们作为一个完整的配对一同提供。模型输出与标签之间出现不匹配是细微的错误,会导致预测结果虽然准确但完全错误。

7.3 使用分阶段发布

不要一次性将新模型推送到整个车队。先标记部分设备为“信标”并优先部署到它们上,在生产环境上线前观察其准确率一两天。Golioth 的设备标签和定向发布功能让这一过程变得简单明了。

7.4 上线后监控

模型更新器可通过状态报告API将自身状态反馈给Golioth。使用此功能可确认每个设备均已成功下载并加载新模型。未能更新的设备在控制台中会显示过时版本,便于识别和排查问题。

8. 结论与未来工作

8.1 我们所构建的内容

我们演示了一种基于Golioth的OTA基础设施,在Linux边缘设备上部署和更新机器学习模型的实用系统。该系统支持多构件发布(模型+标签)、自动版本管理、零停机热重载以及回滚功能。从上传新模型到在设备上运行,整个工作流程耗时不到一分钟。

该架构将模型交付与模型推理分开,使各个组件能够独立发展。设备更新器负责云通信和文件管理;推理脚本则处理摄像头捕获和分类任务。两者通过文件系统和简单的Unix信号进行通信,确保系统可靠且易于调试。

8.2 这能实现什么

我们构建的OTA模型交付基础设施,为更先进的边缘AI工作流奠定了基础:

主动学习系统:设备可以实时监控自身的预测置信度。当置信度低于某个阈值时,设备会标记这些样本以供审核。这些不确定的样本往往是最有价值的训练数据。通过一个流程,可以收集这些样本,将其添加到训练集中,在Edge Impulse中重新训练,并将优化后的模型通过Golioth推送回去。这形成了一种持续学习的循环,每个部署的设备都能共同帮助提升模型性能。

A/B 模型测试:通过版本管理和设备标签,您可以同时在不同的设备组上运行两个不同的模型版本。比较它们在实际场景中的准确率,以确定哪个模型表现更优,然后再决定是否在全车队范围内推广使用。

自动化重训练流水线:Edge Impulse 的 REST API 可集成到 CI/CD 流水线中,自动在新数据上重新训练模型,导出模型并上传至 Golioth 作为新的构件版本,创建部署并推送到候选设备。无需人工介入即可完成常规模型优化。

领域自适应:不同部署地点可能具有不同的环境条件(如光照、角度、背景)。通过Golioth的定向发布功能,同一基础模型可针对各站点进行微调,并推送到特定设备组,确保每台设备都能运行针对其环境优化过的模型。

模型压缩与优化:随着更先进的量化技术或模型架构的出现,您可以使用经过优化的版本,使其运行更快或占用更少内存。无需更改设备硬件或推理代码。

本文编译自hackster.io

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

芯科科技强调,从一开始就将安全性、信任和韧性集成到每一项物联网解决方案中是至关重要的。

关键字: 物联网 传感器 网关

走进任何一家工厂的车间(或想象波士顿动力的Spot机器人为你完成),你都会看到那些没有数据传输功能的传统LCD屏幕和模拟仪表,这会限制你的物联网应用管道。提取这些数据通常意味着需要更换昂贵的硬件。然而,正如TinyML领...

关键字: Rubik Pi 物联网 边缘计算

2026年6月8日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 正式宣布,首次荣获全球嵌入式应用安全连接解决方案知名供应商NXP® Semiconduc...

关键字: 物联网 移动设备 嵌入式

从首个原型到部署设备群的各个阶段,于单次AI辅助对话中把真实世界现场数据结合到固件开发

关键字: AI辅助 物联网 电路板

【2026年6月2日, 德国慕尼黑讯】非接触支付是每款现代智能手表和智能戒指都应具备的功能,兼具快速、便捷、安全三大优势。预计到2030年,支持NFC功能的设备数量将达到40亿台,其中可穿戴设备将达到7亿台,由此可见,市...

关键字: 可穿戴设备 NFC功能 物联网

新模组为原始设备制造商、原始设计制造商及合作伙伴提供更快捷的商业化路径,为工业、智能建筑及公用事业连接市场Wi-Fi HaLow产品商业化提供更快捷路径

关键字: 物联网 Wi-Fi 滤波器

随着物联网技术的深度普及,边缘设备已广泛应用于智能城市、工业自动化、环境监测等诸多领域,成为数据采集、处理与传输的核心终端。然而,多数边缘设备部署在户外或偏远场景,依赖电池供电且维护成本高昂,能源效率低下不仅缩短设备续航...

关键字: 物联网 边缘设备 能源

在数字化浪潮席卷全球的当下,楼宇建筑早已超越单纯的物理空间范畴,成为智慧城市落地与转型升级的核心载体。商业楼宇、产业园区、酒店、工厂等多元建筑场景,正通过数据互联互通、智能化升级改造,实现更高效的运营管理。但在楼宇建筑智...

关键字: 数字化 智慧城市 物联网

当前,文旅产业正从规模扩张转向高质量发展,以文化为核、深耕沉浸体验,依托数字赋能实现全域业态深度融合,文旅消费也从传统观光打卡转向提供情绪价值与沉浸式体验。随着全域智慧化布局持续加快,智慧园区建设已成为园区提升运营管理效...

关键字: 物联网 LoRaWAN 传感器

要将您的 Arduino 项目接入网络,您需要一种将它们与互联网连接起来的方法。这就是 Wi-Fi 物联网模块发挥作用的地方。这个小板能让像 Arduino 这样的微控制器与网络服务和云平台进行通信。

关键字: 物联网 Wi-Fi 传感器 Arduino
关闭