徐然然,吳小俊,尹賀峰
江南大學 物聯網工程學院,江蘇 無錫214122
近年來,隨著各種社交軟件的迅速普及以及網絡速度的快速提升,在線分享的照片越來越多。如何對這些圖像數據進行分類識別,成為圖像處理領域中的研究熱點。圖像像素的增加,使得通過圖像生成的空間維數成倍增加,容易導致維數災難。為了解決維數災難問題,通常對圖像進行特征提取。在特征提取階段,將圖像轉換成特征空間中的低維向量,經典的基于子空間學習的人臉識別方法有主成分分析(Principal Component Analysis,PCA)[1-2]、線性判別分析(Linear Discriminant Analysis,LDA)[3-6]等方法。
近年來,稀疏表示在很多領域得到廣泛的研究和應用。Wright 等[7]首先提出了稀疏表示分類算法(Sparse Representation based Classification,SRC)用于人臉識別,將訓練樣本組成一個過完備的字典,使用這個字典對測試樣本稀疏線性表示,然后計算相應的重構誤差,將測試樣本劃分在最小重構誤差對應的類別中。SRC使用L1 范數對表示向量進行稀疏約束,但當SRC 中樣本過多時,訓練樣本生成的字典規模增大,導致后續樣本的稀疏分解過程變慢。
針對這個問題,Zhang 等人[8]提出了協同表示分類算法(Collaborative Representation based Classification,CRC),CRC強調了協同機制在模式分類中的作用,利用L2 范數對表示向量進行有限的稀疏約束,由于引入L2范數,CRC可以得到閉式解。實驗證明,CRC能取得和SRC 相當的識別性能,同時計算復雜度明顯低于SRC。另外,Cai等人[9]從概率的角度解釋了協同表示機制,并且提出了概率協同表示分類算法(Probabilistic CRC,ProCRC),CRC 可以看作是ProCRC 的一種特殊形式。受稀疏表示在不同領域成功應用的啟發,Yin 等人[10]提出一種基于局部二值模式和稀疏表示的特征融合方法,在該方法中特征以串行方式進行融合。為了處理訓練和測試樣本都受到污損的情形,Yin 等人[11]提出一種低秩矩陣恢復算法,該方法通過低秩投影矩陣可以對污損的測試樣本進行恢復。Chen 等人[12]將稀疏表示與基于核范數的誤差矩陣回歸相結合,可以有效地將樣本中的連續遮擋移除。
考慮到不同類別之間的鑒別信息,Xu 等人[13]提出了鑒別稀疏表示分類算法(Discriminative Sparse Representation based classification,DSR),由于引入了去相關性正則項,使得圖像分類的性能得到提升,同時DSR能得到解析解,可降低計算復雜度。
無論是SRC、CRC還是他們的拓展算法[14-15],都無法避免編碼系數中的負數表示。受非負矩陣分解(Nonnegative Matrix Factorization,NMF)[16]的啟發,Xu 等人[17]提出了非負表示分類器(Non-negative Representation based Classification,NRC),NRC 去掉不利于分類的信息,提高同類樣本的貢獻比重,同時限制異類樣本貢獻比重。
雖然NRC 取得了優異的識別效果,但是NRC 沒有考慮到樣本之間的相關性,本文提出的方法在NRC 的基礎上添加鑒別項,減少相似樣本類別之間的相關性。
為了說明本文方法Discriminative Non-negative Representation based Classification(DNRC)正則項的有效性,下面給出一個例子,從Extended Yale B[18]數據集中取一個測試樣本y,該樣本的真實類別是第13類,對比DNRC 和NRC 算法在Extended Yale B 數據集上的編碼系數。
圖1(a)是用DNRC 算法得到的測試樣本的編碼系數,圖1(b)是用NRC 算法得到的測試樣本的編碼系數,圖1(a)和(b)中紅色標記是真實類別所對應的編碼系數,圖1(b)中綠色區域是NRC 錯誤分類對應的編碼系數。

