邱子萱 高天 王蕾
(東華理工大學(xué)信息工程學(xué)院,南昌,330013)
近些年來,以人臉面部作為處理對象的研究已經(jīng)成為上述計(jì)算機(jī)領(lǐng)域的一個(gè)熱門話題。這些學(xué)科對人臉的研究主要包括五個(gè)方面:人臉檢測、面部特征的提取、人臉識(shí)別、三維人臉重建、面部表情動(dòng)畫。其中,人臉檢測以及面部特征的提取是其他三項(xiàng)研究的基礎(chǔ),如果不能正確地在收集到的圖像中檢測出人臉并且準(zhǔn)確提取人臉面部特征,那么人臉識(shí)別、三維人臉重建、面部表情動(dòng)畫等方面的研究相對復(fù)雜一些。本文主要研究面部特征提取方法——在人像中提取出重要的人臉器官。
灰度圖像分割和彩色圖像分割是兩種主要的圖像分割,兩者在分割的原理上是大致相同的,都是基于空間上的鄰近性和像素值上的相似性來進(jìn)行分割[1]。一些研究者通過研究灰度圖像分割技術(shù),并在其基礎(chǔ)上進(jìn)行了改進(jìn),使之能夠作用在彩色圖像上,也就是彩色圖像分割。把圖像中某些具備特殊意義的不同區(qū)域分割開來,使得這些區(qū)域在元素集上互不相交,并且每一個(gè)區(qū)域都要滿足同質(zhì)性和唯一性,這就是圖像分割。
對灰度圖像來說,區(qū)域內(nèi)部的像素大多具有灰度相似性,而在區(qū)域邊界上大多具有灰度不連續(xù)性,這種不連續(xù)體現(xiàn)在灰度值的劇烈變化上。圖像分割的數(shù)學(xué)表達(dá)可作簡單的作如下描述[2]:
2) 是連通的區(qū)域,在該區(qū)域的任意兩點(diǎn)之間都一定存在著某條或多條連通的路徑;
最常用的圖像分割方法有兩種:基于直方圖的分割方法;基于鄰域的分割方法?;谥狈綀D的分割方法包含閾值分割和聚類等,傳統(tǒng)的直方圖分割主要是利用通道對目標(biāo)圖像進(jìn)行處理,得到需要分割的圖像的直方圖并進(jìn)行閾值選取,再使用已經(jīng)選擇好的閾值對給定的圖像進(jìn)行分割?;卩徲虻姆指罘椒ò吘墮z測和區(qū)域生長等,其中基于邊緣的圖像分割算法是一種經(jīng)典的分割方法。
近年來,人臉識(shí)別技術(shù)已經(jīng)火遍了大江南北,人臉器官定位算法的研究也伴隨著人臉識(shí)別的發(fā)展而發(fā)展。國內(nèi)外許多研究團(tuán)體和個(gè)人對相關(guān)技術(shù)進(jìn)行研究,特別是對于眼睛的定位,已經(jīng)提出了許多方法。這些方法大致可以分為兩類,一類是基于先驗(yàn)規(guī)則的器官定位,另一類是基于統(tǒng)計(jì)模型的訓(xùn)練方法。本文用的是基于先驗(yàn)規(guī)則的器官定位,通過人們對人臉器官幾何特征的大量分析經(jīng)驗(yàn)和研究,為程序加入先驗(yàn)知識(shí)用以確定人臉圖像中人臉器官的準(zhǔn)確位置。
基于人類對人臉和人臉圖像的了解和總結(jié),筆者可以獲得大量的經(jīng)驗(yàn)規(guī)則[3]。在人臉圖像中,眼睛、嘴巴、鼻子等地方的灰度分布通常是低于周圍區(qū)域的;并且人臉的器官位置分布比較均勻,有較好的對稱性。圖1是人臉圖像中眼睛,鼻子,嘴巴的關(guān)系圖。
圖1 人臉器官分布模型
如圖1,設(shè)右眼中心點(diǎn)為RE,左眼中心點(diǎn)為LE,兩眼中點(diǎn)為Z,嘴巴中心點(diǎn)為M,鼻子中心點(diǎn)為N,用Xle、 Xre分別表示左眼、右眼中心點(diǎn)的橫坐標(biāo),Yle、Yre分別表示左眼、右眼中心點(diǎn)的縱坐標(biāo),Xm、Xn、Xz分別表示嘴、鼻、兩眼中點(diǎn)的橫坐標(biāo),Ym、Yn、Yz分別表示嘴、鼻、兩眼中點(diǎn)的縱坐標(biāo),則眼睛、鼻、嘴的幾何關(guān)系可以用以下算式表示:
三庭五眼是指人臉最美比例是縱向長為3個(gè)庭長,橫向?qū)挾葹?個(gè)眼寬。三庭是指臉的長度比例,將臉縱向分為3個(gè)部分,每個(gè)部分等分,從發(fā)際線到眉骨為一庭,從眉骨到鼻尖為一庭,從鼻尖到下顎,每一庭占臉部的三分之一(如表1)。五眼是指臉的寬度比例,以眼睛橫向長度為單位,將臉從左側(cè)發(fā)際到右側(cè)發(fā)際橫向分為5個(gè)部分,兩眼之間有一眼的間隔,左右發(fā)際到眼睛邊緣有一眼的間隔[4](如表2)。
表1 人臉三庭比例表
表2 人臉五眼比例表
圖2 為三庭五眼具體的劃分示意。
圖2 左側(cè)為三庭示意圖,右側(cè)為五眼示意圖
在實(shí)際應(yīng)用中,圖像可能會(huì)有各種各樣的噪聲,這些噪聲可能是在傳輸或量化過程中產(chǎn)生的,也可能是在拍攝時(shí)產(chǎn)生的,存在于圖像數(shù)據(jù)中的一切不必要或多余的干擾信息都可以看作噪聲。在人臉分割時(shí),為了具體器官分割時(shí)不被噪聲所影響,就需要先對圖像進(jìn)行預(yù)處理。
一般來說,人臉圖像有兩種不同形式:彩色圖像和灰度圖像。其中,彩色圖像的組成元素,即像素點(diǎn),是通過混合紅(R)、藍(lán)(B)、綠(G)這三種顏色來顯示真實(shí)色彩,而普通圖像中不同的顏色是由不同比例的 R、G、B 三種顏色構(gòu)成的[5]。當(dāng)R、G、B三個(gè)分量的數(shù)值相同時(shí),就是常見的灰度圖像了,灰度圖像的灰度級總共為256級,其中0為黑,255為白。
本文為了使人臉器官區(qū)域分割效果更好,將人臉圖像大小調(diào)整到高度為100,寬度按同比例縮小。如果圖像高度小于100,則不調(diào)整大小。同時(shí)將彩色圖像轉(zhuǎn)化為灰度圖像,其代碼使用平均值法完成圖像的灰度化,即將彩色圖像中的三個(gè)分量的亮度求和再除以3得到灰度圖像。
空間濾波方法是圖像處理領(lǐng)域主要應(yīng)用的方法之一。濾波一詞來自頻率域,指的是通過或否決某些頻率的分量??臻g濾波器,也被稱為模板,由鄰域和被該鄰域包圍的像素所需要執(zhí)行的預(yù)定義操作構(gòu)成。
從實(shí)際效果上來看,可以把空間濾波器分為兩種,一種是銳化空間濾波器,另外一種是平滑空間濾波器。銳化濾波器用來突出灰度的有較大變化的部分,平滑是平均處理,類似空間積分。因此,可以利用空間微分進(jìn)行銳化處理。
3.2.1 平滑處理
對圖像進(jìn)行模糊處理能一定程度上降低噪聲,這就是常用的平滑濾波器。圖像的噪聲濾波器有許多種類,根據(jù)濾波器的性質(zhì)可以將它們分為線性濾波器和非線性濾波器。
均值濾波器采用的是線性濾波,在很多情況下,對降低噪聲都是有效果的,但是大多數(shù)線性濾波器都是低通濾波器,當(dāng)這種濾波器在將噪聲變模糊的時(shí)候,圖像的邊緣在這個(gè)過程中也變得模糊不清。
平滑濾波器有以下幾種較為常見的模板:
中值濾波器采用的是非線性濾波,中值濾波器是在圖像中取一個(gè)像素點(diǎn),將這個(gè)像素點(diǎn)周圍的一個(gè)正方形區(qū)域的所有像素的灰度值全部取出來;將這些取出來的像素灰度值進(jìn)行排序,然后取這些像素灰度值的中間值當(dāng)作這個(gè)像素點(diǎn)的灰度值 (如果有偶數(shù)個(gè)像素,則取中間兩個(gè)灰度值的平均值)。中值濾波器的目標(biāo)是去除點(diǎn)狀噪聲,而且中值濾波在清理噪聲時(shí)會(huì)注意保護(hù)圖像的邊緣不被模糊,也就是說,在保護(hù)邊緣的前提下去除噪聲。
K近鄰均值濾波器也是一種具有邊界保持的平滑濾波器,相較于均值濾波器,其添加了一個(gè)用于平滑非邊界點(diǎn)的選擇,即以需要處理的像素點(diǎn)為中心,劃分一個(gè)邊長為n的正方形區(qū)域,選取和需要處理的像素點(diǎn)的灰度差值為最小的K個(gè)像素進(jìn)行均值濾波。K近鄰均值濾波的處理結(jié)果和中值濾波處理的結(jié)果較為相似,但是比中值濾波要更突出細(xì)節(jié)邊界。
3.2.2 銳化處理
銳化是通過增強(qiáng)高頻分量來減少圖像中的模糊,增強(qiáng)圖像細(xì)節(jié)邊緣和輪廓,增強(qiáng)灰度反差,有利于后期對目標(biāo)的識(shí)別和處理。本程序使用Sobel算子對圖像進(jìn)行銳化處理。
一般濾波器模板的長寬都是奇數(shù),對稱中心對準(zhǔn)需要處理的像素點(diǎn)。因此,可以將差分近似如下:
Sobel算子幅度表示為:
所以,Sobel算子的濾波器模板可表示為兩個(gè)濾波器模板:
當(dāng)突出垂直邊緣時(shí)使用如下模板:
當(dāng)突出水平邊緣時(shí)使用如下模板:
因?yàn)閳D像銳化的多種方法大都可以采用兩個(gè)濾波器模板表示,只是濾波器模板的大小和系數(shù)不同,因此,可設(shè)計(jì)一個(gè)適用兩個(gè)3×3模板的灰度圖像銳化處理函數(shù)。
3.3.1 灰度積分投影
灰度積分投影是一種經(jīng)常被用到的方法,它有兩種投影方式,一種是垂直積分投影,另外一種是水平積分投影。
把每行的每一個(gè)像素的灰度值逐一加起來,然后將圖像的像素行數(shù)作為y軸的值,每一行的像素的灰度值的總和作為x軸的值,就能做出來水平積分投影直方圖,如圖3所示,將直方圖中每條線段的頂點(diǎn)連接起來形成的曲線就是水平積分投影曲線。
圖3 水平積分投影
假定 是給定圖像中的某個(gè)點(diǎn) 處的灰度值,且 的范圍為 。用數(shù)學(xué)表達(dá)式來表現(xiàn)水平積分投影為:
把每列的每一個(gè)像素的灰度值逐一加起來,然后將圖像的像素列數(shù)作為x軸的值,每一行的像素的灰度值的總和作為y軸的值,就能做出來垂直積分投影直方圖。
將直方圖中每條線段的頂點(diǎn)連接起來形成的曲線就是垂直積分投影曲線,當(dāng)y的取值范圍為用數(shù)學(xué)表達(dá)式表示垂直積分投影為:
3.3.2 灰度微分投影
與灰度積分投影類似,灰度微分投影同樣有兩種投影方式,一種是垂直微分投影,另外一種是水平微分投影。
將圖像每行的每一個(gè)像素的灰度值與其相鄰像素的灰度值相減,再求絕對值,再將這些絕對值逐一加起來,最后以像素行數(shù)為y軸的值,每一行求出來的絕對值的總和作為x軸的值,就能做出水平微分投影直方圖,如圖4所示。
圖4 水平微分投影
將直方圖中每條線段的頂點(diǎn)連接起來形成的曲線,就是水平微分投影曲線。如 的范圍為 ,用數(shù)學(xué)表達(dá)式來表現(xiàn)水平微分投影為:
將圖像的每列的每一個(gè)像素的灰度值與其相鄰像素的灰度值相減,再求絕對值,再將這些絕對值逐一加起來,最后以像素列數(shù)為x軸的值,每一行求出來的絕對值的總和作為y軸的值,就能做出來垂直微分投影直方圖。
將其每條線段的頂點(diǎn)連接起來形成的曲線,就是垂直微分投影曲線。當(dāng)y的取值范圍為,用數(shù)學(xué)表達(dá)式來表現(xiàn)垂直積分投影為:
在人類的臉上有4個(gè)十分明顯的器官,分別是眼睛、鼻子、嘴巴、耳朵,在這4個(gè)器官中,眼睛是人臉圖像器官分割最重要的器官。如果能準(zhǔn)確確定眼睛的位置,那么提取其他面部器官也能輕松一些。
目前較為常用的人眼定位方法有以下幾種:模板匹配法、邊緣檢測法、灰度投影法等。本程序通過邊緣檢測和灰度投影來確定人眼區(qū)域的準(zhǔn)確位置。
人眼區(qū)域定位的具體流程如圖5所示。
圖5 人眼區(qū)域定位流程圖
人眼區(qū)域在人臉區(qū)域中有一種顯著的特征,就是在水平方向上灰度差值較大,也就是在水平方向上的灰度變化頻率較高。例如,一般人眼的灰度變化為面部灰色—暗眼眶—眼白—黑眼珠—眼白—暗眼眶—面部灰色—暗眼眶—眼白—黑眼珠—眼白—暗眼眶—面部灰色。進(jìn)行處理前,先突出眼睛的特征,即突出垂直邊緣。使用改進(jìn)Sobel算子的濾波器模板對人臉圖像突出垂直邊緣。
然后對突出垂直邊緣的圖像進(jìn)行灰度微分投影,并畫出投影曲線,如圖7中右側(cè)圖像為灰度微分平均投影曲線。
圖7 灰度微分平均投影
從圖7中可以看出,投影曲線中最大值附近就是人眼的水平位置。為了后續(xù)處理方便,可以將投影曲線進(jìn)行平滑處理。
當(dāng)確定了眼睛水平線位置之后,還需要確定兩眼的垂直位置。根據(jù)兩眼與中間鼻梁相比的特點(diǎn),可先將圖像的水平邊緣凸顯出來,就和突出垂直邊緣一樣,使用改進(jìn)Sobel算子的濾波器模板。
為了后續(xù)分割準(zhǔn)確,經(jīng)過實(shí)驗(yàn)可以得出,應(yīng)該先把突出水平邊緣的圖像做平滑處理。圖像平滑分為均值濾波與統(tǒng)計(jì)排序?yàn)V波,而均值濾波又包括算術(shù)均值、幾何均值、諧波均值、逆諧波均值,這里采用算術(shù)均值濾波。
設(shè) 表示中心在處,大小為m×n(m,n都是奇數(shù))的矩形子圖像窗口(鄰域)的一組坐標(biāo),在點(diǎn)(x,y)處的圖像g的值,就是計(jì)算 中的算術(shù)均值:
也可用均值濾波模板表示,3×3模型如下:
由圖8可見,眼睛、鼻子、嘴都有明顯的水平邊緣。為了分割眼睛的區(qū)域,需確定眼睛的垂直位置。本程序分割的圖像是人臉圖像,圖像高度與人臉高度近似,故可以定義人眼的半高度為圖像高度的十五分之一。
圖8 突出水平邊緣并平滑
對人眼的上下邊界區(qū)域內(nèi)的突出水平邊緣的圖像進(jìn)行垂直積分投影,可確定人眼的垂直位置。圖9為垂直積分投影結(jié)果。
從圖9可知,離中心軸最近的極小值是兩眼中心垂直位置,在其兩邊的大值就是眼睛的垂直位置。因此需要計(jì)算曲線的所有極小值位置與極大值位置。
人眼區(qū)域已經(jīng)定位完成后,可以開始分割。圖10為人眼區(qū)域分割結(jié)果。
圖10 眼睛分割圖像
圖11 鼻子區(qū)域定位流程圖
在人眼的下部,對突出垂直邊緣的灰度圖像(圖6)中兩個(gè)眼中間的區(qū)域進(jìn)行水平積分投影。如圖12所示,鼻子水平位置是第一個(gè)極大值位置。
圖6 突出垂直邊緣的人臉圖像
圖12 鼻子部位積分投影圖像
確定鼻子水平線后,通過人臉五官特征關(guān)系即可分割鼻子區(qū)域,圖13為分割結(jié)果。
圖13 鼻子分割圖像
在鼻子的下部,對突出水平邊緣的灰度圖像(圖8)中兩個(gè)眼中間的區(qū)域進(jìn)行水平積分投影。如圖14所示,嘴的水平位置是第一個(gè)極大值的位置。
圖14 嘴區(qū)域積分投影曲線
確定了嘴的水平位置后,通過人臉五官特征關(guān)系可以較為容易地確定嘴的范圍。圖15為眼鼻嘴部的分割結(jié)果。
圖15 眼鼻嘴分割圖像
將人臉器官都分割出來后,將器官區(qū)域恢復(fù)為原圖像并顯示。圖16為分割效果。
圖16 分割效果圖
由于在人臉器官分割領(lǐng)域,其預(yù)處理和人臉器官提取方面的研究還存在較大的提升空間,本文通過較為簡單的方法制作了一個(gè)人臉器官分割的程序。
本文詳細(xì)介紹了人臉五官特征關(guān)系、人臉預(yù)處理和人臉器官分割三大部分,具體完成的工作如下:首先描述了人臉器官之間的幾何關(guān)系;其次是對人臉圖像的預(yù)處理,首先對人臉圖像進(jìn)行灰度化并調(diào)整大小,然后對比了多種平滑濾波器,最終選擇算術(shù)均值濾波器來對人臉圖像去除噪聲,再使用改進(jìn)的Sobel算子對圖像進(jìn)行銳化處理,突出圖像的垂直邊緣和水平邊緣;最后,整合所有信息,通過灰度投影確定人眼、鼻子、嘴的水平位置和人眼的垂直位置并進(jìn)行分割。實(shí)驗(yàn)表明,當(dāng)圖像分辨率不夠時(shí),積分投影的曲線較為平緩,極大值和極小值點(diǎn)很少,會(huì)導(dǎo)致鼻子和嘴巴的水平線位置出錯(cuò),但總的來說本方法的分割效果還是不錯(cuò)的,能夠以最簡潔的方法解決人臉分割問題,較為實(shí)用。