郭溪溪+陳小林+王博+李治根+劉巖俊
摘 要: 針對(duì)運(yùn)動(dòng)目標(biāo)在單幀圖像中所占的比例較小,傳統(tǒng)的邊緣提取方法對(duì)整幅圖像計(jì)算時(shí)產(chǎn)生大量冗余,對(duì)噪聲敏感,提取出的運(yùn)動(dòng)目標(biāo)輪廓不明顯,提出一種基于幀差法和圖像分塊相結(jié)合的運(yùn)動(dòng)目標(biāo)邊緣檢測(cè)方法。該方法首先對(duì)序列圖像進(jìn)行差分,按照特定的閾值對(duì)圖像進(jìn)行分塊,完成對(duì)運(yùn)動(dòng)目標(biāo)的細(xì)分割,分離出運(yùn)動(dòng)區(qū)域和非運(yùn)動(dòng)區(qū)域,然后對(duì)分割出來(lái)的運(yùn)動(dòng)區(qū)域進(jìn)行邊緣檢測(cè),將邊緣檢測(cè)結(jié)果和差分結(jié)果進(jìn)行“與”運(yùn)算,從而提取出運(yùn)動(dòng)目標(biāo)輪廓。實(shí)驗(yàn)結(jié)果證明,分塊邊緣檢測(cè)方法能較為準(zhǔn)確地提取出運(yùn)動(dòng)目標(biāo)且能提取出清晰的運(yùn)動(dòng)目標(biāo)邊緣輪廓,能滿足實(shí)時(shí)性。
關(guān)鍵詞: 圖像分塊; 幀差法; 邊緣檢測(cè); 運(yùn)動(dòng)目標(biāo)
中圖分類號(hào): TN911.73?34; TP391.41 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)13?0062?04
Abstract: Since the moving target occupies a small proportion in single?frame image, the traditional edge extraction method has the obvious drawback of a large number of redundant generated in calculation process of a whole image, is sensitive to noise, and cant extract a clear contour of the moving target. Therefore a moving object edge detection method combining the frame difference and image block is proposed. This method is used to perform the difference for sequence image, block the image according to a certain threshold, and achieve the moving object fine segmentation to separate the moving area and non?moving area. The edge detection is carried out for the segmented moving area. The “and” operation is proceeded for the edge detection result and frame difference result to extract the contour of moving object. The experimental results show that the blocking edge detection method can extract the moving object and its clear edge contour accurately, and satisfy the real?time performance.
Keywords: image block; frame difference; edge detection; moving target
0 引 言
圖像的邊緣是圖像最基本的特征之一,是圖像像素灰度值變化最明顯的地方,在圖像分割、圖像理解及圖像檢索等領(lǐng)域,圖像邊緣有著重要的應(yīng)用價(jià)值,邊緣不僅能描繪出物體的輪廓,還能反映方向、形狀、階躍性質(zhì)等信息,快速準(zhǔn)確地提取運(yùn)動(dòng)目標(biāo)的邊緣對(duì)后續(xù)的運(yùn)動(dòng)目標(biāo)識(shí)別以及行為分析等具有重要的意義[1]。運(yùn)動(dòng)目標(biāo)邊緣檢測(cè)的基礎(chǔ)是對(duì)運(yùn)動(dòng)目標(biāo)的提取,光流法、背景差分法和幀差法是目前最常用的三種運(yùn)動(dòng)目標(biāo)檢測(cè)方法[2]。光流法是通過(guò)觀測(cè)運(yùn)動(dòng)目標(biāo)在圖像上呈現(xiàn)的像素亮度變化來(lái)對(duì)每一個(gè)像素點(diǎn)賦予一個(gè)速度矢量從而檢測(cè)運(yùn)動(dòng)目標(biāo),檢測(cè)效果較好,但光流法算法復(fù)雜,實(shí)現(xiàn)起來(lái)對(duì)硬件設(shè)備要求較高,實(shí)用性較差。背景差分法對(duì)背景建模和背景更新的要求較高,對(duì)于背景受光照條件和惡略天氣干擾的情況下適用性較差[3]。幀差法利用圖像序列中相鄰兩幀圖像之間對(duì)應(yīng)的每個(gè)點(diǎn)的像素值的差異大小來(lái)提取運(yùn)動(dòng)目標(biāo)區(qū)域,計(jì)算簡(jiǎn)單,容易實(shí)現(xiàn),一直以來(lái)都是運(yùn)動(dòng)目標(biāo)檢測(cè)中使用最為廣泛的方法。幀差法雖然簡(jiǎn)單,但提取出的運(yùn)動(dòng)目標(biāo)不夠精確,容易造成目標(biāo)不成形或者區(qū)域過(guò)大過(guò)小且存在空洞問(wèn)題。針對(duì)這種現(xiàn)象,有學(xué)者提出了將兩種目標(biāo)檢測(cè)方式相結(jié)合的目標(biāo)檢測(cè)方法,文獻(xiàn)[4?6]采用了將背景建模與幀間差分相結(jié)合的運(yùn)動(dòng)目標(biāo)檢測(cè)方法,雖然彌補(bǔ)了幀間差分法帶來(lái)的空洞,但背景建模的同時(shí)也耗費(fèi)了大量的時(shí)間。為快速準(zhǔn)確地提取運(yùn)動(dòng)目標(biāo),本文對(duì)三幀差分法進(jìn)行改進(jìn),并對(duì)差分結(jié)果運(yùn)用形態(tài)學(xué)方法對(duì)空洞進(jìn)行填充從而完整提取出運(yùn)動(dòng)目標(biāo)區(qū)域。針對(duì)運(yùn)動(dòng)目標(biāo)邊緣提取,文獻(xiàn)[7]采用Sobel邊緣檢測(cè)的方法,此方法能提取出運(yùn)動(dòng)目標(biāo)的大部分輪廓信息,但是存在邊緣不連續(xù)的現(xiàn)象。文獻(xiàn)[8]使用Canny邊緣檢測(cè)的方法,該方法提取出的目標(biāo)邊緣較好,但是也存在非目標(biāo)區(qū)域的虛假邊緣且實(shí)時(shí)性不強(qiáng)。文獻(xiàn)[9]提出一種幀差與Susan邊緣檢測(cè)相結(jié)合的方法,濾除了大量的虛假邊緣,但同時(shí)導(dǎo)致真正的目標(biāo)邊緣不清晰、不連續(xù),且運(yùn)算量大,運(yùn)行速度非常緩慢。針對(duì)以上問(wèn)題,本文提出一種先將圖像進(jìn)行分塊,提取運(yùn)動(dòng)目標(biāo)區(qū)域,并只針對(duì)局部運(yùn)動(dòng)區(qū)域的圖像進(jìn)行邊緣檢測(cè)的方法,不僅能較好地提取出運(yùn)動(dòng)目標(biāo)的邊緣,抑制虛假邊緣,而且能滿足實(shí)時(shí)性。
1 運(yùn)動(dòng)目標(biāo)檢測(cè)
靜態(tài)背景下的運(yùn)動(dòng)目標(biāo)提取,即攝像機(jī)固定不動(dòng),背景受光照等影響不大,總體結(jié)構(gòu)保持不變的情況。首先對(duì)連續(xù)的三幀序列圖像進(jìn)行幀間差分處理,確定當(dāng)前幀運(yùn)動(dòng)目標(biāo)的大致位置,然后對(duì)差分結(jié)果使用Otsu最大類間方差法二值化圖像實(shí)現(xiàn)目標(biāo)與背景的自動(dòng)分割,完成對(duì)運(yùn)動(dòng)圖像的粗提取,針對(duì)幀差法存在空洞的現(xiàn)象,采用形態(tài)學(xué)膨脹運(yùn)算方法填補(bǔ)空洞。最后利用差分結(jié)果對(duì)圖像進(jìn)行分塊,根據(jù)分塊結(jié)果提取運(yùn)動(dòng)目標(biāo)區(qū)域,分別對(duì)提取出來(lái)的子塊運(yùn)動(dòng)區(qū)域進(jìn)行邊緣提取,得到最終的運(yùn)動(dòng)目標(biāo)邊緣,算法總體流程如圖1所示。
1.1 幀差法粗提取運(yùn)動(dòng)目標(biāo)區(qū)域
對(duì)于一段時(shí)間內(nèi)的序列圖像,設(shè)表示時(shí)刻的當(dāng)前幀。對(duì)相鄰兩幀圖像對(duì)應(yīng)點(diǎn)的像素值做差:
式中:和表示當(dāng)前幀與相鄰的前后兩幀圖像差分結(jié)果的二值化圖像。此時(shí)相鄰兩幀差分得到的結(jié)果為相鄰兩幀圖像中運(yùn)動(dòng)目標(biāo)的區(qū)域面積之和,前一幀被目標(biāo)遮擋住的背景部分會(huì)在后一幀顯露出來(lái),因此被誤判為當(dāng)前幀的運(yùn)動(dòng)目標(biāo),且相鄰兩幀目標(biāo)區(qū)域像素值相同會(huì)導(dǎo)致嚴(yán)重的空洞現(xiàn)象,本文算法此步驟中不需要得到非常精確的運(yùn)動(dòng)目標(biāo)區(qū)域,但對(duì)空洞現(xiàn)象敏感,因此提出改進(jìn)的三幀差分法來(lái)減少空洞。傳統(tǒng)的三幀差分法對(duì)和進(jìn)行“與”操作,改進(jìn)的三幀差分法將結(jié)果進(jìn)行“或”運(yùn)算,得到最終運(yùn)動(dòng)目標(biāo)區(qū)域,即:
式中:表示“或”運(yùn)算,此時(shí)提取出的運(yùn)動(dòng)目標(biāo)區(qū)域仍然存在空洞,還需利用形態(tài)學(xué)膨脹等方法進(jìn)行填充。雖然粗提取出的運(yùn)動(dòng)目標(biāo)區(qū)域比實(shí)際的運(yùn)動(dòng)目標(biāo)區(qū)域大了很多,但是填補(bǔ)了空洞,對(duì)后續(xù)目標(biāo)邊緣的提取是有利的。對(duì)于閾值的選取,采用最大類間方差法(Otsu),根據(jù)差分圖像的灰度值自適應(yīng)選取最佳閾值,分割出的運(yùn)動(dòng)目標(biāo)區(qū)域比較完整且虛假目標(biāo)較少。
1.2 分塊法細(xì)提取運(yùn)動(dòng)目標(biāo)區(qū)域
利用分塊法粗提取運(yùn)動(dòng)目標(biāo)區(qū)域,進(jìn)行小范圍的邊緣檢測(cè)是本文算法的重點(diǎn)。首先將差分結(jié)果圖像分成多個(gè)子塊,每個(gè)子塊大小為,表示為其中即第行,第列個(gè)子塊,通過(guò)比較每一差分子塊的所有像素值總和與閾值的大小,判斷整個(gè)子塊屬于目標(biāo)還是背景。
式中:表示每一差分子塊圖像在點(diǎn)的像素值,表示差分圖像第行,第列個(gè)子塊的所有像素值總和。如果判斷該子塊為非運(yùn)動(dòng)區(qū)域,將該子塊內(nèi)的所有像素值置為0,否則置為1,為了較好地提取出運(yùn)動(dòng)目標(biāo)區(qū)域,本文提出一種閾值選取方法,閾值的計(jì)算方式如下:
式中表示采用最大類間方差法得到的閾值,對(duì)于閾值的選取,文獻(xiàn)[6]采用的是分塊均值法,認(rèn)為噪聲和干擾是均勻分布的,但是這種閾值選取方法的缺點(diǎn)在于,運(yùn)動(dòng)目標(biāo)在實(shí)際圖像中所占的比例較小,導(dǎo)致差分結(jié)果的像素均值很小,圖像塊的均值也很小,于是圖像背景中的像素差值較大的部分也被檢測(cè)出來(lái),實(shí)驗(yàn)結(jié)果如圖2(d)所示。本文選擇Otsu方法,認(rèn)為像素值有以上的區(qū)域超過(guò)閾值的圖像子塊被標(biāo)記為目標(biāo)區(qū)域,如式(5)所示。此步驟的目的是去除由于差分二值化帶來(lái)的虛假目標(biāo),能更為準(zhǔn)確地提取出實(shí)際運(yùn)動(dòng)目標(biāo)區(qū)域,提高檢測(cè)準(zhǔn)確率。并且在上一步幀差法二值化過(guò)程中,閾值已經(jīng)進(jìn)行過(guò)計(jì)算無(wú)需再次重復(fù)計(jì)算,可大大減少計(jì)算量。與文獻(xiàn)[6]采用的閾值選取法的實(shí)驗(yàn)對(duì)比圖如圖2所示。
其中圖2(a),圖2(b)為連續(xù)的兩幀原始視頻幀的灰度圖像,圖2(c)為兩幀差分結(jié)果圖,圖2(d)為文獻(xiàn)[6]閾值的分塊效果,圖2(e)為本文閾值方法分塊結(jié)果。由實(shí)驗(yàn)結(jié)果圖可以看出,文獻(xiàn)[6]的均值閾值選取法提取出的虛假目標(biāo)很多,而本文提出的閾值法能比較準(zhǔn)確完整地檢測(cè)出運(yùn)動(dòng)目標(biāo)區(qū)域,圖2(f)中的矩形框?yàn)椴捎们笕∽钚⊥饨泳匦蔚姆椒ㄌ崛〕龅倪\(yùn)動(dòng)目標(biāo)區(qū)域。
2 分塊邊緣檢測(cè)
2.1 Canny邊緣檢測(cè)
Canny邊緣檢測(cè)算法通過(guò)設(shè)定雙閾值的方法尋找最優(yōu)邊緣,雖然算法復(fù)雜度相對(duì)較高,但是能夠提取出連續(xù)且清晰的邊緣,因此本文選用Canny邊緣檢測(cè)算法。Canny邊緣檢測(cè)算法的簡(jiǎn)要流程如下:
第一步:圖像去噪,通常情況下使用高斯核函數(shù)進(jìn)行平滑去噪,將圖像原始數(shù)據(jù)與高斯模板卷積,得到邊緣相對(duì)平滑的圖像。
第二步:計(jì)算梯度的幅值和方向,對(duì)去噪后的圖像利用一階有限差分的近似式計(jì)算一階偏導(dǎo),根據(jù)水平垂直方向的一階偏導(dǎo)計(jì)算梯度的幅值和方向。
第三步:梯度幅值的非極大值抑制,Canny邊緣檢測(cè)要檢測(cè)的是最優(yōu)邊緣,要求局部梯度最大,因此利用梯度方向?qū)Ψ颠M(jìn)行非極大值抑制。
第四步:雙閾值算法檢測(cè)和連接邊緣。使用Otsu方式選取閾值令從而得到因?yàn)橛懈叩蛢蓚€(gè)閾值,因此得到兩個(gè)閾值邊緣圖像,較高閾值得到的圖像含有較少的假邊緣,但是不閉合。為了連接邊緣在低閾值邊緣圖像上的點(diǎn),輪廓邊緣附近8鄰接點(diǎn)尋找可以連接的邊緣點(diǎn),直到將不閉合的邊緣連接起來(lái)為止。
2.2 分塊邊緣檢測(cè)對(duì)比
采用不同的邊緣檢測(cè)算法對(duì)圖2中的原始視頻幀圖像進(jìn)行分塊邊緣檢測(cè),結(jié)果如圖3所示,其中圖3(a)~(c)分別為Sobel,Prewitt和Canny邊緣檢測(cè)算法的效果圖。
可以看出,Sobel和Prewitt邊緣檢測(cè)出的目標(biāo)邊緣不連續(xù),且對(duì)于面積較小的運(yùn)動(dòng)目標(biāo)區(qū)域,提取出邊緣效果較差,而Canny邊緣檢測(cè)無(wú)論是對(duì)面積較大的運(yùn)動(dòng)區(qū)域還是面積較小的運(yùn)動(dòng)區(qū)域,提取出的邊緣都連續(xù)且清晰易見(jiàn),但對(duì)于距離目標(biāo)很近的路面虛假邊緣也被檢測(cè)了出來(lái),但不影響效果。
3 實(shí)驗(yàn)結(jié)果分析
3.1 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)環(huán)境:硬件條件為Inter Core i7 CPU,主頻為3.6 GHz,6 GB內(nèi)存的PC兼容機(jī),軟件環(huán)境為Matlab 7.0結(jié)合Microsoft Visual Studio 2010以及OpenCV 2.4.10計(jì)算機(jī)視覺(jué)庫(kù),測(cè)試視頻為三組分辨率為320×240,總幀數(shù)分別為750,224和500的原始視頻幀圖像,三組視頻的拍攝角度不同,且第三組視頻存在輕微的抖動(dòng)現(xiàn)象。
3.2 實(shí)驗(yàn)結(jié)果對(duì)比
為驗(yàn)證算法的有效性,對(duì)測(cè)試視頻進(jìn)行實(shí)驗(yàn),并與不同文獻(xiàn)的方法在視覺(jué)效果、實(shí)驗(yàn)速度和實(shí)驗(yàn)準(zhǔn)確率上進(jìn)行對(duì)比,視覺(jué)效果對(duì)比圖如圖4所示。
圖4(a)為原始視頻幀圖像;圖4(b)為文獻(xiàn)[7]采用幀差法與Sobel邊緣檢測(cè)算子相結(jié)合的方法進(jìn)行邊緣提取的實(shí)驗(yàn)結(jié)果;圖4(c)為文獻(xiàn)[8]采用三幀差分法與Canny邊緣檢測(cè)相結(jié)合的實(shí)驗(yàn)的效果圖;圖4(d)為文獻(xiàn)[9]采用的幀差法與Susan邊緣檢測(cè)相結(jié)合的效果圖;圖4(e)為本文采用幀差法與分塊邊緣檢測(cè)相結(jié)合的實(shí)驗(yàn)結(jié)果,實(shí)驗(yàn)過(guò)程中取值為。
由實(shí)驗(yàn)結(jié)果可以看出,文獻(xiàn)[7]檢測(cè)出的目標(biāo)邊緣不連續(xù),且對(duì)于面積小的運(yùn)動(dòng)目標(biāo)檢測(cè)效果較差,文獻(xiàn)[9]檢測(cè)出的目標(biāo)邊緣較粗且不清晰,對(duì)于小面積的運(yùn)動(dòng)目標(biāo)檢測(cè)效果也不好,文獻(xiàn)[8]和本文檢測(cè)效果最接近,但是檢測(cè)出了較多的虛假邊緣,對(duì)背景干擾較為敏感。本文采用幀差與分塊相結(jié)合的邊緣檢測(cè)方法,不僅邊緣清晰,對(duì)背景干擾不敏感,且對(duì)抖動(dòng)具有一定的魯棒性,效果較好,但在目標(biāo)很多,且距離較近的情況下檢測(cè)效果不是很好,虛假邊緣較多。理論上采用分塊的方法進(jìn)行邊緣檢測(cè),速度相對(duì)于傳統(tǒng)的邊緣檢測(cè)算法要快,因此本文針對(duì)不同的方法所用時(shí)間進(jìn)行對(duì)比,結(jié)果如表1所示。
由表1可以看出,文獻(xiàn)[7]采用Sobel邊緣檢測(cè)和幀差法相結(jié)合的方法檢測(cè)速度最快,文獻(xiàn)[9]采用Susan邊緣檢測(cè)和幀差法檢測(cè)速度最慢,本文方法,采用幀差與分塊邊緣檢測(cè)的方法在檢測(cè)速度上明顯比文獻(xiàn)[8?9]快很多,雖然沒(méi)有文獻(xiàn)[7]使用Sobel邊緣檢測(cè)與幀差相結(jié)合的速度快,但是在效果上比文獻(xiàn)[7]要好。最后,本文針對(duì)不同文獻(xiàn)采取的方法的準(zhǔn)確率進(jìn)行實(shí)驗(yàn)對(duì)比,實(shí)驗(yàn)準(zhǔn)確率計(jì)算公式如下:
采用式(6)對(duì)文獻(xiàn)[7?9]以及本文方法進(jìn)行驗(yàn)證,得到的準(zhǔn)確率曲線如圖5所示,可以看出,采用本文方法檢測(cè)出的目標(biāo)準(zhǔn)確率明顯高于其他幾種算法,誤檢率低。
4 結(jié) 語(yǔ)
運(yùn)動(dòng)目標(biāo)檢測(cè)與輪廓提取在計(jì)算機(jī)視覺(jué)等領(lǐng)域有著重要的研究意義與價(jià)值,好的輪廓提取方法是目標(biāo)識(shí)別以及計(jì)算機(jī)視覺(jué)高層理解的重要前提。本文提出將幀差法與分塊邊緣檢測(cè)相結(jié)合的方法,利用幀差法粗提取運(yùn)動(dòng)目標(biāo),結(jié)合本文提出的閾值選取方式將圖像進(jìn)行分塊,細(xì)分割目標(biāo),只針對(duì)運(yùn)動(dòng)目標(biāo)區(qū)域進(jìn)行邊緣提取,大大減少了時(shí)間復(fù)雜度,減少了虛假邊緣且對(duì)視頻抖動(dòng)不敏感,提取出的運(yùn)動(dòng)目標(biāo)邊緣完整,細(xì)節(jié)相對(duì)清晰,準(zhǔn)確率較高,優(yōu)于目前提出的算法,但本文針對(duì)多目標(biāo)檢測(cè)效果不是很好,在分塊上還有待改進(jìn)。
參考文獻(xiàn)
[1] 陳虎,凌朝東,張浩,等.基于FPGA的實(shí)時(shí)彩色圖像邊緣檢測(cè)算法的實(shí)現(xiàn)[J].液晶與顯示,2015,30(1):143?150.
[2] SENST T, EVANGELIO R H, SIKORA T. Detecting people carrying objects based on an optical flow motion model [C]// Proceedings of 2011 IEEE Workshop on Applications of Computer Vision. Washington DC: IEEE Computer Society, 2011: 301?306.
[3] 華媛蕾,劉萬(wàn)軍.改進(jìn)混合高斯模型的運(yùn)動(dòng)目標(biāo)檢測(cè)算法[J].計(jì)算機(jī)應(yīng)用,2014,34(2):580?584.
[4] 劉昊,羅勇.靜態(tài)背景下運(yùn)動(dòng)目標(biāo)檢測(cè)算法[J].液晶與顯示,2012,27(5):682?686.
[5] 屈晶晶,辛云宏.連續(xù)幀間差分與背景差分相融合的運(yùn)動(dòng)目標(biāo)檢測(cè)方法[J].光子學(xué)報(bào),2014,43(7):213?220.
[6] 高美鳳,劉娣.分塊幀差和背景差相融合的運(yùn)動(dòng)目標(biāo)檢測(cè)[J].計(jì)算機(jī)應(yīng)用研究,2013,30(1):289?302.
[7] 金漢均,梅洪洋.Sobel算子在提取視頻運(yùn)動(dòng)目標(biāo)輪廓中的應(yīng)用研究[J].電子測(cè)量技術(shù),2014,37(11):29?32.
[8] 張鵬,李思岑,楊燕翔.融合邊緣檢測(cè)的三幀差分運(yùn)動(dòng)目標(biāo)檢測(cè)[J].微型機(jī)與應(yīng)用,2014,33(23):56?58.
[9] FAN Xinfeng, CHENG Yuanzeng, FU Qiang. Moving target detection algorithm based on Susan edge detection and frame difference [C]// Proceedings of 2015 the 2nd International Conference on Information Science and Control Engineering. Shanghai, China: IEEE, 2015: 323?326.
[10] 余金棟,張憲民.用于線紋顯微圖像的邊緣檢測(cè)算法[J].光學(xué)精密工程,2015,23(1):271?281.