付 燦,袁 亮,張建杰
(新疆大學(xué)機(jī)械工程學(xué)院,新疆 烏魯木齊 830047)
神經(jīng)絲蛋白質(zhì)的研究對(duì)于漸近神經(jīng)退行性疾病的病情進(jìn)展評(píng)估具有重要意義[9],對(duì)于神經(jīng)絲蛋白質(zhì)的跟蹤觀測(cè)顯得尤為必要。神經(jīng)絲蛋白體積小,呈長(zhǎng)條狀,沿著神經(jīng)軸突運(yùn)動(dòng)。運(yùn)動(dòng)過(guò)程中會(huì)出現(xiàn)變形、變速和變向等情況,這使得對(duì)于其的跟蹤觀察變得困難。傳統(tǒng)的在熒光顯微鏡影像中進(jìn)行人工標(biāo)定的方法費(fèi)時(shí)費(fèi)力、工作效率低下,還可能由于人精神不集中、疲勞等主觀因素而產(chǎn)生人為誤差。因此,創(chuàng)建一種高效穩(wěn)定的自動(dòng)跟蹤方法是非常必要的,為神經(jīng)絲蛋白質(zhì)的醫(yī)學(xué)研究提供可靠的數(shù)據(jù)來(lái)源。
近年來(lái),對(duì)于自動(dòng)跟蹤算法的研究進(jìn)展迅速且已經(jīng)廣泛應(yīng)用于眾多領(lǐng)域。醫(yī)學(xué)研究是目標(biāo)跟蹤算法延伸到的一個(gè)新領(lǐng)域。卡爾曼濾波算法適用于線性運(yùn)動(dòng)目標(biāo)跟蹤,對(duì)于非線性運(yùn)動(dòng)目標(biāo)的跟蹤效果較差。粒子濾波算法雖適用于非線性運(yùn)動(dòng)目標(biāo)跟蹤,但是其存在計(jì)算量大、粒子退化等情況[1];而卡爾曼濾波與粒子濾波這類概率跟蹤方法需要以先驗(yàn)信息為基礎(chǔ),使其的應(yīng)用有一定局限性[2];文獻(xiàn)[3]利用改進(jìn)粒子濾波算法,根據(jù)神經(jīng)絲蛋白質(zhì)運(yùn)動(dòng)特點(diǎn),限制粒子的位置和方向參數(shù)從而減少采樣粒子數(shù),提高了跟蹤精度和效率;文獻(xiàn)[4]采樣多方法融合的粒子濾波算法,對(duì)于粒子重采樣過(guò)程進(jìn)行優(yōu)化,使得采樣粒子保持多樣性,提高了目標(biāo)跟蹤精度;然而對(duì)于神經(jīng)絲蛋白質(zhì)存在變形的情況,粒子濾波并非最佳解決方案。Fukunaga 和Hostetler 于1975 年提出了一種確定性跟蹤算法—meanshift 算法。1995 年YizongCheng 發(fā)表論文對(duì)meanshift 算法做了推廣,使其應(yīng)用范圍得到了拓展[5]。Comaniciu等人運(yùn)用meanshift 算法在非剛體目標(biāo)跟蹤研究方面取得突破[7]。在meanshift 算法的基礎(chǔ)上Bradski 提出了基于顏色直方圖的camshift 算法[8]。針對(duì)跟蹤神經(jīng)絲蛋白易偏離的問(wèn)題,運(yùn)用改進(jìn)camshift 算法,取得了較好的跟蹤效果。
Camshaft 算法通過(guò)對(duì)于meanshift 算法的擴(kuò)展,使得其廣泛適用于連續(xù)圖像序列的目標(biāo)跟蹤問(wèn)題。Camshift 算法是根據(jù)目標(biāo)的顏色特征跟蹤目標(biāo),在跟蹤目標(biāo)之前先要建立目標(biāo)的顏色直方圖模型。
首先在轉(zhuǎn)換后的HSV 圖像中選擇初始搜索窗口,盡量使窗口剛好包含整個(gè)目標(biāo)。然后對(duì)搜索框內(nèi)的目標(biāo)圖像建立H 通道上的色調(diào)直方圖,作為目標(biāo)的顏色直方圖模型。在后續(xù)的跟蹤過(guò)程中通過(guò)對(duì)比候選區(qū)域像素點(diǎn)與目標(biāo)模型像素點(diǎn)可以得到該像素點(diǎn)為目標(biāo)像素點(diǎn)相似度概率,區(qū)域外的像素點(diǎn)的概率為0。將相似度概率按大小轉(zhuǎn)換為相應(yīng)的灰度值(0~255)就得到了反向投影圖。反向投影圖中越亮的像素點(diǎn)是目標(biāo)像素點(diǎn)的概率越大。設(shè)搜索窗口中像素點(diǎn)位置為(x,y),I(x,y)表示反向投影圖中像素點(diǎn)(x,y)的灰度值。定義搜索窗口的零階矩M00和一階矩M01、M10為:

