陳鵬飛,王 靖
(華僑大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,福建 廈門(mén)361000)
人臉五官提取及定位被廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)及圖像處理領(lǐng)域,準(zhǔn)確地定位出人臉五官及其形狀特征對(duì)人臉表情識(shí)別,疲勞檢測(cè),人臉肖像卡通畫(huà)制作具有舉足輕重的作用[1]。本文利用圖像邊緣曲線的形狀信息來(lái)識(shí)別人臉五官,與傳統(tǒng)方法相比具有明顯優(yōu)點(diǎn)。Snake[2]方法是最早被用于圖像形狀檢測(cè)的算法,該方法在已知人臉區(qū)域標(biāo)記固定數(shù)目的特征點(diǎn)并建立能量函數(shù),再通過(guò)修正點(diǎn)的位置使能量函數(shù)最小化。該算法對(duì)目標(biāo)形狀初始位置極為敏感,定位不準(zhǔn)確將導(dǎo)致極大的偏差。Yuelle 在此基礎(chǔ)上提出ASM 算法[3],該算法通過(guò)采樣來(lái)標(biāo)記一組代表人臉特征的點(diǎn),再利用主成分分析的方法控制采樣點(diǎn)的移動(dòng)來(lái)逼近當(dāng)前對(duì)象的形狀。Cootes等人在ASM 算法的基礎(chǔ)上提出了AAM 算法[4],它在識(shí)別對(duì)象形狀信息的基礎(chǔ)上加入了對(duì)象的紋理信息,準(zhǔn)確率較ASM 得到了提高。用ASM 和AAM 算法都要求事先定位出人臉區(qū)域,然后再做形狀逼近,因此要求配合人臉識(shí)別和定位算法使用,對(duì)其依賴(lài)性較高。如果人臉定位失敗,將導(dǎo)致后續(xù)算法的失效。Karin等人利用顏色信息和形狀信息來(lái)做人臉區(qū)域分割和五官定位,之后對(duì)待定區(qū)域運(yùn)用拓?fù)鋵W(xué)知識(shí)具體判讀出鼻子、嘴巴等器官[5]。但由于該算法對(duì)圖像的灰度因素要求過(guò)高而只能應(yīng)用于背景單一且人臉區(qū)域灰度值在一定范圍內(nèi)的圖片。
本文提出一種新的形狀識(shí)別算法,它首先使用Canny邊緣檢測(cè)算法[6]得到細(xì)化了的圖像邊緣曲線。為了得到曲線的形狀信息,我們對(duì)邊緣線各點(diǎn)進(jìn)行SVD 分解[7]估計(jì)出各點(diǎn)的切線方向,而鄰近點(diǎn)切線方向的改變量對(duì)其之間歐式距離的比值又可近似認(rèn)為是該點(diǎn)曲率大小。我們由此來(lái)判斷曲線的形狀信息,從而來(lái)對(duì)人臉五官提取和定位。提取出人臉輪廓線之后,我們使用加權(quán)PCA 的方法[8]對(duì)初始的人臉輪廓線進(jìn)行平滑得到連續(xù)光滑的人臉輪廓線。由于是在二維空間內(nèi)做SVD 分解,即使有較多的邊緣點(diǎn)也并不影響算法的執(zhí)行速度。實(shí)驗(yàn)證明,該算法有很好的實(shí)時(shí)性和定位精度,并且可以有效地識(shí)別出人臉五官的形狀特征。
常用的邊緣檢測(cè)算子分為一階梯度算子和二階梯度算子,一階梯度算子即是對(duì)圖像求灰度的一階導(dǎo)數(shù),當(dāng)梯度的方向和幅值超過(guò)某閾值時(shí)即將該點(diǎn)作為邊緣點(diǎn)。基本的一階梯度算子有Sobel[9],Prewitt[10],Roberts[11],Canny[5]等。圖1(a)-(d)是對(duì)同一副圖像用不同的一階梯度算子進(jìn)行邊緣檢測(cè)所得到的結(jié)果。二階梯度算子即是將圖像二階導(dǎo)數(shù)的零點(diǎn)作為圖像的邊緣點(diǎn)。常用的二階梯度算子有高斯拉普拉斯算子(LoG)[12],高斯差分算子(DoG)[13]等。圖1(e)-(f)分別為對(duì)同一圖像使用LoG 算子和DoG 算子進(jìn)行邊緣檢測(cè)所得結(jié)果。比較圖1中的各圖可發(fā)現(xiàn),二階梯度算子雖然也可以得到很好的圖像邊緣,但是邊緣圖像中會(huì)出現(xiàn)許多的間斷點(diǎn),而且所得到的邊緣曲線并沒(méi)有經(jīng)過(guò)細(xì)化,不適合使用SVD 分解計(jì)算其切方向。一階梯度算子中canny邊緣檢測(cè)算子所得邊緣曲線清晰,而且邊緣曲線已經(jīng)經(jīng)過(guò)細(xì)化,最適合使用SVD 分解求得其各點(diǎn)切方向,進(jìn)而判斷其形狀信息。所以,我們采用Canny算子來(lái)得到圖像的邊緣曲線。雖然邊緣曲線也有許多地方出現(xiàn)間斷,但是很容易通過(guò)加權(quán)PCA 算法[8]進(jìn)行平滑和修復(fù)。
圖1 各種邊緣檢測(cè)算子的檢測(cè)結(jié)果
主成分分析[14]被廣泛應(yīng)用于模式識(shí)別問(wèn)題,由于主成分分析要先找到特征向量,特征向量依次為樣本在其上投影后協(xié)方差遞減的向量,所以可以認(rèn)為是樣本投影距離最大的方向。在二維空間中,可以近似認(rèn)為第一維特征向量即為邊緣曲線上該點(diǎn)的切線向量。
設(shè)邊緣曲線C 由任意n 個(gè)點(diǎn)組成,對(duì)其上任意一點(diǎn)pi,取其最近鄰的k個(gè)點(diǎn)組成R2×k的點(diǎn)集 Pi=[pi1,pi2,pi3,…,pik],設(shè)Pi(I-k1eeT)=Ui*∑i*,e為k 維全1向量,其中Ui=[,]為R2×2的左奇異矩陣,為R2×2的奇異值對(duì)角矩陣。我們?nèi)∽鳛閜i的切向量,由于特征向量不區(qū)分向量的正負(fù),因此經(jīng)過(guò)SVD 分解后,我們只能得到邊緣點(diǎn)的投影直線,所以在得到最終的投影向量之前必須確定的方向。我們規(guī)定)。其中,signpi1和pik為計(jì)算pi切向量的鄰域Pi的首點(diǎn)和末點(diǎn)。這樣我們便得到了曲線上各點(diǎn)的切向量。
這里,pi為pi的k 鄰域內(nèi)不包含pi的所有點(diǎn)。這樣,我們便得到了邊緣曲線上各點(diǎn)的近似曲率。
圖2 背景中的曲線對(duì)人臉輪廓線的干擾
人臉五官有特定的形狀,如圖3 所示,本文先通過(guò)對(duì)每條曲線進(jìn)行形狀分析,找出所有的候選五官,再在此基礎(chǔ)上對(duì)各候選五官進(jìn)行人臉拓?fù)鋵W(xué)分析,確定出人臉的五官。為了排除背景中雜線的干擾,我們首先利用各點(diǎn)奇異值之比來(lái)選取過(guò)度自然的曲線段。對(duì)于任意的曲線C={p1,p2…pn},我們計(jì)算出其上每點(diǎn)的奇異值之比λ={λ1,λ2…λn},然后再根據(jù)λ將其分解成若干條子線段Ci,i=1,2,3…。其中,Ci= [pi1,pi2,pi3…pik],對(duì)應(yīng)的奇異值之比為λi=[λi1,λi2,λi3…λik],要求λi1,λik≥δ,δ一般取0.2~0.3之間。為方便起見(jiàn),下文中所說(shuō)的曲線都是指式中過(guò)度自然的曲線段Ci。
圖3 人臉五官形狀
下面,分別介紹圖3中典型的五官的識(shí)別方法。邊緣圖片中很難出現(xiàn)某一完整的五官邊緣曲線,圖3中的眼球只有一半的曲線,鼻子也只能找出各自半邊的曲線。所以,只需識(shí)別出五官邊緣曲線的部分形狀即可。
由于眼球灰度與周?chē)叶鹊膶?duì)比度很大,所以很容易被邊緣檢測(cè)算子識(shí)別成邊緣曲線。若曲線Ci中有連續(xù)κ個(gè)點(diǎn)[pi1,pi2…piκ]滿(mǎn)足下式將被認(rèn)為是眼球的候選曲線
典型的鼻子和嘴巴如圖3(c)和圖3(d)所示,曲線的凹凸會(huì)發(fā)生不止一次的變化所以在做識(shí)別之前我們必須把曲線按照凹凸變化分成不同的片段。設(shè)有相鄰三點(diǎn)pi-1,pi和pi+1,對(duì)應(yīng)切向量,,。若相對(duì)于的轉(zhuǎn)動(dòng)方向和相對(duì)于的轉(zhuǎn)動(dòng)方向相反,可認(rèn)為曲線的凹凸性在pi點(diǎn)發(fā)生變化。設(shè)Ci=∪jcij,cij為具有相同凹凸性的連續(xù)點(diǎn)的集合。若曲線Ci有子凹線段或子凸線段滿(mǎn)足下式且曲線Ci的凹凸至少變化一次,則將被認(rèn)為是鼻子的候選曲線
式(4)是為了保證至少有一個(gè)凹線或凸線繞過(guò)的度數(shù)大過(guò)90°且小于180°。式(5)是為了保證曲線上各點(diǎn)曲率均勻變化,β取小于0.1的值。
在識(shí)別嘴巴時(shí)我們以同樣的方法只識(shí)別上嘴唇的形狀。若曲線Ci有子凹或凸線段滿(mǎn)足下式且曲線Ci的凹凸至少變化兩次,則將被認(rèn)為是鼻子的候選曲線
式(6)是為了保證至少有一個(gè)子線段的平均曲率是其兩側(cè)子線段平均曲率的兩倍以上,式(7)是為了保證各子線段上各點(diǎn)曲率均勻變化。在得到各五官的候選曲線之后,我們便可以根據(jù)人臉拓?fù)鋵W(xué)知識(shí)確定出具體的五官。
定位出人臉五官之后,我們便可以確定人臉區(qū)域。為了得到完整的人臉輪廓線,我們分兩次做邊緣檢測(cè)取出人臉區(qū)域內(nèi)的輪廓線。如前所述,Canny算子閾值小時(shí)得到的邊緣準(zhǔn)確但是數(shù)目較少,閾值大時(shí)邊緣不準(zhǔn)確數(shù)目較多。所以我們首先取較大閾值,將人臉區(qū)域中的邊緣曲線作為人臉輪廓曲線。之后,我們?nèi)≥^小閾值,在得到的邊緣圖像中選取與取較大閾值時(shí)確定的人臉輪廓曲線屬于同一連通域的曲線作為人臉輪廓曲線,其它的邊緣曲線作為干擾曲線舍去。
下面,我們首先用本文的方法來(lái)做五官識(shí)別。SVD 的時(shí)間復(fù)雜度為Ο (n *d2),n為向量個(gè)數(shù),d 為向量維數(shù)。本算法是在二維空間上對(duì)所有邊緣點(diǎn)做SVD 分解,所以時(shí)間復(fù)雜度為Ο( 4n ) ,滿(mǎn)足實(shí)時(shí)性。
我們對(duì)一張400*300的正面人臉圖片4(a)提取人臉輪廓線。實(shí)驗(yàn)中α=5,β=0.1,Canny算子閾值取0.15得到邊緣圖像4(b),對(duì)該邊緣圖像用本文算法做人臉五官識(shí)別并提取人臉輪廓線結(jié)果如圖4(c)所示。從圖中可以看出人臉輪廓線上有很多間斷點(diǎn),采用加權(quán)PCA 平滑后的圖像如圖4(d)所示。
接著,我們對(duì)同一張圖片變換Canny邊緣檢測(cè)的閾值來(lái)做實(shí)驗(yàn),其它參數(shù)仍和上面保持一致。人臉輪廓提取結(jié)果如圖5所示。
圖4 人臉五官輪廓線提取結(jié)果
圖5 變換Canny檢測(cè)的閾值后人臉輪廓線提取結(jié)果
圖5中閾值依次從0.05變到0.25(閾值為0.15時(shí)的結(jié)果在圖4中給出),從圖中可以看出,人臉輪廓提取結(jié)果受Canny邊緣檢測(cè)算子閾值的影響很大。閾值小時(shí),邊緣圖像中邊緣曲線較多,干擾較大,人臉區(qū)域定位太廣,因此識(shí)別出的人臉輪廓線增多。閾值大時(shí),邊緣圖像中邊緣曲線較少,雖然干擾曲線少了,但是供識(shí)別的人臉五官曲線同樣減少了,人臉區(qū)域定位變小,識(shí)別出的人臉輪廓線減少。上述兩種情況都無(wú)法準(zhǔn)確提取出人臉輪廓線。通過(guò)實(shí)驗(yàn),我們得出,較為準(zhǔn)確的Canny 算子閾值區(qū)間為[0.15,0.2]。
本文提出了一種通過(guò)識(shí)別形狀來(lái)提取人臉五官的算法,由于是在二維空間中做SVD 分解,所以效率較高。實(shí)驗(yàn)表明,本算法可以收到較好的效果。由于本算法的時(shí)間復(fù)雜度很低,可以在很多方面得到運(yùn)用。我們?cè)诒舅惴ǖ玫降娜四樰喞€上標(biāo)定AAM 的特征點(diǎn)[15],發(fā)現(xiàn)AAM 的迭代次數(shù)大大減少。此外,人臉輪廓線也同樣可以運(yùn)用在人臉卡通畫(huà)制作和疲勞檢測(cè)。下一步,我們將繼續(xù)對(duì)本算法在這些方面的應(yīng)用做進(jìn)一步研究。
[1]GAO Dapeng,WANG Xin,LI Chaorong.Research on effect weights of five senses in face recognition [J].Computer Engineering,2012,38 (7):171-173 (in Chinese). [高大鵬,王欣,李朝榮.五官在人臉識(shí)別中的作用權(quán)值研究 [J].計(jì)算機(jī)工程,2012,38 (7):171-173.]
[2]Horie M,Kasnima M,Sato K,et al.Automatic endocardium contour tracing method using active contour models:Accuracy improvement of contour detection with mitral valvc processing[J].Journal of the Institute of Image Information and Television Engineers,2009,63 (11):1675-1679.
[3]Liu J M,Udupa J K.Oriented active shape models[J].IEEE Transactions on Medical Imaging,2009,28 (4):571-584.
[4]Kirschner M, Wesarg S.Active shape models unleashed[C]//Progress in Biomedical Optics and Imaging-Proceedings of SPIE,2011.
[5]Gang X,Xue Y.Facial features regions locating method[C]//International Conference on Signal Processing Systems.Beijing,China:IEEE,2010:676-679.
[6]Jing Y,An J,Wang Y X.A new region-based active contour edge detection algorithm for oil spills remote sensing image[J].Journal of Convergence Information Technology,2012,7(21):112-119.
[7]Martin C D,Porter M A.The extraordinary SVD [J].American Mathematical Monthly,2012,119 (10):838-851.
[8]Feng J Y,Huang Z S.Estimation on varying-coefficient partially linear model with different smoothing variables [J].Communications in Statistics-Theory and Methods,2012,41(3):516-529.
[9]Qu Y D,Cui C S,Chen S B,et al.Edge sharpening in grayscale images using modified sobel technique [C]//Proceedings of the 14th IEEE International Multitopic Conference,2011:132-136.
[10]Yang L,Wu X Y,Zhao D W.An improved prewitt algorithm for edge detection based on noised image[C]//Shanghai,China:Proceedings-4th International Congress on Image and Signal Processing,2011:1197-1200.
[11]Lopez M C,De Baets B,Bustince H.Quantitative error measures for edge detection [J].Pattern Recognition,2013,46 (4):1125-1139.
[12]Chiou Y C,Liang Y T.An effective corner detection method using subpixel edge detector and Gaussian filter [J].Sensor Review,2010,30 (1):51-61.
[13]Ma G Q.Edge detection of potential field data using improved local phase filter [J].Exploration Geophysics,2013,44(1):36-41.
[14]Gopi E S,Palanisamy P.Fast Computation of PCA bases of image subspace using its inner-product subspace[J].Applied Mathematics and Computation,2013,219 (12):6729-6732.
[15]Fan X J,Peng Q,Chen J X,et al.An improved AAM fast localization method for human facial features[J].Journal of Electronics and Information Technology,2009,31 (6):1354-1358.