緱新科 高慶東
(蘭州理工大學(xué) 蘭州 730000)
深度學(xué)習(xí)是近年來研究的熱門課題,它有模擬人類大腦結(jié)構(gòu)的功能,通過組合底層特征形成更加抽象有效的特征表達(dá)來完成對圖像的整體描述,廣泛應(yīng)用在圖像識別、語音識別、自然語言處理等領(lǐng)域。大量實(shí)驗(yàn)證明用深度學(xué)習(xí)的方法做圖像處理優(yōu)于傳統(tǒng)的圖像處理方法。自動(dòng)編碼器(Sparse Auto Encoder,SAE)是典型的深度學(xué)習(xí)網(wǎng)絡(luò),它在2006 年由 Hinton[3]提出,SAE 是一種較成熟無監(jiān)督學(xué)習(xí)算法,在特征提取中有很好的表現(xiàn),但是對數(shù)據(jù)集有過強(qiáng)的依賴,當(dāng)訓(xùn)練數(shù)據(jù)集較小時(shí)提取的特征對樣本的表達(dá)能力較差。梯度方向直方圖算法(HOG)是在 2005 年由 Dalal[1]提出,該方法可以很好地提取單張樣本圖像的特征,該特征可以很好地描述圖像的輪廓信息,但是HOG 特征不包括樣本的類別信息。本文結(jié)合以上兩種方法用HOG 特征減小SAE 對于樣本集大小的依賴性,通過SAE 對HOG特征添加樣本類別信息。使用該方法提取Jochen.Triesch 數(shù)據(jù)集上手勢圖像特征,可以很好地表達(dá)圖像樣本,并且作為分類器的訓(xùn)練數(shù)據(jù)。
一副圖像中局部目標(biāo)的表象和形狀能夠被梯度或邊緣的方向密度分布很好的表示,其本質(zhì)是梯度的統(tǒng)計(jì)信息而梯度主要存在于邊緣的地方通過計(jì)算圖像局部區(qū)域內(nèi)梯度的大小和方向來構(gòu)造HOG 特征,該特征包含的是圖像的輪廓信息,獲取HOG特征具體分為4步。
1)標(biāo)準(zhǔn)化Gamma 空間和顏色空間:減少光照干擾和抑制噪聲,標(biāo)準(zhǔn)化公式為式(1)。
其中g(shù)amma=1/2,未經(jīng)過標(biāo)準(zhǔn)化和標(biāo)準(zhǔn)化后對比如圖1所示。
圖1 原圖(左)與標(biāo)準(zhǔn)化圖(右)
2)圖像梯度計(jì)算:將圖像分成胞元分別計(jì)算胞元內(nèi)像素點(diǎn)的梯度,梯度計(jì)算公式如式(2)、(3)。
其中Gx(x,y),Gy(x,y)分別為X 方向上的梯度和Y方向上的梯度,胞元內(nèi)像素點(diǎn)的梯度計(jì)算和方向計(jì)算如式(4)、(5)。
3)空間和方向上梯度統(tǒng)計(jì):將胞元內(nèi)的梯度進(jìn)行統(tǒng)計(jì)每個(gè)像素點(diǎn)的梯度方向可能是范圍0~180°之間的的任意值,經(jīng)過Dalal 等的證明將方向角度分為9 等份(bin)時(shí)獲得的識別效果最佳,bin 數(shù)越大意味著計(jì)算量越大對于實(shí)際的效果并沒有明顯改善,本文使用的圖像為64×64 的灰度圖,首先將圖片分為16×16 的塊再將塊分為8×8 的胞元,塊的移動(dòng)步長為8×8,每個(gè)胞元內(nèi)的梯度方向使用9 等份來做方向等分。最終的特征個(gè)數(shù)計(jì)算如下:
4)歸一化處理:將得到的特征進(jìn)行歸一化處理可以增強(qiáng)特征的魯棒性。將特征串行組成特征向量,歸一化函數(shù)使用如式(6)( μ 為防止分母為0 選取較小的一個(gè)值本文取0.002):
fh即為圖像的HOG 特征,該特征可以有效地表示手勢圖像蘊(yùn)含的信息。將HOG 特征擴(kuò)展為圖像信息時(shí)的效果如圖2所示。
圖2 原圖(左)與梯度圖(右)
自編碼器是一種無監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)該結(jié)構(gòu),主要由輸入層,隱藏層和輸出層組成,層與層之間是全連接關(guān)系,輸出層神經(jīng)元個(gè)數(shù)等于輸入層神經(jīng)元個(gè)數(shù),自編碼網(wǎng)絡(luò)如圖3所示。
圖3 自編碼網(wǎng)絡(luò)
對于輸入數(shù)據(jù) X=[x1,x2,…,xN]第j 個(gè)隱藏層神經(jīng)元的輸出計(jì)算如式(7)所示
其中激活函數(shù)表示為式(8),wij為輸入層與隱藏層的連接權(quán)值bj為隱藏層偏置。
輸出層的輸出可以看做輸入的重構(gòu)其表達(dá)為式(9)。
自編碼器的目標(biāo)是讓重構(gòu)輸出盡量接近實(shí)際輸入,使用最小平方誤差函數(shù)來描述這種關(guān)系其表達(dá)式為式(10)。
為防止網(wǎng)絡(luò)過擬合問題在誤差函數(shù)中增加權(quán)重衰減項(xiàng)對權(quán)值大小進(jìn)行限制,誤差函數(shù)的表達(dá)為式(11)。
其中l(wèi) 表示網(wǎng)絡(luò)層間的權(quán)值分布,λ 表示正則項(xiàng)系數(shù),物理含義表示正則化項(xiàng)對于整個(gè)網(wǎng)絡(luò)誤差的影響力大小。
稀疏自編碼器(SAE)是根據(jù)自編碼器改進(jìn)而來。在圖像處理中稀疏性約束能夠使得編碼表達(dá)更有實(shí)際意義,因此本文在特征提取中加入了稀疏性限制。通過對隱藏層響應(yīng)添加約束條件使得隱藏層大部分神經(jīng)元處于“抑制”狀態(tài),只有少數(shù)處于“興奮”狀態(tài)。對隱藏層的約束限制反映在數(shù)學(xué)表達(dá)上是通過代價(jià)函數(shù)添加隱藏層輸出信息。在設(shè)置稀疏參數(shù)時(shí)首先計(jì)算隱藏層的平均活躍度也就是隱藏層神經(jīng)元輸出結(jié)果的均值,計(jì)算如式(12)。
設(shè)置稀疏性參數(shù)ρ,通常是一個(gè)接近0 的比較小的值(本文選取 ρ=0.1),當(dāng) ρ 與稀疏性參數(shù)相等時(shí),隱藏層神經(jīng)元的平均活躍度接近0,為實(shí)現(xiàn)這一限制選擇一個(gè)有效的懲罰項(xiàng)因子函數(shù),本文選擇相對熵函數(shù)該函數(shù)如式(14)。
其中Z表示隱藏層神經(jīng)元的個(gè)數(shù):
KL( ‖ρ ρ?)是一個(gè)以ρ 為均值和一個(gè)以ρ?為均值的兩個(gè)伯努分布之間的相對熵。加入正則化項(xiàng),加入稀疏因子項(xiàng)后SAE的最終損失函數(shù)為式(15)。
其中μ 為稀疏因子項(xiàng)對整體損失影響大小的比率一般選擇3 附近的值,本文正則項(xiàng)系數(shù)為λ=3e-3,稀疏因子項(xiàng)系數(shù)為μ=3。
在訓(xùn)練SAE網(wǎng)絡(luò)時(shí)使用BP算法和隨機(jī)梯度下降算法,可以有效地減小損失函數(shù),避免網(wǎng)絡(luò)陷入局部最優(yōu)解,每一個(gè)SAE 都是單獨(dú)訓(xùn)練,訓(xùn)練完成后上一個(gè)網(wǎng)絡(luò)隱藏層的輸出作為下一個(gè)網(wǎng)絡(luò)的輸入,最終形成一個(gè)完整的可用的圖像特征提取網(wǎng)絡(luò),用該網(wǎng)絡(luò)提取的圖像特征作為分類器的訓(xùn)練集用來訓(xùn)練分類器。
SVM 分類器是一種應(yīng)用廣泛而且效果顯著的分類器,一般用來解決線性可分的分類問題,其工作原理是將輸入的特征向量映射到Hilbert 空間里,在這個(gè)高維空間里求得一個(gè)超平面,使得這個(gè)超平面對于樣本具有最大分類間隔,其核心本質(zhì)問題是求解拉格朗日條件極值下的對偶問題。
超平面函數(shù)h(x)=w ?x+b,樣本之間的最大距離為2 ‖ ‖w2正確分類條件的數(shù)學(xué)表達(dá)如式(16)。
最終分類問題表達(dá)式為
通過求解該條件極值解得SVM的分類超平面。
對于線性不可分的問題用核函數(shù)的方法將特征映射到更高的空間維度去實(shí)現(xiàn)線性可分,核函數(shù)K(x,xj)使用時(shí)對原來的特征空間進(jìn)行轉(zhuǎn)化,使原來的特征空間經(jīng)過核函數(shù)變化向高維空間拓展,在拓展后的特征空間上數(shù)據(jù)集是線性可分的,所以分類超平面可以找到,對于使用核函數(shù)的SVM 其本質(zhì)仍然是拉格朗日條件極值的對偶問題,不同的是在原表達(dá)式的基礎(chǔ)上將(xi?xj) 替換為 K(x,xi) 。由于SVM 分類器只對樣本中的個(gè)別支持向量代表的樣本比較敏感,所以對于訓(xùn)練集的大小沒有依賴性,對噪聲圖片具有很強(qiáng)的魯棒性,在使用核函數(shù)的情況下可以進(jìn)行高維特征空間下的分類。常用的核函數(shù)有4 種:1)線性核函數(shù);2)多項(xiàng)式核函數(shù);3)徑向基核函數(shù);4)Sigmoid 核函數(shù)。經(jīng)過試驗(yàn)對比幾種核函數(shù)在分類結(jié)果上的表現(xiàn),使用徑向基核函數(shù)時(shí)準(zhǔn)確率較高所以本文使用的核函數(shù)是徑向基函數(shù),表達(dá)式為
σ 的取值一般為0.001~0.006,本文取0.006。
首先將圖像轉(zhuǎn)化為固定格式的灰度圖像,每張圖像包含相同數(shù)目的像素特征,圖像集為X=[x1,x2,…,xn],標(biāo)簽集為 L=[l1,l2,…,lx]。
Step 1:提取圖像的HOG 特征每幅圖像都具有相同特征維度,將提取的圖像特征構(gòu)成圖像數(shù)據(jù)集。
Step 2:使用HOG 算法提取到的特征來訓(xùn)練SAE,將訓(xùn)練結(jié)果保存,訓(xùn)練過程中保證每個(gè)SAE網(wǎng)絡(luò)隱藏層是下一個(gè)SAE網(wǎng)絡(luò)的輸入,最終的輸出為最后一個(gè)SAE 網(wǎng)絡(luò)隱藏層的輸出。每個(gè)SAE 網(wǎng)絡(luò)都是單獨(dú)訓(xùn)練,將訓(xùn)練結(jié)果保存。
Step 3:用SAE 獲得的圖像特征集來訓(xùn)練SVM分類器獲得分類模型:
Step 4:首先將測試圖像經(jīng)過HOG 做特征提取,再通過SAE 做特征提取壓縮,最后輸入到SVM分類器中獲得最終結(jié)果。
SAE 在整個(gè)流程中的作用是提取HOG 特征中的有價(jià)值信息并做數(shù)據(jù)壓縮。這樣可以加快算法速度提高準(zhǔn)確率。與目前的用于圖像特征提取的卷積神經(jīng)網(wǎng)絡(luò)(CNN)相比雖然CNN 在應(yīng)用中具有良好的表現(xiàn),但是其性能的好壞取決于有標(biāo)記訓(xùn)練樣本的多少,對于樣本集的大小有過強(qiáng)的依賴性而且收集有標(biāo)簽數(shù)據(jù)也是其中關(guān)鍵和艱難的一步,本文中使用的方法在體征提取部分無需標(biāo)簽數(shù)據(jù),減少了數(shù)據(jù)收集的工作,在訓(xùn)練模型的過程中可以人工生成較多的數(shù)據(jù)。
為驗(yàn)證本文設(shè)計(jì)算法的有效性,選擇Jochen.Triesch手勢庫中的圖像數(shù)據(jù)作為訓(xùn)練集和驗(yàn)證集,訓(xùn)練集數(shù)據(jù)通過HOG 提取特征,再通過SAE 提取和壓縮特征,最后作為訓(xùn)練SVM 分類器的數(shù)據(jù),完成訓(xùn)練后保存模型,在預(yù)測單張圖像數(shù)據(jù)時(shí)直接調(diào)用模型即可。本文實(shí)驗(yàn)部分在vs2012軟件上實(shí)現(xiàn)。
Jochen.Triesch 手勢庫共包含10 種字母手勢每種手勢包含24 個(gè)人分別在亮,暗,復(fù)雜3 種不同背景下采集的樣本,共計(jì)720 個(gè)手勢樣本大小從50×50到80×80不等,為了方便實(shí)驗(yàn)進(jìn)行將圖像進(jìn)行分割裁剪縮放等處理,最終得到的是大小為64×64 的樣本圖像,本文實(shí)驗(yàn)用到其中部分手勢且自定義標(biāo)簽如圖4,訓(xùn)練集數(shù)目為240 驗(yàn)證集數(shù)目為120。實(shí)驗(yàn)之初已經(jīng)對樣本集進(jìn)行了處理包括歸一化和灰度化。
圖4 從左至右以此為012345
實(shí)驗(yàn)中使用兩個(gè)SAE分別訓(xùn)練,將訓(xùn)練完成的網(wǎng)絡(luò)串聯(lián)作為特征提取模塊,并以識別正確率作為評判標(biāo)準(zhǔn)。實(shí)驗(yàn)1 在單獨(dú)考慮HOG 算法下對手勢圖像進(jìn)行分類,使用HOG 算法獲得的手勢特征為1764維,其中SVM分類器使用徑向基核函數(shù)參數(shù)σ取0.006最終結(jié)果如表1。
表1 HOG算法下分類表現(xiàn)
從表1 看出單獨(dú)使用HOG 算法在分類速度和準(zhǔn)確率上表現(xiàn)較差,特征維度較大時(shí)訓(xùn)練SVM 花費(fèi)資源較多。特征維度與分類速度有直接的關(guān)系。實(shí)驗(yàn)2 在單獨(dú)考慮SAE 算法下對于手勢圖像進(jìn)行分類,首先SAE 訓(xùn)練完成,其中SAE 網(wǎng)絡(luò)為兩個(gè),第一個(gè)SAE 隱藏層神經(jīng)元個(gè)數(shù)為2000,第二個(gè)SAE隱藏層神經(jīng)元個(gè)數(shù)為1600,最終輸入到分類器的特征維度為1600。在訓(xùn)練SAE 的過程中涉及到的超參數(shù)有正則項(xiàng)系數(shù),稀疏性參數(shù),稀疏項(xiàng)系數(shù),隨機(jī)梯度下降算法下學(xué)習(xí)率,網(wǎng)絡(luò)迭代次數(shù),根據(jù)經(jīng)驗(yàn)與實(shí)際問題結(jié)合,選擇超參數(shù)范圍如表2。
表2 超參數(shù)范圍
使用SVM分類器最終獲得的分類結(jié)構(gòu)如表3。
從表3 看出單獨(dú)使用SEA 算法在小數(shù)據(jù)集下獲得的分類效果較差,從分類速度和準(zhǔn)確率來看并沒有比傳統(tǒng)的HOG 算法更好。實(shí)驗(yàn)3 使用HOG 做特征提取,將提取的特征再使用SAE做體征提取與壓縮,最終的特征包含了單獨(dú)樣本的特征和類別特征。其中SAE 最終輸出的特征維度為300。訓(xùn)練SVM分類器得到結(jié)果如表4。
表4 HOG-SAE算法下分類表現(xiàn)
從表1、3、4 結(jié)合準(zhǔn)確率和分類速度可以看出HOG-SAE 要優(yōu)于分別單獨(dú)使用時(shí)的效果,SVM 最終所要處理的特征維度由原圖的4096轉(zhuǎn)化為300,大大縮短了SVM 的處理時(shí)間。在使用該特征訓(xùn)練SVM分類器時(shí),模型也能相對較快的收斂到誤差合理的程度。
本文通過結(jié)合傳統(tǒng)的圖像特征提取算法(HOG)與深度學(xué)習(xí)算法(SAE)在小數(shù)據(jù)集下對手勢圖像識別,實(shí)驗(yàn)證明此方法可以加快分類速度提高分類準(zhǔn)確率。無監(jiān)督學(xué)習(xí)算法SAE 起到了關(guān)鍵作用,它為有監(jiān)督學(xué)習(xí)算法提供了訓(xùn)練初始值,在實(shí)驗(yàn)中SAE 網(wǎng)絡(luò)的層數(shù)對于特征提取的效果有不可忽略的影響。此外對于分類器整體網(wǎng)絡(luò)訓(xùn)練而言通常情況下訓(xùn)練數(shù)據(jù)越多,最終獲得的準(zhǔn)確率越高對于噪聲越具有魯棒性,但是任何分類器都無法百分百正確分類,只能不斷提高分類效果。接下來的研究方向是SAE 網(wǎng)絡(luò)結(jié)構(gòu)規(guī)模與樣本集規(guī)模的關(guān)系和減小錯(cuò)分率的集成分類器。