Back to Blog

基于AM5728 DSP+ARM的视频监控烟雾检测系统

#AM5728#烟雾检测#DSP#ARM

引言

在工业现场和公共安全领域,视频监控系统已经成为实时感知环境的重要手段。传统监控往往只能提供画面回放,而缺乏对异常事件(如烟雾、火灾)的即时检测能力。本文围绕 AM5728 这一低功耗浮点 DSP + ARM 双核架构的高性能芯片,详细介绍如何构建一个带烟雾检测功能的视频监控与处理系统。读者将了解系统的硬件选型、异构多核通信机制、烟雾检测算法的实现要点以及实际部署时的注意事项。

1. AM5728 芯片概述

  • 处理器组成:AM5728 属于 TI DaVinci 系列,集成了两颗 ARM Cortex‑A15(最高 1.5 GHz)和两颗 C66x DSP(最高 1.2 GHz),并配备了硬件加速的图像信号处理(ISP)单元。
  • 低功耗特性:采用 28 nm 工艺,功耗在 3 W 左右,适合边缘 AI 设备长期运行。
  • 丰富的外设:包括多路摄像头接口(CSI‑2)、千兆以太网、USB、PCIe、UART 等,便于与现场摄像头、存储和网络平台对接。

这些特性为 “DSP + ARM 异构计算” 提供了硬件基础,使得可以在 DSP 上执行高效的图像处理算法,而 ARM 负责系统管理、网络通信和用户交互。

2. 异构多核通信:SysLink

DaVinci 系列提供的 SysLink 是一种轻量级的跨核通信框架,支持:

  • 共享内存:在 DSP 与 ARM 之间映射同一块物理内存,实现零拷贝数据传输。
  • 消息队列:基于信号量和事件的同步机制,确保数据在不同核之间的有序消费。
  • 模块化接口:通过 SysLink API,开发者可以快速构建 Producer‑Consumer 模型,无需自行处理缓存一致性问题。

在本系统中,摄像头采集的原始 YUV 视频帧首先由 ARM 的 ISP 进行预处理,然后通过 SysLink 将帧数据共享给 DSP,DSP 负责执行烟雾检测算法,检测结果再回传给 ARM 用于告警和录像控制。

3. 烟雾检测算法核心

原文
基于 低功耗 浮点DSP+ARM双核架构的高性能芯片AM5728,开发一个带烟雾检测功能的视频监控与处理 系统 。该系统利用Davinci异构多核通信的基础组件SysLink,实现了视频信号在异构多核处理器之间的通信与处理,具有体积小,功耗低,算法实现灵活高效,可以脱离计算机独立运行等特点。在AM5728的DSP端运行了基于图像频度特征的烟雾检测算法,综合运用频度图像和灰度图像相对于基准图的相关系数,既能检测浓烟也能检测稀薄烟雾,并利用烟雾的独有特征避免了物体移动与光照变化等场景引起的误检测。

3.1 频度特征的意义

  • 频度图像(Frequency Image)是对原始灰度图进行快速傅里叶变换(FFT)后取幅值的结果。烟雾在图像中呈现为细腻、半透明的颗粒,其频谱特征往往集中在低频段。
  • 灰度图像基准图(即上一帧的背景图或长期累计的背景模型)进行相关系数计算,可捕捉到整体亮度变化趋势。

通过 “频度图像 + 灰度图像相对基准图的相关系数” 双重判定,算法能够同时识别 浓烟(频率能量显著提升)和 稀薄烟雾(灰度变化轻微但相关系数下降)的场景。

3.2 防止误检测的关键点

  • 物体移动:移动的车辆或人员会导致局部像素剧烈变化,但其频域特征仍保持高频,相关系数下降幅度有限。算法通过设定频率阈值,仅在低频能量显著提升时才触发烟雾判定。
  • 光照变化:日光、灯光的强弱变化会影响整体亮度,导致灰度相关系数波动。系统在计算相关系数时采用 局部自适应阈值,并结合 频度图像的平滑度(例如方差)进行二次过滤,从而排除光照引起的误报。

