当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]该项目展示了一套端到端的实时边缘视觉处理流程,结合了目标检测、多目标跟踪和基于像素的运动估计技术,仅在物体实际移动时可靠地捕捉图像(或录制视频),且可选择性地仅记录用户自定义区域内的动态内容。

该项目展示了一套端到端的实时边缘视觉处理流程,结合了目标检测、多目标跟踪和基于像素的运动估计技术,仅在物体实际移动时可靠地捕捉图像(或录制视频),且可选择性地仅记录用户自定义区域内的动态内容。

在树莓派AI摄像头中,使用NanoDet目标检测模型、BYTETracker实现稳定的目标识别,并结合一个基于时间像素变化计算运动边界框的运动模块,该应用将“检测结果”与“运动”进行匹配,以决定何时触发录像。最终得到的是一种实用的运动传感器,其性能优于原始帧差法,且比持续录像更高效。

故事

基于像素差异的经典运动传感器容易产生噪声:光照变化、阴影和相机噪点都可能触发误报。另一方面,纯粹的物体检测可能会持续“开启”,即使物体静止时也会保存帧数。

该项目融合了两种方法:

•Motion 会告诉你哪些像素在变化(即有物体在移动)。

•检测与追踪可告知您物体的类型,并在时间上保持稳定的识别标识。

•匹配逻辑确认检测到的对象也在运动,只有在该情况下才会触发捕获。

•区域功能可让您将触发器限制在特定区域(例如,您的门口、走廊或装卸区)。

最终成果是一款轻量级边缘应用,仅在需要时捕获证据(图像)或录制片段(视频),从而减少存储空间、降低误报率,并使事件审核更加便捷。

架构概览

该应用程序由六个主要部分组成:

•模型推理(目标检测)在每一帧上运行NanoDet,以生成边界框、类别ID和置信度分数。

•检测过滤通过应用置信度阈值和可选的类别过滤器(例如,仅保留“人”)来减少噪声。

•对象跟踪(BYTETracker)为跨帧的检测结果分配持久性ID,使系统能够对“同一物体”进行时间上的推理。

•运动估计(像素变化 → 运动框)通过分析帧间像素变化来计算运动边界框。

•区域门禁(可选)将检测/运动检查限制在从JSON文件加载的用户自定义多边形区域内。

•匹配 + 触发逻辑:将跟踪的检测结果与运动框进行匹配,当条件满足时触发图像采集(或视频录制)。

1. 使用 NanoDet 进行目标检测

该应用将NanoDet模型部署到AI摄像头,并从每一帧中读取检测结果:

检测结果按置信度进行筛选:

并(在此示例中)过滤为单一类别:

您可以根据使用情况移除或扩展此筛选器,以监控多个班级。

2. 使用BYTETracker进行多目标跟踪

BYTETracker 模块通过分配持久的跟踪 ID 来稳定检测结果,使其随时间保持一致。

这一点很重要,因为运动触发通常需要时间逻辑(“连续N帧移动”、“连续N帧未移动”),而当对象具有稳定ID时,这种逻辑会容易得多。

3. 基于像素变化的运动检测

运动模块通过观察像素随时间的变化来计算运动边界框:

这会产生边界框,表示运动发生的位置,而与物体类别无关。

4. 按区域筛选(可选)

区域从JSON文件中加载(手动创建/编辑或通过点选择工具生成):

然后可以将检测框和运动框筛选为仅包含在区域内内的部分:

这非常适合“仅在门附近触发”或“仅在装载区域内触发”的场景。

5. 匹配检测与运动(谁在移动?)

关键思路是确认检测到/跟踪的对象与运动区域重叠。匹配器模块执行此关联:

现在 motion_detections 表示被检测到且正在移动的对象(可选地在区域内移动)。

6. 触发逻辑:何时拍摄图像

check() 函数实现了触发规则。简而言之,当以下情况发生时即可触发:

未检测到运动,且运动在阈值处保持恒定(即“仅运动”回退模式),或一个跟踪对象被匹配为持续移动足够长时间(例如,运行时间 > 10 帧),并且相同的ID不会重复触发,除非离开或重置。

当触发器被激活时,应用程序会保存一帧:

这会在./images目录下生成带时间戳的图像证据记录。

应用摘要

•检测:NanoDet 边框 + 类别ID

•追踪:BYTETracker 分配稳定 ID

•运动:像素变化的运动框

•区域门禁:通过JSON区域进行可选限制

•匹配:确认检测到的对象正在移动

•输出:带注释的实时视图 + 保存的图像(或在其他应用中录制的视频)

亲测体验

1. 定义运动区域(JSON)

要更改监控区域,请编辑 example.json,或直接使用两种工具之一来编辑点位:

•在应用配置工具中

•点选择工具

2. 运行图像采集版本

使用 uv(从 pyproject.toml 安装依赖并运行应用程序):

参数:

--json-file(必需):包含区域多边形的JSON文件

--area(可选):在流上叠加显示区域

3. 运行视频录制版本

如果您更倾向于录制视频而不是拍摄照片:

本文编译自hackster.io

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