天天看點

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

0 引言

随着多媒體技術與網絡技術的發展, 基于内容的圖像檢索(Content-Based Image Retrieval, CBIR) 技術作為資訊檢索技術重要的一部分, 成為國際國内的研究熱點,其主要利用圖像的視覺特征如顔色、紋理、形狀和空間關系等搜尋圖像庫中與待查詢圖像相似的圖像,顔色是圖像最底層、最顯著的特

征,形狀是彩色圖像最穩定的特征,其不受亮度等環境變化的影響。

CBIR算法主要考慮的是待查詢圖像與圖像庫中圖像的相似度, 但是有時候卻忽略了圖像庫中已存在圖像之間的相似性, 如果利用聚類算法将圖像庫中的圖像聚類, 使得檢索過程在類心或某一類内進行, 就會降低圖像檢索的空間, 提高檢索的速度。聚類算法在圖像檢索領域中有廣泛的應用, K-means算法應用最廣,其優點是通用、聚類速度快,保證以二次收斂的速度終止,但缺點是終止于一個局部最小值,對初始類心依賴性強,導緻檢索結果不穩定。近幾年,出現了許多基于K-means算法的圖像檢索算法 。文獻主要提出了平均面積直方圖的概念, 然後基于圖像密度函數确定初始聚類中心, 按照K-means思想疊代優化, 對特征提取方法的改進提高了檢索的準确性, 但是初始類心的确定方式使得算法的時間複雜度較大。文獻針對K-means随機選取初始值導緻聚類結果不穩定的特點,根據特征距離累加和最大選取初始聚類中心,保證了檢索結果的穩定性,提高了檢索的準确性,但是檢索的效果從絕對意義上來說還有待提高。文獻提出了基于區域分割的方法, 利用K-means算法對像素進行聚類進而形成基于局部的特征資訊, 然後利用分層聚類算法将相似的物體特征進行聚類,取代了傳統的基于圖像整體資訊的聚類,但是基于像素的處理,以及算法的疊代特性,導緻其時間複雜度較大,提取基于局部的特征資訊的時候資訊丢失量較大,檢索精度有待提高。以上算法還有不足,顔色直方圖資訊丢失量大,特征提取效果較差,而且僅僅通過單一的圖像特征難以有效全面地描述圖像内容資訊和

獲得理想的圖像檢索性能, K-means算法隻是考慮了同一類圖像的相似性, 并沒有考慮不同圖像的差異性, 導緻其沒有更好的檢索效果。

鑒于上述情況,本文提出了綜合顔色和形狀特征的圖像檢索算法,利用改進的顔色聚合向量提取顔色特征,着重考慮了顔色空間的分布資訊,利用Hu不變矩的改進算法提取圖像的形狀特征,着重考慮了圖像中物體的形狀資訊,該算法基于貢獻度聚類且建立綜合特征索引庫,減少對圖像庫的通路次數,其疊代特性保證了較低的時間雜性。

1 顔色量化

在圖像檢索領域,顔色空間需要壓縮進而通過一種更緊湊的方式描述,即對顔色空間進行量化,在不改變主觀感受的情況下減小存儲量并能提高處理速度。HSV空間能較好地反映人眼對顔色的感覺和鑒别能力, 非常适合基于顔色的圖像相似比較。

首先将RGB顔色轉換為HSV, 然後進行量化。人眼對顔色的色調(H) 非常敏感, 主要描述圖像的顔色特征, 色調獨立于觀察點, 是以要細量化。亮度(V) 反

映了圖像的形狀特征, 不依賴于圖像的顔色資訊, 是以量化不能太粗。根據HSV顔色空間的特性作以下非均勻量化, 共獲得2+12*6×2=146種顔色。

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

量化之後利用公式Q=2+12H+6S+V對顔色進行編碼, 編碼範圍為0~145, V<0.1的顔色為黑色, 編碼為0, s<0.2且v>0.9的顔色為白色, 編碼為1。利用此方法對顔色量化易于計算、符合人眼視覺、減少顔色備援、失真小, 如圖1所示。

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

圖1 量化前後對比

2顔色特征

Pass等[13] 提出了顔色聚合向量(Color Coherence Vector, CCV) , 彌補了顔色直方圖無法表達顔色分布空間位置[14] 的缺點, 主要是基于像素的空間關系将直方圖的每個顔色簇劃分為聚合和非聚合兩部分,如果一個連通區域的像素個數超出了門檻值T,則認為該區域的像素是聚合的,否則将被判為非聚合的。整幅圖像的像素個數N和門檻值t的關系一般為:T=0.01N[13]。基于對顔色分布的空間資訊的重視, 改進的顔色聚合向量(Improved Color Coherence Vector, ICCV) 算法考慮到聚合像素所處的連通區域以及非聚合像素所處的非連通區域,對顔色Qk作4-連通标記處理,根據門檻值找到其連通域個數c(Qk)、非聯通域個數n(Qk)以及聚合數目ak、非聚合數目βk,則Qk的平均聚合數目為M。(Qk)=ak/(c(Qk)N),平均非聚合數目為Mn(Qk)=Bk/(n(Qk)N),為了使其不受圖像尺度變化的影響,對其作了歸一化處理。如果c(Qk)=0或n(Qk)=0, 則M。(Qk) =0或Mn(Qk) =0, 圖像的ICCV為:(Qk, Mc(Qk) , Mn(Qk) ) , 其中k=1, 2, …, 146, Qk=0, 1, …, 145, 是以可以用146維的向量來表示一幅圖像的顔色特征。如圖2所示,黑色代表量化之後編碼值為Qk的像素,設門檻值為3,則ak都為12,c(Qk)分别為4、1、2,βk都為4,n(Qk)分别為4、2、3,得到M。(Qk)分别為12/(4N) 、12/N、12/(2N) , Mn(Qk) 分别為4/(4N) 、4/(2N) 、4/(3N) , 是以ICCV分别為(Qk, 12/(4N) , 4/(4N) ) 、(Qk, 12/N, 4/(2N) ) 、(Qk,12/(2N),4/(3N) ) 。如果用顔色直方圖表示都為(Qk, 16/N) , 用CCV表示都為(Qk, 12/N, 4/(N) ) 。但是可以看到三幅圖像完全不同, 是以ICCV的表示更加準确。

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

