廉治文,劉 祎,張 權,
(1. 中北大學 信息與通信工程學院,山西 太原030051;2. 中北大學 生物醫(yī)學成像與影像大數(shù)據(jù)山西省重點實驗室,山西 太原 030051)
眼睛的健康問題被認為是人類生存質(zhì)量的三大問題之一. 驗光儀是通過檢測眼睛相關參數(shù)來進行精準配鏡的重要儀器[1]. 基于嵌入式系統(tǒng)的全自動驗光儀需準確定位采集的實時圖像中的人眼靶環(huán)中心,處理器根據(jù)返回的中心坐標控制電機將人眼定位到顯示屏幕中心. 準確性高的靶環(huán)中心定位算法對驗光儀配鏡具有十分重要的作用.
當前,隨機樣本一致算法( RANSAC)、霍夫變換(Hough)、隨機霍夫變換等方法仍然是國內(nèi)外常用的靶環(huán)圓中心檢測方法. 其中,RANSAC是基于幾何與隨機性來尋找圖像中的圓,RANSAC中隨機抽樣的目的是使所估計的圓模型盡可能包含更多的邊緣點,許多研究者仍側(cè)重于改進隨機選取邊緣點的策略或優(yōu)化相關的圓模型,但這并不能規(guī)避效率低、魯棒性較差的問題[2-3]. 傳統(tǒng)Hough變換幾乎不可能應用于實際,因為該方法的參數(shù)空間為三維,計算量大、占用大量的內(nèi)存空間,導致檢測速度慢、效率低. 有研究者在現(xiàn)有方法中加入圖像邊緣梯度信息,時間得到提升,但檢測精度下降、魯棒性降低、不適合實時檢測[4]. 隨機Hough目前面臨著與RANSAC同樣的問題,需要盡可能地擬合到較多的點,對邊緣存在缺陷圓的檢測的準確性無法保證,一些研究者將隨機Hough與亞像素相結(jié)合以提高抗干擾性,解決了魯棒性的問題,但對于時間的提升有限[5-6]. 通常以低成本單片機為處理器的驗光儀所采集的靶環(huán)圖像會存在眼睫毛遮擋或半閉眼等缺陷,因此,這類傳統(tǒng)方法會出現(xiàn)漏檢率較高,定位不準確等問題,難以滿足全自動驗光儀實時檢測的需求[7-10].
針對靶環(huán)圖像復雜度較低、靶環(huán)特征明顯的特點,本文提出了一種適用于嵌入式硬件系統(tǒng)實時處理的全自動驗光儀靶環(huán)中心定位算法.
依據(jù)靶環(huán)圖像的特點,本文通過構造模板在整幅圖像上進行匹配,依據(jù)匹配計算得到的相關系數(shù)來確定中心,處理器根據(jù)返回的中心坐標控制伺服電機移動來實現(xiàn)靶環(huán)中心的實時檢測. 算法主要包括中心粗定位及中心坐標校正兩個階段,詳細流程如圖1 所示.
圖1 整體算法流程圖Fig.1 Algorithm flow chart
算法首先基于構造模板進行匹配操作,得到靶環(huán)中心粗定位坐標,主要包括以下部分:
1) 模板構造. 依據(jù)靶環(huán)圖像特點,選取特征清晰、大小為m×n且包含靶環(huán)下半圓弧的矩形作為模板,其中長為m,寬為n.同時考慮模板的普適性,本文根據(jù)采集到的靶環(huán)圖像的特點最終構造了由兩個大小不同模板構成的組合模板.對采集的實際靶環(huán)圖像進行大量實驗驗證,可以得出模板T2為0.8倍的T1時效果最佳,由此確定組合模板為{T1,T2}.在匹配運算過程中,依據(jù)計算結(jié)果自適應選擇模板T1或T2.
2) 圖像預處理. 由于靶環(huán)圖像較大,為了降低運算量,提高算法實時性,根據(jù)靶環(huán)圖像的特點對其進行隔行隔列采樣. 同時,為了在不影響靶環(huán)邊緣信息的情況下降低噪聲的影響,使用中值濾波進行平滑處理.
3) 匹配運算. 在匹配運算時,首先選擇模板T1,以圖像左上點為起點,計算其與滑動過程中對應的圖像塊Iblock的相關系數(shù)R(x,y),并以步長1進行滑動,遍歷整幅靶環(huán)圖像. 在匹配過程中,為了消除數(shù)據(jù)特征之間差異性的影響,采用基于模板與對應圖像塊內(nèi)積運算的歸一化匹配法匹配相關系數(shù),定義為[11-14]
cosα=R(x,y)=
(1)
式中:0 4) 中心粗定位.匹配運算遍歷完整幅圖像后,在得到的相關系數(shù)曲面圖中確定最大峰值,并進行閾值判斷:若峰值小于設定閾值,則選取另一個模板T2重復步驟3),進行二次匹配運算;否則,匹配運算完成,得到靶環(huán)中心的粗定位結(jié)果,并記錄相關系數(shù)最大峰值在原圖像中的坐標為(x,y),以便進行后續(xù)校正計算. 對于閾值的設定要根據(jù)實際情況來確定,由于全自動驗光儀各項參數(shù)基本確定,人眼靶環(huán)的大小不會有較大偏差,本文通過對所采集的各種情況的靶環(huán)圖像進行驗證,選取合適的閾值進行判定. 為了提高定位的準確性,對粗定位結(jié)果進行校正:以C(x,y)為左上像素坐標,在原圖中截取一靶環(huán)圖像塊,如圖2 所示. 由圖可知,靶環(huán)圖像具有內(nèi)部灰度值較低、邊緣亮環(huán)明顯的特點,故采用投影法來確定靶環(huán)邊緣位置,從而進行中心坐標校正. 算法主要包括投影、投影特征波峰識別及校正結(jié)果計算. 圖2 靶環(huán)圖像塊Fig.2 Image of target ring 1) 投影運算. 對圖2靶環(huán)圖像進行垂直方向灰度值投影,并進行平滑處理后,得到如圖3 所示的投影曲線. 由圖可見,靶環(huán)邊緣位置處特征明顯. 2) 特征波峰識別. 針對圖像靶環(huán)識別特點,在比較識別最大值法[10]的基礎上進行改進,以識別圖3中對應靶環(huán)位置的兩個最大波峰: 以F=[f1,f2,f3...,fn]表示圖3 投影.對F進行差分運算,得到 D′=fi+1-fi. (2) 采用符號函數(shù)將D′歸一為-1, 0, 1. 本文使用符號函數(shù)將差分的具體幅值歸一到-1, 0, 1. 為避免比較法對一些數(shù)據(jù)可能失效的問題,直接把歸一化后為0的值置為前一個非0值,即 (3) 在此基礎上,最終對D進行二次差分,值為-2處即為波峰位置,而值為2處則為波谷位置,從而確定目標波峰的位置,即靶環(huán)左右邊界的位置信息. 圖3 矩形灰度值投影Fig.3 Rectangular gray value projection 3) 校正結(jié)果計算. 基于式(2)確定的靶環(huán)邊緣左右位置分別為LEdge、REdge,則(REdge-LEdge)/2為靶環(huán)圖像中心的橫向坐標,在整幅圖像中的橫向坐標為x0=x+(REdge-LEdge)/2;然后,以x0為中心縱向取長度為m的目標區(qū)域進行水平方向灰度值投影,并進行與計算靶環(huán)坐標x0類似的處理,確定靶環(huán)邊緣上下信息分別為TEdge、DEdge,從而得到靶環(huán)縱向中心坐標y0=y+(TEdge-DEdge)/2.校正后的中心坐標為 (x0,y0). 實驗中,分別用傳統(tǒng)Hough、RANSAC及本文算法進行中心檢測. 在Windows平臺中應用MATLAB 2017b進行算法研究,而實際應用中將代碼翻譯成C語言以適應嵌入式平臺,轉(zhuǎn)換為C語言的算法在嵌入式單片機中占據(jù)的空間大小只有10 KB,極易移植與部署使用. 檢測圖像選用驗光儀實際采集的真實人眼、模擬人眼圖像以及構造的已知中心的模擬靶環(huán)圖像. 為了驗證本文算法檢測結(jié)果的準確性,構造了已知中心的仿真靶環(huán)(包括無睫毛遮擋、有睫毛遮擋),靶環(huán)中心坐標為(130,150),運用以上三種方法分別對已知中心位的仿真靶環(huán)圖像進行檢測,結(jié)果如圖4 所示. 圖4 制作的已知中心的靶環(huán)圖像Fig.4 Produced image of known central target ring 由表1 的定量檢測結(jié)果可知,對于無眼睫毛遮擋的仿真靶環(huán)圖像,三種算法的準確性相當,而本文算法運算時間最短;而對于眼睫毛遮的圖像,雖然檢測的準確性均變化不大,但前兩種算法,尤其是RANSAC的運算時間明顯增加,而且由遮擋造成的部分信息缺失會使檢測出現(xiàn)漏檢的情況. 相比較而言,本文算法無漏檢情況,穩(wěn)定性好,同時在準確性、實時性方面也呈現(xiàn)出顯著優(yōu)勢. 表1 仿真靶環(huán)的檢測結(jié)果Tab.1 Test results of simulated target ring 綜合分析圖5,圖6 以及表2,可以看出本文算法的優(yōu)越性. 總體上,Hough變換和RANSAC對存在信息缺失圖像的檢測不夠穩(wěn)定,對于半閉眼以及模擬離焦眼的檢測會出現(xiàn)漏檢情況[15-17],圖像質(zhì)量的干擾會導致檢測效率降低,而本文算法對有信息缺失圖像的檢測無漏檢情況,且準確率較高. 圖5 模擬眼靶環(huán)檢測Fig.5 Simulated target ring detection 圖6 真實人眼靶環(huán)檢測Fig.6 Real human eye target ring detection 為了證明本文方法在運算時間上的優(yōu)越性,對比三種方法的檢測結(jié)果,如表3 所示,可以看出本文方法的運算時間明顯短于Hough變換和RANSAC. 從上述實驗可以看出,本文方法在準確性、實時性等方面有顯著優(yōu)勢. 表2 模擬/真實人眼靶環(huán)中心檢測的結(jié)果Tab.2 Detection results of target ring center of simulated and real human eye 表3 真實人眼靶環(huán)檢測時間Tab.3 Detection time of target ring in real human eye 本文提出了一種適用于嵌入式系統(tǒng)的靶環(huán)中心定位算法. 該算法通過構造合適的模板在目標圖像上移動模板進行匹配運算,對驗光儀采集的靶環(huán)圖像具有很好的檢測效果,無漏檢情況,而且穩(wěn)定性強、準確性高、檢測時間短. 通過對采集的各類靶環(huán)圖像進行檢測,實驗結(jié)果表明,與傳統(tǒng)的Hough變換和RANSAC方法相比較,本文方法可以有效避免眼睫毛和眼瞼遮擋對定位的干擾,在魯棒性方面有較大的優(yōu)勢,可以很好地適用于靶環(huán)復雜的情況. 同時,本文方法在嵌入式平臺上的檢測時間上有較大提升,可以達到30 ms/幀,中心定位誤差為±5像素,相較于傳統(tǒng)算法有較大的提升,可以很好地滿足全自動驗光儀的靶環(huán)中心實時定位需求.1.2 中心坐標校正算法
2 實驗結(jié)果與分析
2.1 仿真靶環(huán)中心檢測結(jié)果及分析
2.2 模擬眼靶環(huán)與真實眼中心檢測結(jié)果分析
3 結(jié) 論