則搜索窗口質(zhì)心的位置為:

根據(jù)M00調(diào)整搜索窗口的大小,移動(dòng)搜索窗口的中心到質(zhì)心位置,如果移動(dòng)距離大于設(shè)定的閥值,則再次計(jì)算搜索窗口新的質(zhì)心和M00,然后移動(dòng)窗口中心到新的質(zhì)心處并調(diào)整窗口尺寸。如此循環(huán)迭代,直到搜索窗口中心與當(dāng)前質(zhì)心間的距離小于設(shè)定的固定閥值,然后以最終質(zhì)心位置設(shè)定下一幀目標(biāo)搜索的初始位置,進(jìn)行后續(xù)圖片序列的目標(biāo)搜索。CamShift 算法在幀內(nèi)與幀間都根據(jù)上一步得到的M00自適應(yīng)調(diào)整搜索窗口的尺寸,因而可以適應(yīng)目標(biāo)變形的情況。
2.2.1 目標(biāo)建模
由于神經(jīng)絲蛋白目標(biāo)體積小,為長(zhǎng)條狀,在每幀圖像中只占極少部分,圖像中的大部分為暗色背景。將圖像轉(zhuǎn)換到HSV 空間[10]后,H 分量的圖像反映的是占圖像絕大部分的暗色背景的色調(diào)。因此通過(guò)對(duì)H 通道進(jìn)行采樣建立的目標(biāo)顏色直方圖模型并不包含目標(biāo)的特征。針對(duì)神經(jīng)絲蛋白質(zhì)圖像的特點(diǎn),先進(jìn)行圖像預(yù)處理。通過(guò)二值化處理使得目標(biāo)與背景區(qū)分更加明顯,同時(shí)也可消除大部分噪聲干擾。再將圖像轉(zhuǎn)換到HSV 空間后,V 分量的圖像就能明顯反映目標(biāo)特點(diǎn),然后對(duì)V 分量圖像進(jìn)行采樣建立目標(biāo)的顏色直方圖模型。
2.2.2 加權(quán)預(yù)處理
經(jīng)過(guò)二值化處理后的目標(biāo)區(qū)域各特征點(diǎn)像素值相同,無(wú)密度極大值點(diǎn),導(dǎo)致跟蹤易偏離目標(biāo)。為保證跟蹤的穩(wěn)定性,需要結(jié)合目標(biāo)在當(dāng)前幀的位置坐標(biāo)(x,y)與上一幀中目標(biāo)位置坐標(biāo)的差值對(duì)目標(biāo)在下一幀中的方位進(jìn)行預(yù)測(cè),并對(duì)預(yù)測(cè)點(diǎn)附近的目標(biāo)特征點(diǎn)像素值進(jìn)行加權(quán)處理:

式中:L(xi)—第i 個(gè)特征點(diǎn)距預(yù)測(cè)點(diǎn)的距離,這使得距離預(yù)測(cè)點(diǎn)位置較小的特征點(diǎn)具有較大的權(quán)值,反之亦然,如圖1 所示。

圖1 特征點(diǎn)像素值加權(quán)處理前(上)后(下)對(duì)比Fig.1 Comparison of Feature Point Pixel Value Weighting Before(upper)and After(bottom)
通過(guò)像素值加權(quán)處理后的目標(biāo)區(qū)域存在概率密度極大值點(diǎn),指示了均值漂移向量的方向,防止搜索方向偏離目標(biāo)。
2.2.3 搜索方式改進(jìn)
由于神經(jīng)絲蛋白的形態(tài)特征,通過(guò)上述預(yù)處理后,使得目標(biāo)搜索沿著神經(jīng)絲蛋白的軸向方向進(jìn)行。提高了算法的穩(wěn)定性。如果使用原始的camshift 算法直接計(jì)算搜索出口的質(zhì)心,那么目標(biāo)搜索的最終位置會(huì)收斂于最靠近預(yù)測(cè)點(diǎn)處,顯然與目標(biāo)中心的真實(shí)位置存在較大偏差。為解決這個(gè)問(wèn)題,在目標(biāo)的概率密度函數(shù)中引入核函數(shù)[6],按照核密度梯度進(jìn)行目標(biāo)搜索。以搜索點(diǎn)為中心點(diǎn),隨著meanshift 迭代搜索過(guò)程的進(jìn)行,逐步調(diào)整目標(biāo)區(qū)域各特征點(diǎn)的權(quán)值,使得對(duì)預(yù)測(cè)點(diǎn)附近特征點(diǎn)像素值加權(quán)處理的影響逐步淡化。此外,相較于一般的在RGB 顏色空間中進(jìn)行核密度梯度迭代計(jì)算的meanshift 算法,省去了相似度函數(shù)的計(jì)算,在提高算法精度的同時(shí)保證了算法的實(shí)時(shí)性。
設(shè)反向投影圖中采樣像素點(diǎn)合集為{xi},i=1…n,y 表示搜索窗口中心點(diǎn),K(x)表示該空間中的核函數(shù):

