趙 雅,鐘佳瑩,呂文濤
(浙江理工大學 信息學院,杭州 310018)
歷年來,判別字典學習算法在處理視覺跟蹤、計算機視覺和圖像處理等各個領域都有著廣泛的應用。文獻[1]提出了一種通過共享特征的、具有特征結構的字典學習算法,針對每一類樣本進行字典學習,并對字典進行聚類,從而將同一學習字典下相關聯的數據點聚集在一起。文獻[2]將原始數據的局部關系,整合到基本字典學習框架中。DDL(Discriminant Dictionary Learning,判別字典學習)算法模型,考慮了類內局部信息和類間特征模糊性。由于判別字典學習依賴于預先設置的系數矩陣的初始值和樣本數量,因此該方法不建議直接應用于類間特征模糊度較大的圖像目標。
基于以上描述,本文在文獻[3]的基礎上,改進并提出了基于判別子字典學習的圖像分類優化方法。在目標函數的基礎上,構造一個子字典的低秩約束項、標簽信息約束項和拉普拉斯矩陣正則化項。針對每一類圖像,學習其對應的特定字典,使字典中包含該類別的特定原子,規避不同子字典之間原子的相關性。通過標簽信息約束項,將大系數集中在某一類別的特定原子上,加強判別能力。同時將原始樣本映射到一個新的空間中,使同一類別的相鄰點彼此靠近,增強子字典對同類樣本的重構能力。為了提高分類的準確率和規避特征圖像的字典中的重復原子,在分類過程中引入重建殘差,通過重建殘差估計測試樣本的類別標簽,提高字典的判別能力,得到算法的分類準確率。
設DC =[d1,…,dK]∈Rn×K表示第C類樣本的學習字典,表示第C類訓練樣本。在提出的快速低秩的判別子字典學習算法[3]的基礎上,加強子字典的約束重構能力,結合樣本的標簽信息提出以下目標函數:

針對不同類別的樣本,為了提高字典的判別能力,通過標簽矩陣使大系數主要集中在同一類別的原子上,盡可能地保留同一類樣本的標簽屬性并減少其它類別原子產生的誤差影響,如圖1 所示。定義一個標簽矩陣Hc∈RK×K,標簽矩陣的系數可定義為:

圖1 標簽矩陣示意圖Fig.1 Schematic diagram of label matrix

其中,Hc(m,n)表示相應向量的第(m,n)個分量。
對于目標函數中的拉普拉斯組正則化項,由于有C個不同類別的樣本,因此構建圖時,將屬于同一類別的樣本對應的頂點相互靠近并兩兩相連,構成一個緊密相連子圖,從而形成C個互不相連的子圖。已知訓練樣本和稀疏編碼矩陣可以由一個N個點組成的直線來表示訓練樣本中第K個元素的圖映射[1]:

可以得到拉普拉斯映射中圖的總間距:

則式(4)可以表示為:

綜上,對于第C類樣本,本節所提出的目標函數可以表示為:

由于目標函數現在是非凸函數,因此通過迭代逐步更新字典和稀疏表示矩陣來求解。本文分別從訓練過程與測試過程上對算法進行分析。
針對第C類樣本,首先初始化學習字典和稀疏表示矩陣。隨機初始化學習字典,在訓練樣本Zc中隨機選取K個樣本作為初始字典的原子。由基礎的字典學習目標函數得到初始化的稀疏表示矩陣:

然后,固定字典,更新稀疏表示矩陣。由式(6)可以得到第C類樣本的稀疏表示矩陣Vc:

對第C類樣本逐個更新稀疏表示矩陣,即

可以得到的解析解:


固定稀疏表示矩陣,逐列更新子字典。即第C類樣本對應的字典求解公式為:

為了充分利用已經更新的字典,選擇按原子依次更新字典,則式(11)可以改為:

對上式求解,可以得到


理想情況下,所獲得的稀疏編碼向量中的原子,除了與zi所屬類別相關的原子外,其它原子應為0。因此,針對這種情況,定義一個選擇算子δi(),使獲得的算子元素除了所屬類標簽的原子外,其余全部為0。對測試樣本在這一子類上計算重建殘差:

