APP下载

基于彩色图像边缘差分的运动目标检测算法*

2011-07-28尚振宏舒国锋

网络安全与数据管理 2011年24期
关键词:差分算子灰度

宋 宁 , 尚振宏 ,刘 辉 , 舒国锋

(1.昆明理工大学 信息工程与自动化学院,云南 昆明 610000;2.昆明理工大学 云南省计算机技术应用重点实验室,云南 昆明 610000)

运动目标检测是目标识别、跟踪的难点和关键环节,目标提取的好坏直接影响处理结果。而在运动目标检测中遇到最多的问题是提取的前景不准确,受环境影响噪声较多,且阴影难消除。很多文献也提出了改进方法,常用的经典算法有:背景差分、混合高斯背景模型、帧差法等。背景差分[1]首先构建一个背景图像,然后利用当前帧图像与背景图像相减,得到差分图像,通过阈值分割来提取目标。混合高斯模型[2]使用K个(基本为3~5个)高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型,用当前图像中的每个像素点与混合高斯模型匹配,如果成功,则判定该点为背景点,否则为前景点。混合高斯背景模型检测运动目标易出现阴影,而对阴影的去除目前存在较大困难。帧差法通过视频流中相邻两帧或3帧图像相减,根据差分图像来检测目标。常用的相邻差分法检测目标存在两帧目标重叠部分不易检测、出现虚假目标等问题。一般来说,图像的边缘信息不易受噪声和亮度突变的影响。本文提出一种边缘差分的思想,将传统Sobel算子边缘检测应用到彩色图像边缘检测,将边缘检测与帧间差分相结合,很好地克服了阴影以及噪声的影响,经形态学处理最后得到较为清晰准确的运动目标。

1 边缘检测

边缘检测算法的基本步骤为:滤波、增强、检测和定位。经典的检测算法主要采用梯度算子,常用的梯度算子有Sobel算子、Prewitt算子、Canny算子、Laplacian算子和LOG算子[3]等。

1.1 Sobel算子检测边缘

Sobel算子把重点放在接近于模板中心的像素点,是边缘检测器中最常用的算子之一。

1.1.1 Sobel算法原理

由于图像边缘附近的亮度变化比较大,因此把那些邻域内灰度超过某个值的像素点当作边缘点。算法的主要步骤如下。

(1)分别将两个方向模板沿着图像从一个像素移动到另一像素,并将像素的中心与某个像素位置相重合;

(2)将模板内的系数与其图像上相对应的像素值相乘;(3)将所有相乘的值相加;

(4)将两个卷积的最大值赋给图像中对应模板中心位置的像素作为该像素新的灰度值;

(5)选取合适的阈值TH,若新像素灰度值≥TH,则判断该像素点为图像边缘点。

Sobel算子也是一种梯度幅值[4],其梯度计算公式为:

其中,Gx、Gy分别为像素的水平方向梯度和垂直方向梯度。

图1(a)为一幅图像的 3×3区域,图 1(b)和图 1(c)分别为Sobel算子水平方向和垂直方向的梯度算子,则图1(a)中z5像素点的水平方向和垂直方向梯度向量可近似计算为:

图1 图像3×3区域及水平和垂直方向的梯度

1.1.2 Sobel算子彩色图像边缘检测的实现和改进

本文算法针对彩色图像,建立水平方向和垂直方向的彩色分量图[5],具体步骤如下。

(1)遍历一幅彩色图像,取图像上像素的颜色值;

(2)将像素的R、G、B灰度值分别赋给水平方向和垂直方向彩色分量图对应像素的R、G、B值;

(3)分别计算原图像中像素的R、G、B分量在水平和垂直方向与模板(掩膜)卷积的累加值,卷积模板选用上述Sobel核,Sobel算子使用权重2的思想是通过突出中心点的作用而达到平滑的目的;

(4)将累加值除以某个权重,取绝对值赋给上述分量图的 R、G、B 值;

(5)用式(1)计算该像素的 R、G、B梯度值,赋给原图像对应的R、G、B值,得到彩色边缘图像。

Sobel算子利用像素的上、下、左、右邻域的灰度值加权算法,算法利用图1(a)所示的模板分别与图 1(b)和图1(c)所示的两个核做卷积,一个核对垂直边缘影响最大,而另一个核对水平边缘影响最大。该方法不但产生较好的检测效果,而且对噪声具有平滑作用,可以提供较为精确的边缘,因此选用Sobel算子进行边缘检测,结合后面的帧差分,可以得到准确、良好的边缘轮廓图像[6]。

2 边缘差分

2.1 帧间差分

帧间差分[7]主要利用视频序列中连续的两帧或几帧图像的差异来检测运动目标。帧间差分的表达式为:

其中,In(x,y)表示在第 n帧(x,y)处的像素灰度值;In-1(x,y)表示在第 n-1帧(x,y)处的像素灰度值;Dn(x,y)表示差分后在(x,y)处的像素灰度值;Bn(x,y)表示差分图像二值化后像素灰度值;T为设定的阈值。

