曾愛博,陳優廣
1.華東師范大學 計算機科學與技術學院,上海 200062
2.華東師范大學 數據科學與工程學院,上海 200062
長期以來,基于內容的圖像檢索(content based image retrieval,CBIR)一直是計算機視覺領域的熱門研究話題。基于內容的圖像檢索方法通常利用特定的特征提取方法提取圖像特征,進而計算特征之間的相似度并排序,從而返回與待檢索圖像相似度最高的多張圖像作為結果。其中,圖像特征是影響圖像檢索效果的主要因素。
在傳統CBIR方法中,SIFT方法[1]及其變種[2]被廣泛用于提取圖像的局部特征,而VLAD[3]與Fisher Vector[4]等方法被用于進一步聚合以產生效率更高的全局特征。近年來,由于深度卷積神經網絡(deep convolutional nerual network,DCNN)可以利用大量訓練數據學習到更具語義信息的特征,許多利用深度特征進行檢索的方法被不斷提出,并展示出優于傳統特征的效果,如Babenko等人[5]利用CNN中全連接層的輸出作為圖像特征進行檢索。然而,相比于全連接層的輸出,CNN中卷積層輸出的特征圖(feature map)保留了更豐富的空間信息并能取得更高的檢索精度[6-8]。此外,相比于來自低層的特征,CNN中高層產生的特征具有更豐富的語義信息。因此,大多數基于CNN的圖像檢索方法利用最后一層卷積層輸出的特征圖生成圖像特征進行檢索。
進一步地,卷積層輸出的特征圖常需通過特定的特征聚合方法產生壓縮性的圖像特征以實現高效檢索,如最大值池化[8]、平均值池化[6]。此外,R-MAC方法[8]先以網格化方式產生不同尺度的眾多區域,并在各區域上分別進行最大值池化,進而對所有區域特征進行聚合得到最終的圖像特征。R-MAC方法在區域層次上進行最大值池化并進一步聚合,使得最終圖像特征之間的匹配實際上是不同區域特征之間的匹配。與以上所提的非參數化方法不同,GeM池化方法(generalized mean pooling)[9]存在可訓練參數,可通過訓練取得更高的檢索精度。當這些可訓練參數的值等于某些特殊值時,GeM池化實際上等同于最大值池化或平均值池化。因此,GeM池化是對最大值池化及平均值池化的泛化,并能取得更好的表現。受R-MAC方法啟發,RGMP方法[10]先在多個區域上進行GeM池化得到區域特征,進而對區域特征進行聚合得到最終的圖像特征。然而,RGMP方法通過額外的RPN網絡(region proposal network)產生區域信息,需要使用帶有標注框信息的數據集進行訓練,影響了方法的適用性。
一些基于CNN的圖像檢索方法[8]使用經過了ImageNet數據集[11]預訓練的CNN模型直接提取圖像的特征,并被歸為off-the-shelf方法。與off-the-shelf方法相比,一些方法利用目標數據集對經過了ImageNet數據集預訓練的CNN模型進行進一步微調訓練[9],產生更適應目標數據集的圖像特征。在微調訓練的過程中,損失函數是影響最終檢索精度的主要因素。與早期工作使用的圖像分類損失相比,排序損失(ranking loss)[9,12-14]可直接以圖像檢索任務為目標進行優化,能生成更適應圖像檢索任務的圖像特征。排序損失通常利用一些訓練樣本構成一個集合,如二元圖像組(pair)[9]、三元組(triplet)[12]、四元組(quadruplet)[13]、N元組(N-pair)[14]等,使集合內具有相同標簽的圖像在高維向量空間中距離相近而具有不同標簽的圖像之間距離較遠。進一步地,最近工作[15-16]表明,在排序損失的基礎上加入圖像分類損失,可以有效增大圖像的類間距離,使訓練過程能更快收斂并取得更高的檢索精度。
為進一步提高檢索精度,一些工作在模型中引入了注意力機制以進行信息篩選,從而產生更具辨別性的圖像特征。對于CNN最后一層卷積層輸出的特征圖,DELF方法[17]通過一個注意力模塊產生特征圖中各特征的重要性,其中該注意力模塊由兩個卷積核大小為1×1的卷積層以及softplus激活層組成。而ABIR方法[18]提出的注意力模塊使用兩個不同卷積層輸出的特征圖作為輸入,通過特征圖之間的信息融合實現信息篩選。AGeM方法[19]則通過以三個不同卷積層輸出的特征圖作為輸入的旁路注意力模塊,結合GeM池化方法產生高效高質量的圖像特征。此外,衡量特征圖中不同特征在特征聚合方法中的權重同樣能實現對特征的信息篩選。例如,CroW[7]方法通過非參數化的權重方法衡量特征圖中空間維度和通道維度上不同特征的重要性,從而突出重要特征并抑制無關特征。GeM池化方法對特征圖中同一通道的不同特征賦予了同等的權重,以進行特征聚合。而wGeM方法[20]則在GeM方法的基礎上,通過一個卷積核大小為3×3的卷積層及softmax層,預測不同特征的權重。然而,以上注意力機制或權重方法都是通過計算不同特征的重要性實現信息篩選,從而產生更高質量的特征,卻沒有考慮不同特征之間存在的聯系。最近,SOLAR[21]方法將在自然語言處理及許多計算機視覺任務上表現優秀的二階注意力模塊(second-order attention,SOA)應用在圖像檢索中,并取得了成功。SOA模塊考慮任一特征與所有特征之間的聯系,并通過特征之間的信息融合產生相應位置上的新特征。然而,任一特征與所有特征都進行信息融合將導致極大的信息冗余,不利于壓縮性特征的生成。此外,目標物體一般只存在于圖像的某部分區域。與目標物體更相關的某些特征與所有特征進行交互時,將與許多與目標物體相關性不高的特征進行信息融合,影響了信息篩選的效果。與SOA相比,在圖像分類任務中表現良好的獨立自注意力模塊(stand-alone self-attention,SASA)[22]只考慮任一特征與相鄰的局部特征之間的聯系。因此,本文將SASA應用在圖像檢索中,有效利用局部特征之間的聯系生成更高質量的特征,從而改善以上所述問題。
除此之外,集成機制[23-24]也可以有效提升圖像檢索的精度。例如,ABE[23]方法在模型中引入多個結構相同的注意力模塊,構成多個注意力分支,并通過連接不同分支產生的圖像特征得到最終的圖像特征。為使得各注意力模塊聚焦于圖像的不同方面以實現功能互補,ABE在排序損失的基礎上引入了各分支之間的差異損失(divergence loss),從而提高檢索精度。然而,ABE方法沒有考慮圖像分類損失對訓練各注意力分支的作用。此外,ABE不能有效利用各分支特征產生最終圖像特征,檢索精度不夠高。因此,本文提出了一個新的多注意力集成框架(multi-attention ensemble framework,MAE),有效地利用不同注意力分支產生的特征產生最終圖像特征,并同時利用排序損失、各注意力分支之間的差異損失及各分支的圖像分類損失對模型聯合訓練,以提高模型訓練效果。
綜合以上所述,本文的貢獻主要有以下三點:
第一,本文將獨立自注意力模塊SASA應用于圖像檢索任務中,使各特征僅與相鄰的局部特征進行交互,以改善利用SOA模塊的圖像檢索方法中存在的問題。
第二,本文提出了新的多注意力集成框架MAE,在模型中集成多個注意力分支以提高檢索精度。框架中的差異損失可以使各注意力分支之間實現互補,圖像分類損失可以增大圖像特征的類間距離,從而加快各注意力分支的訓練并提升訓練效果。
第三,本文通過在CARS-196[25]及CUB-200-2011[26]圖像檢索數據集上的大量實驗驗證了所提方法的有效性。
與SOA計算任一特征與所有特征之間的聯系不同,獨立自注意力模塊(stand-alone self-attention,SASA)[22]僅考慮任一特征與相鄰局部特征之間的聯系。記注意力模塊的輸入張量為X∈RC×H×W,其中C是通道數量。對于X的某像素特征Xi,j∈RC,定義其相鄰局部特征的位置集合為Xi,j:

其中,δ表示相鄰特征的最大空間距離。集合Ωi,j(δ)中任一元素(a,b)所對應的特征Xa,b屬于與相鄰的特征,SASA將考慮兩者之間的聯系。
對于Xi,j,本文所使用的SASA模塊通過以下方式計算其與相鄰的局部特征之間的聯系,并得到相應的新特征:

其中,WQ,WK,WV∈RC×(C/E)分別為三個全連接層的參數。WQ、WK、WV可通過調整參數E實現降維,以減少SASA的參數數量從而降低模型的收斂難度。隨后,特征Yi,j通過參數為WU∈R(C/E)×C的全連接層進行升維,從而通過跳躍連接(skip-connection)的方式與輸入特征Xi,j結合使訓練過程更加穩定,并得到最終的輸出特征Zi,j∈RC:

以上過程將在輸入張量X∈RC×H×W的任一像素特征Xi,j∈RC中進行,從而得到SASA模塊對應的輸出Z∈RC×H×W。
多注意力集成框架(下面簡稱框架)可集成多個注意力分支。受篇幅限制,圖1展示了僅存在兩個注意力分支的框架。框架可以選擇任意CNN作為主干,如VGG[27]、ResNet[28]等。對于某輸入圖像I,CNN主干的對 應輸出是一個三維張量X∈RC×H×W。在 框架中,CNN主干可以連接多個注意力分支。而在每一注意力分支中,X將分別輸入各自的SASA模塊進行信息篩選,結果記為Zt∈RC×H×W,其中t是分支序號。隨后,GeM池化方法將用于對Zt實現特征壓縮,產生向量Ft∈RC。對于Zt的第c個通道Ztc∈RH×W,對應的GeM池化結果Ftc為:

圖1 多注意力集成框架Fig.1 Multi-attention ensemble framework

其中,當pc=1時,GeM池化相當于平均池化;當pc→∞時,GeM池化相當于最大值池化。此外,pc可以通過人工設置或通過訓練學習,而在本框架中pc將被設置為3。
進一步地,各分支產生的圖像特征Ft通過一個全連接層及l2-正則化層進行降維得到向量:

其中,Wt與bt分別是第t個分支中用于降維的全連接層的權重與偏置值。最后,各分支降維后的特征Φt通過串聯及l2-正則化層得到最終的圖像特征:

T是注意力分支的數量,⊕表示特征之間的串聯(concatenate)。在檢索階段,ΦMAE將用于表示圖像并通過向量內積計算圖像之間的余弦相似度。在訓練階段,ΦMAE可靈活地使用任意排序損失函數進行訓練。在本文的實驗部分,框架采用精度高且易于實現的batchhard triplet loss[29]作為排序損失函數,相應的損失記為Lrank。
為了使各注意力分支聚焦圖像的不同方面,增大不同分支產生的圖像特征之間的差異以實現互補,各分支產生的圖像特征利用ABE提出的差異損失[23]Ldiv進行訓練:

其中,N是訓練集樣本數量,mdiv是控制損失的超參數,d是余弦相似度函數。通過增大不同分支圖像特征之間的距離,差異損失可以有效促進不同注意力分支之間的多樣化,從而提高檢索精度。
進一步地,受CGD方法[16]所啟發,框架將對各分支進行圖像分類訓練,從而增大各分支圖像特征的類間距離,加快訓練速度并提高訓練效果。與CGD方法中僅有一個分支進行圖像分類訓練不同,本框架中各分支都將參與圖像分類訓練。各分支圖像特征Ft分別經過一個批歸一化層及權重為Wctlass且偏置值為btclass的全連接層,得到一個維度為目標數據集樣本類別M的向量Ψt:

隨后,各分支Ψt分別輸入Softmax層并計算交叉熵損失(cross-entropy loss)作為相應分支的圖像分類損失。在這一階段,框架使用temperature scaling[30]及標簽平滑(label smoothing)[31]技術,有效減少類內距離并增大類間距離:

temperature scaling的相關參數τ用于對Softmax層的輸入進行放縮。qone-hot是樣本真實標簽的獨熱編碼,標簽平滑的超參數α用于qone-hot進行平滑,生成分布更加平滑的樣本訓練標簽。
綜合考慮最終圖像特征的排序損失、各分支間的差異損失及各分支的分類損失,框架的總損失函數為:

通過圖像檢索數據集CUB200-2011[26]及CARS196[25]驗證了所提方法的有效性。其中CUB200-2011數據集的圖像都是關于鳥的圖像而CARS196的圖像都是關于車的圖像。各數據集中訓練集與測試集的劃分與其他工作相一致[16],如表1所示,其中各數據集的訓練集與測試集之間不存在相同類別。此外,本文僅在原始圖像上進行實驗,不使用CUB200-2011及CARS196數據集提供的標注框信息對圖像進行裁剪。為了與其他工作進行比較,本文使用Recall@K指標對圖像檢索精度進行評估。

表1 各數據集的訓練集與測試集劃分Table 1 Train-test split on each dataset
所有實驗通過Pytorch實現并在NVIDIA TITANRTX GPU上運行。本文選擇ResNet50[28]作為所提框架的CNN主干,其中ResNet50使用已通過ImageNet數據集進行預訓練的模型進行參數初始化。在訓練階段,輸入圖像首先被調整為252×252大小并隨機裁剪為224×224,最后進行隨機水平翻轉。在測試階段,輸入圖像僅被調整為224×224大小。為了使ResNet50產生的特征圖能保存更多信息,本文移除了ResNet50中Conv_3模塊的下采樣操作[16],使224×224大小的輸入圖像由CNN主干輸出的特征圖為14×14大小。Adam方法[32]用于對模型進行優化,其中每批數據包含128張圖像,初始學習率為0.000 1。在各數據集上完成第12、24輪訓練后學習率分別衰減10倍。框架的總損失函數中,排序損失(batch-hard triplet loss[29])的margin參數為0.1,差異損失的mdiv為1,各注意力分支的圖像分類損失中的τ與α都分別設置為0.5與0.1。在所有實驗中,最終用于檢索的圖像特征都是512維向量,而各分支產生的圖像特征是512/T維向量,其中T是注意力分支數量。
2.3.1 獨立自注意力模塊
為驗證SASA模塊的效果,與SOA模塊在CUB200-2011數據集上進行對比,并將不使用任何注意力模塊的模型作為基準。其中,參數E是SASA模塊對輸入特征進行降維的倍數,E越大,SASA模塊的參數數量越少。SASA模塊的δ值設置為1。除注意力模塊外,其他設置都保持一致。此外,為避免框架中分支數量T的影響,本部分實驗中分支數量T設置為1。
如表2所示,SASA模塊在E=2時取得了最高的檢索精度。與不使用任何注意力模塊及使用SOA模塊作為框架中的注意力模塊相比,SASA模塊能取得更高的檢索精度,說明了SASA模塊在圖像檢索任務中的有效性。

表2 CUB200-2011數據集上不同注意力設置的精度Table 2 Performance of attention with different configurations on CUB200-2011
本文進一步探索了SASA模塊中不同δ值對檢索精度的影響。同樣地,分支數量T設置為1以避免分支數量的影響,E設置為2以取得最高的精度。圖2展示了在CUB200-2011數據集上不同δ值對Recall@1精度的影響,其中SASA模塊在δ值為1時達到了最高的Recall@1精度,這與δ=4的SASA模塊能在圖像分類任務中取得最高精度[22]有所不同。

