厙向陽,車子豪,董立紅
(西安科技大學 計算機科學與技術學院,陜西 西安 710054)
網絡技術的快速發展促進了數字圖像的傳播,使得用戶可以通過互聯網的檢索工具搜索訪問感興趣的圖像資源。但互聯網的檢索工具無法理解圖像內容和語義,從而無法確定哪些圖像滿足查詢要求,在這種情況下,圖像標注是一個必需的過程[1]。然而互聯網中圖像的數量呈爆炸式增長,僅靠人工標注是無法滿足需求的。因此,圖像標注轉向尋求機器學習算法來自動完成。目前圖像自動標注方法可分為兩類:基于生成模型的方法[2-4]計算已標注圖像特征和標注詞的聯合概率分布,然后使用該模型計算每個標簽匹配待標注圖像的概率;基于判別模型的方法[5-9]將圖像標注問題視為分類問題,使用圖像的視覺特征訓練分類器,通過訓練的分類器將待標注圖像劃分到一個或多個標簽類別中。近年來,基于卷積神經網絡(convolutional neural network,CNN)的判別模型為圖像標注提供了多種方法。文獻[7]提出了CNN-MSE方法,通過改進均方誤差函數來訓練CNN網絡。文獻[8]在CNN模型中加入多標簽平滑單元構成CNN-MLSU模型。深入分析現有工作,發現基于CNN的圖像自動標注研究仍面臨兩個問題:①CNN模型中,通過不斷降采樣過程使得深層的卷積層具有較大的感受野,如果感受野遠大于物體的大小,那么很容易忽略小物體的特征,使圖片中較小的物體不容易被標注和學習。②由于圖像自動標注數據集中訓練樣本不足且標注類別之間數量差異較大,使得訓練出來的模型泛化性能較差。為解決以上問題,本文采用卷積神經網絡構造端到端的圖像標注模型,選擇VGG16作為基網絡,在其基礎上引入特征融合機制融合不同卷積層提取的多尺度特征,最后在網絡訓練時使用代價敏感損失函數,來緩解標簽分布不平衡引發的問題,進一步提升網絡的性能。
卷積神經網絡由4個部分組成:輸入層、特征提取層、全連接層和分類器。卷積神經網絡結構如圖1所示。

圖1 卷積神經網絡結構
(1)輸入層。接收預處理后的圖像數據。
(2)卷積層。假設X為原始圖像,X0為預處理后輸入網絡的圖像。Xi為第i層卷積特征圖,由卷積核和偏置項計算出,卷積計算過程如下式
Xi=f(Xi-1?wi+bi)
(1)
式中:wi表示第i層卷積中卷積核的權重矩陣;bi表示第i層卷積的偏置項;?表示2D卷積運算操作;f(·) 表示激活函數,一般采用線性整流函數(ReLU),公式如下

(2)
(3)池化層。池化層也稱子采樣層,通常使用平均池化(mean pooling)或最大池化(max pooling)。卷積操作后為了減少特征維數,降低數據復雜度,對特征進行池化操作,通過對下采樣子區域取平均值或最大值來對特征圖進行下采樣。特征提取層通過對特征圖重復執行卷積和池化操作,來遞歸提取高層特征。
(4)全連接層。在卷積神經網絡的最后一般會連接全連接層來得到最后的分類結果,經過特征提取層對圖像數據進行非線性特征提取后,輸入到全連接層對特征進行聚合。將特征提取層看成自動提取圖像特征的過程,提取完特征以后,仍需要通過全連接層來完成分類的任務。
(5)分類器。常用的分類器有Softmax分類器和Sigmoid分類器,分類器可以將最后一層全連接層的輸出轉換為當前樣本屬于每類標簽的概率分布情況。
Inception結構僅是簡單的對不同尺度的特征圖進行融合,因此,文獻[10]設計了Selective kernel(SK)網絡將多分支網絡結構與軟注意力機制相結合,有選擇地融合不同尺度的特征信息,使網絡更好獲取不同感受野提取的信息。SK網絡結構如圖2所示,主要包含Split、Fuse和Select這3個操作。

圖2 SK網絡結構
Split:使用不同尺寸的卷積核對輸入特征圖X進行特征提取,得到特征圖U1和U2。
Fuse:通過對特征圖U1、U2進行逐元素相加,然后進行全局平均池化操作得到特征圖S。將特征圖S輸入全連接層進行線性變換,提取通道維度的信息,具體操作如下所示
Z=δ(β(WS))
(3)
式中:δ(·) 為ReLU激活函數,β(·) 為批標準化操作。W∈Rd×c表示全連接層的參數,d為經過全連接層后輸出的維度。
Select:特征Z輸入全連接層,再使用Softmax函數來進行歸一化得到U1,U2的通道權重a和b。然后將通道權重乘以對應的U1,U2得到A1,A2。最后,將A1,A2逐元素相加得到最終的融合特征A。

