冀 鑫,冀小平
(太原理工大學(xué) 信息工程學(xué)院,山西 太原 030024)
基于內(nèi)容的圖像檢索技術(shù)主要依據(jù)圖像所具有顏色、紋理、形狀、空間關(guān)系等特征,提取這些特征,然后對這些特征進(jìn)行相似度對比,并對圖庫中圖像進(jìn)行排序,從而實(shí)現(xiàn)圖像檢索的目的[1]。目前,顏色特征提取的算法大多如文獻(xiàn)[2]一樣對顏色空間的三個(gè)分量非均勻量化,優(yōu)點(diǎn)是運(yùn)算簡單,缺點(diǎn)是量化結(jié)果失真較大,顏色量化不精準(zhǔn)。紋理特征的提取方法較多,例如文獻(xiàn)[3]用小波變換提取出紋理,更好地與人類視覺系統(tǒng)結(jié)合。文獻(xiàn)[4]提出的基于圖像灰度共生矩陣的算法,克服了傳統(tǒng)的共生矩陣計(jì)算復(fù)雜的問題,采用分波段、分塊處理數(shù)據(jù),提高了算法的效率。
針對目前基于顏色的圖像檢索算法在提取顏色特征失真較大的問題,提出融合顏色特征和紋理特征的檢索算法,在顏色特征提取時(shí)采用矢量量化提取顏色特征,將彩色圖像轉(zhuǎn)化到HSI 顏色空間,對查詢圖像矢量量化,形成碼書,統(tǒng)計(jì)查詢圖像各個(gè)碼字出現(xiàn)的頻數(shù),形成顏色直方圖,完成顏色特征提取。當(dāng)前將矢量量化應(yīng)用于顏色空間量化實(shí)現(xiàn)圖像檢索的相關(guān)研究并不多,將矢量量化融合其他特征檢索方法也并不常見??紤]到矢量量化在顏色提取過程中計(jì)算量較大,本文在紋理特征提取時(shí),采用容易理解、計(jì)算復(fù)雜度較低、鑒別能力較強(qiáng)的局部二進(jìn)制算法(LBP)[5],采用灰度空間圓形鄰域的LBP(P,R)算子,得到圖像中每個(gè)像素點(diǎn)的LBP 值,利用直方圖形式展現(xiàn)紋理特征,解決了傳統(tǒng)的依靠單一特征來檢索圖像的不足。最后,相似度計(jì)算通過顏色相似度和紋理相似度加權(quán)平均來度量,通過改變顏色特征和紋理特征的權(quán)值,得到最佳的查準(zhǔn)率。本文以檢索金針花為例,對算法進(jìn)行了詳細(xì)闡述,同時(shí)還對檢索結(jié)果進(jìn)行了客觀評價(jià),整體算法的檢索流程如圖1 所示。
圖像中廣泛存在的RGB 彩色空間是一種與硬件相關(guān)的顏色模型,但它與人類的視覺感官差距比較大[6]。所以直接在RGB 顏色空間提取顏色特征、計(jì)算相似度,最終達(dá)到的檢索結(jié)果不太理想。因此為了滿足人類視覺的需求,選用HSI顏色模型。
圖1 檢索流程圖
1.1.1 HSI 顏色空間
HSI(Hue-Saturation-Intensity)模型用H、S、I 3 個(gè)參數(shù)描述顏色特性,它是由Munseu 提出的一種顏色模型,其中H為色調(diào),S 為飽和度,I 為亮度或強(qiáng)度[7]。在HSI 顏色空間處理圖像,處理結(jié)果更符合人類的視覺感知。RGB 到HSI 轉(zhuǎn)換公式為
1.1.2 矢量量化
矢量量化是從k 維歐幾里得空間Rk映射到其一個(gè)有限子集C 的過程,即:Rk→C,其中C={Y1,Y2,…,Yi,…,YN|Yi∈Rk}稱為碼書,N 為碼書長度[8]。映射關(guān)系應(yīng)滿足:Q(X|X∈Rk)=Yi,其中X=(x1,x2,…,xk)為Rk中的k 維矢量,Yl=(yl1,yl2,…,ylk)為 碼 書 C 中 的 碼 字,并 且 滿 足:d(X,Yl)=min(d(X,Yi))其中d(X,Yi)為矢量X 與碼字Yi之間的失真度。因而只要輸入一個(gè)矢量X 必然能在碼書C中找到合適的碼字Yi與它對應(yīng),使該碼字與輸入矢量X 的失真度達(dá)到碼書中所有碼字最小。
1.2.1 生成查詢圖像碼書
本文選取的查詢圖像為256×256 的JPG 格式金針花彩色圖像,如圖2 所示。
圖2 金針花
以下是生成碼書的過程:
1)生成查詢圖像的初始碼書。設(shè)定碼書長度N=32。MATLAB 中讀入圖像是由RGB 形式保存,轉(zhuǎn)換為HSI 模型,形成3×256×256 矩陣。在仿真實(shí)驗(yàn)中,將訓(xùn)練樣本(3×256×256 矩陣)通過隨機(jī)函數(shù)(randn)選擇32 個(gè)樣本作為初始碼書。
2)進(jìn)行迭代訓(xùn)練。每次迭代中,每一個(gè)訓(xùn)練矢量Xi=(注:每一點(diǎn)HSI 三個(gè)參量作為一個(gè)訓(xùn)練矢量)與碼書中的各個(gè)碼字Yj(j=1,2,…,32)相比較,找到與該訓(xùn)練矢量最相近的一個(gè)碼字Yk,并把所有與Yk最相近的訓(xùn)練矢量歸為一類,這樣一共有32 類,這一步叫劃分胞腔過程。然后求出每個(gè)胞腔中訓(xùn)練矢量與其對應(yīng)在碼書中最相近的碼字Yk的距離平方之和,得到此次劃分胞腔進(jìn)行迭代的平均失真Ln。若此次劃分的平均失真Ln與上次劃分的平均失真Ln-1之間的相對誤差εn符合設(shè)定的失真誤差ε,則停止劃分,否則求出各胞腔的中心矢量作為新的迭代碼書,重新劃分胞腔。本文失真相對誤差為ε=0.001。查詢圖像的碼書生成過程如圖3 所示。
圖3 矢量量化形成查詢圖像碼書
1.2.2 形成顏色直方圖
通過矢量量化查詢圖像,得到查詢圖像的碼書,按照碼書對查詢圖像進(jìn)行編碼,統(tǒng)計(jì)查詢圖像中各個(gè)碼字出現(xiàn)的頻數(shù),并用直方圖形式直觀地表達(dá)出來,完成對圖像顏色特征的提取,其中直方圖的橫坐標(biāo)為碼書中碼字編號(hào)(1,2,…,32),直方圖的縱坐標(biāo)為圖片矢量量化后,統(tǒng)計(jì)得出碼字的頻數(shù)。在MATLAB7.11.0(R2010b)中仿真,對圖2 提取出的顏色直方圖如圖4 所示。
圖4 顏色直方圖
紋理是一種普遍存在的視覺現(xiàn)象,可認(rèn)為是灰度在空間以一定的形式變化而產(chǎn)生的圖案模式[9]。紋理特征不同于顏色特征,它所反映的信息不僅僅是單一的像素點(diǎn),還與該像素點(diǎn)周圍其他灰度分布情況聯(lián)系緊密。圖像中紋理特征提取的方法主要有基于分形維數(shù)提取法、小波提取法、灰度共生矩陣提取法等[10]。本文使用局部二進(jìn)制模式(LBP)算法提取紋理特征。
局部二進(jìn)制模式(Local Binary Patterns,LBP)最早是為一種有效的紋理描述算子提出的,由于其對圖像局部紋理特征的卓越描繪能力而獲得廣泛使用[11]?;镜腖BP 算子思路是:以圖像中某一像素點(diǎn)為中心,將該點(diǎn)的灰度值作為閾值,大于此閾值的記作1,小于此閾值的記作0,對其周圍3×3 的8 個(gè)鄰域進(jìn)行二值化,按照約定的順序(以鄰域的某一點(diǎn)開始順時(shí)針或者逆時(shí)針)二值化,最終得到一個(gè)8 位二進(jìn)制數(shù),將此8 位二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)(0~255)作為該點(diǎn)的LBP值[12]。本算法使用的是基本LBP 算子推廣以后的圓形鄰域的LBP(P,R)算子,其中下標(biāo)P 表示P 鄰域,R 表示圓形鄰域的半徑,圖5 給出了一個(gè)半徑為2 的8 鄰域像素的圓形鄰域。每個(gè)方格對應(yīng)一個(gè)像素,對于正好處在方格中心的鄰域點(diǎn)(左、上、右、下4 個(gè)黑點(diǎn)),直接以該點(diǎn)所在方格的像素值作為它的值;對于不在像素中心位置的鄰域點(diǎn)(斜45°方向的4個(gè)黑點(diǎn)),通過雙線性插值確定其值。
例如,圖5 所示,位于圖像中第i 行和第j 列的中心點(diǎn)灰度為I(i,j)和8 個(gè)鄰域點(diǎn),為計(jì)算左上角2 點(diǎn)的值,需要利用其周圍4 個(gè)像素點(diǎn)(4 個(gè)空心點(diǎn))進(jìn)行雙線性插值。首先分別算出2 個(gè)十叉點(diǎn)A、B 的水平插值,A 點(diǎn)的值根據(jù)與之同一行的I(i-2,j-2)以及I(i-2,j-1)的線性插值得到
同理B 點(diǎn)值為
左上角2 點(diǎn)灰度值為點(diǎn)A 和點(diǎn)B 的豎直線性插值
當(dāng)所有8 個(gè)點(diǎn)的灰度值都求出以后,計(jì)算中心點(diǎn)I(i,j)的LBP 值公式為
例如,圖6 每個(gè)方格中的數(shù)字代表灰度值,中心灰度值為5。利用上面的方法得出鄰域8 個(gè)點(diǎn)的像素值,從中心點(diǎn)正左側(cè)對應(yīng)點(diǎn)開始順時(shí)針依次是2,6,6,8,4,5,4,8。所以該中心點(diǎn)對應(yīng)的二值模式是01110101。根據(jù)式(2),LBP(8,2)=117。
5 雙線性插值計(jì)算灰度值
圖6 計(jì)算LBP(8,2)的值
首先在MATLAB 中通過rbg2grey 函數(shù)將彩色圖像轉(zhuǎn)化為灰度圖像。其次利用圓形鄰域的LBP(8,2)算子,逐一掃描圖像,得出每一個(gè)像素點(diǎn)的LBP(8,2)值。最后生成LBP 圖,結(jié)果如圖7。
在實(shí)驗(yàn)中,把LBP 值(0~255)平均分成32 個(gè)區(qū)間,求出查詢圖像中LBP 值落在每個(gè)區(qū)間的頻數(shù),得到LBP 直方圖如圖8,完成紋理特征的提取。
圖7 實(shí)驗(yàn)得到LBP 圖
圖8 LBP 直方圖
圖像顏色特征和紋理特征提取之后,接下來的問題是如何將這兩特征融合計(jì)算特征相似度。本文在結(jié)合兩特征相似度時(shí),采用加權(quán)平均的方法。
由于兩種特征最后都形成特征直方圖,所以兩種特征在計(jì)算相似度的時(shí)候,采用相同的度量方法。查詢圖像經(jīng)過特征提取獲得特征向量X 為32 維,圖庫中第k 個(gè)圖像經(jīng)過特征提取得到32 維的特征向量Y。則二者的距離公式為
分別求出查詢圖像與圖庫中圖像的相似度距離dk(k=1,2,3,…,n),再將所有距離分別除以最大距離,得到最終的特征距離Dk=(k=1,2,…,n),距離Dk為一組0~1 之間的一維組數(shù),用Dk來衡量圖像特征相似度。為了好區(qū)別顏色與紋理特征相似度,記為圖庫中第k 個(gè)圖像與查詢圖像的顏色特征距離為圖庫中第k 個(gè)圖像與查詢圖像的紋理特征距離。采用加權(quán)平均來融合顏色和紋理的特征距離,最終圖庫中第k 個(gè)圖像與查詢圖像的距離為
式中,wc為顏色特征的權(quán)值,wt為紋理特征的權(quán)值,且wc+wt=1,經(jīng)過距離計(jì)算得到Sk是0~1 之間的數(shù),Sk越小越相似,Sk=0 所對應(yīng)的圖像為查詢圖像,Sk=1 為與查詢圖像最不相似的圖像。根據(jù)Sk從小到大排序輸出查詢結(jié)果。
首先,為了驗(yàn)證檢索算法的可行性,在MATLAB7.11.0(R2010b)中,采用融合矢量量化和LBP 的檢索算法對金針花進(jìn)行檢索仿真,實(shí)驗(yàn)結(jié)果如圖9 所示。
圖9 實(shí)驗(yàn)結(jié)果
其次,為了驗(yàn)證算法檢索的精準(zhǔn)度,實(shí)驗(yàn)對植物、動(dòng)物、風(fēng)景分別進(jìn)行檢索。為了達(dá)到算法性能評價(jià)的可靠性,植物類選取了花100 幅圖片(其中花的種類不同、形狀不同、顏色不同),動(dòng)物類同樣選取了100 幅圖片,風(fēng)景類也選取了100 幅圖片進(jìn)行檢索。通過改變顏色特征權(quán)值wc和紋理特征權(quán)值wt,統(tǒng)計(jì)出各類圖片的查準(zhǔn)率,計(jì)算出整體平均查準(zhǔn)率。平均查準(zhǔn)率(Averprecision)計(jì)算公式為
實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)數(shù)據(jù)見表1。
由表1 數(shù)據(jù)可見,當(dāng)顏色特征與紋理特征比重相等即wc=wt=0.5 時(shí),平均查準(zhǔn)率達(dá)到最高為0.86。
最后,為了驗(yàn)證算法的檢索性能,將本算法與傳統(tǒng)顏色直方圖算法和文獻(xiàn)[13]檢索算法進(jìn)行對比,通過計(jì)算查全率和查準(zhǔn)率,繪制曲線如圖10 所示,顯然本算法要優(yōu)于其他兩種算法。原因:1)顏色特征提取采用矢量量化算法,在量化時(shí)按照查詢圖像來生成碼書,在檢索不同的圖像時(shí),查詢圖像碼書是按照查詢圖像變化而變化的,提取出的顏色特征更能體現(xiàn)出查詢圖像本身存在的顏色信息;2)紋理提取采用LBP 算法,通過雙線性插值確定LBP 值;3)本算法融合了顏色和紋理特征,彌補(bǔ)依靠單一特征來檢索圖像的不足。
表1 平均查全率
圖10 平均檢索性能比較
本文針對圖像檢索,提出了基于矢量量化與LBP 的圖像檢索算法。本算法通過矢量量化,根據(jù)檢索圖像來形成檢索碼書,能夠很好地保留圖像的顏色信息,融合LBP 算法完成紋理特征,彌補(bǔ)顏色特征忽略空間分布不足。在MATLAB 7.11.0(R2010b)中仿真本算法,實(shí)驗(yàn)結(jié)果表明本算法的查準(zhǔn)率和查全率遠(yuǎn)高于單一的基于顏色的圖像檢索算法,同時(shí),證明了本算法的可行性和可靠性。
[1]葉佳.彩色圖像的超復(fù)數(shù)整體檢索和客觀質(zhì)量評估的研究[D].上海:復(fù)旦大學(xué),2007.
[2]邱芹軍,譚家政,蔡大偉,等.基于多特征融合的圖像檢索算法[J].三峽大學(xué)學(xué)報(bào):自然科學(xué)版,2014,36(1):94-98.
[3]舒彬,王軍鋒,陳惠惠,等.基于小波變換的圖像檢索算法[J].計(jì)算機(jī)工程,2011,37(3):236-240.
[4]任國貞,江濤.基于灰度共生矩陣的紋理提取方法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(11):190-192.
[5]尚燕,安濤,李春明.一種改進(jìn)的抗噪和旋轉(zhuǎn)不變紋理圖像分類算法[J].電視技術(shù),2013,37(9):38-41.
[6]趙晨煒.基于模糊聚類的彩色圖像分割方法的研究[D].武漢:武漢理工大學(xué),2012.
[7]鄭美珠,趙景秀.基于區(qū)域一致性測度的彩色圖像邊緣檢測[J].計(jì)算機(jī)應(yīng)用,2011,31(9):2485-2488.
[8]陳倩.基于遺傳LBG 的圖像矢量量化改進(jìn)算法[J].計(jì)算機(jī)科學(xué),2012,39(7):280-281.
[9]許元飛.基于紋理的圖像檢索算法研究[J].西安科技大學(xué)學(xué)報(bào),2013,33(7):470-474.
[10]肖鵬,徐軍,陳少?zèng)_.紋理特征提取方法[J].電子科技,2010,23(6):49-51.
[11]李菊,余燁,戴歡,等.基于顏色和LBP 多特征的meanshift 的跟蹤算法[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2014,37(5):578-581.
[12]HEUSCH G,RODRIGUEZ Y,MARCEL S.Local binary patterns as an image preprocessing for face authentication[C]//Proc. FGR 2006.[S.l.]:IEEE Press,2006:9-14.
[13]李雪艷,冀小平.基于分塊顏色特征和相關(guān)反饋的圖像檢索技術(shù)[J].電視技術(shù),2013,37(7):29-32.