劉穎,王勁松,王苗
(長(zhǎng)春理工大學(xué) 光電工程學(xué)院,長(zhǎng)春 130022)
非接觸式眼壓計(jì)是醫(yī)療機(jī)構(gòu)常用的測(cè)量人體眼壓的計(jì)量器具,利用空氣脈沖噴射對(duì)眼角膜進(jìn)行壓平,將外加機(jī)械力替換為氣體壓力,通過空氣脈沖開始噴射到角膜達(dá)到壓平狀態(tài)的時(shí)間,對(duì)氣體壓力進(jìn)行計(jì)算,最后得到被測(cè)者壓眼的壓值從而測(cè)出眼壓數(shù)值[1-2]。眼壓測(cè)量的第一步就是識(shí)別跟蹤到人眼瞳孔才能進(jìn)行接下來的噴氣測(cè)量操作。在以往的跟蹤定位方法中,通常是使用單目攝像機(jī),得到跟蹤目標(biāo)對(duì)應(yīng)的二維坐標(biāo)。但是單目視覺獲取信息較少,距離信息在環(huán)境中存在干擾的情況下,無法準(zhǔn)確計(jì)算。當(dāng)前常采用雙目攝像機(jī)進(jìn)行定位,對(duì)兩圖像中目標(biāo)分別進(jìn)行跟蹤,然后對(duì)跟蹤結(jié)果進(jìn)行特征點(diǎn)坐標(biāo)提取,對(duì)空間點(diǎn)進(jìn)行三維坐標(biāo)計(jì)算。傳統(tǒng)的Mean-Shift算法對(duì)人眼圖像進(jìn)行處理,對(duì)瞳孔進(jìn)行跟蹤過程中,有跟蹤目標(biāo)丟失現(xiàn)象[3]。對(duì)其造成原因進(jìn)行分析可知,采用均值漂移跟蹤算法跟蹤目標(biāo)時(shí),是以前一幀的目標(biāo)中心作為當(dāng)前幀初始搜索中心,對(duì)其周圍局部范圍內(nèi)尋找最佳匹配,若目標(biāo)靜止或移動(dòng)速度較慢,則可以利用Mean-Shift算法找到跟蹤目標(biāo)[3-5]。但若目標(biāo)移動(dòng)速度較快,使用前一幀確定的中點(diǎn),確定本幀圖像開始進(jìn)行處理的中點(diǎn),則可能會(huì)造成目標(biāo)搜索失敗,最終導(dǎo)致目標(biāo)跟蹤失敗。眼球的轉(zhuǎn)動(dòng)在攝像機(jī)近距離拍攝的情況下可看作是快速轉(zhuǎn)動(dòng)的過程,需要對(duì)Mean-Shift算法進(jìn)行優(yōu)化,以達(dá)到不會(huì)丟失瞳孔目標(biāo)實(shí)現(xiàn)人眼瞳孔的精確跟蹤目的。
本文眼球跟蹤系統(tǒng)的組成原理圖如圖1所示。紅外LED光源在人眼左右對(duì)稱地放置,交替發(fā)射,確保圖像中只出現(xiàn)一個(gè)光斑,照射人眼會(huì)產(chǎn)生亮暗瞳效應(yīng),方便瞳孔定位。兩個(gè)微距攝像頭用于立體視覺定位,并且滿足在非接觸眼壓計(jì)眼科儀器使用距離內(nèi)對(duì)人眼進(jìn)行準(zhǔn)確定位,使人眼在兩個(gè)相機(jī)同時(shí)成像,采集人眼圖像。PC端對(duì)兩端采集到的圖像分別處理,得到人眼瞳孔特征點(diǎn)坐標(biāo)與區(qū)域,然后對(duì)兩圖像中特征點(diǎn)進(jìn)行提取匹配,得到人眼瞳孔三維位置的變化,對(duì)人眼目標(biāo)進(jìn)行實(shí)時(shí)追蹤。同時(shí)將信號(hào)傳至下位機(jī),驅(qū)動(dòng)三軸電機(jī)控制跟蹤部分進(jìn)行移動(dòng),調(diào)整系統(tǒng)與人眼的位置,最終完成對(duì)人眼的追蹤對(duì)準(zhǔn)。

圖1 系統(tǒng)組成原理圖
此系統(tǒng)先對(duì)人眼圖像進(jìn)行處理,對(duì)瞳孔的三維信息進(jìn)行計(jì)算,然后通過選取合適的跟蹤算法對(duì)瞳孔部分進(jìn)行跟蹤,來提高系統(tǒng)檢測(cè)跟蹤定位人眼的效率。
利用簡(jiǎn)單的幀差法可很方便地得到待追蹤物體的位置等信息,據(jù)此可以明確候選模型中待跟蹤物體的大致初始范圍。以此對(duì)物體進(jìn)行進(jìn)一步追蹤,在獲得區(qū)域的基礎(chǔ)上,對(duì)物體此時(shí)在當(dāng)前幀上的大致輪廓和所在區(qū)域進(jìn)行搜索,以防物體移動(dòng)過快時(shí),局部搜索區(qū)域搜索不到物體[6-7],對(duì)傳統(tǒng)Mean-Shift算法可能導(dǎo)致物體追蹤失敗的情況有所幫助。
為了更好地對(duì)候選模型搜索的初始位置進(jìn)行估計(jì),本文使用前一幀求得的目標(biāo)輪廓中心,和當(dāng)前幀運(yùn)動(dòng)輪廓的中心,作為候選模型計(jì)算初始位置的依據(jù)[3]。如圖2所示,A為上幀圖片采用Mean-Shift算法解出的物體中心,B為對(duì)本幀與上幀圖像利用幀差法進(jìn)行差分所得圖像的中心,C為要求解的本幀物體的中心。設(shè)速度為勻速,則C點(diǎn)坐標(biāo)進(jìn)可通過A和B進(jìn)行估計(jì)。