(4)
(5)
多標簽損失(multi label loss,ML Loss)函數定義為
(6)
式中:N表示樣本數量;C表示標簽類別數;yij∈[0,1] 表示網絡預測第i個樣本中包含第j個標簽的概率,yij由下式計算
(7)
式中:xj為網絡模型最后一層第j個神經元的輸出。
融合不同卷積層的特征可以提高網絡的學習能力,低層的卷積特征具有較多的細節特征,但是噪聲多;高層卷積特征語義信息豐富,但分辨率低,易忽略細小特征。直接將高低層特征連接在一起來融合特征會引入大量無用特征,增加網絡的參數量和計算量,影響網絡的性能。因此,本文借鑒SK網絡的思想去融合不同層提取的多尺度特征,使得融合的特征能夠更加全面的描述圖像的內容,并改進損失函數引入代價敏感學習,使得不同類型標簽的誤分類代價具有較大差異。
首先將預處理后的樣本輸入到網絡模型中,利用預訓練的VGG16網絡模型的卷積層進行特征提取生成特征圖;其次將得到的特征圖輸入到采樣層進行維度調整,再輸入L2歸一化層;然后特征融合層融合不同卷積層提取的多尺度特征;最后連接融合特征與全連接層的神經元,通過分類器得到每個標簽標注樣本的概率,提取前K個概率最大的標簽作為標注結果。訓練過程中使用代價敏感損失函數對網絡參數進行訓練,經過多次訓練獲得最終的圖像標注模型。
本文對損失函數進行了修改加入權重敏感系數和錯分敏感系數,設計代價敏感的多標簽損失(cost sensitive multi label loss,CSML Loss)函數,計算公式如下
(8)

(9)
式中:Smin表示數據集中出現頻率最低的標簽的數量;Sj表示數據集中第j個標注詞出現的頻率;β表示權重控制系數,通過調節β值可以控制不同標簽在計算損失值時的權重。
式(8)中的錯分敏感系數用來控制難易標簽的權重,可以看出當預測值yij越接近真實值時,錯分敏感系數值越小。通過降低簡單標簽在計算損失值時的權重,從而降低簡單標簽的損失值,使得網絡把訓練的重點放在難標注的標簽上。權重敏感系數用來控制不同類別標簽的權重,通過提高低頻標簽的權重,從而增加低頻標簽的損失值,使得損失函數把訓練的重點放在低頻標簽上。因此,低頻標簽和難標注的標簽在計算損失值時將被賦予較大的權重,而高頻標簽和易標注的標簽將被賦予較小的權重。
2.3.1 模型框架
為了更好地解決圖像自動標注領域存在的問題,本文在VGG16模型基礎上設計了新的網絡結構,如圖3所示。網絡模型包含有13層卷積層、4層最大池化層、3層采樣層、1層特征融合層和3層全連接層。卷積層使用的是VGG16在ImageNet數據集上預訓練的參數進行初始化。本文網絡主要是在VGG16框架中添加特征融合層來融合高低卷積層提取的多尺度特征,從而提高網絡的標注性能。

圖3 本文算法網絡結構
為保證卷積特征在輸入特征融合層時在通道維度上相匹配,采樣層使用1×1的卷積在通道維度上進行降維或者升維操作。由于不同卷積層特征的激活值不同,直接對多尺度特征進行操作,會導致網絡無法穩定訓練。因此,在輸入特征融合層前進行L2歸一化操作,對卷積特征進行歸一化。
2.3.2 特征融合層
特征融合層融合操作主要分為3個部分:①從卷積特征中提取多尺度特征;②改進SK網絡融合特征;③融合層融合多尺度特征。
使用自適應最大池化(adaptive max pool,Ada-MaxPool)操作提取多尺度特征,自適應最大池化中輸入任意大小的特征圖,都能產生指定大小的輸出。因此,使用不同尺寸的自適應最大池化操作就可以提取到不同尺度的圖像特征。自適應最大池化首先需要根據輸出特征圖的大小計算濾波器的尺寸(Size)和步長(Stride),然后將得到的尺寸和步長輸入最大池化中提取特征,Size和Stride的計算公式如下
Stride=floor(inputSize÷outputSize)
(10)
Size=inputSize-(outputSize-1)×Stride
(11)
式中:floor(·) 為向下取整,inputSize為輸入特征的尺寸,outputSize為輸出特征的尺寸。
多尺度特征的提取過程如圖4所示,使用自適應最大池化操作將圖中a×a×N的特征圖轉化為1×1×N、2×2×N、4×4×N的特征圖。將3層卷積層的特征都經過自適應最大池化層進行多尺度特征提取,相同尺寸的特征輸入到改進SK網絡中進行融合。

