魏 雄,樂鴻飛,余錦露
(武漢紡織大學(xué) 計(jì)算機(jī)與人工智能學(xué)院,湖北 武漢 430200)
隨著服裝電子商務(wù)的快速發(fā)展,互聯(lián)網(wǎng)上的服裝圖像數(shù)量急劇增長,對海量服裝圖像進(jìn)行自動化準(zhǔn)確檢索有助于提高顧客購買意愿。目前服裝圖像檢索方法主要分為基于文本的檢索和基于內(nèi)容的檢索兩種[1]。國內(nèi)電商平臺主要使用基于文本的圖像檢索,但這種方法過于依賴對圖像的文本標(biāo)注,且在語言表達(dá)習(xí)慣的限制下,其檢索結(jié)果與顧客需求可能大相徑庭。因此,基于內(nèi)容的跨域服裝圖像檢索技術(shù)具有很大研究意義。
跨域服裝檢索是指待檢索圖像和圖像檢索庫來自兩個(gè)異構(gòu)域,分別為用戶域和商店域。用戶域由用戶拍攝的照片組成,這些照片可能會因照明條件、相機(jī)質(zhì)量、角度和焦距而有所不同;商店域由專業(yè)人士在相同工作室使用同一設(shè)備拍攝的同一風(fēng)格的照片組成??缬蚍b檢索任務(wù)主要有以下兩個(gè)難點(diǎn):①服裝圖像可變性極大。同一件服裝在拍攝角度、光線、對象不同時(shí)所得圖像會有很大不同,用戶域的查詢圖像多在復(fù)雜環(huán)境下拍攝,包含多個(gè)對象,服裝經(jīng)常被遮擋或裁剪,而大多數(shù)商店的圖片背景是單色,光線良好,服裝單品完全可見;②類內(nèi)方差大、類間方差小。這是服裝圖像的一個(gè)固有特性[2]。
圖像表征在服裝檢索任務(wù)中起到核心作用,用于對圖像內(nèi)容進(jìn)行編碼,并衡量其相似性。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,智能提取表征的方法取得很大進(jìn)展[3-5],手工特征提取已逐步廢棄?;谏疃葘W(xué)習(xí)的服裝檢索方法中,兩種類型的圖像表征被廣泛使用:一種是全局特征作為高級語義圖像簽名;另一種是局部特征,包含特定圖像區(qū)域的幾何判別信息。目前,跨域服裝圖像檢索方法缺少對局部特征的利用,一些利用局部特征的方法先通過高查全率的全局特征檢索候選對象,然后利用局部特征重新排序,進(jìn)一步提高精度,然而這樣提高了計(jì)算代價(jià)和檢索時(shí)間[6]。更重要的是,兩個(gè)階段均不可避免地存在錯誤,這可能導(dǎo)致錯誤積累,成為進(jìn)一步提高檢索性能的瓶頸。因此,將局部特征與全局特征集成為一個(gè)緊湊的表征,在端到端檢索中相互促進(jìn),可以避免錯誤積累,該方法成為目前研究熱點(diǎn)。
對圖像特征提取的好壞直接影響跨域服裝圖像檢索算法的性能。傳統(tǒng)特征提取方法包括方向梯度直方圖(Histogram of Oriented Gradient,HOG)、局部二值模式(Local binary patterns,LBP)、顏色直方圖等。例如,Liu 等[7]提出首個(gè)跨域服裝檢索方法,通過定位30 個(gè)人體關(guān)鍵區(qū)域縮小人體姿勢的差異,然后通過對這些區(qū)域提取HOG 和LBP 等手工特征進(jìn)行檢索。然而,傳統(tǒng)算法在跨域服裝檢索準(zhǔn)確度方面表現(xiàn)欠佳。
近年來,深度神經(jīng)網(wǎng)絡(luò)在服裝檢索領(lǐng)域廣泛應(yīng)用,將該領(lǐng)域的發(fā)展推向了一個(gè)新的階段。例如,Luo 等[8]提出一種端到端的深度多任務(wù)跨域哈希算法,與傳統(tǒng)方法學(xué)習(xí)離散屬性特征不同,該方法考慮屬性之間的順序相關(guān)性,并為屬性序列激活空間注意力;同時(shí)使用哈希散列組件替代傳統(tǒng)連接的特征向量,避免低效的查詢處理和不必要的存儲浪費(fèi)。然而面對細(xì)分種類繁多的服裝圖像時(shí),該方法能學(xué)習(xí)的順序?qū)傩杂邢?;Kuang 等[9]提出基于相似金字塔的圖推理網(wǎng)絡(luò),通過在多個(gè)尺度上使用全局和局部表示來學(xué)習(xí)查詢圖像與庫之間的相似性。其中相似度金字塔采用相似度圖表示,圖中的每個(gè)節(jié)點(diǎn)為對應(yīng)的兩個(gè)服裝區(qū)域在相同尺度下的相似度,連接兩個(gè)節(jié)點(diǎn)的每條邊是它們的歸一化相似度,查詢圖像與圖庫圖像之間的最終相似度可以通過在這個(gè)圖上進(jìn)行推理來實(shí)現(xiàn);Mikolaj 等[10]分析了人的再識別研究領(lǐng)域與服裝檢索研究領(lǐng)域的相似性和差異性,然后考察了行人再識別模型的可轉(zhuǎn)移性,將調(diào)整后的模型應(yīng)用于跨域服裝檢索,取得顯著的檢索效果,為跨域服裝檢索引入了強(qiáng)有力的基線;劉玉杰等[11]將空間語義注意力模塊加入到分類網(wǎng)絡(luò)VGG16 模型中,對卷積層特征賦予可學(xué)習(xí)的權(quán)重,以增強(qiáng)重要特征、抑制不重要特征;同時(shí)引入短鏈接模塊,整合整幅圖像的深層語義特征以獲得更具魯棒性的特征描述子,解決服裝部位不對齊導(dǎo)致的重要信息丟失問題。然而,該方法分類精度不佳,在使用分類損失約束的情況下檢索準(zhǔn)確率較低。
對局部特征與全局表示進(jìn)行聯(lián)合學(xué)習(xí)可以提高檢索效果。例如,Song等[12]提出一種融合局部與全局建模的框架,該框架在利用Transformer 進(jìn)行全局特征提取的基礎(chǔ)上設(shè)計(jì)了一個(gè)由多頭窗口注意和空間注意組成的局部分支,基于窗口的注意模式模擬了局部重疊區(qū)域內(nèi)的不同視覺模式,而基于空間的注意模式模仿了重要性抽樣策略,最后通過交叉注意模塊將分層的局部與全局特征結(jié)合起來;Sarlin 等[13]提出一種聯(lián)合估計(jì)局部和全局特征的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)——HFNet,其以固定的非學(xué)習(xí)方式解碼關(guān)鍵點(diǎn)和局部描述符,并將其與轉(zhuǎn)置卷積得到的全局特征聚集成一個(gè)緊湊的描述符,這樣能快速高效地處理大規(guī)模圖像。然而,即使該方法使用了多任務(wù)蒸餾來提高準(zhǔn)確率,檢索精度仍較低;Cao 等[14]提出基于ResNet的可以聯(lián)合提取局部和全局圖像特征的DELG(Deep Local and Global features)模型,其利用廣義平均池產(chǎn)生全局特征,利用基于注意的關(guān)鍵點(diǎn)檢測產(chǎn)生局部特征。然而,該模型雖然使用了端到端的框架,在執(zhí)行上還是分為兩階段,較為繁瑣。
本文在CNN 的基礎(chǔ)上引入一種深度正交局部與全局特征融合模塊[6],通過一個(gè)局部分支和一個(gè)全局分支分別學(xué)習(xí)兩類特征,并由一個(gè)正交融合模塊將其結(jié)合起來,聚合為一個(gè)緊湊描述符。通過正交融合可以提取最關(guān)鍵的局部信息,消除全局信息中的冗余分量,從而使局部與全局分量相互增強(qiáng),產(chǎn)生具有目標(biāo)導(dǎo)向訓(xùn)練的最終代表描述子。本文貢獻(xiàn)如下:①設(shè)計(jì)了基于全局和局部特征融合的跨域服裝檢索方法,能融合低層局部特征與高層全局特征,使用相互增強(qiáng)的融合特征進(jìn)行檢索;②在DeepFashion數(shù)據(jù)集上進(jìn)行了廣泛的實(shí)驗(yàn)分析。結(jié)果表明,該方法能有效提高檢索準(zhǔn)確率,并縮短了檢索時(shí)間。
圖1 為融合全局與局部特征的服裝圖像檢索網(wǎng)絡(luò)框架。對于輸入圖像,首先使用骨干CNN 提取特征,使用全局和局部特征融合模塊獲取全局特征與局部特征互相增強(qiáng)的融合表示;然后使用全局平均池化的方法得到全局特征向量,分別計(jì)算三元損失、中心損失和質(zhì)心損失;最后對全局特征向量進(jìn)行歸一化,得到圖像嵌入。該圖像嵌入在訓(xùn)練期間作為全連層的輸入用于計(jì)算分類損失,并結(jié)合之前得到的3 種損失計(jì)算聯(lián)合損失以約束聚類任務(wù)。在檢索階段,該圖像嵌入用于計(jì)算相似距離,并基于該距離使用質(zhì)心損失方法進(jìn)行檢索。
Fig.1 Framework for clothing image retrieval network integrating global and local features圖1 融合全局與局部特征的服裝圖像檢索網(wǎng)絡(luò)框架
2.1.1 全局與局部分支
局部特征分支的兩個(gè)主要部分為多重空洞卷積(Atrous Spatial Pyramid Pooling,ASPP)[15]和自注意力模塊。前者模擬特征金字塔,用于處理不同圖像實(shí)例之間的分辨率變化;后者用于建模局部特征的重要性。ASPP 包含3 個(gè)空洞率分別為6、12、18 的空洞卷積層,不同空洞率可以獲得不同的感受野,因此本文模型可以在同一時(shí)間獲得具有不同感受野的特征圖,完成多尺度信息捕獲。對3 個(gè)不同空洞卷積提取的特征和全局平均池化分支進(jìn)行級聯(lián)操作得到一個(gè)特征矩陣,再經(jīng)過一個(gè)1×1 卷積層降維后作為ASPP 輸出。ASPP 輸出的特征映射被提交到自我注意模塊,用于進(jìn)一步建模每個(gè)局部特征點(diǎn)的重要性。首先使用1×1的卷積—批處理層對ASPP 輸入進(jìn)行處理;然后分成兩個(gè)分支,一支對特征進(jìn)行L2 正則化,另一支經(jīng)過Relu 激活函數(shù)和1×1 卷積層后進(jìn)行SoftPlus 操作,對每個(gè)特征點(diǎn)計(jì)算注意力分?jǐn)?shù),將該注意力分?jǐn)?shù)與L2 正則化后的特征相乘計(jì)算出來的最終結(jié)果作為該圖像的局部特征fl。
全局分支對第4 層卷積層后得到的特征進(jìn)行Gem 池化[16]后得到最后輸入到正交融合部分的全局輸出fg。對于f∈RC×W×H(C 為通道數(shù))的張量而言,Gem 池化可表示為:
式中:pC為可學(xué)習(xí)參數(shù),當(dāng)pC=1 時(shí)Gem 池化等同于均值池化;當(dāng)pC>1 時(shí),Gem 池化關(guān)注顯著特征點(diǎn);當(dāng)pC→∞時(shí),Gem 池化等同于全局池化。根據(jù)DELG[14]中的設(shè)置,本文將其初始值設(shè)置為3.0。
2.1.2 特征融合
特征融合過程圖2 所示。具體步驟為以局部特征fl和全局特征fg作為輸入,計(jì)算出fl在fg上的正交分量,并將該正交分量與全局特征聚合成一個(gè)聯(lián)合表示。
Fig.2 Feature fusion process圖2 特征融合過程
Fig.3 Orthographic projection process圖3 正交投影過程
在訓(xùn)練階段使用一個(gè)由4 個(gè)部分組成的損失函數(shù):①在原始嵌入上計(jì)算的三元組損失;②中心損失作為輔助損失;③在批量歸一化嵌入上使用全連接層計(jì)算的分類損失;④使用查詢向量和批類質(zhì)心計(jì)算的質(zhì)心損失。因此,總目標(biāo)優(yōu)化函數(shù)表示為:
式中:δ1為可學(xué)習(xí)參數(shù),表示損失函數(shù)所占權(quán)重,初始設(shè)置為5e-4。
以上聚合表示對異常值更穩(wěn)健,能確保更穩(wěn)定的特征。在檢索階段使用質(zhì)心表示,每個(gè)圖像不需要像三元組損失一樣計(jì)算輸入圖像與批類每一個(gè)圖像的距離,大大減少了檢索時(shí)間和存儲需求。
2.2.1 中心損失
在目前基于深度學(xué)習(xí)的實(shí)例檢索方案中,三元損失是應(yīng)用最廣泛的方法之一。計(jì)算公式為:
式中:A為輸出圖像,P為正例圖像,N為負(fù)例圖像,Ac為三元組損失的邊際。三元組損失只考慮了A與P、N之間的差值,忽略了它們的絕對值。例如,當(dāng)f(A)-f(P)=0.4,f(A)-f (N)=0.6,ac=0.4 時(shí),三元組損失為0.2;而f(A)-f(P)=1.6,f(A)-f (N)=1.4時(shí),三元組損失也為0.2,但此時(shí)輸入圖像與正類的距離大于負(fù)類距離。三元損失由兩個(gè)在正負(fù)類中分別隨機(jī)抽取的圖像計(jì)算,即使三元損失很小,也很難確保整個(gè)訓(xùn)練數(shù)據(jù)集中正類的距離大于負(fù)類距離。為彌補(bǔ)三元組缺失的缺點(diǎn),在訓(xùn)練中引入中心損失[18],同時(shí)學(xué)習(xí)每個(gè)類別深度特征的一個(gè)中心,并根據(jù)深度特征與其相應(yīng)類別中心之間的距離進(jìn)行懲罰。中心損失函數(shù)表示為:
式中:yj為輸入的第j 個(gè)圖像標(biāo)簽;cyj表示深度特征的yj類中心;B為輸入圖像的批大小。
2.2.2 質(zhì)心損失
除了聚類效果不佳,三元損失還具有以下缺點(diǎn)[19-21]:①三元損失主要通過硬負(fù)采樣創(chuàng)建訓(xùn)練批圖像,但可能會導(dǎo)致糟糕的局部極小值;②硬負(fù)采樣計(jì)算成本高,需要計(jì)算批內(nèi)所有樣本之間的距離;③容易出現(xiàn)異常值和噪聲標(biāo)簽。為減小三元損失硬負(fù)采樣帶來的影響,在訓(xùn)練和檢索階段引入質(zhì)心損失,見圖4。圖中的距離指測量樣本與代表一個(gè)類的質(zhì)心之間的距離;質(zhì)心為批中每一類所有圖像表示的聚合。質(zhì)心方法可使每個(gè)圖像只用計(jì)算一次嵌入,解決了計(jì)算成本和存儲問題。
Fig.4 Centroid loss圖4 質(zhì)心損失
三元組損失是比較圖像與正負(fù)圖像之間的距離,而質(zhì)心損失是測量圖像A 與兩個(gè)類別中心Cp和Cn之間的距離。質(zhì)心損失計(jì)算公式為:
式中:Cp為與輸入圖像同一類的質(zhì)心,Cn為與輸入圖像不同類的質(zhì)心。
本文在包含80 萬張圖像的DeepFashion 數(shù)據(jù)集[21]上進(jìn)行實(shí)驗(yàn),其由4 個(gè)子集組成。選擇其中的Consumer-toshop 服裝檢索子集,包含33 881 種商品,共 239 557 張圖片。
跨域服裝檢索方法通常采用均值平均精度(Mean Average Precision,MAP)作為檢索結(jié)果位置信息的評價(jià)標(biāo)準(zhǔn)。計(jì)算公式為:
式中:Q為檢索數(shù)據(jù)庫中的服裝圖像數(shù)量;AP為平均查詢正確率,是一次查詢結(jié)果查準(zhǔn)率與查全率曲線下的面積。
Top-k 準(zhǔn)確率為跨域服裝檢索中最常用的評價(jià)指標(biāo)。計(jì)算公式為:
式中:q為待查詢圖像,Q為查詢庫中所有圖像的數(shù)量。如果根據(jù)相似度距離檢索出的前k 個(gè)圖像中至少有一個(gè)與q匹配,那么h(q,k)=1,否則h(q,k)=0。
使用PyTorch Lighting 框架實(shí)現(xiàn)代碼,在Google Colab中使用Ubuntu18 系統(tǒng)、26g 內(nèi)存和P100 顯卡進(jìn)行實(shí)驗(yàn)。使用47 434 張查詢圖像驗(yàn)證本文方法的檢索效果。使用 ResNet50-IBN-A 作為預(yù)訓(xùn)練網(wǎng)絡(luò),Stride=1,ResNet 最后一層輸出維度為2 048,批大小為12,中心損失加權(quán)系數(shù)為5e-4,所有其他損失權(quán)重為1。使用基礎(chǔ)學(xué)習(xí)率為1e-4的Adam 優(yōu)化器,同時(shí)使用學(xué)習(xí)率調(diào)度器,在第40、70 個(gè)epoch后學(xué)習(xí)率降低10倍,模型訓(xùn)練120個(gè)epoch。
使用 ResNet50-IBN-A 作為預(yù)訓(xùn)練網(wǎng)絡(luò),Stride=1,ResNet 最后一層輸出維度為2 048,批大小為12,中心損失加權(quán)系數(shù)為5e-4,所有其他損失權(quán)重為1。使用基礎(chǔ)學(xué)習(xí)率為1e-4的Adam 優(yōu)化器,同時(shí)使用學(xué)習(xí)率調(diào)度器,在第40、70個(gè)epoch 后學(xué)習(xí)率降低10倍,模型訓(xùn)練120個(gè)epoch。
在檢索階段,使用批歸一化向量后的圖像嵌入計(jì)算相似度距離,距離度量為余弦相似度。比較本文方法與GRNRT[9]、CTL-S-50[10]、VGG16-atten[11]、GSN[22]模型的top-k 檢索準(zhǔn)確率,結(jié)果見圖5??梢钥闯?,本文方法比對照方法表現(xiàn)出色。這是由于將全局特征與局部特征融合起來能有效彌補(bǔ)特征表達(dá)的不足,提高檢索準(zhǔn)確性,且本文方法僅使用圖像級標(biāo)簽進(jìn)行訓(xùn)練,無需復(fù)雜注釋。
Fig.5 Comparison of top-k retrieval accuracy of different models圖5 不同模型top-k檢索準(zhǔn)確率比較
表1 為本文方法和實(shí)例檢索方法在DeepFashion 測試集上所需時(shí)間和空間比較。前文中的VGG16-atten、GRNRT 均屬于實(shí)例檢索的范疇??梢钥闯?,在檢索階段使用質(zhì)心方法大大減少了所需圖片數(shù)量,檢索速度有較大提升。這是由于每個(gè)類通常有若干個(gè)圖像,而一個(gè)質(zhì)心可以表示每一類的一整組圖像。
Table 1 Comparison of time and space required by the proposed method and the example retrieval method表1 本文方法和實(shí)例檢索方法所需時(shí)間和空間比較
圖6 為DeepFashion 數(shù)據(jù)集上的部分檢索結(jié)果,由在320×320 圖像上訓(xùn)練的最佳模型產(chǎn)生。左邊第一列圖像為查詢圖像,其右側(cè)圖像為相似度遞減的top-5 檢索結(jié)果,帶邊框的檢索圖像為與查詢圖像匹配正確的結(jié)果。檢索是在整個(gè)圖庫數(shù)據(jù)集上執(zhí)行的,沒有對查詢項(xiàng)類別進(jìn)行修剪。
Fig.6 top-5 search results圖6 top-5檢索結(jié)果
本文提出一種基于特征融合的跨域服裝檢索方法,其在傳統(tǒng)CNN 的基礎(chǔ)上嵌入全局和局部特征正交融合模塊,在端到端的框架中將多重空洞卷積和自注意力機(jī)制得到的重要局部特征與全局特征融合,以獲得互相增強(qiáng)且更具判別力的圖像表征,彌補(bǔ)對于局部特征利用不足的缺陷。同時(shí),在訓(xùn)練和檢索階段均使用質(zhì)心損失,大大減少了檢索過程的計(jì)算量,加快了檢索速度。實(shí)驗(yàn)表明,與其他常用跨域服裝檢索方法相比,本文方法在準(zhǔn)確性指標(biāo)上有一定提升。雖然使用質(zhì)心損失、中心損失、三元損失和交叉熵分類損失聯(lián)合的損失函數(shù)進(jìn)行訓(xùn)練能取得較好效果,但這些損失函數(shù)的目標(biāo)并不一致,有些甚至差距較大,如三元損失和分類損失。過于復(fù)雜的損失函數(shù)可能是準(zhǔn)確率繼續(xù)提高的瓶頸之一,后續(xù)可考慮對損失函數(shù)進(jìn)行改造,使用具有協(xié)同效應(yīng)的損失函數(shù)聯(lián)合訓(xùn)練。