圖1 分別用DNRC和NRC算法計算的編碼系數
用柱狀圖表示出測試樣本y在訓練字典上對應的殘差,該測試樣本的真實類別是第13 類,由圖2(a)看出,DNRC計算出來的最小殘差屬于第13類,因此DNRC正確地將該測試樣本分類,由圖2(b)看出,用NRC計算出來的最小殘差對應第7類,與測試樣本的真實類別不符。其中,DNRC 算法的最小殘差比為1∶1.09,NRC 算法的最小殘差比接近1∶1。

圖2 分別用DNRC和NRC算法計算的殘差
由此看來,雖然NRC 的最大編碼系數位于正確的類別,但是最大編碼系數得到的殘差并不是最小的,導致測試樣本誤分,但是本文方法在NRC 的基礎上添加去相關正則項,能夠有效地減少錯誤分類情況,提升識別率。在4 個公開數據集上的實驗表明本文方法有著突出的表現。
假設訓練集一共有L類樣本,用Xi表示第i類樣本集,訓練樣本集可以表示為X=X1,X2,…,XL,其中第i類共有m個樣本,每個樣本排列成一個列向量,表示為Xi=[xi,1,xi,2,…,xi,m],維數為d,總樣本的個數是n(n=m×L)。對于一個測試樣本y∈Rd,尋找一個稀疏系數c∈Rn,使與y不同類別樣本對應的系數較小,趨近于0。構建模型y=Xc∈Rd,使得編碼系數c稀疏。SRC的目標函數如下:

其中,λ>0 是平衡參數。求解L1 范數優化問題有很多方法,通過L1 正則化最小二乘法[19],快速迭代收縮[20]和閾值算法[21],同倫算法[22]等算法均可求解得到稀疏編碼系數,計算最小重構誤差r,第k類重構誤差如下所示:

其中ck(k=1,2,…,L)為第k類樣本對應的編碼系數,測試樣本的類別為最小重構誤差所對應的類別,如下所示:

SRC在圖像分類問題上有廣泛的應用和研究,雖然SRC 在識別性能上表現優異,但是SRC 以及SRC 的拓展算法都沒有考慮到系數編碼中負數對識別的影響。NRC 表明,編碼系數中的負元素來自訓練樣本中與測試樣本不同類別的樣本,對樣本正確的分類有不利的影響。受非負矩陣分解的啟發,NRC 對編碼系數進行非負約束,構建如下模型:

通過交替方向乘子法[23]對式(4)迭代優化,引入輔助變量z,得到如下等價形式:

構建拉格朗日函數如下:

其中,δ是拉格朗日乘子,μ是懲罰參數,依次對參數進行迭代求解,具體算法過程可以參考算法1。

DSR通過引入去相關正則項,使不同的類別更具區分性,有助于表示分類方法獲得有鑒別性的類別殘差,更好地識別測試樣本。
DSR的目標函數如下:

經過推導可以得到編碼系數c的解析解。具體算法流程如算法2所示。

本文提出的基于鑒別性非負表示的人臉識別算法(DNRC),主要在非負表示的基礎上添加鑒別性信息。第一步,采用了基于非負表示的分類器,NRC的研究表明同類的訓練樣本對于重構表示的貢獻是正的數值,異類的訓練樣本對于重構表示的貢獻是負的數值,非負表示約束可以減少其他類別對測試樣本重構表示的影響;第二步,添加正則項,減少類別之間的相關性。本文方法使用的是L2 范數,不是L1 范數或者L2,1 范數,通過推導能夠得到閉式解,比SRC的運行速度快。
本文算法的模型如下:

第i類訓練樣本對應的表示系數用ci表示,測試樣本的估計向量就可以寫成Xici,本文方法加入鑒別信息項將該項展開來看,可以寫成由此看來,為了最小化該正則項,等價于同時最小化其中i,j={1,2,…,L}。
引入輔助變量z,式(8)可以寫成如下的等價形式:

