梁禹 韓舒羽
關(guān)鍵詞:MATLAB;三幀差分邊緣檢測;目標(biāo)重疊
智能視頻監(jiān)控系統(tǒng)具有智能化與數(shù)字化優(yōu)勢,目前被廣泛應(yīng)用于交通與安防等領(lǐng)域[1]。當(dāng)下,一些常用的運(yùn)動(dòng)目標(biāo)檢測算法包括幀間差分法、背景差分法、光流法等,在分析這些方法的原理和流程后,可以對其優(yōu)缺點(diǎn)進(jìn)行比較[2]。將以上三種方法進(jìn)行對比發(fā)現(xiàn),利用幀差法來實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的檢測,實(shí)驗(yàn)表明,對于運(yùn)動(dòng)快且形狀較大的運(yùn)動(dòng)目標(biāo),在運(yùn)動(dòng)圖像檢測中有良好的效果[3]。幀間差分算法實(shí)現(xiàn)簡單,程序計(jì)算復(fù)雜度低,運(yùn)行速度快,而且對環(huán)境中的場景光線的變化不敏感,還能提高檢測準(zhǔn)確率[4]。并且,該算法只對運(yùn)動(dòng)目標(biāo)比較敏感,運(yùn)行穩(wěn)定,適合用于目標(biāo)檢測對復(fù)雜度要求低和資源利用低的場景。
幀間差分法直接比較連續(xù)兩幀或多幀圖像中對應(yīng)像素的灰度值,然后在設(shè)置閾值的序列圖像中提取運(yùn)動(dòng)目標(biāo)的區(qū)域[5],該算法適合用于智能安防監(jiān)控領(lǐng)域。當(dāng)多幀連續(xù)的視頻畫面中有運(yùn)動(dòng)目標(biāo)時(shí),幀間差分法對相鄰兩幀圖像作差分運(yùn)算并計(jì)算得到結(jié)果,通過該算法可以快速提取出運(yùn)動(dòng)的目標(biāo)區(qū)域。與其他算法相比,該算法也更易于在FPCA等硬件上實(shí)現(xiàn)。本文在此基礎(chǔ)上提出一種融合算法,該融合算法融合三幀差分法和改進(jìn)的邊緣檢測算法,使用MATLAB進(jìn)行仿真驗(yàn)證表明,該算法的優(yōu)點(diǎn)是能降低檢測目標(biāo)的重疊性。
1三幀差分邊緣檢測算法
圖像是一種最直觀的視覺內(nèi)容,包含較多信息,其中邊緣和輪廓是圖像的最基本特征,蘊(yùn)藏著圖像中最為關(guān)鍵的信息。Sobel算子的工作原理是:對圖像的局部像素點(diǎn)進(jìn)行平均化或加權(quán)平均化計(jì)算,利用灰度變化設(shè)置閾值判斷像素點(diǎn)是否為邊緣點(diǎn),實(shí)現(xiàn)消除噪音和平滑圖像的效果。本文提出三幀差分邊緣檢測的融合算法,是將三幀差分算法和基于新的計(jì)算公式的邊緣檢測算法進(jìn)行融合得到的目標(biāo)檢測算法,通過融合改進(jìn)的邊緣檢測算法之后,使得提取的目標(biāo)區(qū)域邊緣更加連續(xù),軌跡清晰,同時(shí)可提高算法的準(zhǔn)確率,降低重疊性,且融合后的算法在FPCA上易于實(shí)現(xiàn)。在進(jìn)行圖像處理時(shí),經(jīng)常用到邊緣檢測算法。通過邊緣檢測計(jì)算后,使得圖像邊緣信息更加清晰、直觀地表現(xiàn)在原始圖像中,對于圖像中的細(xì)節(jié)部分,如目標(biāo)的直徑、寬度等都可被邊緣檢測算法檢測并描述出。對于圖像中表面深度、方向不連續(xù)以及光照條件不同時(shí),圖像都會(huì)產(chǎn)生邊緣信息。圖像不同的灰度值顯示如圖1所示。
從圖1中可以發(fā)現(xiàn),在第四和第五像素間有明顯的亮度變化,二者之間會(huì)產(chǎn)生一個(gè)邊緣,在這兩個(gè)像素點(diǎn)之間產(chǎn)生了明顯的變化。在實(shí)際場景中,不同圖像產(chǎn)生的邊緣信息也有所不同,本文通過選取不同的閾值來區(qū)分它們。對于圖像算法中邊緣檢測算法常應(yīng)用在眾多研究方向中,常用的邊緣檢測算子有Prewitt,Sobel,Roberts,Log和Canny,將這些常用的算子在MATALB2018a平臺(tái)下進(jìn)行仿真,得到各個(gè)算子的仿真結(jié)果如圖2所示。通過在MATLAB下仿真,并對常用算子實(shí)現(xiàn)邊緣檢測的效果進(jìn)行對比。
使用相同的原始輸入圖像,通過對各邊緣檢測算子在MATLAB下進(jìn)行仿真,并分析結(jié)果可得:(1)Roberts算子的優(yōu)勢在于對水平和垂直方向的檢測效果好,對于圖像的對角線上檢測效果一般;(2) Prewitt算子對濾除噪聲、邊緣定位的效果一般,在圖像邊緣信息上可以起到平滑的作用;(3)與其他算子相比,Sobel算子可以精確地檢測出圖像的邊緣信息,濾除噪聲效果很好,且計(jì)算量較小;(4) Log算子的優(yōu)勢是在進(jìn)行濾除噪聲和邊緣定位時(shí)效果較好;(5) Canny算子對噪聲的濾除效果最好,在濾除噪聲的同時(shí),也容易平滑掉一些邊緣,邊緣定位比較準(zhǔn)確。
基于上述分析,本文決定采用的邊緣檢測算法的算子是Sobel算子,該算法對于X和Y兩個(gè)方向的算子如圖3所示。Sobel邊緣檢測算法和中值濾波算法在FPCA上進(jìn)行實(shí)現(xiàn)時(shí)需要的圖像緩存處理很相似,都需要3x3的矩陣,也需要相同的移位寄存器,利用三個(gè)移位寄存器可以輸出3x3窗口,即得到3x3矩陣,此3x3窗口和中值濾波的3x3窗口的結(jié)構(gòu)一致。
傳統(tǒng)的Sobel邊緣檢測算法是對0。和90。進(jìn)行計(jì)算,對于上述算子通過與圖像A進(jìn)行卷積運(yùn)算,計(jì)算出梯度G。和G。,再通過開平方根的方式得到最終計(jì)算結(jié)果,其計(jì)算公式如下:
對于Sobel邊緣檢測算法在FPGA下進(jìn)行實(shí)現(xiàn),在FPGA下實(shí)現(xiàn)為了減少邏輯資源消耗,使用不開平方的近似值,利用絕對值代替開平方根的方法,其計(jì)算公示可以簡化為:
本文基于上述計(jì)算方式提出了改進(jìn)的Sobel的新計(jì)算方法,在0。和90。兩個(gè)方向上增加45。和135。,目的是進(jìn)一步豐富圖像的邊緣特性。圖4為四個(gè)方向的算子。然后,將3x3矩陣與四個(gè)方向Sobel算子進(jìn)行卷積。由于運(yùn)算符都是由0、±1、±2組成,0和±1對應(yīng)的像素值可以直接加減,所以±2對應(yīng)的像素值可以通過左移1位乘以2來代替。該運(yùn)算操作可以降低資源的使用率,提升算法的執(zhí)行效率。
對于Sobel邊緣檢測算法在引入4個(gè)方向后,在原有的兩個(gè)方向計(jì)算上引入45。和135。后,按照上述計(jì)算方法對4個(gè)方向進(jìn)行計(jì)算,邊緣檢測算法4個(gè)方向的計(jì)算公式如下:
為了可以在FPCA上節(jié)約邏輯資源,更易于在FPCA上實(shí)現(xiàn)該算法,本文提出計(jì)算4個(gè)方向的Sobel邊緣檢測算法的新計(jì)算公式如下:
與兩幀差分法檢測目標(biāo)相比,使用三幀差分法可以在處理空洞和輪廓丟失上得到更加理想的效果,通過融合改進(jìn)的、基于新的計(jì)算公式的邊緣檢測算法,能對目標(biāo)進(jìn)行更加精準(zhǔn)的定位,同時(shí)比傳統(tǒng)計(jì)算方式更加節(jié)省資源。因此,將兩個(gè)算法融合后可以得到更具有優(yōu)勢的融合算法。該融合算法的實(shí)現(xiàn)過程為:首先,對緩存連續(xù)視頻中的相鄰三幀圖像分別兩兩差分,將差分結(jié)果進(jìn)行二值化處理,然后對原始圖像使用基于新的計(jì)算方式的邊緣檢測算法進(jìn)行計(jì)算,最后將結(jié)果與二值化結(jié)果進(jìn)行比對,得到目標(biāo)區(qū)域。為了能準(zhǔn)確檢測運(yùn)動(dòng)目標(biāo),而且能很好地描述目標(biāo)的外觀和輪廓,同時(shí)能消除大量不相關(guān)的噪聲,選擇加入計(jì)算四個(gè)方向的Sobel邊緣檢測算法,將差分后的結(jié)果與Sobel邊緣檢測后的結(jié)果進(jìn)行邏輯運(yùn)算。該方法的優(yōu)勢是可以有效減少目標(biāo)重疊現(xiàn)象。該算法的流程圖如圖5所示。
三幀差分邊緣檢測算法的實(shí)現(xiàn)步驟為:(1)從一段視頻中提取出連續(xù)三幀的原始圖像,分別進(jìn)行灰度處理;(2)將三幀灰度圖像進(jìn)行兩兩差分運(yùn)算;(3)將差分后的結(jié)果進(jìn)行二值化處理.然后對原始圖像進(jìn)行邊緣計(jì)算,使用基于新的計(jì)算公式的邊緣檢測算法,再將結(jié)果與二值化處理結(jié)果進(jìn)行邏輯運(yùn)算;(4)將上一步中計(jì)算得到的圖像進(jìn)行中值濾波處理;(5)得到最終的目標(biāo)檢測結(jié)果。
2三幀差分邊緣檢測算法的MATLAB仿真
將本文提出的融合算法在MATLAB下進(jìn)行仿真。首先,在MATLAB下讀取一段視頻文件,如圖6是對一段連續(xù)的車輛行駛視頻分別獲取其中連續(xù)幾幀的圖像,并按照算法流程圖分別進(jìn)行灰度處理、相與操作、二值化處理、邊緣檢測等。分別對三幀差分法、融合三幀差分法和Sobel邊緣檢測算法、融合三幀差分法、基于新的計(jì)算公式的邊緣檢測算法進(jìn)行MATLAB實(shí)現(xiàn)。按照上述基于新的計(jì)算公式的邊緣檢測算法和三幀差分法進(jìn)行融合處理,并與三幀差分法、融合三幀差分和Sobel邊緣檢測算法在MATLAB上進(jìn)行仿真對比。相關(guān)算法對比結(jié)果如圖6所示。
通過在MATLAB下進(jìn)行仿真實(shí)驗(yàn)分析,將三種算法分別進(jìn)行MATLAB仿真實(shí)現(xiàn)后可以發(fā)現(xiàn),在對比融合改進(jìn)的目標(biāo)檢測算法后,在傳統(tǒng)三幀差分法、傳統(tǒng)融合三幀差分法、邊緣檢測的基礎(chǔ)上可以減少目標(biāo)重疊現(xiàn)象,同時(shí)能消除大量不相關(guān)的噪聲。通過在MATLAB下實(shí)驗(yàn)證明,改進(jìn)的融合算法在減少目標(biāo)重疊現(xiàn)象方面具有優(yōu)化效果。同時(shí),對于在邊緣檢測算法中改進(jìn)的算法公式也適合在FPCA上進(jìn)行實(shí)現(xiàn)。
3結(jié)束語
本文提出基于目標(biāo)檢測的融合算法,融合三幀差分法與基于新的計(jì)算公式的邊緣檢測算法,并在MATLAB下分別進(jìn)行仿真和對比實(shí)驗(yàn),通過仿真實(shí)驗(yàn)可以驗(yàn)證,對于一段連續(xù)實(shí)時(shí)運(yùn)動(dòng)目標(biāo)的檢測,能有效降低目標(biāo)重疊性,同時(shí)可以有效消除不相關(guān)的噪聲。