圖4 多尺度特征提取
改進SK網絡融合特征。如圖5所示,與原始的SK網絡相比,本文去掉了Split操作,改為直接輸入從不同卷積層中提取的多尺度特征。使用SK網絡不僅能在通道維度上加強重要特征并壓縮無用特征,還能根據不同層卷積特征的重要程度來融合特征,使得不同層提取出來的特征可以相互補充,并且該過程由網絡自主學習。該操作包含以下步驟:

圖5 改進SK網絡結構
(1)輸入相同尺寸的特征圖F1、F2、F3進行對應位置元素相加得到融合特征F。再對融合特征F=[f1,f2,…,fc] 在通道維度上進行全局平均池化操作,得到代表每個通
道上全局信息的特征S∈R1×c, 計算公式如下所示
(12)
(2)特征S經過兩層全連接層,第一層對特征S進行降維得到特征圖Z∈R1×d; 第二層對特征圖Z進行升維,然后使用Softmax函數激活,生成各層卷積特征的注意力權重a,b,e∈R1×c。 具體計算公式如下所示
Z=ReLU(W1S)
(13)

(14)
式中:W1∈Rd×c表示第一層全連接層的參數,Wa、Wb、We∈Rc×d表示第二層全連接層的參數。
(3)根據計算的注意力權重對特征圖F1、F2、F3加權更新并融合,得到融合后的特征V=[v1,v2,…,vc], 如式(15)所示
V=a·F1+b·F2+e·F3
(15)
最終得到融合后尺寸為1×1×N、2×2×N、4×4×N的特征圖,并將3種不同尺度的特征輸入到融合層中。
融合多尺度特征。融合層結構如圖6所示,先通過flatten操作將特征圖展開,scale操作對展開后的特征使用不同的權重系數來進行縮放,最后通過concat操作將多尺度特征連接起來輸入到全連接層。scale操作中的權重系數可以看作去除偏置項的神經元,重要的特征設置較大的權重系數,輔助特征設置較小的權重系數,并且設置的權重系數可以在網絡學習過程中自適應調節,自動更新不同融合特征的權重值。

圖6 融合層結構
3.1.1 數據集
IAPR TC-12數據集包括19 627張圖片和291個標注詞,其中17 665張圖片用于訓練,1962張圖像用于測試。數據集涵蓋了運動、城市、風景、動物、建筑物和植物。訓練集中平均每張圖片包含5.7個標注,平均每個標簽標注347.7張圖片,最少標注詞的訓練樣本量只有44張,最多標注詞的訓練樣本量有4999張。
ESP game數據集包括20 770張圖片和268個標注詞,其中18 689張圖片用于訓練,2081張圖像用于測試。數據集涵蓋了徽標、繪畫、風景和個人肖像。訓練集中平均每張圖片包含4.7個標注,平均每個標簽標注326.7張圖片,最少標注詞的訓練樣本量只有18張,最多標注詞的訓練樣本量有4553張。
3.1.2 評價指標
(1)平均準確率P。計算數據集中每個標簽正確預測占實際預測的比例,并根據該數據集中的標簽類別數量進行求和平均,計算公式如下
(16)
式中:N表示標簽類別數;Precision(yi)表示在數據集中正確預測標簽yi的總數;Prediction(yi)表示在數據集中預測標簽yi的總數。
(2)平均召回率R。計算數據集中每個標簽正確預測占真實標注的比例,并根據該數據集中的標簽類別數量進行求和平均,計算公式如下
(17)
式中:N表示標簽類別數;Precision(yi)表示在數據集中正確預測標簽yi的總數;Ground(yi)表示在數據集中真實標注標簽yi的總數。
(3)綜合性能F1。由于平均召回率和平均準確率都是重要的評價指標,只有當平均召回率和平均準確率都高時,模型才有良好的性能。因此,需要計算F1值,以反映模型的綜合性能,計算公式如下
(18)
(4)N+指數。統計至少正確預測過1次的標簽個數,表示模型在數據集所有標簽上的覆蓋性能,計算公式如下
(19)
式中:N表示總的樣本數;Sgn(·)表示符號函數計算公式如下

(20)
實驗基于Tensorflow深度學習框架,使用NVIDIA TITANXp GPU進行計算,操作系統為Ubuntu16.04,編程語言為Python。訓練中參數設置見表1。