圖2 幀差法計(jì)算當(dāng)前幀候選模型初始位置示意圖

以式(1)得到的C點(diǎn)估計(jì)值可以確定本幀的搜索區(qū)域,用Mean-Shift算法可計(jì)算出本幀圖像中目標(biāo)物體的真實(shí)中心點(diǎn)。
幀差法和Mean-Shift算法相結(jié)合的改進(jìn)算法具體計(jì)算步驟如下所示:
(1)首先根據(jù)瞳孔定位算法對(duì)圖像進(jìn)行處理,得到當(dāng)前幀圖像中人眼瞳孔的位置,由式(2)建立初始中心位置f0及目標(biāo)模型qu:

(2)在物體移動(dòng)的過程[8]中,以上幀圖像求得的中心點(diǎn)f0,確定本幀圖像的搜索的中心點(diǎn)f和區(qū)域pu,對(duì)兩區(qū)域間的相似度通過公式(3)進(jìn)行求解,確定其接近程度:

(3)由公式(4)對(duì)區(qū)域內(nèi)像素點(diǎn)的wi進(jìn)行計(jì)算:

(4)重新計(jì)算當(dāng)前幀候選目標(biāo)中心fk+1;
(5)重新對(duì)當(dāng)前幀的相似度函數(shù)ρ(p,q)進(jìn)行計(jì)算;
(6)設(shè)定閾值,判斷相似度與該值大小,若小于該閾值,則完成搜索,目標(biāo)在圖像上位置即為fk+1;若大于該閾值,則重新進(jìn)行第(3)步,直到小于設(shè)定的閾值;
(7)當(dāng)視頻進(jìn)入新的一幀的時(shí)候,跳到第(2)步,對(duì)新的一幀視頻進(jìn)行處理,直到視頻結(jié)束[4]。
本系統(tǒng)跟蹤算法的流程圖如圖3所示。

圖3 改進(jìn)算法實(shí)現(xiàn)流程圖
與Mean-Shift算法相比,將幀差法運(yùn)用到Mean-Shift運(yùn)算中,極大程度改善了在人眼跟蹤過程中可能產(chǎn)生的人眼檢測(cè)失敗的現(xiàn)象,跟蹤效果較好。
利用圖1所示系統(tǒng)對(duì)瞳孔轉(zhuǎn)動(dòng)的人眼圖像進(jìn)行拍攝,使用到的匯聚式雙目攝像相機(jī)為可變基線USB2.0雙目視覺攝像機(jī),如圖4所示。將兩攝像機(jī)基線即光心距離[9]設(shè)置為200 mm。取拍攝視頻其中一段200幀的圖像測(cè)試Mean-Shift改進(jìn)跟蹤算法。首先對(duì)人眼即瞳孔進(jìn)行定位,在圖像第一幀上用十字標(biāo)出瞳孔中心,作為跟蹤目標(biāo)的中心,虹膜區(qū)域用方框表示,即為跟蹤目標(biāo)區(qū)域[3]。對(duì)每?jī)煞鶊D像之間進(jìn)行差分運(yùn)算,得到追蹤物體的中心,加上前一幀求得的目標(biāo)輪廓中心,一起對(duì)當(dāng)前幀初始中心進(jìn)行估計(jì),再對(duì)本幀的真實(shí)物體中心進(jìn)行計(jì)算,反復(fù)迭代下去,實(shí)現(xiàn)對(duì)人眼輪廓的跟蹤。在跟蹤過程中,同時(shí)對(duì)兩攝像機(jī)進(jìn)行跟蹤處理,且左右攝像機(jī)采用完全相同的系統(tǒng),因此本文僅以左攝像機(jī)拍攝圖片為例,對(duì)樣本和數(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)行人眼跟蹤實(shí)驗(yàn)驗(yàn)證,三種算法運(yùn)行過程中數(shù)據(jù)如表1所示,幀差法平均誤差與其他兩算法相比較大,但由于幀差法是通過對(duì)兩幀圖像進(jìn)行簡(jiǎn)單的差分處理,因此每幀計(jì)算時(shí)間最少。從表1中可知,Mean-Shift算法對(duì)跟蹤目標(biāo)的平均誤差為0.089 2 mm,與幀差法誤差[10]小,其每幀搜索時(shí)間和迭代次數(shù)較大,取前一幀輪廓中心對(duì)本幀進(jìn)行局部搜索,所需時(shí)間較多。采用幀差法和Mean-Shift的結(jié)合算法,由于估計(jì)的初始中心與實(shí)際中心更為接近,所以搜索時(shí)間、迭代次數(shù)和跟蹤誤差都有所降低。