其中,λ>0 為平衡因子,平衡式(9)中的各項大小。本文利用交替方向乘子法來對式(9)進行優化求解,具體過程在下一節中詳細介紹。
將式(9)轉換成拉格朗日函數,利用交替方向乘子法進行推導優化。構建拉格朗日函數如下式所示:

首先,對式(10)的第一項求偏導,結果如下所示:

然后,對式(10)的第二、三項合并求偏導,結果下式所示:

接著,將式(10)的最后一項用f表示,即:

對式(10)的最后一項關于c求偏導,結果如下所示:


經過化簡求導,整理得到各個變量的迭代形式:

由于λ(LP+XTX)與系數編碼無關,可以事先計算,以便減少計算復雜度。通過將式(16)、(17)、(18)交替更新,重復進行,直到達到收斂條件,或者達到最大迭代次數。算法的收斂條件:當設定的誤差tolerance>0是一個足夠小的值時,同時滿足條件還有
具體算法流程如算法3所示。

通過交叉驗證法得到最優參數λ,利用算法3得到測試樣本y的表示系數,接著利用編碼系數計算重構誤差,對測試樣本y進行分類,本文算法流程如算法4所示。

為了驗證本文算法的有效性,分別在AR[24]、GT[25]、Extended Yale B 和LFW[26]這4 個公開數據集上進行實驗。在實驗中,通過與其他分類識別算法SRC、CRC、ProCRC、LRC、DSR、NRC進行對比,比較人臉識別正確率以及運行時間。在GT 數據集上研究不同維數,以及不同訓練樣本個數對識別率的影響。
AR數據集。采集了126名人員(其中男性70名,女性56 名)的彩色正面照片,對于每一個實驗人員的圖像,采集條件不同,包含光照差別、表情變化,以及是否有遮擋。本文實驗取AR數據集的子集,包括50名男性和50名女性的圖像,每個實驗對象有14張圖像,取其中7 張作為訓練樣本,另外7 張作為測試樣本。每張圖像縮放為60×43大小,通過PCA降維到600維。
GT數據集。Georgia Tech數據集采集了50名人員的彩色正面照片,每一個實驗對象有15張圖像,分別在不同姿態、表情、光照以及背景的情況下拍攝。整體像素為680×480 像素,其中人臉的平均大小為150×150 像素。經過裁剪之后是正面和稍有傾斜的人臉數據集,部分示例圖像如圖3(b)所示。實驗中對每個實驗對象隨機取8 張圖像作為訓練樣本,剩下的7 張作為測試樣本。重復10 次實驗取識別率的平均值,每張圖像縮放為125×125大小,通過PCA降維到700維。

圖3 4個數據集的部分示例圖像
Extended Yale B數據集。Extended Yale B數據集采集了38 名人員的2 414 張正面彩色圖像。每一個實驗對象最多有64 張圖像,最少有59 張圖像。裁剪后的平均像素是192×168像素,實驗環境嚴格控制不同的光照條件,部分示例圖像如圖3(c)所示。實驗中將圖像降采樣為54×48像素通過PCA將維數降到540維。
LFW數據集取8張人臉圖片作為訓練樣本,剩下的作為測試樣本,實驗結果取10 次實驗的平均識別率。包含了非限制環境下的人臉圖像。一共有1 680名人員的13 000多張人臉圖像。本文實驗使用LFW數據集的子集,使用86 名人員的1 251 張人臉圖片,每個實驗人員最少有10張人臉圖片,最多有20張人臉圖片,因此實驗中對每個實驗人員隨機選平均值。將每張圖像縮放為32×32大小。
表1 給出各種對比算法在4 個數據集上的識別率,本文算法在AR、GT、Extended Yale B、LFW上的參數λ取值分別為0.000 01、0.001、0.000 1、0.000 01 時取得最優實驗結果。

