摘 要: 傳統(tǒng)的Snake模型在圖像邊緣檢測時(shí)定位、分割的結(jié)果依賴于初始節(jié)點(diǎn)的選取,當(dāng)初始輪廓線超出圖像邊界時(shí),會導(dǎo)致分割定位失敗。針對該問題,對Snake算法進(jìn)行改進(jìn),詳細(xì)介紹了改進(jìn)算法的原理和實(shí)現(xiàn),并用遺傳算法" title="遺傳算法">遺傳算法對結(jié)果進(jìn)行優(yōu)化。
關(guān)鍵詞: Snake模型 虹膜定位 能量函數(shù)" title="能量函數(shù)">能量函數(shù) 區(qū)域信息 遺傳算法
1 研究現(xiàn)狀
虹膜識別" title="虹膜識別">虹膜識別是近幾年發(fā)展起來的新興生物特征識別技術(shù)。由于虹膜是內(nèi)部器官,受外界的影響小而且不易改變。與生活中的鑰匙和密碼相比,人的虹膜不易被修改和盜用。虹膜圖像的采集是非接觸式的,具有極高的應(yīng)用性。虹膜定位就是虹膜內(nèi)外邊緣的定位,是虹膜識別技術(shù)的關(guān)鍵環(huán)節(jié)。精確定位是有效進(jìn)行虹膜識別的前提。傳統(tǒng)的定位方法大部分采用Hough變換和Daugman的圓形檢測算子。前者需要在參數(shù)空間內(nèi)對三個(gè)參數(shù)(圓心坐標(biāo)和半徑)進(jìn)行搜索,計(jì)算量和存儲量較大,后者雖然速度快,但前提條件是用一個(gè)穩(wěn)健的方法來確定瞳孔的圓心。
Kass等人1988年提出了一種基于能量函數(shù)的主動輪廓線(Active contour models)的Snake算法[1~2],并已經(jīng)證明是一種高效的輪廓探測法[4],但傳統(tǒng)的Snake模型存在著許多不足:(1)不能依據(jù)圖像的目標(biāo)形態(tài)自動分配蛇點(diǎn);(2)定位、分割的結(jié)果依賴于初始節(jié)點(diǎn);(3)容易受局部噪聲的影響收斂于局部噪聲極值點(diǎn);(4)弱邊界圖像求解效果較差;(5)初始輪廓線若超出圖像邊界時(shí),分割定位會失?。?6)收斂的速度還不夠快等。針對這些缺點(diǎn),本文提出了一系列改進(jìn)方法來重新構(gòu)造Snake模型,研究能量函數(shù)的構(gòu)造和蛇點(diǎn)的自適應(yīng)分布,在定位結(jié)束后引入遺傳算法優(yōu)化所得結(jié)果。
2 Snake原始模型
傳統(tǒng)的Snake模型實(shí)際上是一條參數(shù)化的樣條曲線,設(shè)v(s)=[x(s),y(s)],其中s是曲線的弧長,其范圍為s∈[0,1],Snake模型[3~5]的能量函數(shù)為:
其中Eint((s)),Eext(
(s))分別為內(nèi)部能量和外部能量。內(nèi)部能量函數(shù)Eint(
(s))能保持樣條曲線的彈性和光滑。外部能量函數(shù)Eext(
(s))主要決定輪廓收斂于圖像特征點(diǎn)。
3 對Snake模型的改進(jìn)
3.1 內(nèi)部能量函數(shù)的改進(jìn)
改進(jìn)后的內(nèi)部能量函數(shù)為:
式中Ed為目標(biāo)中心點(diǎn)對蛇點(diǎn)的拉動能量;Ec為輪廓的二階導(dǎo)數(shù); K為常量;vi-1、vi、vi+1為3個(gè)相鄰的蛇點(diǎn);pc為蛇點(diǎn)估計(jì)的形心;α、β為能量函數(shù)的權(quán)值" title="權(quán)值">權(quán)值。
函數(shù)的優(yōu)點(diǎn)是間接擴(kuò)大了蛇點(diǎn)的搜索范圍,第一個(gè)形心由人為選定,在以后的每次迭代中,都由蛇點(diǎn)來估計(jì)新的形心。在蛇點(diǎn)運(yùn)動的起始階段,也就是剛開始的第10~15次迭代過程中,由于蛇點(diǎn)的起始位置與目標(biāo)的實(shí)際輪廓相差很大,此時(shí)用蛇點(diǎn)對形心的估計(jì)往往誤差較大,可以保持形心的起始位置不變,在經(jīng)過一段時(shí)間的迭代之后,各蛇點(diǎn)的輪廓開始逼近目標(biāo)輪廓,此時(shí)形心將隨著蛇點(diǎn)的分布而運(yùn)動,運(yùn)動方式為:
其中,vi為蛇點(diǎn)的位置,為了防止形心越界,在運(yùn)動時(shí),形心將要受到邊緣梯度力的控制,滿足:
Ecp=max(mEcd+n/Ecg)
式中,Ecp為形心的能量,Ecd為蛇點(diǎn)對形心的拉動能量,Ecg為形心的梯度能量,m、n為系數(shù)。
3.2 離散化Snake模型
把結(jié)合貪婪算法的Snake模型離散化,表示為:
式中i=0,1,…N-1,vi為Snake上的控制點(diǎn),簡稱“蛇點(diǎn)”,N為蛇點(diǎn)的總數(shù)目,vij為蛇點(diǎn)及其8鄰域的點(diǎn)。Econt(vij)、Ecurv(vij)、Eimg(vij)、Econs(vij)分別為對應(yīng)點(diǎn)的連續(xù)性能量、彎曲性能量、圖像能量和約束能量,前兩項(xiàng)屬于內(nèi)部能量,后兩項(xiàng)屬于外部能量。α、β、γ、δ分別為各能量項(xiàng)的權(quán)值,用以調(diào)節(jié)各能量項(xiàng)在總能量中的比重,為了平衡各項(xiàng)的影響,各能量項(xiàng)全都?xì)w一化為區(qū)間[0,1]內(nèi)的數(shù)。
連續(xù)性能量采用如下形式:
式中I(vi,j)為點(diǎn)vi,j處的灰度值,minGray和maxGray分別為8鄰域內(nèi)的最小灰度值和最大灰度值。
本文的約束能量采用蛇點(diǎn)到Snake形心的距離勢能,采用如下形式:
3.3 引入?yún)^(qū)域信息來構(gòu)造圖像力
在進(jìn)行虹膜邊界定位時(shí),由于虹膜不具有強(qiáng)邊界,有時(shí)在獲取虹膜圖像時(shí)帶有很強(qiáng)的噪音,傳統(tǒng)的Snake模型在處理虹膜圖像時(shí),僅使用邊界信息,容易使曲線陷入局部最優(yōu),本文引入一個(gè)區(qū)域信息[5]來改善該問題。
取得初始曲線V(0)所包括的區(qū)域統(tǒng)計(jì)特征,
的沖擊特征可以近似看作待分割目標(biāo)的統(tǒng)計(jì)特征,記為{SF0,j|1≤j≤m},其中m表示區(qū)域統(tǒng)計(jì)特征的個(gè)數(shù),SF0,1是該區(qū)域內(nèi)像素的灰度均值,SF0,2是該區(qū)域內(nèi)像素的灰度方差。取得
的特征后,考察V(t)上的點(diǎn)Vi為中心,K×K區(qū)域的特征,一般取K=3。計(jì)算統(tǒng)計(jì)特征{SFi,j|1≤j≤m},得到該區(qū)域和
的統(tǒng)計(jì)相似度:
其中m表示統(tǒng)計(jì)特征個(gè)數(shù),SFi,k為Vi所在區(qū)域的統(tǒng)計(jì)特征,SF0,k為?覣0的統(tǒng)計(jì)特征,在得到兩者的相似度后,可以定義圖像力為:
式中μ為正數(shù),0≤μ≤1。當(dāng)XSi≤T時(shí)(T為閾值),說明Vi所在的區(qū)域可以近似看作目標(biāo)內(nèi)部區(qū)域,此時(shí)曲線繼續(xù)沿外法線方向運(yùn)動(膨脹);相反XSi≥T時(shí),說明Vi所在的區(qū)域可以近似看作背景區(qū)域,曲線沿內(nèi)法線方向運(yùn)動(收縮)。
4 實(shí)驗(yàn)結(jié)果
本文采用CASIA虹膜圖像數(shù)據(jù)庫(版本1.0) ,其中包括80人(男62人,女18人)108只不同眼睛的虹膜圖像樣本,每只眼睛有7幅8位灰度圖像,分辨率為320×280。
選取一幅虹膜圖像,Snake模型的具體參數(shù)設(shè)置為:初始節(jié)點(diǎn)選取15個(gè),連續(xù)性能量函數(shù)系數(shù)為α=1.0,彎曲性能量函數(shù)系數(shù)為β=0.5,圖像能量函數(shù)系數(shù)為γ=1,約束能量函數(shù)系數(shù)為δ=-7.0,閾值T=97,遺傳算法[6]的種群染色體數(shù)目為M=50,交叉概率為Pc=0.24,變異概率為Pm=0.02,迭代次數(shù)為R′=60。
由于虹膜外邊界上眼瞼的睫毛噪音難以消除,作者采用先定位虹膜內(nèi)邊界,得到形心的位置后,以瞳孔的半徑為虹膜外邊界的初始半徑,使用簡化的Daugman算法定位下半個(gè)虹膜輪廓,然后鏡像出整個(gè)虹膜外邊界。
實(shí)驗(yàn)結(jié)果如圖1所示。其中,圖1(a)為初始曲線的位置,為了證明本文方法的優(yōu)點(diǎn)和穩(wěn)定性,因此本文在選取初始點(diǎn)時(shí)使初始點(diǎn)沒有完全位于虹膜內(nèi)邊界的內(nèi)部。圖1(b)為傳統(tǒng)Snake模型基于邊界信息的外力定位的結(jié)果,根據(jù)此圖可以看到,在傳統(tǒng)Snake模型的定位下,若初始節(jié)點(diǎn)超出目標(biāo)邊界,則最后定位的曲線會超出邊界的區(qū)域,不能再縮回到正確的邊界位置,并受到噪聲的影響,導(dǎo)致定位失敗。圖1(c)是改進(jìn)后的Snake模型基于區(qū)域信息的定位結(jié)果,即使初始節(jié)點(diǎn)位于目標(biāo)輪廓的外部,仍能受到外力的拉伸,漸漸向真實(shí)的邊界靠攏,達(dá)到較優(yōu)的定位效果。圖1(d)是使用遺傳算法對改進(jìn)后Snake模型的求解進(jìn)行優(yōu)化的結(jié)果??梢钥闯觯瑑?yōu)化后的曲線更加趨近于虹膜邊界,而且更加光滑,效果更好。
圖中的“十”字形交點(diǎn)為形心,在定位時(shí)間上與其他算法比較如表1所示,原始Snake模型定位失敗,定位的結(jié)果并沒有真實(shí)反應(yīng)虹膜內(nèi)邊界的輪廓,改進(jìn)后的Snake算法耗時(shí)最少,精度較高。由于有部分初始點(diǎn)落在虹膜內(nèi)邊界以外,因此耗費(fèi)的時(shí)間并沒有體現(xiàn)出很明顯的優(yōu)勢。
本文就改進(jìn)的Snake模型在虹膜邊緣定位中的應(yīng)用進(jìn)行了分析,改進(jìn)了Snake模型的內(nèi)部能量函數(shù),并結(jié)合貪婪算法對Snake模型進(jìn)行離散化;然后引入?yún)^(qū)域信息來構(gòu)造圖像力,使得改進(jìn)后的Snake模型減小了噪音的干擾;最后,使用遺傳算法對Snake模型的求解進(jìn)行優(yōu)化。實(shí)驗(yàn)結(jié)果證明,上述算法與傳統(tǒng)的Snake模型算法相比,具有更好的定位效果,定位出來的虹膜內(nèi)邊界更加光滑,并且接近虹膜邊界,魯棒性更強(qiáng)。此方法也適用于連續(xù)圖像的分割及追蹤,對凹凸性變化較強(qiáng)烈的圖形也有很好的分割效果,作者將對此做更進(jìn)一步的研究。
參考文獻(xiàn)
1 Kass M,Witkin M,Terzopoulos D.Snakes:Active contour models[J].International Journal of Computer Vision,1987;1(4):321~331
2 Cohen L D,Cohen I.Finite-element methods for active contour models and balloons for 2D and 3D images[J].Pattern Analysis and Machine Intelligence,1993;15(11):1131~1147
3 趙保軍,李 棟.對復(fù)雜邊緣檢測的Snake改進(jìn)算法[J].北京理工大學(xué)學(xué)報(bào),2004;24(2):162~165
4 苑瑋琦,馬軍防,狄文彬.基于主動輪廓線的虹膜定位算法[J].計(jì)算機(jī)工程與應(yīng)用,2003;40(34):104~107
5 陳允杰,張建偉.一種新的圖像力在Snake模型中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用" title="計(jì)算機(jī)應(yīng)用">計(jì)算機(jī)應(yīng)用,2004;24(12):28~30
6 陳允杰,張建偉.遺傳算法在Snake模型中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2004;24(5):80~84