凌 曼,齊保峰,王先傳,陳秀明,劉爭艷
(阜陽師范大學 計算機與信息工程學院,安徽 阜陽 236037)
圖像哈希算法是多媒體內容安全領域研究的一項熱門課題,現(xiàn)如今已經應用到了很多方面,比如圖像篡改檢測、圖像拷貝檢測、數(shù)字水印、圖像取證等[1]。它可以將任意一幅圖像映射成一串短小的字符序列或者數(shù)字。在實際的應用過程中,可以用哈希序列去表示圖像信息,從而實現(xiàn)高效處理。圖像哈希的一個重要特性是對于視覺內容相似的圖像,哈希函數(shù)生成的哈希值相同或相似,又叫做魯棒性。而對于視覺內容不同的圖像,哈希函數(shù)生成的哈希值將完全不同,這一特性又叫做唯一性。
近年來,研究人員也提出了許多圖像哈希的算法。例如,Tang 等人[2]提出了利用顏色向量角(Color Vector Angle,CVA)和局部線性嵌入(Local Linear Embedding,LLE)來提取圖像哈希,該算法對大角度旋轉穩(wěn)健性仍然有待提高;Qin 等人[3]提出使用混合特征來提取圖像哈希,該算法具有較好的穩(wěn)健性,但是唯一性有待提高;Huang 等人[4]設計了一種新的基于隨機游走的圖像哈希算法,在針對云端存儲的醫(yī)學密文圖像安全檢索問題上,該算法的運算速度很快,但唯一性提升的空間;張等人[5]提出了利用離散小波變換(Discrete Wavelet Transform,DWT)的感知哈希檢索算法;Tang 等人[6]利用隨機Gabor 濾波器和DWT 提取圖像特征的魯棒哈希算法,該算法的分類性能和運算速度均優(yōu)于常見的基于DWT 的哈希算法;Ghouti[7]設計了一種基于四元數(shù)奇異值分解(Quatemion-Singular Value Decomposition,Q-SVD)的彩色圖像哈希算法,該算法對旋轉的穩(wěn)健性有待提高;Shen 和Zhao 等[8]提出了一種基于局部特征和全局特征的圖像哈希算法;Hamid 等人[9]設計了一種拉普拉斯金字塔R 的魯棒圖像哈希算法,該算法的分類性能較好;Tang 等人[10]還提出了一種具有低秩表示(Low-Rank Representation,LRR)和環(huán)分區(qū)的新穎圖像哈希算法,該算法對大角度旋轉具有較好的穩(wěn)健性。
本文提出了一種基于Itti 視覺顯著模型和局部線性嵌入(LLE)的圖像哈希算法。首先利用Itti模型在圖像空域上進行計算,可以識別圖像的顯著區(qū)域,并提取該圖像的視覺顯著圖。然后用提取的視覺顯著圖構造二次圖像,接著對二次圖像使用LLE 算法,LLE 算法可以緊湊的表示數(shù)據(jù)之間的關系,最后對降維后的數(shù)據(jù),求取方差作為哈希值。用L2 范數(shù)來作為哈希相似度的衡量標準。利用公開的數(shù)據(jù)集去驗證該算法的性能,實驗表明該算法可以抵抗常見的數(shù)據(jù)操作,并且具有較好的唯一性,分類性能也優(yōu)于某些文獻算法。
Itti 視覺顯著模型[11,12]是一種用于檢測圖像視覺顯著區(qū)域的計算模型,是根據(jù)靈長類動物的視覺神經系統(tǒng)所設計的視覺注意模型。該模型是用高斯采樣方法構建圖像的亮度金字塔、顏色金字塔和方向金字塔,然后用中央-周邊差算子分解這三類金字塔,得到亮度、顏色和方向的特征圖,最后通過多尺度融合歸一化技術可獲得亮度、顏色和方向的顯著圖,再將這些顯著圖相加得到最終的視覺顯著圖。下面將詳細介紹Itti 視覺顯著模型的關鍵步驟。
高斯金字塔分解的第一步是對圖像進行高斯低通濾波處理,然后再隔行隔列進行采樣操作。高斯金字塔分解圖像具體公式如下。
其中,σ∈{0,1,…,8}表示金字塔的層數(shù)(尺度)。
Itti 視覺顯著模型中,圖像亮度主要通過計算圖像的紅、綠和藍這三個分量的平均值得到的,具體公式如下:
其中,R、G 和B 代表了紅、綠、藍三種顏色分量,亮度顯著圖可以通過中央-周邊差(C-S)運算得到。該運算公式如下:
其中,I(c)和I(s)分別代表細尺度圖像和粗尺度圖像,Θ 代表中央-周邊差運算,表示將兩個圖像調節(jié)至相同尺寸后,對其做矩陣減法操作,s 表示周邊,c∈{2,3,4}表示中央部分,δ∈{3,4}。通過上述計算可產生6 幅亮度特征圖,融合這6 幅亮度特征圖,形成亮度顯著圖,具體公式如下:
其中,Ic是方向顯著圖,⊕是將多個圖像調整到同一尺寸后相加的操作,N()則是一種標準化操作,具體在文獻[11,12]中有詳細討論。
Itti 模型中,顏色顯著圖是將不同尺度差下的顏色特征圖進行融合得到的。因此需要計算出原圖像的顏色信息,公式如下:
其中,R、G 和B 分別代表紅、綠、藍三種顏色分量,R'、G'、B'、Y 分別代表紅、綠、藍、黃的顏色高斯金字塔。接著在上式基礎上,分別計算出不同尺度差下的紅-綠顏色顯著圖和藍-黃顏色顯著圖,具體公式如下:
其中,s=c+δ,c∈{2,3,4},δ∈{3,4}。R'(s) 和R'(c)分別是紅色分量的周邊尺度和中央的特征圖,G'(s)和G'(c)分別是綠色分量的周邊尺度和中央的特征圖,B'(s)和B'(c)分別是藍色分量的周邊尺度和中央的特征圖,RG(c,s)是紅-綠顏色特征圖,藍-黃顏色特征圖。
通過上述計算可得到12 幅顏色特征圖,融合12 幅特征圖,形成顏色顯著圖,公式如下:
其中,Cc是顏色顯著圖。
在Itti 模型中,利用不同方向的Gabor 金字塔來確定圖像方向。由于Gabor 核具有方向性,選取00、450、900和1350四個方向的Gabor 核。對每個方向的Gabor 核,處理公式(2)中的圖像I,可產生一個Gabor 金字塔,4 個方向就產生4 個Gabor金字塔。用O(σ,θ) 表示Gabor 金字塔的圖像,σ∈{0,1,…,8},具體計算公式如下:
其中,θ表示方向,θ∈{0°,45°,90°,135°},c、s和θ為參數(shù),其中s=c+δ,c∈{2,3,4},δ∈{3,4}。通過操作算子Θ 的作用,得到方向特征圖。因為有4 個Gabor 金字塔,所以可以產生24 個方向特征圖,對它們進行線性融合,可得到最終的方向顯著圖,公式如下:
其中,Oc是方向顯著圖。
得到亮度、顏色和方向的顯著圖以后,將這三個顯著圖疊加可得到最終的Itti 視覺顯著圖,計算公式如下:
其中,Ic、Cc和Oc分別代表亮度顯著圖、顏色顯著圖和方向顯著圖,S 為最終的視覺顯著圖。
本文哈希算法主要可分為三個步驟,如圖1所示。首先對輸入的圖像進行預處理,利用Itti 視覺顯著模型提取該圖像的視覺顯著圖,然后對提取的顯著圖構造二次圖像,最后對二次圖像使用LLE 算法,求取方差作為哈希值。下面將分別介紹每個部分的詳細過程。
圖1 本文哈希算法示意圖
為了保證不同尺寸圖像所提取的哈希長度相同,得到規(guī)范化圖像,需對圖像進行預處理。首先對輸入圖像使用雙三次插值法將圖像調整為大小是M×M 的圖像。然后對調整后的圖像進行高斯低通濾波,以減輕噪聲干擾等對哈希帶來影響。高斯低通濾波可以用卷積模板實現(xiàn)。設是模板的第i 行第j 列,具體計算公式如下:
其中,σ是所有模板元素的標準差。接著對預處理后的圖像運用上文中所提及的Itti 視覺顯著模型去計算圖像的視覺顯著區(qū)域,并將提取出的視覺顯著圖記為L。
為了構造適合數(shù)據(jù)降維的圖像,首先對提取的視覺顯著圖L 進行非重疊分塊,分塊的大小為m×m,因此一共有n=(L/m)2個圖像塊,接著對每個圖像塊進行Z 字形掃描[13],每一個圖像塊掃描后將得到的高維向量m2×1,假設是第i 個圖像塊的高維向量,其中1 ≤i≤n,逐一排列每個高維向量,最終得到二次圖像X。圖2 是構造二次圖像示意圖。
圖2 構造二次圖像示意圖
局部線性嵌入(LLE)是一種非線性的降維方法,在降維時保持了樣本的局部線性特征,通過相互重疊的局部鄰域來提供整體的信息,從而保持整體的幾何性質。與傳統(tǒng)的主成分分析(PCA)等方法相比,LLE 表現(xiàn)出更好的性能,已經廣泛應用到高維數(shù)據(jù)可視化、圖像識別[14]、影音認證[15]等領域。圖3 為LLE 算法降維的一個實例圖。其中(a)是高維空間的數(shù)據(jù),(b)是從(a)中提取的樣本點,(c)為低維空間數(shù)據(jù)表示。從圖3 可以看出,在LLE 降維過程中,能夠保持高維的結構特征不變。
圖3 LLE 算法降維示例圖
LLE 的算法[16]思想主要分為三個步驟。首先是對鄰接點進行選擇,接著構造權重矩陣,最后計算低維嵌入向量。詳細計算步驟如下。
第一步,對鄰接點進行選擇。假設給定的數(shù)據(jù)集X=(x1,x2,…,xN),xi∈RD,找到和xi臨近的k(k 第二步,構造權重矩陣。計算權重矩陣W=(Wi,j)N×K權重矩陣是xi的k 個最鄰近點重構得到的,其公式如下。 其中,Wi,j是xi與xj之間的權重。為了更好研究,在計算W 時,所有xi鄰近點之和為1,=1,保證了重構與坐標的平移、縮放和旋轉等無關。 第三步,計算低維嵌入向量。通過得到的權值矩陣,每個高維向量xi都會被映射成低維向量yi,具體公式如下。 其中,Φ(Y)是損失函數(shù)值,Y=[y1,y2,…,yN]是低維向量所形成的矩陣,yj(j=1,2,…k)為yi的k個鄰近點,并且滿足以下公式。 其中,I 是一個m×m的單位矩陣。 運用上述LLE 算法對二次圖像X 進行數(shù)據(jù)降維處理得到矩陣Y=[y1,y2,…,yn],并且計算yi的統(tǒng)計特征,用來構造圖像哈希序列。本文算法選取方差作為LLL 向量的統(tǒng)計特征[17],具體定義如下: 其中,yi(l)是yi的第l個元素,ui是均值。 最后將方差化為整數(shù)記為H,具體公式如下: 其中,Round()表示取整操作,1≤i ≤n。 設H1和H2是兩幅圖像的哈希,它們的第i 個元素記為H1(i)和H2(i),為了判斷相似性,選用L2范數(shù)作為衡量標準,其中D(H1,H2)是兩幅圖像的L2 范數(shù),定義如下: 一般來說,L2 范數(shù)越小,哈希序列越相似,相應的圖像越相似。如果D>T(預先定義的閾值),則輸入圖像被認為是視覺上不相同的圖像。否則,它們是相同的圖像。 本文實驗的參數(shù)設置如下:圖像尺寸調整為256×256,高斯低通濾波卷積模板為3×3,標準差為1,非重疊分塊大小為32×32。LLE 算法中,每個向量選取15 個鄰近點,維度為40。即M=256,m=32,k=15,n=40。因此哈希長度H=64。下面分別討論魯棒性、唯一性和哈希算法的性能比較。 本文采用柯達彩色圖像集[18]來驗證算法的魯棒性。該數(shù)據(jù)集包含了24 幅彩色圖像,為了得到用于魯棒性測試的視覺相似圖像,利用StirMark、MATLAB 和Photoshop 工具來對24 幅圖像進行常見的數(shù)據(jù)操作,如亮度調節(jié)、伽馬校正、…、圖像旋轉等,每幅測試圖像可得到64 幅視覺相似圖像。分別提取每一幅圖像和它的視覺相似圖像的哈希值,然后計算L2 范數(shù),具體結果如圖4 所示。從圖中可以看出,L2 范數(shù)均值都不超過200,因此如果選擇閾值T=200,本文哈希算法可以抵抗大多數(shù)魯棒性攻擊。 圖4 不同魯棒性攻擊的測試結果 為了測試本文哈希算法的唯一性,選用UCID[19]包含1338 幅真彩色圖像。應用本文算法提取數(shù)據(jù)庫中1338 幅彩色圖像的哈希值,接著用L2 范數(shù)去計算每對哈希之間的相似度,這些范數(shù)分布的結果如圖5 所示,中x 軸是L2 范數(shù),y軸是其頻率。最大L2 范數(shù)是512.38,最小L2 范數(shù)是190.39。所有的L2 范數(shù)平均值是331.27,標準差是34.85。如果選擇閾值T=200,此時只有0.00559%的不同圖像被誤判成相同圖像。 圖5 不同圖像之間的哈希距離分布 將本文算法與基于混合特征的哈希算法[3]、基于隨機Gabor 濾波和DWT 的圖像哈希算法[6]和基于視覺模型的低秩圖像哈希算法[10]進行實驗比較。實驗數(shù)據(jù)集采用3.1 節(jié)和3.2 節(jié)的測試圖像庫,為確保公平,所有圖像大小均調整為256×256,再進行哈希計算。同時,仍然采用文獻算法的相似性度量來計算它們的哈希距離,即基于混合特征的哈希算法[3(]Hybrid feature)、基于隨機Gabor濾波和DWT的圖像哈希算法[6(]Gabor-Dwt)和基于低秩表示和環(huán)分區(qū)圖像哈希算法[10](Lrr-Ring)都是使用L2 范數(shù)。實驗用接收機操作特性(ROC)曲線[20]來分析上述對比算法的分類性能,即分別計算它們的正確率PTPR和誤判率PFPR。 其中,nT是相似圖像的正確判斷數(shù),N1是相似圖像的總數(shù),nF是不同圖像的誤判數(shù),N2是不同圖像的總數(shù)。PTPR和PFPR分別描述魯棒性和唯一性,在ROC 圖中,x 軸是PFPR,y 軸是PTPR,越靠近左上角的ROC 曲線,對應的哈希算法分類性能就越好。圖6 列出了本文和其他三種哈希算法的ROC 曲線,可以發(fā)現(xiàn)本文算法的ROC 曲線更靠近左上角,說明本文的哈希算法的魯棒性和唯一性之間的分類性能優(yōu)于Hybrid feature 算法[3]、Gabor-Dwt 算法[6]和Lrr-Ring 算法[10]。 圖6 不同的哈希算法的ROC 曲線 本文設計了一種基于Itti 視覺顯著模型和LLE 的圖像哈希算法。首先利用Itti 視覺顯著模型提取圖像的視覺顯著圖,提高了算法的魯棒性,然后用提取的顯著圖構造二次圖像,接著用LLE算法進行降維處理,最后取方差作為哈希值,可確保本文算法在擁有唯一性的同時將哈希長度縮短。利用公開的數(shù)據(jù)集去驗證該算法的性能,實驗表明該算法在魯棒性和唯一性之間達到良好的平衡,其分類性能也優(yōu)于某些文獻算法。接下來的工作中,將計劃擴大數(shù)據(jù)集設計基于深度學習的哈希算法。2.4 哈希相似度計算
3 實驗結果及分析
3.1 魯棒性
3.2 唯一性
3.3 算法性能比較
4 結語