当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]大多数 AI 编码演示仅停留在生成的 Python 代码层面。真正的嵌入式部署通常会遇到问题:错误的摄像头流无法返回可用帧,占位符模型 ID 始终无法开始推理,缺少沙盒权限会阻断运行时访问,即使构建干净,也无法证明应用确实已在硬件上运行。

大多数 AI 编码演示仅停留在生成的 Python 代码层面。真正的嵌入式部署通常会遇到问题:错误的摄像头流无法返回可用帧,占位符模型 ID 始终无法开始推理,缺少沙盒权限会阻断运行时访问,即使构建干净,也无法证明应用确实已在硬件上运行。

我想测试一下 Claude Code 是否能从一个简单的一句话需求,真正实现一个在真实设备上运行的验证性边缘 AI 应用,而不仅仅是在仓库中生成源文件。目标平台是 CamThink NE503,这是一款内置 Hailo 加速器并配有 Web 控制台用于部署和运行时检查的边缘 AI 摄像头。

本项目的作用

该项目为 NE503 构建了一个“逗留警报”应用程序。当有人在画面中停留足够长时间后,程序将启动停留计时器,并在 10 秒后触发警报。该警报以事件形式发布到设备上,同时还会开启摄像头的白光作为物理响应。

输入要求非常简单:

有趣的是,实现这个句子在真实硬件上运行所需的一切。

真正的问题

嵌入式硬件上构建边缘AI应用速度很慢,而缓慢的部分往往并非应用程序逻辑本身。真正脆弱的环节是那些设备特定的规则,这些规则通常从未被记录在文档中。

- 哪个流传输原始推理帧而非编码视频

- 哪个已部署的模型ID实际上在实时运行时可用

- 当解析对象未提供时,检测器输出如何编码

- 应用程序清单中的沙箱权限必须与SDK调用匹配

- 如何打包、上传、安装、启动并验证应用在设备上的运行

本项目之所以可行,是因为这些规则被编码为Claude Code技能,而不是留存在他人脑海中。

系统概览

在应用程序内部,推理流程如下:

所使用的硬件和软件

- CamThink NE503边缘AI摄像头

- 开发机器使用Docker buildx(适用于linux/arm64)

- Claude Code

- 从NE503源代码仓库自定义的ne503-dev技能

- NE503 SDK和运行时环境

- 模型:hailo_yolov8n_384_640

开始前的注意事项

- NE503必须可通过网络访问

- 设备应运行HALv2

AI运行时必须正常运行。

模型 hailo_yolov8n_384_640 必须在实时运行时注册表中被扫描并加载。

对于 ARM64 包装,开发机器上必须安装 Docker。

如果模型仅存在于磁盘上但未加载到实时运行时环境中,部署可能成功,但在推理时仍无法输出结果。

1:为 Claude 提供需求

我从一句话开始,在 Claude Code 中调用了 ne503-dev 技能。该技能将请求路由至正确的 NE503 工作流,并根据实际设备限制调整应用程序模板。

此处有三个关键决策:

- 使用真实部署的模型 ID:hailo_yolov8n_384_640

- 使用子流(sub stream)进行原始推理帧,而非编码后的主流

- 启用原始输出订阅,并直接解码检测器输出

2:生成应用程序和清单

生成的应用程序包含两个重要部分:app.py 中的推理逻辑,以及 app.yaml 中的沙箱/运行时合约。

该应用程序订阅 NE503 的推理流,将类为 0 的检测结果视为人,首次检测后启动停留计时器,并在计时器超过 10 秒后触发一次警报。

清单文件声明了对原始视频访问、推理访问、事件发布和设备灯光控制的匹配权限。如果代码与清单文件不一致,运行时沙箱将拒绝该应用程序。

3:构建与部署

ne503-dev 工作流包含一个一次性部署脚本,用于处理构建、上传、安装、启动和验证。

该脚本会生成 ARM64 包,上传到设备,完成安装并启动应用,同时检查实时推理而非仅在 API 调用成功后停止。

首次运行时,启动时间可能稍长,因为运行时需要加载图像。首次启动超时是正常现象;重新启动应用通常可解决此问题。

4:在真实硬件上验证

最终结果不仅是一个正在运行的容器。Web控制台显示了实时日志,应用程序报告了首个推理结果,约10秒后触发了滞留警报。当警报触发时,NE503的白灯按预期亮起。

•已完成3个警报周期

•平均触发时间为约10.1秒

•该会话中未记录0次误报

•每次警报都会亮起白灯

这为何值得关注

应用程序的逻辑本身很简单:整个设备工作流程实现了可重复性——需求分析、生成、打包、部署和验证。而这正是大多数编码演示所忽略的关键环节。

对于边缘AI团队而言,这种工作流程至关重要,因为实际部署中的摩擦往往源于平台隐藏的规则,而非模型代码本身。

限制

•这是一个专为NE503设计的工作流,而非适用于所有边缘AI设备的通用方案。

•演示版本使用了简化的全局停留计时器:当人超过10秒后触发一次,且在人离开时不会重置。

•该演示依赖于已加载的检测模型已在NE503运行环境中可用。

•本项目仅专注于人体检测功能。

最终成果

从一句意图中,Claude Code生成了一款可部署的NE503应用程序,并在真实硬件上完成构建、安装、启动和验证。这才是该项目的真正成果:不仅生成了代码,更实现了一个可运行的边缘AI部署路径。

本文编译自hackster.io

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