焦健雄,孫利雷,徐 勇
1(電子科技大學(xué) 信息與通信工程學(xué)院,成都 610054)
2(貴州大學(xué) 貴州省公共大數(shù)據(jù)重點(diǎn)實(shí)驗(yàn)室,貴陽 550025)
3(貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴陽 550025)
4(哈爾濱工業(yè)大學(xué) 深圳研究生院,深圳 518055)
字典學(xué)習(xí)的目標(biāo),是學(xué)習(xí)一個(gè)過完備字典,從字典中選擇少數(shù)的字典原子,通過選擇的字典原子的線性組合來近似表示給定的原始信號(hào).字典學(xué)習(xí)在圖像降噪、復(fù)原、分類、超分辨率圖像、圖像壓縮等圖像領(lǐng)域有非常好的應(yīng)用效果[1,2].
字典學(xué)習(xí)的魯棒性非常重要[3],其不僅意味著學(xué)習(xí)獲得的字典和特征可以有效抵抗噪聲和奇異值,而且可以為模式分類任務(wù)帶來令人滿意的識(shí)別結(jié)果.利用適當(dāng)?shù)募s束可以克服噪聲和奇異值,相關(guān)標(biāo)簽和原子相關(guān)約束可以被用來達(dá)到這個(gè)目的[4].當(dāng)字典學(xué)習(xí)算法或是其他算法應(yīng)用于圖像數(shù)據(jù)時(shí),首先需要將每個(gè)圖像轉(zhuǎn)換為矢量表示形式[5],而轉(zhuǎn)換方式則有多種,例如將圖像矩陣的第一行到最后一行按照順序連接為一個(gè)矢量,或者將圖像矩陣的第一列到最后一列按照順序連接為一個(gè)矢量.
字典學(xué)習(xí)的研究者大多數(shù)把精力用于尋找良好的分類算法和表示算法.然而,在固定算法條件下,尋找如何最好利用原始數(shù)據(jù)以達(dá)到最佳性能的方法很少被研究者注意.對(duì)于圖像數(shù)據(jù),原始圖像的多重表示可以提供圖像樣本的不同觀察視角,從而提高了數(shù)據(jù)的多樣性[6],當(dāng)相同字典學(xué)習(xí)算法應(yīng)用于它們時(shí),由于多重表示的互補(bǔ)性,很有可能獲得更好的性能.多矢量表示和多視圖[7]部分相似,但多矢量表示直接從原始圖像生成,消耗的計(jì)算成本很小.
在人臉數(shù)據(jù)庫中,原始樣本的潛在樣本對(duì)于計(jì)算機(jī)視覺和分類任務(wù)很有用,因?yàn)樗鼈兒驼鎸?shí)面部圖像非常像.比較典型的潛在樣本包括虛擬面部樣本和合成面部樣本[8],例如,對(duì)稱人臉圖像獲得真實(shí)人臉的對(duì)稱結(jié)構(gòu)[9],也可以通過復(fù)雜算法生成虛擬或合成面部樣本[10].潛在的多個(gè)樣本和多矢量表示都可以提供更多外觀表示,而它們的不同點(diǎn)在于,潛在的多個(gè)樣本意味著從原始樣本中生成了新的替代樣本,多矢量表示只是原始樣本的不同排列結(jié)果.
2019年,徐勇將相同的字典學(xué)習(xí)算法應(yīng)用于原始圖像的多矢量表示,并在此基礎(chǔ)上設(shè)計(jì)了一種魯棒的字典學(xué)習(xí)方法[6].
通過對(duì)以上文獻(xiàn)可以發(fā)現(xiàn),雖然現(xiàn)有方法在人臉數(shù)據(jù)集上已經(jīng)獲得了較好的性能,但仍然存在沒有充分利用原始圖像信息的問題.為了解決這一問題,我們采用組合更多種原始圖像的矢量表示應(yīng)用到字典學(xué)習(xí)算法中,這種方法能夠充分挖掘和利用表示多樣性,提高字典學(xué)習(xí)算法的精度和魯棒性.我們?cè)诒疚姆治霾煌M合矢量表示對(duì)字典學(xué)習(xí)算法性能的影響.在第2 節(jié)中闡述研究方法.在第3 節(jié)中展示研究方法的合理性.第4 節(jié)描述實(shí)驗(yàn)結(jié)果.第5 節(jié)提出一個(gè)簡要的結(jié)論.
為了更加充分提取原始圖像的判別特征,我們通過不同掃描方式提取原始圖像的矢量表示,讓機(jī)器能夠從不同觀察角度提取原始圖像判別特征,配合合理的加權(quán)對(duì)數(shù)和方案,對(duì)分類準(zhǔn)確率和魯棒性進(jìn)行改進(jìn).
本文研究方法的主要步驟如下:
步驟1.由原始圖像直接生成N種矢量表示,每種矢量表示都是使用特定的轉(zhuǎn)換方案生成.例如,將原始圖像逐像素轉(zhuǎn)換為矢量表示就是一種矢量表示可行方案[11,12].在下一節(jié)中,設(shè)置4 類基礎(chǔ)矢量表示,每類基礎(chǔ)矢量表示有4 種矢量表示,N=16.
步驟2.將相同的字典學(xué)習(xí)算法應(yīng)用于原始圖像的每種矢量表示.因?yàn)樵紙D像有N種矢量表示,我們有N種訓(xùn)練樣本和測試樣本,從而由相同字典學(xué)習(xí)算法生成N種訓(xùn)練樣本和測試樣本的特征.
步驟3.對(duì)這N種訓(xùn)練樣本和測試樣本的特征使用相同的分類算法,并且針對(duì)每種特征,獲得所有測試樣本相對(duì)不同類別的分類分?jǐn)?shù).
步驟4.對(duì)于測試樣本,采用求和融合方案來添加該測試樣本相對(duì)同一類別的分類分?jǐn)?shù).求和融合結(jié)果被稱為該類別的測試樣本的最終分?jǐn)?shù).求和融合方案以4 類基礎(chǔ)矢量表示為基礎(chǔ)并選擇組合,獲得15 種矢量表示組合方案,得到15 種分類分?jǐn)?shù).
研究方法的流程圖如圖1所示.
圖1 研究方法的流程圖
我們將在本小節(jié)介紹設(shè)計(jì)方法的詳細(xì)信息.對(duì)于第r種樣本,我們用表示矢量形式的第i個(gè)訓(xùn)練樣本,用pr表示矢量形式的測試樣本.和pr是由原始圖像生成,使用字典學(xué)習(xí)算法獲得的和pr的特征分別是和qr,對(duì)應(yīng)的字典用Dr表示.
本文設(shè)計(jì)的矢量表示共有4 類基礎(chǔ)矢量表示形式,每類基礎(chǔ)矢量表示形式有4 種矢量表示產(chǎn)生方式,共16 種矢量表示產(chǎn)生方式.
圖2 原始圖像示意圖
第1 類基礎(chǔ)矢量表示形式:行/列順序排列表示.
1)行順序順排列:row1→row2→···→rowm?1→rowm.
2)列順序順排列:col1→col2→···→coln?1→coln.
3)行順序倒排列:rowm→rowm?1→···→row2→row1.
4)列順序倒排列:coln→coln?1→···→col2→col1.
第2 類基礎(chǔ)矢量表示形式:行/列倒序排列表示.
1)行倒序順排列:Rrow1→Rrow2→···→Rrowm?1→Rrowm.
2)列倒序順排列:Rcol1→Rcol2→···→Rcoln?1→Rcoln.
3)行倒序倒排列:Rrowm→Rrowm?1→···→Rrow2→Rrow1.
4)列倒序倒排列:Rcoln→Rcoln?1→···→Rcol2→Rcol1.
第3 類基礎(chǔ)矢量表示形式:順序行/列之字形排列表示.
1)順序行之字形順排列:row1→Rrow2→···→rowm?1→Rrowm.
2)順序列之字形順排列:col1→Rcol2→···→coln?1→Rcoln.
3)順序行之字形倒排列:rowm→Rrowm?1→···→row2→Rrow1.
4)順序列之字形倒排列:coln→Rcoln?1→···→col2→Rcol1.
第4 類基礎(chǔ)矢量表示形式:倒序行/列之字形排列表示.
1)倒序行之字形順排列:Rrow1→row2→···→Rrowm?1→rowm.
2)倒序列之字形順排列:Rcol1→col2→···→Rcoln?1→coln.
3)倒序行之字形倒排列:Rrowm→rowm?1→···→Rrow2→row1.
4)倒序列之字形倒排列:Rcoln→coln?1→···→Rcol2→col1.
在步驟3)中,通過以下方式使用分類算法獲得分?jǐn)?shù).訓(xùn)練樣本的標(biāo)簽矩陣用L表示,L的第j行行向量Lj表示第j個(gè)訓(xùn)練樣本的類別標(biāo)簽.如果第j個(gè)訓(xùn)練樣本屬于第j類,則Lj的第k個(gè)條目為1,所有其他條目為零.對(duì)于一種樣本,所有樣本的特征形成矩陣X.假設(shè)矩陣W可以將X近似轉(zhuǎn)換為L,則XW=L.我們要求W具有最小范數(shù),因此我們有的解,其中 γ是一個(gè)小的正常數(shù).對(duì)于測試樣本,使用lr=qrW計(jì)算其所需標(biāo)簽,然后我們用表示測試樣本相對(duì)于第g類的得分.labelg是第g類的類標(biāo)簽,使用one-hot 編碼形式.
在步驟4 中,求和融合方案的公式為:
求和融合方案以4 類基礎(chǔ)矢量表示作為基礎(chǔ)并對(duì)其進(jìn)行選擇組合,獲得15 種矢量表示組合方案,得到15 種分類分?jǐn)?shù).
每一類矢量表示作為基礎(chǔ)表示,用A1、A2、A3、A4 表示,將4 類基礎(chǔ)表示進(jìn)行組合,具體矢量表示組合方案為:
僅基礎(chǔ)表示:A1,A2,A3,A4;
選取兩種基礎(chǔ)表示組合:
B1(A1+A2),B2(A1+A3),B3(A1+A4),
B4(A2+A3),B5(A2+A4),B6(A3+A4);
B5(A2+A4),B6(A3+A4);
選取3 種基礎(chǔ)表示組合:
C1(A1+A2+A3),C2(A1+A2+A4),
C3(A1+A3+A4),C2(A2+A3+A4);
選取4 種基礎(chǔ)表示組合:
D1(A1+A2+A3+A4).
本文充分利用原始圖像數(shù)據(jù)的表示多樣性,為同一對(duì)象提供了更多的外觀,原始圖像更多的矢量表示意味著獲得對(duì)同一對(duì)象更全面的觀察,更充分地利用了原始圖像的信息.不同的矢量表示組合則意味著從同一對(duì)象的不同外觀組合中進(jìn)行字典學(xué)習(xí),可以通過觀察不同矢量表示組合下的性能,進(jìn)而選擇更好的矢量表示組合.
由于字典學(xué)習(xí)算法中的矩陣分解也進(jìn)一步增加了原始圖像多矢量表示的差異.具體來說,字典學(xué)習(xí)算法將原始樣本矩陣P分解為字典矩陣D和特征矩陣X,不同D的差異和不同X的差異通常比不同P的差異大.基于字典的特征表示:
從式(2)可以直觀看出來在矩陣分解之后,范數(shù)具有更大的范圍,從而數(shù)據(jù)具有更大的差異.更多矢量表示組合意味著更多的訓(xùn)練樣本以及更高的分類精確度.
采用的求和融合方案也是合理的.有兩個(gè)方面原因:
1)將第二小的得分減去最小的得分作為權(quán)值是合理的,如果第二小的得分比最小的得分大很多,則分類決策具有很高的置信度[13].
2)本文中的得分表示相異程度,采用最小的得分確定測試樣本的分類標(biāo)簽,得分越小意味著屬于相應(yīng)類別的可能性越高.并且求和融合公式采用得分的對(duì)數(shù),不僅可以保持得分的數(shù)字順序,而且擴(kuò)大了得分的差異.
所以本文采用的求和融合方案可以保持小得分的主導(dǎo)作用,有利于正確分類.
本文采用多種原始圖像不同的矢量表示意味著在實(shí)際中從不同觀測角度觀察對(duì)象.例如,行倒序順排序是在鏡子里觀察觀測對(duì)象;列倒序順排序是從旋轉(zhuǎn)180°的角度觀察觀測對(duì)象;之字形矢量表示則考慮人臉對(duì)稱性,在不同時(shí)間左臉和右臉的信息會(huì)有細(xì)微變化,之字形矢量表示可以觀察不同時(shí)間觀測對(duì)象的面部信息.采用更多不同原始圖像的矢量表示意味著擁有更大的觀測對(duì)象數(shù)據(jù)集,也就意味著字典學(xué)習(xí)算法將獲得更高的識(shí)別準(zhǔn)確度.而隨著數(shù)據(jù)集的擴(kuò)大,訓(xùn)練時(shí)間也將變長,且與數(shù)據(jù)集大小成正比.
本文在K-SVD[14]、D-KSVD[15]、LC-KSVD[16]算法上實(shí)現(xiàn)不同矢量表示組合,并比較不同矢量表示組合下相同字典學(xué)習(xí)算法的性能,實(shí)驗(yàn)中采用擴(kuò)展Yale B人臉數(shù)據(jù)庫[17],AR 人臉數(shù)據(jù)庫[18]和COIL 20 數(shù)據(jù)庫[19],每種算法執(zhí)行10 次,并記錄平均分類精確度.
擴(kuò)展Yale B 人臉數(shù)據(jù)庫包含38 個(gè)人的2,414 張正面圖像,這些圖像是在各種光照條件和表情下拍攝的.每個(gè)人有59 到64 張圖像,每張圖像被轉(zhuǎn)換為32×32 像素的大小.來自該數(shù)據(jù)庫的一些面部圖像在圖3中示出.隨機(jī)選擇每個(gè)人的10 張圖像作為訓(xùn)練樣本,其余圖像用于測試.對(duì)于K-SVD、D-KSVD、LC-KSVD算法,字典原子數(shù)從38 變?yōu)?80,間隔為38.不同矢量表示組合在擴(kuò)展Yale B 人臉數(shù)據(jù)庫上K-SVD、LC-KSVD、D-KSVD 算法識(shí)別準(zhǔn)確度分別如圖4、圖5和圖6所示.其中,a1 表示行順序順排列矢量表示.
圖3 擴(kuò)展Yale B 人臉數(shù)據(jù)庫的部分示例圖像
圖4 不同矢量表示組合在擴(kuò)展Yale B 人臉數(shù)據(jù)庫上K-SVD 算法識(shí)別準(zhǔn)確度
圖5 不同矢量表示組合在擴(kuò)展Yale B 人臉數(shù)據(jù)庫上LC-KSVD 算法識(shí)別準(zhǔn)確度
圖6 不同矢量表示組合在擴(kuò)展Yale B 人臉數(shù)據(jù)庫上D-KSVD 算法識(shí)別準(zhǔn)確度
AR 人臉數(shù)據(jù)庫包含126 個(gè)人超4000 張圖像,這些圖片分兩次拍攝而得.采集環(huán)境中的攝像機(jī)參數(shù)、光照環(huán)境、攝像機(jī)距離等都是嚴(yán)格控制的.本文采用AR 人臉數(shù)據(jù)庫的子集進(jìn)行實(shí)驗(yàn)[11],包含120 人的3120張圖像.每張AR 人臉圖像的尺寸為40×50 像素.來自該數(shù)據(jù)庫的一些面部圖像在圖7中示出.隨機(jī)選擇每個(gè)人的10 張圖像作為訓(xùn)練樣本,其余圖像用于測試.對(duì)于K-SVD、D-KSVD、LC-KSVD 算法,字典原子數(shù)從120 變?yōu)?200,間隔為120.不同矢量表示組合在AR 人臉數(shù)據(jù)庫上K-SVD、LC-KSVD、D-KSVD 算法識(shí)別準(zhǔn)確度分別如圖8、圖9和圖10所示.
圖7 AR 人臉數(shù)據(jù)庫的部分示例圖像
圖8 不同矢量表示組合在AR 人臉數(shù)據(jù)庫上K-SVD 算法識(shí)別準(zhǔn)確度
圖9 不同矢量表示組合在AR 人臉數(shù)據(jù)庫上LC-KSVD 算法識(shí)別準(zhǔn)確度
COIL20 數(shù)據(jù)庫包含不同光照條件下20 個(gè)物體的不同視角,每張圖片尺寸為32×32 像素.來自該數(shù)據(jù)庫的一些面部圖像在圖11中示出.隨機(jī)選擇每個(gè)人的10 張圖像作為訓(xùn)練樣本,其余圖像用于測試.對(duì)于K-SVD、D-KSVD、LC-KSVD 算法,字典原子數(shù)從40 變?yōu)?00,間隔為20.不同矢量表示組合在COIL20 數(shù)據(jù)庫上KSVD、LC-KSVD、D-KSVD 算法識(shí)別準(zhǔn)確度分別如圖12、圖13和圖14所示.
圖10 不同矢量表示組合在AR 人臉數(shù)據(jù)庫上D-KSVD 算法識(shí)別準(zhǔn)確度
圖11 COIL20 數(shù)據(jù)庫的部分示例圖像
圖12 不同矢量表示組合在COIL20 數(shù)據(jù)庫上K-SVD 算法識(shí)別準(zhǔn)確度
圖13 不同矢量表示組合在COIL20 數(shù)據(jù)庫上LC-KSVD 算法識(shí)別準(zhǔn)確度
圖14 不同矢量表示組合在COIL20 數(shù)據(jù)庫上D-KSVD 算法識(shí)別準(zhǔn)確度
本文提出一種基于矢量表示組合的字典學(xué)習(xí)方法,該方法通過充分利用人臉圖像的多矢量表示提升分類模型的準(zhǔn)確率和魯棒性.通過在多個(gè)人臉數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)對(duì)比可以得出:相同數(shù)量的基礎(chǔ)表示組合的得分融合數(shù)據(jù)相差很小,在各識(shí)別準(zhǔn)確度的圖中呈曲線簇;組合中的矢量表示種類越多樣,字典學(xué)習(xí)算法的識(shí)別精確度越好,具有更好的魯棒性.本文通過組合更多的原始圖像矢量表示,充分挖掘和利用表示多樣性,提高字典學(xué)習(xí)算法的分類精度.