單慧琳,洪智毅,張銀勝,王興濤
(1.無(wú)錫學(xué)院電子信息工程學(xué)院,江蘇無(wú)錫 214105;2.南京信息工程大學(xué)電子與信息工程學(xué)院,南京 210044)
圖像識(shí)別是將圖像根據(jù)提取出的特征進(jìn)行分類,進(jìn)而將待識(shí)別的圖像與已有的圖像分類進(jìn)行匹配。景點(diǎn)圖像識(shí)別屬于大規(guī)模圖像檢索的范疇,傳統(tǒng)的基于內(nèi)容的圖像檢索方法由于圖像表達(dá)能力不強(qiáng),處理數(shù)據(jù)又需要耗費(fèi)大量的計(jì)算時(shí)間,不利于大規(guī)模圖像檢索。實(shí)現(xiàn)相關(guān)性更全面、速度更快、成本更低的景點(diǎn)圖像識(shí)別成為了圖像識(shí)別領(lǐng)域的熱門研究話題?;诠5膱D像檢索方法將圖像的特征轉(zhuǎn)變?yōu)楣4a,使用漢明距離來(lái)比較圖像的相似性,可以大大減少計(jì)算機(jī)的內(nèi)存消耗和檢索響應(yīng)時(shí)間,因此它能更好地適用于大規(guī)模圖像的檢索。
Ji等[1]通過(guò)一種特殊的位置詞匯編碼,將圖像中的視覺(jué)相關(guān)內(nèi)容和地理特征進(jìn)行整合,通過(guò)位置感知將地理特征進(jìn)行區(qū)分,同時(shí)使描述符與區(qū)分后的地理特征進(jìn)行迭代優(yōu)化,生成精簡(jiǎn)的地理特征描述符。同時(shí),Ji等[2]還將圖標(biāo)的其他信息添加進(jìn)生成地理特征描述符的過(guò)程中,類似于將GPS 信息加入,使得最終的描述符更加精簡(jiǎn)。在圖像特征檢索部分,Zhou 等[3]將圖像特征信息轉(zhuǎn)換成二進(jìn)制編碼,進(jìn)而實(shí)現(xiàn)快速檢索圖像。在通過(guò)二進(jìn)制編碼描述被測(cè)圖像的基礎(chǔ)上,Min等[4]首先將圖像進(jìn)行一次壓縮后,再轉(zhuǎn)化成哈希碼,使得哈希碼更短,實(shí)現(xiàn)更加快速的轉(zhuǎn)換。2017 年Zhu等[5]提出一種檢索方案,即通過(guò)改進(jìn)規(guī)范視圖,實(shí)現(xiàn)離散多模態(tài)哈希算法上述這些圖像識(shí)別算法,都是人工或者半監(jiān)督的方法實(shí)現(xiàn)圖像特征的提取,并不能實(shí)現(xiàn)端到端的學(xué)習(xí)提取特征。
隨著深度學(xué)習(xí)分析能力不斷提高,深度學(xué)習(xí)多層次的結(jié)構(gòu)可以更好地發(fā)現(xiàn)復(fù)雜景點(diǎn)圖像數(shù)據(jù)之間的關(guān)聯(lián)性,因此,越來(lái)越多的研究者加入到深度學(xué)習(xí)的哈希檢索領(lǐng)域中,在CVPR 等人工智能和圖像識(shí)別的頂級(jí)會(huì)議中,相關(guān)論文不斷發(fā)表。2013 年迭代量化哈希[6](ITQ)被提出,這是一種通過(guò)降維然后找到量化誤差最小的哈希算法。離散圖哈希[7](DGH)指的是一種建立圖像對(duì)應(yīng)的錨點(diǎn)圖直接離散約束求解的算法。譜哈希(SH)通過(guò)sign在0 點(diǎn)處將特征函數(shù)值實(shí)現(xiàn)二元量化[8]。Scalable Graph Hashing(SGH)和Restricted Boltzmann machine(RBM)等也相繼被提出[9-10]。2014年,Xia等[11]構(gòu)建出一種相似度矩陣,這種用相似度矩陣來(lái)衡量?jī)蓚€(gè)樣本之間的相似度關(guān)系的方法被叫做CNNH算法。2015 年,Zhao 等[12]通過(guò)對(duì)CNN 網(wǎng)絡(luò)中的一個(gè)具有凸上界的函數(shù)進(jìn)行訓(xùn)練,從而實(shí)現(xiàn)一種有序排列的深度哈希算法。這個(gè)有序排列的算法,可以有效地使圖像檢索系統(tǒng)最后返回的測(cè)試結(jié)果進(jìn)行有效的優(yōu)化。2015 年,Lin 等[13]在CNN 網(wǎng)絡(luò)的基礎(chǔ)上,增加了一個(gè)隱層,這個(gè)隱層采用Sigmoid 函數(shù)作為激活函數(shù),這種通過(guò)添加隱層的方法可以使卷積神經(jīng)網(wǎng)絡(luò)直接在調(diào)整結(jié)束后,對(duì)添加的隱層的特征值直接閾值化,并得到二進(jìn)制編碼。2020 年,劉小安等[14]用CNN-BiLSTM-CRF的網(wǎng)絡(luò)模型對(duì)景點(diǎn)進(jìn)行識(shí)別,同年,趙平等[15]將BERT+BiLSTM+CRF 用于景點(diǎn)識(shí)別,兩篇論文都是用于命名實(shí)體識(shí)別。
本文旨在設(shè)計(jì)一種新的圖像檢索方法,使用高層語(yǔ)義區(qū)分策略,綜合現(xiàn)有的深度學(xué)習(xí)和哈希檢索算法,應(yīng)用到旅游景點(diǎn)圖像檢索中,使用新的卷積神經(jīng)網(wǎng)絡(luò)和激活函數(shù)使神經(jīng)網(wǎng)絡(luò)訓(xùn)練更加快速。在提高圖像識(shí)別準(zhǔn)確率的同時(shí),降低檢索成本。
哈希映射主要指的是將被測(cè)圖像數(shù)據(jù)通過(guò)建立好的模型轉(zhuǎn)變?yōu)橐环N二進(jìn)制編碼,使得被測(cè)圖像與二進(jìn)制編碼之間存在映射關(guān)系。但由于傳統(tǒng)的哈希檢索算法,只能通過(guò)人為參與的方式設(shè)置算法對(duì)圖像特征的提取,這樣得到的二進(jìn)制碼無(wú)法保證具有足夠的代表性?;谏疃葘W(xué)習(xí)的哈希檢索方法可以使系統(tǒng)實(shí)現(xiàn)端到端的訓(xùn)練,直接從訓(xùn)練網(wǎng)絡(luò)中得到編碼。
在一般的哈希檢索算法中,普遍做法是將目標(biāo)樣本表示為二進(jìn)制碼,這樣的二進(jìn)制碼具有固定的長(zhǎng)度,以0/1 或者-1/ +1 來(lái)表示每一位二進(jìn)制碼。這樣的轉(zhuǎn)化方式使得在最終的二進(jìn)制編碼集中,可以通過(guò)計(jì)算被測(cè)圖像二進(jìn)制碼與檢索圖像的距離來(lái)判斷是否相似(使用漢明距離來(lái)測(cè)量二進(jìn)制代碼之間的相似性)。在哈希檢索算法的初級(jí)階段,研究者利用超平面劃分空間,進(jìn)而通過(guò)被測(cè)圖樣的樣本點(diǎn)在空間的某個(gè)區(qū)域來(lái)確定取值。這樣的算法簡(jiǎn)單粗暴會(huì)造成極大的編碼長(zhǎng)度,隨著網(wǎng)絡(luò)圖像數(shù)據(jù)指數(shù)提升,這種方法需要驚人的存儲(chǔ)空間才能保證檢索的精確度。人們通過(guò)采取不同的優(yōu)化方法或者構(gòu)建不用的目標(biāo)函數(shù)得到編碼長(zhǎng)度更短的二進(jìn)制編碼,使得哈希檢索的性能得到巨大提升。哈希檢索算法的主要目標(biāo)是得到二進(jìn)制碼,因此在優(yōu)化的過(guò)程中會(huì)受到離散取值問(wèn)題,通常采用一種放寬約束做法。下面主要介紹兩種較為先進(jìn)的深度哈希算法:DLBHC(Deep Learning of Binary Hash Codes)算法和DNNH(Deep Neural Network Hashing)算法。
DLBHC算法相較于Semantic Hashing方法使用一種更加直接迅速的方法來(lái)學(xué)習(xí)二進(jìn)制編碼。DLBHC算法的核心部分是插入一個(gè)全新的完全連接層,該完全連接層放置在倒數(shù)第二層和最終任務(wù)層之間。通過(guò)Sigmoid函數(shù)作為激活函數(shù)加入非線性因素,將代碼長(zhǎng)度作為節(jié)點(diǎn)數(shù),將語(yǔ)義信息通過(guò)端到端的微調(diào)添加到新加入的完全連接層的輸出中。在DLBHC 算法中,任務(wù)層最終輸出的二進(jìn)制代碼包含了語(yǔ)義信息,但是最終的檢測(cè)結(jié)果依舊會(huì)產(chǎn)生一定偏差。這是由于采樣點(diǎn)的相對(duì)位置關(guān)系沒(méi)有在網(wǎng)絡(luò)訓(xùn)練的過(guò)程中被考慮,因此,該網(wǎng)絡(luò)結(jié)構(gòu)無(wú)法保證語(yǔ)義上相似的點(diǎn)包含所有漢明距離相近或者距離較短的點(diǎn)。該算法的網(wǎng)絡(luò)流程如圖1 所示。
圖1 DLBHC算法模型
DNNH算法采用一種NIN的網(wǎng)絡(luò)結(jié)構(gòu)。與同樣使用NIN網(wǎng)絡(luò)的CNNH算法相比,DNNH的核心做法是使用三元組的形式進(jìn)行訓(xùn)練。DNNH算法采用一種非交叉熵的損失函數(shù),這種損失函數(shù)是建立在三元組基礎(chǔ)上的,采用這種基于三元組的損失函數(shù)使得不類似點(diǎn)的采樣在最終漢明空間之間的距離大于類似采樣的距離。同時(shí),DNNH算法對(duì)NIN 網(wǎng)絡(luò)結(jié)構(gòu)做出一些針對(duì)性的改變以適應(yīng)哈希學(xué)習(xí)的任務(wù),主要分為兩點(diǎn):
(1)通過(guò)舍棄全連接層,使用部分鏈接層,使得每個(gè)不連接部分分別學(xué)習(xí)一部分,這樣可以有效地減少二進(jìn)制碼在不同位上所產(chǎn)生的冗余(見(jiàn)圖2 左切片層)。
圖2 DNNH算法模型
(2)通過(guò)Sigmoid 函數(shù)作為激活函數(shù),加入非線性因素,對(duì)于離散約束進(jìn)行松弛。上面兩個(gè)核心部分已共同構(gòu)成DNNH算法網(wǎng)絡(luò)圖中的分段和編碼模塊。DNNH算法可以實(shí)現(xiàn)端到端的訓(xùn)練方式,將所學(xué)的圖像反作用于二值碼,因此,DNNH算法相較于同樣使用Network in Network網(wǎng)絡(luò)的CNNH算法,檢索效果有了足夠的提高。
本文提出一種改進(jìn)的深度學(xué)習(xí)哈希檢索方法,對(duì)旅游景點(diǎn)進(jìn)行圖像識(shí)別。使用該方法對(duì)已有的景點(diǎn)圖像數(shù)據(jù)進(jìn)行訓(xùn)練得到訓(xùn)練集,該方法使用經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)VGG16 來(lái)訓(xùn)練提取圖像特征,采用5 ×5 的卷積核大小,使用交叉熵作為損失函數(shù),將ReLU函數(shù)作為激活函數(shù),在訓(xùn)練好的網(wǎng)絡(luò)模型中,由哈希層以及哈希層中的編碼塊數(shù)確定k位的哈希編碼,并對(duì)得到的哈希編碼進(jìn)行閾值化分得到二值碼,將待測(cè)的景點(diǎn)圖像數(shù)據(jù)通過(guò)同樣的網(wǎng)絡(luò)模型,以得到待測(cè)景點(diǎn)圖像的二值碼,通過(guò)對(duì)訓(xùn)練集和待測(cè)圖像的二值碼進(jìn)行多索引哈希近鄰檢索以實(shí)現(xiàn)最終的查找。
相較于傳統(tǒng)的DNNH 算法和DLBHC 算法,在深度學(xué)習(xí)部分,本文的方法使用一種更為仿生的特征提取策略,使識(shí)別首先發(fā)生在高語(yǔ)義層次。與DNNH 算法和DLBHC算法相比,本文采用ReLU函數(shù)作為神經(jīng)網(wǎng)絡(luò)的激活函數(shù),使得收斂速度更快,在哈希檢索部分,本文使用多索引近鄰檢索進(jìn)行查找。
1.3.1 基于深度學(xué)習(xí)的特征提取策略
傳統(tǒng)的哈希算法基本通過(guò)手工設(shè)定的提取方法來(lái)提取特征,但這樣得到的特征表達(dá)能力都不太強(qiáng)。景點(diǎn)圖像識(shí)別首先依賴的是圖像的特征,而提取特征的策略將直接影響圖像檢索的準(zhǔn)確率。
研究表明,景點(diǎn)圖像信息量最大的地方往往是圖像的高頻部分,這些高頻的部分一般表現(xiàn)為角點(diǎn)、凹凸點(diǎn)、斷點(diǎn)等地方。生物在區(qū)分這些圖像時(shí),往往會(huì)集中區(qū)分這些高頻部分。通過(guò)對(duì)這些高頻部分的低層特征來(lái)構(gòu)建相應(yīng)的領(lǐng)域,然后利用其他與領(lǐng)域有關(guān)的低頻特征來(lái)歸納出對(duì)應(yīng)的高頻特征,進(jìn)而實(shí)現(xiàn)檢索。例如:當(dāng)一個(gè)景點(diǎn)圖如黃山被輸入到計(jì)算機(jī)時(shí),計(jì)算機(jī)往往通過(guò)提取這張圖像的所有特征,然后再遍歷搜索相對(duì)應(yīng)的景點(diǎn)。這樣搜索計(jì)算量大,消耗時(shí)間較長(zhǎng)。而人眼在收集到黃山的這張圖像信息時(shí),人腦在第一時(shí)間會(huì)忽略掉其他無(wú)關(guān)的特征,從圖像中提取較大的信息量的低層特征,總結(jié)出高層特征,將“山”這一圖像信息輸入人腦,然后利用與山相關(guān)特征對(duì)圖像進(jìn)行進(jìn)一步的檢索,最終得出識(shí)別結(jié)果。
可以看出,人類對(duì)于圖像信號(hào)的理解往往發(fā)生在比較高的識(shí)別層次,而不是在低層次上進(jìn)行遍歷搜索。這些高層次的特征是對(duì)相關(guān)領(lǐng)域的總結(jié),例如當(dāng)發(fā)現(xiàn)待識(shí)別的是一座山時(shí),會(huì)立刻去尋找山的高度,山頂?shù)男螤钸@些特征等,因此通過(guò)對(duì)于這些高層次特征的提取可以更快地實(shí)現(xiàn)圖像的檢索。
1.3.2 深度學(xué)習(xí)算法模型
基于像素和領(lǐng)域的特征可以設(shè)計(jì)一種分層次的算法模型,這種模型應(yīng)具備從圖像中抽取基本高頻的像素特征,并對(duì)這些特征進(jìn)行大致的領(lǐng)域劃分,然后在更高的語(yǔ)義層次上抽取圖像特征來(lái)最終識(shí)別對(duì)應(yīng)的景點(diǎn)圖像。由于低層次抽取和高層次抽取具有矛盾性,因此不能使用單一的網(wǎng)絡(luò)學(xué)習(xí)結(jié)構(gòu)來(lái)學(xué)習(xí),需要一種深度學(xué)習(xí)的層次化結(jié)構(gòu)來(lái)滿足在不同層次上抽取特征的需求。本文所提出的算法模型是在卷積網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上進(jìn)行改進(jìn)的。VGG16 作為經(jīng)典的卷積網(wǎng)絡(luò),相較于其他網(wǎng)絡(luò)具有收斂快的優(yōu)勢(shì),因此本文使用卷積神經(jīng)網(wǎng)絡(luò)VGG16 來(lái)訓(xùn)練提取被測(cè)圖像的特征,卷積核大小可以選用3 ×3 和5 ×5,也可以采用2 個(gè)3 ×3 的卷積層堆疊。VGG 結(jié)構(gòu)圖如圖3 所示。卷積過(guò)程如圖4 所示。
圖3 VGG16卷積網(wǎng)絡(luò)模型
圖4 卷積過(guò)程
1.3.3 ReLU激活函數(shù)
DNNH算法和DLBHC 算法使用Sigmoid 函數(shù)作為激活函數(shù)來(lái)引入非線性因素。圖5 所示為Sigmoid函數(shù)圖像,Sigmoid單調(diào)遞增容易優(yōu)化,但Sigmoid函數(shù)缺點(diǎn)十分明顯,Sigmoid 函數(shù)收斂緩慢,且會(huì)造成梯度消失,即Sigmoid 函數(shù)的導(dǎo)數(shù)在自變量x趨向于無(wú)窮時(shí),會(huì)趨于0。函數(shù)公式:
圖5 Sigmoid函數(shù)圖像
因此,本文采用ReLU 函數(shù)為激活函數(shù)。其函數(shù)定義為
ReLU函數(shù)圖像如圖6 所示,ReLU 函數(shù)以0 點(diǎn)為中心,分為兩段函數(shù)。ReLU 函數(shù)與Sigmoid 函數(shù)相比,ReLU 函數(shù)的導(dǎo)數(shù)恒為1,從根本上解決了激活函數(shù)梯度消失的問(wèn)題,同時(shí)ReLU 函數(shù)得到的隨機(jī)梯度下降的收斂速度要比Sigmoid 快很多。ReLU 函數(shù)也可以對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行稀疏表達(dá),對(duì)于無(wú)監(jiān)督學(xué)習(xí),也能獲得很好的效果。
圖6 ReLU函數(shù)圖像
1.3.4 交叉熵?fù)p失函數(shù)
本文使用交叉熵作為損失函數(shù)來(lái)評(píng)價(jià)預(yù)測(cè)值和真實(shí)值的不相似程度,標(biāo)準(zhǔn)形式如下:
式中:x表示樣本;y表示實(shí)際的標(biāo)簽;a表示預(yù)測(cè)的輸出;n表示樣本總數(shù)量。在深度學(xué)習(xí)訓(xùn)練過(guò)程中,網(wǎng)絡(luò)會(huì)產(chǎn)生一定的誤差,這種誤差通過(guò)選擇的損失函數(shù)來(lái)進(jìn)行彌補(bǔ)。因此,損失函數(shù)的性能將直接影響整個(gè)網(wǎng)絡(luò)系統(tǒng)的性能。
1.3.5 哈希碼生成
使用前面提到的卷積神經(jīng)網(wǎng)絡(luò)以及交叉熵?fù)p失函數(shù)完成模型的構(gòu)建,使用爬取到的圖片作為訓(xùn)練集訓(xùn)練,由哈希層以及哈希中的編碼塊數(shù)確定k位的哈希編碼。同時(shí)對(duì)松弛的哈希編碼使用一種閾值劃分,這種閾值劃分使得松弛的哈希編碼最終行成二進(jìn)制編碼,閾值量化函數(shù)定義
對(duì)于待測(cè)圖像A,可以通過(guò)訓(xùn)練好的網(wǎng)絡(luò)模型,對(duì)待測(cè)圖像A進(jìn)行哈希碼生成并經(jīng)過(guò)閾值量化。最終得到二進(jìn)制編碼為sgn(A)。
1.3.6 檢索策略
圖7 顯示了基于深度學(xué)習(xí)的哈希近鄰檢索的流程結(jié)構(gòu)。哈希近鄰檢索是將圖像經(jīng)過(guò)訓(xùn)練好的模型網(wǎng)絡(luò)和閾值化過(guò)程,得到一個(gè)二進(jìn)制編碼,將其放在索引表中去尋找候選的結(jié)果,計(jì)算查詢圖像的二進(jìn)制碼與候選結(jié)果間的海明距離,將候選結(jié)果通過(guò)計(jì)算出的海明距離進(jìn)行排序,排序后的結(jié)果序列即為得到的影像序列。本文使用多索引哈希近鄰算法,即在劃分索引時(shí),將查詢圖像和候選結(jié)果同時(shí)分成多個(gè)連續(xù)不重復(fù)的子串,并分別建立對(duì)應(yīng)的子串索引表,這種劃分子串的方式可以顯著提高查找的速度。
圖7 哈希近鄰檢索流程
為了驗(yàn)證構(gòu)建的模型在旅游景點(diǎn)圖像檢索領(lǐng)域中的表現(xiàn),從谷歌和百度提取1 萬(wàn)余張熱門旅游景點(diǎn)圖片構(gòu)建一個(gè)數(shù)據(jù)集,針對(duì)熱門景點(diǎn)中不同類型的景點(diǎn),如建筑物、湖泊、樹(shù)木、山脈等分別進(jìn)行抓取。數(shù)據(jù)集部分圖像如圖8 所示。將數(shù)據(jù)集中的圖片按9∶1的比例分為訓(xùn)練集和測(cè)試集。
圖8 數(shù)據(jù)集部分圖像
本文采用圖像識(shí)別常用評(píng)價(jià)指標(biāo),即查準(zhǔn)率(也叫準(zhǔn)確率,precision,P)、查全率(也叫召回率,recall,R)和F1測(cè)度值(F1-score)。
圖9~12 分別表示景點(diǎn)天壇和長(zhǎng)城的部分測(cè)試樣本及測(cè)試結(jié)果。如圖9 所示,當(dāng)被測(cè)樣本是天壇時(shí),測(cè)試結(jié)果如圖10 所示。如圖11 所示,當(dāng)被測(cè)樣本是長(zhǎng)城時(shí),測(cè)試結(jié)果如圖12 所示。
圖9 天壇測(cè)試集示例
圖10 天壇測(cè)試結(jié)果
圖11 長(zhǎng)城測(cè)試集示例
圖12 長(zhǎng)城測(cè)試結(jié)果
為了進(jìn)一步驗(yàn)證本文模型的識(shí)別效果,設(shè)計(jì)了3組對(duì)比實(shí)驗(yàn),即分別使用DLBHC 算法、DNNH 算法和本文提出的方法進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果對(duì)比如表1 所示。從表1 可以看出,本文方法的P、R和F1值都是3 種算法中最高的,分別為95.69%、93.36%、94.51%。3種算法的查全率曲線和P-R曲線如圖13、14 所示。由圖可見(jiàn),本文提出的方法取得了最好的實(shí)驗(yàn)效果,優(yōu)于DLBHC算法和DNNH算法。
表1 實(shí)驗(yàn)結(jié)果對(duì)比 %
圖13 3種算法的查全率曲線
圖14 3種算法的P-R曲線
本文分析了傳統(tǒng)深度哈希算法和傳統(tǒng)圖像檢索的優(yōu)缺點(diǎn),在對(duì)傳統(tǒng)深度哈希算法缺點(diǎn)加以改進(jìn)的基礎(chǔ)上,提出一種新的特征提取策略的改進(jìn)的深度學(xué)習(xí)哈希檢索方法,使得景點(diǎn)圖像數(shù)據(jù)集中更加快速地檢索。該方法使用了一種基于深度學(xué)習(xí)的多層次網(wǎng)絡(luò)模型,采用ReLU函數(shù)作為激活函數(shù),引入非線性因素,通過(guò)網(wǎng)絡(luò)結(jié)構(gòu)中使用VGG16 卷積網(wǎng)絡(luò)來(lái)提取具有良好表達(dá)能力和魯棒性的特征,并利用多索引哈希近鄰算法進(jìn)行查找。
本文的方法很好地完成了預(yù)期目標(biāo),并通過(guò)創(chuàng)立一個(gè)影像數(shù)據(jù)集來(lái)驗(yàn)證算法的有效性。驗(yàn)證了本文提出的方法可以使得深度哈希網(wǎng)絡(luò)的訓(xùn)練更加穩(wěn)定和迅速。但該方法由于使用了VGG16 作為卷積神經(jīng)網(wǎng)絡(luò),造成算法占用內(nèi)存較大,當(dāng)待測(cè)圖像同時(shí)出現(xiàn)兩處景點(diǎn)時(shí),存在一定的分辨誤差。本文后續(xù)將進(jìn)一步研究。