殷梓軒,孫 涵
(南京航空航天大學(xué) 計算機科學(xué)與技術(shù)學(xué)院/人工智能學(xué)院,江蘇 南京 211106)
細(xì)粒度圖像檢索是細(xì)粒度圖像處理領(lǐng)域中的子方向,要求給定一張圖片,算法能返回數(shù)據(jù)集中與該圖片同屬一個子類的圖片。它與一般圖像的檢索不同,例如一般圖像的檢索要求在貓、狗、兔子中檢索出來貓,細(xì)粒度圖像檢索則要求在波音737-300、737-400、737-500中找到波音737-400??梢钥闯黾?xì)粒度圖像具有類間差異小、類內(nèi)差異大的特點。因此,通常在檢索的范圍內(nèi),所有圖像在視覺上都是相似的,但它們會在一些局部的細(xì)節(jié)處存在微小的區(qū)別。這無疑是非常具有挑戰(zhàn)性的。
圖像檢索的原理,其實就是計算數(shù)據(jù)庫中所有圖像與待檢索圖像在特征空間中的距離并進行排序,距離越近,說明該圖像與待檢索圖像相似度越高。但在如今大數(shù)據(jù)時代,線性搜索顯然是不現(xiàn)實的,不僅因為時間開銷大,而且存儲成本也高。而深度哈希[1-2]恰恰能解決這兩個弊端,因為它可以把提取到的圖像特征壓縮成緊湊的二進制哈希碼,從而減小存儲空間,同時大大提升檢索速度。因此,深度哈希方法受到了越來越多的關(guān)注。
深度哈希模型一般包含兩個階段:特征提取及特征編碼。特征提取階段其實就是要進行細(xì)粒度圖像識別任務(wù)?,F(xiàn)有的細(xì)粒度圖像識別算法主要分兩類[3]:帶有定位-分類子網(wǎng)絡(luò)的模型以及進行端到端特征編碼的模型。但是現(xiàn)有的方法大部分只關(guān)注到了卷積神經(jīng)網(wǎng)絡(luò)中高層的語義信息,卻忽略了低層的細(xì)節(jié)特征,該文則希望能把二者結(jié)合在一起。在特征編碼階段,深度哈??梢园褕D像特征映射為二進制形式的哈希碼,從而在減小存儲空間的同時大大提升檢索速度。
具體地,該文提出了一個基于注意力金字塔與監(jiān)督哈希的深度神經(jīng)網(wǎng)絡(luò),用于解決大規(guī)模細(xì)粒度圖像檢索問題。它主要分為兩大部分,分別是兩階段的特征提取網(wǎng)絡(luò)以及哈希分類網(wǎng)絡(luò)。在特征提取網(wǎng)絡(luò)中,使用了一種雙通路的金字塔結(jié)構(gòu),包含自上而下的特征通路以及自下而上的注意力通路,借此融合高層的抽象語義信息與低層的細(xì)節(jié)特征;與此同時,還在網(wǎng)絡(luò)的兩個階段之間引入了一個中間層對輸入圖像進行細(xì)化。在哈希分類網(wǎng)絡(luò)中,使用tanh(x)代替sign(x)作為激活函數(shù),從而使學(xué)習(xí)到的哈希函數(shù)達到平穩(wěn)分布;同時結(jié)合量化損失與分類損失,使生成的哈希碼能更好地與原始輸入圖像的特征進行匹配。在兩個標(biāo)準(zhǔn)細(xì)粒度圖像數(shù)據(jù)集[4-5]上進行了大量實驗,實驗結(jié)果表明,提出的模型能進行高精度細(xì)粒度圖像檢索。同時還與當(dāng)前的一些經(jīng)典算法進行了實驗比較,比較結(jié)果展示了該方法的優(yōu)越性。
細(xì)粒度圖像檢索是近年來比較活躍的研究方向,其任務(wù)為:給定一個數(shù)據(jù)集,該數(shù)據(jù)集中的所有圖片屬于同一大類下的若干子類,要求輸入一張待檢索圖片,系統(tǒng)能返回數(shù)據(jù)集中與其同屬一個子類的若干張圖片?,F(xiàn)有方法可以分為兩類:監(jiān)督方法[6-7]和無監(jiān)督方法。其中,監(jiān)督方法中的代表方法是Zheng等人提出的度量學(xué)習(xí)方法[6]。為了更好地從背景中提取目標(biāo)主體的部件特征,作者使用了一種弱監(jiān)督的特征提取方式,通過由上到下的顯著性分割目標(biāo)輪廓。而無監(jiān)督方法中的代表就是Wei等人提出的SCDA方法[8]。該方法首先從圖片中定位目標(biāo)主體,去除背景噪聲并保留關(guān)鍵的深度描述子,接著再由這些深度描述子生成特征向量。
細(xì)粒度圖像檢索是以識別任務(wù)為基礎(chǔ)的,因為識別的準(zhǔn)確性會直接影響后續(xù)分類網(wǎng)絡(luò)的性能?,F(xiàn)有的細(xì)粒度圖像識別算法主要分為以下兩類:(1)帶有定位-分類子網(wǎng)絡(luò)的模型[9-10]。如Zhang等人提出了一種學(xué)習(xí)部件級檢測器的網(wǎng)絡(luò)[9],Wei等人通過分割的方法[10]對關(guān)鍵部位進行定位。(2)端到端特征編碼模型[11-12]。這一類方法對監(jiān)督信息的依賴相對較低,它們一般僅要求提供圖像級別的標(biāo)注。其中最具代表性的是Lin等人提出的雙線性卷積神經(jīng)網(wǎng)絡(luò)。
上述方法均能取得良好的效果,但它們都忽略了低層的細(xì)節(jié)信息。因為細(xì)粒度圖像具有類間差異小、類內(nèi)差異大的特點,因此低層的細(xì)節(jié)信息,如紋理、邊緣等對識別任務(wù)是非常關(guān)鍵的。因此,受Ding等人AP-CNN[13]的啟發(fā),該文希望把高層的語義信息與低層的細(xì)節(jié)特征結(jié)合在一起。
深度哈?;谟?xùn)練數(shù)據(jù)學(xué)習(xí)哈希函數(shù),在還原原始數(shù)據(jù)空間距離順序的同時生成更短的哈希碼。這種緊湊的特征表示有利于存儲大量樣本并節(jié)省檢索時間。依據(jù)是否使用標(biāo)注信息,可以分為無監(jiān)督方法和監(jiān)督方法兩類。前者如HashGAN[14]等在學(xué)習(xí)哈希函數(shù)時不需要監(jiān)督信息,但是容易造成原始數(shù)據(jù)和哈希編碼之間的語義鴻溝。而后者充分利用監(jiān)督信息學(xué)習(xí)哈希函數(shù)并生成哈希碼,具有更高的準(zhǔn)確性,代表方法如KSH[15]等。
提出的網(wǎng)絡(luò)分為特征提取以及特征編碼兩個階段,如圖1所示。其中特征提取是兩階段的:第一階段為原始特征提取,以原始圖片作為輸入;第二階段為細(xì)化特征提取,以第一階段的輸出作為輸入。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)接收到一張圖片后,首先使用骨干網(wǎng)絡(luò)生成特征金字塔,其信息流動方向是自上而下的。然后引入注意力機制,得到注意力金字塔,其信息流動方向是自下而上的。以上是網(wǎng)絡(luò)的第一階段。使用中間層對原始圖像進行細(xì)化,并輸入二階段網(wǎng)絡(luò)。網(wǎng)絡(luò)第二階段的工作流程與第一階段是相同的,并最終得到兩個注意力金字塔,對它們做連接操作后即可用于后續(xù)的特征編碼。
2.2.1 自上而下的特征金字塔
一般地,原始圖像輸入經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)的處理會得到具有高層語義信息的特征表示,但這會使低層的許多細(xì)節(jié)特征被丟失,不利于細(xì)粒度圖像的處理。為了能保留這些細(xì)節(jié)特征,受FPN網(wǎng)絡(luò)[16]的啟發(fā),該文設(shè)計了一條自上而下的特征通路來提取不同尺度的特征。
原始的輸入圖像在經(jīng)過若干卷積塊后可以得到若干特征圖,把這些特征圖表示為{B1,B2,…,Bl},這里l表示卷積塊的數(shù)量。很多針對粗粒度圖像處理的方法會直接把最后一塊的輸出Bl用于分類,但該文希望盡量利用好每一個Bi。由于越靠近低層,特征的抽象層次越低,如果要利用每一個卷積塊的輸出,將不可避免帶來巨大的成本開銷,因此選擇其中的后N個輸出并生成對應(yīng)的特征金字塔。具體如圖2所示。最終得到的特征金字塔為{Fl-N+1,Fl-N+2,…,Fl}。
圖2 特征金字塔
2.2.2 自下而上的注意力通路
得到特征金字塔后,該文設(shè)計了一條自底向上的注意力通路,其中包含空間注意力以及通道注意力??臻g注意力[17]用于定位輸入圖像在不同尺度上具有辨識度的區(qū)域。其形式化描述為:
(1)
式中,σ為sigmoid激活函數(shù),*代表反卷積操作,而K代表卷積核。通道注意力[18]用于加入通道之間的關(guān)聯(lián),并同時把低層的細(xì)節(jié)信息一層一層傳遞給高層。其形式化描述如下:
(2)
圖3 注意力金字塔
(3)
2.3.1 ROI金字塔
2.3.2 基于ROI的圖像細(xì)化
2.3.3 細(xì)化特征提取階段
(4)
并把Foutput用于后續(xù)的分類。
2.4.1 穩(wěn)定分布與量化損失
受DSHSD[20]的啟發(fā),該文引入了p穩(wěn)定分布。記輸入圖像從歐幾里德空間到漢明空間上的損失為量化損失,當(dāng)量化損失較小時,可以認(rèn)為哈希函數(shù)是一個p穩(wěn)定分布,否則是不穩(wěn)定的。因此,為了使量化損失盡可能小,選擇tanh(x)作為激活函數(shù),使用‖tanh(xi)-tanh(xj)‖p代替‖xi-xj‖p來保證分布一致性。tanh(x)不僅梯度容易計算,而且對于反向傳播算法來說是友好的:
(5)
于是量化損失可以寫成:
(6)
(7)
(8)
式中,S為相似性標(biāo)簽的集合,m為閾值參數(shù)且m>0,‖·‖2表示L2范數(shù)并用于衡量哈希碼之間的距離。
2.4.2 分類損失
除了量化損失以外,為了使哈希碼能保留圖像特征中的分類信息,還引入了分類損失。不同于以前的一些方法,為了不引入額外的變量,該文并沒有對hi施加二值化約束,這也符合奧卡姆剃刀原理。于是分類損失的形式化表示如下:
Lc(Y,H)=L(Y,WTH)
(9)
最后,結(jié)合公式6與公式9就可以得到總的損失函數(shù):
L(Y,S,H)=Lc+εLd
(10)
式中,ε是控制量化損失的權(quán)重參數(shù)。
在FGVC-Aircraft以及Stanford Cars兩個標(biāo)準(zhǔn)細(xì)粒度數(shù)據(jù)集上進行了實驗驗證。其中FGVC-Aircraft數(shù)據(jù)集包含了10 200張飛機的圖片,共有102種不同的機型,其中訓(xùn)練集有6 667張圖片,測試集有3 333張圖片。Stanford Cars數(shù)據(jù)集包含了16 185張汽車的圖片,共有196種不同型號的汽車,其中訓(xùn)練集有8 144張圖片,而測試集有8 041張圖片。該文使用mAP作為度量指標(biāo)。
該文使用ResNet-50作為骨干網(wǎng)絡(luò),并在ImageNet上進行預(yù)訓(xùn)練。選擇ResNet-50的后3個殘差塊輸出的特征圖建立特征金字塔,沒有選擇conv1和conv2主要是因為它們的抽象層次較低,若參與特征金字塔的構(gòu)建將帶來較大計算開銷。所有圖片在輸入網(wǎng)絡(luò)時大小均會被調(diào)整為448×448。該文并沒有使用數(shù)據(jù)集提供的bounding box標(biāo)注信息,因為在實際問題中,bounding box的獲取成本較高,過于依賴它會使方法存在較大局限性。
圖4 波音747與布加迪威龍16.4圖片檢索示例
自適應(yīng)NMS算法中的閾值t1和t2分別設(shè)置為0.05和0.9。公式8中的閾值m設(shè)置為2k(k為哈希碼位數(shù)且k={16,32,64})。公式3中的權(quán)重參數(shù)α設(shè)置為0.5,公式10中的ε設(shè)置為0.1。在模型訓(xùn)練的過程中,該文使用的優(yōu)化算法為Adam算法,其中學(xué)習(xí)率設(shè)置為10-5,β1設(shè)置為0.9,β2設(shè)置為0.999。
文中方法與其他4種State-Of-The-Art方法在2個數(shù)據(jù)集、3種哈希碼長度下的對比結(jié)果如表1所示。從表中可以看出,文中方法無論在16位哈希碼、32位哈希碼以及64位哈希碼中都能達到最高的準(zhǔn)確率,這驗證了該方法的準(zhǔn)確性。具體地,在FGVC-Aircraft數(shù)據(jù)集中,文中方法在三種長度哈希碼下的準(zhǔn)確率比第二名的DCH分別提升了33.0%、15.9%以及27.8%。在Stanford Cars數(shù)據(jù)集中,文中方法在三種長度哈希碼下的準(zhǔn)確率比DCH分別提升了16.4%、30.8%以及33.9%。這得益于在哈希層中使用了tanh(x)作為激活函數(shù),可以保證哈希變換過程中的分布一致性,使哈希碼可以更好地保留圖像的特征信息。
圖5展示了5種方法在FGVC-Aircraft數(shù)據(jù)集上的mAP隨哈希碼位數(shù)的變化。可以很直觀地觀察到,文中方法在16位、32位以及64位長度的哈希碼上效果都大幅優(yōu)于其他四種方法,同時,哈希碼長度的改變并不會顯著影響文中方法的準(zhǔn)確度。
圖5 mAP隨哈希碼位數(shù)的變化
總體上,5種方法的mAP基本會隨著哈希碼位數(shù)的增加而增加,這很容易解釋,因為哈希碼的位數(shù)越高,它的特征表示能力也越強。但也有例外,如DCH在FGVC-Aircraft數(shù)據(jù)集中,當(dāng)哈希碼長度由32位變成64位時,mAP反而從68.4%下降到了64.4%。
圖6展示了5種方法在FGVC-Aircraft數(shù)據(jù)集上的PR曲線。可以直觀地看出,文中方法的PR曲線所圍成的面積是最大的,這證實了該方法的有效性。
圖6 PR曲線對比
在特征提取網(wǎng)絡(luò)中,該文結(jié)合了特征金字塔與注意力金字塔。為了分別驗證它們的作用效果,使用32位哈希碼設(shè)計了如下消融實驗。
在表2中,Baseline即ResNet-50,F(xiàn)P表示只使用特征金字塔,F(xiàn)P+AP表示既使用特征金字塔,也使用注意力金字塔??梢钥闯觯卣鹘鹱炙茉贐aseline的基礎(chǔ)上較大地提升模型準(zhǔn)確率,而注意力金字塔能讓準(zhǔn)確率有進一步的提升。
表2 不同特征提取網(wǎng)絡(luò)下的mAP對比 %
接下來,驗證了中間層中使用到的Dropblock算法以及背景噪聲去除算法的作用效果,消融實驗同樣是基于32位哈希碼設(shè)計的。由表3可知,Dropblock算法迫使網(wǎng)絡(luò)學(xué)習(xí)不同區(qū)域的特征,從而能較大提升網(wǎng)絡(luò)性能。而背景噪聲去除算法作為一種輔助手段,雖然提升效果不如Dropblock算法,但也可以在一定程度上提升網(wǎng)絡(luò)性能。
表3 不同特征提取網(wǎng)絡(luò)下的mAP對比 %
由表4可以看出,在分類損失與量化損失中,分類損失起主要作用,同時也可以看出使用tanh(x)作為激活函數(shù)的巨大優(yōu)勢。
表4 各哈希方法的對比
細(xì)粒度圖像檢索是一個在日常生活中有著廣泛應(yīng)用、但卻充滿挑戰(zhàn)性的任務(wù)。該文提出了一種基于注意力金字塔和監(jiān)督哈希的深度神經(jīng)網(wǎng)絡(luò)。通過兩階段的特征提取網(wǎng)絡(luò)構(gòu)建雙通路金字塔,把高層語義信息與低層細(xì)節(jié)特征充分結(jié)合,同時引入了一個中間層對圖像進行細(xì)化;在哈希編碼階段結(jié)合了量化損失與分類損失,并使用tanh(x)代替sign(x)作為激活函數(shù),使學(xué)習(xí)到的哈希函數(shù)達到平穩(wěn)分布的要求,減少了反向傳播過程中量化損失的偏差,從而使生成的哈希碼更好地與原本圖像的特征進行匹配。為了驗證模型的有效性與準(zhǔn)確性,在兩個標(biāo)準(zhǔn)的細(xì)粒度數(shù)據(jù)集上進行了大量實驗。通過在16位、32位以及64位三種長度的哈希碼上與四種SOTA方法進行對比,證實了該模型的有效性,同時通過一系列消融實驗驗證了不同算法組件的作用效果。