当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]嵌入式人工智能领域的软件发展使得AI的开发与部署得以快速推进,让开发者能够迅速将AI解决方案推向全球。借助Edge Impulse等平台,这些任务已得到简化,使我们能够快速构建高效的AI解决方案。接下来对开发者而言的挑战,是如何在资源受限的设备上运行生成式AI模型。在这种情况下,目标部署设备并非高性能的CPU+GPU集成系统,而是小型、低功耗且成本效益高的设备,例如Arduino UNO Q。这款新板型与经典的Arduino UNO相同,但其Linux系统和高速精准的STM32微控制器提供了更强的性能支持。作为一名边缘AI爱好者,我一直致力于将大型视觉语言模型(VLMs)无缝部署到UNO Q上。

嵌入式人工智能领域的软件发展使得AI的开发与部署得以快速推进,让开发者能够迅速将AI解决方案推向全球。借助Edge Impulse等平台,这些任务已得到简化,使我们能够快速构建高效的AI解决方案。接下来对开发者而言的挑战,是如何在资源受限的设备上运行生成式AI模型。在这种情况下,目标部署设备并非高性能的CPU+GPU集成系统,而是小型、低功耗且成本效益高的设备,例如Arduino UNO Q。这款新板型与经典的Arduino UNO相同,但其Linux系统和高速精准的STM32微控制器提供了更强的性能支持。作为一名边缘AI爱好者,我一直致力于将大型视觉语言模型(VLMs)无缝部署到UNO Q上。虽然这一方向此前已有探索,但我的目标是将模型整合进全新的Arduino App Lab软件中。该软件为新一代双脑Arduino板提供了一个统一的环境,用于开发Arduino应用程序。开发者可通过堆叠即用型的Arduino模块(Bricks),轻松构建项目,专注于应用逻辑的实现。

为了演示这种视觉语言模型(VLM)的集成,该项目利用了 Edge Impulse 中经典的瓶子与罐子示例,并采用轻量级的 FOMO 对象检测模型。现在假设我们希望准确识别餐桌上是否有任何类型的啤酒。与其为世界上的每张啤酒图像重新训练 FOMO 模型,我们可以进一步使用 VLM 分析检测结果。在此应用中,当 FOMO 识别出啤酒时,摄像头帧会传送到运行在 UNO Q 上本地的 SmolVLM-500M 模型。该模型随后生成上下文描述,例如“桌上的饮料是啤酒和可乐”,甚至“桌上的饮料是一罐红牛”。这展示了如何通过 VLM 将计算机视觉应用从简单的检测扩展到更丰富的视觉理解,而无需持续重新训练模型。运行这个自定义应用非常简单:只需将仓库克隆到你的 App Lab,然后点击“运行”按钮即可。

组件与硬件配置

软件组件:

•Arduino 应用实验室

•Edge Impulse Studio 账户

硬件组件:

•Arduino UNO Q(2GB 或 4GB)

•带电源传输功能的USB-C集线器

•USB摄像头

•几罐汽水/能量饮料和一瓶啤酒

步骤1:设置你的UNO Q

在首次使用UNO Q之前,我们需要通过App Lab设置Linux系统。Arduino已在用户手册中详细记录了所需步骤。完成此操作后,即可为视频物体检测板进行设置。首先,将USB-C集线器连接到板子上,然后将USB摄像头连接至集线器,并通过电源供应接口为系统供电。

步骤2:使用 Edge Impulse 训练自定义 TinyML 模型

请注意,从 App Lab 0.5.0 版本开始,已新增 Edge Impulse 模型集成功能。这一强大功能可让您直接在 Studio 中训练优化后的模型,并通过部署页面一键将其部署到您的 App Lab 项目中。不过今天,我将演示如何配置 UNO Q 以从 Edge Impulse 加载模型。

如前所述,我们将从一个用于检测啤酒瓶和罐子的预训练模型开始。您可以通过以下链接访问该项目:FOMO对象检测——瓶子与罐子识别。

使用您的账户登录工作室,然后点击页面右上角的“克隆此项目”按钮。接着,在弹出的界面中点击“克隆项目”。

克隆过程完成后,我们需要先将项目的目标硬件重新配置为UNO Q。点击“目标:XXXXX”,然后在下拉列表中将目标设备设置为Arduino UNO Q。

接下来,点击“部署”,在“部署目标”字段中搜索UNO Q,并选择EIM二进制选项。