圖2 CUB200-2011數據集上不同δ值的Recall@1結果Fig.2 Recall@1 on CUB200-2011 with different value of δ
2.3.2 多注意力集成框架
多注意力集成框架利用最終圖像特征的排序損失、各分支之間的差異損失及各分支的圖像分類損失對模型進行聯合訓練。為驗證所提框架的有效性,本文在CUB200-2011數據集上對不同損失函數的組合進行探索,其中SASA模塊中δ=1而G=2,結果如表3所示。為排除SASA模塊的特殊性對損失函數效果的影響,本文進一步將SOA作為框架的注意力模塊對不同損失函數的效果進行探索。
表3顯示,當使用SOA模塊作為框架的注意力模塊時,相比于僅使用排序損失,在排序損失上加入差異損失僅提升了0.1%的Recall@1精度。而當使用SASA時,Recall@1精度反而有所降低。其次,無論是使用SOA還是SASA作為框架的注意力模塊,僅在排序損失上加入各注意力分支的圖像分類損失,各分支不能形成良好的互補,因此同樣不能取得最高的檢索精度。而本文框架使用差異損失促進各注意力分支間的互補,同時使用各分支的圖像分類損失以更有效地訓練各注意力分支。在使用SOA作為注意力模塊時取得了最高的Recall@1精度65.0%,而在使用SASA時也達到了最高的Recall@1精度65.8%。這說明了框架所用的總損失函數的有效性。

表3 CUB200-2011上不同多注意力框架設置的精度Table 3 Performance of MSE with different settings on CUB200-2011
當使用本文框架的總損失函數對模型進行訓練時,與使用SOA作為框架的注意力模塊相比,使用SASA作為注意力模塊在Recall@1精度上提升了0.8%。這表明框架所用的注意力模塊極大地影響了模型的檢索精度,同時進一步表明本文所提框架使用SASA作為注意力模塊的有效性。此外,當使用SASA作為框架的注意力模塊時,注意力分支數量T=2的模型取得了比T=1的模型更高的檢索精度,說明本文所提框架可以有效集成多注意力分支以取得更好的檢索效果。
最后,本文在CUB200-2011及CARS196數據集上將所提方法與目前表現較好的圖像檢索方法進行比較,結果如表4、表5所示。
為了公平比較,所有方法用于檢索的圖像特征都是512維。其中,本文方法的結果采用δ=1,G=2,T=2的結果。特別地,CGD的相關工作[16]利用標注框信息對CUB200-2011及CARS196原始圖像進行裁剪并實驗。為了公平地比較,本文謹慎地對CGD方法進行復現,并在兩數據集的原始圖像上進行實驗得到該方法的檢索精度,其中CNN主干為ResNet50,其余設置使用相關工作[16]中的最優設置。除CGD方法外,其他方法采用相關工作中展示的檢索精度[23-24,33-35]。如表4、表5所示,本文方法在CUB200-2011及CARS196兩數據集上的檢索精度都遠高于其他方法,充分說明了本文方法的有效性。

表4 本文方法與其他方法在CUB200-2011數據集上的精度Table 4 Performance of proposed method and others on CUB200-2011

表5 本文方法與其他方法在CARS196數據集上的精度Table 5 Performance of proposed method and others on CARS196
在圖像檢索任務中表現良好的二階注意力模塊考慮任一特征與所有特征之間的聯系,進而產生新特征,但新特征中存在大量冗余信息。針對該問題,本文將獨立自注意力模塊應用于圖像檢索任務,對任一特征僅考慮與相鄰特征之間的聯系,從而改善上述問題。此外,針對目前圖像檢索的集成方法中存在的不足,本文提出了多注意力集成框架。框架中各注意力分支分別使用獨立自注意力模塊產生高質量圖像特征,并通過有效結合產生最終的圖像特征。特別地,多注意力集成框架在最終圖像特征的排序損失的基礎上,加入各分支特征之間的差異損失使得各注意力分支產生的圖像特征多樣化,并在各注意力分支中加入圖像分類損失使得各分支訓練更高效而穩定,從而更充分地訓練模型。在CUB200-2011及CARS196上的大量實驗表明,本文方法可以有效提高檢索精度。