黨媛媛,華 僑,陳兆學(xué)
(上海理工大學(xué) 健康科學(xué)與工程學(xué)院,上海 200093)
瞳距是人臉識(shí)別中特征歸一化的穩(wěn)定特征,也是視光學(xué)研究和眼鏡配置過程中的重要參數(shù),實(shí)現(xiàn)瞳孔中心的快速定位并精確測(cè)量瞳距,有十分重要的現(xiàn)實(shí)意義和應(yīng)用價(jià)值. 然而,在瞳孔定位的過程中,由于人眼外觀的高度可變性,使人眼的精確定位具有一定難度. 這里的可變性主要由眼睛內(nèi)在的動(dòng)態(tài)特征或由周圍環(huán)境的變化引起,特別是面部表情的變化、物品遮擋及成像條件等. 目前國(guó)內(nèi)外已有許多瞳孔定位的相關(guān)研究,總體可概括為3 大類: 基于幾何特征的方法、基于外觀統(tǒng)計(jì)的方法及基于模板匹配的方法. Guan[1]提出了基于灰度積分投影的人眼定位算法,這種方法雖有精確度差的特點(diǎn),但運(yùn)算量少,經(jīng)常被用于人眼的粗定位; 張勇忠等人[2]提出了基于對(duì)稱變換的瞳孔定位方法,雖魯棒性較強(qiáng),但其計(jì)算量大且只描述了局部對(duì)稱性,精確度相對(duì)不足; 余羅等人[3]提出基于橢圓擬合的瞳孔中心點(diǎn)的瞳孔識(shí)別方法,該方法可以識(shí)別眼睛完全睜開及半閉合狀態(tài)下的瞳孔位置,但同時(shí)其算法復(fù)雜性高且運(yùn)算量大,不適合實(shí)時(shí)性定位; 主動(dòng)近紅外成像方法[4]對(duì)可見光照變化具有魯棒性,主動(dòng)紅外光照下,瞳孔反射率大于虹膜導(dǎo)致瞳孔出現(xiàn)亮點(diǎn),可用于定位瞳孔,但該方法需要滿足近紅外光硬件條件限制,具有一定局限性.
為了彌補(bǔ)上述各種既有方法的不足,本文在高斯膚色模型的基礎(chǔ)上,提出了一種瞳孔定位和瞳距的自動(dòng)測(cè)量的方法. 該方法利用光照補(bǔ)償與高斯膚色模型檢測(cè)出正面人臉,剔除光照和非膚色區(qū)域的雙重影響,魯棒性較強(qiáng). 具體先對(duì)圖像進(jìn)行光照補(bǔ)償,然后找到膚色區(qū)域,采用灰度積分投影的方法,實(shí)現(xiàn)人眼圖像預(yù)處理; 通過邊緣檢測(cè)及膨脹等一系列形態(tài)學(xué)操作獲取完整的瞳孔邊界,接著利用霍夫圓變換擬合瞳孔輪廓,獲得相應(yīng)的瞳孔中心位置,通過公式計(jì)算輸出瞳距.
在實(shí)際獲取人臉圖像的過程中,通常由于周圍環(huán)境不穩(wěn)定、設(shè)備存在色彩偏差、物體遮擋或光照條件等因素的影響,光照分布不均勻,從而導(dǎo)致圖像的視覺效果和應(yīng)用價(jià)值降低[5]. 為了確保下一步膚色檢測(cè)的準(zhǔn)確性,需要進(jìn)行光照補(bǔ)償處理,盡可能消除可能存在的色彩偏差. 本文采用多尺度高斯函數(shù)與基于二維伽馬函數(shù)的自適應(yīng)亮度校正相結(jié)合的方法來進(jìn)行光照補(bǔ)償,在保留圖像有效信息的同時(shí),實(shí)現(xiàn)對(duì)光照的校正,有效地提升圖像的視覺效果. 算法實(shí)現(xiàn)步驟如下:
(1)在該模型中首先將亮度與色調(diào)、飽和度分開,避免顏色受到光照的干擾. YCbCr 色彩空間受光照強(qiáng)度的影響較小,相較于其他色彩空間具有更加靈活的格式與更為簡(jiǎn)單的空間坐標(biāo)表示形式,而且膚色在YCbCr色彩空間中具有較好的聚類特性,它將色彩中的亮度分量分離出來,此后僅考慮兩個(gè)色度分量[6],因此本文選用YCbCr 空間進(jìn)行基于膚色概率模型的人臉檢測(cè).
一般情況下,一幅自然圖像可以由該場(chǎng)景下的光源照度場(chǎng)及物體反射光產(chǎn)生的反射場(chǎng)兩者的乘積來表示,稱為該圖像的照度-反射模型[7]. 對(duì)于獲取到的人臉圖像,通常是由光照分量和反射分量共同作用產(chǎn)生的.基于Retinex 理論作如下假設(shè): 人臉圖像的光照分量主要集中于圖像中變化平緩的低頻部分,而反射分量則集中于圖像中邊緣、紋理等變化劇烈的高頻部分[8]. 因此需要盡可能地濾除掉人臉圖像中的細(xì)節(jié)信息,使提取出的光照分量只包含反映光照變化的信息. 本文基于多尺度高斯函數(shù)提取目標(biāo)人臉圖像中的光照分量,對(duì)圖像進(jìn)行光照補(bǔ)償.
在確保高斯函數(shù)滿足歸一化的條件下,將高斯函數(shù)與輸入圖像函數(shù)做卷積提取出光照分量:
為使提取出的光照分量兼具較好地整體與局部效果,采用多尺度高斯函數(shù),即對(duì)不同尺度高斯函數(shù)提取出的人臉圖像中的光照分量加權(quán)求和估計(jì)光照分量,其表達(dá)式為:
其中,G(x,y)為高斯函數(shù),F(x,y)為輸入圖像,I(x,y)為提取的光照分量,ωi為第i個(gè)尺度下高斯函數(shù)提取出的光照分量的加權(quán)系數(shù),*表示卷積.
(2)針對(duì)多尺度高斯函數(shù)提取出的目標(biāo)人臉圖像中的光照分量,采用二維伽馬函數(shù)進(jìn)行處理,結(jié)合光照分量參數(shù)的分布特性,實(shí)現(xiàn)二維伽馬函數(shù)參數(shù)的自適應(yīng)調(diào)整,減少光照過強(qiáng)區(qū)域的亮度值,增加光照不足區(qū)域的亮度值,從而對(duì)目標(biāo)人臉圖像的光照分量進(jìn)行非線性校正,達(dá)到提高圖像質(zhì)量的目的[9]. 二維伽馬函數(shù)的表達(dá)式如下:
其中,H(x,y)為自適應(yīng)光照補(bǔ)償后圖像的亮度值函數(shù),γ為亮度值校正參數(shù),m為提取出的光照分量的亮度均值.
通過本文涉及的算法對(duì)目標(biāo)人臉圖像進(jìn)行光照補(bǔ)償,有 效地改善了圖像質(zhì)量,極大地方便了圖像的后續(xù)處理.
膚色模型是用函數(shù)的形式來表示目標(biāo)人臉圖像中屬于膚色的像素點(diǎn)以確定膚色的分布規(guī)律,或者表達(dá)特定像素點(diǎn)的色彩與膚色的接近程度的模型[10],本文利用高斯函數(shù)來模擬膚色在YCbCr 色度空間的分布,基于統(tǒng)計(jì)學(xué)原理,在YCbCr 色彩空間構(gòu)建高斯膚色模型,如圖1 所示. 一般來講,高斯膚色模型[11]的具體形式如下:
圖1 膚色檢測(cè)
灰度積分投影是常用的定位方法,通過分析灰度圖像在某一特定方向上投影的分布特征,快速對(duì)圖像局部區(qū)域進(jìn)行定位. 考慮到人眼區(qū)域在投影方向上的灰度積分值明顯低于人臉其他部位,本文采用積分投影的方法獲取眼睛的大致位置.
具體過程如下: 首先對(duì)膚色檢測(cè)過的人臉圖像沿坐標(biāo)軸X 方向進(jìn)行灰度積分投影,分別將每列中所有像素點(diǎn)的灰度值進(jìn)行累加. 由于人臉五官的垂直積分投影幾乎平均分配在垂直積分投影圖上,因此只通過垂直投影并不能直接定位出人眼區(qū)域的位置; 于是再沿坐標(biāo)軸Y 方向進(jìn)行灰度積分投影,即分別把每行中所有像素點(diǎn)的灰度值進(jìn)行累加. 人的眉毛、眼睛、鼻子和嘴巴部分的灰度值明顯區(qū)別于周圍區(qū)域,所以水平積分投影圖中會(huì)形成凹凸不平的曲線.
設(shè)F(x,y)為圖像中像素點(diǎn)(x,y)的灰度值,則在一幅大小為M×N圖像中,其水平灰度積分投影函數(shù)為:
垂直灰度積分投影函數(shù)為:
對(duì)人臉的投影曲線如圖2 所示.
圖2 灰度積分投影圖
觀察積分投影圖像,垂直灰度積分投影函數(shù)曲線的兩個(gè)波谷位置對(duì)應(yīng)著眉眼區(qū)域,水平積分投影函數(shù)曲線的兩個(gè)波峰位置對(duì)應(yīng)人面部的額頭和鼻子中間區(qū)域,波谷對(duì)應(yīng)眉眼區(qū)域,于是通過搜索垂直和水平兩個(gè)方向的灰度積分投影函數(shù)分布特征極值,便可以快速定位出眉眼的大致位置. 粗定位出眉眼位置如圖3 所示.
圖3 眉眼粗定位
根據(jù)左右眼圖像灰度值分布特征,提取雙眼區(qū)域的邊界,實(shí)現(xiàn)雙眼區(qū)域的分別劃定,方便后續(xù)利用霍夫圓變換分別對(duì)兩只眼睛的瞳孔邊界進(jìn)行擬合,實(shí)現(xiàn)瞳孔的獨(dú)立定位,如圖4 所示.
圖4 雙眼獨(dú)立定位
在眼部區(qū)域圖像中,瞳孔邊緣中包含著重要的邊界定位信息,瞳孔與虹膜之間存在著灰度值變化很大的階躍型邊緣[12],這為檢測(cè)瞳孔邊緣提供了方便. Canny算子對(duì)噪聲的抑制能力強(qiáng),在抑制噪聲和邊緣檢測(cè)方面有良好的平衡性,而瞳孔區(qū)域圖像常受到眼睫毛和光照噪聲的影響,故本文在獲得左、右眼的大致位置后,在粗定的人眼區(qū)域內(nèi)利用Canny 算子檢測(cè)瞳孔邊緣.
Canny 算子邊緣檢測(cè)[13]的基本步驟如下:
(1)使用高斯平滑濾波器卷積降噪,對(duì)待檢測(cè)圖像進(jìn)行平滑操作,去除噪聲;
(2)增強(qiáng)邊緣,利用不同梯度算子模板,獲取圖像梯度幅值以及方向;
(3)遍歷圖像,找出圖像梯度幅值的局部極大值點(diǎn);
(4)通過設(shè)置雙閾值的方法來提取并連接圖像邊緣,即設(shè)置一個(gè)高閾值Thigh和低閾值Tlow,梯度幅值大于Thigh,一定在邊緣上,小于Tlow,排除邊界,位于兩者之間,則搜尋其鄰域像素,大于Tlow則保留,反之剔除為背景點(diǎn).
假設(shè)待檢測(cè)圖像為f(x,y),高斯濾波函數(shù)為Gα(x,y),則梯度矢量g(x,y)為:
梯度矢量的模Mα為:
梯度矢量的方向Aα為:
其中,α為尺度因子,使得在Aα方向上Mα取得局部區(qū)域中極大值的點(diǎn)即為邊緣點(diǎn). 由于睫毛眼皮等因素影響,完整獲取瞳孔邊緣還需要進(jìn)行一系列形態(tài)學(xué)處理,邊緣檢測(cè)結(jié)果如圖5 所示.
圖5 Canny 邊緣檢測(cè)結(jié)果
霍夫變換的基本思想是對(duì)于邊界上的點(diǎn)所組成的集合,找出共線的點(diǎn)集和相應(yīng)的方程. 構(gòu)造一個(gè)參數(shù)空間,把傳統(tǒng)坐標(biāo)空間中的圖像像素點(diǎn)一一對(duì)應(yīng)映射到該參數(shù)空間,由于傳統(tǒng)坐標(biāo)系中的一個(gè)點(diǎn)映射到參數(shù)空間是一條曲線或一個(gè)面,因此可以建立一個(gè)交點(diǎn)累加器,基于投票的機(jī)制選取參數(shù)空間中的最多累積點(diǎn)的坐標(biāo)作為參數(shù)確定原始圖像中物體的位置與形狀[14–16].
Hough 變換最早應(yīng)用于對(duì)直線的檢測(cè),后來隨著算法的改進(jìn)與發(fā)展,逐漸被推廣到類似于圓和橢圓的曲線檢測(cè). 本文選用Hough 圓變換檢測(cè)算法擬合瞳孔邊界. 其算法流程如下: 先估算圓心,沿同一圓上邊緣點(diǎn)的梯度畫線,這些線一定會(huì)交于圓心; 再估算半徑,統(tǒng)計(jì)從圓心到邊緣點(diǎn)的距離值,出現(xiàn)幾率最大者即為半徑,符合該半徑的邊緣點(diǎn)在圓上.
圖像空間中圓心為 (a,b),半徑為r的圓的表達(dá)式為:
霍夫圓檢測(cè)的問題就是求解經(jīng)過像素點(diǎn)最多的(a,b,r)參數(shù)對(duì),在累加空間(a,b,r)中:
如圖6 所示,對(duì)于圖像空間上任一點(diǎn)(x,y),其對(duì)應(yīng)著參數(shù)空間中的一個(gè)圓錐,而在參數(shù)空間中,經(jīng)Hough變換得到的錐面簇的交點(diǎn)對(duì)應(yīng)的就是原圖在(x,y)平面上的圓,由此得到檢測(cè)圓的圓心位置和半徑.
圖6 霍夫變換圖示
霍夫圓變換算法流程如算法1 所示.
算法1. 霍夫圓變換算法流程1)構(gòu)建(a,b,r)參數(shù)空間,把(x,y)平面上的像素點(diǎn)一一映射,同時(shí)創(chuàng)建一個(gè)記錄參數(shù)空間圓錐簇的交點(diǎn)累加器,設(shè)置初始值為0;2)遍歷圖像,依據(jù)公式對(duì)測(cè)試圓上的邊緣點(diǎn)依次進(jìn)行霍夫變換,將結(jié)果在累加器上進(jìn)行記錄;3)尋找累加器的局部最大值獲取目標(biāo)參數(shù)(a,b,r),為提高準(zhǔn)確性,不直接采用最大值,求取大致的平均位置來擬合測(cè)試圓.
擬合雙眼瞳孔邊界結(jié)果如圖7 所示.
圖7 瞳孔邊界擬合圖
本文瞳孔測(cè)距實(shí)驗(yàn)在以Matlab R2016a 為平臺(tái)的Intel(R)Core(TM)i5-7200U @2.50 GHz 8 GB 內(nèi)存Windows 10 操作系統(tǒng)的PC 機(jī)實(shí)現(xiàn). 圖8 為本文方法與基于模板匹配的瞳孔定位效果對(duì)比圖,算法的運(yùn)行時(shí)間分別為2.390 086 s 和4.626 804 s. 結(jié)果可見兩種方法都可以定位到雙眼的瞳孔區(qū)域,但是基于模板匹配的定位方法容易受模板影響而出現(xiàn)定位偏差.
圖8 瞳孔中心定位效果圖
表1 是用人工標(biāo)定、基于模板匹配的方法與本文算法對(duì)同一幀圖像進(jìn)行識(shí)別所得的瞳孔中心數(shù)據(jù)及瞳距測(cè)量結(jié)果(數(shù)據(jù)皆進(jìn)行3 次測(cè)量,取其平均值),結(jié)果表明,運(yùn)用本文算法所得到的瞳孔中心坐標(biāo)數(shù)據(jù)和瞳距結(jié)果與人工標(biāo)定結(jié)果的一致性比模板匹配的方法更好,且算法運(yùn)行時(shí)間更短,該算法能夠更準(zhǔn)確地測(cè)量瞳距,實(shí)時(shí)性更好.
表1 算法性能對(duì)比
為驗(yàn)證本文算法的有效性,另外對(duì)seeprettyface 數(shù)據(jù)庫中15 幅包含人臉的圖片進(jìn)行瞳孔定位及瞳距測(cè)量. 圖9 為本文方法部分實(shí)驗(yàn)結(jié)果,十字位置即為算法定位的瞳孔中心位置. 利用Matlab R2016a 搭建人工標(biāo)定瞳孔中心系統(tǒng)(數(shù)據(jù)皆進(jìn)行3 次標(biāo)定,且標(biāo)定過程互不干擾,取其平均值),將該結(jié)果作為標(biāo)準(zhǔn)瞳孔中心位置. 圖10(a)與圖10(b)分別是基于模板匹配的方法與本文算法對(duì)15 幅圖像進(jìn)行檢測(cè)所得的雙眼瞳孔中心數(shù)據(jù)與標(biāo)準(zhǔn)瞳孔中心位置的誤差. 圖10(c)分別表明雙眼瞳孔中心X,Y 坐標(biāo)中心距離誤差的平均值以及瞳距的誤差平均值.
圖9 部分瞳孔中心定位實(shí)驗(yàn)結(jié)果
通過圖10(a)與圖10(b)可見,本文提出的方法檢測(cè)出的左右雙眼的像素誤差基本穩(wěn)定在0–10 pixels 的范圍,部分定位效果欠佳,致使誤差較大,但在可接受范圍. 基于模板匹配的方法誤差穩(wěn)定在小于20 pixels的范圍,較本文方法略大,識(shí)別精度略低. 由圖10(c)可以看出本文方法識(shí)別的瞳距與標(biāo)準(zhǔn)瞳距偏離的誤差小于模板匹配方法,X,Y 坐標(biāo)中心距離誤差和瞳距的平均誤差都在0–10 pixels 內(nèi),基本滿足面診中瞳孔定位與瞳距測(cè)量要求.
圖10 兩種算法識(shí)別的瞳孔中心與標(biāo)準(zhǔn)瞳孔中心誤差對(duì)比
實(shí)現(xiàn)瞳距的自動(dòng)檢測(cè),在身份識(shí)別、醫(yī)療診斷、視光學(xué)研究和計(jì)算機(jī)視覺等領(lǐng)域都有著重要且廣泛的應(yīng)用價(jià)值. 本文在人機(jī)交互技術(shù)高度發(fā)展的背景下,提出了一種基于光照補(bǔ)償技術(shù)、高斯膚色模型、灰度積分投影和Hough 圓變換的瞳距測(cè)量方法. 本文首先結(jié)合二維伽馬函數(shù)的自適應(yīng)亮度校正方法對(duì)圖像進(jìn)行光照補(bǔ)償,然后基于高斯膚色模型初步定位人臉,再運(yùn)用灰度積分投影法,提取眼部區(qū)域,經(jīng)過一系列形態(tài)學(xué)操作,最后采用Canny 邊緣檢測(cè)算子檢測(cè)出瞳孔邊緣,將邊緣像素點(diǎn)信息轉(zhuǎn)換到參數(shù)空間,通過Hough 圓變換算法分別對(duì)雙眼瞳孔中心進(jìn)行定位,計(jì)算瞳孔中心之間的距離來計(jì)算瞳距. 經(jīng)實(shí)驗(yàn)檢驗(yàn),本文提出算法較好地實(shí)現(xiàn)了瞳孔中心的快速定位與瞳距的自動(dòng)檢測(cè),具有一定的實(shí)用價(jià)值,對(duì)瞳孔測(cè)距的智能化改進(jìn)有重要意義.