表1 采用三種算法跟蹤效率比較表
本次實(shí)驗(yàn)驗(yàn)證了采用幀差法和Mean-Shift相結(jié)合的算法,比原本算法具有更高的追蹤精度,且減少了運(yùn)行時(shí)間和計(jì)算量。
實(shí)驗(yàn)平臺(tái)搭建如圖6所示,三軸電機(jī)的位移分辨率為0.01 mm,以滿足跟蹤系統(tǒng)精度要求。根據(jù)電機(jī)的轉(zhuǎn)動(dòng)情況如公式(5)所示,可以對(duì)系統(tǒng)總體的運(yùn)動(dòng)狀態(tài)進(jìn)行求解。

圖6 實(shí)驗(yàn)裝置圖

式中,為矢量,代表系統(tǒng)總體的運(yùn)動(dòng)狀態(tài);Ex,Ey,Ez為標(biāo)量,代表三個(gè)電機(jī)的使能狀態(tài),分為1和 0;分別表示X、Y、Z三個(gè)電機(jī)的轉(zhuǎn)動(dòng)速度。本系統(tǒng)選用的脈沖電機(jī)型號(hào)及內(nèi)部參數(shù)均相同,且選擇相同脈沖信號(hào),因此有,即轉(zhuǎn)動(dòng)速度相同,因此可以計(jì)算出系統(tǒng)的運(yùn)動(dòng)狀態(tài)[11]。
通過模擬眼對(duì)系統(tǒng)跟蹤情況進(jìn)行實(shí)驗(yàn),模擬眼與雙目相機(jī)位于同一三維坐標(biāo)系里,并在可測(cè)量移動(dòng)范圍內(nèi),進(jìn)行小幅度移動(dòng),確保其在兩成像面中均存在,且對(duì)其移動(dòng)過程中的位置進(jìn)行實(shí)時(shí)測(cè)量并記錄。采集6 s雙攝像頭拍攝的圖像數(shù)據(jù)并進(jìn)行保存,對(duì)運(yùn)行過程中數(shù)據(jù)進(jìn)行部分展示并對(duì)其進(jìn)行分析,如表2所示。

表2 跟蹤數(shù)據(jù)
其中,誤差值為三方向上誤差的總值,即與人眼觀測(cè)點(diǎn)的距離向量。從表2中可知,眼球跟蹤系統(tǒng)與目標(biāo)模擬眼間的空間位置誤差不超過0.1 mm,滿足了系統(tǒng)跟蹤精度,驗(yàn)證了運(yùn)用本系統(tǒng)對(duì)人眼進(jìn)行追蹤時(shí)具有可靠性。
實(shí)時(shí)性測(cè)試主要是測(cè)試系統(tǒng)對(duì)人眼進(jìn)行定位并跟蹤所使用的時(shí)間,在距離雙目攝像機(jī)不同距離和位置處對(duì)系統(tǒng)跟蹤耗時(shí)進(jìn)行測(cè)試,并記錄跟蹤時(shí)間。圖7所示為目標(biāo)距離雙目視覺系統(tǒng)的距離與跟蹤完成耗時(shí)的關(guān)系。

圖7 跟蹤耗時(shí)圖
圖7中橫坐標(biāo)為模擬眼與系統(tǒng)中心(兩攝像機(jī)基線中點(diǎn))的距離,縱坐標(biāo)為系統(tǒng)進(jìn)行跟蹤所用時(shí)間。從圖中可得知,模擬眼與系統(tǒng)中心間距為3~5cm內(nèi)時(shí),對(duì)其進(jìn)行追蹤的平均耗時(shí)皆在1 s范圍內(nèi),證明本系統(tǒng)實(shí)時(shí)性較強(qiáng),滿足系統(tǒng)對(duì)人眼進(jìn)行實(shí)時(shí)跟蹤的要求。
基于非接觸式眼壓計(jì)匯聚式雙目視覺的人眼瞳孔跟蹤系統(tǒng),分析幀差法、Mean-Shift算法的優(yōu)缺點(diǎn),提出了幀差法和Mean-Shift算法相結(jié)合的算法。通過算法間的對(duì)比,驗(yàn)證了本文提出的跟蹤算法的優(yōu)化性和準(zhǔn)確性,并利用應(yīng)用了改進(jìn)算法的跟蹤系統(tǒng)跟蹤模擬眼測(cè)試了其可靠性和實(shí)時(shí)性,進(jìn)一步驗(yàn)證了改進(jìn)算法提升了跟蹤系統(tǒng)后續(xù)進(jìn)行立體匹配和三維重建工作的準(zhǔn)確性,使得非接觸眼壓計(jì)能夠?qū)崟r(shí)、準(zhǔn)確地對(duì)人眼進(jìn)行跟蹤。