趙俊杰,鄭興
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
圖像檢索中的特征表示方法研究
趙俊杰,鄭興
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
研究用于檢索的單幅圖像的兩種特征表示方法,第一種是基于SIFT等傳統(tǒng)手工特征點(diǎn)的表示方法;第二種是基于卷積神經(jīng)網(wǎng)絡(luò)的特征表示方法。采用CaffeNet和VGG-M兩個(gè)預(yù)訓(xùn)練模型,分別提取它們?nèi)B接層和卷積層的輸出作為圖像的特征。實(shí)驗(yàn)表明,對(duì)于預(yù)訓(xùn)練的模型,最后一層卷積的特征對(duì)于檢索的效果要好于全連接層的特征。
特征提??;圖像檢索;卷積神經(jīng)網(wǎng)絡(luò)
近年來(lái),隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,每個(gè)人都可以用手機(jī)或者平板電腦接入互聯(lián)網(wǎng)。而手機(jī)所具有的拍攝功能使得互聯(lián)網(wǎng)上每天都會(huì)產(chǎn)生巨量的圖像和視頻數(shù)據(jù),如何組織和利用這些海量的圖像和視頻數(shù)據(jù)成為了多媒體領(lǐng)域研究的熱點(diǎn)問(wèn)題。CBIR[1](基于內(nèi)容的圖像檢索技術(shù))作為一種重要的信息獲取方式也越來(lái)越受到研究人員的重視。CBIR一般的流程是先將圖片轉(zhuǎn)化成某種特征表示形式,然后選取合適的距離度量方式,計(jì)算兩張圖片的相似度,最后排序得到結(jié)果。這其中,對(duì)于圖像的特征表示方法是最為關(guān)鍵的一個(gè)環(huán)節(jié),直接影響圖片檢索的準(zhǔn)確度。本文主要研究了用于檢索目的的特征表示方法,采用傳統(tǒng)手工設(shè)計(jì)的方法和近年來(lái)比較流行的深度卷積神經(jīng)網(wǎng)絡(luò)技術(shù),并在百萬(wàn)級(jí)的商品圖片數(shù)據(jù)集上做了實(shí)驗(yàn)分析。
在傳統(tǒng)的特征表示方法中,對(duì)于圖像特征的提取一般是采用局部特征點(diǎn),然后再根據(jù)所使用的場(chǎng)景來(lái)把這些局部特征點(diǎn)組合成特征向量。本文采用的傳統(tǒng)的特征表示由詞袋模型演變而來(lái),基于SIFT[2]和Color Moment(顏色特征矩)特征,其流程如下:
①對(duì)查詢集的所有圖片依次提取特征點(diǎn)。
②對(duì)所有的特征點(diǎn),采用K-Means方法進(jìn)行聚類,所有的聚類中心形成一個(gè)約10000維的詞典。
再對(duì)每一幅圖像中的特征點(diǎn),在②中形成的詞典上面進(jìn)行直方圖投票,形成該張圖片的特征向量。
在上面的流程中,對(duì)于每張圖片特征點(diǎn)的直方圖投票方式解釋如下:
①計(jì)算該張圖片中所有特征點(diǎn)和詞典中聚類中心的距離。
②對(duì)①中的結(jié)果進(jìn)行排序,選取距離最相近的前4個(gè)特征點(diǎn),并在直方圖相應(yīng)的位置進(jìn)行累加。形成特征向量。
在上面的流程中,關(guān)于向量相似度的距離度量方法,在本文的實(shí)驗(yàn)部分討論。在深度學(xué)習(xí)技術(shù)出現(xiàn)以前,基于內(nèi)容的圖像檢索通常都是采用上述特征表示方法,或者詞袋模型結(jié)合倒排索引的技術(shù)來(lái)實(shí)現(xiàn)。傳統(tǒng)方法的優(yōu)勢(shì)在于對(duì)計(jì)算資源的需求較小,模型簡(jiǎn)單,易于實(shí)現(xiàn)和應(yīng)用,但在檢索效果上遠(yuǎn)不如現(xiàn)在基于卷積神經(jīng)網(wǎng)絡(luò)的特征表示方法,本文會(huì)在第二小節(jié)詳細(xì)討論后者。
2.1 卷積神經(jīng)網(wǎng)絡(luò)概述
從2012年AlexNet[3]贏得ImageNet[4]比賽過(guò)后,卷積神經(jīng)網(wǎng)絡(luò)獲得大量研究人員的關(guān)注和投入。卷積神經(jīng)網(wǎng)絡(luò)是深度神經(jīng)網(wǎng)絡(luò)的一種,它和普通神經(jīng)網(wǎng)絡(luò)的區(qū)別是,它通過(guò)局部連接、權(quán)值共享等方法來(lái)避免傳統(tǒng)神經(jīng)網(wǎng)絡(luò)采用全連接方式造成參數(shù)量巨大的問(wèn)題。卷積神經(jīng)網(wǎng)絡(luò)其特點(diǎn)決定了它非常適合圖像處理類問(wèn)題,使得神經(jīng)網(wǎng)絡(luò)的參數(shù)在一個(gè)可控的范圍,能夠在現(xiàn)代GPU的計(jì)算機(jī)能力下高效地訓(xùn)練。
卷積神經(jīng)網(wǎng)絡(luò)一般由卷積層、Pooling(池化)層、全連接層等基本結(jié)構(gòu)構(gòu)成。本文采用了CaffeNet(AlexNet的復(fù)制[5])、VGG-M[6]兩種模型在深度學(xué)習(xí)框架Caffe[7]上進(jìn)行了實(shí)驗(yàn),它們的結(jié)構(gòu)如圖1所示。
VGG-M和CaffeNet都是五層卷積再加上三層全連接的結(jié)構(gòu),圖中96x11x11表示卷積核的數(shù)量為96,卷積核大小為11x11,St和pad分別表示參數(shù)stride(間隔)和padding(填充)。max-pooling和avg-pooling是兩種pooling方式,前者的含義是取pooling窗口中的最大值,后者則是計(jì)算pooling窗口的平均值。
2.2 CNN特征提取方法
本文所使用的兩種模型都是在ImageNet數(shù)據(jù)集上的預(yù)訓(xùn)練好的模型。特征提取方式是直接把每一層的輸出當(dāng)作該張圖片的特征向量,分別提取了fc7,fc6, conv5,conv4的特征并做了相應(yīng)的實(shí)驗(yàn)。其中fc6,fc7兩層的特征維數(shù)不高為4096,可以直接使用。而卷積層的輸出維數(shù)過(guò)高,本地的實(shí)驗(yàn)環(huán)境無(wú)法存儲(chǔ)和計(jì)算,因此在卷積層后面添加了pooling層來(lái)進(jìn)行降維處理。
pooling層使用了上文介紹的兩種方式,max和avg。以Caffe的配置形式表示為:
上面兩層的含義是在pool5層后面再接上了兩層分別為3×3和4×4的max-pooling,stride都為1,最后pool6_4×4層輸出的維度為2304。本文還討論了pooling的大小,以及兩種pooling方式得到的特征向量對(duì)檢索精度的影響。
圖1
3.1 實(shí)驗(yàn)數(shù)據(jù)和評(píng)測(cè)標(biāo)準(zhǔn)
本文使用了淘寶的商品數(shù)據(jù)集,訓(xùn)練集為200W,驗(yàn)證集為300W,并給定了1500張查詢圖片和對(duì)應(yīng)的ground truth。訓(xùn)練集中的圖片都具有兩級(jí)標(biāo)簽,和多種屬性,但是這些標(biāo)簽和屬性極度不均衡,對(duì)于檢索問(wèn)題的參考意義不大。曾使用這些標(biāo)簽和屬性對(duì)CaffeNet進(jìn)行fine-tune,然后提取特征再檢索,效果反而下降。
對(duì)于檢索結(jié)果,使用MAP值來(lái)決定。MAP(Mean Average Precision)是反映圖像檢索系統(tǒng)在全部相關(guān)query上的準(zhǔn)確度指標(biāo)。MAP的值由兩個(gè)因素決定:檢索結(jié)果中同款圖的數(shù)量和同款圖片在檢索結(jié)果中的位置。同款圖的數(shù)量越多且位置越靠前,MAP的值就越搞。如果檢索結(jié)果中沒(méi)有任何一個(gè)同款圖,則值為0。平均準(zhǔn)確率AP(Average Precision)定義為:
整個(gè)檢索框架的基本流程是,先計(jì)算每一張的圖片的特征向量,然后計(jì)算特征向量之間的距離,然后排序。本文使用Cosine Similarity(余弦距離)[8]來(lái)衡量相似度,實(shí)驗(yàn)表明余弦距離在衡量圖像相似度方面,要優(yōu)于歐氏距離。
3.2 手工特征實(shí)驗(yàn)
本文嘗試了SIFT特征、color moment特征以及它們的融合特征。實(shí)驗(yàn)的結(jié)果均不及基于卷積神經(jīng)網(wǎng)絡(luò)的特征,所得到的最好MAP值大約為0.11左右。嘗試過(guò)如下的方案:1.純SIFT特征;2.純color moment特征;3.SIFT和CNN特征的融合。
從實(shí)驗(yàn)的結(jié)果來(lái)看,SIFT特征對(duì)于帶有文字等這類棱角分明的圖片的檢索效果十分顯著,color moment特征對(duì)于顏色的敏感度非常高,結(jié)果圖片在顏色上與查詢圖片保持高度的一致。手工特征方法的檢索效果很大程度上依賴于選取特征的性質(zhì),而這些性質(zhì)大多都是局部性的,很難體現(xiàn)出一張圖片整體的語(yǔ)義。本文還嘗試了CNN的特征與SIFT特征的融合實(shí)驗(yàn),在這種實(shí)驗(yàn)方案下,MAP值有輕微的提升,不明顯。從結(jié)果來(lái)看,SIFT的加入,使部分檢索圖像的細(xì)節(jié)點(diǎn)上更加準(zhǔn)確,符合預(yù)期。由于手工特征方法的效果遠(yuǎn)不如基于CNN的特征,本文沒(méi)有再繼續(xù)嘗試其他局部特征方法。
3.3 卷積神經(jīng)網(wǎng)絡(luò)特征實(shí)驗(yàn)
如前文所述,基于CNN的特征實(shí)驗(yàn)采用了CaffeNet和VGG-M這兩種預(yù)訓(xùn)練模型,所得到的全部結(jié)果實(shí)驗(yàn)結(jié)果由表1和表2所示:
表1
表2
表1中,pool5_max表示在pool5之后再加一個(gè)max-pooling來(lái),pool5_ave同理是在pool5之后再加一個(gè)ave-pooling。單獨(dú)從這兩項(xiàng)的結(jié)果來(lái)看,兩種方式對(duì)于檢索的效果,max要優(yōu)于average。這可能是由于數(shù)據(jù)中存在噪聲,max在pooling窗口中取最大值一定程度上起到了去除噪聲的作用,使得特征向量的判別性得到增強(qiáng),從而提升了MAP值。同時(shí),我們也試驗(yàn)了conv4的特征,由于pool4層的特征維數(shù)過(guò)高,我們使用兩層pooling來(lái)降維,即Pool4_ave_ave,它在pool4后面接了兩層ave-pooling,所得到MAP值低于conv5的特征。從表1的實(shí)驗(yàn)數(shù)據(jù)中,我們可以得出結(jié)論:從全連接層開(kāi)始,越往前面的特征對(duì)于檢索問(wèn)題的效果越好,一直到最后一層卷積。
在表2中,又進(jìn)一步試驗(yàn)了將conv5分別降維到4000和2000進(jìn)行了實(shí)驗(yàn)。Pool6_3×3_max表示在pool5_max之后再加了一層3×3的pooling層,其他的同理。從實(shí)驗(yàn)的數(shù)據(jù)來(lái)看,降維到4000左右的結(jié)果最好,再進(jìn)一步pooling,由于信息的損失較大,結(jié)果反而會(huì)降低。
從前面的數(shù)據(jù)中,我們可以得出下面兩個(gè)基本的結(jié)論,在預(yù)訓(xùn)練的模型下,對(duì)于檢索問(wèn)題:
最后一層卷積輸出的特征對(duì)于檢索的效果最好。
pooling的方式對(duì)最終結(jié)果的影響很大,max-pooling要優(yōu)于ave-pooling。
對(duì)于第一點(diǎn),本質(zhì)上,由于預(yù)訓(xùn)練的模型的目標(biāo)是分類,而并不是檢索的排序,因此造成了卷積層的特征還要優(yōu)于全連接層的特征。同時(shí),由于卷積層的特征一定程度上還包含了圖像的空間位置信息[9],而全連接層則損失了這一信息。對(duì)于第二點(diǎn),本文僅僅采用了簡(jiǎn)單的pooling作為降維方式,結(jié)果就有了顯著的提升,說(shuō)明在降維的方法上面,還有很大的提升空間。可以進(jìn)一步采用更復(fù)雜的pooling方式,或者采用主成分分析等成熟的方法去提升檢索效果。
本文主要討論了基于內(nèi)容的圖像檢索框架中,單張圖像的特征表示的兩種方法?;谑止ぬ卣鞯谋硎痉椒ㄊ芟抻谠芯植刻卣鼽c(diǎn)的性質(zhì),難以提升效果?;诰矸e神經(jīng)網(wǎng)絡(luò)的特征表示方法效果遠(yuǎn)勝于前者,而且有較大的提升潛力。在未來(lái)的工作中,我們還可以從以下方面進(jìn)行改進(jìn)和優(yōu)化:第一,本文使用兩種預(yù)訓(xùn)練模型,優(yōu)化目標(biāo)是分類,我們可以進(jìn)一步使用learning to rank[10]的技術(shù)對(duì)模型進(jìn)行fine-tune;第二,如前文所述,我們可以采用更復(fù)雜pooling方式配合PCA、LDA等方法進(jìn)行各層特征的降維處理。第三,對(duì)于圖像檢索問(wèn)題而言,查詢圖像往往包含了很多不相關(guān)的信息,我們還可以采用一些目標(biāo)檢測(cè)技術(shù)來(lái)突出重要內(nèi)容,這樣可以進(jìn)一步提升檢索效果。
[1]基于內(nèi)容的圖像檢索.https://zh.wikipedia.org/wiki/.
[2]Lowe,David G.Distinctive Image Features from Scale-Invariant Keypoints.International Journal of Computer Vision 60.2(2004):91-110.
[3]Krizhevsky,Alex,Ilya Sutskever,Geoffrey E.Hinton.Imagenet Classification with Deep Convolutional Neural Networks.Advances in Neural Information Processing Systems,2012.
[4]Russakovsky,Olga,et al.Imagenet Large Scale Visual Recognition Challenge.International Journal of Computer Vision 115.3(2015): 211-252.
[5]https://github.com/BVLC/caffe/tree/master/models/bvlc_reference_caffenet.
[6]Chatfield,Ken,et al.Return of the Devil in the Details:Delving Deep into Convolutional Nets.arXiv Preprint arXiv:1405.3531(2014).
[7]Jia,Yang-qing,et al.Caffe:Convolutional Architecture for Fast Feature Embedding.Proceedings of the 22nd ACM International Conference on Multimedia.ACM,2014.
[8]https://en.wikipedia.org/wiki/Cosine_similarity.
[9]Zeiler,Matthew D.,Rob Fergus.Visualizing and Understanding Convolutional Networks.European Conference on Computer Vision. Springer International Publishing,2014.
[10]Faria,Fabio F.,et al.Learning to Rank for Content-Based Image Retrieval.Proceedings of the International Conference on Multimedia Information Retrieval.ACM,2010.
Research on Feature Representation in Content-based Image Retrieval
ZHAO Jun-jie,ZHENG Xing
(College of Computer Science,Sichuan University,Chengdu 610065)
Studies two kinds of feature descriptors for content based image retrieval.The first one uses hand craft features like SIFT feature,the second is based on Convolutional Neural Network.Uses two pre-trained model,CaffeNet and VGG-M,extracts feature descriptors from the fully connection layers and convolution layers.Experiments show that the last convolution layer can achieve better results than other layer including fully connection layer.
Feature Extraction;Image Retrieval;Convolutional Neural Network
1007-1423(2017)02-0067-05
10.3969/j.issn.1007-1423.2017.02.017
趙俊杰(1994-),男,四川廣元人,碩士研究生,研究方向?yàn)闄C(jī)器學(xué)習(xí)、多媒體計(jì)算
2016-11-01
2016-12-30
鄭興(1991-),男,重慶潼南人,碩士研究生,研究方向?yàn)閿?shù)據(jù)挖掘