田 楓,盧圓圓,劉 芳,劉宗堡
(1.東北石油大學(xué) 計算機與信息技術(shù)學(xué)院, 黑龍江 大慶 163318;2.東北石油大學(xué) 地球科學(xué)學(xué)院, 黑龍江 大慶 163318)
如今,由國防和民用衛(wèi)星、軍事偵察、指紋和面部數(shù)據(jù)、生物醫(yī)學(xué)和家庭娛樂等產(chǎn)生的圖像數(shù)據(jù)正在呈幾何倍數(shù)增長,海量的多媒體資源在方便人們生活的同時也給人們帶來了一定的困擾。人們需要花費更多的時間和精力去篩選和過濾無價值圖像才能得到有用信息。隨著現(xiàn)代計算機科學(xué)的發(fā)展,人們有必要使用計算機獲得圖像信息,從而有效提高圖像處理性能[1]。
圖像檢索的發(fā)展自基于文本的檢索技術(shù)到基于圖像信息內(nèi)容的其他語義,如圖像的主體色彩[2]、紋理[3]等用來進行圖像檢索已不能夠滿足當(dāng)今用戶的復(fù)雜需求?;谏疃葘W(xué)習(xí)方式的出現(xiàn)使得圖像的概念與高級語義之間的距離變小。通過模型得到圖像的特征向量[4],例如:AlexNet[5]模型使用非線性激活函數(shù)來提升特征的豐富性。人類的視覺系統(tǒng)具有極強的數(shù)據(jù)處理能力[6],計算機視覺是研究如何把計算機的視覺表達(dá)系統(tǒng)和人類所擁有的對外界的感知和分析的能力變得等同起來。顯著性檢測作為視覺研究的重要組成部分,關(guān)注從一個自然的圖像場景中選擇性地抽取出最重要的區(qū)域或物體[7]。因此,將顯著性檢測[8]算法融入到圖像檢索中會使檢測結(jié)果更加貼近人們所希望的結(jié)果。
圖像檢索的方法早期是基于文本的,提出過顏色直方圖分塊加權(quán)提取算法,融合文本和圖像內(nèi)容的混合相似度的檢索方法等。傳統(tǒng)的圖像檢索方法缺點是大量的圖片需要人工設(shè)計特征,工作量過大。為解決此問題出現(xiàn)了基于圖像內(nèi)容的檢索方法。
Xia等[9]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的哈希方法CNNH(convolutional neural network has-hing),該方法利用標(biāo)簽信息構(gòu)造圖像訓(xùn)練集的相似性矩陣,并分解產(chǎn)生相應(yīng)的哈希碼。Vaccaro等[10]利用基于NetVLAD的新型多尺度局部池化和基于樣本難度的三元組挖掘程序來獲得有效的圖像特征,提高了圖像檢索準(zhǔn)確率。林城龍[11]使用一個輕量級的卷積神經(jīng)網(wǎng)絡(luò)模型來檢索圖像,并利用多任務(wù)分類方法對圖像精細(xì)分類。綜上所述,基于深度學(xué)習(xí)的圖像檢索技術(shù)有著優(yōu)秀的語義提取能力和更加關(guān)注高層信息的特點。研究者通常是使用多種技術(shù)相結(jié)合或者是使用特定的訓(xùn)練集對檢索方法進行特化的方法來提高檢索精度。
顯著性檢測方面的研究起初是由生物感知學(xué)科入手的。最早是作用于圖像的顏色、強度和方向的模型[12],隨后顯著性模型大量涌現(xiàn),2007年提出的頻譜殘差SR模型,2008年提出的PFT模型,2013年提出的基于多尺度頻域濾波的HFT模型等。隨著卷積神經(jīng)網(wǎng)絡(luò)的引入,顯著性檢測迎來了第三次發(fā)展高潮。卷積神經(jīng)網(wǎng)絡(luò)通常包含許多可調(diào)節(jié)的參數(shù)和感受野,可以更好地識別出圖像中的主要區(qū)域。 這些優(yōu)點使得其逐漸成為顯著性物體檢測研究的主要方向。
因此針對如何將海量圖像進行有效組織并且迅速的檢索得到人們所希望看到的圖像即圖像檢索的準(zhǔn)確率問題,本文將顯著性檢測的方法與圖像檢索方法相互融合,提出了基于顯著性檢測的兩階段圖像檢索模型NL-VG(NLDF-VGG16),首先搭建局部特征圖與全局特征圖相結(jié)合的非局部深度特征模型(NLDF)的顯著性檢測網(wǎng)絡(luò),其中使用了Sobel算子[13]邊緣檢測算法,定位圖像中的顯著性區(qū)域,其次搭建VGG-16網(wǎng)絡(luò),對定位到的顯著性區(qū)域使用VGG-16網(wǎng)絡(luò)進行特征提取,得到特征向量。最后構(gòu)建圖像檢索系統(tǒng),對于任意輸入的圖像,將得到的特征向量利用相似性度量方法和建立的圖像檢索庫相匹配并顯示與之相似的圖像[14],最終輸出輸入圖片最相似的檢索結(jié)果。
此兩階段的檢索模型(NL-VG)的第一部分使用圖像的顯著性檢測方法從而得到圖像中的主要部分,生成顯著圖。圖像的感興趣區(qū)域通常包含了圖像的重要內(nèi)容信息[15]。第二部分利用第一部分的結(jié)果,使用神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練得到檢索的特征向量。在第二部分,將處理后得到的顯著性圖像作為輸入。使用神經(jīng)網(wǎng)絡(luò)進行特征抽取,使用池化操作,獲得一個用于檢索的特征向量。對數(shù)據(jù)庫中的所有圖像進行上述兩階段的操作,均可得到對應(yīng)的檢索向量,生成檢索庫。對于任意的一幅圖像,計算得到的檢索庫中所有檢索向量與輸入圖像之間的余弦距離,相似程度即由余弦距離的數(shù)值大小來反映。限制檢索結(jié)果的輸出個數(shù),方式為根據(jù)余弦距離的大小排序。此兩階段模型的整體結(jié)構(gòu)如圖1所示。
圖1 NL-VG網(wǎng)絡(luò)模型結(jié)構(gòu)
本文的兩階段圖像檢索模型NL-VG第一階段使用的是NLDF(non-localdeepfeatures)模型,其使用了大量的殘差結(jié)構(gòu)來將網(wǎng)絡(luò)的各中間結(jié)果結(jié)合在一起,更好地獲得全局上下文信息和局部注意力信息。NLDF一共有16層。第1層到第5層的結(jié)構(gòu)均使用的是卷積加池化的操作,得到的是一個帶有全局信息的特征圖。第5層到第9層只使用卷積操作,同時使用了殘差結(jié)構(gòu),1層至5層的輸出結(jié)果作為6層至10層的輸入。之后5層使用反卷積,同樣是用到了5層至10層的結(jié)果。將第10層與第15層的結(jié)果進行結(jié)合,生成帶有局部信息的特征圖,最后將全局與局部特征圖結(jié)合,進行主要區(qū)域的判斷,得到圖像的主體圖。第二階段模型是對得到的主體圖像進行特征提取。模型見圖1中的實線框內(nèi)的部分,使用的是一個有5個模塊且每個模塊內(nèi)均為2個卷積層加上一個最大池化層的結(jié)構(gòu),池化層用來對圖像降維,并在神經(jīng)網(wǎng)絡(luò)訓(xùn)練時使用預(yù)訓(xùn)練權(quán)重,最終得到檢索向量用于圖像檢索。
本文第一階段使用的是NLDF(non-localdeepfeatures)模型,此模型使用了大量的殘差結(jié)構(gòu)來將網(wǎng)絡(luò)的各中間結(jié)果結(jié)合在一起,更好地獲得圖像信息。普通的神經(jīng)網(wǎng)絡(luò)會隨著網(wǎng)絡(luò)深度的增加而存在梯度爆炸和梯度消失等問題,變得越來越難以訓(xùn)練。本網(wǎng)絡(luò)中使用的殘差結(jié)構(gòu)[16]使得訓(xùn)練深度網(wǎng)絡(luò)變得更加容易。
傳統(tǒng)網(wǎng)絡(luò)通過訓(xùn)練學(xué)習(xí)輸入x與輸出H(x)之間的關(guān)系,其中x為輸入數(shù)據(jù),H(x)為輸出。殘差塊則使用有參網(wǎng)絡(luò)層,在某一層的線性模塊之后來學(xué)習(xí)輸入、輸出之間的殘差,如式(1)所示,其中殘差塊結(jié)構(gòu)如圖2所示。
F(x,Wi)=W2σ(W1x)
(1)
式中:W1和W2表示有參卷積層的權(quán)值;σ表示ReLU函數(shù);F表示殘差映射函數(shù);Wi表示第i層卷積層的權(quán)值矩陣。
根據(jù)圖2,輸入與輸出的關(guān)系為x→F(x,Wi)+x。由于輸入與殘差之間的關(guān)系更易表示,因此該模型具有更強的圖像特征提取能力。
模型中殘差塊卷積層的卷積核數(shù)目如表1所示。
圖2 殘差塊結(jié)構(gòu)圖
表1 各卷積層的卷積核數(shù)目
此檢索模型,第一階段不僅使用了圖像中的信息,更重要的是對圖像的主要信息即顯著性信息進行了特征提取,使用戶的檢索結(jié)果更加準(zhǔn)確。
NLDF使用IoU計算預(yù)測值與實際值之間的差值大小,見式(2)。CEL使用了交叉熵?fù)p失,見式(3)。將上述2個公式采用線性組合的方式制作了新的損失函數(shù),見式(4)。
(2)
(3)
Loss=∑jλjCEL(j)+∑jλj(1-IoULoss)
(4)
在NLDF網(wǎng)絡(luò)中運用了Sobel算子檢測算法。是一種利用局部差分尋找邊緣的方法。其由橫、縱2個方向的卷積核構(gòu)成,圖像中的像素分別與其做卷積,經(jīng)過閾值處理得到方向上的邊緣圖像,可以提供較為準(zhǔn)確的信息。
Sobel平面卷積的原理如式(5)所示:
(i*1)+(h*2)+(g*3)+
(f*4)+(e*5)+(d*6)+
(c*7)+(b*8)+(a*9)
(5)
水平、豎直2個方向的亮度差分近似值如式(6)(7)所示:
(6)
(7)
其中:A是指原圖像;Gx及Gy是指對水平和豎直2個方向的計算。梯度值計算如式(8)所示。
(8)
原始圖像如圖3所示,Sobel算子的檢測的效果圖如圖4所示。
圖3 原始圖像
圖像檢索的第二階段是對第一階段得到的圖像進行特征提取。圖像數(shù)據(jù)隨著網(wǎng)絡(luò)的發(fā)展也快速地增長。對于大量的數(shù)據(jù)圖像,通常使用卷積神經(jīng)網(wǎng)絡(luò)來處理。ImageNet數(shù)據(jù)集中包括數(shù)量巨大的網(wǎng)絡(luò)圖像,此模型對未知圖像的預(yù)測能力較好。本實驗的圖像檢索模型中,使用了預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)權(quán)重來實現(xiàn)特征提取,本文中使用的模型是VGG-16。VGG-16的網(wǎng)絡(luò)層數(shù)深,更加適合于大數(shù)據(jù)集,此網(wǎng)絡(luò)既可以保證感受野,又能夠減少卷積層的參數(shù),在此網(wǎng)絡(luò)中使用2個3*3來代替1個5*5的效果,3個3*3來代替1個7*7的效果,使得參數(shù)更少,對特征學(xué)習(xí)能力更強。VGG-16結(jié)構(gòu)如圖5所示。
圖4 Sobel檢測效果圖
圖5 VGG-16結(jié)構(gòu)
本文的特征提取模型結(jié)構(gòu)如圖1中的實線框部分所示。把圖片放入一個可以使用預(yù)計算訓(xùn)練權(quán)重的卷積模型的神經(jīng)網(wǎng)絡(luò),這里指的是一個有5個模塊的且每個模塊均為2個卷積層加上1個最大池化層的模型。在此模型中,所有卷積都使用了大小為3×3,步長為1的窗口,而池化操作都使用了大小為2×2,步長為2的窗口。3×3的卷積窗口,相較于5×5與7×7的窗口來說能夠有效減少網(wǎng)絡(luò)參數(shù),加快模型訓(xùn)練速度。
在傳統(tǒng)的檢索任務(wù)中,對圖像進行分塊,然后根據(jù)每個分塊提取圖像特征,將2個差異較大的塊聚類成一個簇,簇中每個元素的距離取決于原始特征提取方法的質(zhì)量。當(dāng)圖像塊的特征提取方法不能有效濾除噪聲點時,會影響聚類效果,進而影響每個特征對應(yīng)的聚類名稱,最終導(dǎo)致塊間距離的差距變大。
圖像檢索[17]主要分為圖像入庫和圖像檢索兩部分。圖像入庫即將上述兩階段訓(xùn)練得到的特征向量作為圖像的數(shù)據(jù)庫。在進行檢索時,根據(jù)特征相似性可以進行不同度量的綜合算法分析計算得出被檢索的數(shù)據(jù)特征和分組數(shù)據(jù),并將需要查詢的數(shù)據(jù)特征和檢索數(shù)據(jù)庫中系統(tǒng)相應(yīng)的各個分組數(shù)據(jù)特征之間的相似度關(guān)系進行計算,把綜合檢索圖像所得的計算結(jié)果從大到小依次進行排序后,再將計算得到的一個用于匹配檢索圖像的發(fā)送到進行檢索的系統(tǒng)用戶。圖像檢索基本流程如圖6所示。
圖6 圖像檢索基本流程框圖
相似性度量是檢索系統(tǒng)中的主要部分,通過特征模塊檢索完成匹配,從而實現(xiàn)目標(biāo)圖像的檢索[18]。一般的相似性度量可以通過計算特征的距離來實現(xiàn)。本文使用的相似性度量方法是余弦距離,又稱余弦相似度。計算方法見式(9)。
(9)
其中,分子運用的是點乘的計算方式,分母是向量的模相乘。結(jié)果越小相似度越高,越大相似度越低。余弦距離只與角度差值有關(guān),與長度無關(guān)。余弦距離是圖像檢索中常用的距離度量方式。
本文實驗中使用15個類別,共3 000張圖像作為此實驗的數(shù)據(jù)集。數(shù)據(jù)集的獲取使用的是爬蟲方法,自動獲取信息或數(shù)據(jù)。按照一定的規(guī)則從萬維網(wǎng)上抓取網(wǎng)頁信息的程序或者腳本[19]。 使用requests請求向目標(biāo)地址發(fā)起請求,在返回的數(shù)據(jù)里面就有所需要的圖片的存放地址,將圖片地址和其他信息區(qū)分開來,提取圖片地址。最后將路徑中的文件下載到電腦中。
對下載的圖像進行數(shù)據(jù)預(yù)處理,對不符合要求的圖像進行刪減,刪減后對圖形進行數(shù)據(jù)增廣處理,增加樣本數(shù)量并構(gòu)建數(shù)據(jù)集[20]。
實驗部分的軟硬件環(huán)境如下所示:
系統(tǒng):Windows 10 專業(yè)版
硬件:顯卡NVIDIA GeForce 920M,CPU為Intel(R) Core(TM) i5-7200U CPU
軟件:PyCharm 2020.1,Anaconda5.3.1
內(nèi)存:16 G
采用基于TensorFlow框架的VGG-16進行圖像的特征提取,并在做特征提取前使用顯著性檢測算法對圖像進行處理得到顯著圖,從而使圖像檢索的準(zhǔn)確度得到保證。采用網(wǎng)絡(luò)爬蟲技術(shù)獲取圖像,對獲取到的不符合要求的圖像進行刪減并進行數(shù)據(jù)增廣構(gòu)建訓(xùn)練的數(shù)據(jù)集。由于卷積神經(jīng)網(wǎng)絡(luò)擁有大量的參數(shù),訓(xùn)練網(wǎng)絡(luò)時需要的訓(xùn)練樣本較大。因此,在現(xiàn)有數(shù)據(jù)的基礎(chǔ)上增加訓(xùn)練數(shù)據(jù)成為提升網(wǎng)絡(luò)性能的一個重要方式。它可以提高模型的泛化能力。在參數(shù)設(shè)置上,其參數(shù)由經(jīng)過預(yù)訓(xùn)練的參數(shù)權(quán)重進行初始化,方式為隨機初始化。網(wǎng)絡(luò)訓(xùn)練時在原來基礎(chǔ)上進行數(shù)據(jù)的微調(diào),將學(xué)習(xí)率設(shè)置為0.000 1,動量設(shè)置為常用數(shù)值0.9。每次選取小批量訓(xùn)練樣本并計算預(yù)測的誤差累積來更新網(wǎng)絡(luò)參數(shù)。每次訓(xùn)練樣本的數(shù)量batchsize設(shè)置為50,使用梯度下降的優(yōu)化方法對網(wǎng)絡(luò)參數(shù)進行更新。
對于兩段式圖像檢索模型采用查準(zhǔn)率(precision)、查全率(recall)、平均精度(AP)、平均精度均值(mAP)作為模型的評價指標(biāo)。
查準(zhǔn)率代表模型正確預(yù)測的圖像數(shù)量(TP)占所有預(yù)測圖像的總數(shù)量(TP+FP)的比值,如式(10)所示:
(10)
查全率在本文中代表模型正確預(yù)測的圖像數(shù)量(TP)占所有圖像的總數(shù)(TP+FN)的比值,如式(11)所示:
(11)
平均精度(AP)用來計算單類別模型平均準(zhǔn)確度。平均精度均值(mAP)就是對所有類別的AP值求平均值,N代表類別總數(shù)。如式(12)所示:
(12)
此兩階段圖像檢索模型中,在第一階段利用顯著性檢測算法并沒有使用圖像中的全部信息,而是運用圖像的主要信息,即使用顯著性檢測模型得到顯著性區(qū)域,后續(xù)進行特征提取時就能夠提取到表征能力較強的特征,使得圖像檢索的正確率有所提高。圖7(a)是原始圖像,圖7 (b)是提取出的圖像的最重要的顯著性區(qū)域。
對原始主體圖像中點的像素值大小進行判斷。對于三通道的圖像,像素點范圍是在[0,255]區(qū)間內(nèi),選擇127作為閾值能在最大程度上獲取信息。
為了更加直觀地觀察出方法的效果,進行了視覺對比,其他方法比較結(jié)果如圖8所示。根據(jù)效果對比圖可知全局特征與局部特征相結(jié)合的方式可以更好地得到顯著圖。
圖7 原始圖像(a)和顯著圖(b)
圖8 對比效果圖
圖像檢索的階段采用了map方法作為科學(xué)評價的主要指標(biāo),測試本文實驗方法的科學(xué)有效性。數(shù)據(jù)集選擇背景簡單的5個類別的圖片各20張,分別為狗、貓、大象、花、樹。另外選擇包含這5個類別中至少2個類別的背景較為復(fù)雜的圖片20張,共挑選了120張圖片進行實驗,實驗結(jié)果如圖9所示。本模型與其他模型的數(shù)據(jù)對比結(jié)果如圖10所示。
圖9 圖像檢索模型實驗結(jié)果
圖10 模型結(jié)果
SpoC方法意在對特征圖中信息進行有效整合以獲得更好的效果。Crow方法提出交叉維度的加權(quán)求和方法,對特征圖的信息進行進一步處理。
在對圖片使用神經(jīng)網(wǎng)絡(luò)進行特征提取之前,先利用顯著性檢測模型獲取一幅圖像中的顯著性區(qū)域,相較于之前直接進行特征提取的方式有效提高了圖像檢索時的正確率。模型中使用了全局特征圖與局部特征圖相結(jié)合的方式,對特征圖中各種信息進行有效整合,以獲得更好的效果。本文的準(zhǔn)確率比傳統(tǒng)算法有所提高。通過觀察發(fā)現(xiàn),圖像中大部分的顯著性區(qū)域是在圖像的中間位置,所以在實驗時應(yīng)該更關(guān)注于圖像的中心位置,所以對于一個特征圖,越接近圖像中央的部分權(quán)重越大,這種方法可以在一定程度上更加準(zhǔn)確地利用圖像的主體信息。
為直觀地顯示圖像檢索的結(jié)果,利用交互式工具包PyQt5設(shè)計可視化界面,構(gòu)建圖像檢索系統(tǒng)。本文所設(shè)計的系統(tǒng)共包含5個功能。系統(tǒng)功能模塊如圖11所示,系統(tǒng)總體流程如圖12所示。
圖11 系統(tǒng)功能模塊框圖
圖12 系統(tǒng)總體流程框圖
圖像檢索系統(tǒng)的登錄界面如圖13所示,進入登錄系統(tǒng)界面,需要輸入登錄用戶名和登錄密碼2種基本信息即可完成本次登錄,此界面包含登錄和退出2種功能。系統(tǒng)主界面如圖14所示。
圖13 系統(tǒng)登錄界面
圖14 系統(tǒng)主界面
系統(tǒng)圖像檢索界面如圖15所示,包含選擇圖片,轉(zhuǎn)到上一頁或下一頁3種功能。選擇圖片功能如圖16所示,點擊選擇圖片彈出文件夾,可以在其中選擇想要進行圖像檢索的圖片。確認(rèn)圖片后,系統(tǒng)會出現(xiàn)檢索結(jié)果。對檢索結(jié)果的翻頁功能如圖17和圖18所示。對1張圖片進行檢測時,一頁不能夠完全顯示出來,此功能可以翻頁并在所在頁面是第一頁或最后一頁時進行提示。
圖15 系統(tǒng)檢索界面
圖16 選擇圖片界面
圖17 上一頁功能界面
圖18 下一頁功能界面
針對在海量圖像數(shù)據(jù)下圖像檢索的準(zhǔn)確度的問題,提出了一種改進的NL-VG(NLDF-VGG16)兩段式圖像檢索模型,該算法首先搭建局部特征圖與全局特征圖相結(jié)合的非局部深度特征模型(NLDF)的顯著性檢測模型,此模型使用了大量的殘差結(jié)構(gòu)來將網(wǎng)絡(luò)的各中間結(jié)果結(jié)合在一起,更好地獲得全局上下文信息和局部信息。 在NLDF中使用了Sobel算子邊緣檢測算法,定位圖像中的顯著性區(qū)域,其次搭建VGG-16網(wǎng)絡(luò),對定位到的顯著性區(qū)域使用VGG-16網(wǎng)絡(luò)進行特征提取得到特征向量。最后使用PyQt5構(gòu)建圖像檢索原型系統(tǒng),并在自制數(shù)據(jù)集上進行實驗。對于任意輸入的圖像,利用相似性度量方法進行特征匹配,最終輸出與輸入圖片最相似的檢索結(jié)果。證明在融入了顯著性機制后的圖像檢索方法能夠有效提高檢索的準(zhǔn)確度。