王 波 劉太安,2* 樊建聰* 孫小川 劉欣穎,2
1(山東科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 山東 青島 266590)2(山東科技大學(xué)信息工程系 山東 泰安 271019)
近二十年來,識(shí)別技術(shù)快速發(fā)展。例如,Huang等提出了基于ELM算法的交通標(biāo)志識(shí)別方法[1]。而人臉識(shí)別更是被廣泛應(yīng)用于安全驗(yàn)證系統(tǒng)、人機(jī)交互、視頻監(jiān)控系統(tǒng)、公共安全系統(tǒng),機(jī)器人智能化等方面[2-4]。人臉識(shí)別的方法也成多樣化發(fā)展,如高晴等提出基于模糊聚類的LLE和SVM的方法,將模糊聚類方法引入LLE算法,定義樣本的近似重構(gòu)系數(shù),進(jìn)行局部重建矩陣,并結(jié)合SVM算法實(shí)現(xiàn)人臉識(shí)別,提高了識(shí)別率[5]。Liu等提出將最小二乘法與稀疏矩陣算法結(jié)合表示人臉局部結(jié)構(gòu)的方法,對(duì)面部分區(qū)后的局部區(qū)分類,通過LS和CRC計(jì)算局部區(qū)類別,綜合結(jié)果后再對(duì)人臉分類,該方法對(duì)復(fù)雜圖片的魯棒性強(qiáng)[6]。周靜等提出了新迭代規(guī)則的CNMF人臉識(shí)別,新迭代規(guī)則由引入的閾值稀疏約束獲得,通過基于該規(guī)則的稀疏CNMF分解訓(xùn)練樣本和測(cè)試樣本,分別得到相應(yīng)的權(quán)值矩陣,再由SVM分類識(shí)別,有效地提高了識(shí)別率和速率[7]。
此外,還有基于深度學(xué)習(xí)的方法,如余丹等提出的卷積神經(jīng)網(wǎng)絡(luò)與ELM相結(jié)合的人臉識(shí)別方法,固定卷積神經(jīng)網(wǎng)絡(luò)部分卷積核,再用其提取人臉特征,最后用ELM分類識(shí)別,減少了參數(shù),提高了分類精度[8]。黃良輝等提出的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別方法,利用基于MobileNet的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)提取特征,用SSD目標(biāo)檢測(cè)器進(jìn)行識(shí)別,提高了識(shí)別率[9]。陳響提出基于YOLO v2實(shí)時(shí)識(shí)別監(jiān)控視頻中的人臉,該方法通過YOLO v2算法提取視頻中的關(guān)鍵幀,對(duì)人臉實(shí)時(shí)識(shí)別,提高了識(shí)別速率和準(zhǔn)確率[10]。人臉識(shí)別經(jīng)過不斷的發(fā)展,準(zhǔn)確率已經(jīng)很高。NIST在2018年發(fā)布的成績(jī)表明,現(xiàn)在全球最高水平的人臉識(shí)別技術(shù)為千萬分之一誤報(bào)下的識(shí)別準(zhǔn)確率接近99%[11]。
人臉識(shí)別有四個(gè)步驟:圖片預(yù)處理、提取特征、特征表達(dá)、分類識(shí)別。其中,特征提取和分類識(shí)別是兩個(gè)關(guān)鍵步驟?,F(xiàn)在,在訓(xùn)練識(shí)別模型時(shí)會(huì)提供大量的多姿態(tài)和表情的人臉圖像,特征提取就是通過某種方法對(duì)原圖片降維,而且降維后的特征向量能夠準(zhǔn)確地表示原始圖像包含的某種信息[12]。降維方法包含線性和非線性兩類,常用的有主成分分析(PCA)[13]、線性判別分析(LDA)、局部線性嵌入(LLE)[14]、拉普拉斯映射(LE)等。而分類識(shí)別是識(shí)別最后步驟,為了準(zhǔn)確地識(shí)別人臉,提高人臉識(shí)別率,需要選擇合適的分類識(shí)別算法。常用的方法有支持向量機(jī)(SVM)[15]、極限學(xué)習(xí)機(jī)(ELM)[16]、BP神經(jīng)網(wǎng)絡(luò)等。
本文提出基于LLE-ELM的人臉識(shí)別方法。將LLE和ELM結(jié)合起來應(yīng)用于人臉識(shí)別。首先,利用LLE算法對(duì)原始人臉圖像提取特征,通過尋找人臉圖像中樣本點(diǎn)的最近鄰點(diǎn),計(jì)算該點(diǎn)局部重建權(quán)值矩陣,將高維數(shù)據(jù)轉(zhuǎn)換為保持了原有特征結(jié)構(gòu)的低維數(shù)據(jù),再將特征數(shù)據(jù)傳遞給ELM算法,通過單隱層的ELM網(wǎng)絡(luò)快速計(jì)算降維后數(shù)據(jù)的輸出權(quán)重,將該權(quán)重用于測(cè)試數(shù)據(jù),最終實(shí)現(xiàn)人臉識(shí)別。輸出識(shí)別準(zhǔn)確率、識(shí)別時(shí)長(zhǎng)。
LLE算法思想是:表示原數(shù)據(jù)的局部線性,并在降維空間中保持這種局部線性。算法步驟是:
(1) 在高維空間中尋找每個(gè)樣本點(diǎn)的k個(gè)最近鄰點(diǎn)。
通常最近鄰點(diǎn)使用歐式距離公式表示,見式:
(1)
(2) 由每個(gè)樣本點(diǎn)的近鄰點(diǎn)計(jì)算出該樣本點(diǎn)的局部重建權(quán)值矩陣。
假設(shè)有N個(gè)D維樣本X={x1,x2,…,xN},可用均方差作回歸問題的損失函數(shù)并矩陣化,有:
(2)
(3)
式中:Q(i)表示xi的k個(gè)近鄰樣本集合;wij為權(quán)重系數(shù); 1k為全1向量。對(duì)式(2)、式(3)矩陣化后,通過拉格朗日子乘法,對(duì)W求導(dǎo),可以得到式(4):
(4)
(3) 由樣本點(diǎn)的局部重建權(quán)值W和其近鄰點(diǎn)k計(jì)算出該樣本點(diǎn)的輸出值。
將樣本點(diǎn)映射嵌入到低維空間中并矩陣化,有:
(5)
(6)
(7)
式中:J(Y)為損失函數(shù);Ii、Wi表示矩陣I、W的第i列;M=(I-W)(I-W)T;Y=[y1,y2,…,yN];tr為跡函數(shù)。通過拉格朗日子乘法,對(duì)式(5)中Y求導(dǎo),有2MYT+2λYT=0。輸出M最小的d個(gè)非零特征值對(duì)應(yīng)的特征向量,通常取2~(d+1)個(gè)特征向量Y=(y2,y3,…,yd+1)T。
ELM算法可以隨機(jī)初始化輸入權(quán)重和偏置值,并得到相應(yīng)的輸出權(quán)重,是一種快速學(xué)習(xí)算法[18]。
假設(shè)有N個(gè)任意樣本(Xi,Ti),其中Xi=[xi1,xi2,…,xin]T∈RN為輸入,Ti=[ti1,ti2,…,tim]T∈Rm為輸出,有L個(gè)節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)可表示為:
(8)
式中:Wi為輸入權(quán)重,βi為輸出權(quán)重,bi是偏置值,g為激活函數(shù)。Wi·Xi表示內(nèi)積??删仃嚤硎緸椋?/p>
Hβ=T
(9)
式中:H是求得的輸出,β為輸出權(quán)重,T為期望的輸出。
(10)
(11)
(12)
(13)
當(dāng)輸入權(quán)重Wi和偏置bi被隨機(jī)確定后,輸出矩陣H就被唯一確定。單隱層神經(jīng)網(wǎng)絡(luò)訓(xùn)練可轉(zhuǎn)化為求解式(11),輸出權(quán)重β也可以確定:
(14)
H+是H的廣義逆矩陣,可通過正交映射法得到。
ELM算法訓(xùn)練過程如圖1所示。
圖1 ELM算法訓(xùn)練圖
算法步驟如下:
(1) 輸入訓(xùn)練樣本、隱層節(jié)點(diǎn)個(gè)數(shù)L、激活函數(shù)g。
(2) 隨機(jī)初始化輸入權(quán)值W、神經(jīng)元偏置值b。
(3) 選擇合適的激活函數(shù)g,計(jì)算隱層的輸出H。
(4) 計(jì)算輸出層權(quán)重β。
測(cè)試過程:
(1) 輸入測(cè)試樣本。
(2) 根據(jù)訓(xùn)練中求出的輸出權(quán)值矩陣β及對(duì)應(yīng)的Wi、bi估計(jì)測(cè)試數(shù)據(jù)的標(biāo)簽。
(3) 確定數(shù)據(jù)所屬類別,求出識(shí)別率及識(shí)別時(shí)間。
局部線性嵌入(LLE)算法在復(fù)雜圖像處理方面有很大優(yōu)勢(shì)。它參數(shù)少,使用簡(jiǎn)單,且用局部的線性反映全局的非線性可以很好地表達(dá)數(shù)據(jù)內(nèi)部的流形結(jié)構(gòu)。算法中的優(yōu)化不涉及到局部最小化,使數(shù)據(jù)能保持原有數(shù)據(jù)的拓?fù)浣Y(jié)構(gòu)[19],很好地保留原數(shù)據(jù)的特征。由于它的這種優(yōu)點(diǎn),LLE算法已經(jīng)廣泛應(yīng)用于非線性數(shù)據(jù)的降維方面,尤其是對(duì)內(nèi)容復(fù)雜的圖像的降維[20]。
極限學(xué)習(xí)機(jī)(ELM)作為一種前饋神經(jīng)網(wǎng)絡(luò)的單隱層機(jī)器學(xué)習(xí)算法是由Huang等學(xué)者提出[21],在分類識(shí)別方面,它的優(yōu)勢(shì)在于只需要在進(jìn)行樣本訓(xùn)練前設(shè)置隱藏層神經(jīng)單元的個(gè)數(shù),輸入權(quán)值和偏置向量為隨機(jī)產(chǎn)生,最后得到唯一最優(yōu)的輸出權(quán)值。ELM學(xué)習(xí)速度快,泛化性能好,尤其是在人臉識(shí)別中,識(shí)別速度非????;贓LM的優(yōu)勢(shì),本文選取ELM為分類識(shí)別算法。
但ELM對(duì)噪聲魯棒性不強(qiáng),對(duì)于某些有遮擋、光照變化等情況的人臉圖像,識(shí)別率會(huì)急劇下降。需要對(duì)復(fù)雜圖像處理效果明顯的降維算法加以彌補(bǔ)。為了解決這一問題,閆德勤教授及其學(xué)生王博林提出將SSLPP方法與ELM結(jié)合的方法[22],Li等在ELM的基礎(chǔ)上提出以CNN為特征源,ELM為識(shí)別框架的圖片識(shí)別方法[23]。
而本文在綜合LLE算法的優(yōu)點(diǎn)后,提出將LLE算法引入ELM算法中,用LLE算法提取特征,ELM分類算法為識(shí)別框架的LLE-ELM算法來解決這一問題。LLE-ELM算法綜合了二者的優(yōu)點(diǎn):初始需要設(shè)置的參數(shù)少且簡(jiǎn)單,得到維數(shù)少且特征結(jié)構(gòu)清晰的降維數(shù)據(jù),單隱層學(xué)習(xí)速度快、泛化性能好,學(xué)習(xí)過程復(fù)雜性降低,并且ELM算法的精度提高。引入LLE算法后的LLE-ELM算法,彌補(bǔ)了ELM算法缺點(diǎn)的同時(shí)提高人臉的識(shí)別率和識(shí)別速度。
融合LLE算法后的LLE-ELM人臉識(shí)別過程如圖2所示。
圖2 基于LLE-ELM算法的人臉識(shí)別圖
算法步驟如下:
(1) 輸入原始數(shù)據(jù),設(shè)置初始參數(shù),用LLE算法將圖片的高維空間數(shù)據(jù)點(diǎn)按維數(shù)映射到低維嵌入空間,構(gòu)造圖片新因子,輸出原始數(shù)據(jù)的低維特征數(shù)據(jù)。
(2) 將新因子作為ELM算法的輸入變量,設(shè)置ELM算法的初始輸入權(quán)重和偏置值,建立基于LLE-ELM算法的圖片分類模型。
(3) 輸出識(shí)別準(zhǔn)確率及識(shí)別時(shí)長(zhǎng)。
LLE-ELM算法的參數(shù)選取主要包括兩方面:一是LLE算法的合適的樣本點(diǎn)的k個(gè)近鄰點(diǎn)和降維后的輸出維數(shù)d。若k值過大,會(huì)使LLE算法趨向于PCA算法,取值過小,則不能保持樣本點(diǎn)在低維空間的拓?fù)浣Y(jié)構(gòu)。而d取值過大會(huì)使降維結(jié)果中含有過多的噪聲,取值過小,會(huì)致使本來不同的點(diǎn)在低維空間可能會(huì)彼此交疊[24]。因此,綜合后本文k值按照其他實(shí)驗(yàn)中的經(jīng)驗(yàn)值6~18[25]選取,d值按文獻(xiàn)[17]的歐式距離法選取。二是ELM算法中隱層節(jié)點(diǎn)個(gè)數(shù)L和激活函數(shù)的選擇。激活函數(shù)選取常用的sig函數(shù),而L通過以下實(shí)驗(yàn)選擇,如圖3所示,ORL人臉庫(kù)為實(shí)驗(yàn)數(shù)據(jù),隱層節(jié)點(diǎn)個(gè)數(shù)取10、20、30、40、50、60、70、80、90、100,激活函數(shù)選取sig函數(shù),進(jìn)行50次的平均結(jié)果分析最佳節(jié)點(diǎn)個(gè)數(shù)。
(a) 不同節(jié)點(diǎn)數(shù)的準(zhǔn)確率(b) 不同節(jié)點(diǎn)數(shù)的識(shí)別時(shí)間圖3 不同節(jié)點(diǎn)數(shù)時(shí)的實(shí)驗(yàn)結(jié)果
如圖3(a)所示,隱層節(jié)點(diǎn)數(shù)從30開始,精度超過50%,在超過100后,增幅減小趨近100%。而圖3(b)所示,隱層節(jié)點(diǎn)設(shè)置在30~80,較平穩(wěn),之后增幅加大,因此,綜合考慮,隱藏節(jié)點(diǎn)在30~80之間選取。
實(shí)驗(yàn)環(huán)境:MATLAB R2016a為實(shí)驗(yàn)平臺(tái)。計(jì)算機(jī)配置:Intel(R) CoreTMi5-6200U CPU @2.30 GHz 2.40 GHz為處理器,4.00 GB內(nèi)存與Windows 10操作系統(tǒng)。通過與PCA算法、SVM算法及卷積神經(jīng)網(wǎng)絡(luò)(CNN)對(duì)比,得到LLE算法、ELM算法以及LLE-ELM算法的人臉識(shí)別結(jié)果。選取ORL人臉數(shù)據(jù)庫(kù)、Yale人臉數(shù)據(jù)庫(kù)、AR人臉數(shù)據(jù)庫(kù)和部分CASIA-WEBFACE人臉數(shù)據(jù)庫(kù)作為人臉數(shù)據(jù)集,數(shù)據(jù)集的詳細(xì)信息如表1所示。
表1 人臉庫(kù)信息表
實(shí)驗(yàn)的訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)分配情況如表2所示。
表2 實(shí)驗(yàn)數(shù)據(jù)集分配表
表2是選取的實(shí)驗(yàn)數(shù)據(jù)分配情況,每種數(shù)據(jù)的訓(xùn)練集、測(cè)試集的數(shù)量都是數(shù)據(jù)集的50%。四種數(shù)據(jù)集的數(shù)量各不相同,以此檢驗(yàn)算法對(duì)不同數(shù)量數(shù)據(jù)集的識(shí)別效果。
本文選取局部線性嵌入算法(LLE),k值為6~18,d值按歐式距離法選取。其對(duì)照選取應(yīng)用廣泛的主成分分析算法(PCA),以相同的ELM算法為降維后的數(shù)據(jù)的分類算法,ELM神經(jīng)網(wǎng)絡(luò)的隱含層的神經(jīng)元個(gè)數(shù)從30~80中選取,激活函數(shù)為sig函數(shù)。選取ORL人臉庫(kù)和Yale人臉庫(kù)作為原始數(shù)據(jù),訓(xùn)練集與測(cè)試集的數(shù)量如表2所示。實(shí)驗(yàn)結(jié)果如表3所示。
表3 ORL及Yale數(shù)據(jù)集上的人臉識(shí)別率
由表3中的數(shù)據(jù)可以看出,在ORL數(shù)據(jù)集中,使用LLE算法降維與PCA算法降維后,識(shí)別率幾乎相同,都在90%以上,而在Yale人臉庫(kù)上識(shí)別率較低,且二者相差5%。在識(shí)別速度上,無論是那種數(shù)據(jù)集,LLE算法降維的數(shù)據(jù)識(shí)別更快,識(shí)別速度是PCA算法的1.50~1.77倍。綜上表明,通過LLE算法和PCA算法得到的數(shù)據(jù)在表現(xiàn)原始數(shù)據(jù)特征的能力上基本相同,但是LLE算法的數(shù)據(jù)識(shí)別更快。
本文選取ELM算法進(jìn)行分類識(shí)別。旨在保證識(shí)別準(zhǔn)確率的同時(shí),減少識(shí)別的時(shí)間。實(shí)驗(yàn)證明ELM算法與SVM分類算法相比,能夠提高準(zhǔn)確率,而且能夠減少識(shí)別時(shí)間。
3.2.1ELM算法的對(duì)比實(shí)驗(yàn)
ELM與SVM分類算法的對(duì)比,確定兩種算法對(duì)數(shù)據(jù)進(jìn)行識(shí)別的準(zhǔn)確率和速度,實(shí)驗(yàn)結(jié)果如表4所示。
表4 ELM與SVM的人臉識(shí)別率及識(shí)別速度
由表4可以看出,在不降維的情況下,ELM算法的識(shí)別準(zhǔn)確率比SVM高5.94%~6.60%。且ELM的識(shí)別時(shí)間短,識(shí)別速度是SVM算法的11.76~38.35倍。無論在哪種數(shù)據(jù)庫(kù)上,ELM算法更有優(yōu)勢(shì),但其識(shí)別精度較低,不到90%。
3.2.2LLE-ELM與ELM、SVM、CNN的對(duì)比實(shí)驗(yàn)
將基于LLE-ELM的人臉識(shí)別算法,與ELM算法、SVM算法對(duì)比,實(shí)驗(yàn)結(jié)果如表5所示。
表5 LLE-ELM、ELM、SVM算法對(duì)比
由表5可以看出,在本文所選的三種算法中,ELM算法在數(shù)據(jù)少、中、多的三種人臉數(shù)據(jù)庫(kù)中,其識(shí)別率在85.27%~94.58%,時(shí)間在0.04~2.08 s之間。SVM算法識(shí)別率最低,在61.40%~82.50%之間,且識(shí)別時(shí)間較長(zhǎng),最短為0.44 s,最長(zhǎng)為14.94 s,在三種算法中效果最差。而LLE-ELM算法其識(shí)別率較高,在90.80%~96.33%之間,時(shí)間在0.004 4~0.237 2 s之間。實(shí)驗(yàn)結(jié)果表明:LLE-ELM算法不管是在識(shí)別率上,還是在運(yùn)行時(shí)間上都優(yōu)于其他兩種對(duì)比算法。
在簡(jiǎn)單人臉圖片ORL和復(fù)雜人臉圖片CASIA-WEBFACE上實(shí)驗(yàn),對(duì)比實(shí)驗(yàn)結(jié)果,確定LLE-ELM算法對(duì)更接近日常環(huán)境中的人臉的處理能力,并與卷積神經(jīng)網(wǎng)絡(luò)對(duì)比,如表6所示。
表6 LLE-ELM算法與CNN對(duì)比
由表6可得,在兩種數(shù)據(jù)集上LLE-ELM識(shí)別率為93.17%~96.33%,識(shí)別時(shí)間為0.005 9~0.488 0 s。而CNN識(shí)別率為90.00%~93.75%,一次迭代所用時(shí)間為0.872 5~1.113 3 s。實(shí)驗(yàn)結(jié)果表明,LLE-ELM算法的識(shí)別率與卷積神經(jīng)網(wǎng)絡(luò)都超過90%,且相差不大,只有2.58%~3.17%,并且對(duì)復(fù)雜圖片的識(shí)別能力較好,識(shí)別時(shí)間遠(yuǎn)少于卷積神經(jīng)網(wǎng)絡(luò)。
本文將LLE算法與ELM算法相結(jié)合,設(shè)計(jì)了基于LLE-ELM的人臉識(shí)別算法,通過實(shí)驗(yàn)驗(yàn)證可以得出以下結(jié)論:
(1) LLE算法在對(duì)數(shù)據(jù)進(jìn)行特征提取方面比常用的PCA算法,速度更快,而且識(shí)別精度較高。另外,由于影響人臉的因素較多,利用LLE算法處理非線性數(shù)據(jù)效果好的優(yōu)點(diǎn),能更好地挖掘圖像中的人臉特征,提高分類精度。
(2) 由于ELM算法單隱層模式及其輸入權(quán)值隨機(jī)賦給,所以不需要提前設(shè)置輸入權(quán)值,使得算法應(yīng)用簡(jiǎn)單,計(jì)算速度快。但也說明其權(quán)值并非是最優(yōu)值,因此,可能會(huì)對(duì)ELM算法精度有影響,有待改進(jìn)。
(3) 基于LLE-ELM的人臉識(shí)別算法與ELM算法、SVM算法和CNN算法相比,不僅提高了識(shí)別率,而且大幅度縮短了識(shí)別所用的時(shí)間,提高了識(shí)別的速度。