由于有C個子字典,因此測試樣本zc可以得到C個重建殘差,對每個重建殘差進行判斷,該測試樣本的最佳類別就是其最小殘差所對應的類別的歸屬類:

綜上,基于子分類的判別字典學習圖像分類優化算法步驟如下:
(1)輸入訓練樣本Z =[Z1,…,ZC]以及參數λ、β、γ、η;
(2)計算:通過式(17)初始化。

(3)固定字典:通過式(10)逐列更新稀疏表示系數;
(4)固定稀疏表示系數:通過式(13)逐列更新字典;
(5)重復步驟3 和步驟4,直到算法收斂或達到所設定的迭代次數;
(6)輸出學習字典Dlen。
本節將提出的新算法與多種方法進行比較。所有算法均基于Matlab R2016b 進行編寫,并在聯想天翼的windows 7 系統中運行,具有3.20-GHz Intel Core i5-6500 CPU 和4.0GB 內存。
(1)ExtendedYaleB 數據集[4]:由來自38 個人在64 種照明條件下的2 440張人臉圖像組成。每類圖像約有64 張,圖像尺寸設置為192×168。選取每類的32 張圖像作為訓練集,剩余圖像作為測試集。通過交叉驗證獲得參數,見表2。為了確保算法的準確性,選取10 次實驗結果的平均值,作為最終準確率,其結果見表3。由此可見,本文所提算法具有更好的精度,且高于文獻[3]的算法準確率。

表2 不同數據集的參數設置Tab.2 Parameter settings on different databases
(2)Caltech 101 數據集[5]:由來自101 個對象類別和一個背景類別的9 144 幅圖像組成。每類圖像的張數不等,類別包含蝴蝶、美洲獅、美洲駝、人臉、手風琴、海豚等目標。該數據集中各類樣本之間不僅千差萬別,同類樣本內也在形狀上各有差異,該數據集具有較高的復雜性。針對該情況,本文實驗選取了6 類圖片,每類圖像中選用32 張、64 張和80張進行訓練,類別的剩余圖片進行測試。
實驗首先對每類圖片進行特征提取,從16×16色塊中提取篩選描述符,這些色塊使用步長為6 的網格進行密集采樣;然后基于提取的具有3x1、1、2x2 和4x4 網格的篩分特征提取空間金字塔特征[6]。采用標準的k 均值聚類訓練,用于空間金字塔的碼本,其中k =1 024。最后,PCA 將空間金字塔特征從21 504維縮減為3 000個維度。由表3 可見本文所提算法較其他算法獲得了更好的性能。
(3)天池布匹疵點數據集:由32 類不同疵點共1 996張圖像組成。每類圖像張數不等,分別有擦洞、吊經、污漬、粗紗、破邊等多種類別。將天池布匹疵點圖像分為正常圖像與疵點圖像兩種類別,選取每類200 張圖像作為訓練樣本,剩余圖像作為測試樣本。圖像尺寸均調整為256×256。在特征提取階段,為了獲得更準確的特征信息,將疵點圖像等分為16×16 的圖像塊。對每個圖像塊進行LBP 算子子分類,然后對每個窗口提取GLCM 和HOG 特征,將所有圖像塊的特征組成該圖像的特征向量,用來表示該圖像的特征信息。以這種方法,使每個圖像的特征信息以不同的結果多次出現在特征向量中。實驗結果見表3,本文的算法精度同樣取得了明顯的提升。

表3 不同數據集的分類準確率Tab.3 Classification accuracy on different databases
在本文中,研究了一個基于判別子字典學習的圖像分類優化方法,主要針對如何減少類間模糊和類內差異的問題。通過拉普拉斯正則化矩陣、標簽信息矩陣和字典約束項,設計特定于每個子類的字典,使子字典中包含該類別的特定原子,減弱不同子字典之間原子的相關性,放大該類別特定原子的系數,將樣本的類別標簽信息和空間幾何結構整合到字典學習的目標函數中,從而增加子字典的判別重構能力。同時,本文在3 個不同的圖像數據集上進行了實驗,證明了該方法的可靠性。后續工作可以結合特定圖像的特征提取方法,在圖像分類、紋理識別等方面做進一步研究。