当前位置: 首页 > article >正文

基于 ZYNQ 的实时运动目标检测系统设计

摘 要: 传统视频监控系统在实时运动目标检测时,存在目标检测不完整和目标检测错误的局限
本研究基于体积小 实时性高的需求,提出了一种将动态三帧差分法与 Sobel 边缘检测算法结
合的实时目标检测方法,并基于 ZYNQ 构建了视频采集模块 图像处理模块 图像缓存模块 视频显
示模块和目标地址读取程序,可提高检测的准确性与实时性 CDnet 数据集与实拍场景上进行
实验验证,结果表明该系统能够在不同场景下有效 准确地检测实时运动目标
随着电子技术的快速发展,视频监控技术在各领域的重要性显著提升,然而传统视频监控系统功能单
一,无法深入分析视频信息 目标检测作为视频监控领域的一项关键技术,直接影响着视频监控的效
1-3 目前,虽然在计算机上实现目标检测已非常普遍,但其系统体积大 成本高,不适用于移动场景
入式系统虽然有助于提高图像处理算法的速度,但仍然是软件的串行处理,实时性较差 因此使用具备并
行计算能力的硬件和软件平台成为一种可行的优化方案 现场可编程门阵列 FPGA 具有强大的并行处理能
力,非常适合实时图像处理 在实际应用中,系统事务处理功能与图像处理功能的结合非常必要,为了实现
这一功能, Xilinx 公司推出了 ZYNQ 处理器,将 FPGA 的并行计算能力与 ARM 处理器的串行计算能力集成
在同一芯片内 这种设计方案使 ZYNQ 平台既能通过 ARM 实现处理系统事务等复杂功能,同时又能利用
FPGA 实现硬件加速 4
基于此,在体积小 实时性高的需求下,结合 ZYNQ 处理的特点,本研究构建了基于 ZYNQ 的实时运动目
标检测系统,提出动态三帧差分法,在经典帧间差分法和三帧差分法的基础上动态调整前后对称的两帧与
当前帧的固定间隔帧数,融合 Sobel 边缘检测算法,实现实时定位运动目标并标记该目标直至其离开检测
区域
1 系统硬件选型
实时运动目标检测系统整体结构如图 1 所示 开发环境为 Vivado 2021.2 ,在 ZYNQ 开发板上构建一个新
的实时目标检测系统,由视频采集模块 图像处理模块 图像缓存模块 视频显示模块和目标地址读取程序五部
分组成 视频采集模块获取实时视频流,采用 OV5640 图像传感器采集图像,感光阵列大小为 2 592×1 944
图像处理模块对原始数据流进行图像预处理,将处理完的图像复制,进行实时动态三帧差分,最终得到目标
地址并在实时视频流上叠加所标记目标的位置 图像处理模块所用的平台选用 Xilinx 公司推出的异构芯片
Zynq-7000 系列, PS ( Process System ) 端是基于 ARM Cortex-A9 的多核处理器, PL ( Programmable Logic ) 端是
一个可编程的 FPGA ,采用 Kintex-7 系列架构 本系统的 ZYNQ 型号为 XC7Z020CLG400-2 ,该芯片含有
85 000 个逻辑单元, 53 200 LUT 图像缓存模块以 VDMA 为中心架构,将图像数据写入 DDR3 内存实现
图像的帧缓存,总容量为 1 GB 视频显示模块使用 HDMI 接口显示图像,将实时运动目标检测的结果在监
视器上显示 预警判断程序通过目标地址判断目标是否进入预警位置,并发出对应的报警指令
2
ZYNQ 系统设计
PL 端采用模块化设计方法搭建系统架构,通过例化并组合各个模块,顶层调用对应的模块实现相应
的功能,如 RGB 转灰度图 中值滤波 结合 Sobel 边缘检测和形态学滤波的动态三帧差分法 预警判断等
对应的 .xsa 文件导入到 Vitis 软件中,搭建工程并进行 PS 端开发,以实现 OV5640 摄像头配置 VDMA 配置
HDMI 接口配置和目标地址读取
3 实验结果及分析
实验使用 CDnet 数据集进行验证,该数据集包含大量真实监控场景下捕获的视频序列,涵盖了多种监控
环境,目前已被学术界和工业界广泛使用 10-11 本研究例举了部分场景,对连续 1 000 帧图像分别使用帧间
差分法 三帧差分法 动态三帧差分法进行运动目标检测,对比结果如图 6 所示 系统实验的运动目标为汽
车或人体,相机采集的图像帧率为 30 帧,图像分辨率为 1 280×720 系统在不同场景 目标时的检测效果如
6 所示
http://www.lryc.cn/news/2400711.html

相关文章:

  • 数据结构(JAVA版)练习题
  • C#编程过程中变量用中文有啥影响?
  • 哈希表入门:用 C 语言实现简单哈希表(开放寻址法解决冲突)
  • [华为eNSP] 在eNSP上实现IPv4地址以及IPv4静态路由的配置
  • 2024年第十五届蓝桥杯青少组c++国赛真题——快速分解质因数
  • 【动手学MCP从0到1】2.1 SDK介绍和第一个MCP创建的步骤详解
  • 基于MyBatis插件实现动态表名解决多环境单一数据库问题
  • 测试面试题总结一
  • Spring Boot应用多环境打包与Shell自动化部署实践
  • 【深度学习】14. DL在CV中的应用章:目标检测: R-CNN, Fast R-CNN, Faster R-CNN, MASK R-CNN
  • grpc的二进制序列化与http的文本协议对比
  • Linux 环境下 PPP 拨号的嵌入式开发实现
  • UE 材质基础第三天
  • 【Github/Gitee Webhook触发自动部署-Jenkins】
  • 软件工程专业本科毕业论文模板
  • 新松机械臂 2001端口服务的客户端例程
  • 电脑网络重置,找不到原先自家的WIFI,手机还能正常连接并上网
  • 期末复习(学习)之机器学习入门基础
  • 网络各类型(BMA,NBMA,P2P)
  • Linux 库文件的查看和管理
  • Java设计模式深度解析:策略模式的核心原理与实战应用
  • 【计算机网络】第3章:传输层—概述、多路复用与解复用、UDP
  • 6、在树莓派上安装 NTP(Network Time Protocol )服务的步骤
  • 神经符号AI的企业应用:结合符号推理与深度学习的混合智能
  • VSCode 中 C/C++ 安装、配置、使用全攻略:小白入门指南
  • 重温经典算法——希尔排序
  • CortexON:开源的多代理AI系统无缝自动化和简化日常任务
  • 海信IP810N-海思MV320芯片-安卓9-2+16G-免拆优盘卡刷固件包
  • 【Golang】使用gin框架导出excel和csv文件
  • 【unity游戏开发入门到精通——通用篇】AssetBundle(AB包)和AssetBundleBrowser的使用介绍