APP下载

边缘检测与帧差法相融合的视频分割算法

2015-01-29刘建明

电子设计工程 2015年12期
关键词:差分梯度边缘

武 一, 程 铭, 刘建明

(1.河北工业大学 信息工程学院,天津 300401;2.天津现代职业技术学院 天津 300350)

常用的运动目标检测算法包括光流法、背景差分法和帧差法[1]。光流法计算量较大并且算法复杂,很难满足实时性的要求。背景差分法可以满足实时性的要求,但是更换背景时的计算量大,并且要选择合适的模型。帧差法是最为常用的一种方法,其计算量较小,具有较好的实时性,对环境光照变化不敏感,但是该算法对运动目标的检测不准确,容易造成目标的缺失或增大。

传统帧差法的过程分为两步:首先,把相邻两帧或三帧图像的对应像素值相减得到差分图像;其次,根据设定的阈值将差分后的结果二值化,若二值化结果小于事先确定的阈值时,认为此处为静止部分,若二值化结果大于设定的阈值时,认为这是图像中运动物体引起的,根据这些像素区域即可确定运动目标在图像中的位置。在一幅图像中,边缘包含着所需要的大部分信息。基于此种考虑,本文提出一种改进传统帧差法的思路。该方法首先在两个方向同时进行运算,最后综合两个方向的结果确定运动物体。同时进行的两个方向一是对图像进行边缘提取,利用图像的边缘差分来提取运动物体的轮廓,为了连接运动物体轮廓可能会出现的断点,再对差分结果进行闭运算。另外一个方向是将相邻两帧图像的对应像素值转化为二值化数据,对二值化数据进行差分。具体过程分为三步:首先,对提取到的图像采用sobel算法进行边缘提取,对相邻两帧间的边缘进行差分,对差分结果进行闭运算。其次,将对应像素值转化为二值化数据,把二值化数据差分。最后,综合闭运算和二值化差分的结果,得到最终的运动物体轮廓。

1 系统架构

为了实现该种融合算法,本文构建了图像采集、处理和显示的系统[2]。核心部分采用FPGA来实现,其内部带有丰富的IP核资源,有效利用可以提高设计效率。整体架构图如图1。拟采用OV7670数字图像传感器作为前端视频数据的采集模块;Altera公司旗下的EP2C8系列FPGA芯片作为核心处理模块,完成PLL锁相环配置,图像传感器配置,图像数据的输入[3]与拼接[4],控制VGA显示,核心算法处理等功能;采用FIFO(FPGA自带资源)配合SDRAM作为数据缓存模块;DA转换器adv7123和普通显示器构成显示模块。

图1 系统架构Fig.1 Structure diagram of the system

2 算法处理模块

传统帧差法是对连续图像序列进行相减,最后依据阈值将差分结果二值化,当结果大于阈值时认为是运动区域。本文改进传统帧差法,如图2所示,在图像序列差分前对其进行边缘提取,对边缘进行差分以得到运动物体的轮廓,为了连接可能会出现的断点,对差分结果进行闭运算,保证运动物体轮廓的质量。

2.1 边缘提取

边缘提取采用sobel算法[5]。本文采用调用FPGA中IP核资源完成该算法。首先计算图像的水平与垂直梯度,然后将两个方向的梯度结合,通过阈值比较得出边缘信息。过程如下:

图3 相邻像素与算子Fig.3 The adjacent pixels and the operator

图3 (a)为一幅图像的相邻的 9个像素点,图 3(b)为垂直方向梯度算子,图3(c)为水平方向的梯度算子。通过计算,得到像素f5的垂直方向梯度Gx和水平方向梯度Gy:

最终像素点f5的梯度F5为:

为了方便运算,将公示简化为:

根据公式(1)、公式(3)的算法运算过程,主要调用乘加器altmult_add,并行加法器parallel_add以及绝对值计算lpm_abs宏功能模块,为了得到如图3(a)所示的像素区域,还要调用带抽头的移位寄存器altshift_taps实现像素数据分离。

2.1.1 乘加器altmult_add

由公式1得出,完成水平与垂直方向的梯度运算要采用乘加器,通过quartusII自带的MegaWizard Plug[6]平台配置如图4的乘加器模块。其中,每一行的像素数据由dataa_0输入,由于其被配置为shiftin input,所以经过3个时钟周期,相邻的3个数据分别与乘数datab_0、datab_1和datab_2相乘,乘数即为图3(b)和图3(c)的算子。所得到的结果为每一行中相邻3个元素的乘法加法和。要完成一个方向的梯度运算要调用3个这样的乘加器。

图4 可编程乘加器Fig.4 Altmult_add

2.1.2 并行加法器parallel_add

由公式(2)看出,要完成水平与垂直梯度运算还要采用并行加法器,即将相邻三行经过altmult_add[6]后的结果相加得到最终的梯度。通过MegaWizard Plug平台配置该模块,其中的data0x、data1x和data2x分别输入水平与梯度运算时每行的结果,水平和垂直方向分别调用一个并行加法器,得到的result分别为水平与垂直方向梯度。

2.1.3 绝对值计算lpm_abs

根据公式3,采用绝对值运算模块[6]来完成水平梯度与垂直梯度的取绝对值运算。通过MegaWizard Plug平台配置该模块,其中data输入分别为水平方向与垂直方向的梯度,result输出相应方向的绝对值。

2.1.4 像素数据分离altshift_taps

该部分要完成的功能是将缓存中输出的整体的像素数据分离成相邻的3*3区域(如图3-1所示),这样才能对像素点进行sobel算法处理。本思路采用调用带抽头的移位寄存器altshift_taps[6]来实现该功能。通过MegaWizard Plug平台配置该模块,使该寄存器具有6位输入、6位输出,相邻抽头间距640个寄存器的三抽头功能。随着数据由shiftin输入,shift2x输出第N行数据,shift1x输出第N+1行数据,shift0x输出第N+2行数据,形成如图3-1的3*3像素数据区域。