表1 各算法在4個數據集上的識別率%
從表1 看出,在4 個數據集上,本文提出算法的識別率要優于其他方法。在AR 數據集上,本文方法比DSR 高出6.15%,比NRC 高出0.43%,顯然,在AR 數據集上,本文算法比其他算法有優勢。在GT 數據集上,本文提出方法比SRC 高2.46%,比DSR 高出5.89%,比NRC 高出3.38%,并且高于其他對比算法。在Extended Yale B 數據集上的實驗結果顯示,本文提出方法比DSR 的識別率高出2.15%,比NRC 高出0.82%。LFW 數據集中的圖片是在非限制條件下收集的,識別比較困難,各種方法在LFW 數據集上的識別率都不是很高。但是本文提出方法的表現突出,比CRC 的識別結果提高了17.94%,比DSR 高出了6.93%,比NRC 高出0.48%。
算法的測試時間主要來自計算訓練樣本對應的重構誤差,由于不同的算法的編碼系數的計算方式不同,所以在運行時間上的差異很大。為了驗證本文算法效率,表2 列出了在AR、GT、Extended Yale B、LFW 這4個數據集上的總的測試時間。

表2 不同算法的測試時間對比 s
由表2可知,不同方法的測試時間與數據集的大小有關系,GT 數據集的測試時間相比其他數據集短。相同數據集下,不同識別方法的測試時間也有很大的區別。由于SRC 使用的是L1 范數計算,雖然在有些數據集上的識別結果比其他方法優異,但是SRC需要迭代優化。CRC和ProCRC可以得到解析解,大大降低測試時間,在4 個數據集上的測試時間顯示,本文算法在測試時間上很有優勢。本文提出方法的測試時間比CRC多,但是相比SRC有了很大的提升。
實驗中訓練樣本通過PCA降維的維數對實驗結果有一定影響,為此在GT 數據集上進行實驗。將樣本分別投影到到54、84、120、150、200一共5種維度的子空間中,不同維數下的識別結果如表3所示。
表3中的λ是正則項參數的取值,其中識別率最高的數值用黑體表示。為了更加直觀地研究不同維數對于實驗結果的影響,用折線圖表示識別率如圖4 所示。從圖4 可以看出,當λ取0.1 時,在5 種維數上的識別率都比其他λ取值識別率高,當PCA 的維數增加時,識別率隨之增加,但是當維數增大到150時就沒有很大的提升,降維過低時會損失信息,對識別結果不利。當維數過大時,對于識別結果沒有太大的影響,反而增加計算時間。

圖4 在GT數據集上不同維數下的識別率

表3 不同維度下本文算法的識別率 %
數據集中訓練樣本的個數對實驗結果有很大的影響,為了研究不同訓練樣本數對實驗的影響,在GT數據集上控制不同的訓練樣本個數,隨機選擇N(N=2,4,6,8,10,12)幅圖像作為訓練樣本,重復10 次實驗取實驗結果的平均值,實驗結果如表4 所示,λ作為平衡參數,識別率最好的用黑體表示。

表4 不同樣本數時本文算法的識別率 %
當訓練樣本數不同時,實驗結果最好時參數λ的取值并不相同,取值變化比較大。
在GT 數據集中,隨著訓練樣本數增加,識別率升高,從圖5直觀地看出,在所有λ的取值上,訓練樣本數為2 時,識別率很低,當訓練樣本增加時,識別率隨之增加。

圖5 在GT數據集上不同訓練樣本數的識別率
本文提出一種基于鑒別性非負表示的分類算法,利用交替方向乘子法對提出的模型進行優化。在4 個公開數據集上都取得了較好的識別效果,說明本文算法的優越性。本文算法使用的是傳統特征,近年來深度學習在各個領域取得了優異的性能,今后可在深度特征上驗證本文算法的性能。此外,本文使用的訓練樣本是干凈的(沒有遮擋和像素破壞),為了處理實際應用中的圖像,可以考慮利用低秩矩陣恢復算法對樣本進行處理,進一步提高算法的識別率。