表1 參數設置
3.3.1 實驗方案
方案1:探究SK網絡中降維全連接層節點數d對網絡性能的影響。將降維全連接層節點數分別設置為32,64,128進行對比實驗。
方案2:損失函數比較。使用多標簽損失(ML Loss)函數和代價敏感的多標簽損失(CSML Loss)函數訓練本文設計的網絡與原始VGG16進行對比實驗。
方案3:本文方法與其它圖像標注方法進行對比。與近些年提出的先進方法進行對比,涉及方法包括:KCCA、2PKNN_ML、SEM、SNDF、ADA、CNN-Regression、CNN-MSE和CNN-MLSU。
3.3.2 結果分析
方案1:降維全連接層節點數對網絡性能影響的實驗結果見表2。

表2 不同融合方案性能對比
從表2可以看出,當降維全連接層節點數為32和64時,網絡都可以取得較優的性能;當降維全連接層節點數為128時,網絡性能較差。節點數在取32時,不僅能夠保證網絡性能,而且還可以減少網絡的參數量。因此,本文網絡將降維全連接層節點數d設置為32。
方案2:損失函數比較方案的實驗結果見表3、表4。

表3 損失函數性能對比(IAPR TC-12)

表4 損失函數性能對比(ESP game)
對表3、表4分析可以得出,代價敏感多標簽損失(CSML Loss)函數相比于多標簽損失(ML Loss)函數,在IAPR TC-12數據集和ESP game數據集上均有較好表現,尤其在平均召回率和N+指數上有明顯提升。N+指數和平均召回率可以表明本文提出的損失函數能夠緩解訓練中標注類別不平衡對網絡的影響,提升對低頻詞的標注性能。表中數據還可以分析出本文改進的網絡相比于原始VGG16取得了更好的效果,并且本文網絡的參數僅為0.77億個,遠小于VGG16中1.35億個參數。
方案3:對比不同圖像標注方法在IAPR TC-12和ESP game數據集上的平均準確率P、平均召回率R和綜合性能F1。表5給出了本文方法與其它圖像標注算法在IAPR TC-12 數據集上的實驗結果對比,表6給出了本文方法與其它圖像標注算法在ESP game數據集上的實驗結果對比。

表5 本文算法與其它圖像標注方法實驗結果性能對比(IAPR TC-12)

表6 本文算法與其它圖像標注方法實驗結果性能對比(ESP game)
通過表5可以看出,本文方法相比于最近提出的SEM方法,在平均召回率與平均準確率上高出3個和4個百分點;與同樣使用卷積神經網絡的CNN-MLSU方法相比,本文方法在平均召回率和平均準確率上高出4個和1個百分點。綜合來看本文方法在IAPR TC-12數據集上與其它的方法相比,雖然平均準確率低于2PKNN_ML方法,但本文模型的平均召回率和綜合性能F1優于其它方法。通過表6可以看出,在ESP game數據集上,本文提出的方法較其它方法在各項評價指標上都有較好表現,與較先進的SEM方法相比,雖然在平均召回率上存在差距,但在平均準確率上優于SEM,在綜合評價指標F1值上也不相上下。從整體來看本文提出的方法較其它方法在平均準確率和平均召回率上都取得一個較好的結果,從而使得綜合性能F1與其它方法相比具有明顯的提升。
表7列出了本文方法在IAPR TC-12測試集上有代表性的標注結果,每幅測試圖像根據本文方法給出的結果選擇概率最大的前5個標簽作為圖像的標注結果。其中表7的第一和第二個示例,場景簡單且圖像中物體特征明顯,本文方法得出的標注結果與真實標簽匹配度高。在第二和第三個示例的標注中“people”,“man”以及“house”,“building”是具有相近語義的標注詞,本文方法雖然未能準確預測出真實的標簽,但預測出的標簽同樣也符合圖像的語義。表中第三個示例,真實標注顯然遺漏了標簽“sky”,該標簽在圖像中占據了很大的區域;在第四個示例中,“camera”和“hat”被識別標注,但由于其在圖像中占據區域較小而被真實標注忽略,事實上“camera”和“hat”也符合圖像本身的語義。表中第三、第四個示例中預測的新標簽是對圖像中真實標簽的擴充,能夠更加精確地描述圖像的語義信息。

表7 IAPR TC-12數據集上的預測效果
本文在VGG16的基礎上加入特征融合機制,融合多尺度特征提高對圖像中不同尺度對象的標注能力。同時,引入代價敏感損失函數,在一定程度上提升了低頻標簽的召回
率,有效解決了訓練過程中標簽類別不平衡引發的問題。實驗結果表明,本文提出的方法在標注性能上有所提升,優于其它經典方法和近年來所提出的先進方法。但本文方法未探究標注詞之間的關系,無法通過標注詞之間的關系來改善標注結果。如何挖掘標注詞之間錯綜復雜的關系,是未來研究的關鍵問題。