駱 正 茂
(浙江東方職業(yè)技術(shù)學(xué)院 浙江 溫州 325011)
相對于傳統(tǒng)的逛街購物方式,網(wǎng)上購物具有省時省力且物美價廉的優(yōu)點。隨著交易監(jiān)督制度的完善、物流行業(yè)的發(fā)展以及電子商務(wù)的進步,網(wǎng)上購物越來越受到人們的認可,尤其是年輕人更愿意在網(wǎng)上購物。
包作為一種重要的商品,種類繁多款式多樣,有著極大的購物需求。因此,如何讓消費者在網(wǎng)購平臺上快速地查找到稱心如意的款式,是一個重要的問題。對于這個問題,現(xiàn)在各大電商主要采用的是基于關(guān)鍵字檢索的方法。該方法的技術(shù)雖然比較成熟,但是依然存在一些問題。例如,在構(gòu)建檢索庫的過程中,需要對每一種款式的包都做詳細的文字描述,否則無法根據(jù)關(guān)鍵字進行搜索。但是,這是一項非常耗費人工的工作。并且,消費者有時候無法用文字準確地描述出自己想要購買的款式,基于關(guān)鍵字檢索的方式就無法發(fā)揮其作用。因此,該策略具有極大的局限性。
基于內(nèi)容的圖像檢索是計算機視覺領(lǐng)域的一個重要研究方向,能夠很好地解決關(guān)鍵字檢索中所面臨的問題。首先,該方法對圖像內(nèi)容進行編碼,將圖像轉(zhuǎn)換成一維向量表示。然后,通過距離度量等方式來比較向量之間的相似性,進而獲得圖像之間的相似性。因此,一個表征能力較優(yōu)的向量計算方法成為衡量算法效果的一個關(guān)鍵因素。具有旋轉(zhuǎn)不變性的局部描述子SIFT算法[1]的出現(xiàn),以及Sivic和Zisserman關(guān)于詞袋模型算法[2]的研究,極大地促進了基于內(nèi)容的圖像檢索的發(fā)展。Fisher[3]和Vlad[4]所運用的聚合圖像局部特征點算法使圖像表征向量相對于詞袋模型具有更好的表征能力。詞袋算法和HE[5]算法相結(jié)合,也能夠取得較好的圖像檢索結(jié)果。此外,一些幾何驗證方式[6-7]和擴展查詢方法[8-9]的研究也提高了這種傳統(tǒng)方法的效果。近年來,圖形處理硬件(GPU)的計算能力的提升以及大規(guī)模圖像訓(xùn)練集[10]的出現(xiàn),都極大地促進了基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)領(lǐng)域的發(fā)展。大量現(xiàn)有工作[11-13]證明,利用卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的圖像特征能夠直接用來做圖像的相似性檢索并取得相對于傳統(tǒng)算法更好的效果。因此,本文采用卷積神經(jīng)網(wǎng)絡(luò)來處理包類款式的圖像檢索問題。
針對卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練需要大量數(shù)據(jù)集的問題,本文整理了5 000幅有標簽的包類款式圖像訓(xùn)練集,同時提出了一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò)不同層的特征來進行包類款式的圖像內(nèi)容檢索方法。實驗結(jié)果證明,本文方法能夠較好地檢索出相同或相似款式的包。
基于卷積神經(jīng)網(wǎng)絡(luò)模型Alex_net,Krizhevsky[12]等獲得了ImageNet LSVRC-2010大賽的冠軍。從那時起,卷積神經(jīng)網(wǎng)絡(luò)吸引了越來越多學(xué)者的注意。隨著研究的深入,卷積神經(jīng)網(wǎng)絡(luò)被應(yīng)用于機器視覺的諸多領(lǐng)域,并且取得了很好的效果。在圖像識別問題上,基于網(wǎng)絡(luò)結(jié)構(gòu)VGG_net[14]、 Google 公司的inception系列[15]以及何凱明等的Res_net[16]的卷積神經(jīng)網(wǎng)絡(luò)模型,分別獲得了2014年、2015年、2016年的ImageNet 大賽的冠軍?;诰矸e神經(jīng)網(wǎng)絡(luò)的R-CNN[17-19]和YOLO[20-21]還能有效地解決通用目標檢測問題。
Krizhevsky等[12]直接利用訓(xùn)練好的網(wǎng)絡(luò)模型來提取圖像特征,解決圖像的相似性檢索問題。在此基礎(chǔ)上,Babenko等[11]將在待檢索圖像上微調(diào)好的網(wǎng)絡(luò)模型的全連接層作為圖像的特征。Azizpour等[22]采用max-pooling特定卷積層的方式進一步提高特定物體或者場景檢索問題的效果。Babenko等[23]則提出運用sum-pooling結(jié)合白化歸一化等方式來獲得圖像特征的表征能力。Yannis等[24]進一步提出了一種基于卷積層不同維度加權(quán)聚合的方法來計算圖像特征表示。最近,一些方法基于圖像局部區(qū)域和卷積層的特征結(jié)合來構(gòu)建圖像的特征表示,取得了不錯的效果[25]。
雖然已經(jīng)有很多關(guān)于卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于圖像檢索方面的研究,但是基于卷積神經(jīng)網(wǎng)絡(luò)不同層的特征應(yīng)用于包類款式的圖像檢索問題研究還比較少。一方面包類圖像不是剛體比較容易受角度、亮度、尺度等因素影響。另一方面沒有針對這類問題的公開數(shù)據(jù)集。因此文章提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)不同層特征的方法來解決包類款式的圖像檢索問題,并且同時提供了一份包類款式數(shù)據(jù)集。
為了提高圖像的表征能力從而增加檢索的準確度。本文提出了一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò)不同層的特征進行圖像檢索的方法。算法一共包括三個步驟,下面將對算法進行詳細的介紹。
卷積神經(jīng)網(wǎng)絡(luò)模型[12,14-16]擁有非常多的模型參數(shù),因此具有很強的分類能力。同時,也因為其參數(shù)較多,所以需要大量的數(shù)據(jù)集進行訓(xùn)練。然而,很多任務(wù)往往并沒有百萬級的數(shù)據(jù)集。遷移學(xué)習(xí)被用來緩解這種問題。在大量數(shù)據(jù)集訓(xùn)練好的網(wǎng)絡(luò)模型基礎(chǔ)上,針對特定的任務(wù)利用少量的數(shù)據(jù)集進行微調(diào)訓(xùn)練,是一種簡單且高效的遷移學(xué)習(xí)方法能夠取得不錯的效果。
為了能夠得到較好表示包類商品圖片的特征,算法首先利用少量數(shù)據(jù)集通過微調(diào)訓(xùn)練的方式得到一個對于包類商品圖片分類能力較好的網(wǎng)絡(luò)模型。圖1中給出了一個微調(diào)訓(xùn)練的網(wǎng)絡(luò)結(jié)構(gòu),固定或略微更新已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)層的參數(shù),重新訓(xùn)練修改后的網(wǎng)絡(luò)層的參數(shù)。然后,通過優(yōu)化多分類任務(wù)來訓(xùn)練網(wǎng)絡(luò)模型的參數(shù)。定義損失函數(shù)如下:
(1)
式中:N表示訓(xùn)練集的圖片數(shù),pn表示第n張輸入圖片所有款式中的最大概率值,該值可以根據(jù)SoftMax計算得到,ln是第n張圖片對應(yīng)的款式標簽。可以使用梯度下降法來優(yōu)化該損失函數(shù)。
圖1 微調(diào)網(wǎng)絡(luò)結(jié)構(gòu)
圖像檢索主要包括建立特征索引庫和近鄰匹配兩個步驟,接下來將圍繞這兩個方面來展開介紹。
第一步是建立特征索引庫。假設(shè)檢索庫中共有M張圖片,I表示其中一張圖片。將I作為已經(jīng)微調(diào)好的網(wǎng)絡(luò)的輸入,做一次前向傳播操作。然后,提取網(wǎng)絡(luò)中的高層特征和中層特征,通過特征拼接的方式將不用層的特征拼接在一起,做一次歸一化操作得到圖片I的一維特征向量VI,其向量維度用N表示。因此,對于檢索庫中的M張圖片,分別采用這種方式提取圖片的特征就可以得到一個M×N的矩陣。這個矩陣就是要建立的特征索引庫。
第二步是近鄰匹配。用q表示輸入的查詢圖片。首先,計算出q的特征向量,計算方法與建立索引庫時的方法相同。然后,計算出索引庫中與向量Vq距離最相鄰的k個向量,采用如下距離度量公式:
Sq,i=‖vq-vi‖2i∈{1,2,…,M}
(2)
簡單地對所有的S值進行排序,即可獲得k個距離最小的向量的索引,即所查詢到的圖像的索引。
根據(jù)初次搜索查詢到的k張圖片的特征向量和查詢圖片的特征向量,求出這些向量的均值,得到一個新的特征向量。利用該特征向量再做一次搜索。這種利用初次查詢的結(jié)果進行擴展查詢的方式被證明能夠取得一定的檢索精度的提升[23-24],并且本文后面的實驗部分也證明了該方法的有效性。
圖2展示了訓(xùn)練集中的部分訓(xùn)練圖片。訓(xùn)練集一共包含50種不同的款式,每個款式有100張圖片。每種款式是由同一種款式的不同角度、亮度、背景、顏色的包類圖片組成。測試集包含50種不同的款式(和訓(xùn)練集中的款式不同),每種款式包含20張圖片。這些圖片主要來源于蘑菇街網(wǎng)頁上的商品展示區(qū)和用戶評論區(qū),因此數(shù)據(jù)集也考慮到了網(wǎng)頁圖片和現(xiàn)實圖片的場景差異問題。
圖2 部分訓(xùn)練集中的圖片
本文采用查詢結(jié)果的平均準確率來評估算法的準確度:
(3)
式中:a表示正確的查詢結(jié)果,N表示所有的查詢結(jié)果。
本文實驗硬件環(huán)境為一臺搭載英偉達GeForce GTX Titan-X顯卡、英特爾i7處理器、32 GB內(nèi)存的臺式電腦,軟件環(huán)境為Ubuntu14.04、開源深度學(xué)習(xí)框架Caffe[26]。本部分將通過實驗來分析本文算法的可行性。
隨著深度學(xué)習(xí)研究的深入,近年來有許多網(wǎng)絡(luò)結(jié)構(gòu)被提出來。為了選擇適合包類圖片檢索的網(wǎng)絡(luò)結(jié)構(gòu),本文首先在ImageNet 數(shù)據(jù)集上進行網(wǎng)絡(luò)模型的訓(xùn)練。然后在本文提供的檢索測試集上通過計算mAP值來測量各種網(wǎng)絡(luò)模型的檢索效果。表1中給出了測量的結(jié)果,可以看出Google_net[15]比較適合本文的任務(wù)。因此,本文選擇該卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)作為基礎(chǔ)網(wǎng)絡(luò),在該網(wǎng)絡(luò)上進行微調(diào)訓(xùn)練。
表1 各種網(wǎng)絡(luò)模型在測試集上的檢索效果比較
基于Caffe框架來進行網(wǎng)絡(luò)的微調(diào)訓(xùn)練。首先,在原有的用來定義Google_net網(wǎng)絡(luò)結(jié)構(gòu)的train_val.prototxt文件中修改網(wǎng)絡(luò)結(jié)構(gòu)中l(wèi)oss1/classifer、loss2/classifer以及l(fā)oss3/classifer層神經(jīng)元的個數(shù)為50,同時修改對應(yīng)的網(wǎng)絡(luò)層的名稱為loss1/classifer_modify、loss2/classifer_modify、以及l(fā)oss3/classifer_modify。然后,在train_val.prototxt文件中分別設(shè)置這三層網(wǎng)絡(luò)的學(xué)習(xí)率為lr=0.000 1,設(shè)置網(wǎng)絡(luò)中其他層的學(xué)習(xí)率lr=0.000 01。最后在solver.prototxt文件中設(shè)置base_lr為0.001、weight_decay=0.000 4、momentum=0.9,采用增量梯度下降法來訓(xùn)練網(wǎng)絡(luò)中的參數(shù)。該微調(diào)策略可以保證未修改層參數(shù)在原網(wǎng)絡(luò)上略微改變的同時,加快修改層參數(shù)的學(xué)習(xí)速率。圖3中給出了采用每層統(tǒng)一設(shè)置學(xué)習(xí)率和分層設(shè)置學(xué)習(xí)率的mAP值比較。從圖中曲線可以看出,單獨設(shè)置修改層的學(xué)習(xí)率的參數(shù)不僅能夠加快學(xué)習(xí)速率,而且不易陷入局部最優(yōu)的情況。
圖3 統(tǒng)一設(shè)置學(xué)習(xí)率和分層設(shè)置學(xué)習(xí)率的結(jié)果比較
在訓(xùn)練的過程中,采用數(shù)據(jù)增強來擴充訓(xùn)練集。經(jīng)過多次測試最終采用了圖片鏡像和改變亮度來擴充訓(xùn)練集。由原先的5 000張圖片擴充到15 000張圖片。經(jīng)過數(shù)據(jù)增強訓(xùn)練得到的網(wǎng)絡(luò)模型較未經(jīng)數(shù)據(jù)增強的網(wǎng)絡(luò)模型,在一方面能夠防止過擬合,另一方面能夠取得mAP值的提升,在本文測試集上約為1個點的提升。
Google_net網(wǎng)絡(luò)層數(shù)相比Alex_net和Vgg_net的層數(shù)較多。通過測試,提取網(wǎng)絡(luò)的Inception_4c/1x1層的特征作為Middle-level特征,提取pool5/7x7_s1層的特征作為High-level特征能夠取得較好的檢索效果。由于Inception_4c/1x1是卷積層特征,接下來采用文獻[22]的方法做了一次最大池化的操作得到一個128維的向量,然后對該向量做L2標準化,如圖4所示。直接提取Pool5/7x7_s1層的特征得到一個1 024維的向量,同樣做L2標準化。
圖4 提取輸入圖像的特征表示
直接拼接標準化后的兩個向量,可以得到一個1152維的特征向量。由于該特征維度較大,為了節(jié)省存儲空間,算法采用PCA來進行降維。表2中給出了在N=10時的不同降維維度的檢索結(jié)果。從表2中可以發(fā)現(xiàn),特征維度的降低并沒有對檢索效果帶來很大的影響,還有可能出現(xiàn)結(jié)果變好的情況,這是因為PCA可能會減少一些不重要信息對檢索帶來的負面影響。因此,算法利用PCA把每張圖片的特征向量從1152維降低到128維,能夠在不影響檢索精度的前提下極大地節(jié)約存儲空間。
表2 PCA降維對檢索結(jié)果的影響
將測試集中的所有圖片通過上述方法獲得圖片的特征表示,并且建立索引表。然后,通過近鄰搜索的方式進行查詢,得到初次查詢的結(jié)果。最后,根據(jù)初次查詢的結(jié)果使用前5張最相近的圖片的特征均值進行擴展查詢,得到查詢的最終結(jié)果。表3中列舉了算法的在N=10時測試集上的使用多層和單層特征,以及擴展查詢的檢索結(jié)果比較。從結(jié)果中可以看出,通過結(jié)合不同層的特征能夠帶來檢索精度的提升。并且擴展查詢能進一步提高檢索能力。
表3 不同算法的結(jié)果比較
表4給出了本文算法和一些傳統(tǒng)的基于特征描述子的方法在N=10時測試集上的檢索結(jié)果比較。從表中可以看出本文算法要比這些傳統(tǒng)算法要好很多。這是因為有些包類商品表面比較光滑沒有一些顯著的局部信息,因此采用sift這種局部描述子和聚類算法相結(jié)合的方式就很難發(fā)揮其作用。
表4 和傳統(tǒng)方法的結(jié)果比較
圖5中給出了部分圖片的搜索結(jié)果,左邊第一列圖片是輸入的查詢圖片,右邊是查詢的結(jié)果。
圖5 部分查詢結(jié)果
該實驗部分充分證明算法的有效性。表1中首先給出了基于文獻[22]中直接利用在ImageNet數(shù)據(jù)集上訓(xùn)練好的網(wǎng)絡(luò)來提取特征的方法解決包類圖像相似檢索的問題,該方法的top5準確度只能達到78.39%。為證明僅僅基于網(wǎng)絡(luò)高層特征作為圖像特征[11]的方法不適合做圖像相似檢索。表3給出了基于單層特征和本文提出的采用多層特征的效果比較。顯然本文提出的基于多層特征融合的方法能夠取得更好的檢索精度。同時表4中和傳統(tǒng)算法的對比,也證明了基于深度學(xué)習(xí)算法在包類圖像相似檢索問題上的高效性。綜上所述本文提出的基于卷積神經(jīng)網(wǎng)絡(luò)不同層特征的方法,能夠很好地應(yīng)用于包類圖像的相似檢索。
為了說明算法的實際應(yīng)用價值,本部分介紹在實際場景下本文算法的應(yīng)用。上傳手機拍攝的包類圖片來搜索相同款式的包類商品。由于這種情況下拍攝的圖片往往包含比較復(fù)雜的背景,所以需要先做目標檢測。本文采用Faster-rcnn[19]算法進行包的檢測,圖6中給出了一些檢測的結(jié)果。然后,利用本文算法進行相同包類款式的檢索。為了評估算法的所需要消耗的時間,本次實驗構(gòu)建了包含100萬張不同種類商品的檢索庫。表5中給出了算法在各個階段所花費的時間和總時間。實驗結(jié)果表明,本文的算法通過和檢測算法結(jié)合能夠用于街拍圖片的快速檢索。
圖6 包類商品檢測的結(jié)果
階段檢測提取特征近鄰匹配總計時間0.04s0.03s0.50s0.57s
本文介紹了一種結(jié)合卷積神經(jīng)網(wǎng)絡(luò)不同層的特征進行包類商品圖像檢索的方法。詳細的實驗結(jié)果與應(yīng)用證明了本文方法能夠取得較好的檢索效果。但是,算法依然存在一些不足之處,比如模型只根據(jù)較少的訓(xùn)練集訓(xùn)練獲得,因此模型的遷移能力有限。在今后的研究中,將進一步完善和解決本文算法所存在的問題。
[1] Lowe D G.Distinctive Image Features from Scale-Invariant Keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[2] Sivic J,Zisserman A.Video Google:A Text Retrieval Approach to Object Matching in Videos[C]//IEEE International Conference on Computer Vision.IEEE Computer Society,2003:1470.
[3] Perronnin F,Liu Y,Sanchez J,et al.Large-scale image retrieval with compressed Fisher vectors[C]//2013 IEEE Conference on Computer Vision and Pattern Recognition.IEEE,2010:3384-3391.
[4] Jégou H,Perronnin F,Douze M,et al.Aggregating local image descriptors into compact codes[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2012,34(9):1704-1716.
[5] Jegou H,Douze M,Schmid C.Hamming Embedding and Weak Geometric Consistency for Large Scale Image Search[C]//European Conference on Computer Vision.Springer-Verlag,2008:304-317.
[6] Philbin J,Chum O,Isard M,et al.Object retrieval with large vocabularies and fast spatial matching[C]//Computer Vision and Pattern Recognition,2007.CVPR’07.IEEE Conference on.IEEE,2007:1-8.
[7] Shen X,Lin Z,Brandt J,et al.Spatially-Constrained Similarity Measure for Large-Scale Object Retrieval[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2014,36(6):1229-1241.
[8] Chum O,Mikulik A,Perdoch M,et al.Total recall II:Query expansion revisited[C]//IEEE Conference on Computer Vision & Pattern Recognition.IEEE,2011:889-896.
[9] Tolias G,Jégou H.Visual query expansion with or without geometry:Refining local descriptors by feature aggregation[J].Pattern Recognition,2014,47(10):3466-3476.
[10] Russakovsky O,Deng J,Su H,et al.ImageNet Large Scale Visual Recognition Challenge[J].International Journal of Computer Vision,2015,115(3):211-252.
[11] Babenko A,Slesarev A,Chigorin A,et al.Neural Codes for Image Retrieval[M]//Computer Vision-ECCV 2014.Springer International Publishing,2014:584-599.
[12] Krizhevsky A,Sutskever I,Hinton G E.ImageNet Classification with Deep Convolutional Neural Networks[J].Advances in Neural Information Processing Systems,2012,25(2):2012.
[13] Wan J,Wang D,Hoi S C H,et al.Deep Learning for Content-Based Image Retrieval:A Comprehensive Study[C]//ACM International Conference on Multimedia,2014:157-166.
[14] Simonyan K,Zisserman A.Very Deep Convolutional Networks for Large-Scale Image Recognition[J].Computer Science,2014.
[15] Szegedy C,Liu W,Jia Y,et al.Going deeper with convolutions[C]//2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2015:1-9.
[16] He K,Zhang X,Ren S,et al.Deep Residual Learning for Image Recognition[C]//Computer Vision and Pattern Recognition.IEEE,2016:770-778.
[17] Girshick R,Donahue J,Darrell T,et al.Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[C]//IEEE Conference on Computer Vision and Pattern Recognition.IEEE Computer Society,2014:580-587.
[18] Girshick R.Fast R-CNN[C]//IEEE International Conference on Computer Vision.IEEE Computer Society,2015:1440-1448.
[19] Ren S,He K,Girshick R,et al.Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2017,39(6):1137-1149.
[20] Redmon J,Divvala S,Girshick R,et al.You Only Look Once:Unified,Real-Time Object Detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2016.
[21] Liu W,Anguelov D,Erhan D,et al.SSD:Single Shot MultiBox Detector[C]//European Conference on Computer Vision.Springer,Cham,2016:21-37.
[22] Azizpour H,Razavian A S,Sullivan J,et al.From generic to specific deep representations for visual recognition[C]//Computer Vision and Pattern Recognition Workshops.IEEE,2015:36-45.
[23] Babenko A,Lempitsky V.Aggregating Deep Convolutional Features for Image Retrieval[J].Computer Science,2015.
[24] Kalantidis Y,Mellina C,Osindero S.Cross-Dimensional Weighting for Aggregated Deep Convolutional Features[C]//European Conference on Computer Vision.Springer,Cham,2016:685-701.
[25] Tolias G,Sicre R,Jégou H.Particular object retrieval with integral max-pooling of CNN activations[J].Computer Science,2015.
[26] Jia Y,Shelhamer E,Donahue J,et al.Caffe:Convolutional Architecture for Fast Feature Embedding[C]//ACM International Conference on Multimedia.ACM,2014:675-678.