呂文恬, 楊涵文,2, 李星燁, 高玉發, 丁昕苗
(1.山東工商學院 信息與電子工程學院, 山東 煙臺 264000; 2.山東省煙臺第一中學,山東 煙臺 264000)
隨著科學技術的不斷發展,多媒體資源日益增多,人們在互聯網上越來越傾向于用更加直觀的圖片和視頻來表達自己的觀點和看法,大量的信息隱藏在圖片中,這就需要對圖像進行進一步處理來獲取隱藏在圖像中的數據信息。圖像分類作為圖像處理的重要研究方向,是圖像處理中最基礎和最具挑戰性的工作。
圖像分類的任務主要是對圖像的內容進行分析,獲取圖片中的關鍵信息。傳統的監督方法將圖片看作一個整體,通過單示例的方法進行分類。但是實際應用中,一個圖片往往由很多具有語義的分塊組成,有些分塊可以聯合表達圖片含義,有些分塊則會對分類造成不必要的干擾,圖片示例如圖1所示。
圖1a中,人、滑板和雪地綜合可以得到該圖片的分類為滑雪;而圖1b中的玩偶則會對圖片分類為狗造成干擾。為了更好地利用圖片的分塊信息,多層次表達圖片語義,多示例學習框架[1]被引入到圖片分類中。
不同于單示例學習框架,多示例框架將圖片看作由圖像分塊示例構成的包,通過分析示例的特點預測包的標簽,已在很多圖像分類問題中取得了較好的效果[2]。

圖1 圖片示例
多示例學習最早在1997年由研究者在對藥物活性檢測時提出[3],在經過許多學者研究后可分為兩類:一類是基于示例級別的多示例算法,如APR[1]、mi-SVM[4]、SMILE[5];另一類是基于包級別的多示例算法,如MI-SVM[4]、Bayesian-kNN[6]、Citation-kNN[6]、MI-Kernal[7]。還有基于嵌入空間將多示例轉化為單示例的方法,如DD-SVM[8]、MILES[9]、MILD[10]。在多示例應用到圖像分類方面近年來許多研究者對此進行了深入研究。文獻[11]提出多示例多標記學習框架,在該框架中每個樣本不僅由多個示例描述,并且有多個標記,有利于解決圖像處理中的復雜對象問題;文獻[12]提出一種基于包級空間多示例稀疏表示的圖像分類方法,該算法應用聚類算法構造每類圖像的視覺詞匯,依據訓練樣本示例與視覺詞匯的相似度,獲得每類訓練樣本的字典矩陣。最后,對待分類樣本特征進行稀疏線性組合,預測待分類樣本的類別標簽;文獻[13]根據多示例學習能夠有效處理圖像的歧義性,提出一種基于多示例學習的CBIR方法,該方法將圖像作為多示例包,基于高斯混合模型和改進的EM算法全自動分割圖像,并提取顏色、紋理、形狀和不變矩等區域信息作為示例向量生成測試圖像包;文獻[14]針對大數據集問題,提出一種MIMLfast方法,該方法首先構造一個所有標簽共享的低維子空間,然后通過隨機梯度下降訓練標簽特定的線性模型來優化近似排序損失;文獻[15]解決關鍵示例在訓練和測試階段的分布不一致的問題,并將這個問題稱為關鍵示例移位的MIL,提出一種基于嵌入的MIKI方法來解決這個問題;文獻[16]針對大規模多示例問題提出miVLAD和miFV 2種高效、可擴展的MIL算法,使用相應的映射函數將原始MIL包映射成新的向量表示。文獻[17]基于稀疏編碼和集成學習提出一種新的多示例多標記圖像分類方法,首先利用訓練包中所有示例學習一個字典,根據該字典計算示例的稀疏編碼系數,然后基于每個包中所有示例的稀疏編碼系數計算包特征向量,從而將多示例多標記問題轉化為多標記問題,最后利用多標記分類算法進行求解;文獻[18]提出多示例多標簽學習框架在實際應用時可能存在數據的未知新標簽,并針對此問題給出一種使用增強拉格朗日優化的方法。
以上這些方法都對多示例學習在圖片分類方面的應用提供了很好的學習框架和模型,也為以后的研究提供了很好的思路。但是現有算法仍然存在以下問題:
(1) 示例特征表達多局限于低層手工特征,鑒于深度學習的強大優勢,亟需新的深度特征提高示例的表達能力。
(2) 由于包內示例的多樣性,圖像包的分塊示例對包特征的貢獻不同。如何能從包特征中剔除干擾示例影響,選擇出對包的分類有用的示例投影分量,將是基于多示例方法的圖片分類面臨的另一個問題。
為了解決上述問題,本文提出了一種基于深度特征選擇的多示例學習算法,方法框圖如圖2所示。
該方法首先對圖片進行分割,將圖片看作包,其分割出的分塊作為該包的示例構成多示例結構;然后利用深度學習的遷移模型學習方法提取分塊示例的高層語義特征,并通過向每個示例投影得到包的深度語義特征;最后引入一種高效的特征選擇方法,通過對包的投影特征進行選擇,剔除對包的分類無用的示例信息,保留關鍵示例投影信息,從而提高包特征的判別性。

