劉穎,王勁松,王苗
(長春理工大學(xué) 光電工程學(xué)院,長春 130022)
非接觸式眼壓計是醫(yī)療機(jī)構(gòu)常用的測量人體眼壓的計量器具,利用空氣脈沖噴射對眼角膜進(jìn)行壓平,將外加機(jī)械力替換為氣體壓力,通過空氣脈沖開始噴射到角膜達(dá)到壓平狀態(tài)的時間,對氣體壓力進(jìn)行計算,最后得到被測者壓眼的壓值從而測出眼壓數(shù)值[1-2]。眼壓測量的第一步就是識別跟蹤到人眼瞳孔才能進(jìn)行接下來的噴氣測量操作。在以往的跟蹤定位方法中,通常是使用單目攝像機(jī),得到跟蹤目標(biāo)對應(yīng)的二維坐標(biāo)。但是單目視覺獲取信息較少,距離信息在環(huán)境中存在干擾的情況下,無法準(zhǔn)確計算。當(dāng)前常采用雙目攝像機(jī)進(jìn)行定位,對兩圖像中目標(biāo)分別進(jìn)行跟蹤,然后對跟蹤結(jié)果進(jìn)行特征點坐標(biāo)提取,對空間點進(jìn)行三維坐標(biāo)計算。傳統(tǒng)的Mean-Shift算法對人眼圖像進(jìn)行處理,對瞳孔進(jìn)行跟蹤過程中,有跟蹤目標(biāo)丟失現(xiàn)象[3]。對其造成原因進(jìn)行分析可知,采用均值漂移跟蹤算法跟蹤目標(biāo)時,是以前一幀的目標(biāo)中心作為當(dāng)前幀初始搜索中心,對其周圍局部范圍內(nèi)尋找最佳匹配,若目標(biāo)靜止或移動速度較慢,則可以利用Mean-Shift算法找到跟蹤目標(biāo)[3-5]。但若目標(biāo)移動速度較快,使用前一幀確定的中點,確定本幀圖像開始進(jìn)行處理的中點,則可能會造成目標(biāo)搜索失敗,最終導(dǎo)致目標(biāo)跟蹤失敗。眼球的轉(zhuǎn)動在攝像機(jī)近距離拍攝的情況下可看作是快速轉(zhuǎn)動的過程,需要對Mean-Shift算法進(jìn)行優(yōu)化,以達(dá)到不會丟失瞳孔目標(biāo)實現(xiàn)人眼瞳孔的精確跟蹤目的。
本文眼球跟蹤系統(tǒng)的組成原理圖如圖1所示。紅外LED光源在人眼左右對稱地放置,交替發(fā)射,確保圖像中只出現(xiàn)一個光斑,照射人眼會產(chǎn)生亮暗瞳效應(yīng),方便瞳孔定位。兩個微距攝像頭用于立體視覺定位,并且滿足在非接觸眼壓計眼科儀器使用距離內(nèi)對人眼進(jìn)行準(zhǔn)確定位,使人眼在兩個相機(jī)同時成像,采集人眼圖像。PC端對兩端采集到的圖像分別處理,得到人眼瞳孔特征點坐標(biāo)與區(qū)域,然后對兩圖像中特征點進(jìn)行提取匹配,得到人眼瞳孔三維位置的變化,對人眼目標(biāo)進(jìn)行實時追蹤。同時將信號傳至下位機(jī),驅(qū)動三軸電機(jī)控制跟蹤部分進(jìn)行移動,調(diào)整系統(tǒng)與人眼的位置,最終完成對人眼的追蹤對準(zhǔn)。
圖1 系統(tǒng)組成原理圖
此系統(tǒng)先對人眼圖像進(jìn)行處理,對瞳孔的三維信息進(jìn)行計算,然后通過選取合適的跟蹤算法對瞳孔部分進(jìn)行跟蹤,來提高系統(tǒng)檢測跟蹤定位人眼的效率。
利用簡單的幀差法可很方便地得到待追蹤物體的位置等信息,據(jù)此可以明確候選模型中待跟蹤物體的大致初始范圍。以此對物體進(jìn)行進(jìn)一步追蹤,在獲得區(qū)域的基礎(chǔ)上,對物體此時在當(dāng)前幀上的大致輪廓和所在區(qū)域進(jìn)行搜索,以防物體移動過快時,局部搜索區(qū)域搜索不到物體[6-7],對傳統(tǒng)Mean-Shift算法可能導(dǎo)致物體追蹤失敗的情況有所幫助。
為了更好地對候選模型搜索的初始位置進(jìn)行估計,本文使用前一幀求得的目標(biāo)輪廓中心,和當(dāng)前幀運(yùn)動輪廓的中心,作為候選模型計算初始位置的依據(jù)[3]。如圖2所示,A為上幀圖片采用Mean-Shift算法解出的物體中心,B為對本幀與上幀圖像利用幀差法進(jìn)行差分所得圖像的中心,C為要求解的本幀物體的中心。設(shè)速度為勻速,則C點坐標(biāo)進(jìn)可通過A和B進(jìn)行估計。
圖2 幀差法計算當(dāng)前幀候選模型初始位置示意圖
以式(1)得到的C點估計值可以確定本幀的搜索區(qū)域,用Mean-Shift算法可計算出本幀圖像中目標(biāo)物體的真實中心點。
幀差法和Mean-Shift算法相結(jié)合的改進(jìn)算法具體計算步驟如下所示:
(1)首先根據(jù)瞳孔定位算法對圖像進(jìn)行處理,得到當(dāng)前幀圖像中人眼瞳孔的位置,由式(2)建立初始中心位置f0及目標(biāo)模型qu:
(2)在物體移動的過程[8]中,以上幀圖像求得的中心點f0,確定本幀圖像的搜索的中心點f和區(qū)域pu,對兩區(qū)域間的相似度通過公式(3)進(jìn)行求解,確定其接近程度:
(3)由公式(4)對區(qū)域內(nèi)像素點的wi進(jìn)行計算:
(4)重新計算當(dāng)前幀候選目標(biāo)中心fk+1;
(5)重新對當(dāng)前幀的相似度函數(shù)ρ(p,q)進(jìn)行計算;
(6)設(shè)定閾值,判斷相似度與該值大小,若小于該閾值,則完成搜索,目標(biāo)在圖像上位置即為fk+1;若大于該閾值,則重新進(jìn)行第(3)步,直到小于設(shè)定的閾值;
(7)當(dāng)視頻進(jìn)入新的一幀的時候,跳到第(2)步,對新的一幀視頻進(jìn)行處理,直到視頻結(jié)束[4]。
本系統(tǒng)跟蹤算法的流程圖如圖3所示。
圖3 改進(jìn)算法實現(xiàn)流程圖
與Mean-Shift算法相比,將幀差法運(yùn)用到Mean-Shift運(yùn)算中,極大程度改善了在人眼跟蹤過程中可能產(chǎn)生的人眼檢測失敗的現(xiàn)象,跟蹤效果較好。
利用圖1所示系統(tǒng)對瞳孔轉(zhuǎn)動的人眼圖像進(jìn)行拍攝,使用到的匯聚式雙目攝像相機(jī)為可變基線USB2.0雙目視覺攝像機(jī),如圖4所示。將兩攝像機(jī)基線即光心距離[9]設(shè)置為200 mm。取拍攝視頻其中一段200幀的圖像測試Mean-Shift改進(jìn)跟蹤算法。首先對人眼即瞳孔進(jìn)行定位,在圖像第一幀上用十字標(biāo)出瞳孔中心,作為跟蹤目標(biāo)的中心,虹膜區(qū)域用方框表示,即為跟蹤目標(biāo)區(qū)域[3]。對每兩幅圖像之間進(jìn)行差分運(yùn)算,得到追蹤物體的中心,加上前一幀求得的目標(biāo)輪廓中心,一起對當(dāng)前幀初始中心進(jìn)行估計,再對本幀的真實物體中心進(jìn)行計算,反復(fù)迭代下去,實現(xiàn)對人眼輪廓的跟蹤。在跟蹤過程中,同時對兩攝像機(jī)進(jìn)行跟蹤處理,且左右攝像機(jī)采用完全相同的系統(tǒng),因此本文僅以左攝像機(jī)拍攝圖片為例,對樣本和數(shù)據(jù)進(jìn)行分析。Mean-Shift改算法跟蹤目標(biāo)效果如圖5所示。
圖4 可變基線USB2.0雙目視覺相機(jī)
圖5 Mean-Shift改進(jìn)算法瞳孔目標(biāo)跟蹤效果圖
使用幀差法、Mean-Shift算法和改進(jìn)算法三種方法分別進(jìn)行人眼跟蹤實驗驗證,三種算法運(yùn)行過程中數(shù)據(jù)如表1所示,幀差法平均誤差與其他兩算法相比較大,但由于幀差法是通過對兩幀圖像進(jìn)行簡單的差分處理,因此每幀計算時間最少。從表1中可知,Mean-Shift算法對跟蹤目標(biāo)的平均誤差為0.089 2 mm,與幀差法誤差[10]小,其每幀搜索時間和迭代次數(shù)較大,取前一幀輪廓中心對本幀進(jìn)行局部搜索,所需時間較多。采用幀差法和Mean-Shift的結(jié)合算法,由于估計的初始中心與實際中心更為接近,所以搜索時間、迭代次數(shù)和跟蹤誤差都有所降低。
表1 采用三種算法跟蹤效率比較表
本次實驗驗證了采用幀差法和Mean-Shift相結(jié)合的算法,比原本算法具有更高的追蹤精度,且減少了運(yùn)行時間和計算量。
實驗平臺搭建如圖6所示,三軸電機(jī)的位移分辨率為0.01 mm,以滿足跟蹤系統(tǒng)精度要求。根據(jù)電機(jī)的轉(zhuǎn)動情況如公式(5)所示,可以對系統(tǒng)總體的運(yùn)動狀態(tài)進(jìn)行求解。
圖6 實驗裝置圖
式中,為矢量,代表系統(tǒng)總體的運(yùn)動狀態(tài);Ex,Ey,Ez為標(biāo)量,代表三個電機(jī)的使能狀態(tài),分為1和 0;分別表示X、Y、Z三個電機(jī)的轉(zhuǎn)動速度。本系統(tǒng)選用的脈沖電機(jī)型號及內(nèi)部參數(shù)均相同,且選擇相同脈沖信號,因此有,即轉(zhuǎn)動速度相同,因此可以計算出系統(tǒng)的運(yùn)動狀態(tài)[11]。
通過模擬眼對系統(tǒng)跟蹤情況進(jìn)行實驗,模擬眼與雙目相機(jī)位于同一三維坐標(biāo)系里,并在可測量移動范圍內(nèi),進(jìn)行小幅度移動,確保其在兩成像面中均存在,且對其移動過程中的位置進(jìn)行實時測量并記錄。采集6 s雙攝像頭拍攝的圖像數(shù)據(jù)并進(jìn)行保存,對運(yùn)行過程中數(shù)據(jù)進(jìn)行部分展示并對其進(jìn)行分析,如表2所示。
表2 跟蹤數(shù)據(jù)
其中,誤差值為三方向上誤差的總值,即與人眼觀測點的距離向量。從表2中可知,眼球跟蹤系統(tǒng)與目標(biāo)模擬眼間的空間位置誤差不超過0.1 mm,滿足了系統(tǒng)跟蹤精度,驗證了運(yùn)用本系統(tǒng)對人眼進(jìn)行追蹤時具有可靠性。
實時性測試主要是測試系統(tǒng)對人眼進(jìn)行定位并跟蹤所使用的時間,在距離雙目攝像機(jī)不同距離和位置處對系統(tǒng)跟蹤耗時進(jìn)行測試,并記錄跟蹤時間。圖7所示為目標(biāo)距離雙目視覺系統(tǒng)的距離與跟蹤完成耗時的關(guān)系。
圖7 跟蹤耗時圖
圖7中橫坐標(biāo)為模擬眼與系統(tǒng)中心(兩攝像機(jī)基線中點)的距離,縱坐標(biāo)為系統(tǒng)進(jìn)行跟蹤所用時間。從圖中可得知,模擬眼與系統(tǒng)中心間距為3~5cm內(nèi)時,對其進(jìn)行追蹤的平均耗時皆在1 s范圍內(nèi),證明本系統(tǒng)實時性較強(qiáng),滿足系統(tǒng)對人眼進(jìn)行實時跟蹤的要求。
基于非接觸式眼壓計匯聚式雙目視覺的人眼瞳孔跟蹤系統(tǒng),分析幀差法、Mean-Shift算法的優(yōu)缺點,提出了幀差法和Mean-Shift算法相結(jié)合的算法。通過算法間的對比,驗證了本文提出的跟蹤算法的優(yōu)化性和準(zhǔn)確性,并利用應(yīng)用了改進(jìn)算法的跟蹤系統(tǒng)跟蹤模擬眼測試了其可靠性和實時性,進(jìn)一步驗證了改進(jìn)算法提升了跟蹤系統(tǒng)后續(xù)進(jìn)行立體匹配和三維重建工作的準(zhǔn)確性,使得非接觸眼壓計能夠?qū)崟r、準(zhǔn)確地對人眼進(jìn)行跟蹤。