蔣晶晶1,安博文2
(1.上海海事大學(xué) 信息工程學(xué)院 電子工程系,上海 201306;2.上海海事大學(xué) 信息工程學(xué)院,上海201306)
摘要:針對低空航拍視頻中的船舶檢測研究普遍存在因背景變化及水紋擾動導(dǎo)致的識別效果不理想等問題,提出了一種基于改進(jìn)型Vibe(Visual background extractor)算法的船舶檢測方法。該方法在傳統(tǒng)Vibe算法基礎(chǔ)上融合了改進(jìn)型的Canny算子,采取平滑濾波與自適應(yīng)閾值分割策略提高了船舶輪廓提取的準(zhǔn)確性。利用四方位結(jié)構(gòu)元素的形態(tài)學(xué)機(jī)制,降低了水面波紋對目標(biāo)識別的干擾影響。對于船舶檢測中的內(nèi)部空洞則選取了種子填充法進(jìn)行填充,最后根據(jù)船舶外輪廓實現(xiàn)對船舶目標(biāo)的框定。實驗結(jié)果表明,所提出的改進(jìn)型Vibe算法的船舶檢測效果明顯優(yōu)于傳統(tǒng)方法,驗證了其可行性與實用性。
關(guān)鍵詞:船舶檢測;Vibe算法;Canny算子;種子填充法
中圖分類號:TP391.41文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.013
引用格式:蔣晶晶,安博文.低空航拍視頻中基于Vibe算法的船舶檢測方法[J].微型機(jī)與應(yīng)用,2017,36(10):44-47.
空中航拍技術(shù)作為目標(biāo)船舶動態(tài)監(jiān)管的重要手段之一,具有成本低、實現(xiàn)簡單等諸多優(yōu)勢,但通過空中巡航方式進(jìn)行海事監(jiān)管時,由視覺監(jiān)控實現(xiàn)目標(biāo)船舶的實時檢測成為了一大技術(shù)難題[1]。
當(dāng)前學(xué)術(shù)界對于目標(biāo)檢測的方法主要分為以下三類:幀間差分法、背景減除法、光流法。幀間差分法主要是利用視頻圖像序列連續(xù)兩幀或三幀的差異來檢測出運動區(qū)域,但對于目標(biāo)的輪廓檢測很不理想,甚至無法檢測完整的目標(biāo)邊界;背景減除法最主要的部分就是背景建模,模型的好壞直接影響前景目標(biāo)的檢測效果;光流法是利用光流場的變化來檢測運動目標(biāo),在理想狀態(tài)下檢測效果較好,但是光照變化時,即使物體沒有運動也會被檢測出來[24]。Vibe算法是BARNICH O等知名學(xué)者在圖像處理領(lǐng)域提出的一種動態(tài)目標(biāo)檢測方法[5]。該方法允許在多種動態(tài)與靜態(tài)環(huán)境下進(jìn)行目標(biāo)檢測,且經(jīng)過學(xué)術(shù)界諸多學(xué)者的研究考量,證實了其良好的實時性和有效性,成為了目標(biāo)檢測技術(shù)中具有重要意義的有效檢測算法。但由于低空航拍視頻中的船舶目標(biāo)大小不一、運動速度緩慢,以及無人機(jī)的不定向運動等影響,傳統(tǒng)Vibe算法對船舶目標(biāo)的檢測效果不理想,無法檢測到船舶的外輪廓信息,船舶內(nèi)部也存在大量空洞。本文針對低空航拍視頻中船舶檢測問題,提出了一種基于改進(jìn)型Vibe算法的低空航拍視頻中的船舶檢測方法,將傳統(tǒng)Vibe算法與改進(jìn)型Canny算子邊緣檢測進(jìn)行融合,并利用增強(qiáng)型種子填充法進(jìn)行船舶目標(biāo)優(yōu)化,實現(xiàn)了低空航拍視頻中對船舶目標(biāo)的有效檢測。
1Vibe算法核心理論
Vibe算法首次將隨機(jī)選擇機(jī)制和鄰域傳播機(jī)制應(yīng)用于背景模型的建立與更新,是一種基于樣本的背景建模方法[6]。該算法為每一個像素建立一個樣本集,此樣本集由過去時刻該位置與其鄰域位置像素值組成,然后將現(xiàn)在此處的像素值與這個樣本集中的像素進(jìn)行對比來判斷此像素是否屬于背景,再隨機(jī)地對背景模型進(jìn)行更新[7]。其基本原理主要包含背景模型初始化、前景檢測、背景模型更新三大部分[810]。
假設(shè)圖像x處給定的歐式顏色空間像素值為V(x),背景模型中的每個像素由N個背景樣本值組成:M(x)={v1,v2,…vN}(vi為索引是i的背景樣本值)。背景模型初始化就是選取V(x)的過程,隨機(jī)地從x的八鄰域NG(x)中選取N個樣本值來初始化背景模型M0(x)={V0(y|y∈NG(x))}。
前景檢測即像素分類的過程,Vibe算法是通過比較2D空間中的歐式距離來對像素進(jìn)行分類的。如圖1所示,記為以x為中心、R為半徑的區(qū)域。通過比較SR(V(x))與M(x)交集的個數(shù)是否大于給定的閾值#min來進(jìn)行判斷,若大于或者等于,則這個像素點x屬于背景點,即完成像素點是背景點還是前景點的分類。
在更新單個像素樣本集中20個樣本值時,因單個值的選取原則是隨機(jī)的,所以模型中樣本值出現(xiàn)的概率呈指數(shù)型衰減,那么該樣本集在T時刻不被更新的概率為(N-1)/N。若時間是連續(xù)的,那么在dt時間之后,樣本集中的樣本值依然保留不被更新的概率則為:
2改進(jìn)型Vibe船舶檢測算法
因低空航拍視頻中待檢測船舶目標(biāo)較大且運行較慢,所以僅使用傳統(tǒng)的Vibe算法難以達(dá)到檢測完整性與準(zhǔn)確性的要求。本文所述Vibe算法主要是在傳統(tǒng)算法基礎(chǔ)上融合改進(jìn)型Canny算子來增強(qiáng)船舶目標(biāo)輪廓提取的完整性,對于水面波紋采用四個方向的結(jié)構(gòu)元素進(jìn)行形態(tài)學(xué)處理的方法,進(jìn)而優(yōu)化檢測結(jié)果。
2.1改進(jìn)型Vibe算法流程
本文所述的改進(jìn)型Vibe算法流程如圖2所示。根據(jù)讀入的視頻幀,將Vibe算法得到的前景目標(biāo)與改進(jìn)型Canny算子邊緣檢測后的邊緣特征圖進(jìn)行融合,從而得到航拍視頻中的船舶目標(biāo)。為了使船舶目標(biāo)更加完整與準(zhǔn)確,方便后續(xù)的跟蹤,在得到前景目標(biāo)后進(jìn)行了目標(biāo)優(yōu)化與船舶框定。
2.2改進(jìn)型Canny算子提取船舶輪廓
利用改進(jìn)型Canny算子進(jìn)行邊緣檢測的主要步驟如下:
(1)采用中值濾波代替高斯濾波來平滑圖像,實驗表明中值濾波對水面波紋的平滑效果比高斯濾波效果更好。
(2)結(jié)合傾斜方向梯度與原梯度方向信息,采用兩個對角線模板計算圖像傾斜方向上的梯度,45°和135°對角模板矩陣分別為Mat1和Mat2:
與45°對角模板對應(yīng)的梯度計算方法為:
G′1=f(x,y-1)+2f(x+1,y-1)-f(x-1,y)+f(x+1,y)-2f(x-1,y+1)-f(x,y+1)(4)
與135°對角模板對應(yīng)的梯度計算方法為:
G′2=-2f(x-1,y-1)-f(x,y-1)-f(x-1,y)+f(x+1,y)+f(x,y+1)+2f(x+1,y+1)(5)
對兩個傾斜方向上的梯度取平方根得:G2(x,y)=G′21+G′22。若x、y方向上的圖像梯度為G1,以對角模板提取傾斜方向的梯度圖像為G2,則綜合得到的圖像梯度為G3=max{G1,G2},對G3進(jìn)行自適應(yīng)閾值分割處理得到邊緣圖像G4。
這里的自適應(yīng)閾值分割采用的是最大類間方差法[11]。將圖像按灰度特性分為前景和背景兩部分,定義參數(shù)如表1所示。
假設(shè)一幅圖像的大小為M×N,圖像背景較暗,圖像中灰度值小于閾值T(前景)的像素個數(shù)為N0,大于閾值T(背景)的像素個數(shù)為N1。則可得前景像素點個數(shù)占整幅圖像的比例ω0=N0/(M×N),背景像素點個數(shù)占整幅圖像的比例ω1=N1/(M×N),ω0與ω1存在如下關(guān)系:
ω0+ω1=1(6)
圖像的總平均灰度計算方法為:
μ=ω0×μ0+ω1×μ1(7)
類間方差為:
g=ω0(μ0-μ)2+ω1(μ1-μ)2(8)
由式(7)、(8)可得g=ω0×ω1×(μ0-μ1)2,采用遍歷的方法即可得到使類間方差最大的閾值T。
2.3形態(tài)學(xué)濾波抑制水面雜波
由于低空航拍視頻中水面波紋震動明顯,且拍攝方向的轉(zhuǎn)變會造成水面波紋的方向變化,因此利用四種方向的結(jié)構(gòu)元素去濾除水面波紋噪聲對船舶目標(biāo)檢測的影響。本文考慮了水平、垂直、對角線等幾種不同尺寸的結(jié)構(gòu)特點,設(shè)計了如圖3所示的4種方向的結(jié)構(gòu)元素。
設(shè)f(x, y)是輸入圖像,g(x, y)是結(jié)構(gòu)元素。用結(jié)構(gòu)元素對圖像進(jìn)行腐蝕和膨脹運算分別定義為:
(fΘg)(x,y)=min{f(x-i,y-j)-g(-i,-j)}(9)
(fg)(x,y)=max{f(x-i,y-j)+g(-i,-j)}(10)
形態(tài)學(xué)開運算定義為:
fog=(fΘg)g(11)
對同一幅圖像分別用這四種方向的結(jié)構(gòu)元素進(jìn)行形態(tài)學(xué)開運算,再利用式(12)進(jìn)行融合,便可實現(xiàn)對水面雜波的濾除效果。
f=mean(f1,f2,f3,f4)(12)
3目標(biāo)優(yōu)化與船舶框定
由于航拍視頻中船只目標(biāo)較大,單純的種子填充不能夠滿足實際的需求,例如種子點不在搜索二值圖像的空洞內(nèi)而在外部。本文的目標(biāo)優(yōu)化采用了相與的計算方法來填充灰度圖像的空洞現(xiàn)象,具體算法步驟如下。
(1)選取圖像原點(0,0)作為種子點,對圖像進(jìn)行填充,填充顏色設(shè)為白色,如圖4(a)所示。
(2)理想情況下此時幀上只存在黑色空洞部分,然后對灰度圖上的灰度像素值進(jìn)行顏色反轉(zhuǎn)計算,即灰度圖像素值為1時賦值0,灰度圖像素值為0時賦值1,得到的結(jié)果圖4(b)所示。
(3)將原圖5(a)與步驟(2)得到的圖像4(b)疊加得到全局的灰度圖像后再進(jìn)行腐蝕濾波處理得到圖5(e)所示的修復(fù)后的圖像。
船舶框定的過程就是根據(jù)船舶的面積以及長寬比對檢測到的前景目標(biāo)進(jìn)行篩選與外輪廓提取,然后再根據(jù)外輪廓框定船舶目標(biāo),方便后期的船舶定位與跟蹤。
4實驗結(jié)果與分析
實驗用到的視頻是由無人機(jī)在黃浦江流域拍攝的,視頻分辨率為1 280×720;系統(tǒng)平臺為32位Windows 7系統(tǒng);軟件實施平臺為VS2010和OpenCV2.4.8。
圖5、圖6給出了垂直拍攝和非垂直拍攝兩組實驗的對比實驗結(jié)果。在不同實驗條件下,不同算法提取的船舶目標(biāo)效果各不相同。本文所提出算法的檢測效果明顯優(yōu)于傳統(tǒng)Vibe算法。具體分析結(jié)果如下:由圖5(b)和圖6(b)可以看出傳統(tǒng)Vibe算法對低空航拍視頻中無論是垂直拍攝還是非垂直拍攝的船舶目標(biāo)檢測效果都不太理想,船舶輪廓不清晰甚至嚴(yán)重缺損,此外還存在一定的鬼影[1213]。Canny邊緣檢測后的結(jié)果圖如圖5(c)和圖6(c)所示,可以實現(xiàn)船舶輪廓的基本提取,將其與Vibe算法的檢測結(jié)果進(jìn)行融合后得到如圖5(d)和6(d)所示的效果,彌補了Vibe算法的輪廓檢測缺點。再對前景融合后的結(jié)果圖進(jìn)行目標(biāo)優(yōu)化,解決船舶空洞問題,使得船舶外輪廓連續(xù),如圖5(e)和圖6(e)所示,便于根據(jù)船舶外輪廓進(jìn)行框定。圖5(f)和圖6(f)顯示了用最小外接矩形對船舶目標(biāo)進(jìn)行連通域標(biāo)記后的檢測結(jié)果。
表2為傳統(tǒng)Vibe算法和本文算法分別處理24幀連續(xù)的圖片所用時間的對比??梢娪捎诒疚脑趥鹘y(tǒng)Vibe算法基礎(chǔ)上增加了Canny邊緣檢測以及前景融合和目標(biāo)優(yōu)化,算法運行時間有所增加,但仍然能滿足實時檢測的要求。
5結(jié)論
本文根據(jù)低空航拍視頻中船舶目標(biāo)檢測的實際需求,以前景目標(biāo)檢測算法中最新的Vibe算法為基礎(chǔ),針對其檢測效果的缺點融合了改進(jìn)型Canny算子邊緣檢測算法,并對融合后的前景目標(biāo)進(jìn)行優(yōu)化。將理論算法與實際相結(jié)合,研究實現(xiàn)了基于改進(jìn)型Vibe算法的低空航拍視頻中的船舶檢測方法。該方法適用于海事無人機(jī)進(jìn)行電子巡航時對船舶目標(biāo)的檢測。
參考文獻(xiàn)
?。?] 元海文,肖長詩,文元橋,等.基于顯著性分析的HOG快速船舶檢測方法[J].中國航海,2016,39(01):69-73.
?。?] WREN B C, AZARBAYEJANI A, DARREL T, et al. Pfinder:realtime tracking of human body[J]. Transaction on Pattern Analysis and Machine Intelligence, 2015,19(7):780-785.
[3] 庾鵬, 王旭, 仝天樂,等. 基于GrabCut算法和四幀差分法的目標(biāo)提取算法[J]. 微型機(jī)與應(yīng)用, 2016, 35(11):4042.
?。?] BARRON B J L, FLEET D J, BEAUCHEMIN S S, et al. Performance of optical ow techniques[C]. Proceedings of the Conference on Computer Vision and Pattern Recognition, 2010:236-242.
?。?] BARNICH O, VAN ROOGENBROECK M. ViBe: a powerful random technique to estimate the background in video sequence[C]. International Conference on Acoustics Speech and Signal Processing(ICASSP),2009:945948.
[6] 王輝,宋建新.一種基于閾值的自適應(yīng)Vibe目標(biāo)檢測算法[J].計算機(jī)科學(xué),2015,42(6A):154-157.
?。?] BARNICH O, VAN ROOGENBROECK M, EVS B E, et al. ViBe: a universal background subtraction algorithm for video sequence[J]. IEEE Transactions on Image Processing, 2011,20(6):1709-1724.
?。?] MAHOOR E, MAGHSOUMI H, ASEMANI D. An improved motion detection algorithm using ViBe[C]. International Conference on Computing, Communication and Networking Technologies, 2015:1-5.
?。?] YANG W, ZENG P, FANG D. An improved algorithm for motion detection based on Vibe[J]. Icic Express Letters, 2015, 9(9):2475-2481.
?。?0] 余燁,曹明偉,岳峰. EVibe:一種改進(jìn)的Vibe運動目標(biāo)檢測算法[J].儀器儀表學(xué)報, 2014, 35(4):924-931.
?。?1] 譚艷麗, 趙永強(qiáng). 一種改進(jìn)的二維Otsu閾值分割法[J]. 半導(dǎo)體光電, 2014, 35(5):937-940.
?。?2] 王珦磊, 唐加山. 一種基于YUV顏色空間自適應(yīng)陰影消除算法[J]. 微型機(jī)與應(yīng)用, 2016, 35(7):44-47.
?。?3] Dou Jianfang, Li Jianxun. Moving object detection based on improved VIBE and graph cutoptimization[J]. OptikInternational Journal for Light and Electron Optics, 2013, 124(23):6081-6088.