基于Mumford-Shah模型的運(yùn)動目標(biāo)檢測 作者: 時間:2007-03-09 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對面交流海量資料庫查詢 收藏 摘要:使用Mumford-Shah模型進(jìn)行運(yùn)行目標(biāo)檢測以克服常規(guī)算法的缺點(diǎn)。利用改進(jìn)的水平集算法,使算法能夠快速收斂。為達(dá)到實(shí)時性的要求,利用多分辨方法進(jìn)一步提高算法的速度。使用改進(jìn)的區(qū)域生長算法進(jìn)一步準(zhǔn)確地檢測出運(yùn)動目標(biāo)。關(guān)鍵詞:Mumford-Shah模型 運(yùn)動目標(biāo) 水平集 區(qū)域生長 魯棒性 運(yùn)動目標(biāo)檢測在目標(biāo)跟蹤、視頻監(jiān)控和精確制導(dǎo)等領(lǐng)域有重要的應(yīng)用。傳統(tǒng)的運(yùn)動目標(biāo)檢測算法存在閾值確定困難、對噪聲較敏感等缺點(diǎn)?;顒虞喞P褪墙鉀Q靜止與運(yùn)動圖像分割和目標(biāo)檢測問題的一種有效方法,其主要缺點(diǎn)在于拓?fù)溥m應(yīng)性較弱,即在演化過程中不能自適應(yīng)地裂開或合并。由Osher和Sethian提出的水平集方法解決了此問題,將二維的閉合曲線嵌入一個三維的曲面,借助曲面的演化實(shí)現(xiàn)曲線的演化。基于幾何主動輪廓線模型的水平集算法僅利用圖像的邊緣信息,對邊緣模糊或存在離散狀邊緣的目標(biāo)標(biāo)難以得到理想的分割效果,而Chan-Vese提供的Mumford-Shah模型利用圖像的同質(zhì)區(qū)域的全局信息,可較好地分割出邊界模糊或離散邊界的目標(biāo)。 本文對含有多個運(yùn)動目標(biāo)的圖像序列相鄰幀圖像差建立Mumford-Shah模型,利用水平集算法求解此模型,利用改進(jìn)的偏微分方程和其數(shù)值解,使方程能夠快速收斂。為達(dá)到實(shí)時性的要求,利用多尺度方法提高算法的速度。采用改進(jìn)的區(qū)域生長算法進(jìn)一步提高分割的準(zhǔn)確性。本文圖像的背景相對固定,即攝像機(jī)相對固定。 1 水平集(Level set)方法 水平集方法主要是從界面?zhèn)鞑ヮI(lǐng)域逐步發(fā)展起來的,是處理封閉運(yùn)動界面隨時間演化過程中幾何拓?fù)渥兓挠行в?jì)算工具。以水平集合函數(shù)φ所表達(dá)的曲線演化的最大特點(diǎn)是:即使隱含在φ中的零水平集曲線C發(fā)生了拓?fù)浣Y(jié)構(gòu)的變化,φ仍然保持一有效函數(shù)。 要使φ的演化與閉合曲線C的演化相關(guān),φ的演化要滿足如下的Hamilton-Jacobi偏微分方程: аφ/аt=F|△φ| (1) 水平集方法中不需要顯式地求水平集函數(shù)φ,而是用圖像域初始閉合曲線C0生成的符號距離函數(shù)(signed distance function)代替,簡記了SDF,即: φ(x,t=0)=%26;#177;d (2) x∈R2,d為圖像平面上的點(diǎn)x到曲線C的距離,若x在曲線的內(nèi)部取正,則在曲線的外部取負(fù)。 2 運(yùn)動目標(biāo)檢測算法 2.1 幀差法 定義灰度差分圖像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ù)。對分辨率較低場景中存在多個運(yùn)動目標(biāo),且其運(yùn)動速度和方向不相同的條件下,采用簡單的閾值法分割效果較差。 2.2 基于Mumford-Shah模型的運(yùn)動區(qū)域檢測及水平集解 運(yùn)動區(qū)域檢測需要將灰度差分圖像D中的灰度一致域分離出來,即分割出運(yùn)動區(qū)域和靜止背景區(qū)域。傳統(tǒng)的幾何輪廓線模型侵害圖像的方法多采用活動輪廓線所在位置的圖像局部信息,難于綜合圖像區(qū)域的全局信息,僅僅依靠進(jìn)化曲線C所在位置邊緣信息控制C的進(jìn)化。這種方法對邊緣模糊或離散邊緣的圖像分割效果不好。目前大多數(shù)視頻監(jiān)控圖像的分辨率不高,采用傳統(tǒng)的幾何輪廓線的方法不能正確分割出圖像中的同質(zhì)區(qū)域。 Chan-Vese提出了一種簡化Mumford-Shah的圖像分割模型,圖像I的定義域?yàn)棣福珻為Ω上的一閉合曲線,C將圖像I分割為目標(biāo)和背景兩個同質(zhì)區(qū)域,定義如下的能量函數(shù): 式(5)中c0、cb分別為圖像I在閉合曲線C內(nèi)部和外部的灰度平均值。μ%26;#183;Length(C)、v%26;#183;Area(inside(C))為正則項(xiàng),控制曲線的進(jìn)化。因此,最優(yōu)化圖像分割問題轉(zhuǎn)化為求能量函數(shù)F(c0,cb,C)的最小值問題。可以看出,只有C進(jìn)化到目標(biāo)的邊界C0時,F(xiàn)(c1,c2,C)取最小值。 Chan-Vese以歐拉-拉格郎日法推導(dǎo)出水平集函數(shù)φ表達(dá)并滿足式(5)的偏微分方程: 式(6)的Ω為圖像函數(shù)和水平集函數(shù)的定義域。H(z)是Heaviside函數(shù),δ(x)是Direc函數(shù)。此偏微分方程所涉及的圖像函數(shù)I的定義域?yàn)槿珗D數(shù)據(jù),且方程中C0(φ)、cb(φ)也定義在全圖范圍內(nèi),Mumford-Shah的圖像分割模型的最大特點(diǎn)就是全局優(yōu)化。另外閉合曲線可以放置在圖像上任何位置。最后一個顯著特點(diǎn)就是不依靠圖像的邊緣信息,即使圖像的邊緣模糊或離散,仍能得到較好的分割效果。 實(shí)驗(yàn)表明,由于Dirac函數(shù)狹窄的定義范圍,限制了模型檢測圖像的全局性。Chan-Vese方法將此進(jìn)行了改進(jìn),采用了正則化的Heaviside函數(shù)和Direc函數(shù),定義為: 該函數(shù)保證了在圖像定義域范圍內(nèi),所有點(diǎn)的δε(z)值都是趨于零的正值。但當(dāng)檢測曲線遠(yuǎn)離檢測目標(biāo)時,則δε(z)函數(shù)嚴(yán)重限制了對遠(yuǎn)離進(jìn)化曲線C的目標(biāo)的檢測,不能穩(wěn)定地檢測出目標(biāo)。 2.3 對Chan-Vese分割方法的改進(jìn) 為消除方程(6)中Dirac函數(shù)對檢測遠(yuǎn)離進(jìn)化曲線C邊緣的抑制,將δ(φ)替換為|△φ|,使偏方程變?yōu)椋? 而co(φ)、cb(φ)按照方程(6)計(jì)算。Heaviside函數(shù)按照式(7)計(jì)算。由于|△φ|≈1,消除了Dirac函數(shù)對非零水平集的抑制,因此方程(8)比方程(6)有更好的全局優(yōu)化性能。 為保證式(8)解的穩(wěn)定性,不采用Chan-Vese中的Jacobi方法,而采用有限差分方法: 改進(jìn)后的偏微分方程的求解過程如下: %26;#183;由φ0初始化φ0,n=0; %26;#183;由式(6)計(jì)算c0(φ)、cb(φ); %26;#183;由式(10)計(jì)算曲率K; %26;#183;由式(9)計(jì)算φn+1; %26;#183;檢查解是否穩(wěn)定,如不穩(wěn)定,n=n+1,重復(fù)計(jì)算。 由于Mumford-Shah模型要計(jì)算整個圖像定義域的全局最優(yōu)解,不能使用常用的窄帶法求解水平集,需在整個定義域更新水平集函數(shù),計(jì)算量較大,但由于方程(8)為全局優(yōu)化的偏微分方程,只需很少的幾次迭代,就可以得到理想的分割效果。 為減少算法的運(yùn)行時間,采用多分辨方法,算法在保證檢測結(jié)果正確的前提下,可大大減少算法的計(jì)算時間。具體的計(jì)算時間比較見表1。表1 水平集算法改進(jìn)前后的計(jì)算代價 圖像序列等級(圖像大?。┍疚乃惴–han-Vese算法迭代次數(shù)收斂時間(s)迭代次數(shù)收斂時間(s) 0(320%26;#215;240)32.3100400129.3100圖像序列1(160%26;#215;120)30.6020706.8200 2(80%26;#215;60)30.1200100.43102.4 運(yùn)動變化分割基礎(chǔ)上的區(qū)域生長 在圖像背景相對靜止的條件下,圖像變化區(qū)域C可表為: C(t,t+1)=O(t)∪O(t)∪O(t+1) (11) C(t-1,t)=O(t-1)∪O(t) 其中O(t)為t時刻屬于運(yùn)動目標(biāo)的點(diǎn)集。則 C(t-1,t)∩C(t,t+1)=O(t)∪(O(t+1)∩O(t-1)) (12) 這意味著兩個連續(xù)幀差圖像的交集更能代表運(yùn)動目標(biāo)的準(zhǔn)確位置,因此使用兩連續(xù)幀差圖像的交集作為運(yùn)動目標(biāo)的初始位置,在此基礎(chǔ)上進(jìn)行區(qū)域生長以更完整地檢測出運(yùn)動目標(biāo)。 區(qū)域增長法的基本思想是將具有相似性質(zhì)的像素集合起來構(gòu)成區(qū)域。實(shí)驗(yàn)中發(fā)現(xiàn),采用檢測出的運(yùn)動區(qū)域?yàn)榉N子像素進(jìn)行區(qū)域生長,難以確定相應(yīng)的閾值,另外運(yùn)動區(qū)域的點(diǎn)可能包括背景像素點(diǎn),這樣很易造成生長錯誤。 本文采用一種基于圖像邊緣信息的區(qū)域生長算法以克服上面的缺點(diǎn),以兩連續(xù)幀差圖像的交集作為運(yùn)動目標(biāo)的種子像素點(diǎn)集,采用Sobel邊緣算子檢測種子像素周圍的像素點(diǎn),如果為邊緣像素點(diǎn),則標(biāo)記為運(yùn)動目標(biāo)點(diǎn),將檢測到的邊緣像素點(diǎn)與運(yùn)動檢測結(jié)果進(jìn)行融合,能夠準(zhǔn)確地檢測出運(yùn)動目標(biāo)。 基于邊緣信息的區(qū)域生長算法過程如下: (1)選擇水平集算法檢測出的運(yùn)動區(qū)域的運(yùn)動點(diǎn)為種子像素; (2)以該像素為中心檢測其8鄰域,采用Sobel算子進(jìn)行檢測,如為邊緣像素,則標(biāo)記; (3)以新確定的像素為中心,反回步驟(2),檢查新像素的鄰域,直至遇到水平集算法確定的運(yùn)動點(diǎn)或超出沒定的區(qū)域范圍,返回(1),直到所有的種子像素都被檢查一遍,結(jié)束整個生長過程。 在使用Sobel算子時采用各向同性的檢測模板,不采用固定閾值確定邊緣點(diǎn),而是采用如下的判斷: G(x,y)/V(x,y)>Cof (13) G(x,y)為點(diǎn)(x,y)計(jì)算的邊緣強(qiáng)度,V(x,y)為點(diǎn)(xmy)圖像的灰度值。為檢測邊緣像素點(diǎn)較多,Cof取較小值。測試中Cof取0.1~0.3。圖13 實(shí)驗(yàn)結(jié)果分析 采用實(shí)際的圖像序列進(jìn)行測試,檢測結(jié)果如圖1所示。利用方程(8)和方程(6)分別進(jìn)行計(jì)算,參數(shù)取值如下:λ0=λb=1,μ=0.2%26;#215;255,v=0,△t=0.1,Cof=0.2,μ取較大值以保證檢測較大目標(biāo)。為加快SDF函數(shù)的初始化計(jì)算速度,初始化曲線選為圓,以圖像矩形中心為圓心,矩形的短邊的一半為半徑。編制程序列用不同等級分辨率的圖像進(jìn)行計(jì)算。計(jì)算機(jī)配置為:CPU為1.50GHz主頻率,內(nèi)存為256MB,操作系統(tǒng)為Windows2000。 由表1和圖1的檢測結(jié)果可以看出,使用本文的算法對不同等級分辨率的圖像迭代三次均能正確地檢測圖像中的運(yùn)動車輛和行人。改進(jìn)后的算法與Chan-Vese算法相比大大減少了收斂的次數(shù)。由于改進(jìn)后的算法與Chan-Vese算法每次迭代的耗時基本相同,但改進(jìn)后的算法迭代數(shù)少,因此提高了算法的速度。改進(jìn)的算法對不同等級分辨率的圖像均能正確地檢測出運(yùn)動目標(biāo),這一點(diǎn)也驗(yàn)證了算法的全局性能,圖像序列等級2的計(jì)算時間為0.1200s。Chan-Vese算法由于Dirac函數(shù)的影響,對初始化曲線的位置和曲線的長度十分敏感,在實(shí)驗(yàn)中也驗(yàn)證了這一點(diǎn)。當(dāng)初始化曲線遠(yuǎn)離目標(biāo)時,收斂次數(shù)大大增加,而改進(jìn)后的算法對初始化曲線的位置不敏感,算法可快速收斂。圖1(f)與(g)為水平集算法檢測結(jié)果,圖1(g)為兩者的交集,圖1(i)為采用Sobel邊緣檢測算子進(jìn)行區(qū)域生長法的生長結(jié)果,圖1(j)為融合兩者的分割結(jié)果,較好地檢測出運(yùn)動目標(biāo)。對檢測出來的運(yùn)動目標(biāo)的內(nèi)部空洞可以直接填充以完整地檢測出運(yùn)動目標(biāo)。 SDF函數(shù)的構(gòu)造比較耗時,可利用當(dāng)前幀水平集計(jì)算迭代收斂時的SDF函數(shù),作為下一幀差圖像水平集計(jì)算時的SDF函數(shù),避免了SDF函數(shù)的構(gòu)造。由于連續(xù)幀間的目標(biāo)運(yùn)動變化不大,因此在下一幀差圖像水平集計(jì)算的迭代次數(shù)更少,進(jìn)一步提高了算法的速度。在連續(xù)幀的測試中,迭代一到兩次均能檢測出運(yùn)動目標(biāo)。 采用基于能量極小化的框架對含有多個運(yùn)動目標(biāo)的圖像序列相鄰幀圖像差建立Mumford-Shah模型,為求解此模型,提出利用改進(jìn)的偏微分方程和水平集數(shù)值解法,使算法能夠快速收斂。為達(dá)到實(shí)時性的要求,利用多尺度方法進(jìn)一步提高算法的速度。使用改進(jìn)的區(qū)域生長算法進(jìn)一步準(zhǔn)確檢測出運(yùn)動目標(biāo)。試驗(yàn)結(jié)果表明,本文的算法能從較復(fù)雜的圖像序列中有效地檢測和提取出運(yùn)動目標(biāo)并有較強(qiáng)的魯棒性。進(jìn)一步提高算法的魯棒性是今后的研究重點(diǎn)。
評論