4. 系统实现步骤

步骤关键操作说明
1硬件平台搭建将摄像头通过 CSI‑2 接口连接到 AM5728,确保 ISP 能够输出 720p/1080p YUV 数据流。
2SysLink 初始化在 ARM 端调用 SysLink_init(),在 DSP 端调用对应的初始化函数,建立共享内存区域(如 4 MB)用于帧传输。
3帧采集与预处理ARM 使用 ISP 对原始帧做去噪、色彩空间转换(YUV→GRAY),并将结果写入共享内存。
4DSP 端算法执行DSP 读取共享内存中的灰度帧,执行 FFT 生成频度图像;随后计算与基准图的相关系数,依据阈值判断是否出现烟雾。
5结果回传检测到烟雾时,DSP 将标志位写入共享内存或通过 SysLink 消息队列发送告警,ARM 接收后触发报警灯、声音或上传视频片段至云端。
6背景模型更新为防止长期背景漂移,系统每隔 N 帧(如 30 帧)更新一次基准图,采用加权平均方式平滑噪声。
7系统监控与日志ARM 负责记录检测日志、CPU/DSP 负载以及网络状态,便于后期维护与性能调优。

5. 部署与调试要点

  1. 实时性验证:使用 tophtop 或 TI 提供的 DSP/BIOS 监控工具,确保 DSP 处理单帧的时延不超过 30 ms(对应 30 fps)。
  2. 阈值调优:不同场景(室内、室外、雾天)对频率阈值和相关系数阈值的敏感度不同。建议先在实验室采集若干典型视频,利用离线脚本(Python/Matlab)绘制 ROC 曲线,选取 FPR < 5%TPR > 90% 的阈值组合。
  3. 功耗监测:通过 TI 的 PowerVRPMU 接口读取芯片功耗,确保在连续运行 24 h 后功耗仍保持在 3 W 左右,满足边缘设备的散热限制。
  4. 异常处理:若 SysLink 共享内存出现写冲突,可在 DSP 端加入 双缓冲 机制;ARM 端则在帧写入前检查 memcpy 返回值,确保数据完整性。

6. 实际效果展示

下面的示意图展示了系统在检测到稀薄烟雾时的界面截图,左侧为原始监控画面,右侧为叠加了检测框的结果。

从图中可以看出,即使烟雾浓度较低,算法仍能通过频度特征捕获其存在,并在画面上标注出潜在危险区域。

7. 进一步的优化方向

  • 多尺度分析:在 DSP 上实现金字塔式 FFT,对不同分辨率的图像分别进行频率分析,可提升对远距离薄烟的检测灵敏度。
  • 深度学习融合:将轻量化的 CNN(如 MobileNetV2)部署在 ARM Cortex‑A15 上,对 DSP 输出的候选区域进行二次分类,以进一步降低误报率。
  • 边缘云协同:检测到烟雾后,利用 AM5728 的千兆以太网将关键帧上传至云平台,结合大数据模型进行趋势预测和跨区域联动报警。

8. 小结

本文围绕 AM5728 DSP + ARM 双核架构,详细阐述了基于 SysLink 的异构多核通信实现方式,以及在 DSP 端运行的 基于图像频度特征的烟雾检测算法。通过频度图像与灰度图像相对基准图的相关系数双重判定,系统能够同时捕捉浓烟与稀薄烟雾,并有效抑制因物体移动和光照变化导致的误检测。该方案具备体积小、功耗低、算法灵活高效、可脱离计算机独立运行等优势,适合作为工业现场、智慧城市及边缘 AI 场景下的实时烟雾监测解决方案。

希望本文的实现思路和调试经验能为从事边缘视觉和安全监控研发的工程师提供参考,帮助快速落地基于 AM5728 的高可靠性烟雾检测系统。