宋 寧 , 尚振宏 ,劉 輝 , 舒國(guó)鋒
(1.昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,云南 昆明 610000;2.昆明理工大學(xué) 云南省計(jì)算機(jī)技術(shù)應(yīng)用重點(diǎn)實(shí)驗(yàn)室,云南 昆明 610000)
運(yùn)動(dòng)目標(biāo)檢測(cè)是目標(biāo)識(shí)別、跟蹤的難點(diǎn)和關(guān)鍵環(huán)節(jié),目標(biāo)提取的好壞直接影響處理結(jié)果。而在運(yùn)動(dòng)目標(biāo)檢測(cè)中遇到最多的問(wèn)題是提取的前景不準(zhǔn)確,受環(huán)境影響噪聲較多,且陰影難消除。很多文獻(xiàn)也提出了改進(jìn)方法,常用的經(jīng)典算法有:背景差分、混合高斯背景模型、幀差法等。背景差分[1]首先構(gòu)建一個(gè)背景圖像,然后利用當(dāng)前幀圖像與背景圖像相減,得到差分圖像,通過(guò)閾值分割來(lái)提取目標(biāo)?;旌细咚鼓P蚚2]使用K個(gè)(基本為3~5個(gè))高斯模型來(lái)表征圖像中各個(gè)像素點(diǎn)的特征,在新一幀圖像獲得后更新混合高斯模型,用當(dāng)前圖像中的每個(gè)像素點(diǎn)與混合高斯模型匹配,如果成功,則判定該點(diǎn)為背景點(diǎn),否則為前景點(diǎn)?;旌细咚贡尘澳P蜋z測(cè)運(yùn)動(dòng)目標(biāo)易出現(xiàn)陰影,而對(duì)陰影的去除目前存在較大困難。幀差法通過(guò)視頻流中相鄰兩幀或3幀圖像相減,根據(jù)差分圖像來(lái)檢測(cè)目標(biāo)。常用的相鄰差分法檢測(cè)目標(biāo)存在兩幀目標(biāo)重疊部分不易檢測(cè)、出現(xiàn)虛假目標(biāo)等問(wèn)題。一般來(lái)說(shuō),圖像的邊緣信息不易受噪聲和亮度突變的影響。本文提出一種邊緣差分的思想,將傳統(tǒng)Sobel算子邊緣檢測(cè)應(yīng)用到彩色圖像邊緣檢測(cè),將邊緣檢測(cè)與幀間差分相結(jié)合,很好地克服了陰影以及噪聲的影響,經(jīng)形態(tài)學(xué)處理最后得到較為清晰準(zhǔn)確的運(yùn)動(dòng)目標(biāo)。
邊緣檢測(cè)算法的基本步驟為:濾波、增強(qiáng)、檢測(cè)和定位。經(jīng)典的檢測(cè)算法主要采用梯度算子,常用的梯度算子有Sobel算子、Prewitt算子、Canny算子、Laplacian算子和LOG算子[3]等。
Sobel算子把重點(diǎn)放在接近于模板中心的像素點(diǎn),是邊緣檢測(cè)器中最常用的算子之一。
1.1.1 Sobel算法原理
由于圖像邊緣附近的亮度變化比較大,因此把那些鄰域內(nèi)灰度超過(guò)某個(gè)值的像素點(diǎn)當(dāng)作邊緣點(diǎn)。算法的主要步驟如下。
(1)分別將兩個(gè)方向模板沿著圖像從一個(gè)像素移動(dòng)到另一像素,并將像素的中心與某個(gè)像素位置相重合;
(2)將模板內(nèi)的系數(shù)與其圖像上相對(duì)應(yīng)的像素值相乘;(3)將所有相乘的值相加;
(4)將兩個(gè)卷積的最大值賦給圖像中對(duì)應(yīng)模板中心位置的像素作為該像素新的灰度值;
(5)選取合適的閾值TH,若新像素灰度值≥TH,則判斷該像素點(diǎn)為圖像邊緣點(diǎn)。
Sobel算子也是一種梯度幅值[4],其梯度計(jì)算公式為:
其中,Gx、Gy分別為像素的水平方向梯度和垂直方向梯度。
圖1(a)為一幅圖像的 3×3區(qū)域,圖 1(b)和圖 1(c)分別為Sobel算子水平方向和垂直方向的梯度算子,則圖1(a)中z5像素點(diǎn)的水平方向和垂直方向梯度向量可近似計(jì)算為:
圖1 圖像3×3區(qū)域及水平和垂直方向的梯度
1.1.2 Sobel算子彩色圖像邊緣檢測(cè)的實(shí)現(xiàn)和改進(jìn)
本文算法針對(duì)彩色圖像,建立水平方向和垂直方向的彩色分量圖[5],具體步驟如下。
(1)遍歷一幅彩色圖像,取圖像上像素的顏色值;
(2)將像素的R、G、B灰度值分別賦給水平方向和垂直方向彩色分量圖對(duì)應(yīng)像素的R、G、B值;
(3)分別計(jì)算原圖像中像素的R、G、B分量在水平和垂直方向與模板(掩膜)卷積的累加值,卷積模板選用上述Sobel核,Sobel算子使用權(quán)重2的思想是通過(guò)突出中心點(diǎn)的作用而達(dá)到平滑的目的;
(4)將累加值除以某個(gè)權(quán)重,取絕對(duì)值賦給上述分量圖的 R、G、B 值;
(5)用式(1)計(jì)算該像素的 R、G、B梯度值,賦給原圖像對(duì)應(yīng)的R、G、B值,得到彩色邊緣圖像。
Sobel算子利用像素的上、下、左、右鄰域的灰度值加權(quán)算法,算法利用圖1(a)所示的模板分別與圖 1(b)和圖1(c)所示的兩個(gè)核做卷積,一個(gè)核對(duì)垂直邊緣影響最大,而另一個(gè)核對(duì)水平邊緣影響最大。該方法不但產(chǎn)生較好的檢測(cè)效果,而且對(duì)噪聲具有平滑作用,可以提供較為精確的邊緣,因此選用Sobel算子進(jìn)行邊緣檢測(cè),結(jié)合后面的幀差分,可以得到準(zhǔn)確、良好的邊緣輪廓圖像[6]。
幀間差分[7]主要利用視頻序列中連續(xù)的兩幀或幾幀圖像的差異來(lái)檢測(cè)運(yùn)動(dòng)目標(biāo)。幀間差分的表達(dá)式為:
其中,In(x,y)表示在第 n幀(x,y)處的像素灰度值;In-1(x,y)表示在第 n-1幀(x,y)處的像素灰度值;Dn(x,y)表示差分后在(x,y)處的像素灰度值;Bn(x,y)表示差分圖像二值化后像素灰度值;T為設(shè)定的閾值。
當(dāng)運(yùn)動(dòng)目標(biāo)速度較慢時(shí),目標(biāo)變化可能不大,幀間差分會(huì)產(chǎn)生孤立點(diǎn)的噪聲。為避免目標(biāo)丟失,可選取連續(xù)3幀或4幀圖像兩兩相減進(jìn)行與運(yùn)算,得到運(yùn)動(dòng)目標(biāo)。本文采用連續(xù)4幀圖像進(jìn)行差分。連續(xù)4幀差分是相鄰兩幀差分算法的一種改進(jìn)方法,它選取連續(xù)4幀的圖像,消除兩幀差分目標(biāo)重疊部分不易檢測(cè)的缺點(diǎn),從而提取精確的運(yùn)動(dòng)目標(biāo)輪廓信息。
設(shè)視頻圖像序列中連續(xù) 4幀圖像分別為In(x,y)、In+1(x,y)、In+2(x,y)、In+3(x,y),將第 1 幀圖像與第 3 幀圖像、第2幀與第4幀圖像作差分:
對(duì)得到的差值圖像選取適當(dāng)?shù)拈撝礣進(jìn)行二值化,得到的二值化圖像為:
在每一個(gè)點(diǎn)(x,y)處將得到的二值圖像邏輯相與,得到二值圖像Bn(x,y):
本文算法的流程如圖2所示。
用本文提出的改進(jìn)Sobel算子彩色圖像邊緣檢測(cè)方法從視頻流中提取連續(xù)的4幀圖像,得到它們的邊緣圖像,然后用上述4幀差分的思想作邊緣圖像的隔幀差分,得到準(zhǔn)確、噪聲很小的運(yùn)動(dòng)目標(biāo)邊緣輪廓。
2.3.1 腐蝕運(yùn)算
腐蝕是指用某種形狀的基元對(duì)一個(gè)圖像進(jìn)行探測(cè),以便找出在圖像中能夠放下該基元的區(qū)域。集合A被集合 B腐蝕,表示為AΘB,其定義為
式中,?表示子集關(guān)系。A為輸入元素,B為結(jié)構(gòu)元素。AΘB由將B平移x但仍包含在A內(nèi)的所有 x點(diǎn)組成。如果將B看作模板,那么AΘB則由在平移模板的過(guò)程中所有可以填入A內(nèi)部的模板的原點(diǎn)組成。
腐蝕的方法:用B的中心點(diǎn)與A上的每一點(diǎn)依次比較,若B上所有點(diǎn)都在A內(nèi),則保留該點(diǎn),否則,刪除該點(diǎn)。
2.3.2 膨脹運(yùn)算
膨脹定義為:
膨脹通過(guò)相對(duì)結(jié)構(gòu)元素的所有點(diǎn)平移輸入圖像,然后計(jì)算其并集得到。如果結(jié)構(gòu)元素為一個(gè)圓盤,那么膨脹可填充圖像中的小孔以及在圖像邊緣處的小凹陷部分。
膨脹的方法:用B的中心點(diǎn)與A上的點(diǎn)以及A周圍的點(diǎn)逐個(gè)比較,若B上有一個(gè)點(diǎn)落在A中,則該點(diǎn)就為黑點(diǎn)。
對(duì)運(yùn)動(dòng)物體的目標(biāo)輪廓進(jìn)行形態(tài)學(xué)處理,選取自定義的結(jié)構(gòu)元素進(jìn)行腐蝕膨脹操作,從而將運(yùn)動(dòng)目標(biāo)完整地檢測(cè)出來(lái)。
對(duì)比傳統(tǒng)Sobel算子灰度邊緣檢測(cè)和本文方法,對(duì)室外行人運(yùn)動(dòng)視頻流進(jìn)行檢測(cè),結(jié)果如圖3所示。左邊一列分別為原圖第20幀、第50幀、第100幀,中間為傳統(tǒng)Sobel算子灰度邊緣檢測(cè)結(jié)果,右邊一列為本文提出的Sobel算子彩色邊緣檢測(cè)結(jié)果。
3幀圖像經(jīng)形態(tài)學(xué)處理后的結(jié)果如圖4所示。
從視頻流中截取3幀圖像,分別使用傳統(tǒng)Sobel算子和本文算法作邊緣差分,可以看出,傳統(tǒng)Sobel算子灰度邊緣檢測(cè)結(jié)果邊緣較粗,邊緣部分噪聲較多,造成交叉處的輪廓不清晰;而用本文方法檢測(cè)得到的運(yùn)動(dòng)行人邊緣較細(xì),提取出的邊緣輪廓精確,最后通過(guò)形態(tài)學(xué)操作填充輪廓,便可得到噪聲較少的運(yùn)動(dòng)行人。相比于其他算法,該方法在行人陰影較大的場(chǎng)景有著其顯著優(yōu)勢(shì),能很好地克服陰影帶來(lái)的影響,精確檢測(cè)到行人。
[1]于仕琪,劉瑞禎.OpenCV教程:基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,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]段瑞玲,李慶詳,李玉和.圖像邊緣檢測(cè)方法研究綜述[J].光學(xué)技術(shù),2005,31(3):415-419.
[4]GONZALEZ R C,WOODS R E.數(shù)字圖像處理(第二版)[M].阮秋琦,阮宇智,譯.北京:電子工業(yè)出版社,2007.
[5]黃偉,周鳴爭(zhēng),李小牛.一種基于四元數(shù)的彩色圖像邊緣檢測(cè)改進(jìn)算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(3):121-124.
[6]甘明剛,陳杰,劉勁,等.一種基于三幀差分和邊緣信息的運(yùn)動(dòng)目標(biāo)檢測(cè)方法[J].電子與信息學(xué)報(bào),2010(4):894-897.
[7]朱明旱,羅大庸,曹倩霞.幀間差分與背景差分相融合的運(yùn)動(dòng)目標(biāo)檢測(cè)算法[J].計(jì)算機(jī)測(cè)量與控制,2005,13(3):215-217.
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2011年24期