李晶,王翾,劉守訓(xùn)
(中國傳媒大學(xué) 信息與通信工程學(xué)院,北京 100024)
圖像檢索技術(shù)是依據(jù)圖像視覺內(nèi)容搜索相似或相同圖像的方法,近年來成為研究熱點之一。翻拍廣告圖片內(nèi)容復(fù)雜、場景多變,受拍攝中的角度、距離、光照等條件的影響。這些因素干擾圖片內(nèi)容,增加了圖像特征提取的難度,對圖像檢索提出了更高的要求。
經(jīng)典的圖像檢索系統(tǒng)基于圖片內(nèi)容,直接本身的特征來匹配和其語義相似的圖像,即所謂的基于內(nèi)容的圖片檢索(Content Based Image Retrieval,CBIR)[1],檢索過程如圖1所示。CBIR主要利用圖像視覺特征向量直接進(jìn)行索引,通過計算圖像特征向量之間的距離判定圖片相似度,返回圖片檢索結(jié)果。傳統(tǒng)方法中,圖像視覺特征主要包括全局特征與局部特征。全局特征提取方式非常簡單,直接提取圖片自身的顏色、形狀、紋理等特征,反映圖片整體內(nèi)容,但對圖片內(nèi)部結(jié)構(gòu)細(xì)節(jié)信息表達(dá)不全,對外界干擾非常敏感,容易受到旋轉(zhuǎn)、遮擋等外界因素的影響。為了解決這個問題,研究者開始使用手工提取圖片局部特征表征圖片內(nèi)容,即局部特征。由于局部特征在圖像特征提取方面具有局限性,因此研究者相繼提出了一些改進(jìn)方案。其中,David Lowe提出的SIFT(Scale Invariant Feature Transform)[2]是最具有代表性、應(yīng)用最廣泛的。SIFT最大的特點是提取的圖片特征具有較強(qiáng)的魯棒性,對圖片尺度變換、仿射變換具有不變性,對拍攝角度、距離、光照等不敏感,因而SIFT方法被廣泛應(yīng)用于物體識別、圖像匹配、圖像檢索中。SIFT的提出極大的推動了研究領(lǐng)域的發(fā)展,后續(xù)的研究工作也大多圍繞對SIFT的改進(jìn)進(jìn)行,例如SURF(Speeded Up Robust Features)特征[3],PCA-SIFT[4]等。文獻(xiàn)[5]中,作者通過仿真實驗詳細(xì)比較了上述三種方法的性能,文獻(xiàn)[6]中作者對比了很多不同的特征點對圖像旋轉(zhuǎn)、陰影、模糊、縮放、放射變化及及光照變化的穩(wěn)定性。實驗結(jié)果表明:相比其他特征提取方法,使用SIFT提取的特征檢索效果最好,然而SIFT算法在及檢索過程中計算量很大,內(nèi)存消耗嚴(yán)重,這會導(dǎo)致時間成本高、實時性較差,嚴(yán)重制約了其實際應(yīng)用。
圖1 基于內(nèi)容的圖像檢索系統(tǒng)
圖片特征提取是圖像檢索的一個重要方面。由于翻拍廣告圖片受拍攝中的角度、距離、光照等條件的影響,這加大了圖片特征提取的難度,對快速準(zhǔn)確檢索造成了困難。近年來,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)逐漸風(fēng)靡,基于CNN的圖像描述已經(jīng)廣泛應(yīng)用于圖像分類[7]、圖像分割[8]、和目標(biāo)檢測[9]等方面,展示了其卓越的性能。Krizhevsky et al.[10]首先使用AlexNet模型第七層輸出作為圖像特征來檢索圖像,AlexNet的結(jié)構(gòu)如圖2。該方法在ImageNet上的實驗結(jié)果表明,卷積神經(jīng)網(wǎng)絡(luò)的中間層輸出包含豐富的圖片信息,可以作為圖像特征用于圖像檢索。
圖2 AlexNet模型結(jié)構(gòu)
如圖2所示,AlexNet網(wǎng)絡(luò)模型包含卷積層、池化層、全連接層。網(wǎng)絡(luò)模型輸入大小為224×224的RGB圖片,利用不同大小的卷積核提取圖片豐富特征,池化層保留圖片的最顯著特征用于檢索。其中,卷積神經(jīng)網(wǎng)絡(luò)的中間層輸出通常直接用于圖像檢索。雖然卷積神經(jīng)網(wǎng)絡(luò)的中間層特征用于圖像檢索取得了良好的效果,但是也存在不足。一方面,CNN提取的特征維數(shù)很高,這會帶來很大的計算開銷;另一方面,通過在歐氏空間中直接執(zhí)行模式匹配,將學(xué)習(xí)到的CNN特征用于檢索效率很低。為了突破維度的限制,研究者使用哈希算法來降低圖片特征維度,節(jié)約存儲空間。
圖像哈希通過對高維的特征矢量進(jìn)行哈希學(xué)習(xí)得到低維的二進(jìn)制哈希編碼,能夠極大的降低計算及存儲消耗。圖像檢索中,常用譜哈希(Spectral Hashing,SH)[11]、局部敏感哈希(Locality Sensitive Hashing,LSH)[12]、迭代量化哈希(Iterative Quantization,ITQ)[13]等方法來降低圖片特征維度,提高檢索效率。如果在整個圖像哈希過程中不使用圖片標(biāo)簽作為監(jiān)督信息,則成為無監(jiān)督哈希算法。與無監(jiān)督的哈希算法相比,有監(jiān)督的哈希算法使用圖片標(biāo)簽信息,因此學(xué)習(xí)到的哈希碼更加緊湊效果也更好[14]。
因此,很多研究者受卷積神經(jīng)網(wǎng)絡(luò)與哈希算法的啟發(fā),將兩者相結(jié)合應(yīng)用于圖像檢索領(lǐng)域。2014年Rongkai Xia等人[15]利用卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)圖片的哈希特征表示用于圖像檢索,顯著提升了檢索性能。在這之后,La等人[16]提出使用三元組圖像樣本作為網(wǎng)絡(luò)輸入訓(xùn)練網(wǎng)絡(luò),并設(shè)計了分段量化函數(shù)提取二值化特征。Lin等人[17]提出了DeepBit二值化特征提取方法,該方法在訓(xùn)練過程中增加了旋轉(zhuǎn)、量化損失函數(shù),使提取的圖像特征具有更強(qiáng)的魯棒性。Haomiao Liu 等人提出的 DSH(Deep Supervised Hashing)方法[18]為圖像哈希領(lǐng)域打開了新的思路,他主要使用分段函數(shù)約束網(wǎng)絡(luò)輸出,以網(wǎng)絡(luò)預(yù)測值與期望目標(biāo)值之間的誤差為優(yōu)化目標(biāo),降低計算損失,該算法減少了哈希碼生成的量化誤差。
有鑒于此,本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的翻拍圖片哈希檢索方法。針對用戶輸入的查詢圖片,利用卷積神經(jīng)網(wǎng)絡(luò)模型自動提取圖片特征,通過計算圖片之間的距離快速從圖片庫中篩選出與查詢圖片相同或相似的圖片返回給用戶。
圖像特征提取是圖像檢索的一個重要方面,要求提取的特征具有獨特性、具有旋轉(zhuǎn)不變性、仿射不變性,對陰影、反光、遮擋等不敏感,魯棒性好。本文利用卷積神經(jīng)網(wǎng)絡(luò)提取圖片特征,網(wǎng)絡(luò)模型如圖3。
圖3 卷積神經(jīng)網(wǎng)絡(luò)模型
我們使用Krizhevsky等人提出的預(yù)訓(xùn)練CNN模型在大型ImageNet數(shù)據(jù)集上進(jìn)行訓(xùn)練[19],該數(shù)據(jù)集包含分類為1000個對象類別的120萬張圖片。我們使用翻拍廣告圖片集作為輸入對模型進(jìn)行微調(diào),主要是在fc7和fc8之間添加一個哈希層,哈希層節(jié)點h與圖片哈希碼長度相同,fc8的節(jié)點設(shè)置為圖片集的圖片類別數(shù)。該哈希層包括一個全連接層和一個激活層,其神經(jīng)元受控于fc8。因此,哈希層輸出不僅包含fc7層豐富的內(nèi)容特征,而且包含圖片的高層語義特征。本文中,哈希層中的激活層使用sigmoid激活函數(shù),因此哈希層輸出在[0,1],然后我們將哈希層輸出閾值化得到圖片的哈希碼。
對于包含n張圖片的圖片集D={i1,i2,...,in},我們提取上述卷積神經(jīng)網(wǎng)絡(luò)模型的哈希層輸出Out(H),即圖片的低維特征表示,然后將Out(H)按照式(1)進(jìn)行閾值化得到圖片的哈希碼。
(1)
其中j=1,2,...,h,h為哈希層神經(jīng)元個數(shù),Outj(H)表示哈希層輸出的第j個比特值。
圖像經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)提取出圖像的哈希碼與高層語義特征。雖然在低維空間計算圖像之間的漢明距離具有一定的優(yōu)勢,但僅利用哈希碼衡量圖像對之間的相似性很容易出現(xiàn)同類圖像哈希編碼偏差較大而導(dǎo)致圖像檢索精度不夠準(zhǔn)確的情況。因此,本文采用由粗到精的分級檢索策略,先依據(jù)查詢圖片與數(shù)據(jù)集中圖片的漢明距離快速篩選出相同或者相似的圖片構(gòu)成候選圖像池,然后依次計算查詢圖片與候選圖像池中圖片之間的歐氏距離,得到最終的檢索結(jié)果。
圖4 應(yīng)用于翻拍圖片的圖像檢索系統(tǒng)
本文提出了一種針對翻拍廣告圖片的檢索方法,結(jié)合CNN的學(xué)習(xí)能力與哈希算法高效性的優(yōu)勢,采用由粗到精的分級檢索策略,從數(shù)據(jù)庫中返回與用戶查詢圖片相同或者相似的圖像。本文圖像檢索過程如圖4所示,首先利用卷積神經(jīng)網(wǎng)絡(luò)模型制作本地圖片特征數(shù)據(jù)庫,用戶給定一張待檢索圖片,利用同樣的方法提取圖片特征。然后在漢明空間中快速篩選出與待檢索圖片相同或相似的圖片構(gòu)成圖片侯選池。最后,通過計算待檢索圖片與侯選池中圖片之間的相似程度返回最終的檢索結(jié)果。
廣告圖片內(nèi)容豐富、表達(dá)方式多樣,具有很好的宣傳效果,在日常生活中隨處可見。由于廣告圖片所處的場景復(fù)雜,因此翻拍廣告數(shù)據(jù)集受自然條件的影響較大,例如光照條件、反光、外部遮擋等。此外,拍攝者的拍攝角度也會使圖片不可避免的產(chǎn)生旋轉(zhuǎn)、縮放。本文使用的翻拍廣告圖片數(shù)據(jù)集來自于人工采集,主要使用手機(jī)設(shè)備對生活場景中的廣告圖片進(jìn)行拍攝。這些廣告圖片主要包括公交站臺宣傳欄圖片、地鐵墻體廣告、商場廣告牌、室外大型墻體廣告等。
本文實驗選取公交站臺宣傳欄圖片,要求廣告圖片占整幅圖片面積的50%以上,將相同廣告圖片歸為一類并給予相同的標(biāo)簽,不限制每類圖片數(shù)目必須相同。圖5展示部分翻拍公交站臺宣傳圖片。從圖中看出,翻每張圖片都出現(xiàn)了不同程度的傾斜、反光、陰影。例如,受光照條件的影響圖片(1)(7)(10)(12)反光現(xiàn)象嚴(yán)重;(3)(5)(6)圖片主體被拍攝環(huán)境中的欄桿、綠化帶等自然界中不可移動物體的遮擋;由于拍攝角度不同,圖片(8)(11)出現(xiàn)輕微傾斜;圖片(9)中受拍攝距離的影響,廣告內(nèi)容占整體圖片的比例很小。這些因素都提高了圖像檢索的難度,要求提取圖像特征具有非常好的魯棒性。
圖5 翻拍公交站臺廣告圖片示例
為了驗證本文方法的檢索性能,在翻拍廣告圖片數(shù)據(jù)集上進(jìn)行了實驗。其中本文使用的翻拍廣告圖片集包含300張圖片共50類,每類圖片數(shù)量不固定,包含訓(xùn)練集250張,測試集50張。我們采用平均檢索精度(MAP)來評價檢索性能。
平均檢索精度需要分兩步進(jìn)行計算,首先先計算平均準(zhǔn)確率(AP),假設(shè)檢索系統(tǒng)返回K張圖像作為檢索結(jié)果,其位置分別為x1,x2,...,xk,則每個類別圖片的平均準(zhǔn)確率APi表示為:
(2)
再計算AP的平均值,定義圖像數(shù)據(jù)集類別數(shù)為M,則MAP為:
(3)
表1給出了翻拍廣告數(shù)據(jù)集在不同長度的哈希碼下的平均檢索精度(MAP)。從表1可以看出,本文方法明顯優(yōu)于其他檢索方法,而且當(dāng)哈希層的輸出神經(jīng)元節(jié)點為128時,該方法的平均檢索精度最佳。因此,在以下實驗中我們將哈希層的輸出神經(jīng)元節(jié)點設(shè)置為128。
表1 不同長度哈希碼下的平均檢索精度(MAP)
此外,本文分別使用未經(jīng)微調(diào)的AlexNet模型輸出的fc7層特征(微調(diào)前fc7輸出特征),模型微調(diào)后的fc7層特征(微調(diào)后fc7輸出特征),模型微調(diào)后使用分層檢索方法(本文方法)的檢索性能進(jìn)行了對比,表2為上述方法在翻拍廣告數(shù)據(jù)集上的平均檢索精度。
表2 不同方法的平均檢索精度(MAP)
從表2中的數(shù)據(jù)可以看出,在翻拍廣告數(shù)據(jù)集上,本文提出的結(jié)合哈希碼和fc7層特征的分層檢索方法具有較高的MAP。與僅使用fc7層輸出進(jìn)行檢索相比,MAP值增加了12.1%。另外,本文方法通過計算漢明距離來獲得圖片候選池。此過程將大大減少檢索操作的數(shù)量,不僅減少了內(nèi)存消耗,而且節(jié)省了檢索時間。
圖6 Top 6 檢索結(jié)果
圖6為本文方法在翻拍廣告數(shù)據(jù)集上Top 6檢索結(jié)果圖。圖6中第一列為用戶輸入的待檢索圖片,圖片從上至下依次主要受圖片陰影、圖片遮擋、圖片傾斜的影響;圖中第二列為使用本文檢索方法返回的檢索結(jié)果,檢索結(jié)果從左至右、從上到下按照與待檢索圖片的相似度排列。其中,檢索結(jié)果中左上角的圖片是檢索系統(tǒng)返回的與待檢索圖片最相似的圖片。從圖6中可以看出,使用本文檢索方法返回的檢索結(jié)果中基本都與到檢索圖片相同或相似,第二行返回六張與查詢圖片相同的檢索結(jié)果,第一行和第三行的檢索結(jié)果中存在于待檢索圖片不相關(guān)的圖片。這一方面是因為本文使用預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)模型表達(dá)能力仍有待提升;另一方面是因為本文使用的翻拍廣告數(shù)據(jù)集中某些類型圖片樣本較少,模型提取的特征獨特性不夠。通過完善翻拍圖片樣本庫和提高模型訓(xùn)練次數(shù),會提升模型的特征提取能力和檢索精度。
本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的翻拍圖片哈希檢索方法,基本思路是在AlexNet模型中加入哈希層,以目標(biāo)數(shù)據(jù)集作為輸入對模型進(jìn)行微調(diào),得到卷積神經(jīng)網(wǎng)絡(luò)模型用于自動提取圖片的哈希碼。針對用戶查詢圖像,首先從卷積神經(jīng)網(wǎng)絡(luò)模型的哈希層提取圖片哈希碼,在漢明空間中計算計算查詢圖片與數(shù)據(jù)集中圖片之間的距離進(jìn)行粗檢索,從數(shù)據(jù)集中選取與查詢圖片相似的m幅圖片構(gòu)成候選圖像池。然后再提取查詢圖片和池內(nèi)圖像的fc7層特征向量,依次計算歐式距離進(jìn)行精檢索,歐式距離越小說明圖片越相似,返回最終的檢索結(jié)果。
本文方法使用輸入圖片的類別信息作為監(jiān)督信息,極大地降低了人工標(biāo)記量。實驗結(jié)果表明:第一,該方法提取的特征具有很好的魯棒性,能夠抵抗旋轉(zhuǎn)、縮放、反光、遮擋等影響,平均檢索精度優(yōu)于文中其他方法;第二,檢索過程中計算漢明距離快速篩選出與查詢圖片相似的候選圖片池,大大減少了檢索計算量和內(nèi)存消耗。