顧 巖,趙崇宇,黃 平
(太原理工大學 物理與光電工程學院,山西 晉中 030600)
面向大規模圖像的近似最近鄰(Approximate Nearest Neighbor,ANN)檢索方法已經成為學術界和工業界的研究熱點之一[1-2],哈希方法由于其特有的高查詢速度和低存儲代價而被廣泛應用于ANN檢索領域。現有的哈希學習方法大致可以分為兩類,即數據獨立哈希和數據相關哈希[3-4]。其中,數據獨立哈希在訓練過程中通常不依賴任何數據集,其采用隨機映射的方式進行哈希映射函數的學習,而數據相關哈希通過訓練數據集以學習哈希函數,因此其又被稱為學習哈希(Learning to Hash,L2H)[5]。根據是否利用訓練樣本的監督信息,學習哈希又可以進一步分為監督哈希、半監督哈希和無監督哈希[6-8]。傳統的學習哈希由于輸入的手動特征在表達深層語義信息方面的局限性,導致其哈希檢索的性能受限。隨著深度神經網絡技術的深入研究,許多研究人員采用卷積神經網絡(Convolutional Neural Networks,CNN)等模型對特征進行自動提取,并提出了較多基于深度學習的哈希方法,大幅提高了哈希檢索的性能[9]。文獻[10]利用CNN自動提取圖像的深層語義特征,并在此基礎上采用坐標下降方法對相似矩陣進行分解,但是該學習過程是基于兩階段的,難以進行端到端的訓練。文獻[11]采用三元組思想設計一種優化的排序損失函數,并將特征學習和哈希學習處于同一框架下,以對模型進行端到端的訓練。文獻[12]采用對比損失的方式來優化哈希學習過程,提高了哈希檢索的性能。文獻[13]提出了一種基于多標簽的多層語義相似度排序方法,其采用代理損失的方式來優化哈希碼學習過程。文獻[14]通過CNN對圖像進行特征提取,并設計損失函數對相似圖像對和不相似圖像對之間的漢明距離分別進行逼近和懲罰。
在現有基于深度哈希方法的訓練數據集中,與目標圖像相似的圖像數量遠小于不相似的圖像數量,這導致了整個訓練數據集的不平衡性[15],同時造成在訓練過程中模型對負樣本學習的過擬合和對正樣本學習的欠擬合現象。因此,對不平衡的樣本數據進行哈希學習容易導致訓練得到的模型泛化能力差,從而降低哈希檢索的準確率。此外,大部分學習哈希注重損失優化的設計,忽略了對圖像深層語義特征的表示,然而高階細粒度特征不僅可以保持高層的語義相似度,而且可以提高所生成的哈希編碼的區分能力[16-17]。為提高哈希檢索的時間效率,現有的多數深度哈希學習方法在對不相似圖像進行哈希學習時,通常采用多級索引的思想生成哈希編碼,即將生成的哈希編碼分解為多個連續且不相交的哈希塊,并為每個哈希塊創建一個單獨的塊索引[18]。在檢索過程中,將查詢圖像的哈希塊與候選圖像的哈希塊進行匹配,并對塊匹配不成功的候選圖像進行過濾,在此基礎上,生成候選圖像集并根據漢明距離實現排序[19]。然而,這種方式生成的哈希塊內的哈希編碼往往不均勻,可能會導致不相似圖像的哈希索引塊與相似圖像的哈希索引塊具有相同的哈希編碼。假設將圖像哈希編碼劃分為m個哈希塊單元,每個塊內有nbit的哈希碼,傳統的多級哈希檢索由于編碼的不均勻性,導致查詢圖像、相似圖像以及不相似圖像的哈希塊單元內具有相同的哈希編碼,這將大幅增加查詢過程中候選圖像的數量,降低多級索引檢索的效率。
本文建立一種基于高階統計信息的深度哈希學習模型(BCI-DHH)。采用改進的VGG-m模型提取輸入圖像基于層內的自相關特征以及基于層間的互相關特征,在此基礎上生成歸一化的高階統計向量。為防止模型訓練過程中由于數據的不平衡性導致對負樣本學習的過擬合和對正樣本學習的欠擬合現象,提出一種基于平衡權重的對比損失優化方法。為降低檢索的時間復雜度,對不相似圖像對之間的哈希塊進行差異化學習,增大其與目標圖像之間的漢明距離,從而減少候選圖像的數量并提高檢索效率。
本文BCI-DHH模型將基于圖像的高階統計學習和哈希學習集成在統一框架下,并采用端到端的方式進行訓練,整個模型的架構如圖1所示。

