摘 要: 用戶描述圖像的高層抽象語義與圖像內(nèi)在的底層特征之間存在差異,此時僅依靠圖像內(nèi)容特征進行檢索的系統(tǒng)無法準確完成用戶的檢索任務(wù)。針對以上問題,提出了使用神經(jīng)網(wǎng)絡(luò)進行圖像的匹配計算方法,通過樣例自動學習和用戶反饋學習兩種學習方式,形成圖像底層特征到圖像分類的正確映射,學習后的神經(jīng)網(wǎng)絡(luò)可以進行圖像的自動分類及檢索。該方法結(jié)合了圖像的底層特征描述及用戶的高層語義反饋,有效地彌補了語義鴻溝。最后,系統(tǒng)通過整合Web前端、圖像提取模塊、神經(jīng)網(wǎng)絡(luò)模塊及數(shù)據(jù)庫模塊,實現(xiàn)了神經(jīng)網(wǎng)絡(luò)學習及圖像檢索的完整流程。
關(guān)鍵詞: 圖像檢索; 特征提??; 神經(jīng)網(wǎng)絡(luò); 機器學習; 相關(guān)反饋
中圖分類號: TN711?34; TM417 文獻標識碼: A 文章編號: 1004?373X(2016)21?0078?05
Design and development of image retrieval platform based on artificial neural network
ZHANG Weihua, GAO Ang
(Department of Information Engineering, Zhengzhou Chenggong University of Finance and Economics, Gongyi 451200, China)
Abstract: Since the difference exists between the high?level abstract semantics and underlying feature of the user?description image, the retrieval system based on the image content feature can′t accurately accomplish the user′s retriecal task. To solve the above problem, an image matching calculation method based on neural network is proposed. The correct mapping from image low?level feature to image classification is formed by means of sample automatic learning and user feedback learning. The neural network after learning can classify and retrieve the image automatically. This method is combined with the image low?layer feature description and user high?level semantics feedback to effectively recover the semantic gap. The whole process of neural network learning and image retrieval was realized by integrating the Web front end, image extraction module, neural network module and database module.
Keywords: image retrieval; feature extraction; neural network; machine learning; relevance feedback
在利用神經(jīng)網(wǎng)絡(luò)進行圖像檢索的過程中,圖像的大小、精度及細節(jié)越來越豐富,信息含量相應(yīng)的也越來愈多,當使用大量的信息進行神經(jīng)網(wǎng)絡(luò)的構(gòu)建和訓練時,所需的時間和成本都大大增加,并且神經(jīng)網(wǎng)絡(luò)的檢索效率也會降低,這就使得其滿足不了用戶準確搜索圖像的需求[1]。同時,隨著神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展,可以利用各種改進技術(shù)提高神經(jīng)網(wǎng)絡(luò)的學習效率和預(yù)測準確率,使得利用神經(jīng)網(wǎng)絡(luò)來模擬人腦對圖像的分類和檢索可以得到更好的效果。
1 圖像特征的提取
系統(tǒng)使用圖像分割方法對圖像的形狀特征進行描述,提取圖像中各個部分的形狀特征。
1.1 形狀特征的提取
使用K?均值聚類分割算法進行圖像的分割。將圖像分割后,由于每個簇中的像素在視覺特征上具有很強的相似性,因此對每一區(qū)域的特征進行簡單的描述,提取相應(yīng)的圖像特征然后保存結(jié)果,并將其作為圖像檢索系統(tǒng)的區(qū)域特征庫。系統(tǒng)針對不同的圖像特征選取不同的方法進行描述:
(1) 區(qū)域顏色特征,提取該區(qū)域中像素點在Lab顏色空間中的均值來描述。
(2) 區(qū)域位置特征,提取該區(qū)域中像素點在二維空間中的坐標的平均值來描述。
(3) 區(qū)域紋理特征,提取該區(qū)域中像素的平均對比度及平均各向異性來描述。
(4) 區(qū)域形狀特征,提取該區(qū)域的封閉輪廓,并將其分解為可由若干橢圓重構(gòu)的由橢圓參數(shù)組成的序列,然后通過傅里葉描述符來描述該封閉曲線[2]。
1.2 顏色特征的提取
由于顏色直方圖的限制,選擇顏色相關(guān)圖進行圖像顏色的提取。圖像的顏色相關(guān)圖就是由所有顏色對進行索引的表,在表中[(i, j)]的第[m]個條目表示找到與顏色為[i]的一個像素點距離為[m]的顏色為[j]的一個像素點的幾率。在計算顏色相關(guān)圖時需采用一些并行計算,這樣可以提高計算效率。
1.3 紋理特征的提取
通過對比基于Tamura紋理特征算法的檢索程序、基于灰度?梯度共生矩陣算法的檢索程序和基于Gabor小波變換算法,基于Tamura紋理特征提取算法的檢索程序的查詢準確率要比后兩者都高,且其查詢使用的時間也要少很多,因此系統(tǒng)選擇采用Tamura紋理特征提取算法。
2 BP神經(jīng)網(wǎng)絡(luò)模型的搭建
2.1 BP神經(jīng)網(wǎng)絡(luò)特點
選擇BP神經(jīng)網(wǎng)絡(luò)作為圖像的神經(jīng)網(wǎng)絡(luò)分類器,其將[n]維圖像底層視覺特征映射為圖像的分類。通過實驗對BP神經(jīng)網(wǎng)絡(luò)進行一些改進和優(yōu)化,使其能有效地完成圖像檢索的任務(wù)。典型樣本集的選擇、學習復(fù)雜性、網(wǎng)絡(luò)結(jié)構(gòu)的選擇、輸入特征向量的選擇、預(yù)測能力的極限都是需要在搭建BP神經(jīng)網(wǎng)絡(luò)時需要考慮的問題[3]。
2.2 BP神經(jīng)網(wǎng)絡(luò)的原理及拓撲結(jié)構(gòu)
基于BP神經(jīng)網(wǎng)絡(luò)相關(guān)原理的學習與分析,確定了系統(tǒng)中BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和構(gòu)建過程:首先定義輸入層、隱含層和輸出層的神經(jīng)元數(shù)目分別為[n,l]和[m,]則[(x1,x2,…,xn)]為網(wǎng)絡(luò)的輸入矢量,[(h1,h2,…,hl)]為隱含層神經(jīng)元的輸出矢量,[(y1,y2,…,ym)]為網(wǎng)絡(luò)的實際輸出矢量,同時定義[(d1,d2,…,dm)]為訓練樣本所對應(yīng)的預(yù)期輸出矢量。然后定義輸出層神經(jīng)元[i]與隱含層神經(jīng)元[j]的連接權(quán)值為[Vij,]隱含層神經(jīng)元[j]與輸出層神經(jīng)元[k]的連接權(quán)值為[Wjk,]隱含層神經(jīng)元[j]的閾值為[b,]輸出層神經(jīng)元[k]的閾值為[c。]由于傳遞函數(shù)需要表示具有線性特性的輸入信號與輸出信號的聯(lián)系,又根據(jù)BP神經(jīng)網(wǎng)絡(luò)要求傳遞函數(shù)必須連續(xù)可導(dǎo),因此其一般使用在(0,1)之間連續(xù)并可導(dǎo)的Sigmoid函數(shù)作為傳遞函數(shù),該函數(shù)公式為:
[f(x)=11-e-x] (1)
實際輸出矢量與預(yù)期輸出矢量的誤差計算公式為:
[E=12j=1m(dk-yk)2] (2)
隱含層神經(jīng)元輸出矢量的計算公式為:
[hj=fj=1N-1Vijxi+?j] (3)
輸出層神經(jīng)元輸出矢量的計算公式為:
[yk=fj=0L-1Wjkhj+θk] (4)
BP神經(jīng)網(wǎng)絡(luò)通過反向傳播算法調(diào)整權(quán)值,其權(quán)值修正公式為:
[Wij(n+1)=Wij(n)+ηδjx′i] (5)
在式(5)中,[Wij(n)]表示第[n]次學習后的神經(jīng)元[i]與神經(jīng)元[j]之間的連接權(quán)值,信號輸出的神經(jīng)元為[i,]信號輸入的神經(jīng)元為[j,][Xi]為神經(jīng)元[i]的實際輸出,[η]為網(wǎng)絡(luò)的學習速率,[δj]為神經(jīng)元[j]的學習誤差。
系統(tǒng)中BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建流程如下:
(1) 初始化網(wǎng)絡(luò)的連接權(quán)值和閾值,其值為均勻分布的隨機數(shù)。
(2) 對網(wǎng)絡(luò)使用一組樣例數(shù)據(jù)進行訓練。
(3) 網(wǎng)絡(luò)搭建完成,將輸入矢量輸入網(wǎng)絡(luò)可仿真輸出符合預(yù)期的輸出矢量[4]。
2.3 BP神經(jīng)網(wǎng)絡(luò)的學習過程
通過對相關(guān)反饋算法的學習,提出了一種基于BP神經(jīng)網(wǎng)絡(luò)進行學習的圖像檢索方法,它包含兩種學習過程:
(1) 自動樣例學習,首先通過包含高層語義標注的樣例圖像的學習構(gòu)建圖像高層語義的分類器,其中對于圖像的每種語義分別構(gòu)造一個分類器,輸入樣例圖像后使系統(tǒng)提取圖像的底層特征作為神經(jīng)網(wǎng)絡(luò)的輸入,然后經(jīng)過一定時間的學習可以得到網(wǎng)絡(luò)的解,使分類器能夠初步完成分類任務(wù);
(2) 用戶交互學習,首先通過用戶的指導(dǎo),將初步檢索結(jié)果進行分類,然后系統(tǒng)將用戶的反饋整理為學習樣本,同樣使用自動樣例學習過程進行學習,最后得出網(wǎng)絡(luò)最新的解,使分類器能更精確地完成分類任務(wù)。系統(tǒng)中BP神經(jīng)網(wǎng)絡(luò)的學習流程如圖1所示。
2.4 BP算法的改進
使用附加動量法可以使網(wǎng)絡(luò)在修正連接權(quán)值時,不只考慮誤差在其梯度上的變化趨勢,還考慮誤差在其曲面上的變化趨勢。在沒有附加動量的情況中,網(wǎng)絡(luò)在訓練過程中有可能陷入局部極小狀態(tài),通過使用附加動量則可以在一定程度上繞過這些極小值,避免進入極小狀態(tài)[5]。附加動量法在反向傳播過程中,在每一個神經(jīng)元的連接權(quán)值及閾值的當次訓練的變化量上附加一個正比于上次訓練后的連接權(quán)值及閾值的變化量的項,根據(jù)新的變化量計算出新的連接權(quán)值及閾值。添加了附加動量因子的連接權(quán)值和閾值的變化量計算公式分別為:
[Δwij(k+1)=(1-mc)ηδjpj+mcΔwij(k)] (6)
[Δbj(k+1)=(1-mc)ηδj+mcΔbij(k)] (7)
式中:[k]表示第[k]次訓練;[mc]表示動量因子,[mc]的取值一般在0.95附近。
在結(jié)合附加動量法的網(wǎng)絡(luò)訓練過程中,需要根據(jù)不同條件判斷何時使用動量因子來修正權(quán)值,其判斷條件為:
[mc=0,E(k)>E(k-1)×1.040.95,E(k) 式中[E(k)]為第[k]步的誤差平方和。 自適應(yīng)學習速率的調(diào)整公式為: [η(k+1)=1.05η(k),E(k+1) 式中[E(k)]為第[k]步的誤差平方和。 動量法可以幫助BP算法正確找到全局最優(yōu)解,自適應(yīng)學習速率法可以幫助BP算法縮短訓練時間,通過這兩種方法的使用,可以有效地提高神經(jīng)網(wǎng)絡(luò)的學習效果。 2.5 實驗結(jié)果分析 實驗?zāi)康臑榇_定系統(tǒng)中BP神經(jīng)網(wǎng)絡(luò)分類器的隱含層神經(jīng)元數(shù)目。首先根據(jù)研究獲得的圖像特征向量的元素個數(shù)構(gòu)建神經(jīng)網(wǎng)絡(luò)分類器的學習樣例,此處每個樣例的輸入向量的元素個數(shù)為165個,因此構(gòu)建16組含有165個元素的輸入向量,4個一組劃分為一種類別,最終形成含有4種類別的16組訓練樣本,以此方法再生成該4種類別的4組測試樣本。然后根據(jù)經(jīng)驗公式獲得合適隱含層神經(jīng)元數(shù)目的取值范圍,此處為9~17個。最后將訓練樣本及測試樣本先后輸入隱含層神經(jīng)元數(shù)目不同的網(wǎng)絡(luò)中進行訓練和測試,記錄數(shù)據(jù)。 表1記錄了隱含層神經(jīng)元數(shù)目及對應(yīng)的訓練誤差和測試誤差的數(shù)據(jù),由其數(shù)據(jù)可以看出,隨著隱含層神經(jīng)元數(shù)目的增加訓練誤差總體上逐漸減小,當個數(shù)超過15后訓練誤差出現(xiàn)一定程度的波動,出現(xiàn)小幅的增加,雖然不影響網(wǎng)絡(luò)的學習效果,但是過多的神經(jīng)元個數(shù)會增加學習時間,而此時測試誤差還是處于降低的趨勢。綜合分析實驗結(jié)果,本系統(tǒng)確定采用較合適的15個隱含層神經(jīng)元。 3 檢索系統(tǒng)的設(shè)計與實現(xiàn) 3.1 系統(tǒng)結(jié)構(gòu)分析 3.1.1 系統(tǒng)結(jié)構(gòu) 系統(tǒng)的結(jié)構(gòu)如圖2所示,圖中除了與用戶交互的Web前端,其余的圖像特征提取模塊、神經(jīng)網(wǎng)絡(luò)模塊及數(shù)據(jù)庫都在服務(wù)器端,這種瀏覽器?服務(wù)器結(jié)構(gòu)平臺搭建后,用戶可以通過不同客戶端的Web瀏覽器進行圖像檢索的功能,而不必安裝本地應(yīng)用程序,同時將主要的核心功能集中到服務(wù)器上,不僅大大簡化了系統(tǒng)的開發(fā)和維護流程,降低了成本,還增強了系統(tǒng)的擴展性。 3.1.2 系統(tǒng)流程 系統(tǒng)針對不同的功能需求設(shè)計了相應(yīng)的不同流程,這些流程包括系統(tǒng)樣例學習流程、用戶反饋學習流程、用戶查詢流程。 如圖3所示,在系統(tǒng)的樣例學習過程中,系統(tǒng)接收到樣例數(shù)據(jù)后會先對數(shù)據(jù)進行分析,然后交給神經(jīng)網(wǎng)絡(luò)進行學習,最終生成對應(yīng)類別的分類器,這些分類器會在用戶檢索時對數(shù)據(jù)庫中的圖像進行分類,查找到符合用戶需求的圖像[6]。樣例學習的流程是本系統(tǒng)學習分類知識的關(guān)鍵步驟,在該步驟中用戶并不參與系統(tǒng)的學習過程,整個學習過程均為系統(tǒng)自動進行,因此需提供大量被正確標注的清晰圖像樣例,通過對這些優(yōu)質(zhì)樣例的學習,系統(tǒng)會自動生成針對圖像各種分類所對應(yīng)的分類器,且經(jīng)過長時間的學習,這些分類器的準確率會不斷上升,最終使查詢結(jié)果更符合用戶需求。 如圖4所示,在系統(tǒng)的用戶查詢流程中,用戶的查詢條件為圖像特征的語義描述,系統(tǒng)最終返回為包含該描述特征的圖像集,這個過程利用神經(jīng)網(wǎng)絡(luò)分類器學習的高層描述語義與低層圖像特征之間的映射,因此隨著神經(jīng)網(wǎng)絡(luò)學習時間的增大,這種映射也就越精確,系統(tǒng)完成的查詢也就越符合用戶要求。 3.1.3 圖像特征提取模塊 如圖5所示,當圖像輸入到圖像特征提取模塊中時,圖像會進行K?均值聚類分割算法處理、顏色相關(guān)圖算法處理及Tamura紋理特征算法處理,這三個處理過程并行進行。 經(jīng)過K?均值聚類分割算法處理,圖像被分割為若干塊區(qū)域,每個區(qū)域中的像素都具有相似的屬性,對于每個區(qū)域,會提取其簡單的區(qū)域特征,如顏色特征、位置特征、紋理特征及形狀特征等;經(jīng)過顏色相關(guān)圖算法處理,生成當前圖像的顏色自相關(guān)圖;經(jīng)過Tamura紋理特征算法處理,計算出圖像的粗糙度、對比度、方向度、線性度等數(shù)值。將經(jīng)過三個算法處理后得到的數(shù)值整理后得到圖像的特征向量[7]。 3.1.4 神經(jīng)網(wǎng)絡(luò)模塊 系統(tǒng)中的圖像神經(jīng)網(wǎng)絡(luò)分類器由三層組成,分別為輸入層、隱含層及輸出層,其中輸入層的神經(jīng)元個數(shù)與歸一化后的圖像特征向量的個數(shù)相同,為固定值;隱含層的神經(jīng)元個數(shù)通過前文中的實驗得出,適合于本系統(tǒng)中神經(jīng)網(wǎng)絡(luò)的要求;輸出層只有一個神經(jīng)元進行分類,設(shè)定1為屬于該分類的學習期望,設(shè)定0為不屬于該分類的學習期望,但是實際運行時需要設(shè)定1為0.9,0為0.1,這是因為Sigmoid函數(shù)無法經(jīng)過有限的連接權(quán)值計算得到1與0的值[8]。 3.1.5 Web 平臺模塊 系統(tǒng)的Web界面包括用戶查詢輸入框、用戶圖像上傳框、查詢結(jié)果瀏覽框等。 3.2 實驗結(jié)果分析 為了檢驗圖像檢索平臺的性能,首先將系統(tǒng)設(shè)置為學習模式,然后從圖像庫中選取1 000幅已進行人工標注的樣例集輸入系統(tǒng),最后當系統(tǒng)發(fā)出已訓練完畢信號后,對系統(tǒng)已學習的分類當作查詢輸入系統(tǒng)進行檢索,記錄系統(tǒng)檢索結(jié)果。 檢索結(jié)果可知經(jīng)過人工指導(dǎo)學習,系統(tǒng)可以仿真模擬更符合人類視覺感知的分類方式,并將其記憶于相應(yīng)的神經(jīng)網(wǎng)絡(luò)分類器中,經(jīng)過不斷的學習,系統(tǒng)可以返回更準確的符合用戶需求的檢索結(jié)果。 4 結(jié) 論 本文主要研究包括基于內(nèi)容的圖像檢索技術(shù)及人工神經(jīng)網(wǎng)絡(luò)技術(shù)兩個方面。首先使用K?均值聚類分割算法、顏色相關(guān)圖算法及Tamura紋理特征提取算法提取圖像相應(yīng)的形狀、顏色及紋理特征,通過整合形成可以完整描述圖像信息的特征向量。同時,針對基于內(nèi)容的圖像檢索系統(tǒng)中用戶高層語義與圖像底層特征之間存在的問題,通過樣例自動學習和用戶反饋學習兩種學習方式,BP神經(jīng)網(wǎng)絡(luò)通過反向傳播學習算法調(diào)節(jié)網(wǎng)絡(luò)權(quán)值,從而形成圖像底層特征到圖像分類的正確映射,學習后的神經(jīng)網(wǎng)絡(luò)通過這種映射可以進行圖像的自動分類及檢索,該方法結(jié)合了圖像的底層特征描述及用戶的高層語義反饋,有效地彌補了語義鴻溝。 參考文獻 [1] KHERFI M L, ZIOU D. Relevance feedback for CBIR: a new approach based on probabilistic feature weighting with positive and negative examples [J]. IEEE transactions on image processing, 2006, 15(4): 1017?1030. [2] TRAINA A J M, MARQUES J. Fighting the semantic gap on CBIR systems through new relevance feedback techniques [C]// Proceedings of 2011 the 21th IEEE International Symposium on Computer?Based Medical Systems. [S.l.]: IEEE, 2006: 881?886. [3] 周資云.基于內(nèi)容的圖像檢索系統(tǒng)研發(fā)與應(yīng)用[J].華章,2012(29):22. [4] 劉麗,匡綱要.圖像紋理特征提取方法綜述[J].中國圖象圖形學報,2013,14(4):622?635. [5] KANUNGO T, MOUNT D M, NETANYAHU N S, et al. An efficient k?means clustering algorithm: analysis and implementation [J]. IEEE transactions on pattern analysis and machine intelligence, 2002, 24(7): 881?892. [6] WILLIAMS A, YOON P. Content?based image retrieval using joint correlograms [J]. Multimedia tools and applications, 2007, 34(2): 239?248. [7] PANDA S S, PRASAD M, PRASAD M N M, et al. Image compression using back propagation neural network [J]. International journal of engineering science advanced technology, 2012, 2(1): 74?78. [8] 李忠武,陳麗清.計算機網(wǎng)絡(luò)安全評價中神經(jīng)網(wǎng)絡(luò)的應(yīng)用研究[J].現(xiàn)代電子技術(shù),2014,37(10):80?82.