郭溪溪+陳小林+王博+李治根+劉巖俊
摘 要: 針對運動目標在單幀圖像中所占的比例較小,傳統(tǒng)的邊緣提取方法對整幅圖像計算時產(chǎn)生大量冗余,對噪聲敏感,提取出的運動目標輪廓不明顯,提出一種基于幀差法和圖像分塊相結(jié)合的運動目標邊緣檢測方法。該方法首先對序列圖像進行差分,按照特定的閾值對圖像進行分塊,完成對運動目標的細分割,分離出運動區(qū)域和非運動區(qū)域,然后對分割出來的運動區(qū)域進行邊緣檢測,將邊緣檢測結(jié)果和差分結(jié)果進行“與”運算,從而提取出運動目標輪廓。實驗結(jié)果證明,分塊邊緣檢測方法能較為準確地提取出運動目標且能提取出清晰的運動目標邊緣輪廓,能滿足實時性。
關鍵詞: 圖像分塊; 幀差法; 邊緣檢測; 運動目標
中圖分類號: TN911.73?34; TP391.41 文獻標識碼: A 文章編號: 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 引 言
圖像的邊緣是圖像最基本的特征之一,是圖像像素灰度值變化最明顯的地方,在圖像分割、圖像理解及圖像檢索等領域,圖像邊緣有著重要的應用價值,邊緣不僅能描繪出物體的輪廓,還能反映方向、形狀、階躍性質(zhì)等信息,快速準確地提取運動目標的邊緣對后續(xù)的運動目標識別以及行為分析等具有重要的意義[1]。運動目標邊緣檢測的基礎是對運動目標的提取,光流法、背景差分法和幀差法是目前最常用的三種運動目標檢測方法[2]。光流法是通過觀測運動目標在圖像上呈現(xiàn)的像素亮度變化來對每一個像素點賦予一個速度矢量從而檢測運動目標,檢測效果較好,但光流法算法復雜,實現(xiàn)起來對硬件設備要求較高,實用性較差。背景差分法對背景建模和背景更新的要求較高,對于背景受光照條件和惡略天氣干擾的情況下適用性較差[3]。幀差法利用圖像序列中相鄰兩幀圖像之間對應的每個點的像素值的差異大小來提取運動目標區(qū)域,計算簡單,容易實現(xiàn),一直以來都是運動目標檢測中使用最為廣泛的方法。幀差法雖然簡單,但提取出的運動目標不夠精確,容易造成目標不成形或者區(qū)域過大過小且存在空洞問題。針對這種現(xiàn)象,有學者提出了將兩種目標檢測方式相結(jié)合的目標檢測方法,文獻[4?6]采用了將背景建模與幀間差分相結(jié)合的運動目標檢測方法,雖然彌補了幀間差分法帶來的空洞,但背景建模的同時也耗費了大量的時間。為快速準確地提取運動目標,本文對三幀差分法進行改進,并對差分結(jié)果運用形態(tài)學方法對空洞進行填充從而完整提取出運動目標區(qū)域。針對運動目標邊緣提取,文獻[7]采用Sobel邊緣檢測的方法,此方法能提取出運動目標的大部分輪廓信息,但是存在邊緣不連續(xù)的現(xiàn)象。文獻[8]使用Canny邊緣檢測的方法,該方法提取出的目標邊緣較好,但是也存在非目標區(qū)域的虛假邊緣且實時性不強。文獻[9]提出一種幀差與Susan邊緣檢測相結(jié)合的方法,濾除了大量的虛假邊緣,但同時導致真正的目標邊緣不清晰、不連續(xù),且運算量大,運行速度非常緩慢。針對以上問題,本文提出一種先將圖像進行分塊,提取運動目標區(qū)域,并只針對局部運動區(qū)域的圖像進行邊緣檢測的方法,不僅能較好地提取出運動目標的邊緣,抑制虛假邊緣,而且能滿足實時性。
1 運動目標檢測
靜態(tài)背景下的運動目標提取,即攝像機固定不動,背景受光照等影響不大,總體結(jié)構(gòu)保持不變的情況。首先對連續(xù)的三幀序列圖像進行幀間差分處理,確定當前幀運動目標的大致位置,然后對差分結(jié)果使用Otsu最大類間方差法二值化圖像實現(xiàn)目標與背景的自動分割,完成對運動圖像的粗提取,針對幀差法存在空洞的現(xiàn)象,采用形態(tài)學膨脹運算方法填補空洞。最后利用差分結(jié)果對圖像進行分塊,根據(jù)分塊結(jié)果提取運動目標區(qū)域,分別對提取出來的子塊運動區(qū)域進行邊緣提取,得到最終的運動目標邊緣,算法總體流程如圖1所示。
1.1 幀差法粗提取運動目標區(qū)域
對于一段時間內(nèi)的序列圖像,設表示時刻的當前幀。對相鄰兩幀圖像對應點的像素值做差:
式中:和表示當前幀與相鄰的前后兩幀圖像差分結(jié)果的二值化圖像。此時相鄰兩幀差分得到的結(jié)果為相鄰兩幀圖像中運動目標的區(qū)域面積之和,前一幀被目標遮擋住的背景部分會在后一幀顯露出來,因此被誤判為當前幀的運動目標,且相鄰兩幀目標區(qū)域像素值相同會導致嚴重的空洞現(xiàn)象,本文算法此步驟中不需要得到非常精確的運動目標區(qū)域,但對空洞現(xiàn)象敏感,因此提出改進的三幀差分法來減少空洞。傳統(tǒng)的三幀差分法對和進行“與”操作,改進的三幀差分法將結(jié)果進行“或”運算,得到最終運動目標區(qū)域,即:
式中:表示“或”運算,此時提取出的運動目標區(qū)域仍然存在空洞,還需利用形態(tài)學膨脹等方法進行填充。雖然粗提取出的運動目標區(qū)域比實際的運動目標區(qū)域大了很多,但是填補了空洞,對后續(xù)目標邊緣的提取是有利的。對于閾值的選取,采用最大類間方差法(Otsu),根據(jù)差分圖像的灰度值自適應選取最佳閾值,分割出的運動目標區(qū)域比較完整且虛假目標較少。
1.2 分塊法細提取運動目標區(qū)域
利用分塊法粗提取運動目標區(qū)域,進行小范圍的邊緣檢測是本文算法的重點。首先將差分結(jié)果圖像分成多個子塊,每個子塊大小為,表示為其中即第行,第列個子塊,通過比較每一差分子塊的所有像素值總和與閾值的大小,判斷整個子塊屬于目標還是背景。
式中:表示每一差分子塊圖像在點的像素值,表示差分圖像第行,第列個子塊的所有像素值總和。如果判斷該子塊為非運動區(qū)域,將該子塊內(nèi)的所有像素值置為0,否則置為1,為了較好地提取出運動目標區(qū)域,本文提出一種閾值選取方法,閾值的計算方式如下:
式中表示采用最大類間方差法得到的閾值,對于閾值的選取,文獻[6]采用的是分塊均值法,認為噪聲和干擾是均勻分布的,但是這種閾值選取方法的缺點在于,運動目標在實際圖像中所占的比例較小,導致差分結(jié)果的像素均值很小,圖像塊的均值也很小,于是圖像背景中的像素差值較大的部分也被檢測出來,實驗結(jié)果如圖2(d)所示。本文選擇Otsu方法,認為像素值有以上的區(qū)域超過閾值的圖像子塊被標記為目標區(qū)域,如式(5)所示。此步驟的目的是去除由于差分二值化帶來的虛假目標,能更為準確地提取出實際運動目標區(qū)域,提高檢測準確率。并且在上一步幀差法二值化過程中,閾值已經(jīng)進行過計算無需再次重復計算,可大大減少計算量。與文獻[6]采用的閾值選取法的實驗對比圖如圖2所示。
其中圖2(a),圖2(b)為連續(xù)的兩幀原始視頻幀的灰度圖像,圖2(c)為兩幀差分結(jié)果圖,圖2(d)為文獻[6]閾值的分塊效果,圖2(e)為本文閾值方法分塊結(jié)果。由實驗結(jié)果圖可以看出,文獻[6]的均值閾值選取法提取出的虛假目標很多,而本文提出的閾值法能比較準確完整地檢測出運動目標區(qū)域,圖2(f)中的矩形框為采用求取最小外接矩形的方法提取出的運動目標區(qū)域。
2 分塊邊緣檢測
2.1 Canny邊緣檢測
Canny邊緣檢測算法通過設定雙閾值的方法尋找最優(yōu)邊緣,雖然算法復雜度相對較高,但是能夠提取出連續(xù)且清晰的邊緣,因此本文選用Canny邊緣檢測算法。Canny邊緣檢測算法的簡要流程如下:
第一步:圖像去噪,通常情況下使用高斯核函數(shù)進行平滑去噪,將圖像原始數(shù)據(jù)與高斯模板卷積,得到邊緣相對平滑的圖像。
第二步:計算梯度的幅值和方向,對去噪后的圖像利用一階有限差分的近似式計算一階偏導,根據(jù)水平垂直方向的一階偏導計算梯度的幅值和方向。
第三步:梯度幅值的非極大值抑制,Canny邊緣檢測要檢測的是最優(yōu)邊緣,要求局部梯度最大,因此利用梯度方向?qū)Ψ颠M行非極大值抑制。
第四步:雙閾值算法檢測和連接邊緣。使用Otsu方式選取閾值令從而得到因為有高低兩個閾值,因此得到兩個閾值邊緣圖像,較高閾值得到的圖像含有較少的假邊緣,但是不閉合。為了連接邊緣在低閾值邊緣圖像上的點,輪廓邊緣附近8鄰接點尋找可以連接的邊緣點,直到將不閉合的邊緣連接起來為止。
2.2 分塊邊緣檢測對比
采用不同的邊緣檢測算法對圖2中的原始視頻幀圖像進行分塊邊緣檢測,結(jié)果如圖3所示,其中圖3(a)~(c)分別為Sobel,Prewitt和Canny邊緣檢測算法的效果圖。
可以看出,Sobel和Prewitt邊緣檢測出的目標邊緣不連續(xù),且對于面積較小的運動目標區(qū)域,提取出邊緣效果較差,而Canny邊緣檢測無論是對面積較大的運動區(qū)域還是面積較小的運動區(qū)域,提取出的邊緣都連續(xù)且清晰易見,但對于距離目標很近的路面虛假邊緣也被檢測了出來,但不影響效果。
3 實驗結(jié)果分析
3.1 實驗環(huán)境
實驗環(huán)境:硬件條件為Inter Core i7 CPU,主頻為3.6 GHz,6 GB內(nèi)存的PC兼容機,軟件環(huán)境為Matlab 7.0結(jié)合Microsoft Visual Studio 2010以及OpenCV 2.4.10計算機視覺庫,測試視頻為三組分辨率為320×240,總幀數(shù)分別為750,224和500的原始視頻幀圖像,三組視頻的拍攝角度不同,且第三組視頻存在輕微的抖動現(xiàn)象。
3.2 實驗結(jié)果對比
為驗證算法的有效性,對測試視頻進行實驗,并與不同文獻的方法在視覺效果、實驗速度和實驗準確率上進行對比,視覺效果對比圖如圖4所示。
圖4(a)為原始視頻幀圖像;圖4(b)為文獻[7]采用幀差法與Sobel邊緣檢測算子相結(jié)合的方法進行邊緣提取的實驗結(jié)果;圖4(c)為文獻[8]采用三幀差分法與Canny邊緣檢測相結(jié)合的實驗的效果圖;圖4(d)為文獻[9]采用的幀差法與Susan邊緣檢測相結(jié)合的效果圖;圖4(e)為本文采用幀差法與分塊邊緣檢測相結(jié)合的實驗結(jié)果,實驗過程中取值為。
由實驗結(jié)果可以看出,文獻[7]檢測出的目標邊緣不連續(xù),且對于面積小的運動目標檢測效果較差,文獻[9]檢測出的目標邊緣較粗且不清晰,對于小面積的運動目標檢測效果也不好,文獻[8]和本文檢測效果最接近,但是檢測出了較多的虛假邊緣,對背景干擾較為敏感。本文采用幀差與分塊相結(jié)合的邊緣檢測方法,不僅邊緣清晰,對背景干擾不敏感,且對抖動具有一定的魯棒性,效果較好,但在目標很多,且距離較近的情況下檢測效果不是很好,虛假邊緣較多。理論上采用分塊的方法進行邊緣檢測,速度相對于傳統(tǒng)的邊緣檢測算法要快,因此本文針對不同的方法所用時間進行對比,結(jié)果如表1所示。
由表1可以看出,文獻[7]采用Sobel邊緣檢測和幀差法相結(jié)合的方法檢測速度最快,文獻[9]采用Susan邊緣檢測和幀差法檢測速度最慢,本文方法,采用幀差與分塊邊緣檢測的方法在檢測速度上明顯比文獻[8?9]快很多,雖然沒有文獻[7]使用Sobel邊緣檢測與幀差相結(jié)合的速度快,但是在效果上比文獻[7]要好。最后,本文針對不同文獻采取的方法的準確率進行實驗對比,實驗準確率計算公式如下:
采用式(6)對文獻[7?9]以及本文方法進行驗證,得到的準確率曲線如圖5所示,可以看出,采用本文方法檢測出的目標準確率明顯高于其他幾種算法,誤檢率低。
4 結(jié) 語
運動目標檢測與輪廓提取在計算機視覺等領域有著重要的研究意義與價值,好的輪廓提取方法是目標識別以及計算機視覺高層理解的重要前提。本文提出將幀差法與分塊邊緣檢測相結(jié)合的方法,利用幀差法粗提取運動目標,結(jié)合本文提出的閾值選取方式將圖像進行分塊,細分割目標,只針對運動目標區(qū)域進行邊緣提取,大大減少了時間復雜度,減少了虛假邊緣且對視頻抖動不敏感,提取出的運動目標邊緣完整,細節(jié)相對清晰,準確率較高,優(yōu)于目前提出的算法,但本文針對多目標檢測效果不是很好,在分塊上還有待改進。
參考文獻
[1] 陳虎,凌朝東,張浩,等.基于FPGA的實時彩色圖像邊緣檢測算法的實現(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] 華媛蕾,劉萬軍.改進混合高斯模型的運動目標檢測算法[J].計算機應用,2014,34(2):580?584.
[4] 劉昊,羅勇.靜態(tài)背景下運動目標檢測算法[J].液晶與顯示,2012,27(5):682?686.
[5] 屈晶晶,辛云宏.連續(xù)幀間差分與背景差分相融合的運動目標檢測方法[J].光子學報,2014,43(7):213?220.
[6] 高美鳳,劉娣.分塊幀差和背景差相融合的運動目標檢測[J].計算機應用研究,2013,30(1):289?302.
[7] 金漢均,梅洪洋.Sobel算子在提取視頻運動目標輪廓中的應用研究[J].電子測量技術,2014,37(11):29?32.
[8] 張鵬,李思岑,楊燕翔.融合邊緣檢測的三幀差分運動目標檢測[J].微型機與應用,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] 余金棟,張憲民.用于線紋顯微圖像的邊緣檢測算法[J].光學精密工程,2015,23(1):271?281.