圖1 BCI-DHH模型總體框架
BCI-DHH模型主要由高階統計學習和哈希學習2個部分構成。在高階統計學習部分,為了更高效地提取細粒度深層語義特征,模型同時獲取了基于層內的自相關信息和基于層間的互相關信息,并在此基礎上生成歸一化的高階統計向量。在哈希學習部分,首先對輸入的訓練圖像對進行平衡優化,對不相似圖像對的訓練采用具有兼容性的多級索引進行優化,從而提高了哈希編碼的檢索效率和準確率。由于本文的目的在于研究基于高階統計信息的深度哈希檢索的有效性,因此僅采用基于VGG-16模型的前14層以及Relu激活函數作為特征提取的基本架構,其他CNN模型也可以用來驗證本文方法的有效性。

與已有研究不同,本文模型輸入到哈希層的圖像特征是基于歸一化的高階特征,從而使得產生的哈希編碼更加具有區分能力[18-20]。在BCI-DHH模型中,假設第i張圖像的高階統計信息fi可以由式(1)得到:
fi=φ{Ii;Θ}
(1)
其中,φ表示可以進行歸一化高階統計學習的網絡架構,Θ表示網絡參數。BCI-DHH模型中哈希層輸出的哈希編碼可以由式(2)獲得:
(2)

為獲取高層細粒度的語義特征,多數學者采用雙線性的卷積神經網絡(Bilinear Convolutional Neural Networks,B-CNN)模型對圖像進行深層語義特征提取,以進行哈希學習并生成高質量的哈希編碼。如圖2(a)所示,B-CNN需要采用2個單獨的CNN模型分別獲取統計向量。然而,B-CNN僅能獲取不同層之間的互相關特征而忽略了層內的自相關特征,相關研究也證明了自相關信息對生成具有區分能力的細粒度特征描述符具有重要作用[16-17]。在本文BCI-DHH模型中,對輸入的圖像分別提取層內的自相關特征和層間的互相關特征,從而生成基于高階統計信息的特征向量(如圖2(b)所示),并在此基礎上進行深度監督哈希學習。

圖2 高階統計學習示意圖
在B-CNN模型架構中,通過2個CNN對輸入的圖像分別進行局部特征提取,得到特征矩陣X和Y,在此基礎上進行雙線性池化操作得到高階特征Z,雙線性池化操作具體如式(3)所示:
Z=XTY
(3)


(4)

(5)

