摘 要: 使用Mumford-Sham模型進行運動目標" title="運動目標">運動目標檢測以克服常規(guī)算法的缺點。利用改進的水平集算法,使算法能夠快速收斂。為達到實時性的要求,利用多分辨方法進一步提高算法的速度。使用改進的區(qū)域生長算法進一步準確地檢測出運動目標。
關(guān)鍵詞: Mumford-Sham模型 運動目標 水平集 區(qū)域生長 魯棒性
運動目標檢測" title="運動目標檢測">運動目標檢測在目標跟蹤、視頻監(jiān)控和精確制導等領(lǐng)域有重要的應用。傳統(tǒng)的運動目標檢測算法存在閾值確定困難、對噪聲較敏感等缺點?;顒虞喞P?SUP>[2]是解決靜止與運動圖像分割" title="圖像分割">圖像分割和目標檢測問題的一種有效方法,其主要缺點在于拓撲適應性較弱,即在演化過程中不能自適應地裂開或合并。由Osher和Sethian提出的水平集[1][3]方法解決了此問題,將二維的閉合曲線嵌入一個三維的曲面,借助曲面的演化實現(xiàn)曲線的演化?;趲缀沃鲃虞喞€模型[2][7]的水平集算法僅利用圖像的邊緣信息,對邊緣模糊或存在離散狀邊緣的目標難以得到理想的分割效果,而Chan-Vese提出的Mumford-Shah模型[5]利用圖像的同質(zhì)區(qū)域的全局信息,可較好地分割出邊界模糊或離散邊界的目標。
本文對含有多個運動目標的圖像序列相鄰幀圖像差建立Mumford-Shah模型,利用水平集算法求解此模型,利用改進的偏微分方程和其數(shù)值解,使方程能夠快速收斂。為達到實時性的要求,利用多尺度方法提高算法的速度。采用改進的區(qū)域生長算法進一步提高分割的準確性。本文圖像的背景相對固定, 即攝像機相對固定。
1水平集(Level set)方法
水平集方法主要是從界面?zhèn)鞑ヮI(lǐng)域逐步發(fā)展起來的,是處理封閉運動界面隨時間演化過程中幾何拓撲變化的有效計算工具。以水平集合函數(shù)Φ所表達的曲線演化的最大特點[1]是:即使隱含在Φ中的零水平集曲線C發(fā)生了拓撲結(jié)構(gòu)的變化,Φ仍然保持一有效函數(shù)。
要使Φ的演化與閉合曲線C的演化相關(guān),Φ的演化要滿足如下的Hamilton-Jacobi偏微分方程:
水平集方法中不需要顯式地求水平集函數(shù)Φ,而是用圖像域初始閉合曲線C0生成的符號距離函數(shù)(signed distance function)代替,簡記為SDF,即:
x∈R2,d為圖像平面上的點x到曲線C的距離,若x在曲線的內(nèi)部取正,則在曲線的外部取負。
2運動目標檢測算法
2.1幀差法
定義灰度差分" title="差分">差分圖像D={d(x,y)}如下:
d(x,y)=g(|I(x,y;t+1)-I(x,y;t)|)?????????????? ?(3)
I(x,y;t+1)和I(x,y;t)為圖像序列中相鄰幀圖像。函數(shù)g(x)定義為:
函數(shù)g的作用是調(diào)整圖像的對比度和均衡化圖像,γ為調(diào)整系數(shù)。對分辨率較低場景中存在多個運動目標,且其運動速度和方向不相同的條件下,采用簡單的閾值法分割效果較差。
2.2 基于Mumford-Shah模型的運動區(qū)域檢測及水平集解
運動區(qū)域檢測需要將灰度差分圖像D中的灰度一致區(qū)域分離出來,即分割出運動區(qū)域和靜止背景區(qū)域。傳統(tǒng)的幾何輪廓線模型分割圖像的方法多采用活動輪廓線所在位置的圖像局部信息,難于綜合圖像區(qū)域的全局信息,僅僅依靠進化曲線C所在位置圖像的邊緣信息控制C的進化。這種方法對邊緣模糊或離散邊緣的圖像分割效果不好。目前大多數(shù)視頻監(jiān)控圖像的分辨率不高,采用傳統(tǒng)的幾何輪廓線的方法不能正確分割出圖像中的同質(zhì)區(qū)域。
Chan-Vese提出了一種簡化Mumford-Shah的圖像分割模型[5],圖像I 的定義域" title="定義域">定義域為Ω,C為Ω上的一閉合曲線,C將圖像I分割為目標和背景兩個同質(zhì)區(qū)域,定義如下的能量函數(shù):
式(5)中c0、cb分別為圖像I在閉合曲線C內(nèi)部和外部的灰度平均值。μ·Length(C)、v·Area(inside(C))為正則項,控制曲線的進化。因此,最優(yōu)化圖像分割問題轉(zhuǎn)化為求能量函數(shù)F(c0,cb,C)的最小值問題??梢钥闯?,只有C進化到目標的邊界C0時,F(xiàn)(c1,c2,C)取最小值。
Chan-Vese以歐拉-拉格郎日法推導出水平集函數(shù)Φ表達并滿足式(5)的偏微分方程:
式(6)的Ω為圖像函數(shù)和水平集函數(shù)的定義域。H(z)是Heaviside函數(shù),δ(x)是Direc函數(shù)。此偏微分方程所涉及的圖像函數(shù)I的定義域為全圖數(shù)據(jù),且方程中C0(Φ)、cb(Φ)也定義在全圖范圍內(nèi),Mumford-Shah的圖像分割模型的最大特點就是全局優(yōu)化。另外閉合曲線可以放置在圖像上任何位置。最后一個顯著特點就是不依靠圖像的邊緣信息,即使圖像的邊緣模糊或離散,仍能得到較好的分割效果。
實驗表明,由于Dirac函數(shù)狹窄的定義范圍,限制了模型檢測圖像的全局性。Chan-Vese方法對此進行了改進,采用了正則化的Heaviside函數(shù)和Direc函數(shù),定義為:
該函數(shù)保證了在圖像定義域范圍內(nèi),所有點的δε(z)值都是趨于零的正值。但當檢測曲線遠離檢測目標時,則δε(z)函數(shù)嚴重限制了對遠離進化曲線C的目標的檢測,不能穩(wěn)定地檢測出目標。
2.3 對Chan-Vese分割方法的改進
為消除方程(6)中Dirac函數(shù)對檢測遠離進化曲線C邊緣的抑制,將δ(Φ)替換為▽Φ,使偏方程變?yōu)?SUP>[5~6]:
而c0(Φ)、cb(Φ)按照方程(6)計算。Heaviside函數(shù)按照式(7)計算。由于▽Φ≈1,消除了Dirac函數(shù)對非零水平集的抑制,因此方程(8)比方程(6)有更好的全局優(yōu)化性能。
為保證式(8)解的穩(wěn)定性,不采用Chan-Vese中的Jacobi方法[5],而采用有限差分方法[3]:
其中K表示水平集函數(shù)在(i,j)的曲率,由(10)式定義:
改進后的偏微分方程的求解過程如下:
·由Φ0初始化Φ0,n=0;
·由式(6)計算c0(Φ)、cb(Φ);
·由式(10)計算曲率K;
·由式(9)計算Φn+1;
·檢查解是否穩(wěn)定,如不穩(wěn)定,n=n+1,重復計算。
由于Mumford-Shah模型要計算整個圖像定義域的全局最優(yōu)解,不能使用常用的窄帶法求解水平集,需在整個定義域更新水平集函數(shù),計算量較大,但由于方程(8)為全局優(yōu)化的偏微分方程,只需很少的幾次迭代,就可以得到理想的分割效果。
為減少算法的運行時間,采用多分辨方法,算法在保證檢測結(jié)果正確的前提下,可大大減少算法的計算時間。具體的計算時間比較見表1。
2.4 運動變化分割基礎(chǔ)上的區(qū)域生長
在圖像背景相對靜止的條件下,圖像變化區(qū)域C可表為:
C(t,t+1)=O(t)∪O(t+1)
C(t-1,t)=O(t-1)∪O(t) (11)
其中O(t)為t時刻屬于運動目標的點集。則
C(t-1,t)∩C(t,t+1)=O(t)∪(O(t+1)∩O(t-1)) (12)
這意味著兩個連續(xù)幀差圖像的交集更能代表運動目標的準確位置,因此使用兩連續(xù)幀差圖像的交集作為運動目標的初始位置,在此基礎(chǔ)上進行區(qū)域生長以更完整地檢測出運動目標。
區(qū)域增長法的基本思想是將具有相似性質(zhì)的像素集合起來構(gòu)成區(qū)域。實驗中發(fā)現(xiàn),采用檢測出的運動區(qū)域為種子像素進行區(qū)域生長,難以確定相應的閾值,另外運動區(qū)域的點可能包括背景像素點,這樣很易造成生長錯誤。
本文采用一種基于圖像邊緣信息的區(qū)域生長算法以克服上面的缺點,以兩連續(xù)幀差圖像的交集作為運動目標的種子像素點集,采用Sobel邊緣算子檢測種子像素周圍的像素點,如果為邊緣像素點,則標記為運動目標點,將檢測到的邊緣像素點與運動檢測結(jié)果進行融合,能夠準確地檢測出運動目標。
基于邊緣信息的區(qū)域生長算法過程如下:
(1)選擇水平集算法檢測出的運動區(qū)域的運動點為種子像素;
(2) 以該像素為中心檢查其8鄰域,采用Sobel算子進行檢測,如為邊緣像素,則標記;
(3) 以新確定的像素為中心,返回步驟(2),檢查新像素的鄰域,直至遇到水平集算法確定的運動點或超出設(shè)定的區(qū)域范圍,返回(1),直到所有的種子像素都被檢查一遍,結(jié)束整個生長過程。
在使用Sobel算子時采用各向同性的檢測模板,不采用固定閾值確定邊緣點,而是采用如下的判斷:
G(x,y)/V(x,y)>Cof (13)
G(x,y)為點(x,y)計算的邊緣強度,V(x,y)為點(x,y)圖像的灰度值。為檢測邊緣像素點較多,Cof取較小值。測試中Cof取0.1~0.3。
3 實驗結(jié)果分析
采用實際的圖像序列進行測試,檢測結(jié)果如圖1所示。利用方程(8)和方程(6)分別進行計算,參數(shù)取值如下: λ0=λb=1, μ=0.2×255,v=0,△t=0.1,Cof=0.2, μ取較大值以保證檢測較大目標。為加快SDF函數(shù)的初始化計算速度,初始化曲線選為圓,以圖像矩形中心為圓心,矩形的短邊的一半為半徑。編制程序利用不同等級分辨率的圖像進行計算。計算機配置為:CPU為1.50GHz主頻率,內(nèi)存為256MB,操作系統(tǒng)為Windows2000。
?
由表1和圖1的檢測結(jié)果可以看出,使用本文的算法對不同等級分辨率的圖像迭代三次均能正確地檢測圖像中的運動車輛和行人。改進后的算法與Chan-Vese算法相比大大減少了收斂的次數(shù)。由于改進后的算法與Chan-Vese算法每次迭代的耗時基本相同,但改進后的算法迭代次數(shù)少,因此提高了算法的速度。改進的算法對不同等級分辨率的圖像均能正確地檢測出運動目標,這一點也驗證了算法的全局性能,圖像序列等級2的計算時間為0.1200s。Chan-Vese算法由于Dirac函數(shù)的影響,對初始化曲線的位置和曲線的長度十分敏感,在實驗中也驗證了這一點。當初始化曲線遠離目標時,收斂次數(shù)大大增加,而改進后的算法對初始化曲線的位置不敏感,算法可快速收斂。圖1(f)與(g)為水平集算法檢測結(jié)果,圖1(g)為兩者的交集,圖1(i)為采用Sobel邊緣檢測算子進行區(qū)域生長法的生長結(jié)果,圖1(j)為融合兩者的分割結(jié)果,較好地檢測出運動目標。對檢測出來的運動目標的內(nèi)部空洞可以直接填充以更完整地檢測出運動目標。
SDF函數(shù)的構(gòu)造比較耗時,可利用當前幀水平集計算迭代收斂時的SDF函數(shù),作為下一幀差圖像水平集計算時的SDF函數(shù),避免了SDF函數(shù)的構(gòu)造。由于連續(xù)幀間的目標運動變化不大,因此在下一幀差圖像水平集計算的迭代次數(shù)更少,進一步提高了算法的速度。在連續(xù)幀的測試中,迭代一到兩次均能檢測出運動目標。
采用基于能量極小化的框架對含有多個運動目標的圖像序列相鄰幀圖像差建立Mumford-Shah模型,為求解此模型,提出利用改進的偏微分方程和水平集數(shù)值解法,使算法能夠快速收斂。為達到實時性的要求,利用多尺度方法進一步提高算法的速度。使用改進的區(qū)域生長算法進一步準確檢測出運動目標。試驗結(jié)果表明,本文的算法能從較復雜的圖像序列中有效地檢測和提取出運動目標并有較強的魯棒性。進一步提高算法的魯棒性是今后的研究重點。
參考文獻
1 Osher, S. The level set methods:applications to imaging sciences, UCLA CAM Report 02-43
2 李培華,張?zhí)镂? 主動輪廓線模型(蛇模型)綜述[J]. 軟件學報,2001;11(6):751~757
3 Osher S,Sethian J.Fronts propagating with curvature dependent speed: Algorithms based on the Hamilton-Jacobi formu-lation[J].Journal of Computational Physics,1988;79(1):12~49
4 Sethian J. A Level Set Methods and fast Marching Methods:Evolving Inter Faces in Computational Geometry, Fluid Me-chanics,Computer Vision,and Masterials Sciences[M].London: Cambridge University Press, 1999
5 Chan F T. Vese L. Active contours without edges[J]. IEEE Trans. Image Processing,2001;10(2):266~277
6 李 俊, 楊 新, 施鵬飛. 基于Mumford-Shah模型的快速水平集圖像分割方法[J].計算機學報,2002;11(25):1175~1183
7 Geidenberg R,Kimmel R,Rivlin E,et al. .Fast geodesic ac-tive contours [J]. IEEE Transactions on Image Processing,2001;10(10):1467~1475