《电子技术应用》

基于块均值的运动目标检测系统

2014年微型机与应用第24期
郑柏春,林培杰,戴曼娜,苏诗荐,程树英
((福州大学 物理与信息工程学院,福建 福州 350116))
摘要: 构建了基于FPGA的运动目标检测系统,系统包括视频数据的采集、缓存、显示、色彩空间转换及运动目标检测等模块。运动目标检测采用基于块均值的帧间差分法,这种方法有效地减少了需要存储和运算的数据量,降低了像素噪声对检测结果的影响。经测试,该系统能提供清晰稳定的监控画面,实现640像素×480像素,30帧/s视频信号的运动目标实时检测,并能在检测到运动目标后立刻发出报警信号。本系统消耗的逻辑资源较少,能够在小规模的FPGA芯片上实现,可推广应用于社区安防、生产安全监控等领域。

Abstract:

  摘  要: 构建了基于FPGA的运动目标检测系统,系统包括视频数据的采集、缓存、显示、色彩空间转换及运动目标检测等模块。运动目标检测采用基于块均值帧间差分法,这种方法有效地减少了需要存储和运算的数据量,降低了像素噪声对检测结果的影响。经测试,该系统能提供清晰稳定的监控画面,实现640像素×480像素,30帧/s视频信号的运动目标实时检测,并能在检测到运动目标后立刻发出报警信号。本系统消耗的逻辑资源较少,能够在小规模的FPGA芯片上实现,可推广应用于社区安防、生产安全监控等领域。

  关键词视频监控运动检测;块均值;帧间差分法;FPGA

0 引言

  视频安防市场的快速扩大给海量视频信息的实时处理带来了巨大的挑战,为适应日益增长的安防需求,需要更加智能化的视频监控技术。传统的视频监控系统需要监控人员对着数十个监控画面进行实时观察,这种监控方式极易使监控人员产生疲劳感,无法保证监控的可靠性,因此需要实现对运动目标的自动检测和报警。许多运动目标检测、跟踪和识别算法在PC平台上实现[1-2],PC平台成本高,难以普及;基于DSP的图像处理技术,虽然成本相对较低,但是由于其顺序执行指令的局限性,仍然难以满足对高分辨率视频信号实时处理的需求[3]。而FPGA具有并行处理、数据吞吐量大、可重构等特性,适合用于构建嵌入式视频监控系统[4-5]。

  本系统在FPGA上实现了图像的采集、显示及运动目标检测,实现了640像素×480像素、30帧/s的视频信号流的实时运动目标检测。本系统具有逻辑资源消耗少、可重构、实用性强的特点。

1 运动检测算法介绍

  目前主流的运动检测算法有光流法、背景差分法和帧间差分法三种。(1)光流场反映了像素在像素平面内运动的速度向量,是一个二维的速度场。其算法特点是计算复杂性高,资源消耗量大,适合移动摄像头的运动检测[6-7]。(2)背景差分法的基本原理是建立背景模型,用背景模型对当前帧的像素进行判别,判定其属于背景还是属于前景[8]。在复杂背景下,难以建立完善的背景模型。(3)帧间差分法的基本原理是将相邻两帧图像对应像素点的灰度值进行减法运算,若得到的差值大于阈值,则将该点判定为运动点。帧间差分法运算简单,资源消耗少,易于实现实时检测[9]。

  本系统对传统的帧间差分法进行改进,在不降低系统实用性的基础上,减少了需要缓存和处理的数据量。

2 改进的帧间差分法

  改进的帧间差分法以“块均值”为单位计算帧间差分值。在进行运动检测时,将640×480的视频帧分成32×32块,每块的大小为20×15个像素。这样做有两个好处:(1)提取块的均值,能抑制像素噪声对检测结果的影响,减小误检测的概率;(2)减小了需要存储的数据量,使得FPGA上的Block RAM能满足存储空间的需求。算法流程如图1所示,检测模块将相邻两帧之间对应位置的块均值进行比较,若差值大于阈值,就发出报警信号。

