宋艷萍,黃 華,庫福立,樊丹丹
(新疆農(nóng)業(yè)大學(xué) 數(shù)理學(xué)院,新疆 烏魯木齊 830052)
近年來,人臉識別一直是模式識別和計算機(jī)視覺領(lǐng)域中的研究熱點和難點,并且在眾多領(lǐng)域中有著廣泛的應(yīng)用。然而,在不易受控的條件下如何提升人臉識別算法的識別精度和魯棒性等仍是需要深入研究。
在人臉識別研究中,特征提取是提高人臉識別精度的關(guān)鍵技術(shù)。目前,主要有全局特征和局部特征方法[1],其中,全局特征法可以表示人臉輪廓、膚色和人臉特征等完整的結(jié)構(gòu)信息,但在不易受控的復(fù)雜光照、表情、姿態(tài)等條件下,其識別效果會隨之下降;局部特征法可提取人臉圖像的紋理等局部特征信息,這類方法有局部二值模式、Gabor變換以及方向梯度直方圖法等,在面對不易受控條件下具有更強(qiáng)的魯棒性。目前,基于不同特征提取算法提出的人臉識別方法有:主成分分析[2,3]、判別分析[4]、反射感知模型[5]、局部二值模式法[6-9]、Gabor濾波器法[10]、張量的圖像識別方法[11-13]和基于深度學(xué)習(xí)的人臉圖像識別方法[14-16]等。
不同的識別算法各有優(yōu)缺點,其中,局部二值模式是基于圖像紋理的描述算子,具有灰度不變性、旋轉(zhuǎn)不變性等優(yōu)點;基于張量的人臉識別算法,利用張量工具可以更有效地表示高維數(shù)據(jù),同時,張量奇異值分解是一種完全數(shù)據(jù)驅(qū)動的分解方式,能有效提取多維數(shù)據(jù)中的結(jié)構(gòu)特征。因此,本文利用局部二值模式和張量工具研究人臉識別問題,通過優(yōu)選不同尺度MB-LBP算子組合,融合多尺度分塊局部二值模式和張量高階奇異值分解提出一種人臉識別算法,并進(jìn)行算法驗證分析。
局部二值模式(local binary patterns,LBP)是一種描述圖像局部紋理特征的算子[7,8],存在過于局部化、易受噪聲影響等不足?;诖耍琒heng等[8]在LBP算子基礎(chǔ)上提出了MB-LBP算子,其核心思想是將LBP算子中的單個像素點用該子區(qū)域塊的平均灰度值進(jìn)行替換,每個子區(qū)域都是包含相鄰像素的方形塊。比如,3×3的區(qū)域塊,MB-LBP 算子的單位區(qū)域尺度為 9×9的矩形塊,則MB-LBP算子表達(dá)式可表示為
(1)
其中,ic,ip分別表示中心區(qū)域塊的平均灰度值、第p個相鄰區(qū)域塊的平均灰度值,且
對此,MB-LBP算子運算過程,如圖1所示。
圖1 基本的MB-LBP算子運算過程
一般地,將區(qū)域尺度為S×S的MB-LBP算子簡記為MBS-LBP算子。MB-LBP算子利用子區(qū)域塊的平均灰度值代替單個像素點,提取到的特征信息能有效抑制噪聲的干擾,并且還可以描述不同尺度的紋理特征信息。如圖2所示,給出了人臉圖像MB3-LBP、MB6-LBP、MB12-LBP算子的濾波結(jié)果。
圖2 不同尺度的MB-LBP算子濾波人臉圖像
從圖2可以看出,小尺度MB-LBP算子可以提取出人臉圖像的局部特征和微觀特征,而大尺度MB-LBP算子的濾波結(jié)果降低了噪聲的影響,魯棒性更好,可以為小尺度MB-LBP算子提供輔助信息,但是大尺度MB-LBP算子也丟失了一些重要的人臉識別信息。因此,在具體應(yīng)用中,應(yīng)當(dāng)優(yōu)選不同尺度的MB-LBP算子組合,然后將提取的特征信息進(jìn)行融合,以期獲得更好的識別效果。
如圖3所示,選取一個小尺度MB5-LBP算子、一個大尺度MB13-LBP算子分別提取人臉圖像的特征信息,特征融合后得到該人臉圖像的特征向量。在此,利用MB-LBP算子對人臉圖像進(jìn)行特征提取,必然面臨提取的人臉圖像紋理特征維數(shù)過高。此時,若直接將提取的紋理特征用于人臉識別,勢必會增加識別算法的計算復(fù)雜度,增加計算量,并且識別效果也會很差,因此,在建立人臉識別分類算法時,需要對人臉圖像的紋理特征進(jìn)行降維預(yù)處理。
圖3 人臉圖像的多尺度MB-LBP算子特征提取
本文所謂的張量特指多維數(shù)組,是矢量和矩陣的推廣,比如標(biāo)量可稱為0階張量,向量稱為1階張量,矩陣稱為2階張量,而3階張量可以理解為數(shù)據(jù)存放呈現(xiàn)三維長方體形式。
目前,將矩陣的奇異值分解(singular value decomposition,SVD)推廣到張量,提出了不同的分解算法,比如:張量CP分解,它是將張量分解成若干個秩一張量之和的形式;張量Tucker分解,它是將張量表示成一個核心張量沿著每一個模式乘以一個矩陣的形式,Tucker分解也常稱作高階奇異值分解(high-order SVD,HOSVD)。
A=S×1U(1)×2U(2)…×NU(N)+E
(2)
圖4 三階張量的HOSVD
對于HOSVD算法,利用交替最小二乘法,通過最小化誤差函數(shù)
尋求最優(yōu)解,是一種更加有效的高階正交迭代算法(higher order orthogonal iterative algorithm,HOOI)[19]。本文將采用該方法進(jìn)行張量高階奇異值分解。
首先,需要根據(jù)人臉圖像構(gòu)建張量。本文將不同光照、不同背景、不同姿態(tài)等均視為不同表情,所以構(gòu)建的是三階張量,其中,第一模態(tài)表示像素模態(tài),第二模態(tài)表示表情模態(tài),第三模態(tài)表示人物模態(tài)。
A≈S×1U(1)×2U(2)×3U(3)
(3)
(4)
本文提出的人臉識別算法流程如下:
步驟1 將人臉數(shù)據(jù)庫劃分為訓(xùn)練集和測試集;
步驟2 根據(jù)訓(xùn)練集的人臉圖像,優(yōu)選不同尺度的MB-LBP算子組合,提取圖像紋理特征向量,并構(gòu)造訓(xùn)練集人臉圖像的3階張量模型;
步驟3 利用HOOI算法對訓(xùn)練集人臉圖像的3階張量進(jìn)行高階奇異值分解;
步驟5 輸入測試圖片,利用識別分類器,判斷測試圖片所屬的類別。
為驗證本文算法的有效性,選取Yale數(shù)據(jù)庫、自制數(shù)據(jù)庫作為實驗數(shù)據(jù)庫,其中,Yale數(shù)據(jù)庫是由耶魯大學(xué)制作的經(jīng)典人臉數(shù)據(jù)庫,自制數(shù)據(jù)庫是由本課題組自制的人臉數(shù)據(jù)庫。表1列出了兩個人臉數(shù)據(jù)庫的相關(guān)信息。在此,對人臉數(shù)據(jù)庫進(jìn)行樣本劃分,一部分作為訓(xùn)練樣本,一部分作為測試樣本。其中,Yale數(shù)據(jù)庫的訓(xùn)練樣本是從15個人物中的每個人物隨機(jī)選取6個表情,每個人分別剩下的5個表情為測試樣本;自制數(shù)據(jù)庫的訓(xùn)練樣本是從6個人物中的每個人物隨機(jī)選取4個表情,每個人分別剩下的兩個表情為測試樣本。
表1 兩個人臉數(shù)據(jù)庫的相關(guān)信息
仿真實驗平臺為 Windows 7(64位)操作系統(tǒng)下的Matlab 2016b。硬件配置為Intel(R) Core(TM) i3-3110M CPU@2.40 GHz,NVIDIA GeForce 610M獨立顯卡,6.00 GB內(nèi)存,2 T硬盤。
為了優(yōu)選MB-LBP算子組合,本文首先根據(jù)訓(xùn)練集的人臉圖像,利用3至16共14個單尺度分塊局部二值模式提取訓(xùn)練集人臉圖像的紋理特征,并基于HOSVD構(gòu)建人臉識別算法分類器,然后利用測試圖片進(jìn)行檢驗,計算分類器的識別精度。
如圖5所示,可以得出,小尺度MB-LBP算子的識別精度均優(yōu)于大尺度MB-LBP算子,說明進(jìn)行人臉圖像的特征提取時,局部特征和微觀特征更有利于人臉識別效果;另外,小尺度MB5-LBP算子的識別精度最高,等于97.333%;大尺度MB10-LBP算子、MB11-LBP算子、MB12-LBP算子、MB13-LBP算子的識別精度均等于90.667%,這說明大尺度MB-LBP算子提取的紋理特征也具有一定的識別能力。
圖5 不同尺度構(gòu)建的人臉識別分類器的識別精度
基于此,將大尺度MB-LBP算子提取的紋理特征作為小尺度MB-LBP算子的輔助,優(yōu)選不同尺度MB-LBP算子組合,最終優(yōu)選兩個尺度MB5-LBP算子和MB13-LBP算子用于提取人臉圖像的紋理特征,并進(jìn)行特征融合。此時,根據(jù)訓(xùn)練集人臉圖像構(gòu)建3階張量,其維數(shù)為20000×6×15,利用HOOI算法進(jìn)行HOSVD,并進(jìn)一步構(gòu)建得人臉識別分類器,最后得到本文提出的人臉識別算法的識別精度為98.667%。如圖6所示,為部分測試圖片的識別結(jié)果(其中第一行為原測試圖片,第二行為對應(yīng)的識別結(jié)果)。
圖6 部分測試圖片的識別結(jié)果
為了比較算法的有效性,分別實現(xiàn)tensor HOSVD、LBP-tensor HOSVD、MB5-LBP-tensor HOSV、MB13-LBP-tensor HOSVD、MB5-MB13-LBP-tensor HOSVD以及兩種深度學(xué)習(xí)算法(傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)和LBP-深度置信網(wǎng)絡(luò)(deep belief networks,DBN))。如表2所示,本文提出的基于多尺度MB-LBP和張量HOSVD人臉識別算法與LBP-DBN算法的識別精度一樣高,等于98.667%。同時,因為本文的算法需要融合多尺度分塊局部二值模式提取圖像的紋理特征,所以時間消耗上也稍多于其它算法,但是相比于深度學(xué)習(xí)算法LBP-DBN又略有優(yōu)勢,主要原因是深度學(xué)習(xí)算法在模型的訓(xùn)練上的時間消耗較長,并且還與實驗環(huán)境的配置有關(guān)。
表2 不同人臉識別算法的識別精度與運行時間(Yale數(shù)據(jù)庫)
利用自制人臉數(shù)據(jù)庫進(jìn)行實驗。首先,根據(jù)訓(xùn)練樣本優(yōu)選不同尺度MB-LBP算子組合,結(jié)果優(yōu)選的兩個尺度為MB4-LBP算子和MB15-LBP算子;然后,根據(jù)識別算法流程,依次構(gòu)建3階張量、HOSVD和構(gòu)建人臉識別分類器。實驗結(jié)果見表3,基于訓(xùn)練樣本,本文的算法精度與LBP-DBN精度一樣,都為100%,但是時間消耗上卻有明顯的優(yōu)勢。如圖7所示,為部分測試圖片的識別結(jié)果(其中第一行為原測試圖片,第二行為對應(yīng)的識別結(jié)果)。
表3 不同人臉識別算法的識別精度與運行時間(自制數(shù)據(jù)庫)
圖7 自制數(shù)據(jù)庫的部分測試識別結(jié)果
本文提出的人臉識別算法是融合多尺度分塊局部二值模式和張量高階奇異值分解。該算法的復(fù)雜度主要在于MB-LBP算法和張量HOSVD算法,其中,LBP提取圖像紋理特征具有較低的計算復(fù)雜度,但進(jìn)行多尺度分塊融合,在一定程度上會增加計算復(fù)雜度;張量奇異值分解,若在張量展開后直接進(jìn)行SVD分解,其復(fù)雜度幾乎等于o(n3),特別是在融合MB-LBP算子后圖像特征維度增長的情況下,直接實現(xiàn)SVD分解將非常耗時。而本文利用HOOI算法通過尋求優(yōu)化函數(shù)的最優(yōu)解實現(xiàn)張量HOSVD,相比于直接SVD分解,算法復(fù)雜度得到了有效解決,特別是在內(nèi)存不足時處理高維數(shù)據(jù)的高階張量分解,其優(yōu)勢更為明顯。當(dāng)然,若在提升硬件配置的同時,利用并行計算予以實現(xiàn),則算法的時間消耗將得到更好解決,這也是下一步的研究打算。
本文提出基于多尺度分塊局部二值模式和張量高階奇異值分解的人臉識別算法。該算法基于多尺度分塊局部二值模式,可以提取不同尺度的紋理特征信息;基于張量及張量奇異值分解,為處理不易受控條件下的人臉圖像數(shù)據(jù)提供一種構(gòu)建高維數(shù)據(jù)和模型的思路。最后,人臉數(shù)據(jù)庫的驗證結(jié)果表明,本文提出的人臉識別算法是一種有效的、可行的識別算法。但是,相比如當(dāng)前流行的深度學(xué)習(xí)算法,本算法需進(jìn)一步探索降低算法的計算復(fù)雜度,使其滿足大數(shù)據(jù)背景下的復(fù)雜性和時效性。