呂文恬, 楊涵文,2, 李星燁, 高玉發(fā), 丁昕苗
(1.山東工商學(xué)院 信息與電子工程學(xué)院, 山東 煙臺(tái) 264000; 2.山東省煙臺(tái)第一中學(xué),山東 煙臺(tái) 264000)
隨著科學(xué)技術(shù)的不斷發(fā)展,多媒體資源日益增多,人們?cè)诨ヂ?lián)網(wǎng)上越來越傾向于用更加直觀的圖片和視頻來表達(dá)自己的觀點(diǎn)和看法,大量的信息隱藏在圖片中,這就需要對(duì)圖像進(jìn)行進(jìn)一步處理來獲取隱藏在圖像中的數(shù)據(jù)信息。圖像分類作為圖像處理的重要研究方向,是圖像處理中最基礎(chǔ)和最具挑戰(zhàn)性的工作。
圖像分類的任務(wù)主要是對(duì)圖像的內(nèi)容進(jìn)行分析,獲取圖片中的關(guān)鍵信息。傳統(tǒng)的監(jiān)督方法將圖片看作一個(gè)整體,通過單示例的方法進(jìn)行分類。但是實(shí)際應(yīng)用中,一個(gè)圖片往往由很多具有語義的分塊組成,有些分塊可以聯(lián)合表達(dá)圖片含義,有些分塊則會(huì)對(duì)分類造成不必要的干擾,圖片示例如圖1所示。
圖1a中,人、滑板和雪地綜合可以得到該圖片的分類為滑雪;而圖1b中的玩偶則會(huì)對(duì)圖片分類為狗造成干擾。為了更好地利用圖片的分塊信息,多層次表達(dá)圖片語義,多示例學(xué)習(xí)框架[1]被引入到圖片分類中。
不同于單示例學(xué)習(xí)框架,多示例框架將圖片看作由圖像分塊示例構(gòu)成的包,通過分析示例的特點(diǎn)預(yù)測包的標(biāo)簽,已在很多圖像分類問題中取得了較好的效果[2]。
圖1 圖片示例
多示例學(xué)習(xí)最早在1997年由研究者在對(duì)藥物活性檢測時(shí)提出[3],在經(jīng)過許多學(xué)者研究后可分為兩類:一類是基于示例級(jí)別的多示例算法,如APR[1]、mi-SVM[4]、SMILE[5];另一類是基于包級(jí)別的多示例算法,如MI-SVM[4]、Bayesian-kNN[6]、Citation-kNN[6]、MI-Kernal[7]。還有基于嵌入空間將多示例轉(zhuǎn)化為單示例的方法,如DD-SVM[8]、MILES[9]、MILD[10]。在多示例應(yīng)用到圖像分類方面近年來許多研究者對(duì)此進(jìn)行了深入研究。文獻(xiàn)[11]提出多示例多標(biāo)記學(xué)習(xí)框架,在該框架中每個(gè)樣本不僅由多個(gè)示例描述,并且有多個(gè)標(biāo)記,有利于解決圖像處理中的復(fù)雜對(duì)象問題;文獻(xiàn)[12]提出一種基于包級(jí)空間多示例稀疏表示的圖像分類方法,該算法應(yīng)用聚類算法構(gòu)造每類圖像的視覺詞匯,依據(jù)訓(xùn)練樣本示例與視覺詞匯的相似度,獲得每類訓(xùn)練樣本的字典矩陣。最后,對(duì)待分類樣本特征進(jìn)行稀疏線性組合,預(yù)測待分類樣本的類別標(biāo)簽;文獻(xiàn)[13]根據(jù)多示例學(xué)習(xí)能夠有效處理圖像的歧義性,提出一種基于多示例學(xué)習(xí)的CBIR方法,該方法將圖像作為多示例包,基于高斯混合模型和改進(jìn)的EM算法全自動(dòng)分割圖像,并提取顏色、紋理、形狀和不變矩等區(qū)域信息作為示例向量生成測試圖像包;文獻(xiàn)[14]針對(duì)大數(shù)據(jù)集問題,提出一種MIMLfast方法,該方法首先構(gòu)造一個(gè)所有標(biāo)簽共享的低維子空間,然后通過隨機(jī)梯度下降訓(xùn)練標(biāo)簽特定的線性模型來優(yōu)化近似排序損失;文獻(xiàn)[15]解決關(guān)鍵示例在訓(xùn)練和測試階段的分布不一致的問題,并將這個(gè)問題稱為關(guān)鍵示例移位的MIL,提出一種基于嵌入的MIKI方法來解決這個(gè)問題;文獻(xiàn)[16]針對(duì)大規(guī)模多示例問題提出miVLAD和miFV 2種高效、可擴(kuò)展的MIL算法,使用相應(yīng)的映射函數(shù)將原始MIL包映射成新的向量表示。文獻(xiàn)[17]基于稀疏編碼和集成學(xué)習(xí)提出一種新的多示例多標(biāo)記圖像分類方法,首先利用訓(xùn)練包中所有示例學(xué)習(xí)一個(gè)字典,根據(jù)該字典計(jì)算示例的稀疏編碼系數(shù),然后基于每個(gè)包中所有示例的稀疏編碼系數(shù)計(jì)算包特征向量,從而將多示例多標(biāo)記問題轉(zhuǎn)化為多標(biāo)記問題,最后利用多標(biāo)記分類算法進(jìn)行求解;文獻(xiàn)[18]提出多示例多標(biāo)簽學(xué)習(xí)框架在實(shí)際應(yīng)用時(shí)可能存在數(shù)據(jù)的未知新標(biāo)簽,并針對(duì)此問題給出一種使用增強(qiáng)拉格朗日優(yōu)化的方法。
以上這些方法都對(duì)多示例學(xué)習(xí)在圖片分類方面的應(yīng)用提供了很好的學(xué)習(xí)框架和模型,也為以后的研究提供了很好的思路。但是現(xiàn)有算法仍然存在以下問題:
(1) 示例特征表達(dá)多局限于低層手工特征,鑒于深度學(xué)習(xí)的強(qiáng)大優(yōu)勢(shì),亟需新的深度特征提高示例的表達(dá)能力。
(2) 由于包內(nèi)示例的多樣性,圖像包的分塊示例對(duì)包特征的貢獻(xiàn)不同。如何能從包特征中剔除干擾示例影響,選擇出對(duì)包的分類有用的示例投影分量,將是基于多示例方法的圖片分類面臨的另一個(gè)問題。
為了解決上述問題,本文提出了一種基于深度特征選擇的多示例學(xué)習(xí)算法,方法框圖如圖2所示。
該方法首先對(duì)圖片進(jìn)行分割,將圖片看作包,其分割出的分塊作為該包的示例構(gòu)成多示例結(jié)構(gòu);然后利用深度學(xué)習(xí)的遷移模型學(xué)習(xí)方法提取分塊示例的高層語義特征,并通過向每個(gè)示例投影得到包的深度語義特征;最后引入一種高效的特征選擇方法,通過對(duì)包的投影特征進(jìn)行選擇,剔除對(duì)包的分類無用的示例信息,保留關(guān)鍵示例投影信息,從而提高包特征的判別性。
圖2 算法框圖
因?yàn)閳D像不同的區(qū)域表達(dá)不同的語義會(huì)對(duì)圖像分類造成干擾,所以本文先對(duì)輸入圖像進(jìn)行分割。Graph cut[19]是圖像分割方面十分有效的能量優(yōu)化算法,適用的特征范圍較廣,因此本文選用Graph cut方法對(duì)圖像進(jìn)行分割。
Graph cut是一種基于圖論的圖像分割方法?;趫D論的分割方法的本質(zhì)就是移除特定的邊,將圖劃分為若干子圖從而實(shí)現(xiàn)分割。首先將輸入圖像映射為帶權(quán)無向圖G=〈V,E〉,圖中每個(gè)節(jié)點(diǎn)N∈V對(duì)應(yīng)于圖像中的每個(gè)像素,每條邊L∈E連接著一對(duì)相鄰的像素,相鄰像素之間在灰度、顏色或紋理方面的非負(fù)相似度用邊的權(quán)值來表示。
按照劃分后的子圖在內(nèi)部保持相似度最大,而子圖之間的相似度保持最小的原則對(duì)圖像進(jìn)行一個(gè)分割記為S,其實(shí)就是對(duì)圖的一個(gè)剪切,被分割的每個(gè)區(qū)域C∈S對(duì)應(yīng)著圖中的一個(gè)子圖,每個(gè)子圖作為該圖片示例。
(1) 示例深度特征提取。由于示例標(biāo)簽是未知的,如果用監(jiān)督的深度學(xué)習(xí)算法將無法對(duì)示例特征進(jìn)行訓(xùn)練。為了解決這個(gè)問題,本文提出使用預(yù)訓(xùn)練的深度學(xué)習(xí)模型進(jìn)行遷移學(xué)習(xí)。
基于CNN網(wǎng)絡(luò)在圖像分類中的優(yōu)秀表現(xiàn)[20-21],本文選擇使用預(yù)訓(xùn)練的CNN網(wǎng)絡(luò)進(jìn)行示例特征學(xué)習(xí)。預(yù)訓(xùn)練數(shù)據(jù)則選擇類別覆蓋廣泛的ImageNet數(shù)據(jù)集[22]。該數(shù)據(jù)集有1 400多萬幅圖片,涵蓋2萬多個(gè)類別,其中大類別包括:兩棲動(dòng)物、鳥、花、樂器、車輛、人物、器皿、地質(zhì)構(gòu)造、植物等27個(gè)類別。與現(xiàn)有的圖像數(shù)據(jù)集相比,ImageNet具有更大的規(guī)模和多樣性,且精度更高,為計(jì)算機(jī)視覺及相關(guān)領(lǐng)域的研究人員提供了非常實(shí)用的實(shí)驗(yàn)數(shù)據(jù)。針對(duì)此數(shù)據(jù)集產(chǎn)生了很多優(yōu)秀的算法和模型,其中用該數(shù)據(jù)集訓(xùn)練好的VGG16模型可以保證分塊示例深度特征的語義準(zhǔn)確性。
VGG16模型如圖3所示,由13個(gè)卷積層、3個(gè)全連接層組成。其中,最后一層全連接層為輸出標(biāo)簽預(yù)測層,因此該層的輸入可以看作是樣本的高層語義。于是本文在對(duì)VGG16進(jìn)行預(yù)訓(xùn)練后,選擇提取示例輸入網(wǎng)絡(luò)后的第2個(gè)全連接層的輸出作為示例的深度特征。
圖3 VGG16模型
假設(shè)給定N個(gè)訓(xùn)練圖像,經(jīng)過圖像分割、特征提取和多示例建模后,可得到N個(gè)訓(xùn)練樣本包{(Z1,h1),…,(Zi,hi),…,(ZN,hN)},其中:Zi={zi1,…,zij,…,zini}表示一個(gè)圖像包;zij∈R為該包的一個(gè)示例;hi∈H={0,1}為該包的標(biāo)簽;ni為第i個(gè)包Zi所包含的示例數(shù),如果存在示例zig,g∈{1,…,ni}為正示例,那么該包為正包;否則該包為負(fù)包。
(2) 包深度特征投影。為了將示例深度特征轉(zhuǎn)換為包的特征表達(dá),本文通過包-示例相似性度量[9]將每個(gè)包映射到由訓(xùn)練示例定義的特征空間:
定義包Zi到示例z的相似性度量公式為:
(1)
包Zi的投影特征向量xi,則計(jì)算為該包與所有示例的相似性距離:
xi=[d(Zi,z11),…,d(Zi,z1n1),…,d(Zi,zN1),
…,d(Zi,zNnN)]
(2)
其中,n1,n1,…,nN分別表示包Z1,Z2,…,ZN所包含的示例數(shù)。如此,可得到訓(xùn)練樣本包的映射特征集合X={x1,x2,…,xN}。該映射可以很好地將示例特性融入包特征中,同時(shí)將多示例結(jié)構(gòu)映射為單示例空間。
為了能進(jìn)一步提高包特征表達(dá)的判別性,本文引入基于l2,1范式的特征選擇對(duì)包特征進(jìn)行更進(jìn)一步的處理。
(1) 特征選擇。特征選擇是選擇相關(guān)特征子集的過程,是構(gòu)建用于分類、聚類等任務(wù)的魯棒機(jī)器學(xué)習(xí)模型的關(guān)鍵組成部分。如前所述,對(duì)于包中的示例來說,并非所有示例都帶有圖像的關(guān)鍵信息。從包的投影特征角度來講,即并非所有示例投影出來的深度特征在決定圖片類別時(shí)都起到關(guān)鍵作用。若能突出決定圖片類別的關(guān)鍵特征,去除無關(guān)特征對(duì)分類的影響,則可以提高判別的準(zhǔn)確性。因此本文引入一種基于l2,1范式的特征選擇算法[23]。此算法對(duì)于數(shù)據(jù)中的異常值具有較好的魯棒性,可以高效地剔除無關(guān)示例投影的影響,從而實(shí)現(xiàn)高效和魯棒的特征選擇。
假設(shè)有訓(xùn)練數(shù)據(jù)集為X={x1,x2,…,xN},xi∈Rm,其所對(duì)應(yīng)的標(biāo)簽為Y={y1,y2,…,yN},yi∈Rc,c表示類別數(shù)。那么,定義標(biāo)簽擬合系數(shù)矩陣W,分類預(yù)測則可以用如下的最小二乘目標(biāo)優(yōu)化問題來擬合:
(3)
(4)
記
(4)式可轉(zhuǎn)化為:
(5)
利用拉格朗日方法將(5)式轉(zhuǎn)化并化簡可得解析解[22]:
U=B-1AT(AB-1AT)-1Y
(6)
于是,(5)式可以通過對(duì)U和B交替迭代求解。首先初始化B為單位陣,然后在每次迭代中,用當(dāng)前的B計(jì)算U。再根據(jù)當(dāng)前計(jì)算得到的U更新B,重復(fù)迭代過程,直到算法收斂。算法具體步驟如下:
輸入:A∈RN×k,Y∈RN×c
輸出:U∈Rk×c
設(shè)t=0,初始化Bt∈Rk×k為單位矩陣
對(duì)角矩陣Bt+1=
t=t+1
直到算法收斂。
該算法迭代過程簡單直接,相比于其他基于l2,1范式的優(yōu)化算法更高效,同時(shí)有效地減小了無關(guān)特征對(duì)分類的影響,在很大程度上保證了分類的準(zhǔn)確率。通過將包的投影特征送入該模型,可以實(shí)現(xiàn)剔除干擾示例投影特征影響的目的。
(2) 分類預(yù)測。當(dāng)有未知樣本需要分類預(yù)測時(shí),首先將樣本圖片進(jìn)行分割,并送入VGG16預(yù)訓(xùn)練模型學(xué)習(xí)深度特征,然后通過向訓(xùn)練示例進(jìn)行包特征投影,得到測試包的特征向量,并利用基于l2,1范式的特征選擇去除無關(guān)特征的影響。最后,將優(yōu)化后的測試數(shù)據(jù)送入訓(xùn)練好的SVM模型得到預(yù)測標(biāo)簽。
為了評(píng)估本文提出的基于深度特征選擇的多示例算法,本文在多示例學(xué)習(xí)研究中廣泛使用的Corel5K[24]數(shù)據(jù)集上進(jìn)行了測試。該數(shù)據(jù)集包含50個(gè)圖片類別,每個(gè)類別共有100張圖片。本實(shí)驗(yàn)從50個(gè)類別中選取了8個(gè)類別圖片作為正包。針對(duì)每類正包對(duì)應(yīng)從該類以外的圖片隨機(jī)選擇100個(gè)作為負(fù)包,如此構(gòu)成一個(gè)多示例圖片數(shù)據(jù)集。本文構(gòu)造了Tiger、Fox、Elephant、Flowers、Buses、Horses、Ships、Dogs共8個(gè)數(shù)據(jù)集,如圖4所示。
圖4 實(shí)驗(yàn)數(shù)據(jù)集
本節(jié)分別通過不同特征維度和不同算法對(duì)比實(shí)驗(yàn)驗(yàn)證算法的有效性。實(shí)驗(yàn)結(jié)果均采用10次十折交叉驗(yàn)證的平均分類精度作為評(píng)價(jià)標(biāo)準(zhǔn),實(shí)驗(yàn)參數(shù)則通過訓(xùn)練集的交叉驗(yàn)證來確定。
(1) 不同特征維數(shù)的實(shí)驗(yàn)結(jié)果。為驗(yàn)證本文算法在減小無關(guān)示例影響上的有效性,本實(shí)驗(yàn)利用特征選擇算法選擇了不同維數(shù)的數(shù)據(jù)特征進(jìn)行分類精度結(jié)果的對(duì)比,見表1所列。
表1 不同維數(shù)的分類正確率結(jié)果對(duì)比
由表1可知,提取不同的特征維數(shù)會(huì)對(duì)實(shí)驗(yàn)結(jié)果產(chǎn)生影響,使分類精度不同,說明并非所有的圖像分塊對(duì)分類都有貢獻(xiàn),而本文提出的算法可以智能地剔除無用示例的干擾,提高了包特征的判別性。根據(jù)表1中數(shù)據(jù)可以看出,當(dāng)提取的特征維數(shù)較少或較多時(shí)分類精度都不算理想,而當(dāng)提取原始特征個(gè)數(shù)的10%~30%時(shí)分類結(jié)果比較好。該特點(diǎn)也驗(yàn)證了某些圖像分塊可以聯(lián)合得出更多的語義,從而支持包標(biāo)簽的預(yù)測。
(2) 不同特征提取方法的對(duì)比實(shí)驗(yàn)。為驗(yàn)證本文所用的特征提取算法對(duì)圖像分類正確率的提升,此小節(jié)將本文所采用的深度特征與廣泛應(yīng)用的興趣點(diǎn)特征[25]進(jìn)行了對(duì)比,結(jié)果見表2所列。
從表2可以看出,本文所采用的深度特征在數(shù)據(jù)集上的分類效果要優(yōu)于興趣點(diǎn)特征,這是因?yàn)閂GG16預(yù)訓(xùn)練模型有強(qiáng)大的訓(xùn)練學(xué)習(xí)能力,提取了圖片的高層語義特征,因此提高了示例的特征表達(dá),對(duì)下一步特征選擇提供了良好的原始特征,從而提升了本文算法的有效性。
表2 不同特征提取方法分類正確率結(jié)果對(duì)比
(3) 不同特征選擇方法的對(duì)比實(shí)驗(yàn)。本文采用了應(yīng)用較廣效果也較好的隨機(jī)森林特征選擇方法與對(duì)本文應(yīng)用的基于l2,1范式的特征選擇方法進(jìn)行對(duì)比,結(jié)果見表3所列。
從表3可以看出,本文所用的基于l2,1范式的特征選擇方法在數(shù)據(jù)集上的分類效果要優(yōu)于隨機(jī)森林特征選擇方法,這是因?yàn)榛趌2,1范式的損失函數(shù)是魯棒的,并且l2,1范式正則化選擇具有聯(lián)合稀疏性的數(shù)據(jù)點(diǎn)的特性。
表3 不同特征選擇方法的分類正確率結(jié)果對(duì)比
(4) 不同多示例學(xué)習(xí)算法的對(duì)比實(shí)驗(yàn)結(jié)果。為驗(yàn)證本文所提出算法在圖像分類上的有效性,本小節(jié)對(duì)本文提出的基于深度特征選擇的多示例算法與當(dāng)前普遍應(yīng)用的MI-Graph、MI-SVM、MI-Kernel、miSVM、miGraph以及最近提出的MI-net[26]、BSN[27]等分類算法做了對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果見表4所列。
從表4可以看出,在基于多示例的圖像分類相關(guān)工作中,本文所提出的算法在本次實(shí)驗(yàn)所選取的8個(gè)數(shù)據(jù)集上都達(dá)到了非常理想的分類效果,相比于當(dāng)前普遍應(yīng)用的多示例學(xué)習(xí)方法具有很強(qiáng)的競爭力。結(jié)果的提升來自2個(gè)方面:一方面是示例深度特征的提取,提高了示例特征的語義表達(dá);另一方面,對(duì)包投影特征的選擇很好地剔除了正包中無用示例的干擾,提高了包特征的判別性。
表4 不同多示例算法分類正確率結(jié)果對(duì)比
本文提出了一種基于深度特征選擇的多示例學(xué)習(xí)算法。該算法在利用遷移學(xué)習(xí)模型和包特征投影獲得圖片包的深度特征后,再利用特征選擇算法剔除干擾示例對(duì)包特征的影響,最后通過支持向量機(jī)實(shí)現(xiàn)圖像分類。實(shí)驗(yàn)表明本文算法有效可行。本文算法仍有改進(jìn)空間,在今后的工作中將致力于將示例上下文特征加入到基于多示例學(xué)習(xí)的圖像分類中,研究更優(yōu)秀的圖像分類模型。