圖2 三種圖像樣圖

3 形狀特征

3.1不變矩

矩是對圖像的一種統計形式, 可以從全局描述整個對象的整體特性, 矩不變量的表示形式很多, 如Legendre矩、Zernike矩、僞Zernike矩等。在圖像進行中,幾何不變矩可以作為一個重要的特征來表示物體,可以據此特征來對圖像進行分類等操作,本文用改進的Hu不變矩方法[15]提取圖像的形狀特征,不變矩的主要思想是使用對變換不敏感的基于區域的幾個矩作為形狀特征,對于一幅圖像F(x,y),F(x,y)為點(x,y)的灰階值,它的階矩定義為:

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

如果将圖像的灰階值看作是一個二維或三維的密度分布函數, 那麼矩方法即可用于圖像分析領域并用作圖像特征的提取。最常用的, 物體的零階矩表示了圖像的“品質”:M0, 0=∫∫F (x, y) dxdy, 一階矩 (M0, 1, M1, 0) 用于确定圖像質心 (xc, yc) ;若将坐标原點移至xc和yc處, 就得到了對于圖像位移不變的p+q階中心矩up, q:

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

其中:xc=m1, 0/m0, 0, yc=m0, 1/m0, 0, F (x, y) 規格化的中心矩可以表示為ηp, q=μp, q/μ0γ, 0, 其中γ= (p+q+2) /2, p+q=2, 3, …, 将歸一化的二階矩和三階矩組合得到7個經典的對平移、旋轉和尺度變化的不變矩, 如式 (3) 所示:

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

由于圖像大小會影響不變矩的特征值, 是以在提取之前應該将圖像庫中的圖像尺寸規範化為相同尺寸。計算Hu不變矩特征量的過程如圖3所示。

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

圖3 圖像Hu不變矩提取流程

為了提高圖像檢索的準确度, 文獻[15]參照不變矩定義了圖像的離心率特征量e, 如式 (4) 所示:

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

離心率特征e表示了圖像的最大軸方向與最小軸方向的比率,同樣也滿足物體仿射(平移、旋轉、尺度)不變性。将不變矩特征量中個~中7和離心率e合并,就形成了圖像的全局形狀特征(中1,中2,中3,中4,P5,中6,中7,e)。

3.2 形狀特征歸一化

全局形狀特征矢量中各個元素的幅度值都是不一樣的,由此将會使得圖像的相似性比對的結果出現誤差,形狀特征的歸一化的目的就是對該誤差進行修正。文獻[16]提到了對7個不變矩的歸一化處理,利用其思想,如果用(A1,A2,…,AM)來表示圖像庫中的M幅圖像,就獲得了M行8列的圖像特征矩陣A=a,j,矩陣的每列相對應的是長度為M的特征序列,求得其标準差和均值分别是oj、uj,在這裡,a,j表示的是第i幅圖像當中的第j個形狀特征元素,利用式(5)對圖像的形狀特征矢量進行高斯歸一化處理。

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

4 圖像的綜合特征

已經得到了圖像的顔色特征和形狀特征,因為要對圖像進行聚類,減少圖像庫的通路次數,将求得的146維的顔色聚合向量與8維的形狀特征混合形成154維的綜合特征(m1,m2,m3,…,m154),表示一幅圖像的綜合特征,為了友善計算以及說明,将這8維的形狀特征分别看作第147個編碼值到154個編碼值的縱坐标分量,如果圖像庫中有M幅圖像,則可用下列矩陣表示整個圖像庫:

【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】
【圖像檢索】基于matlab GUI綜合顔色和形狀特征圖像檢索【含Matlab源碼 395期】

1 matlab版本

2014a

2 參考文獻

[1] 蔡利梅.MATLAB圖像處理——理論、算法與執行個體分析[M].清華大學出版社,2020.

[2]楊丹,趙海濱,龍哲.MATLAB圖像處理執行個體詳解[M].清華大學出版社,2013.

[3]周品.MATLAB圖像處理與圖形使用者界面設計[M].清華大學出版社,2013.

[4]劉成龍.精通MATLAB圖像處理[M].清華大學出版社,2015.