為生成具有區分能力的哈希編碼,需要對模型的損失函數進行優化設計。模型通常采用損失函數來計算目標圖像和查詢圖像之間的漢明距離,從而生成最優的哈希編碼。因此,損失函數的設計對于整個哈希檢索過程至關重要。本文在提取到的基于歸一化高階統計特征的基礎上,針對哈希學習中容易出現的數據不平衡性和多級索引的不兼容性,提出一種更加有效的面向深度哈希學習的損失函數,從而生成更具區分能力的哈希編碼。
假設存在圖像對{ii,ij}∈I及其對應輸出的哈希編碼{bi,bj}∈{-1,+1}k,基于圖像對的損失函數定義如下:
(1-sij)·max(m1-Dh(bi,bj),0)}
s.t.bi,bj∈{-1,+1}k,i,j∈{1,2,…,N}
(6)
其中,Dh(·,·)表示2個哈希編碼之間的漢明距離。m0>0和m1>0分別表示邊緣閾值參數,sij=1表示式(6)中第一項對漢明距離大于m0的相似圖像ii和ij進行懲罰,sij=0表示式(6)中第二項對漢明距離小于m1的不相似圖像ii和ij進行懲罰,由此可以保證所生成哈希編碼的區分能力。
為防止模型在訓練過程中由于數據的不平衡性而導致對負樣本進行擬合學習的現象,在式(6)的基礎上引入權重wi,j,對訓練數據集中的正負樣本數目進行平衡,具體表示如下:
(7)
其中,S1={(xi,xj)|sij∈S∩sij=1}表示相似圖像對,S0={(xi,xj)|sij∈S∩sij=0}表示不相似圖像對。基于此,式(6)可以重寫如下:
(1-sij)·max(m1-Dh(bi,bj),0)}
s.t.bi,bj∈{-1,+1}k,i,j∈{1,2,…,N}
(8)
在式(8)中,由于bi,bj∈{-1,+1}k為離散化值,因此整個模型不能直接進行反向傳播與訓練。為提高整個模型的收斂速度,本文采用具有連續屬性的歐式距離來替代離散化的漢明距離。此外,為了減少量化誤差,通過增加正則項使得模型的輸出值達到離散化(-1/+1)[14]。因此,基于正則化的數據平衡性損失函數lw如下:
lw=L(bi,bj,sij)=
α(‖|bi|-1‖1+‖|bj|-1‖1)
(9)


s.t.bi,bj∈{-1,+1}k/b
(10)
從式(10)可以看出,兼容性損失使得不相似圖像對的哈希編碼中每個哈希塊的哈希距離增大為m1,從而減少了檢索過程中候選圖像的數量,提高了檢索效率。
綜合考慮模型訓練過程中數據平衡性和多級哈希索引的兼容性,本文BCI-DHH模型對應的目標函數lw-index如下:
α(‖|bi|-1‖1+‖|bj|-1‖1)
(11)
其中,β>0表示平衡性損失lw和兼容性損失lindex之間的權衡參數。
本文采用基于小批量的梯度下降算法對BCI-DHH模型中的損失函數lw-index進行優化,故需要計算式(9)對bi,j的梯度。此外,由于max操作和絕對值操作在個別情況下是不可導的,因此在上述不可導點本文采用次梯度(訓練過程中設置次梯度為1)來代替梯度。本文目標函數lw-index的梯度計算如下:
(12)
基于式(12)中梯度的計算方法,可以對本文BCI-DHH中的參數進行反向傳播以訓練網絡模型,從而得到最優參數。
在CIFAR-10和NUS-WIDE 2個被廣泛使用的基準數據集上對本文BCI-DHH模型進行對比實驗。CIFAR-10是一個單標簽圖像數據集,其包括屬于10個類別的共計60 000張32×32圖像,本文隨機選擇每個類別中的100張圖像(共計1 000張圖像)作為測試數據集,剩余每個類別中的5 000張圖像(共計50 000張圖像)作為訓練數據集。NUS-WIDE是來自于Flickr的269 648張多標簽圖像數據集,其中手動標注了81個類別與圖像之間的關聯關系,與文獻[14,22]類似,本文使用與其中21個最常見類別相關聯的圖像作為輸入,每個類別至少包含5 000張圖像,從而有共計1 958 334張圖像。在一般情況下,如果2張圖像共享至少一個類標簽,則認為該圖像對為相似圖像對,否則為不相似圖像對。在NUS-WIDE數據集中,本文隨機選擇2 100張圖像(每類100張圖像)作為測試數據集,剩余數據用于模型訓練。在本文實驗中,分別采用深度哈希方法和傳統哈希方法與BCI-DHH模型進行對比實驗。其中,深度哈希方法包括RICH[23]、BDH[15]、DSH[14]、DHN[22]和DPSH[12],傳統哈希方法包括ITQ[24]和SH[25]。為提高傳統哈希方法的檢索性能,本文采用CNN對輸入數據進行特征提取并將其作為哈希學習的輸入特征。
本文BCI-DHH模型基于開源Caffe框架實現。在模型訓練過程中,采用基于小批量的梯度下降算法進行參數優化,設置動量為0.9,權重衰減為0.004。在10-5~102區間內采用基于步長為10的交叉驗證的方式對超參數α和β進行選取[23]。對于邊緣閾值參數m0,本文根據經驗值,在CIFAR-10中將其設置為4,在NUS-WIDE中將其設置為8。此外,本文實驗中設置m1=2k。在多級索引的兼容性損失中,將哈希編碼劃分為k/2個哈希塊,這樣可以保證不相似圖像的每個哈希塊中至少有一位不同的二進制編碼。本文提出的多級索引的方式基于高性能全特征的文本搜索引擎庫Lucene-6.4.2實現。
在實驗過程中,對本文BCI-DHH模型和其他方法在檢索的準確度和檢索效率方面進行對比分析,采用均值平均精度(mean Average Precision,mAP)來評價模型的檢索準確度,通過基于漢明距離的圖像查詢時間衡量檢索效率。
在CIFAR-10和NUS-WIDE 2個基準數據集上,當設置哈希編碼長度為16 bit、32 bit、48 bit和64 bit時,分別計算本文模型和其他方法的mAP,結果如表1所示,其中最優結果加粗表示。從表1可以看出,多數深度哈希方法的檢索性能遠優于傳統哈希方法,表明相比于傳統手工設計的特征,深度神經網絡模型可以提取深層語義特征。本文BCI-DHH模型不僅提取到不同層之間的互相關信息,而且獲取到了層內的自相關信息,從而生成了更加細粒度的深層語義特征。因此,在CIFAR-10數據集上,相比于其他深度哈希方法,本文模型基于不同哈希長度下檢索的mAP得到全面提升,而在NUS-WIDE數據集中,相比于其他深度哈希方法,本文模型哈希檢索的mAP提升了1.8%~4.3%。DSH方法在CIFAR-10數據集上的mAP優于DPSH方法,而在NUS-WIDE數據集上,DSH方法的mAP低于DPSH方法,表明DSH在不同數據集上的健壯性較低。本文模型在進行訓練的過程中考慮到正樣本數量過少且負樣本數量過多的問題,采用數據平衡性損失對模型進行優化,防止對正樣本學習欠擬合而對負樣本學習過擬合的現象,因此,BCI-DHH模型在CIFAR-10和NUS-WIDE數據集上都表現出了最佳性能。