式中:D—空間向量維度,目標(biāo)區(qū)域的概率密度函數(shù)為:

式中:C—?dú)w一化常數(shù);
S(xi)—反向投影圖中采樣像素點(diǎn)xi的像素值(相似概率);
h—比例單位帶寬矩陣系數(shù)。
使用核函數(shù)的輪廓函數(shù),上式表示為:

令g(x)=-k′(x),將g(x)作為輪廓函數(shù),核函數(shù)G(x)可定義為G(x)=cg(|x|2),c 為歸一化常數(shù)。求取核密度梯度,經(jīng)化簡(jiǎn)得均值漂移向量[5-6]:

新的搜索窗口中心點(diǎn)位置為:

基于以上分析,改進(jìn)后的camshift 算法如下:
(1)圖像預(yù)處理,并轉(zhuǎn)換為HSV 圖像。
(2)選擇初始窗口,建立目標(biāo)顏色直方圖模型,并得到反向投影圖。結(jié)合預(yù)測(cè)點(diǎn),對(duì)目標(biāo)區(qū)域特征像素點(diǎn)加權(quán)處理。
(3)引入核函數(shù)調(diào)整各像素點(diǎn)權(quán)值,得到當(dāng)前窗口概率密度函數(shù),并計(jì)算均值漂移向量。
(4)按照均值漂移向量移動(dòng)當(dāng)前窗口中心y0到新的位置y1。
(5)當(dāng)mh,g(x)小于設(shè)定閾值,循環(huán)結(jié)束,進(jìn)入下一幀,否者返回(3)繼續(xù)執(zhí)行。
本次實(shí)驗(yàn)所用的神經(jīng)絲蛋白質(zhì)影像是在熒光顯微鏡下錄制的真實(shí)視頻。實(shí)驗(yàn)對(duì)比了卡爾曼濾波算法、標(biāo)準(zhǔn)粒子濾波算法、標(biāo)準(zhǔn)camshift 算法的跟蹤結(jié)果。
標(biāo)準(zhǔn)camshift 算法的跟蹤結(jié)果,如圖2 所示。由于神經(jīng)絲蛋白結(jié)構(gòu)的特殊性,未結(jié)合預(yù)測(cè)點(diǎn)加權(quán)的標(biāo)準(zhǔn)camshift 算法極易偏離目標(biāo),無(wú)法完成跟蹤過(guò)程。

圖2 標(biāo)準(zhǔn)camshift 算法跟蹤結(jié)果Fig.2 Tracking Results of Standard Camshift Algorithm
改進(jìn)camshift 算法在噪音干擾下的跟蹤結(jié)果,如圖3 所示。從圖中可以看出,定位目標(biāo)的窗口要稍大于理想情況下的定位窗口。這是由于噪點(diǎn)包含了與目標(biāo)類似的顏色信息,導(dǎo)致定位窗口中包含了少許多余的噪點(diǎn)。雖然定位窗口的尺寸精度受到了噪點(diǎn)較小的影響,但是仍具有較高的位置精度,算法具有較強(qiáng)魯棒性。

圖3 改進(jìn)camshift 算法在噪音干擾下的跟蹤結(jié)果Fig.3 Results of Improved Camshift Algorithm Under Noise Interference
標(biāo)準(zhǔn)粒子濾波算法與改進(jìn)camshift 算法的跟蹤結(jié)果,如圖4所示。粒子濾波算法的粒子數(shù)設(shè)置為100,采用狀態(tài)轉(zhuǎn)移先驗(yàn)分布為建議分布。其中選取了算法初始化階段、目標(biāo)速度變化階段、目標(biāo)變形階段的各幀結(jié)果圖像。跟蹤結(jié)果顯示,在目標(biāo)速度變化階段,傳統(tǒng)粒子濾波算法出現(xiàn)了較大的誤差。此外,簡(jiǎn)單的粒子參數(shù)設(shè)定并不能反映目標(biāo)的形態(tài)變化。