圖2 算法框圖
因為圖像不同的區域表達不同的語義會對圖像分類造成干擾,所以本文先對輸入圖像進行分割。Graph cut[19]是圖像分割方面十分有效的能量優化算法,適用的特征范圍較廣,因此本文選用Graph cut方法對圖像進行分割。
Graph cut是一種基于圖論的圖像分割方法。基于圖論的分割方法的本質就是移除特定的邊,將圖劃分為若干子圖從而實現分割。首先將輸入圖像映射為帶權無向圖G=〈V,E〉,圖中每個節點N∈V對應于圖像中的每個像素,每條邊L∈E連接著一對相鄰的像素,相鄰像素之間在灰度、顏色或紋理方面的非負相似度用邊的權值來表示。
按照劃分后的子圖在內部保持相似度最大,而子圖之間的相似度保持最小的原則對圖像進行一個分割記為S,其實就是對圖的一個剪切,被分割的每個區域C∈S對應著圖中的一個子圖,每個子圖作為該圖片示例。
(1) 示例深度特征提取。由于示例標簽是未知的,如果用監督的深度學習算法將無法對示例特征進行訓練。為了解決這個問題,本文提出使用預訓練的深度學習模型進行遷移學習。
基于CNN網絡在圖像分類中的優秀表現[20-21],本文選擇使用預訓練的CNN網絡進行示例特征學習。預訓練數據則選擇類別覆蓋廣泛的ImageNet數據集[22]。該數據集有1 400多萬幅圖片,涵蓋2萬多個類別,其中大類別包括:兩棲動物、鳥、花、樂器、車輛、人物、器皿、地質構造、植物等27個類別。與現有的圖像數據集相比,ImageNet具有更大的規模和多樣性,且精度更高,為計算機視覺及相關領域的研究人員提供了非常實用的實驗數據。針對此數據集產生了很多優秀的算法和模型,其中用該數據集訓練好的VGG16模型可以保證分塊示例深度特征的語義準確性。
VGG16模型如圖3所示,由13個卷積層、3個全連接層組成。其中,最后一層全連接層為輸出標簽預測層,因此該層的輸入可以看作是樣本的高層語義。于是本文在對VGG16進行預訓練后,選擇提取示例輸入網絡后的第2個全連接層的輸出作為示例的深度特征。

圖3 VGG16模型
假設給定N個訓練圖像,經過圖像分割、特征提取和多示例建模后,可得到N個訓練樣本包{(Z1,h1),…,(Zi,hi),…,(ZN,hN)},其中:Zi={zi1,…,zij,…,zini}表示一個圖像包;zij∈R為該包的一個示例;hi∈H={0,1}為該包的標簽;ni為第i個包Zi所包含的示例數,如果存在示例zig,g∈{1,…,ni}為正示例,那么該包為正包;否則該包為負包。
(2) 包深度特征投影。為了將示例深度特征轉換為包的特征表達,本文通過包-示例相似性度量[9]將每個包映射到由訓練示例定義的特征空間:
定義包Zi到示例z的相似性度量公式為:
(1)
包Zi的投影特征向量xi,則計算為該包與所有示例的相似性距離:
xi=[d(Zi,z11),…,d(Zi,z1n1),…,d(Zi,zN1),
…,d(Zi,zNnN)]
(2)
其中,n1,n1,…,nN分別表示包Z1,Z2,…,ZN所包含的示例數。如此,可得到訓練樣本包的映射特征集合X={x1,x2,…,xN}。該映射可以很好地將示例特性融入包特征中,同時將多示例結構映射為單示例空間。
為了能進一步提高包特征表達的判別性,本文引入基于l2,1范式的特征選擇對包特征進行更進一步的處理。
(1) 特征選擇。特征選擇是選擇相關特征子集的過程,是構建用于分類、聚類等任務的魯棒機器學習模型的關鍵組成部分。如前所述,對于包中的示例來說,并非所有示例都帶有圖像的關鍵信息。從包的投影特征角度來講,即并非所有示例投影出來的深度特征在決定圖片類別時都起到關鍵作用。若能突出決定圖片類別的關鍵特征,去除無關特征對分類的影響,則可以提高判別的準確性。因此本文引入一種基于l2,1范式的特征選擇算法[23]。此算法對于數據中的異常值具有較好的魯棒性,可以高效地剔除無關示例投影的影響,從而實現高效和魯棒的特征選擇。
假設有訓練數據集為X={x1,x2,…,xN},xi∈Rm,其所對應的標簽為Y={y1,y2,…,yN},yi∈Rc,c表示類別數。那么,定義標簽擬合系數矩陣W,分類預測則可以用如下的最小二乘目標優化問題來擬合:
(3)

(4)
記
(4)式可轉化為:
(5)
利用拉格朗日方法將(5)式轉化并化簡可得解析解[22]:
U=B-1AT(AB-1AT)-1Y
(6)