表1 CIFAR-10和NUS-WIDE數據集中不同位數哈希編碼的mAP對比
此外,基于CIFAR-10和NUS-WIDE 2個數據集,分別設置哈希編碼長度為16 bit、32 bit、48 bit和64 bit,在返回樣本數量為Top500和檢索的漢明半徑不超過2的情況下對BCI-DHH模型和其他方法的準確率進行對比分析,結果如圖3~圖6所示。從中可以看出,由于BCI-DHH模型在進行哈希學習時輸入的特征向量是基于高階統計信息的,因此當返回的樣本數目為Top500時,其在不同編碼長度下的哈希檢索中都表現出了最佳性能。同時,隨著哈希編碼長度的增加,大部分哈希學習方法的檢索性能也不斷提升,特別是在NUS-WIDE數據集中,當哈希編碼長度由32 bit增加到64 bit時,BCI-DHH模型檢索性能提升了5%左右。當設定檢索的漢明距離半徑長度不超過2時,無論是在CIFAR-10數據集還是NUS-WIDE數據集中,本文BCI-DHH模型相比于其他方法都表現出較好的性能。隨著用于檢索的哈希編碼的不斷增加,固定漢明半徑,則本文模型檢索性能會有一定程度的下降,而在NUS-WIDE數據集中,哈希編碼由48 bit增加到64 bit時,BCI-DHH模型檢索性能沒有發生顯著變化,充分證明了本文模型的健壯性。

圖3 CIFAR-10數據集中的Top500準確度對比

圖5 NUS-WIDE數據集中的Top500準確度對比