最后,在页面底部点击“构建”按钮,Studio 将在您的计算机上下载一个 Edge Impulse 模型(.eim)二进制文件。EIM 是原生的 Linux 和 macOS 二进制应用程序,其中包含了您在 Edge Impulse Studio 中创建的完整脉冲数据。该脉冲包括您添加并训练过的信号处理模块以及所有学习和异常检测模块。EIM 文件已针对您的特定系统架构进行编译,可用于在您的系统上原生运行推理任务。

下载完成后,将下载的.eim文件重命名为model.eim。

我们采用级联架构的首个模型已准备就绪。在 Edge Impulse Studio 中,可以看到该模型在 UNO Q 上的设备端推理时间仅为 6 毫秒,RAM 使用量为 244KB,Flash 使用量为 77.6KB。得益于 UNO Q 的强大资源以及模型优化,该模型能够轻松运行于设备上,同时仍有充足的内存空间供视觉语言模型(VLM)推理使用。

步骤3:将TinyML模型复制到UNO Q

在您的个人电脑上,使用 SCP、VS Code 的远程 SSH 扩展或 WinSCP 等软件,将 model.eim 文件复制到 UNO Q 上的以下文件夹:

在 UNO Q 上,创建一个文件夹,路径为 /home/arduino/.arduino-bricks/models/custom-ei/。例如,我将该文件夹命名为 ei-model-1000170-1。接着,在此文件夹中创建一个 model.yaml 文件,并粘贴以下内容:(请确保 yaml 文件的缩进正确,否则 App Lab 无法检测到!!!)

此 YAML 文件描述了模型配置:名称、可执行文件路径以及可以使用该模型的砖块。这对于让 video_objectdetection 砖块识别并正确在 Docker 容器中加载模型至关重要。如果这些配置未正确设置,砖块将无法加载模型,或会使用默认的预训练模型。

步骤4:将VLM应用程序复制到App Lab

该仓库包含后端和前端代码,用于从USB摄像头捕获图像帧,并将数据传递给TinyML模型。摄像头画面和推理结果会显示在用户界面上,其实现方式与基础项目(Detect Objects on Camera)类似。

接下来,使用此链接下载 llama.cpp 所需的运行时库和模型文件,以便通过 main.py 在本地运行 SmolVLM-500M 模型。下载完成后,将 Google Drive 文件夹中的所有文件复制到本仓库的 models 文件夹中。

之后,使用 SCP、VS Code 的远程 SSH 扩展或 WinSCP 等软件将仓库复制到你的 UNO Q 上的 /home/arduino/ArduinoApps/ 文件夹中。完成此操作后,打开 App Lab,你应该能在“我的应用”部分看到该应用程序。

在 main.py 文件中,vlm_prompting_label 定义了一个类,当检测到该类时,将触发加载 VLM 并使用 vlm_prompt 中定义的文本进行提示。为了减少计算数据量,在将帧传递给 SmolVLM-500M 模型之前,会先对帧进行尺寸调整。在视觉语言模型(VLM)中,提示由文本输入和视觉输入(如图像或视频帧)组成。这些内容随后被转换为令牌,即 AI 处理的数据块。

打开 app.yaml 文件,并将 ei-model-1000170-1 替换为最近创建的 model.yaml 文件中定义的模型 ID。重要提示!!请确保在 custom-ei 中创建的文件夹名称与 model.yaml 文件中 id 字段指定的值一致。app.yaml 中也必须使用相同的 ID 值。

步骤5:运行应用程序

在 App Lab 上,点击应用程序并使用“运行”按钮启动。首次启动应用程序时,系统需要下载必要的 Docker 镜像,因此可能需要几秒钟时间。完成后,应用程序容器将被启动,应用会自动在网页浏览器中打开。您也可以通过将 URL 设置为 UNO Q 的本地 IP 地址和端口 7000,在浏览器中手动打开 Web 界面。

在默认应用程序中,当检测到啤酒时,将加载并提示SmolVLM-500M模型。此过程会占用几乎所有剩余的内存和CPU资源。在VLM处理运行期间,后续触发操作将不会执行,直到该进程完成。在Web用户界面中,视频流将继续显示实时摄像头画面以及边界框(FOMO情况下为中心点)。最后,VLM模型的响应结果将在用户界面上显示。

使用基于视觉语言模型(VLM)的动作识别技术,还能减少误报。例如,FOMO 模型有时会将罐头或背景物体误判为啤酒。这类错误可能源于光照条件、背景差异以及与训练数据中对象的差异。然而,通过使用 VLM 重新评估图像帧,模型能够明确识别出仅存在能量饮料。

SmolVLM-500M 性能评估(2GB 对比 4GB UNO Q)

