王彥超
(平頂山教育學(xué)院 計算機系,河南 平頂山 467000)
隨著計算機技術(shù)的快速升級,使得市場上出現(xiàn)了越來越多的圖像編輯工具,攻擊者通過這些工具,可隨意地改變圖像內(nèi)容,并且無視覺篡改痕跡,導(dǎo)致用戶無法辨別圖像的真?zhèn)?,對其信息安全帶來了巨大?fù)面影響[1,2]。為此,為了實現(xiàn)對用戶接收圖像的內(nèi)容進行真?zhèn)闻袆e,學(xué)者們提出了相應(yīng)的圖像哈希算法[3,4]。如唐振軍等[5]提出了基于PCA特征距離的圖像哈希算法,通過預(yù)處理與分塊隨機組合處理,獲取二次圖像,再利用PCA技術(shù),對二次圖像進行壓縮與量化處理,獲取低維哈希序列。雖然該技術(shù)能夠降低哈希序列的空間維數(shù),但分塊隨機組合處理無法提取圖像的魯棒特征,使得哈希序列的敏感性與安全性不佳,尤其是難以識別旋轉(zhuǎn)幾何變換攻擊。王彥超等[6]提出了基于數(shù)據(jù)投影降維機制與對稱局部二值模式的緊湊圖像哈希算法,通過設(shè)計對稱局部二值模式,來提取圖像的魯棒特征,通過相應(yīng)的量化函數(shù),獲取緊湊哈希序列,但稱局部二值模式忽略了圖像像素內(nèi)在的空間關(guān)系,使其描述能力不足,無法充分獲取魯棒特征,使其哈希魯棒性不佳。Tang等[7]提出了基于顏色矢量角度與Canny檢測算法的圖像哈希技術(shù),通過插值技術(shù)與低通濾波預(yù)處理圖像,并從預(yù)處理圖像中提取顏色矢量角度與邊緣特征,通過組合二者,輸出哈希序列。然而,該技術(shù)直接利用提取的顏色矢量角度與邊緣特征來生成哈希,使其空間維數(shù)較高,且Canny檢測算法的穩(wěn)定不佳,易獲取偽特征,降低了哈希序列的魯棒性。
針對上述問題,本文提出了基于塊截斷編碼與鄰域空間LBP算子的魯棒圖像哈希算法來改善哈希序列的敏感性與魯棒性。利用插值技術(shù)與Gaussian低通濾波來預(yù)處理圖像,以規(guī)范圖像尺寸,使其對縮放、噪聲攻擊具有理想的魯棒性;基奇異值分解SVD(singular value decomposition)機制,獲取二次圖像;利用塊截斷編碼機制處理二次圖像,獲取高、低電平矩陣以及二值量化圖像。設(shè)計鄰域空間LBP算子,提取二值量化圖像的魯棒特征,輸出特征矩陣。構(gòu)造量化函數(shù),對高、低電平矩陣進行壓縮,輸出緊湊二值序列;引入主成分分析處理特征矩陣,形成二值特征序列。通過組合高、低電平矩陣,以及特征矩陣3個對應(yīng)的二值序列,獲取圖像哈希。最后,測試了所提哈希機制的魯棒性與ROC特性。
塊截斷編碼[8]主要是用于壓縮圖像,通過將初始圖像分割為非重疊子塊,對于每個子塊,利用塊截斷編碼處理后,初始圖像被編碼為二進制位圖與兩個均值,其主要步驟如下:
(1)令輸入圖像為f0(x,y),其尺寸為M×N;將其分割為非重疊子塊Zi,其尺寸為k×k(k值一般取4或8)。最后,計算每個Zi的像素均值X
(1)
式中:xij代表第i個子塊中位于(i,j)處的像素值;m×n像素的極限位置;X為子塊的像素均值。
(2)根據(jù)式(1)計算,得到子塊的像素均值X,將子塊中的所有像素劃分為兩類:C0,C1。其中,C0為像素值低于均值X的像素所構(gòu)成的集合;C1代表像素值大于均值X的像素所構(gòu)成的集合。通過對C0,C1中的像素賦值0或者1,從而可得到位圖BM。也就是當(dāng)子塊像素值大于均值X時,其對應(yīng)的BM值為1,形成C1;反之,則為0,獲取C0。位圖BM如下
(2)
式中:bij為二進制位圖BM中的(i,j)位。
(3)根據(jù)每個二值子塊的像素均值X與標(biāo)準(zhǔn)差σ,計算其重構(gòu)電平αij,βij,以復(fù)原圖像
(3)
(4)
其中,nij為子塊中的像素數(shù)量;σij子塊中的像素標(biāo)差;k2為子塊尺寸。
在執(zhí)行塊截斷編碼過程中,利用重構(gòu)電平αij,βij來替代子塊中的零值像素與其它像素值,從而產(chǎn)生一個與初始子塊視覺相同的編碼圖像塊。
(4)為了與式(3)、式(4)一致,其一階矩μij、二階矩vij需要與編碼圖像塊相同
k2×uij=(k2-nij)αij+nij×βij
(5)
(6)
其中,μij為一階矩;vij為二階矩。
根據(jù)上述描述可知,編碼二值子塊,以及重構(gòu)電平αij,βij能夠真實反映初始子塊的魯棒特征。為了詳細(xì)解釋塊截斷編碼機制,本文取k=4,也就是子塊的尺寸為4×4,其編碼過程如圖1所示。根據(jù)子塊像素值,可得到其均值X=115,標(biāo)準(zhǔn)方差σ=115。根據(jù)X,σ,對子塊進行編碼后,獲取位圖BM;同時,該子塊的像素數(shù)量為8,依據(jù)式(3)、式(4)可得,獲取低、高重建電平αij,βij分別為37,139。再利用αij=37、βij=139分別替代位圖BM中的零值、非零元素,輸出右邊的編碼圖像子塊。
圖1 塊截斷編碼過程
本文魯棒圖像哈希技術(shù)過程如圖2所示,主要有:①圖像預(yù)處理;②基于塊截斷編碼與鄰域空間LBP算子的魯棒特性提?。虎刍谥鞒煞址治龅木o湊哈希生成與認(rèn)證。
圖2 本文緊湊哈希算法過程
圖像預(yù)處理[9]時圖像哈希必不可少的過程,對于圖像的輸入圖像,能夠固定其尺寸,增強哈希序列對縮放的魯棒性能。為此,本文引入2D線性插值[10]、高斯低通濾波[11]以及奇異值分解[12],形成預(yù)處理機制,使其具有一個固定的哈希長度。其中,二維插值技術(shù)函數(shù)為[10]
(7)
(8)
其中,x0,x1是初始起點;y0,y1代表x0,x1的插值結(jié)果。
經(jīng)過式(7)、式(8)插值后,以規(guī)范圖像尺寸;再利用高斯低通濾波[11]來平滑插值圖像,增強哈希序列對噪聲的穩(wěn)健性,它主要是通過卷積掩模來實現(xiàn)。令G(i,j)是卷積掩模在坐標(biāo)(i,j)處的元素,其函數(shù)為[11]
(9)
式中:δ是卷積掩模中所有像素的標(biāo)準(zhǔn)差;M×M為圖像尺寸;(i,j)為像素坐標(biāo);e為指數(shù)函數(shù)。
初始圖像f0(x,y)經(jīng)過式(7)~式(9)處理后,獲取尺寸為M×M的平滑圖像f1(x,y),增強哈希所尺度與噪聲的魯棒性。隨后,對f1(x,y)完成分割處理,獲取一系列尺寸為k×k的非重疊子塊Bij(i,j=1,2…M/k)。 則f1(x,y) 變?yōu)?/p>
(10)
通過式(10),將平滑圖像f1(x,y)變?yōu)槿舾蓚€非重疊子塊Bij,以便于奇異值分解的計算。
為了改善哈希算法對JPEG壓縮、旋轉(zhuǎn)等攻擊的魯棒性,本文引入奇異值分解[12]SVD(singular value decomposition),充分利用奇異值的穩(wěn)定不變性來獲取視覺質(zhì)量較高,且魯棒性更強的二次圖像。SVD模型為
X=S·V·D
(11)
式中:S,D為輸入圖像X的k×k維正交矩陣;V為輸入圖像X的k×k維對角矩陣,包含k個奇異值。
再根據(jù)式(11)處理平滑圖像Bi,j,可得
Bi,j=Si,j·Vi,j·Di,j
(12)
式中:Si,j為輸入平滑圖像Bi,j的k×k維正交矩陣;Di,j是由平滑圖像Bi,j的k×k正交矩陣中;Vi,j是平滑圖像Bi,j的對角矩陣。
(13)
(14)
依據(jù)式(14),將預(yù)處理圖像演變?yōu)槎螆D像,有效增強其抗旋轉(zhuǎn)的能力,進一步改善哈希的魯棒性。
獲取二次圖像I后,需要從I中提取整個圖像的魯棒特征來生成哈希。為此,本文通過設(shè)計鄰域空間LBP算子,并聯(lián)合塊截斷編碼來實現(xiàn)此目的,其過程如圖3所示。
圖3 圖像魯棒特征的提取過程
首先,將二次圖像I分割為非重疊子塊,每個子塊的尺寸為k2×k2,用Fi,j來表示
(15)
式中:Fi,j為二次圖像I對應(yīng)的子塊。
(16)
(17)
根據(jù)塊截斷編碼機制,可輸出二次圖像I的3個矩陣L,H以及BM。隨后,本文在LBP(local binary pattern)算子[13]基礎(chǔ)上,考慮圖像像素內(nèi)在的空間關(guān)系,設(shè)計了鄰域空間LBP算子,提取位圖BM的魯棒特征。
LBP算子[13]具有較好地旋轉(zhuǎn)與灰度不變性,通常用來提取圖像特征。但是,LBP主要是考慮單個區(qū)域內(nèi)的特征,其模型為[12]
(18)
(19)
其中,S(x)是中心像素與其鄰域點的灰度差;gc為中心像素;gi是其它位置的像素;LBPR,P代表半徑為R,包含P個鄰域像素的LBP模式。常見的3種LBP算子如圖4所示。
圖4 不同尺度下的LBP算子
通過利用式(18),即可提取圖像的特征;但是,依據(jù)式(18)可知,當(dāng)鄰域像素數(shù)量P的不斷變化時,其可輸出2P種LBP模式;隨后,估算所有LBP的直方圖,將其視為LBP特征。但是,這種LBP算子沒有考慮圖像內(nèi)在的空間關(guān)系,使其對特征的描述能力不佳。
為此,本文將圖像的空間關(guān)系引入到式(18)中,設(shè)計了鄰域空間LBP算子。首先,任意選取兩個像素點p1,p2來估算二者與中心像素的偏差Dp1i,Dp2i
Dp1i=Ip1(gi)-Ip1(gc)
Dp2i=Ip1(gi)-Ip2(gc)
(20)
式中:Ip1(gi)為像素點p1中的第i個鄰域值;Ip1(gc),Ip2(gc)分別是像素p1,p2的中心鄰域值;Dp1i,Dp2i分別為p1,p2與中心像素gc的像素差值。
通過式(20)計算得到的Dp1i,Dp2i,再對二者進行對比,輸出相鄰像素的量化差值
(21)
為了與式(19)對應(yīng),需對式(21)進行分解
(22)
最后,基于式(18),對s1(p1i×p2i),s2(p1i×p2i) 進行編碼
(23)
通過組合式(23)的F1(p1i×p2),F2(p1×p2), 輸出過渡LBP算子LBP(p1×p2)。
最后,將空間內(nèi)在關(guān)系嵌入到LBP(p1×p2) 中,獲取鄰域空間LBP算子。為了充分利用相鄰區(qū)域的空間結(jié)構(gòu)特性,本文考慮圖像中2個相鄰的像素區(qū)域,其模式如圖5所示
P(r,Δ)=[LBP(c),LBP(c+Δ)]
(24)
式中:Δ為2個LBP中心像素點的距離;r為LBP的半徑;c是左側(cè)LBP中心位置。
圖5 不同(r,Δ)下的P(r,Δ)
再利用式(24)的鄰域空間LBP算子對位圖BM完成編碼后,輸出特征矩陣F′,充分提取位圖BM的魯棒特征,增強哈希序列的安全性。將圖6(a)作為樣本,基于鄰域空間LBP模式,提取的LBP特征圖像,如圖6(b)所示。根據(jù)測試結(jié)果可知,圖像的魯棒特征被充分檢測出來,消除了背景等偽特征。
圖6 圖像的魯棒特征提取
為了獲取緊湊的哈希序列,需要將低、高重構(gòu)電平矩陣L,H,以及特征矩陣F′進行壓縮。首先,將L,H分割為非重疊子塊,每個子塊的尺寸為k3×k3。再計算L,H中每個子塊的均值,則對于L,H,均能輸出(M/k2/k3)2個像素均值。并將這些均值進行升序排列,將其轉(zhuǎn)換為1D矢量
L={l1,l2,…l(M/k2/k3)2}
(25)
H={h1,h2,…h(huán)(M/k2/k3)2}
(26)
其中,li,hi——L,H中第i個像素均值。
隨后,通過設(shè)置閾值t,對式(25)、式(26)進行量化
接下來,引入主成分分析[14],對特征矩陣F′進行壓縮量化。首先,將尺寸為M×M的特征矩陣F′重構(gòu)為M/8×8M的新型特征矩陣R,其每一列均含有M/8個元素,并將其表征為R={r1,i,r2,i,…rM/8,i}T,i=1,2…8M, 然后,再利用主成分分析處理,R={r1,i,r2,i,…rM/8,i}T。 依據(jù)R={r1,i,r2,i,…rM/8,i}T, 計算其協(xié)方差矩陣CR為
(27)
隨后,根據(jù)式(27)計算得到的協(xié)方差矩陣CR,對其進行分解
CR=?!力力?1
(28)
式中:Λ代表包含CR的8M個特征值 (λ1,λ2,…λ8M)的對角矩陣;Γ為CR的特征矢量。令Γ={Γ1,Γ2,…Γ8M}, 且Γi={ρ1,i,ρ2,i,…ρ8M,i}。 從Γ={Γ1,Γ2,…Γ8M} 中擇取前N個特征值,構(gòu)成新的特征矢量?!?{Γ1,Γ2,…ΓN},其尺寸為8M×N,則聯(lián)合大小為M/8×8M的特征矩陣F′,基于主成分分析原則,可獲取M/8×N的新矩陣?!?/p>
Γ″=F′×?!?/p>
(29)
式中:Γ″包含了圖像的主成分,充分反映了矩陣F的主要特征中的各要素間的相關(guān)性。最后,把新矩陣?!鍎澐譃橐幌盗械姆侵丿B子塊,每個子塊的大小為k4×k4。在Γ″中,每個子塊的像素均值mj均與?!宓木祄Γ進行比較,完成對特征矩陣F′的壓縮量化,輸出二值序列r′
(30)
(31)
式中:L是哈希長度;⊕是異或運算。
由式(31),當(dāng)D值小于用戶閾值W時,將可疑圖像視為完好圖像;反之,將其判別為篡改圖像。
為了測試所提圖像哈希算法的魯棒性,在UCID數(shù)據(jù)庫[16]中完成實驗,且將為文獻[6]、文獻[7]視為對照組,以體現(xiàn)所提哈希技術(shù)的優(yōu)異性。由于本文算法包含了圖像預(yù)處理、魯棒特征提取,以及緊湊哈希生成與認(rèn)證3個模塊、因此,根據(jù)每個部分的功能,按照模塊化設(shè)計,對每個過程進行編程。因此,本次實驗是基于Matlab 2010平臺,其具有強大的數(shù)值計算、數(shù)據(jù)分析與圖像顯示等功能[15],同時,借助VC++6.0語言進行算法編程與實現(xiàn)。且實驗環(huán)境為:window7,64 bit專業(yè)版的操作系統(tǒng),CPU為Intel(R) Core(TM)i5-457、主頻為3.20 GHz,內(nèi)存為4.0 GB,且硬盤為500 G。
并采用ROC曲線[6]中對3種哈希技術(shù)的魯棒性進行量化,由正確識別率PTPR、虛警率PFPR構(gòu)成
(32)
式中:n1為正確判斷圖像數(shù)量;n2是誤判圖像數(shù)量。M1、M2分別是完好圖像與可疑圖像的總數(shù)。
根據(jù)本文哈希算法的描述過程可知,閾值W對整個哈希序列的魯棒性影響較大。故首先需對W值完成優(yōu)化。關(guān)鍵實驗參數(shù)為:r=2,Δ=4。其余參數(shù)見表1。
為了對閾值W進行優(yōu)化,利用最佳的閾值進行了哈希認(rèn)證,本文借助UCID圖像庫[16],從中選用800幅圖像作為本實驗的測試目標(biāo),同時,按照表2的攻擊類型賦予所有圖像。
表1 實驗參數(shù)
表2 不同類型的內(nèi)容攻擊
圖7為圖像對應(yīng)的Hamming距離與其頻數(shù)分布狀況。由頻數(shù)分布可知,對于視覺相似圖像,在其Hamming距離D<0.43時,對應(yīng)的頻數(shù)分布變化較為強烈;而對于視覺差異圖像對,在其Hamming距離D>0.43時,頻數(shù)分布較大。所以,根據(jù)頻數(shù)分布費臨界值,在所提哈希算法中,將閾值W設(shè)置為0.43。
魯棒性評估哈希算法的重要指標(biāo)[6],故在UCID庫選取4幅圖像作為實驗?zāi)繕?biāo),如圖8(a)~圖8(d)所示;再根據(jù)表2的篡改手段對圖8(a)~圖8(d)完成處理;根據(jù)式(31)計算其Hamming距離D,輸出數(shù)據(jù)曲線如圖8(e)~圖8(h)所示。由Hamming距離可知,在初始圖像遇到表2中的篡改攻擊后,本文哈希算法所獲取的D值都要低于0.43。主要是本文哈希算法通過結(jié)合插值、低通濾波以及SVD技術(shù)完獲取魯棒性較高的二次圖像,有效提高了哈希序列對噪聲、縮放以及旋轉(zhuǎn)等攻擊的穩(wěn)健性,并設(shè)計了描述能力較強的鄰域空間LBP算子,充分提取圖像的魯棒特征,從而提高了哈希序列的魯棒性。
哈希算法的碰撞性能也稱為唯一性[1],即兩幅感知不同的圖像產(chǎn)生相同的哈希序列的概率非常小,兩幅感知不同圖像對應(yīng)的哈希序列之間的Hamming距離應(yīng)該大于閾值。利用本文算法可以生成UCID庫的1338幅圖像對應(yīng)的1338個哈希序列,且計算了894 453個不同圖像對之間的Hamming距離。再根據(jù)碰撞概率計算函數(shù)[17],獲取3種算法的碰撞概率,見表3。碰撞概率模型為[17]
圖7 閾值的優(yōu)化測試結(jié)果
圖8 本文哈希算法的魯棒性測試
(33)
式中:erfc()為互補誤差函數(shù);T為閾值;u,σ分別是Hamming距離對應(yīng)的頻數(shù)分布的均指與方差,在本文中,通過多次實驗,取u=0.456,σ=0.048時,所提算法的Hamming距離呈現(xiàn)一致分布狀態(tài)。
表3顯示了3種算法的抗碰撞性能。由表可知,隨著閾值的增加,其碰撞概率也在增大;但是,本文哈希算法的發(fā)生碰撞的概率是最小的,遠低于文獻[6]、文獻[7]算法。
表3 3種算法的抗碰撞性能測試結(jié)果
再次從UCID庫[16]中選取1000幅圖像作為實驗?zāi)繕?biāo),利用本文算法、文獻[6]與文獻[7]對其進行處理,生成相應(yīng)的ROC曲線如圖9所示。根據(jù)測試曲線,對表2中的4種內(nèi)容篡改方式,本文哈希算法的ROC特性較為理想,特別是識別旋轉(zhuǎn)篡改,在PFPR=0.2時,所提哈希技術(shù)對應(yīng)的PTPR=0.983。而文獻[6]、文獻[7]的魯棒性都要弱于本文哈希算法,其中,文獻[7]對旋轉(zhuǎn)篡改的識別能力最低,文獻[6]的魯棒性雖然要優(yōu)于文獻[7],但是仍然弱于本文技術(shù),在PFPR=0.2時,二者的PTPR分別為0.861、0.925。主要是因為本文哈希技術(shù)與文獻[6]都利用了相應(yīng)的預(yù)處理方法來獲取抗旋轉(zhuǎn)的二次圖像,但是文獻[6]是利用中心對稱LBP算子來描述圖像特征,忽略了圖像的內(nèi)部空間關(guān)系,導(dǎo)致其對魯棒特性的描述能力不足,而本文算法在經(jīng)典的LBP算子基礎(chǔ)上,考慮圖像的內(nèi)部空間關(guān)系以及相鄰像素與中心像素之間的灰度差異,設(shè)計了鄰域空間LBP算子,增強其描述能力,能夠充分提取抗旋轉(zhuǎn)的魯棒特征,使其具有更強的感知魯棒性,要優(yōu)于文獻[6]。而文獻[7]主要是顏色矢量角度與Canny檢測算子來生成哈希序列,普通的Canny檢測算子在遇到旋轉(zhuǎn)等集合攻擊時,其穩(wěn)定不佳,難以提取圖像的魯棒特征,導(dǎo)致其算法的魯棒性要低于本文算法與文獻[6]。
圖9 3種算法的ROC曲線測試
為了獲取緊湊哈希序列,并改善哈希算法的魯棒性,本文通過設(shè)計鄰域空間LBP算子,并聯(lián)合塊截斷編碼機制,設(shè)計了一種魯棒緊湊哈希技術(shù)。通過綜合引入線性插值、Gaussian低通濾與奇異值分解,形成圖像預(yù)處理方法,將輸入圖像轉(zhuǎn)變?yōu)轸敯舻亩螆D像,增強哈希算法對縮放、噪聲以及旋轉(zhuǎn)的魯棒性;通過塊截斷編碼機制來獲取二次圖像的高、低電平矩陣,以及二進制位圖。考慮圖像像素內(nèi)在的空間關(guān)系,設(shè)計鄰域空間LBP算子,增強對特征的描述能力,提取位圖的魯棒特征。利用量化函數(shù)與主成分分析,對高、低電平矩陣,以及特征矩陣進行壓縮量化,獲取3個二值序列。通過組合3個二值序列,生成圖像哈希。實驗測試數(shù)據(jù)驗證了所提哈希算法的合理性與優(yōu)異性。