将上述模块组合起来,实现sobel算子得到图像的边缘信息。仿真图如图5,shiftin为输入数据;shiftout1-3为三抽头,即把数据装换为3*3模板;result为输出梯度值,正确结果32。

图5 边缘检测仿真图Fig.5 Simulation of edge detection

2.2 帧间差分

差分部分包括边缘的差分以及二值化结果差分。在图像序列中,第 K 与 K+1 帧图像分别为 Fk(x,y)和 Fk+1(x,y),则可以采用二者的差分结果表示出运动物体,公式为:

其中,T为二值化阈值,结果中的1为前后两帧图像中灰度发生变化的点,即属于运动物体或者是噪声。0为未发生变化的点,即静止的部分。本系统采用当前帧与缓存帧进行异或运算以完成差分过程。

2.3 闭运算

闭运算指采用同一结构元素对图像先膨胀再腐蚀[7],计算公式如公式(5)。经过运算后,可以平滑图像的边缘,连接出现的断点,使图像边缘的质量更高。公式如下:

虽然闭运算计算过程复杂,但是用到的主要器件为6位比较器、选择器、延时FIFO以及锁存器,这些器件均可以用FPGA实现。采用代码实现:

其中 mTam_x+1<=mTap_x,rTam_x+1<=rTap_x, 并且mTam_0<=Y。经过开运算后,图像中小出现的断点被有效连接,使移动物体的边缘轮廓更加清晰,画面更加整洁,同时也为计算移动物体的坐标提供了保障。

2.4 图像数据二值化

为了比较方便,将相邻两帧图像的像素值二值化[8],用到verilog的赋值语句,如公式

其中R、G和B为一个像素值得3个分量,T为阈值。F即为二值化结果。

2.5 综合开运算与二值化数据差分结果

为了结果明显,系统中提取到的运动物体用红色标注。用到的赋值语句如公式(7):

其中,VGA_R为VGA的红色通道,X和Y为像素坐标,A1和A2为开运算和二值化数据差分结果,R为原始图像的红色分量。

3 实验结果

如图6所示为该算法的实验验证结果。摄像头固定采集场景中的信息,其中1为视频中无运动物体的原始图像,2、3和4为出现移动物体时的跟踪画面。图中的移动物体为万用表黑色表笔,当其运动时其边缘会显示全红色,如图中的双黑实线所示。

4 结 论

文中提出一种改进传统帧间差分法的思路,不直接对采集到的图像序列进行差分,而是对其进行边缘提取以得到物体的轮廓,利用边缘信息进行差分以达到提取运动物体边缘的目的,最后对差分结果进行闭运算,连接可能会出现的移动物体轮廓断点。为了保障提取到运动物体的质量,同时把对应像素值转化为二值化数据并进行差分。最后根据闭运算以及二值化差分结果提取出数据突变的部分,即为运动物体的部分。

图6 静止画面与跟踪效果Fig.6 Still images and tracking effect

[1]万缨,韩毅,卢汉清.运动目标检测算法的探讨[J].计算机仿真,2006,23(10):221-226.WAN Ying,HAN Yi,LU Han-qing.The methods for moving object detection[J].Computer Simulation,2006,23 (10):221-226.

[2]王晗,李翔,李忠敏,等.基于OV7670的图像采集与显示设计[J].中国科技信息,2013(11):90-91.WANG Han,LI Xiang,LI Zhong-min,et al.Image acquisition and display design based on OV7670[J].China Science and Technology Information,,2013(11):90-91.

[3]史露,苏刚,韩飞.基于SIFT和SURF图像拼接算法的改进算法[J].计算机应用与软件,2013,30(6):72-75.SHI Lu,SU Gang,HAN Fei.An improved algorithm base on SIFT and SURF image stitching algorthm[J].Computer Applications and Software,2013,30(6):72-75.

[4]秦剑,李林,李绍明,等.基于梯度的图像分割新方法法[J].计算机应用,2009,29(8):2071-2073.QIN Jian,LI Lin,LI Shao-ming,et al.New image segmentation method based on gradient[J].Joumal of Computer Applacations,2009,29(8):2071-2073.

[5]李明,赵勋杰,毛伟民.Sobel边缘检测的FPGA实现[J].现代电子技术,2009(16):44-46.LI Ming,ZHAO Xun-jie,MAO Wei-min.Implementation of Sobel edge detection based on FPGA[J].Modern Electronic Technology,2009(16):44-46.

[6]Altera.Quartus II Version 7.2 Handbook[EB/OL].(2007-10)https://www.altera.com/download/software/quartus-ii-we/7.2/zh_CN.

[7]石伟,宋跃.基于FPGA/SOPC的灰度图像腐蚀膨胀运算的设计与实现 [C]//教育部中南地区高等学校电子电气基础课教学研究会第二十届学术年会会议论文集 (下册),2010:741-744.

[8]徐晓昭,沈兰荪,刘长江.颜色校正方法及其在图像处理中的应用[J].计算机应用研究,2008,25(8):2250-2254 XU Xiao-zhao,SHEN Lan-sun,LIU Chang-jiang.Color correction methods and application in image processing[J].Applicaion Research of Computers,2008,25(8):2250-2254.

猜你喜欢

差分梯度边缘
RLW-KdV方程的紧致有限差分格式
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
数列与差分
一种自适应Dai-Liao共轭梯度法
一个具梯度项的p-Laplace 方程弱解的存在性
一张图看懂边缘计算
基于差分隐私的大数据隐私保护
相对差分单项测距△DOR
在边缘寻找自我