在UNO Q 2GB和4GB版本上,SmolVLM-500M的性能评估结果显示推理速度几乎相同。提示评估速率分别为每秒4.08个和3.96个标记,总推理时间约为22.3秒和23.3秒。有趣的是,在两块芯片上,视觉编码器占计算时间的比例超过90%,表明瓶颈在于图像编码阶段的CPU,而非可用内存(RAM)。

在2GB板上运行SmolVLM-500M模型时,CPU利用率达到100%,而可用的1.70GB内存中,实际峰值RAM消耗为780MB。

在4GB板上运行相同型号时,CPU利用率达到了99%,而可用的3.58GB内存中,实际使用的RAM为1.21GB。

请注意,您可以运行 SmolVLM-256M 或 SmolVLM-500M 模型。但在我的实验中,SmolVLM-256M 模型在图像描述方面表现出明显局限性。它偶尔会生成幻觉文本,将瓶子误判为罐子,并且在执行指令时的可靠性低于预期。从模型训练细节来看,仅有 18% 的训练数据用于图像描述任务。这种数据比例较低以及参数规模较小,可能是其能力上的限制,使其更适合用于相对简单的图像描述场景,而非复杂的视觉推理任务。要加载 SmolVLM-256M 模型,您需要先下载以下开源文件并将其放入 models 文件夹:mmproj-SmolVLM-256M-Instruct-Q8_0.gguf 和 SmolVLM-256M-Instruct-Q8_0.gguf。接下来,在 main.py 中更新 model_path 和 mmproj_path,指向已下载的 SmolVLM-256M 文件。

本文编译自hackster.io

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

上海2026年7月17日 /美通社/ -- 2026年7月17日,2026年世界人工智能大会暨人工智能全球治理高级别会议(WAIC 2026)于上海正式启幕。作为大会首个参展的全球美妆集团,欧莱雅以"'美'一程...

关键字: 人工智能 AI IC AN

上海2026年7月19日 /美通社/ -- 在2026世界人工智能大会(WAIC)上,擎朗智能同步展出人形机器人与专用服务机器人。两类产品并非相互竞争,而是作为互补的具身智能...

关键字: 人工智能 服务机器人 AI IC

上海2026年7月17日 /美通社/ -- 丹纳赫旗下徕卡上海研发制造基地在浦东正式启用,丹纳赫中国宣布本土战略升级为"创升中国3.0",开启在华发展新篇章。作为丹纳赫深化中国布局、推动全球协同发展的...

关键字: 显微镜 供应链 人工智能 网络

上海2026年7月17日 /美通社/ -- 神雲科技股份有限公司(MiTAC Computing Technology Corporation)为全球高效与节能服务器解决方案的领导者,亦为神達控股(TWSE:3...

关键字: 人工智能 AI BSP Z5

如今大多数AI演示都能说得很流利,但实际却无法完成任何有用的功能。在这个项目中,我们将通过使用开源的XiaoZhi AI项目和功能丰富的DFRobot ESP32-S3 AI摄像头,来改变这一现状,打造一个语音控制的人工...

关键字: 人工智能 聊天机器人 AI摄像头 ESP32-S3

人工智能到底给我们带来了什么?如果是不断上升的生活成本,你还愿意为它叫好吗?

关键字: AI 人工智能 生成式AI

标准的嵌入式音频项目通常依赖外部存储设备,例如采用FAT文件系统的SD卡,来播放预先录制的音频文件。在硬件场景中,当无法使用或严格禁止使用外部大容量存储时,就需要采取替代方案。本项目概述了开发一款“无文件”实时音频播放器...

关键字: MP3播放器 音频接口 嵌入式 RT-Spark

在人工智能从“云端”向“物理世界”加速渗透的浪潮下,PhysicalAI(物理智能)正成为连接数字智能与实体应用的核心桥梁。RISC-V凭借其开放、灵活、可扩展的指令集架构,为应对空间计算与物理智能对高效、低功耗专用芯片...

关键字: 人工智能 RISC-V 芯片

厦门2026年7月15日 /美通社/ -- 在创意服务领域,长期存在一个看似矛盾的现象:市场供给并不稀缺,但企业找到对的服务商、以合理的价格、在可预期的时间内完成项目交付,却始终充满不确定性。需求表达不充分、服务商能力难...

关键字: 人工智能 矩阵 网站开发 小程序

几周前,我决定开发CyberKey。这个想法源于工作中一件烦人的事:当我锁定电脑时,VPN会断开连接,而且我每天都要多次输入TOTP验证码。每次解锁手机、打开验证器应用、读取验证码并及时输入,直到它过期为止。CyberK...

关键字: 嵌入式 指纹传感器 M5StickC Plus 2
关闭