狄 嵐,矯慧文,梁久禎
1(江南大學(xué) 人工智能與計(jì)算機(jī)學(xué)院,江蘇 無錫 214122) 2(道路交通安全公安部重點(diǎn)實(shí)驗(yàn)室,江蘇 無錫 214151) 3(常州大學(xué) 信息科學(xué)與工程學(xué)院,江蘇 常州 213164)
近年來,基于稀疏表示的圖像算法根據(jù)訓(xùn)練時(shí)有無訓(xùn)練標(biāo)簽可劃分為有監(jiān)督和無監(jiān)督兩大類.典型的無監(jiān)督稀疏表示算法[1],具有快速求解高維矩陣的優(yōu)點(diǎn),適用于圖像壓縮和圖像重建、圖像去噪[2];而有監(jiān)督的稀疏表示算法如SRC[3](Sparse Representation Based Classification)算法假定每一測(cè)試數(shù)據(jù)皆可由該類訓(xùn)練數(shù)據(jù)重構(gòu),率先將稀疏表示與人臉分類[4,5]思想結(jié)合.其后,眾多字典學(xué)習(xí)算法在SRC算法基礎(chǔ)上進(jìn)行改進(jìn)并應(yīng)用在人臉鑒別領(lǐng)域.
迄今字典學(xué)習(xí)算法根據(jù)習(xí)得字典的特性可分為共享字典[6-8]、類別特色字典[9-11]、混合字典[12-14]3種.在共享字典學(xué)習(xí)中,字典被所有類別的數(shù)據(jù)共享,無法保證類原子和訓(xùn)練標(biāo)簽的關(guān)聯(lián)性,因而基于共享字典的分類器無法依據(jù)重構(gòu)誤差分類,大大削弱分類準(zhǔn)確性.
類別特色字典利用重構(gòu)誤差分類,每個(gè)字典原子對(duì)應(yīng)一個(gè)類標(biāo)簽.Zhang等人[15]在SRC算法基礎(chǔ)上提出CRC算法,通過對(duì)范數(shù)的求解提升運(yùn)行效率,Dong[16]等人提出雙字典和誤差協(xié)同表示分類方法.Cai等人[17]提出SVGDL算法,自適應(yīng)地確定每個(gè)編碼向量對(duì)的權(quán)重,在訓(xùn)練樣本不充分時(shí)可以取得較好的分類效果.Yang等人[18]提出Fisher判別字典學(xué)習(xí)(Fisher discrimination dictionary learning,FDDL),在保證字典識(shí)別力的同時(shí),利用Fisher準(zhǔn)則約束稀疏編碼,分類時(shí)同時(shí)依據(jù)字典重構(gòu)誤差和稀疏編碼分類,提高分類準(zhǔn)確性.2018年,Wang等[19]在FDDL算法基礎(chǔ)上,增添局部約束思想,同年,Li等[20]提出IKCFDDL算法,通過聚類減少算法運(yùn)行時(shí)間.
混合字典如ESRC[21]算法,即共享字典和類別特色字典的結(jié)合.2018年,Li 等人[22]提出 CSICVDL算法,利用輔助數(shù)據(jù)捕提取數(shù)據(jù)共性.混合字典同時(shí)提取數(shù)據(jù)共性和數(shù)據(jù)特殊性,在配合人臉數(shù)據(jù)庫中表現(xiàn)良好.然而,當(dāng)測(cè)試人臉出現(xiàn)遮擋、表情、姿態(tài)變化等情況時(shí),以上人臉鑒別算法處理能力較差.
針對(duì)上述問題,本文提出融合字典學(xué)習(xí)算法.該算法首先利用Fisher判別準(zhǔn)則和LBP特征金字塔進(jìn)行數(shù)據(jù)預(yù)處理,其次,提出一種新的融合字典學(xué)習(xí)模型,該模型由公共字典、類別特色字典及擾動(dòng)字典3部分構(gòu)成,公共字典提取數(shù)據(jù)的共性,類別特色字典提取不同數(shù)據(jù)類別的特殊性,擾動(dòng)字典則提取樣本存在遮擋等異常時(shí)的擾動(dòng)性,提高算法魯棒性.最后根據(jù)字典模型構(gòu)造新的分類器,利用字典重構(gòu)誤差和稀疏編碼的辨別性進(jìn)行分類,分別在AR、CMU-PIE、LFW等人臉庫上進(jìn)行實(shí)驗(yàn).
給定訓(xùn)練數(shù)據(jù)集合A:A={A1,A2,…,AK}∈Rm×N
測(cè)試樣本集合Y:Y={Y1,Y2,…,YK}∈Rm×N1
針對(duì)測(cè)試集Y,稀疏表示以字典D得到稀疏編碼X,算法模型如下:
模型分為重構(gòu)誤差項(xiàng)與正則編碼項(xiàng)兩部分,正則化參數(shù)λ>0平衡兩項(xiàng)之間關(guān)系.
ESRC算法在SRC算法的基礎(chǔ)上,額外學(xué)習(xí)一個(gè)字典提取訓(xùn)練集A和測(cè)試集Y之間的關(guān)系,算法模型如下:
ESRC模型分為重構(gòu)誤差項(xiàng)與正則編碼項(xiàng)兩部分,正則化參數(shù)λ>0.
類別特色字典學(xué)習(xí)習(xí)得的字典D={D1,D2,…,DK}由K個(gè)子字典組成,算法模型如下:
對(duì)于單個(gè)測(cè)試樣本y,求得的稀疏系數(shù)為x={x1;x2;…;xK}.其中,Di表示第i類訓(xùn)練樣本的子字典,xi由Di重構(gòu)得到,重構(gòu)誤差為ei=‖y-Dixi‖2.
假設(shè)稀疏編碼X的中心為u0,各類稀疏編碼均值向量為ui,則ui求解公式如下:
定義Sw(X)為類內(nèi)散度矩陣、SB(X)為類間散度矩陣,則Sw(X)、SB(X)求解公式如下:
本文提出一種融合字典學(xué)習(xí)算法,首先進(jìn)行利用Fisher準(zhǔn)則和LBP金字塔進(jìn)行數(shù)據(jù)預(yù)處理,其次構(gòu)造融合字典模型進(jìn)行分類,融合字典模型采用分布優(yōu)化的方式求解.
如圖1所示,假設(shè)第一張圖片為b,以圖片b中線為軸,保持右半邊不動(dòng),左半邊圖像為右半邊的鏡像求得右鏡像圖片b1,以此類推,分別求得左鏡像圖片b2、全鏡像圖片b3.
圖1 鏡像圖片F(xiàn)ig.1 Mirror image
以b為例,對(duì)于訓(xùn)練集B,求出右鏡像集B1,左鏡像集B2,全鏡像集B3,以Fisher準(zhǔn)則為基礎(chǔ),分別計(jì)算出3個(gè)集合的類間散布系數(shù)與類內(nèi)散布系數(shù)之比作為權(quán)重w=[w1,w2,w3],w1+w2+w3=1.
新數(shù)據(jù)集B′:B′=w1B1+w2B2+w3B3
設(shè)Gi(x,y)表示高斯金字塔第i層,則高斯金字塔模型如下所示:
(1)
其中,N表示高斯金字塔總層數(shù),Ci表示高斯金字塔第i層圖像像素的行數(shù),Ri表示高斯金字塔第i層圖像像素的列數(shù),W(x,y)二維高斯函數(shù)定義如下所示:
(2)
如圖2所示,對(duì)于B′中的一張圖片b′,構(gòu)造3層高斯圖像金字塔,分別提取第2層LBP特征t1和第3層LBP特征t2,級(jí)聯(lián)得到LBP金字塔特征t=[t1;t2].
圖2 高斯圖像金字塔Fig.2 Gaussian image pyramid
3.2.1 融合字典學(xué)習(xí)模型
將數(shù)據(jù)集t分成訓(xùn)練集A、測(cè)試集Y以及輔助數(shù)據(jù)集Z,提出融合字典學(xué)習(xí)模型如下:
(3)
其中,字典Dc表示公共字典;字典表示D表示類別特色字典;字典Dp表示擾動(dòng)字典.模型分為重構(gòu)誤差項(xiàng)、稀疏保證項(xiàng)和判別系數(shù)項(xiàng)3部分.下面依次介紹模型每一分項(xiàng)的實(shí)際意義.
其中,Ci是Ai被Dc重構(gòu)的稀疏編碼,Xii是Ai被Di重構(gòu)的稀疏編碼.
λ1(‖C‖1+‖X‖1)為稀疏保證項(xiàng),該項(xiàng)確保編碼的稀疏性.λ1>0為正則項(xiàng)參數(shù).
將稀疏編碼構(gòu)造成圖G,將圖以鄰接矩陣W的形式表示,構(gòu)造度矩陣U,拉普拉斯矩陣Δ=U-W[23],為稀疏編碼添加拉普拉斯約束項(xiàng),保留數(shù)據(jù)相似度信息,tr(.)表示跡函數(shù),則Ψ(X,D)完整形式如下:
(4)
目標(biāo)函數(shù)(3)的完整形式為:
(5)
3.2.2 融合字典優(yōu)化
公式(5)為非凸函數(shù),其優(yōu)化過程如下所示:
1)初始化字典Dc,D,Dp;
將訓(xùn)練數(shù)據(jù)A={A1,A2,…,AK}的特征向量初始化為字典Dc原子,對(duì)字典Dc歸一化,使其l2范數(shù)為1;分別對(duì)字典D的每一類歸一化,使其l2范數(shù)為1.將訓(xùn)練數(shù)據(jù)Z={Z1,Z2,…,ZL}的特征向量初始化為字典Dp原子,對(duì)字典Dp歸一化
2)保證字典D固定,更新稀疏編碼X;保證字典Dc固定,更新稀疏編碼C;保證字典Dp固定,更新稀疏編碼P;
更新X時(shí),目標(biāo)函數(shù)轉(zhuǎn)化為:
(6)
其中,γ=λ1/2.
(7)
更新C時(shí),目標(biāo)函數(shù)轉(zhuǎn)化為:
(8)
更新P時(shí),目標(biāo)函數(shù)轉(zhuǎn)化為:
(9)
其中X,C,P通過文獻(xiàn)[24]中的方法的求解.
3)固定稀疏編碼X,更新字典D;固定稀疏編碼C,更新字典Dc;固定稀疏編碼P,更新字典Dp;
本文采用逐個(gè)更新的方法更新字典D,即當(dāng)更新第j個(gè)子字典時(shí),默認(rèn)其他子字典Dj(i≠j)已更新完畢.
目標(biāo)函數(shù)Q(Di)可轉(zhuǎn)化為:
(10)
(11)
(12)
更新Dc時(shí),目標(biāo)函數(shù)Q(Dc)可轉(zhuǎn)化為:
(13)
(14)
(15)
更新Dp時(shí),目標(biāo)函數(shù)Q(Dp)可轉(zhuǎn)化為:
(16)
(17)
(18)
融合字典學(xué)習(xí)優(yōu)化算法總體實(shí)現(xiàn)步驟如下:
算法 1.融合字典優(yōu)化算法
輸入:訓(xùn)練樣本A,輔助樣本Z,規(guī)范化參數(shù)γ
輸出:字典D和稀疏編碼X,字典Dc和稀疏編碼C,字典Dp和稀疏編碼P及相應(yīng)的標(biāo)簽
1.初始化字典D,Dc,Dp
2.固定字典D,更新稀疏編碼X;固定字典Dc,更新稀疏編碼C;固定字典Dp,更新稀疏編碼P;初始化字典后,利用公式(6)、公式(8)、公式(9)依次求解
3.固定稀疏編碼X,更新字典D;固定稀疏編碼C,更新字典Dc;固定稀疏編碼P,更新字典Dp;利用公式(12)、公式(14)、公式(17)依次更新
4.重復(fù)2和3,直到前后兩次的函數(shù)的值滿足判斷條件為止.
本文提出全局分類策略如下:
(19)
測(cè)試樣本y的重構(gòu)誤差為:
(20)
于是y的標(biāo)簽為:
identify(y)=argmini{ei}
(21)
融合字典學(xué)習(xí)的小樣本人臉鑒別算法共分為數(shù)據(jù)預(yù)處理、融合字典學(xué)習(xí)兩大步驟,整體算法如算法2所示,算法流程圖如圖3所示.
圖3 算法流程圖Fig.3 Algorithm flowchart
算法 2.融合字典學(xué)習(xí)的小樣本人臉鑒別
輸入:原始數(shù)據(jù)集B,參數(shù)λ1,λ2,w
輸出:分類標(biāo)簽
1.利用數(shù)據(jù)集B以鏡像原理構(gòu)造數(shù)據(jù)集B′利用集合B′構(gòu)造三層高斯金字塔,提取LBP特征
2.利用LBP特征及算法1習(xí)得字典和稀疏編碼
3.利用公式(19)-公式(21)得到樣本標(biāo)簽
本文實(shí)驗(yàn)環(huán)境為64位Window 10操作系統(tǒng),內(nèi)存32GB,Intel(R)Xeon(R)CPU E5-2620 v4 @ 2.10GHz,并用MatlabR2016b軟件編程實(shí)現(xiàn).實(shí)驗(yàn)圖像都經(jīng)過標(biāo)準(zhǔn)化處理,多次實(shí)驗(yàn)取平均值,共選取AR數(shù)據(jù)庫、YALE人臉數(shù)據(jù)庫、AR人臉數(shù)據(jù)庫、LFW人臉數(shù)據(jù)庫進(jìn)行實(shí)驗(yàn),比較算法包括:SRC,FDDL,CRC,SVGDL和CSICVDL(2018),F(xiàn)DDLLCSRC(2018),LKCFDDL(2018).
本文在AR數(shù)據(jù)庫上設(shè)計(jì)兩個(gè)實(shí)驗(yàn).實(shí)驗(yàn)1如圖4所示,選取每人前13張圖片進(jìn)行訓(xùn)練,其余相同類型13張圖片作為測(cè)試.實(shí)驗(yàn)隨機(jī)選取80個(gè)人構(gòu)造訓(xùn)練和測(cè)試集,其余20人作為輔助數(shù)據(jù).實(shí)驗(yàn)結(jié)果如表1所示.
圖4 AR實(shí)驗(yàn)1Fig.4 Experiment 1 on AR
如表1 所示,將數(shù)據(jù)集分別降維至{150,200,250,300,350},觀察實(shí)驗(yàn)結(jié)果可知,各算法辨別準(zhǔn)確率大致隨維數(shù)的升高而升高,本文算法在各維數(shù)下皆取得最優(yōu)結(jié)果.
表1 AR實(shí)驗(yàn)1準(zhǔn)確率結(jié)果(單位:%)Table 1 Accuracy results of AR experiment 1(unit:%)
為探求算法在面對(duì)遮擋等異常情況下的實(shí)驗(yàn)效果,在AR數(shù)據(jù)庫上設(shè)計(jì)實(shí)驗(yàn)2,如圖5所示,選取包含正常人臉和光照情況下人臉共4張作為訓(xùn)練集,所有墨鏡遮擋、圍巾遮擋圖片作為測(cè)試集合,訓(xùn)練測(cè)試及輔助數(shù)據(jù)個(gè)數(shù)如實(shí)驗(yàn)1一致,各算法在不同維度下的分類結(jié)果如表2所示.
如表2 所示,當(dāng)樣本出現(xiàn)遮擋等異常情況時(shí),本文算法和CSICVDL算法由于提取輔助數(shù)據(jù)的擾動(dòng)性算法識(shí)別率較高,本文算法表現(xiàn)效果最優(yōu).相較于實(shí)驗(yàn)1,各算法在AR數(shù)據(jù)庫的識(shí)別準(zhǔn)確率更受限于維數(shù)的影響,推測(cè)是由圖像存在遮擋時(shí)大量人臉信息丟失導(dǎo)致.
圖5 AR實(shí)驗(yàn)2Fig.5 Experiment 2 on AR
表2 AR實(shí)驗(yàn)2準(zhǔn)確率結(jié)果(單位:%)Table 2 Accuracy results of AR experiment 2(unit:%)
為探究圖片分辨率與算法分類準(zhǔn)確性的關(guān)系,本文在YALE數(shù)據(jù)庫設(shè)計(jì)兩個(gè)實(shí)驗(yàn).如圖6所示,在實(shí)驗(yàn)1中,設(shè)置訓(xùn)練集為2張,剩余9張人臉圖像為測(cè)試集.除隨機(jī)選取5人構(gòu)造輔助數(shù)據(jù)外,其余全部人數(shù)構(gòu)造訓(xùn)練集和測(cè)試集.
圖6 YALE實(shí)驗(yàn)1Fig.6 Experiment 1 on YALE
將原始圖片分辨率分別降至{100*100,75*75,50*50,25*25},如表3所示,本文算法取得最好在分類結(jié)果,各算法準(zhǔn)確率變化均較為平緩,對(duì)分辨率敏感性較低.故在此基礎(chǔ)上,取本文算法與穩(wěn)定性最好的SRC、CRC、FDDL算法,增添實(shí)驗(yàn)2,觀察算法準(zhǔn)確率與分辨率和訓(xùn)練樣本數(shù)量的關(guān)系.
表3 YALE實(shí)驗(yàn)1準(zhǔn)確率結(jié)果(單位:%)Table 3 Accuracy results of YALE experiment 1(unit:%)
在實(shí)驗(yàn)2中,如圖7所示,保持測(cè)試樣本不變,分別選取{2,3,4,5}張訓(xùn)練樣本.如圖8所示,本文算法在分辨率{100*100,75*75,50*50}下皆可取得最高識(shí)別率.觀察樣本數(shù)量與識(shí)別率的關(guān)系可知,本文算法對(duì)訓(xùn)練樣本數(shù)量的依賴性最低,算法穩(wěn)定性提高.
圖7 YALE實(shí)驗(yàn)2Fig.7 Experiment 2 on YALE
圖8 YALE實(shí)驗(yàn)2結(jié)果Fig.8 Accuracy results of YALA experiment 2
本文選擇LFW人臉數(shù)據(jù)庫中包含圖片數(shù)量大于10張的158人作為實(shí)驗(yàn)數(shù)據(jù)集.在實(shí)驗(yàn)過程中,設(shè)定輔助數(shù)據(jù)為10人,訓(xùn)練和測(cè)試數(shù)據(jù)為148人.如圖9所示,訓(xùn)練集和測(cè)試集皆隨機(jī)選取5張.將數(shù)據(jù)分別將降到{50,100,150,200,250}維,實(shí)驗(yàn)結(jié)果如表4所示.
圖9 LFW實(shí)驗(yàn)Fig.9 Experiment on LFW
從表4可以看出,各算法識(shí)別率與維數(shù)基本成正比關(guān)系,本文算法雖取得最高識(shí)別率,但在非受限人臉庫上的分類效果比非配合數(shù)據(jù)庫差,這是由于調(diào)整、裁剪時(shí)信息丟失造成的.
表4 LFW實(shí)驗(yàn)準(zhǔn)確率結(jié)果(單位:%)Table 4 Accuracy results of LFW experiment(unit:%)
4.5.1 復(fù)雜度分析
本文算法復(fù)雜度分為更新稀疏編碼和更新字典兩方面計(jì)算.
如表5、表6所示,訓(xùn)練樣本個(gè)數(shù)為n,輔助樣本個(gè)數(shù)為nl,樣本特征維數(shù)為d,ε≥1.2為常數(shù).Ki為字典Di的原子個(gè)數(shù),K為字典D的總原子個(gè)數(shù),Kc為字典Dc的原子個(gè)數(shù),Kp為字典Dp的原子個(gè)數(shù),m為迭代數(shù)目.
表5 更新稀疏編碼的算法復(fù)雜度Table 5 Algorithm complexity of updating sparse coding
表6 更新字典的算法復(fù)雜度Table 6 Algorithm complexity of updating dictionary
4.5.2 魯棒性分析
為探究實(shí)驗(yàn)參數(shù)對(duì)本文算法識(shí)別率的影響,在CMU-PIE下進(jìn)行兩項(xiàng)實(shí)驗(yàn),實(shí)驗(yàn)1如圖10所示,以2∶40的比例隨機(jī)選取訓(xùn)練和測(cè)試樣本.探究輔助數(shù)據(jù)數(shù)量對(duì)算法識(shí)別率的影響,保持訓(xùn)練和測(cè)試樣本不動(dòng),輔助數(shù)據(jù)數(shù)量分別取{8,18,28},實(shí)驗(yàn)結(jié)果如表7所示.
圖10 CMU-PIE實(shí)驗(yàn)Fig.10 Experiment on CMU-PIE
從表7可以看出,與同需輔助數(shù)據(jù)提取數(shù)據(jù)擾動(dòng)性的CSICVDL算法對(duì)比,本文算法對(duì)輔助數(shù)據(jù)個(gè)數(shù)在敏感性,低,少量輔助數(shù)據(jù)即可達(dá)到更好在分類效果.
表7 CMU-PIE實(shí)驗(yàn)準(zhǔn)確率結(jié)果1(單位:%)Table 7 Accuracy results of CMU-PIE experiment 1(unit:%)
在實(shí)驗(yàn)2探究參數(shù)對(duì)識(shí)別率的影響,以2∶10的比例隨機(jī)選取訓(xùn)練和測(cè)試樣本.參數(shù)變化{λ1,λ2}如表8所示,可看出λ2對(duì)算法準(zhǔn)確率的影響略大于λ1,兩參數(shù)在取值對(duì)算法準(zhǔn)確率影響較小,算法魯棒性較強(qiáng).
表8 CMU-PIE實(shí)驗(yàn)準(zhǔn)確率結(jié)果2(單位:%)Table 8 Acuracy results of CMU-PIE experiment 2(unit:%)
4.5.3 算法運(yùn)行效率分析
如圖11所示,實(shí)驗(yàn)1取AR數(shù)據(jù)庫80人,實(shí)驗(yàn)2選取YALE數(shù)據(jù)庫如圖6,訓(xùn)練集合為2張正常圖片,測(cè)試集合分別為{6,9}張,算法運(yùn)行時(shí)間及實(shí)驗(yàn)結(jié)果如表9所示.
圖11 AR實(shí)驗(yàn)Fig.11 Experiment on AR
表9 AR及YALE庫實(shí)驗(yàn)Table 9 Experiment on AR and YALE
綜合表9可以看出,本文算法因?yàn)檩o助數(shù)據(jù)在構(gòu)造,運(yùn)行時(shí)間較長(zhǎng),但小于同須構(gòu)造輔助數(shù)據(jù)在CSSVDL算法,且算法識(shí)別率最高,具有更高的性價(jià)比.
本文針對(duì)小樣本人臉訓(xùn)練情況,提出一種融合字典學(xué)習(xí)方法,利用Fisher判別準(zhǔn)則和LBP金字塔對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,構(gòu)造融合字典以提取數(shù)據(jù)共性、特殊性以及在異常情況下的擾動(dòng)性,并根據(jù)字典模型構(gòu)造新的分類器,利用字典重構(gòu)誤差和稀疏編碼的辨別性進(jìn)行分類.
本文在AR、YALE、CMU-PIE以及LFW 4個(gè)人臉數(shù)據(jù)庫進(jìn)行實(shí)驗(yàn),結(jié)果表明本文算法在小樣本訓(xùn)練情況下,擁有更高的識(shí)別率和魯棒性,且對(duì)姿態(tài)變化、表情變化、遮擋異常處理能力較高.但在實(shí)際的應(yīng)用中,還需進(jìn)一步討論如何提升算法運(yùn)行效率和如何降低對(duì)樣本的依賴性.