周永修,張 蓮,高梓翔,陳大孝
(重慶理工大學(xué) 電子學(xué)院,重慶 400054)
一種由粗略到精確的瞳孔定位算法
周永修,張 蓮,高梓翔,陳大孝
(重慶理工大學(xué) 電子學(xué)院,重慶 400054)
針對(duì)現(xiàn)階段實(shí)現(xiàn)瞳孔精確定位算法過(guò)于繁瑣的問(wèn)題,提出一種由粗略到精確的瞳孔精確定位算法。首先用灰度積分算法粗略找出人眼部位在人臉上的大概位置,然后用Hough變換定位出人眼瞳孔中心的精確位置,接著用Harris角點(diǎn)檢測(cè)算法對(duì)眼角點(diǎn)進(jìn)行定位,最后通過(guò)瞳孔與眼角點(diǎn)的相互坐標(biāo)定位出人眼瞳孔的精確位置。通過(guò)matlab對(duì)所提算法進(jìn)行檢驗(yàn),證明了該算法是一種實(shí)現(xiàn)簡(jiǎn)單、定位精確的算法。
瞳孔精確定位;灰度積分投影;Hough變換;Harris角點(diǎn)檢測(cè)
對(duì)眼睛及其運(yùn)動(dòng)的研究是了解人類視覺(jué)機(jī)制、理解人的情感和行為以及基于眼動(dòng)的人機(jī)交互等問(wèn)題的關(guān)鍵。人眼檢測(cè)與跟蹤是人臉識(shí)別、表情識(shí)別、眼動(dòng)分析、虹膜識(shí)別等技術(shù)的必要步驟,涉及圖像處理、計(jì)算機(jī)視覺(jué)、模式識(shí)別等多個(gè)學(xué)科。
近年來(lái)眼睛定位算法很多,其中比較典型的有基于人體測(cè)量學(xué)標(biāo)準(zhǔn)的方法[1],基于膚色模型的檢測(cè)方法[2],基于訓(xùn)練數(shù)據(jù)的統(tǒng)計(jì)學(xué)習(xí)方法[3]。其中基于統(tǒng)計(jì)學(xué)習(xí)的算法又是現(xiàn)階段人眼檢測(cè)算法的熱點(diǎn),因?yàn)檫@類方法適用性較強(qiáng),在人工智能及模式識(shí)別領(lǐng)域都有較為深入的研究。將基于統(tǒng)計(jì)學(xué)習(xí)的算法應(yīng)用于人眼檢測(cè)主要有Adaboost算法[4]和Deep learning算法[5],這兩種算法在人眼測(cè)量領(lǐng)域都有不錯(cuò)的效果。
但上述算法基本都是對(duì)于瞳孔位于人眼正中的人臉圖像進(jìn)行定位,不能精確檢測(cè)瞳孔轉(zhuǎn)動(dòng)時(shí)的精確位置。為了瞳孔精確定位及跟蹤的要求,本文提出了一種由粗略到精確的瞳孔精確定位算法,該算法主要思想是由粗略到精確一步一步地對(duì)瞳孔進(jìn)行精確定位,每一步都選擇最合適的算法進(jìn)行瞳孔精確定位。
文中所做的人眼檢測(cè)是基于已經(jīng)提取得到的人臉圖像,文中采用Adaboost算法提取人臉圖像[6]。
現(xiàn)階段的人眼粗略檢測(cè)方法大致可以分為基于統(tǒng)計(jì)的方法和基于圖像處理的方法?;诮y(tǒng)計(jì)的方法也可稱為基于學(xué)習(xí)的模式識(shí)別處理方法,主要算法有Adaboost算法和Deep learning神經(jīng)網(wǎng)絡(luò)算法。這類方法的特點(diǎn)是算法智能化,對(duì)所處理的圖片質(zhì)量要求較低,對(duì)各種姿勢(shì)的人眼檢測(cè)都具有較好的效果;但是基于學(xué)習(xí)的方法都有需要大量的訓(xùn)練樣本,以及訓(xùn)練過(guò)程和分類器構(gòu)成復(fù)雜的缺點(diǎn)。在人眼粗略檢測(cè)的過(guò)程中,檢測(cè)精度要求并不高,但是對(duì)檢測(cè)速度具有很高的要求,所以本文采用基于圖像的處理方法。
1.1 垂直方向上的人臉灰度梯度積分投影
由于眼睛是人臉垂直方向上灰度積分變化最大的區(qū)域,所以用灰度積分投影可以很方便地找出眼睛在人臉垂直方向上的位置。垂直方向上人臉灰度積分投影表達(dá)式為:
式I(x,y)中表示圖像第x行、第y列的灰度值,W表示圖像的寬度,Py(x)表示圖像第x行的灰度積分值,其曲線如圖1(a)所示。
可以看到,根據(jù)普通的灰度積分投影并不能準(zhǔn)確找到垂直方向上人眼的位置,因?yàn)槠胀ɑ叶确e分只能對(duì)每一行的灰度值進(jìn)行簡(jiǎn)單累加,并不能反應(yīng)每一行的灰度值變化情況。于是本文對(duì)圖像每一行進(jìn)行梯度值計(jì)算,并計(jì)算灰度梯度積分投影。圖像的梯度值通過(guò)用所求像素的后幾個(gè)像素的平均值減去前幾個(gè)像素的平均值得到,具體算法用構(gòu)造尺度不變的梯度算子與圖像卷積實(shí)現(xiàn):
1)計(jì)算尺度不變梯度算子L的長(zhǎng)度l:
式中round算子表示取整函數(shù)。
2)構(gòu)造尺度不變梯度算子L,式中n表示算子的序列號(hào):
3)用梯度算子與原圖像I進(jìn)行卷積后得到圖像的梯度圖I′:
4)計(jì)算垂直方向上的人臉灰度梯度積分投影P′y(x):
最終得到的灰度梯度積分投影曲線如圖1(b)所示??梢钥闯鲅劬ξ恢玫幕叶忍荻确e分投影明顯大于其他位置的梯度積分值,找到曲線的最大值即可定位眼睛在人臉垂直方向上的位置。
圖1 垂直方向灰度積分投影與灰度積分投影對(duì)比圖
1.2 水平方向上的人臉灰度積分投影
計(jì)算水平方向上的人臉灰度積分投影時(shí),先對(duì)圖像作提取邊緣值處理。提取邊緣值的算法很多,現(xiàn)階段大致有Sobel算法、Prewitt算法、Laplacian of Gaussian Roberts算法、Zero-Cross算法和Canny算法。各類算法的基本思想都是采用構(gòu)成的算子與圖像作卷積,然后重新計(jì)算圖像的灰度值,最后選取合適的閥值判斷圖像的邊緣點(diǎn);不同之處在于不同的算法選取了不同的卷積算子。論文采用Sobel算法實(shí)現(xiàn)邊緣提取的功能。Sobel算子為:
首先用Sx和Sy分別與原圖像作卷積得到原圖像每一像素的橫向及縱向梯度值Gx和Gy:
然后計(jì)算每一像素的新的灰度值:
最后選取合適的閾值判斷該點(diǎn)是否為邊緣點(diǎn)。所得的二值化圖像如圖2所示。由于圖像人臉邊界處存在灰度值的像素點(diǎn)遠(yuǎn)高于其他地方,所以可以得到圖2所示的積分投影曲線,通過(guò)曲線的左右兩個(gè)峰值位置確定人臉的兩個(gè)左右邊界。
圖2 人臉?biāo)椒较蜻吘夵c(diǎn)積分投影圖
分別通過(guò)垂直方向和水平方向的積分投影確定眼睛在人臉中的位置后,得到人眼粗略位置如圖3所示,以便下一步瞳孔精確定位。
圖3 人眼粗略位置效果圖
檢測(cè)瞳孔前先將檢測(cè)到的人眼粗略圖像分成左右兩個(gè)圖像分別進(jìn)行檢測(cè),然后對(duì)得到的圖像作Sobel算子提取邊緣值處理。得到如圖4所示的結(jié)果。
圖4 左右眼邊緣值提取圖
從圖4可以看到,人眼瞳孔邊緣呈一個(gè)很規(guī)則的圓形,求得瞳孔邊緣的圓心即可得到瞳孔中心所在的位置。本文采用Hough變換求取瞳孔中心位置。Hough變換求圓心的基本原理:根據(jù)圓的數(shù)學(xué)表達(dá)式:
可以知道,確定圓心坐標(biāo)(a,b)及圓的半徑r后,可以求得圓周上所有點(diǎn)(x,y)的坐標(biāo)。反過(guò)來(lái),知道了圓周上一點(diǎn)(x,y),可以求出過(guò)這點(diǎn)的所有圓的方程,并用(a,b,r)表示。找到對(duì)應(yīng)圖片上點(diǎn)(x,y)最多的圓的方程(a,b,r),即可求出圖片上瞳孔所在圓形的圓心坐標(biāo)。具體實(shí)現(xiàn)方式如下:
1)建立一個(gè)三維數(shù)組(A,B,R)用以統(tǒng)計(jì)每個(gè)圓方程所對(duì)應(yīng)的圖片上的點(diǎn)(x,y)的個(gè)數(shù)。其中A,B分別取圖片的高度和寬度,R取A/2和B/2的較小值。
2)遍歷圖像(x,y),將每個(gè)點(diǎn)(x,y),可能所在圓的方程(a,b,r)存入數(shù)組(A,B,R)中。
3)找出數(shù)組(A,B,R)中的最大值(a,b,r)即為瞳孔所對(duì)應(yīng)的圓方程,(a,b)坐標(biāo)即為瞳孔中心所對(duì)應(yīng)的坐標(biāo)。
最終求得的瞳孔中心如圖5所示。
圖5 瞳孔中心位置定位圖
求得瞳孔中心位置的坐標(biāo)后需要找到合適的坐標(biāo)軸,將瞳孔所在位置以坐標(biāo)的形式表示出來(lái)。由于坐標(biāo)軸的建立標(biāo)準(zhǔn)需要與瞳孔的位置相對(duì)不變,文中選擇以左右兩個(gè)內(nèi)眼角點(diǎn)連線中點(diǎn)作為坐標(biāo)原點(diǎn),以眼角點(diǎn)連線作為x軸建立坐標(biāo)系,以瞳孔半徑為單位1,將瞳孔位置映射到新的坐標(biāo)系中。
現(xiàn)有的角點(diǎn)檢測(cè)方法有Harris角點(diǎn)檢測(cè)算法[7-8]、Susan算法和CSS算法,本文采用Harris算法檢測(cè)眼角點(diǎn)的位置。根據(jù)Harris算法的基本原理,可以將圖像上的點(diǎn)分為3類:位于平坦區(qū)域的點(diǎn),這類點(diǎn)的灰度值在水平方向和垂直方向上的變化率都不大;位于邊緣區(qū)域的點(diǎn),這類點(diǎn)的灰度值僅在水平方向或垂直方向上的變化率較大;位于角點(diǎn)位置的點(diǎn),這類點(diǎn)的灰度值在水平方向上和垂直方向上的變化率都很大。根據(jù)這種方法,可以區(qū)別出圖片上的角點(diǎn)。具體實(shí)現(xiàn)方法如下:
1)選擇合適的區(qū)域I作為眼角點(diǎn)的待檢測(cè)區(qū)域。
2)分別構(gòu)造水平方向的梯度算子Hx和垂直方向上的梯度算子Hy。其中梯度算子的構(gòu)成可以選擇普通Harris角點(diǎn)提取算子(式9)和改進(jìn)的Harris角點(diǎn)提取算子(式10):
3)用構(gòu)造的水平方向的梯度算子Hx和垂直方向上的梯度算子Hy分別對(duì)圖像I進(jìn)行卷積得到圖像的水平梯度矩陣Ix和垂直梯度矩陣Iy:
4)用高斯平滑算子對(duì)圖像再次進(jìn)行卷積得到M矩 陣:
5)根據(jù)矩陣M計(jì)算角點(diǎn)函數(shù)R:
其中k為經(jīng)驗(yàn)值,通常取0.04~0.06,det(M)表示對(duì)矩陣M求行列式,ktr2(M)表示求矩陣M的跡。
6)找到滿足條件的點(diǎn)作為角點(diǎn):R值大于某一設(shè)定的閥值;R值是某一區(qū)域的極大值。
7)通常情況下求得的角點(diǎn)不止一個(gè),由于眼角位置的灰度值是區(qū)域中較小的地方,因此選擇所求得角點(diǎn)位置灰度值最小的坐標(biāo)作為眼角點(diǎn)的坐標(biāo)。
最終得到的眼角點(diǎn)位置如圖6所示。
圖6 眼角點(diǎn)定位圖
將檢測(cè)到的眼角點(diǎn)坐標(biāo)與瞳孔坐標(biāo)進(jìn)行坐標(biāo)變換,最終得到瞳孔精確坐標(biāo)的位置如圖7所示。對(duì)比原圖片可以看到,雖然照相機(jī)位置相對(duì)于人臉不是水平放置,但是通過(guò)坐標(biāo)變換,可以將瞳孔中心位置變換到同一水平方向。
圖7 瞳孔精確位置坐標(biāo)圖
本實(shí)驗(yàn)將所用算法在matlab上進(jìn)行編程驗(yàn)證,圖片采用普通攝像頭獲取的圖像,并選擇不同瞳孔姿勢(shì)的人臉進(jìn)行測(cè)試,最終實(shí)驗(yàn)結(jié)果如圖8所示。
圖8 不同瞳孔位置及眼角點(diǎn)定位圖
本文提出了一種由粗略到精確的人眼瞳孔定位算法。依次利用灰度積分算法,Hough變換,Harris角點(diǎn)檢測(cè)算法對(duì)瞳孔進(jìn)行精確定位。通過(guò)在matlab上的算法驗(yàn)證,證明了該算法是一種實(shí)現(xiàn)簡(jiǎn)單、定位精確的算法。本文的后續(xù)研究將研究瞳孔精確跟蹤算法,利用本文得到的瞳孔精確位置也將作為瞳孔精確跟蹤的基礎(chǔ)。
但在實(shí)驗(yàn)過(guò)程中同時(shí)發(fā)現(xiàn),由于眼瞼部位對(duì)瞳孔的遮擋,可能存在Hough變換檢測(cè)瞳孔中心時(shí)定位不準(zhǔn)的情況,這是在以后的研究中需要優(yōu)化解決的問(wèn)題。
[1]Wu J,Zhou Z H.Efficient face candidates selector for face detection[J].Pattern Recognition,2003,36(5):1175-1186.
[2]Yuseok Ban,Sang-Ki Kim,Sooyeon Kim,et al.Face detection based on skin color likelihood[J].Pattern Recognition,2014,47(4):1573-1585.
[3]MahirFaikKaraaba,Lambert Schomaker,Marco Wiering.Machine learning for multi-view eye-pair detection[J].EngineeringApplicationsofArtificialIntelligence,2014,33:69-79.
[4]龍伶敏.基于Adaboost的人臉檢測(cè)方法及眼睛定位算法研究[D].成都:電子科技大學(xué),2008.
[5]林妙真.基于深度學(xué)習(xí)的人臉識(shí)別研究[D].大連:大連理工大學(xué),2013.
[6]DU Cui-huan,ZHU Hong,LUO Li-ming,et al.Face detection in video based on AdaBoost algorithm and skin model [J].The Journal of China Universities of Posts and Telecommunications,2013,20(1):6-9.
[7]郭姝言,劉橋,盧進(jìn).一種改進(jìn)的醫(yī)學(xué)圖像深度信息恢復(fù)算法[J].電子科技,2016(1):48-50.
[8]王小平,靜大海.基于二維局域波和角點(diǎn)匹配的多模態(tài)圖像配準(zhǔn)[J].電子設(shè)計(jì)工程,2013(4):142-145.
A pupil precise localization algorithm from rough to precise
ZHOU Yong-xiu,ZHANG Lian,GAO Zi-xiang,CHEN Da-xiao
(School of Electronic Information and Automation,Chongqing University of Technology,Chongqing 400054,China)
Aiming at pupil precise localization algorithm is too complicated in present stage,put forward a pupil precise localization algorithm from rough to precise.First,according to grayscale integral projection of the face,the general location of the eyes can be determined quickly.Then use the Hough transform to locate the exact position of eye pupil center.Next,use Harris corner detection algorithm find the corner of the eye.Finally,determine the exact position of the pupil through the coordinate location of the pupil and eye corner.The proposed algorithm tested with the MATLAB,it is proved to be a simple,accurate positioning algorithm.
pupil location;grayscale integral projection;Hough transform;Harris corner detection
TN06
A
1674-6236(2016)15-0181-03
2015-09-02 稿件編號(hào):201509019
重慶高校優(yōu)秀成果轉(zhuǎn)化資助項(xiàng)目(KJZH14213);重慶市科技人才培養(yǎng)計(jì)劃(新產(chǎn)品研發(fā)團(tuán)隊(duì))(CSJC2013KJRC-TDJS40012)
周永修(1990—),男,重慶人,碩士研究生。研究方向:模式識(shí)別,圖像處理,計(jì)算機(jī)視覺(jué)。