鄢麗娟,張彥虎
(廣東松山職業(yè)技術(shù)學(xué)院 計算機(jī)與信息工程學(xué)院,韶關(guān) 512126)
隨著計算機(jī)圖形圖像處理能力的進(jìn)步與發(fā)展,人臉識別成為近年科研人員研究的熱點之一,人臉識別常用的技術(shù)方案有兩種[1],一種是基于人臉的全局特征進(jìn)行識別,能夠有效的反映臉部特征的整體概況,比較典型的方法有主成分分析(PCA)[2]、線性判別分析(LDA)[3]等.另一種是基于人臉的局部特征進(jìn)行識別,側(cè)重于體現(xiàn)臉部的細(xì)節(jié)信息,比較典型的有局部二值模式(LBP)[4]、尺度不變特征變換(SIFT)[5]、梯度方向直方圖(HOG)[6].
針對第二種方法,研究人員做了大量的探索與改進(jìn),文獻(xiàn)[7,8]針對HOG 算法進(jìn)行了不同程度的改進(jìn),在光照、旋轉(zhuǎn)等方面取得較好的效果;文獻(xiàn)[9]將分塊LBP 應(yīng)用于人臉識別中取得了良好的識別效果;文獻(xiàn)[10]提出一種通過提取MSF-VQ 特征進(jìn)行人臉識別的算法;文獻(xiàn)[11]提出一種通過改進(jìn)加權(quán)稀疏進(jìn)行人臉識別的算法;文獻(xiàn)[12]提出一種基于分塊CBP 特征和稀疏表示進(jìn)行人臉識別的算法;文獻(xiàn)[13]提出完備局部二值模式(CLBP)人臉識別算法,在LBP 原基礎(chǔ)上增加了局部差異值和中心像素灰度值的分析進(jìn)行分類識別;文獻(xiàn)[14]提出基于最值平均人臉識別算法,利用模板方差的大小選擇不同的閾值,提取更多細(xì)節(jié)信息;文獻(xiàn)[15]提出一種加權(quán)核主成分分析(WKPCA)的人臉識別算法,通過將高、低分辨率人臉圖像進(jìn)行融合后,形成新的特征進(jìn)行識別;文獻(xiàn)[16] 提出一種基于梯度臉(Gradient Faces,GF)的特征描述方法,使用人臉的梯度信息進(jìn)行特征提取,對光照變化的人臉有較好的識別效果;文獻(xiàn)[17]提出一種基于中心對稱梯度幅值相位模式(Center-Symmetric Gradient Magnitude and Phase patterns,CSGMP)的人臉識別算法,該算法將人臉圖像進(jìn)行梯度變換后,用CS-LDP 算法進(jìn)行特征提取,取得了較好的識別效果.
上述算法都能很好的解決人臉識別的問題,在識別率上有較好的改進(jìn)與提升,但在不同程度上存在算法復(fù)雜、耗時長等缺陷.本文提出一種使用圖像偏移產(chǎn)生多圖像梯度,對圖像梯度進(jìn)行變換產(chǎn)生若干個梯度算子,使用梯度算子對原圖像進(jìn)行補(bǔ)償融合,然后進(jìn)行特征提取的IGC (Image Gradient Compensation)算法,實驗結(jié)果表明該算法在識別率提升的同時,其運(yùn)行效率有非常卓越的表現(xiàn).
一維函數(shù)的一階微分定義為:
一張灰度圖像,將其認(rèn)為成一個二維函數(shù)f(x,y),分別對x、y求導(dǎo)即有:
因圖像是離散的二維函數(shù),?不能無限小,而圖像是按照像素進(jìn)行離散,最小的?就是1 個像素.因此,對式(2)、式(3)化簡,產(chǎn)生式(4)、式(5)(?=1):
式(4)、式(5)分別為圖像中g(shù)(x,y)點的水平梯度(x方向)和垂直梯度(y方向),從上面的表達(dá)式可以看出來,當(dāng)?=1 時,圖像的梯度相當(dāng)于2 個相鄰像素之間的差值[18].
對于圖像的一個像素點,它在水平方向上有兩個不同方向的梯度,即左梯度、右梯度,令Grx為水平方向的右梯度、Glx為水平方向的左梯度,其計算公式分別為:
同理,垂直方向上也有兩個方向的梯度,即上梯度、下梯度,令Guy為垂直方向的上梯度、Gdy為垂直方向的下梯度,其計算公式分別為:
水平方向上的左梯度與右梯度之和定義為圖像A的水平合成梯度,記做:
垂直方向上的上梯度與下梯度之和定義為圖像的垂直合成梯度,記做:
水平方向上右梯度減左梯度的值定義為圖像水平方向的差額梯度,記做:
垂直方向上的上梯度減下梯度的值定義為圖像垂直方向的差額梯度,記做:
圖像A的水平合成梯度與垂直合成梯度之和定義為圖像A的合融梯度,記做:
水平方向的差額梯度與垂直方向的差額梯度之和定義為圖像A的差融梯度,記做:
為了獲得可以更好描述圖片的特征,我們通過以下步驟逐步提取圖片的特征信息:
(1)將圖片轉(zhuǎn)換為灰度圖img;
(2)計算圖片img上下左右4 個方向上的偏移矩陣,分別求出img在水平方向的左梯度、右梯度,垂直方向的上梯度、下梯度,填充對應(yīng)矩陣,使上述梯度矩陣與圖片img的維度相同;為了驗證上述上、下、左、右梯度提取的圖像信息,對如圖1(a)所示的包含正方形等形狀的圖片進(jìn)行檢測,分別對其提取4 個方向的梯度,如圖1(b)~圖1(e)所示,分析發(fā)現(xiàn),圖像垂直方向的上、下梯度可以提取圖片橫向特征信息,水平方向的左、右梯度可以提取縱向特征信息;
圖1 圖形圖像在各方向上的梯度圖像
(3)獲取圖片img的水平合成梯度、垂直合成梯度;
(4)合成圖片的合融梯度Gfusion、差融梯度Gsubfus;
(5)將合融梯度累加到圖片img,完成對img圖像的補(bǔ)償,得到強(qiáng)化了圖片輪廓信息的img2;
(6)在img2 的基礎(chǔ)上,減去若干次差融梯度Gsubfus,完成對img圖像的負(fù)補(bǔ)償,得到新的特征圖片imgNew,該圖即為本文所述用于img圖像特診提取的特征圖像.
首先通過IGC 算法提取圖片的特征,其次,參照文獻(xiàn)[14]將圖片按照3×3 的模板分解為多個子圖,再次分別統(tǒng)計各子圖的直方圖,形成特征向量,然后用PCA進(jìn)行降維,最后使用SVM 分類法對圖片進(jìn)行分類訓(xùn)練并做出識別,本文算法所采用的流程如圖2、圖3所示.
圖2 IGC 算法流程圖
圖3 Lena 圖像的特征向量提取流程圖
讀取圖片,并將其轉(zhuǎn)換為灰度圖,獲得圖片的m×n階矩陣A.
Step 1.生成偏移矩陣
將矩陣A的所有元素向Y 軸正方向上移1 位,產(chǎn)生矩陣Gt1,實現(xiàn)過程為:
令i 參照上述的方法,分別取得Y 軸負(fù)方向下移1 位矩陣Gt2、X 軸正方向左移1 位矩陣Gt3、X 軸負(fù)方向右移1 位矩陣Gt4,其實現(xiàn)公式分別為: Gt2的實現(xiàn)公式: Gt3的實現(xiàn)公式: Gt4的實現(xiàn)公式: Step 2.獲取圖片梯度 為了提取圖像中的輪廓信息,我們令垂直方向上梯度Guy=|A-Gt1|,此時,如果矩陣A 中的像素點g(i,j)與其上一行同列像素的值相同或者相近,運(yùn)算后Guy(i,j)的值為0 或者一個非常小的數(shù)值,如果g(i,j)與其上一行同列像素的值存在較大差距,表明該像素點很有可能是圖像的輪廓,該值經(jīng)過絕對值運(yùn)算之后為正數(shù),能體現(xiàn)圖像輪廓. 用上述方法獲取Guy、Gdy、Grx、Glx幾個方位的偏移差額圖,其計算公式分別為: 對Lena 圖像提取上述4 個方向的梯度后,其圖像結(jié)果如圖4所示. Step 3.提取合融梯度 將上述水平方向的左梯度、右梯度按照式(10)所示進(jìn)行累加,得到水平合成梯度Ghor,將垂直方向的上梯度、下梯度按照式(11)所示進(jìn)行累加,得到垂直合成梯度Gver.然后將Ghor、Gver進(jìn)行累加,得到矩陣合融矩陣Gfusion,其實現(xiàn)過程如式(14)所示.對Lena頭像進(jìn)行處理后的合融梯度Gfusion圖像如圖5所示. Step 4.對Gfusion進(jìn)行降噪處理 上述過程所產(chǎn)生的Gfusion中存在較多的散點,這些散點大多并非圖片輪廓相關(guān)的特征信息,為了剔除散點的影響,我們使用適當(dāng)算法對該矩陣進(jìn)行降噪處理;本文采用均值法,其算法的實現(xiàn)公式為: 其中,mean為矩陣Gfusion的像素點均值. 圖4 Lena 圖片各方向的梯度圖像 圖5 Lena 的合融矩陣圖像 為驗證降噪的必要性,在ORL 數(shù)據(jù)庫中分別驗證了使用降噪前的Gfusion和使用降噪后的Gfusion對圖片進(jìn)行特征補(bǔ)償,然后提取圖像的特征描述進(jìn)行識別并計算識別率,根據(jù)實驗結(jié)果,使用降噪前的Gfusion對圖片進(jìn)行特征補(bǔ)償作為圖片特征描述的識別率為87.5%,而使用降噪后的Gfusion其識別率為88.75%,即使用降噪后識別率提升了1.25%. Step 5.提取差融梯度 1)提取水平、垂直方向的差額梯度 使用式(12),對垂直方向的上梯度Guy、下梯度Gdy進(jìn)行相減,得到矩陣Gvs,Gvs 可以較好的保留縱向(Y軸)方向上更細(xì)微的局部特征;使用式(13),對水平方向的左梯度Grx、右梯度Glx相減,得到矩陣Ghs,Ghs可以較好的保留橫向(X 軸)方向上更細(xì)微的局部特征. 2)提取圖片的差融梯度 使用式(15)將上述所獲得的兩個差額矩陣Gvs、Ghs累加,得到圖像的差融梯度Gsubfus,該矩陣可以描述圖片水平、垂直方向上的更細(xì)微的特征信息,Gsubfus相對Gfusion而言,提取的信息更加細(xì)膩,而Gfusion的特征信息更加粗獷;Lena 圖像的差融矩陣Gsubfus圖像如圖6所示. Step 6.產(chǎn)生特征向量 1)使用Gfusion矩陣對矩陣A進(jìn)行正補(bǔ)償 合融梯度Gfusion較好的提取了圖片A的輪廓等特征信息,但該圖是否適合直接用作圖片的特征值? 研究人員以圖像Lena 為例,對Gfusion矩陣分析發(fā)現(xiàn),灰度值為0 的像素點統(tǒng)計數(shù)為27357,占比達(dá)到68.4%,圖片中大于等于均值的像素點個數(shù)為12643 個,因為圖像像素值分布太不均勻,直接用做圖片特征值進(jìn)行識別的話,識別率不會很高;實驗證明,直接使用該圖片在ORL 人臉數(shù)上的識別率為87.5%.為了進(jìn)一步提高圖像識別率,使用Gfusion矩陣對原灰度圖矩陣A進(jìn)行正補(bǔ)償(即對應(yīng)位置像素值相加),獲得新的矩陣Gm. 其圖像顯示及直方圖分別如圖7所示. 圖6 Lena 圖像的差融矩陣Gsubfus 的圖像顯示 圖7 Lena 圖像的Gm 圖像及其直方圖 矩陣Gm有以下3 個特點:① 像素點相對均衡;② 強(qiáng)化了圖片中能代表圖片特性的輪廓特征;③ 255 像素點附近的數(shù)量增多,這是因為在原矩陣A上正補(bǔ)償了合融矩陣Gfusion,導(dǎo)致圖片輪廓附近的像素值達(dá)到最大值255,從圖片中的亮點可以看到. 因為對圖片的訓(xùn)練、識別要用到直方圖特性,而255 像素點附近的像素點數(shù)量增多,會在一定程度上會降低圖像的識別率,為了進(jìn)一步提高圖片識別率,需要通過一定途徑進(jìn)一步降低圖像Gm中255 像素點的數(shù)量. 2)使用Gsubfus對Gm進(jìn)行負(fù)補(bǔ)償 對比Step 4 和Step 7 的結(jié)果Gm和Gsubfus,在Gm圖像中,有部分亮點的像素值超過255,使用Gsubfus對Gm圖像亮點部分的像素值進(jìn)行適當(dāng)?shù)呢?fù)補(bǔ)償(即對應(yīng)位置像素值的相減),以增強(qiáng)圖片的特征.因Gm是由原圖A疊加Gfusion而來,Gfusion體現(xiàn)的是圖片粗狂的輪廓信息,而Gsubfus能體現(xiàn)圖片更細(xì)微的輪廓特征,用Gsubfus對應(yīng)位置的像素值來減弱Gm的亮點,可以有效降低亮點的數(shù)量,增強(qiáng)圖片的可識別性.我們令 其中,r為補(bǔ)償系數(shù),實驗證明r取4~12 范圍內(nèi)的數(shù)字時,識別效果較好,圖8是r=7 時對應(yīng)的圖片效果. 圖8 本文算法特征圖 矩陣Gfig即為本算法用于代表圖片特征的最終矩陣,該矩陣保留了原圖更多的細(xì)節(jié)特征,有利于圖片的識別. 為了驗證使用Gsubfus對Gm進(jìn)行負(fù)補(bǔ)償?shù)挠行?在ORL 數(shù)據(jù)庫中分別驗證了使用Gsubfus對Gm進(jìn)行補(bǔ)償前和補(bǔ)償后的識別率,其他條件不變,補(bǔ)償前即直接使用Gm進(jìn)行識別,其識別率為88.75%;使用補(bǔ)償系數(shù)r=1 對Gm進(jìn)行負(fù)補(bǔ)償之后,其識別率為91.25%,r=2 時,識別率為93.75%.實驗表明,使用Gsubfus對Gm進(jìn)行負(fù)補(bǔ)償,可以有效地提高系統(tǒng)的識別率. Step 7.使用特定的模板對上述特征矩陣Gfig進(jìn)行分塊,并對每個分塊的圖片進(jìn)行直方圖統(tǒng)計,然后按照一定的次序?qū)⒏鱾€分塊的直方圖進(jìn)行連接,形成特征向量,本文對特征圖的分塊采用3×3 模式. 經(jīng)過上述IGC 算法所獲取的特征向量維度較高,可以達(dá)到1000 維以上,過高的維數(shù)不利于提高圖片的識別效果,另外,特征向量的維數(shù)越高,在進(jìn)行模型訓(xùn)練及識別時,需要耗費(fèi)更多的時間及存儲資源,為此,采用PCA 技術(shù)對特征向量進(jìn)行降維處理;PCA 主成分分析算法是最常用的降維手段之一[19],可以有效的降低高維數(shù)據(jù)并獲取最主要的特征信息,PCA 就是從原始的空間中順序地找一組相互正交的坐標(biāo)軸,以此找出與原始數(shù)據(jù)或者坐標(biāo)軸方差最大的坐標(biāo)軸,直到找出n個這樣的坐標(biāo)軸,其中前k個坐標(biāo)軸包含了大部分方差,后面的坐標(biāo)軸所含的方差幾乎為0,PCA 提取前k個坐標(biāo)軸作為特征向量,從而實現(xiàn)了對高維向量進(jìn)行降維的目的. 支持向量機(jī)方法是以統(tǒng)計學(xué)理論為基礎(chǔ),通過對有限樣本信息的提煉,從而產(chǎn)生一個可以對其他測試樣本進(jìn)行判別、分類的工具,SVM 有很多優(yōu)點,如基于結(jié)構(gòu)風(fēng)險最小化,克服了傳統(tǒng)方法的過學(xué)習(xí)(overfitting)和陷入局部最小的問題,具有很強(qiáng)的泛化能力[20];采用核函數(shù)方法,向高維空間映射時并不增加計算的復(fù)雜性,又有效地克服了維數(shù)災(zāi)難(curse of dimensionality)問題.基于以上各方面的優(yōu)勢,SVM 分類算法在人臉識別領(lǐng)域獲得了非常廣泛的使用[21].本文采用的SVM模型為文獻(xiàn)[22]中的LIBSVM 軟件包,用在Matlab 2016 a 上進(jìn)行人臉識別分類實驗. 本文試驗操作平臺硬件配置CPU 為四核i3-2370M,主頻2.4 GHz,內(nèi)存8 GB (其中顯存分配1 GB),Win7旗艦版64 位操作系統(tǒng),開發(fā)軟件選用Matlab 2016a,實驗數(shù)據(jù)使用ORL 和CMU_PIE 人臉數(shù)據(jù)庫完成測試. 3.2.1 補(bǔ)償系數(shù)r 在式(26)中,補(bǔ)償系數(shù)r的取值,會在一定程度上影響算法識別的準(zhǔn)確率,為了得到更合理的取值,對r取不同數(shù)值時對測試結(jié)果的影響進(jìn)行對比,其結(jié)果如表1所示. 表1 不同補(bǔ)償系數(shù)r 在各個數(shù)據(jù)庫上的識別率(%) 分析實驗結(jié)果表明,r的值過大或者過小,都會對識別率造成一定的影響,較合理的取值范圍在4-12 之間.這是因為:r值過小,強(qiáng)化了特征補(bǔ)償原圖的亮點數(shù)量減少的不夠,不足以形成一個新的特征;r值過大,會使得被強(qiáng)化了特部分特征點的值太小,甚至為0,對圖像的最終識別產(chǎn)生一定的影響. 3.2.2 其他參數(shù)設(shè)置 圖片分塊模板采用3×3 的模板,然后對各個子圖進(jìn)行直方圖統(tǒng)計;分類器使用文獻(xiàn)[22]開發(fā)的LIBSVM分類器,其對應(yīng)參數(shù)設(shè)置為“-s 0 -t 2 -c 1.4157 -g 0.00375”. 為了分析本文算法的效果,在不同的數(shù)據(jù)庫上,分別將經(jīng)典LBP、文獻(xiàn)[13]、文獻(xiàn)[14]、文獻(xiàn)[15]等幾個算法與本文算法進(jìn)行對比,實驗流程為,先提取特征圖片,次對特征圖進(jìn)行分塊,再統(tǒng)計各子圖的直方圖后串聯(lián),然后進(jìn)行PCA 降維,最后使用LIBSVM 分類器進(jìn)行識別并計算識別率;各對比算法按照引用文獻(xiàn)所提供的參數(shù)進(jìn)行設(shè)置. 3.3.1 ORL 數(shù)據(jù)庫 ORL 由40 個人,每人10 張在不同光照、不同角度的情況下進(jìn)行擺拍,共計400 張人臉圖組成,其圖片采用92×112 規(guī)格的灰度圖像,使用每人的前8 張圖片進(jìn)行訓(xùn)練,后2 張圖片用于測試. 由表2分析可知,在ORL 人臉數(shù)據(jù)庫中,經(jīng)典LBP算法識別率為92.5%,文獻(xiàn)[13]算法為86.25%,文獻(xiàn)[14]識別率為80%,文獻(xiàn)[15]識別率為98.75%,本文算法的識別率為98.75%,即除文獻(xiàn)[15]之外,本文算法在上述環(huán)境下的識別率均高于其他算法,與文獻(xiàn)[15]所述算法的識別率持平. 表2 ORL 數(shù)據(jù)庫實驗結(jié)果數(shù)據(jù)結(jié)果(%) 3.3.2 CMU_PIE 數(shù)據(jù)庫 CMU_PIE 數(shù)據(jù)庫由68 個人,每人24 幅不同光照、不同角度情況下進(jìn)行擺拍的圖片組成,共計1632 張人臉圖組成,其圖片采用64×64 規(guī)格的灰度圖像,使用每人的20 張圖片進(jìn)行訓(xùn)練,其余圖片用于測試樣本. 由表3分析可知,在CMU_PIE 人臉數(shù)據(jù)庫中,經(jīng)典LBP、文獻(xiàn)[13]、文獻(xiàn)[14]、文獻(xiàn)[15]的識別率分別是82.35%、97.426%、90.75%、61.40%,本文算法的識別率為91.54%,在CMU_PIE 數(shù)據(jù)庫中,文獻(xiàn)[13]表現(xiàn)出較好的識別率,其算法的識別率高于本文算法6.886 個百分點,文獻(xiàn)[14]的表現(xiàn)也不錯,可達(dá)到90.75%,而本文算法識別率為91.54%,超過了除文獻(xiàn)[13]算法之外的其他算法. 表3 CMU_PIE 實驗結(jié)果數(shù)據(jù)結(jié)果(%) 為了進(jìn)一步對比各個算法的綜合表現(xiàn),我們將上述算法在ORL、CMU_PIE 數(shù)據(jù)庫上的識別率求平均值,其結(jié)果如表4所示,分析表4可知,綜合兩個數(shù)據(jù)庫的表現(xiàn),雖然文獻(xiàn)[15]在ORL 數(shù)據(jù)庫中的識別率與本文所述算法持平、文獻(xiàn)[13]所述算法在CMU_PIE數(shù)據(jù)庫的人臉識別率上比本文算法表現(xiàn)更好,但是,綜合兩個數(shù)據(jù)庫的結(jié)果,本文算法的綜合表現(xiàn)要優(yōu)于上述文獻(xiàn)的算法. 表4 ORL 與CMU_PIE 人臉庫綜合對比(%) 3.3.3 時間復(fù)雜度分析 為了對比不同算法的計算效率,使用Matlab 軟件的計時功能,分別記錄了經(jīng)典LBP 算法、文獻(xiàn)[13]、文獻(xiàn)[14]、文獻(xiàn)[15]算法及本文算法從提取特征值開始到提取結(jié)束所消耗的總時長,其結(jié)果如表5所示. 表5 實驗結(jié)果耗時數(shù)據(jù)分析(單位:s) 分析表5可知,在ORL 數(shù)據(jù)庫中,文獻(xiàn)[15]提取特征值所消耗的時間最短,為7.9852 s,除文獻(xiàn)[15]之外,本文算法在運(yùn)行耗時方面低于其他算法,提取特征速度是文獻(xiàn)[13]算法的1.75 倍,是經(jīng)典LBP 算法的4.14倍,同時也遠(yuǎn)遠(yuǎn)高于其他算法的運(yùn)行速度;在CMU_PIE數(shù)據(jù)庫中,在ORL 數(shù)據(jù)庫中表現(xiàn)優(yōu)異的文獻(xiàn)[15]算法,耗時為86.853,該值為研究者多次反復(fù)求證的結(jié)果,與ORL 數(shù)據(jù)庫中提取特征信息運(yùn)行效率的表現(xiàn)差別較大.本文算法耗時僅為17.109 s,此外,在除本文算法之外的其他算法中,文獻(xiàn)[13]算法用時最短為61.679 s,是本文的3.61 倍.綜合兩個數(shù)據(jù)庫的平均耗時,本文算法為13.815 s,遠(yuǎn)遠(yuǎn)高于其他算法的運(yùn)行時間. 本文提出一種基于圖像梯度變換產(chǎn)生若干梯度算子,使用梯度算子與原圖像融合進(jìn)行特征提取的人臉描述與識別算法.仿真實驗結(jié)果表明,本文所提的IGC圖像梯度補(bǔ)償算法在ORL 和CMU_PIE 人臉數(shù)據(jù)庫上取得較高識別率,其運(yùn)行效率具有非常卓越的表現(xiàn),同時算法具有較強(qiáng)的人臉特征描述功能,對光照、人臉表情和位置的變化具有較高的魯棒性.2.3 PCA 降維
2.4 SVM 向量機(jī)
3 實驗與結(jié)果分析
3.1 實驗環(huán)境
3.2 相關(guān)參數(shù)設(shè)置
3.3 實驗結(jié)果
4 結(jié)語