当运动目标速度较慢时,目标变化可能不大,帧间差分会产生孤立点的噪声。为避免目标丢失,可选取连续3帧或4帧图像两两相减进行与运算,得到运动目标。本文采用连续4帧图像进行差分。连续4帧差分是相邻两帧差分算法的一种改进方法,它选取连续4帧的图像,消除两帧差分目标重叠部分不易检测的缺点,从而提取精确的运动目标轮廓信息。

设视频图像序列中连续 4帧图像分别为In(x,y)、In+1(x,y)、In+2(x,y)、In+3(x,y),将第 1 帧图像与第 3 帧图像、第2帧与第4帧图像作差分:

对得到的差值图像选取适当的阈值T进行二值化,得到的二值化图像为:

在每一个点(x,y)处将得到的二值图像逻辑相与,得到二值图像Bn(x,y):

2.2 边缘检测与差分相结合

本文算法的流程如图2所示。

用本文提出的改进Sobel算子彩色图像边缘检测方法从视频流中提取连续的4帧图像,得到它们的边缘图像,然后用上述4帧差分的思想作边缘图像的隔帧差分,得到准确、噪声很小的运动目标边缘轮廓。

2.3 形态学处理

2.3.1 腐蚀运算

腐蚀是指用某种形状的基元对一个图像进行探测,以便找出在图像中能够放下该基元的区域。集合A被集合 B腐蚀,表示为AΘB,其定义为

式中,⊂表示子集关系。A为输入元素,B为结构元素。AΘB由将B平移x但仍包含在A内的所有 x点组成。如果将B看作模板,那么AΘB则由在平移模板的过程中所有可以填入A内部的模板的原点组成。

腐蚀的方法:用B的中心点与A上的每一点依次比较,若B上所有点都在A内,则保留该点,否则,删除该点。

2.3.2 膨胀运算

膨胀定义为:

膨胀通过相对结构元素的所有点平移输入图像,然后计算其并集得到。如果结构元素为一个圆盘,那么膨胀可填充图像中的小孔以及在图像边缘处的小凹陷部分。

膨胀的方法:用B的中心点与A上的点以及A周围的点逐个比较,若B上有一个点落在A中,则该点就为黑点。

对运动物体的目标轮廓进行形态学处理,选取自定义的结构元素进行腐蚀膨胀操作,从而将运动目标完整地检测出来。

3 实验结果

对比传统Sobel算子灰度边缘检测和本文方法,对室外行人运动视频流进行检测,结果如图3所示。左边一列分别为原图第20帧、第50帧、第100帧,中间为传统Sobel算子灰度边缘检测结果,右边一列为本文提出的Sobel算子彩色边缘检测结果。

3帧图像经形态学处理后的结果如图4所示。

从视频流中截取3帧图像,分别使用传统Sobel算子和本文算法作边缘差分,可以看出,传统Sobel算子灰度边缘检测结果边缘较粗,边缘部分噪声较多,造成交叉处的轮廓不清晰;而用本文方法检测得到的运动行人边缘较细,提取出的边缘轮廓精确,最后通过形态学操作填充轮廓,便可得到噪声较少的运动行人。相比于其他算法,该方法在行人阴影较大的场景有着其显著优势,能很好地克服阴影带来的影响,精确检测到行人。

[1]于仕琪,刘瑞祯.OpenCV教程:基础篇[M].北京:北京航空航天大学出版社,2007.

[2]PONG P K T K,BOWDEN R.An improved adaptive back ground mixture model for real-time tracking with shadow detection[C].Proceedings of 2nd European Workshop on Advanced Video Based Surveillance Systems,AVBS01.Kluwer Academic Publishers,2001:1-5.

[3]段瑞玲,李庆详,李玉和.图像边缘检测方法研究综述[J].光学技术,2005,31(3):415-419.

[4]GONZALEZ R C,WOODS R E.数字图像处理(第二版)[M].阮秋琦,阮宇智,译.北京:电子工业出版社,2007.

[5]黄伟,周鸣争,李小牛.一种基于四元数的彩色图像边缘检测改进算法[J].计算机技术与发展,2008,18(3):121-124.

[6]甘明刚,陈杰,刘劲,等.一种基于三帧差分和边缘信息的运动目标检测方法[J].电子与信息学报,2010(4):894-897.

[7]朱明旱,罗大庸,曹倩霞.帧间差分与背景差分相融合的运动目标检测算法[J].计算机测量与控制,2005,13(3):215-217.

猜你喜欢

差分算子灰度
RLW-KdV方程的紧致有限差分格式
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
采用改进导重法的拓扑结构灰度单元过滤技术
数列与差分
拟微分算子在Hp(ω)上的有界性
Heisenberg群上与Schrödinger算子相关的Riesz变换在Hardy空间上的有界性
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算