圖4 particle 算法(左)與改進(jìn)camshift 算法(右)結(jié)果對(duì)比Fig.4 Results Comparison of Pparticle Algorithm(left)and Improved Camshift Algorithm(right)
另一組實(shí)驗(yàn)中卡爾曼濾波算法與改進(jìn)camshift 算法的跟蹤結(jié)果,如圖5 所示。卡爾曼濾波算法采用背景差分檢測(cè)算法,檢測(cè)窗口大小設(shè)置為以預(yù)測(cè)點(diǎn)為中心邊長(zhǎng)為20 像素的正方形窗口。選取目標(biāo)變形階段的各幀結(jié)果圖像。卡爾曼濾波算法雖然能完成跟蹤任務(wù),但是依然無(wú)法反映目標(biāo)的形態(tài)變化。

圖5 改進(jìn)camshift(上)與kalman 算法(下)結(jié)果對(duì)比Fig.5 Results Comparison of Iimproved Camshift(top)and Kalman Filtering Algorithm(bottom)
上述3 種算法都能完成跟蹤任務(wù),通過(guò)數(shù)據(jù)對(duì)比分析,可以反映各種算法的跟蹤性能差異。為減少曲線重疊,每隔3 幀提取一幀中的跟蹤數(shù)據(jù)結(jié)果進(jìn)行對(duì)比分析。經(jīng)過(guò)50 次實(shí)驗(yàn)后,各算法對(duì)于目標(biāo)位置跟蹤精度誤差的平均值,以距離目標(biāo)真實(shí)位置的像素差衡量,如圖6 所示。從結(jié)果分析來(lái)看,camshift 算法的跟蹤精度最高,卡爾曼濾波算法在目標(biāo)速度變化階段跟蹤誤差較大。由于粒子退化等原因,標(biāo)準(zhǔn)粒子濾波算法在目標(biāo)跟蹤的后期階段誤差較大。

圖6 各算法目標(biāo)位置精度對(duì)比結(jié)果Fig.6 Comparison of Position Accuracy of Each Algorithm
各算法對(duì)于目標(biāo)速度跟蹤精度的對(duì)比,如圖7 所示。速度定義為幀間像素距離與幀間時(shí)間的比值,速度差定義為各算法所得的目標(biāo)速度與目標(biāo)真實(shí)速度的差值。從圖中可以看出標(biāo)準(zhǔn)粒子濾波的誤差波動(dòng)較大,雖然卡爾曼濾波算法的誤差波動(dòng)較小,但仍然明顯大于改進(jìn)camshift 算法。

圖7 各算法目標(biāo)速度精度對(duì)比結(jié)果Fig.7 Comparison of Speed Accuracy of Each Algorithm
各算法的運(yùn)算速度對(duì)比,如圖8 所示。從結(jié)果來(lái)看,在目標(biāo)運(yùn)動(dòng)狀態(tài)變化不大的情況下,卡爾曼濾波算法的運(yùn)算速度最快。但在目標(biāo)運(yùn)動(dòng)狀態(tài)變化較大的時(shí)候,卡爾曼濾波算法會(huì)出現(xiàn)較大波動(dòng),甚至丟失目標(biāo)。對(duì)于傳統(tǒng)粒子濾波,由于算法較為復(fù)雜,導(dǎo)致算法整體運(yùn)算速度較低。若要提高算法的精度,需要增加粒子數(shù)和優(yōu)化粒子重采樣策略。以至于算法運(yùn)算量增大,實(shí)時(shí)性很難保證。相較于其他兩種跟蹤算法,改進(jìn)camshift 算法雖然運(yùn)算速度有所降低,但是提高了算法的穩(wěn)定性,在整體的運(yùn)算速度上仍然優(yōu)于標(biāo)準(zhǔn)粒子濾波算法,且在目標(biāo)運(yùn)動(dòng)狀態(tài)變化時(shí)算法不會(huì)出現(xiàn)較大的波動(dòng),保證了跟蹤的穩(wěn)定性和實(shí)時(shí)性。

圖8 各算法運(yùn)算速度對(duì)比Fig.8 Comparison of Algorithm Speeds
由于神經(jīng)絲蛋白質(zhì)的形態(tài)及運(yùn)動(dòng)特性,對(duì)其的跟蹤觀測(cè)難度大。對(duì)比分析了兩類三種算法的跟蹤效果。適用于線性運(yùn)動(dòng)目標(biāo)跟蹤的卡爾曼濾波算法的穩(wěn)定性較差,不適合此類變速變形目標(biāo)的跟蹤。傳統(tǒng)粒子濾波算法較為復(fù)雜運(yùn)算速度低,而且由于粒子退化等原因,跟蹤階段后期效果較差。以上兩種簡(jiǎn)單的概率預(yù)測(cè)類方法都不能反映目標(biāo)形變。采用的camshift 算法引入了核函數(shù),在采樣像素點(diǎn)分布均勻的情況下結(jié)合預(yù)測(cè)點(diǎn)對(duì)目標(biāo)特征點(diǎn)加權(quán)處理,使得搜索沿著正確方向進(jìn)行,提高了算法的準(zhǔn)確性可靠性。