张贺云 吴黎明 肖湘 陈泰伟
(广东工业大学信息工程学院)
视频作为一种实时传输的图像信息,它的采集和处理在现代多媒体技术中占有重要地位。数码相机、可视电话、多媒体 IP电话和电视会议等产品的核心技术就是视频的采集及处理。视频采集及处理[1]的速度、质量直接影响到产品的整体效果。视频目标实时跟踪是指运用图像处理技术对视频信号进行相应处理,从而对目标进行自动检测、定位和跟踪等,等价于在连续的图像帧之间创建基于位置、速度、形状、纹理、色彩等有关特征的对应匹配问题。近年来,城市消防安全远程监控系统、视频会议、消防通信指挥中心建设等视频系统的普遍应用,特别是在高精度位置跟踪系统中,视频跟踪系统具有非常重要的作用。由于视频跟踪系统是从视频信号提取目标信息,并且给出目标的相对位置,并对其进行跟踪。随着视频跟踪技术的发展,其应用越来越广泛,如军事、航空、防盗、视频会议等场合,特别是重要场合的安检系统成为新的应用领域。随着人们对系统集成度要求的不断提高,FPGA性能和集成度不断完善,用FPGA来处理数字信号可以很好的解决数据量大、处理速度不匹配、可靠性低及精度小等问题,并能很好协调并行性与顺序性的矛盾。本文利用System Generator工具建模,实现图像处理[2]、图像识别/跟踪功能[3,4],并自动编译[5]生成 VHDL/Verilog代码;它也可以通过底层提取,对FPGA的底层资源进行访问,从而实现高效率FPGA设计。
智能视频跟踪是指在不需要人为干预的情况下,利用计算机视觉和视频分析的方法对摄像机拍录的图像序列进行自动分析,实现对动态场景中目标的定位、识别和跟踪,并在此基础上分析和判断目标的行为,从而既能完成日常管理又能在异常情况发生时做出反应。智能视频跟踪系统的流程如图1所示,从监控摄像头开始,视频跟踪技术包括视频解码、图像缓存、图像预处理、识别/跟踪算法、视频编码、图像处理数据保存模块、视频输出显示。
图1 系统组成框图
图像目标跟踪是指对图像序列中的活动目标进行检测、提取、识别和跟踪,获得活动目标的运动参数、运动轨迹,从而进一步处理与分析,实现对活动目标的行为理解,以完成更高一级的任务。目前常用的目标跟踪方法有帧间差分法、光流法、人工神经网络法、粒子滤波法、飘逸跟踪法、基于频率域的方法等。本文使用的方法是固定模板的模板匹配算法[6]。模板就是一幅已知的小图像,本文采用的是 13×13点的固定模板。模板匹配就是在一幅大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像,通过一定的算法可以在图中找到目标,确定其坐标位置,给予标记,达到跟踪的目的。
假设要在搜索区域中寻找与模板图像相关程度最大的位置,可以通过模板匹配来计算两者的相关程度。图2是模板匹配算法的示意图。假设模板(b)叠放在搜索图(a)上平移,模板覆盖下的部分记作子图Si,j,其中i,j是这块子图的左上角像点在S图中的坐标。从图2 中可得出i、j的取值范围:1≤i≤K-M+1;1≤j≤L-N+1。
衡量模板T和子图Si,j的匹配程度,可以利用下面公式:
展开式子有:
式(2)右边的第三项表示模板的总能量,是一个常数,与i,j无关。第一项是模板覆盖下那块子图像的能量,它随i,j位置变化而缓慢改变。第二项是子图像和模板的互相关函数,随i,j变化而迅速改变。模板T和子图Si,j匹配时这一项的值最大,因此可用下列相关函数来反映匹配程度:
或者归一化为:
计算得到的最小R(i,j)的位置是目标位置。
通常,用摄像仪和扫描仪所获得的颜色,以及计算机显示所用的颜色都是RGB色空间。但在RGB色空间中,颜色的属性没有独立,在进行图像处理时,会造成各个属性间的串扰;在传输和处理过程中,会占用大量的带宽和存储量,给图像处理带来很大的麻烦。YCbCr[8]是世界数字组织视频标准研制过程中作为ITU-R BT.601建议的一部分,它被用于电视信号的传送。与RGB色空间相比,YCbCr用亮度和两个色差信号来表示颜色,其中 Y代表亮度信息,使用8b的16~235级电平;色差信息Cb和Cr使用其中的16~240级电平。因为人眼对亮度的变化比对色度的变化更敏感,所以减少带宽引起的颜色损失很小,人眼几乎无法察觉。因此,不必用与Y一样的速率来传输Cb和Cr信息,从而减少了存储量和带宽。
YCbCr与RGB转换的公式(RGB取值范围均为0~255):
Y、Cb、Cr信号值的范围是16~235,0~15之间的值叫作 footroom,236~255之间的值叫作headroom。
使用From Multimedial File模块读取视频数据的模型如图3所示。
图3 视频数据读取模型
模型将 AVI视频文件的数据输出到 Workspace的变量中,以供后面所讲的图像处理应用,其中Color Space Conversion模块将RGB颜色空间的图像转换成YCbCr空间的图像。Video To Workspace模块的功能是将接收到的数据存储为Workspace的变量。通过上述模型,在Workspace中,生成了由设计者自己命名的SourceVideo3D变量,其数据格式为一个三维数组,第一维表示视频的高度,第二维表示视频的宽度,第三维表示视频的帧数。
用System Generator系统来搭建实时的目标跟踪算法。算法是前面所讲的固定模板的模板匹配算法。
模型分为三部分,一部分是计数器部分,用两个计数器分别负责一帧图像的行像素计数和列像素计数,Single Port RAM模块负责存储完整的一帧图像,这里的视频大小为160×120,存储一帧图像需要19片BlockRAM;另外两部分为中央处理部分和叠加跟踪框部分,其中中央处理部分由TraceProcessor模块负责,叠加跟踪框部分由On Screen Display模块负责实现。
由TraceProcessor模块得到处理的匹配点坐标,该模块的处理延时为42个时钟周期,即一帧图像结束后的第42个时钟周期即可得到匹配点坐标。输出的视频数据流只经过On Screen Display模块的跟踪框叠加操作,On Screen Display模块延时4个时钟周期,所以模块的视频输出几乎接近零延时,体现系统的实时性。On Screen Display模块根据给出的匹配点坐标在视频数据流上叠加一个白色的跟踪框,以显示追踪目标,该模块利用多个判断语句,判断当前像素点是否在需要绘制的跟踪框上,如果是则直接将像素替换为白色,否则让视频数据原封不动的通过,搭建时只需要注意逻辑与延时即可。视频处理模块如图4所示。
图4 视频处理模块
处理后视频截图如图5所示,白色的跟踪框指示了跟踪的目标位置。
实验结果验证了用固定模板的模板匹配算法来实现目标跟踪的可行性。视频处理模块虽然会对遮挡具有很强的鲁棒性,但不适合应对跟踪目标旋转、缩放等变化情况,这些问题的解决需要算法改进。在FPGA系统中,可以利用System Generator模块直接生成VHDL/Verilog代码,构建后续的应用系统,并且,这些代码都可以在ISE集成软件环境中进行综合、实现、生成比特流及下载到FPGA中运行。特别是能够在Simulink环境中进行硬件仿真,这对于数字图像处理的硬件实现非常重要,为FPGA在这方面的应用提供了良好的工具。
[1] Xilinx Inc. System Generator for DSP Reference Guide.http://www.xilinx.com/support/documentation/index.htm, 2008.
[2] Wu Jincheng,Sun Jingrui,Liu Wenying. Design and implementation of video image edge detection system based on FPGA. 2010 3rd International Congress on Image and Signal Processing (CISP2010),2010:472-476.
[3] Hui Lin.The SOPC-Based Video Acquisition and Pre-Processing Technique. Guangzhou Guangdong University of Technology, 2010.
[4] Wang Qi,Wu Liming,Lin Hui,et al. Moving target detection based on reconfigurable video processing technology. 2010 International Symposium on Computational Intelligence and Design, 2010:87-90.
[5] Lin Hui,Wu Liming, Liu Junxiu, et al. Overshoot and undershoot control for signal generator. 2010 International Conference on Measuring Technology and Mechatronics Automation, 2010:864-867.
[6] Ma Liyong,Sun Yude,Feng Naizhang, et al. Image fast template matching algorithm based on projection and sequential similarity detecting. 2009 Fifth International Conference on Intelligent Information Hiding and Multimedia Signal Processing,2009:957-960.
[7] Yasri I.,Hamid N.H.,Yap, et al. An FPGA implementation of gradient based edge detection algorithm design. 2009 International Conference on Computer Technology and Development, 2009:165-169.
[8] 金晓冬,常青.基于FPGA的RGB到YCbCr色空间转换.现代电子技术,2009,32(18)