圖6 NUS-WIDE數據集中漢明距離小于2時的準確度對比
一般而言,多級索引的檢索過程包括搜索和檢查2個階段。在搜索階段,查詢圖像通過哈希函數生成哈希編碼并劃分為不同的哈希塊,然后搜索基于多級索引的二進制代碼,從而查找出至少與查詢圖像具有一個相同哈希塊的哈希編碼。在檢查階段,根據查詢圖像與候選圖像之間的漢明距離對候選圖像數據集進行排序。在本文檢索時間實驗中,主要考慮這2個階段消耗的時間代價,實驗過程中所有圖像的哈希代碼均存儲在內存中。
在CIFAR-10和NUS-WIDE數據集上,分別測試BCI-DHH和RICH、BDH、DSH哈希方法在哈希編碼長度分別為16 bit、32 bit、48 bit和64 bit時檢索目標圖像所消耗的時間。由于本文BCI-DHH模型在進行訓練優化時充分平衡了正負樣本的數目,避免了參數過擬合或欠擬合的發生,因此產生了具有較強區分能力的哈希編碼,保證了圖像與哈希編碼之間的語義相似度,從而在一定程度上減少了候選圖像的數量。此外,在不相似圖像的哈希編碼學習過程中,通過對不相似圖像的多級哈希索引塊進行差異化操作,增加不相似圖像與目標圖像之間的漢明距離,從而大幅減少候選圖像數目,降低檢索代價,提高檢索的效率。具體實驗結果如圖7、圖8所示,從中可以看出,DSH模型的檢索時間代價小于BDH模型,在NUS-WIDE數據集中,當哈希編碼長度為32 bit時,DSH的檢索時間最長,從而說明上述模型的健壯性較低。而本文BCI-DHH模型在CIFAR-10和NUS-WIDE數據集中消耗的時間均最短,充分證明了模型的高效性和健壯性。

圖7 CIFAR-10數據集上不同哈希編碼的檢索時間對比

圖8 NUS-WIDE數據集上不同哈希編碼的檢索時間對比
當哈希編碼的長度為32 bit時,在CIFAR-10數據集和NUS-WIDE數據集上分別測試BCI-DHH和RICH、BDH以及DSH方法的候選圖像數量,結果如表2所示。由于BCI-DHH模型不僅考慮數據的不平衡性,而且在對不相似圖像進行多級索引哈希學習時,對哈希塊進行了差異化操作,從而減少了候選圖像的數量,因此,本文模型在檢索過程中候選圖像數量最小。從表2可以看出,相比其他方法,在CIFAR-10數據集上本文模型的候選圖像數量減少了3.5%~24.5%,在NUS-WIDE數據集上減少了7.6%~47.7%。此外,當哈希編碼長度設定為32 bit時,在CIFAR-10和NUS-WIDE數據集上分別對模型的召回率進行了比較分析,結果也展示在表2中。由于CIFAR-10數據集為單標簽數據集,因此圖像對之間共享標簽數目最多為1(表中用“——”表示)。可以看出,當哈希編碼為32 bit時所有的哈希方法都在該數據集上實現了將近100%的召回率,表明在搜索階段沒有相似圖像被過濾掉,進一步說明所有方法在CIFAR-10數據集中能表現出良好的性能。在NUS-WIDE數據集中,“≥n”表示與目標圖像之間共享不少于n個相同標簽的相似圖像的召回率。通過實驗結果可知,隨著共享標簽數的增加,召回率增加,表明與目標圖像具有更高相似度的相似候選圖像更有可能被檢索到。本文BCI-DHH模型在CIFAR-10和NUS-WIDE數據集上的召回率均為最優,從而進一步驗證了本文模型的有效性。

表2 CIFAR-10和NUS-WIDE數據集中的召回率和候選圖像數量對比
本文在高階統計學習方法的基礎上,充分考慮數據的不平衡性和多級哈希索引的不兼容性,建立一種深度哈希學習模型BCI-DHH。在特征學習的過程中,采用改進的VGG-m模型提取具有高層語義特征的高階統計向量。分別設計基于圖像對的數據平衡性損失和多級哈希索引的兼容性損失,從而提高哈希檢索過程的準確率和效率。在基準數據集CIFAR-10和NUS-WIDE上進行實驗,結果驗證了BCI-DHH模型的有效性。下一步將采用真實場景下的數據對本文模型進行優化與驗證。