基于結(jié)構(gòu)相似度的非負(fù)稀疏編碼的圖像分類方法
【技術(shù)領(lǐng)域】:
[0001] 本發(fā)明屬于計(jì)算機(jī)視覺圖像分類技術(shù)領(lǐng)域,具體涉及一種基于結(jié)構(gòu)相似度的非負(fù) 稀疏編碼的圖像分類方法。
【背景技術(shù)】:
[0002] 生物視覺系統(tǒng)初級階段的一個重要功能就是盡可能去除輸入刺激的統(tǒng)計(jì)冗余。初 級視皮層對外界刺激的響應(yīng)滿足稀疏性,即只有少數(shù)的神經(jīng)元被激活,相應(yīng)的編碼為稀疏 編碼。稀疏編碼,通俗地說,就是就是將一個信號表示為一組基的組合,而且要求只需要少 數(shù)的幾個基就可以將信號重構(gòu)出來。稀疏編碼已經(jīng)廣泛應(yīng)用到計(jì)算機(jī)視覺、圖像信號處理 等領(lǐng)域,例如,信號重構(gòu)、信號去噪、圖像特征提取、以及分類等應(yīng)用。
[0003] 結(jié)構(gòu)相似度指數(shù)將結(jié)構(gòu)信息定義為獨(dú)立于亮度、對比度的,反映信號結(jié)構(gòu)的屬性, 并將失真建模為亮度、對比度和結(jié)構(gòu)三個不同因素的組合。用均值作為亮度的估計(jì),標(biāo)準(zhǔn)差 作為對比度的估計(jì),協(xié)方差作為結(jié)構(gòu)相似程度的度量。
[0004] 傳統(tǒng)的稀疏編碼方法是基于最小均方誤差意義下的重構(gòu),也就是使得重構(gòu)誤差的 平方和盡可能小,同時,盡可能使得相應(yīng)的編碼稀疏化,稀疏表現(xiàn)在編碼里就是編碼的特征 向量的元素盡可能多的為零。目前的基于稀疏編碼的圖像分類方法,大部分都是基于最小 化重構(gòu)誤差平方和的編碼模型來做的,誤差平方和作為失真的評判標(biāo)準(zhǔn)不符合人眼的視覺 特性。最近的研究表明,人眼視覺系統(tǒng)的主要功能是從視覺區(qū)域提取圖像和視頻中的結(jié)構(gòu) 化信息,而誤差平方和沒有充分地考慮人眼的視覺特性,因此傳統(tǒng)的稀疏編碼重構(gòu)不能很 好地評價重構(gòu)圖像與原圖像的結(jié)構(gòu)相似度。
【發(fā)明內(nèi)容】
:
[0005] 本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供了一種基于結(jié)構(gòu)相似度的非負(fù)稀疏 編碼的圖像分類方法。
[0006] 為達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案:
[0007] 基于結(jié)構(gòu)相似度的非負(fù)稀疏編碼的圖像分類方法,包括以下步驟:
[0008] 1)對待處理的圖像數(shù)據(jù)集中所有圖像分別稠密地提取SIFT特征;
[0009] 2)對待處理的圖像數(shù)據(jù)集中所有圖像提取完SIFT特征后,隨機(jī)地選取5萬至50 萬的SIFT特征用于求待處理的圖像數(shù)據(jù)集的碼書;
[0010] 3)建立基于結(jié)構(gòu)相似度的非負(fù)稀疏編碼模型;
[0011] 4)根據(jù)步驟2)和步驟3),用隨機(jī)選取的SIFT特征來求解出該圖像數(shù)據(jù)集的碼 書;
[0012] 5)該圖像數(shù)據(jù)集的碼書求解出來后,固定碼書,對所有的SIFT特征進(jìn)行編碼;
[0013] 6)對圖像數(shù)據(jù)集中每張圖像的編碼進(jìn)行空間金字塔最大池化方法整合,得到每張 圖像的特征向量;
[0014] 7)將圖像數(shù)據(jù)集劃分為訓(xùn)練集和測試集,用訓(xùn)練集的空間金字塔最大池化的圖像 特征向量和圖像相應(yīng)的標(biāo)簽,訓(xùn)練一個分類器;
[0015] 8)對于任意一張圖像,將其空間金字塔最大池化后特征向量輸入到已經(jīng)訓(xùn)練好的 分類器中,得到了該張圖像預(yù)測類別。
[0016] 本發(fā)明進(jìn)一步的改進(jìn)在于,步驟1)中,對待處理的圖像數(shù)據(jù)集中所有圖像按照16 至32的像素塊以及6至10的滑動步長,稠密地提取每個圖像的SIFT特征。
[0017] 本發(fā)明進(jìn)一步的改進(jìn)在于,步驟3)中,設(shè)碼書為A = Iia1, a2,…,ak],A的每一列表 示一個基向量,碼書的列數(shù)為k,SIFT特征向量X1在碼書A下相應(yīng)的稀疏編碼為s i,定義編 碼矩陣S = [Sl,S2,…,sj,即編碼矩陣S的每一列是相應(yīng)的SIFT特征的結(jié)構(gòu)相似度稀疏編 碼;非負(fù)稀疏編碼模型的目標(biāo)函數(shù)如下:
[0019] 其中,i = 1,2, ···,!!,η為隨機(jī)挑選的SIFT特征的數(shù)目,j = 1,2,···,k,k為碼書 A的列數(shù),Sjl為稀疏編碼為s i的第j個分量;
[0020] 寫成矩陣形式:
[0022] 其中,I Ia1I I = 1,即碼書每一列的模長或L-2范數(shù)為1,PL1表示矩陣S的叫范 數(shù),Hl1范數(shù)等于矩陣的所有元素的絕對值的和;
[0023] S彡0表示編碼矩陣S中每一個元素都是非負(fù)的;
[0024] λ為調(diào)節(jié)結(jié)構(gòu)失真程度與編碼稀疏性的權(quán)重系數(shù),λ越大,相應(yīng)的編碼稀疏越稀 疏,且有〇· 05彡λ彡〇· 5 ;
[0025] SS頂()為結(jié)構(gòu)相似度指標(biāo)函數(shù)。
[0026] 本發(fā)明進(jìn)一步的改進(jìn)在于,步驟4)的具體實(shí)現(xiàn)方法如下:
[0027] 401)根據(jù)步驟2)中隨機(jī)地選取5萬至50萬的SIFT特征,給定權(quán)重系數(shù)λ的值;
[0028] 402)初始化碼書A :
[0029] 隨機(jī)初始化碼書Aw,由
將碼書A的每一列的模長歸一化成1,置t =I ;A(t)表示碼書的第t次迭代值,A w表示碼書初始值;
[0030] 403)隨機(jī)初始化相應(yīng)的編碼矩陣Sw,矩陣中的每一個元素都初始化為0到1之 間的一個隨機(jī)數(shù),S(t)表示編碼矩陣S的第t次迭代值;
[0031] 404)更新編碼矩陣S,具體如下:
[0033] 其中:符號一表不賦值符號,即將右邊變量的值賦給左邊的變量;符號發(fā)和?分 別表示Hardmard乘和除,即矩陣的點(diǎn)乘和點(diǎn)除;開方函數(shù)sqrtO作用于矩陣表示對相應(yīng) 矩陣的每個分量元素都做開放運(yùn)算;B+= max(B, 0),B = 0),同開方函數(shù)sqrt() 一樣,max〇和min()這里分別把矩陣的每個元素與0作比較,取相應(yīng)的最大或最小元素; CN 105184320 A I兄明 3/7 頁
H為與矩陣S同階的元素全為I的矩陣;
[0034] 405)更新碼書A,具體如下:
[0036] 其中,〇為優(yōu)化碼書的梯度下降步長,且
h的取值范圍為 0. 01~0. 1,分子max {I Ag I}表示碼書A中元素絕對值的最大值,分母·
表示E 關(guān)于碼書A的梯度矩陣V4J?的所有元素絕對值的平均值,
上標(biāo)T表 示矩陣或向量的轉(zhuǎn)置,P表示懲罰系數(shù),F(xiàn)為非負(fù)稀疏編碼模型的目標(biāo)函數(shù);
[0037] 406)如果目標(biāo)函數(shù)值前后兩次的相對該變量小于10 6,或者達(dá)到預(yù)定的迭代次 數(shù),就停止執(zhí)行,得碼書矩陣A ;否則,置t = t+Ι,轉(zhuǎn)到步驟403)。
[0038] 本發(fā)明進(jìn)一步的改進(jìn)在于,
其中,
即D是一個對角矩陣,它的對角元素分別是 ; I是與D同階的單位矩陣。
[0039] 本發(fā)明進(jìn)一步的改進(jìn)在于,步驟5)中,在目標(biāo)函數(shù)中將碼書固定,按照
來計(jì)算SIFT特征X的基于結(jié)構(gòu)相似度的非負(fù)稀疏編碼s。
[0040] 相對于現(xiàn)有技術(shù),本發(fā)明具有如下的優(yōu)點(diǎn):
[0041] 本發(fā)明通過將結(jié)構(gòu)相似度指數(shù)引入到稀疏編碼方法里面,改變傳統(tǒng)的編碼方式, 提高編碼的質(zhì)量,使得編碼更符合人類視覺系統(tǒng)的編碼方式,然后把相應(yīng)的編碼進(jìn)行空間 金字塔最大池化的方式進(jìn)行整合,可以得到圖像的特征向量,進(jìn)而將空間金字塔最大池化 后的特征向量應(yīng)用于圖像分類。
[0042] 本發(fā)明去掉了傳統(tǒng)稀疏編碼方法中的基于最小均方誤差的重構(gòu)失真度量,用結(jié)構(gòu) 相似度作為重構(gòu)失真的度量,提出了基于結(jié)構(gòu)相似度的非負(fù)稀疏編碼模型,該方可以對任 何向量化的特征進(jìn)行編碼,是一種符合人眼視覺特性的編碼方法。
[0043] 本發(fā)明對圖像稠密地提取SIFT特征,對SIFT特征進(jìn)行基于結(jié)構(gòu)相似的非負(fù)稀疏 編碼,對編碼進(jìn)行空間金字塔最大池化便得到了整幅圖像的一個特征向量,將得到的特征 向量用于圖像分類。
【附圖說明】:
[0044] 圖1為本發(fā)明基于結(jié)構(gòu)相似度的非負(fù)稀疏編碼的圖像分類方法的流程圖。
[0045] 圖2為空間金字塔最大池化示意圖。
【具體實(shí)施方式】:
[0046] 以下結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。
[0047] 本發(fā)明試圖從結(jié)構(gòu)相似度的角度來尋找相應(yīng)的稀疏編碼,本發(fā)明引入結(jié)構(gòu)相似度 作為信息保持程度的重要衡量指標(biāo),然后加上非負(fù)稀疏約束,給出了基于結(jié)構(gòu)相似度的非 負(fù)稀疏編碼模型。之所以要求編碼的非負(fù)性,是因?yàn)榉秦?fù)的編碼在應(yīng)用中具有更好的穩(wěn)定 性。
[0048] 給定信號X和y,X,y e Rn,結(jié)構(gòu)相似度的定義如下:
[0050] 其中,
r X1為信號X的第i個分量元素,
I1為信號y 的第i個分量元素 ,σ .和σ y分別表示信號X和y的標(biāo)準(zhǔn)差,
,
表示信號X和y的協(xié)方差,
(KC1, C2< < 1為避免分母為0而特設(shè)的兩個極小的正常數(shù),結(jié)構(gòu)相似度越接近1,說明這兩 個特征越接近。因此,I-SS頂(x,y)可以作為衡量特征失真的程度。
[0051] 如圖1所示,本發(fā)明基于結(jié)構(gòu)相似度的非負(fù)稀疏編碼的圖像分類方法,包括以下 步驟:
[0052] 1):對數(shù)據(jù)集的每一幅圖片按照一定大小的像素塊(例如16X 16像素大小的圖像 塊)和事先確定的上下左右滑動步長(例如6像素的滑動步長),稠密地提取SIFT特征。
[0053] 2):從所提取的所有SIFT特征中,隨機(jī)地選取η (例如,20萬)個SIFT特征,所選 取的全部特征形成一個矩陣,記為X,記X = [X1, x2,…,xj ;每一列Xie Rpxi Q = 1,2,…,η) 表示一個SIFT特征向量,ρ表示所提取的SIFT特征的維數(shù),如果SIFT特征向量為128維 時,那么p = 128,這里所選取的全部SIFT特征用于求該數(shù)據(jù)集的碼書。
[0054] 3):設(shè)碼書為A = [ai,a2, 一,aj,A的每一列表示一個基向量,碼書的列數(shù)為k, SIFT特征向量Xi (i = 1,2,…,η)在碼書A下的稀疏編碼為Si (i = 1,2,…,η),定義編碼 矩陣S= [Sl,S2,…,sj,。下面給出非負(fù)稀疏編碼模型的目標(biāo)函數(shù):
[0056] 其中,i = 1,2,…,η,η為隨機(jī)挑選的SIFT特征的數(shù)目,j = 1,2,…,k,k為碼書 的列數(shù),Sjl為稀疏編碼為s i的第j個分量;
[0057] 寫成矩陣形式:
[0059] 其中,I |a」I = 1,即碼書每一列的模長或L-2范數(shù)為1(向量的L-2范數(shù)等于其所 有元素平方和的平方根),要求碼書中的每一個基的模長為1是為了防止出現(xiàn)平凡解,PL 表示矩陣S的HI1范數(shù),m i范數(shù)等于矩陣的所有元素的絕對值的和。S多O表示矩陣S中每 一個元素都是非負(fù)的。目標(biāo)函數(shù)中,第一項(xiàng)的作用是為了保證重構(gòu)的特征與原特征盡可能 的結(jié)構(gòu)相似,是對重構(gòu)失真的一種衡量,在傳統(tǒng)的稀疏編碼模型中,重構(gòu)失真是用誤差的平 方和來衡量的,而本發(fā)明是用結(jié)構(gòu)相似度