001.jpg

002.jpg

  在ModelSim软件中用Verilog编写运动检测模块,并对其进行行为级仿真。用MATLAB平台生成激励文件,并且查看输出的结果。仿真结果如图2所示。运动检测模块先对当前输入的源图像进行预处理,得到对应的块均值图像,然后将相邻帧对应的块均值图像相减。从仿真结果可以看出,对相邻帧间块均值的差值进行二值化处理后能够实现运动目标的正确检测。源图像的大小为307 KB,而块均值图像的大小仅为1 KB,计算块均值的处理方法大大减小了需要存储和运算的数据量,有利于实现视频的实时检测。

3 系统的实现

  本系统基于Spartan-3A DSP S3D1800A开发板实现,摄像头采用OV7620 CMOS摄像头。系统结构如图3所示。

003.jpg

  系统主要分为图像采集、帧缓存、运动目标检测以及图像处理和显示模块。首先用Picoblaze软核对摄像头进行配置,从摄像头读取的视频信号经过位拼接后形成完整的YUV像素数据,通过多端口存储器控制器(MPMC)存入DDR2内存芯片中,并按VGA的时序要求从DDR2中读出数据。从DDR2中读出的数据经过色彩空间转换和滤波后,与报警闪烁信号叠加,最后进入VGA信号生成模块,输出视频信号。同时,运动检测模块读取视频灰度信息,进行目标检测,并根据检测结果发出报警信号。

  3.1 图像采集模块

  Picoblaze是Xilinx公司推出的一款8位单片机软核,其优点是占用的资源很小,适合用于简单的逻辑控制。本系统用Picoblaze作为主控制器,通过I2C总线来实现对OV7620模块的初始化。将摄像头的帧率配置为30帧/s逐行显示,分辨率配置为640像素×480像素,像素信号配置为YUV422输出。每个像素由16 bit数据组成,高8 bit为Y信号,低8 bit为U/V信号。

  在YUV422格式的视频信号中,Y信号每个时钟都会采样,而U和V信号则是间隔采样。由于该摄像头模块的数据引脚只有8位,因此需要用二倍频的像素时钟对8位的引脚进行时分复用输出FPGA接收到像素信号后,将两个8 bit的数据重新拼接成一个16 bit的完整的像素信号。

  3.2 帧缓存模块

  摄像头输出的视频信号是30 帧/s,而标准的640×480 VGA信号的最低帧频为60 帧/s,并且标准VGA信号的同步参数以及时钟频率都与摄像头输出的不同,因此需要帧缓存模块来满足标准VGA信号的显示要求。本系统用开发板上的两块32 M×16 bit DDR2存储器来实现帧缓存。DDR2的控制器采用Xilinx公司提供的MPMC IP核。它可将DDR2内的存储空间映射为一个矩形,矩形的长和宽可根据用户的需要设定。在进行帧写入时,只要在控制命令中声明写入的起始地址以及矩形的长和宽,写入MPMC FIFO的数据就会被存储到对应的矩形上。读取过程也类似。

  3.3 色彩空间转换及显示模块

  本系统采用的运动目标检测算法基于图像的灰度值。为了得到图像的灰度,即YUV信号的Y分量,需要将摄像头配置成YUV422输出的模式,而VGA显示只能采用RGB信号,因此需要对像素数据进行色彩空间的转换。常用的色彩空间转换操作如式(1)[10]所示:

  BHS(R]KZ$OCNB2Q1J(U4DCM.png

  式(1)中的参数根据不同标准有所差异。由于VGA逻辑要在27.125 MHz的时钟频率下运行,为了尽量提高工作频率,实现实时检测,需要设计高效的矩阵运算电路。本系统的色彩空间转换模块采用五级流水结构,具体电路框架如图4所示。在这种结构下,两个寄存器之间最长的路径延时为一个乘法器的延时,在电路结构上最大限度地提高了运算速度,每一个时钟周期完成一次矩阵运算,实时地将YUV信号转换成RGB信号。

004.jpg

  为了提高画面质量,将空间转换模块输出的RGB信号通过Xilinx 2D降噪IP核去除部分像素噪声。报警闪烁模块将去噪后的图像信号和报警信号进行叠加。VGA信号发生模块产生标准的VGA行场时序,并将叠加了报警信号的图像输出到开发板上的电阻网络DAC,DAC再将数字信号转换成标准的VGA信号。

  3.4 运动检测模块

  运动检测模块采用的是第2节中的块均值帧间差分法。模块结构如图5所示。

005.jpg

  模块中用于存储块均值的RAM用片上block RAM实现。每个块均值都是一个8 bit的无符号数,一帧图像共1 024个块。因此RAM的位宽为8 bit,寻址空间为1 KB。

  每计算出当前帧一个块的均值,就将其与上一帧对应块的均值作为减法器的输入,将求出的差值与预先设定的阈值进行比较,阈值可根据测试结果进行调整。若差值大于阈值,则将该块判定为运动块,否则将该块判定为静止块。在判定结束后,将当前帧的块均值存入RAM,替换上一帧的块均值。

4 设计验证及结果分析

006.jpg

  图6(a)是系统硬件的现场测试图,图中的显示设备是通用的LCD显示器。经过现场测试,本系统的图像采集和显示模块画质较好,运行稳定,能够长时间无差错运行,为用户提供清晰可靠的监控画面。图6(b)是对运动检测功能的现场测试图片,在没有运动目标时,显示器上显示的是正常的监控画面。当运动检测模块检测到运动目标时,画面上会出现一个黑白交替闪烁的矩形(报警的方式也可以采用灯光闪烁或是发出提示音等),提示监控人员发现运动目标。经过测试,系统能实时进行运动目标检测,并在检测到目标后快速地发出警报。

5 结论

  本系统实现了基于块均值的运动目标检测。经测试,本系统能实时正确地检测运动目标并发出报警信号。由于采用了基于块均值的帧间差分法,大大减小了逻辑资源的消耗。本系统用小规模的FPGA芯片就能实现,并且具有很高的可移植性,能根据具体的应用环境进行拓展和改进。由于FPGA具有可重构的特性,本系统还能够方便快速地进行升级,降低了维护本。

参考文献

  [1] 周建英,吴小培,张超,等.基于滑动窗的混合高斯模型运动目标检测方法[J].电子与信息学报,2013,35(7):1650-1656.

  [2] 蒋建国,郎立娜,齐美彬,等.基于像素值聚类的运动目标检测方法[J].电子测量与仪器学报,2012,26(2):101-106.

  [3] 郭永彩,苏渝维,高潮,等.基于FPGA的红外图像实时采集系统设计与实现[J].仪器仪表学报,2011,32(3):514-519.

  [4] BAILEY D G. Design for embedded image processing on FPGAs[M]. Singapore: John Wiley & Sons(Asia)Pte Ltd,2001.

  [5] 祝利勇.基于FPGA的视频运动目标检测系统[D].西安:西安电子科技大学,2007.

  [6] BERTHOLD K P H, BRAIN G S. Determining optical flow[J]. Artificial Intelligence,1981,17(1-3):185-203.

  [7] JOHNY P, ANDREAS L, CLAUS C. Real-time motion detection based on SW/HW-codesign for walking rescue robots[J]. Journal of Real-Time Image Processing, 2013, 8(4):353-368.

  [8] AHMED S H, ELSAYED K M, ELHABIAN S Y. Moving object detection in spatial domain using background removal techniques[J]. Recent Patents on Computer Science, 2008, 1(1):32-54.

  [9] Wang Kongqiao, Xu Lei, Fang Yikai, et al. One-against-all frame differences based hand detection for human and mobile interaction[J]. Neurocomputing, 2013,120:185-191.

  [10] HOANG V, PHAM C. Efficient LUT-based truncated multiplier and its application in RGB to YCbCr color space conversion[J]. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 2012, E95-A(6):999-1006


继续阅读>>