于是,(5)式可以通過對U和B交替迭代求解。首先初始化B為單位陣,然后在每次迭代中,用當前的B計算U。再根據當前計算得到的U更新B,重復迭代過程,直到算法收斂。算法具體步驟如下:
輸入:A∈RN×k,Y∈RN×c
輸出:U∈Rk×c
設t=0,初始化Bt∈Rk×k為單位矩陣
對角矩陣Bt+1=
t=t+1
直到算法收斂。
該算法迭代過程簡單直接,相比于其他基于l2,1范式的優化算法更高效,同時有效地減小了無關特征對分類的影響,在很大程度上保證了分類的準確率。通過將包的投影特征送入該模型,可以實現剔除干擾示例投影特征影響的目的。
(2) 分類預測。當有未知樣本需要分類預測時,首先將樣本圖片進行分割,并送入VGG16預訓練模型學習深度特征,然后通過向訓練示例進行包特征投影,得到測試包的特征向量,并利用基于l2,1范式的特征選擇去除無關特征的影響。最后,將優化后的測試數據送入訓練好的SVM模型得到預測標簽。
為了評估本文提出的基于深度特征選擇的多示例算法,本文在多示例學習研究中廣泛使用的Corel5K[24]數據集上進行了測試。該數據集包含50個圖片類別,每個類別共有100張圖片。本實驗從50個類別中選取了8個類別圖片作為正包。針對每類正包對應從該類以外的圖片隨機選擇100個作為負包,如此構成一個多示例圖片數據集。本文構造了Tiger、Fox、Elephant、Flowers、Buses、Horses、Ships、Dogs共8個數據集,如圖4所示。

圖4 實驗數據集
本節分別通過不同特征維度和不同算法對比實驗驗證算法的有效性。實驗結果均采用10次十折交叉驗證的平均分類精度作為評價標準,實驗參數則通過訓練集的交叉驗證來確定。
(1) 不同特征維數的實驗結果。為驗證本文算法在減小無關示例影響上的有效性,本實驗利用特征選擇算法選擇了不同維數的數據特征進行分類精度結果的對比,見表1所列。

表1 不同維數的分類正確率結果對比
由表1可知,提取不同的特征維數會對實驗結果產生影響,使分類精度不同,說明并非所有的圖像分塊對分類都有貢獻,而本文提出的算法可以智能地剔除無用示例的干擾,提高了包特征的判別性。根據表1中數據可以看出,當提取的特征維數較少或較多時分類精度都不算理想,而當提取原始特征個數的10%~30%時分類結果比較好。該特點也驗證了某些圖像分塊可以聯合得出更多的語義,從而支持包標簽的預測。
(2) 不同特征提取方法的對比實驗。為驗證本文所用的特征提取算法對圖像分類正確率的提升,此小節將本文所采用的深度特征與廣泛應用的興趣點特征[25]進行了對比,結果見表2所列。
從表2可以看出,本文所采用的深度特征在數據集上的分類效果要優于興趣點特征,這是因為VGG16預訓練模型有強大的訓練學習能力,提取了圖片的高層語義特征,因此提高了示例的特征表達,對下一步特征選擇提供了良好的原始特征,從而提升了本文算法的有效性。

表2 不同特征提取方法分類正確率結果對比
(3) 不同特征選擇方法的對比實驗。本文采用了應用較廣效果也較好的隨機森林特征選擇方法與對本文應用的基于l2,1范式的特征選擇方法進行對比,結果見表3所列。
從表3可以看出,本文所用的基于l2,1范式的特征選擇方法在數據集上的分類效果要優于隨機森林特征選擇方法,這是因為基于l2,1范式的損失函數是魯棒的,并且l2,1范式正則化選擇具有聯合稀疏性的數據點的特性。

表3 不同特征選擇方法的分類正確率結果對比
(4) 不同多示例學習算法的對比實驗結果。為驗證本文所提出算法在圖像分類上的有效性,本小節對本文提出的基于深度特征選擇的多示例算法與當前普遍應用的MI-Graph、MI-SVM、MI-Kernel、miSVM、miGraph以及最近提出的MI-net[26]、BSN[27]等分類算法做了對比實驗。實驗結果見表4所列。
從表4可以看出,在基于多示例的圖像分類相關工作中,本文所提出的算法在本次實驗所選取的8個數據集上都達到了非常理想的分類效果,相比于當前普遍應用的多示例學習方法具有很強的競爭力。結果的提升來自2個方面:一方面是示例深度特征的提取,提高了示例特征的語義表達;另一方面,對包投影特征的選擇很好地剔除了正包中無用示例的干擾,提高了包特征的判別性。

表4 不同多示例算法分類正確率結果對比
本文提出了一種基于深度特征選擇的多示例學習算法。該算法在利用遷移學習模型和包特征投影獲得圖片包的深度特征后,再利用特征選擇算法剔除干擾示例對包特征的影響,最后通過支持向量機實現圖像分類。實驗表明本文算法有效可行。本文算法仍有改進空間,在今后的工作中將致力于將示例上下文特征加入到基于多示例學習的圖像分類中,研究更優秀的圖像分類模型。