周曉煒 趙 琰,2*
1(上海電力大學(xué)電子與信息工程學(xué)院 上海 200090) 2(廣西師范大學(xué)廣西多源信息挖掘與安全重點(diǎn)實(shí)驗(yàn)室 廣西 桂林 541004)
數(shù)字圖像隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展以及計(jì)算機(jī)的廣泛應(yīng)用已經(jīng)滲入到生活中的各個(gè)角落,但其在傳輸過程中的安全性也受到了考驗(yàn),市場上也出現(xiàn)了各種類似于Photoshop和美圖秀秀等簡單易用快速的圖像編輯軟件。數(shù)字圖像在傳輸過程中很容易被替換或者篡改,圖像接收端需要能夠驗(yàn)證收到圖像的安全性,這就引出了圖像哈希的概念。圖像哈希是指使用緊湊序列表示圖像及其內(nèi)容的技術(shù)。人們通過使用提出的哈希算法對接收圖像進(jìn)行處理得到哈希序列,計(jì)算其與從安全通道接收到的原哈希序列的距離來驗(yàn)證接收圖像的安全性。一般情況下,圖像哈希需要能夠區(qū)分出相似圖像和不同圖像,即具有魯棒性和區(qū)分性。
圖像感知哈希算法的核心是圖像特征向量的選取。近幾年提出的圖像感知哈希算法一般都是基于變換域和空域,而基于空域的哈希算法根據(jù)特征的選取又大致分為基于形狀紋理特征和結(jié)合顏色信息的算法。
1) 基于變換域。文獻(xiàn)[1]通過DCT變換構(gòu)造基于顏色向量角的特征矩陣,再用LLE降維來構(gòu)建哈希,算法對大部分內(nèi)容保持操作都具有較好的魯棒性,但對旋轉(zhuǎn)、裁剪和縮放操作不夠魯棒。文獻(xiàn)[2]提取圖像在YCbCr空間的亮度Y分量進(jìn)行Radon變換,對Radon變換后的系數(shù)進(jìn)行一維DCT變換取第一AC分量構(gòu)成行向量后提取統(tǒng)計(jì)特征作為哈希,算法使用Radon變換從而具有良好的抗旋轉(zhuǎn)性能,但對亮度和對比度調(diào)整的魯棒性和區(qū)分性不足。Tang等[3]通過對數(shù)極坐標(biāo)變換和離散傅里葉變換從圖像中提取具有旋轉(zhuǎn)不變性的特征矩陣,然后使用多維尺度分析(MDS)將特征矩陣表示為哈希序列,算法對大角度旋轉(zhuǎn)也具有不錯的魯棒性,但運(yùn)行效率不高。Yan等[4]提出的基于四元數(shù)的哈希方法使用四元數(shù)傅里葉變換同時(shí)結(jié)合顏色和結(jié)構(gòu)特征生成哈希,能夠消除幾何畸變對哈希序列的影響,檢測出幾乎所有類型的篡改,相對于之前多數(shù)算法只能檢測出特定篡改在應(yīng)用廣泛性上有了很大提升。文獻(xiàn)[5]對圖像進(jìn)行DCT變換后提取低頻系數(shù)作為特征再通過DWT變換將其轉(zhuǎn)換為緊湊哈希序列,算法有較低的哈希位數(shù),但在旋轉(zhuǎn)操作下只對小角度魯棒。
2) 基于空域。(1) 基于形狀紋理特征。文獻(xiàn)[6]結(jié)合SVD和LBP的特性提出了SVD-CSLBP算法,提高了對內(nèi)容保持操作的魯棒性,但代價(jià)是對旋轉(zhuǎn)操作的敏感性。文獻(xiàn)[7]結(jié)合全局特征四元數(shù)Zernike矩和局部特征SIFT特征點(diǎn)來構(gòu)造哈希,通過檢測匹配SIFT興趣點(diǎn)來定位篡改,算法可以檢測定位對象插入、刪除、替換、復(fù)制移動和剪切粘貼等篡改操作。文獻(xiàn)[8]通過提取灰度圖像的精確Gaussian-Hermite矩以及Gaussian-Hermite矩的不變量來構(gòu)建哈希序列,算法除JEPG壓縮操作不如Zernike矩魯棒外,對其他內(nèi)容保持操作尤其是噪聲的魯棒性都優(yōu)于大多數(shù)比較算法。(2) 基于顏色信息。Qin等[9]提出基于環(huán)和基于塊的策略對圖像顏色矢量角提取特征從而生成哈希,算法相對于其他基于顏色矢量角的算法魯棒性和區(qū)分性都有所提升,但對亮度和對比度的魯棒性略有下降。文獻(xiàn)[10]利用顏色向量角能夠很好地區(qū)分色相和飽和度差異的特性,從歸一化圖像內(nèi)最大圓內(nèi)的顏色矢量角里提取直方圖來構(gòu)建圖像哈希,算法的哈希序列不夠緊湊,且對局部區(qū)域的篡改不夠敏感。Tang等[11]將RGB彩色圖像轉(zhuǎn)換為HSI和YCbCr顏色空間,計(jì)算HSI和YCbCr各分量的塊均值和方差,提取局部顏色特征然后計(jì)算塊特征向量和參考特征向量之間的歐氏距離作為哈希值,但算法對旋轉(zhuǎn)操作不魯棒。文獻(xiàn)[12]將圖像進(jìn)行ring分割后在感知均勻的CIE-L×a×b×顏色空間中提取每一環(huán)的統(tǒng)計(jì)特征構(gòu)成哈希,該算法對旋轉(zhuǎn)有較強(qiáng)的魯棒性,但效率不高。
3) 其他方法。Tang等[13]首先將圖像構(gòu)建為一個(gè)穩(wěn)定的三階張量,然后使用Tucker分解將三階張量分解為一個(gè)核張量和三個(gè)正交因子矩陣,將正交因子矩陣構(gòu)造為哈希序列,算法對JPEG壓縮和乘性噪聲等內(nèi)容保持操作有較強(qiáng)的魯棒性。文獻(xiàn)[14]對整幅圖像提取SIFT特征點(diǎn)后將圖像分為非重疊的若干子塊,選取其中特征點(diǎn)個(gè)數(shù)較多的圖像子塊提取其顏色、紋理和形狀特征形成最終哈希序列,該算法的碰撞率小于很多算法,但不適用于特征分布均勻的圖像。
以上基于變換域的哈希算法忽略了人類對圖像最直觀的視覺感知特征,基于形狀特征的算法和結(jié)合顏色信息的算法可以很好地描述圖像輪廓和表示圖像色度分量的變換,但對圖像的表達(dá)都比較單一。為了能夠從人類視覺感知上更完整地表示圖像,從而提高算法的區(qū)分性和魯棒性,本文從YCbCr顏色空間結(jié)合變換域NSCT分解和空域的形狀特征Zernike矩提取圖像的低頻和高頻信息共同構(gòu)成哈希序列,并使用PCA降維降低低頻圖像的特征維度。實(shí)驗(yàn)結(jié)果表明本文算法具有不錯的區(qū)分性和魯棒性。
本文哈希算法的步驟如圖1所示,包括以下5部分內(nèi)容:(1)
圖像預(yù)處理;(2) 將經(jīng)過預(yù)處理操作的圖像三個(gè)通道分別進(jìn)行NSCT一級分解,保留三個(gè)通道分解后的低頻圖像和Y通道的高頻圖像;(3) 將Y通道分解得到的高頻圖像經(jīng)過Canny算子提取邊緣后計(jì)算Zernike不變矩得到高頻特征;(4) 在YCbCr空間,每個(gè)通道NSCT分解后的低頻圖像分別分割為64個(gè)子塊并提取6個(gè)統(tǒng)計(jì)特征,構(gòu)成一個(gè)18維的特征矩陣后使用PCA降維并壓縮得到低頻特征;(5) 聯(lián)合低頻特征和高頻特征并利用密鑰進(jìn)行加密后構(gòu)成最終的哈希序列。
圖1 本文哈希算法框架
首先使用雙線性插值處理將圖像的大小調(diào)整為256×256大小并進(jìn)行高斯低通濾波來提高圖像哈希算法對縮放操作和各種噪聲的魯棒性。如果輸入圖像是RGB彩色圖像,因其顏色空間三個(gè)通道之間存在一定的相關(guān)性,而YCbCr空間具有和人的視覺感知一致性及色度相互獨(dú)立的優(yōu)點(diǎn),因此將其轉(zhuǎn)化到Y(jié)CbCr空間。
非下采樣輪廓波變換(NSCT)[15]是一種二維圖像變換技術(shù),相較于其他變換方法它能夠?qū)D像分解為低頻部分和多方向的光滑輪廓。NSCT通過非子采樣金字塔濾波器和非子采樣方向?yàn)V波器組兩種濾波器進(jìn)行工作,在原始圖像上應(yīng)用非子采樣金字塔濾波器,去除低通和高通子帶,在帶通濾波器上應(yīng)用NSDFB進(jìn)行分解。
首先對經(jīng)過預(yù)處理操作的圖像的Y、Cb、Cr通道分別進(jìn)行NSCT一級分解,保留三個(gè)通道分解得到的低頻圖像和Y通道分解得到的高頻圖像。
1.3.1形狀特征提取
Zernike函數(shù)[16]最早由Frits Zernike提出,具有簡單的旋轉(zhuǎn)不變性,它的核是一組單位圓上定義的完備正交基。一幅數(shù)字圖像f(x,y)的重復(fù)度為q、階數(shù)為p的二維Zernike矩函數(shù)定義為:
(1)
式中:dxdy=rdrdθ,-π≤θ≤π。
Zernike矩可以用來描述圖像的形狀特征,而圖像的高頻分量往往是圖像亮度變化劇烈的地方,YCbCr空間中Y通道是亮度分量,Cb通道反映的是藍(lán)色信號部分與RGB信號亮度值之間的差異,Cr通道反映了RGB顏色模型中紅色信號部分與RGB信號亮度值之間的差異,所以算法僅對預(yù)處理后的圖像Y通道進(jìn)行NSCT分解得到的高頻圖像使用Canny算子提取邊緣得到二值圖像,接著對二值圖像提取Zernike矩作為中間哈希序列H1。這里提取9個(gè)Zernike不變矩(Z00,Z11,Z20,Z22,Z31,Z33,Z40,Z42,Z44)作為高頻特征,所以H1的長度為9。
1.3.2統(tǒng)計(jì)特征提取和降維
本文算法將三個(gè)通道得到的低頻圖像分成n×n個(gè)子塊后提取每個(gè)子塊的6個(gè)統(tǒng)計(jì)特征,分別是均值、標(biāo)準(zhǔn)差、平滑度、三階矩、一致性、熵。每個(gè)通道可以得到一個(gè)6×n的特征矩陣,結(jié)合3個(gè)通道的特征矩陣得到一個(gè)18×n的特征矩陣X。
通過主成分分析[17]忽略次要的分量可以將18×n的特征向量矩陣X降維構(gòu)成一個(gè)k×n的矩陣Y。通過計(jì)算矩陣Y各行與參考向量y0的二范數(shù)來將矩陣Y壓縮為一個(gè)哈希序列。步驟如下:
首先,設(shè)Y=[y1,y2,…,yN],計(jì)算參考向量y0=[y0(1),y0(2),…,y0(k)]T,其中y0(i)為向量y0的第i個(gè)元素,定義為:
(2)
式中:yj(i)為向量yj的第i個(gè)元素。
接著計(jì)算矩陣Y各行向量yj與參考向量y0的二范數(shù),定義為:
(3)
將向量d量化為與中間哈希序列H1同一量級的序列即為哈希序列H2,H2的長度為n。
結(jié)合高頻圖像提取形狀特征得到的中間哈希序列H1和低頻圖像得到的中間哈希序列H2得到最終哈希h,即h=[H1,H2],所以h的長度為n+9。
為了確保圖像傳輸過程中未被替換或篡改,需要對收到的圖像進(jìn)行安全認(rèn)證。如圖2所示,首先通過本文哈希函數(shù)對收到圖像提取哈希序列h1,然后計(jì)算h1與從安全通道傳輸?shù)膱D像原哈希序列h2之間的歐氏距離。當(dāng)歐氏距離d≤T時(shí),圖像通過安全認(rèn)證,否則安全認(rèn)證失敗,其中:T為一個(gè)預(yù)先給定的閾值。歐氏距離公式為:
(4)
式中:h1(i)表示收到圖像所提取的哈希序列的第i個(gè)值;h2(i)表示安全通道傳輸?shù)膱D像原哈希序列的第i個(gè)值。
圖2 圖像安全認(rèn)證流程
實(shí)驗(yàn)中的參數(shù)設(shè)置如下:3×3高斯低通濾波的標(biāo)準(zhǔn)差設(shè)置為3,低頻圖像的分塊數(shù)n=64,PCA降維中取k=5,所得到的哈希長度為73。
將圖3所示的Airplane、House、Lena、Baboon和Peppers五幅標(biāo)準(zhǔn)圖像作為魯棒性實(shí)驗(yàn)樣本,利用Photoshop、MATLAB和光影魔術(shù)手等圖像編輯軟件對五幅標(biāo)準(zhǔn)圖像進(jìn)行內(nèi)容保持操作,所采用的內(nèi)容保持操作及參數(shù)如表1所示。
圖3 五幅標(biāo)準(zhǔn)圖像
表1 內(nèi)容保持操作參數(shù)
實(shí)驗(yàn)結(jié)果如圖4所示,其中橫坐標(biāo)表示不同參數(shù)下的各種內(nèi)容保持操作,縱坐標(biāo)表示內(nèi)容保持操作圖像哈希序列與原圖像哈希序列之間的距離。可以看出,內(nèi)容保持操作圖像與原圖之間的哈希距離比較集中,基本都小于60,個(gè)別操作與原圖距離較大,但不超過80,遠(yuǎn)小于后文設(shè)置的區(qū)分相似圖像和不同圖像的最優(yōu)閾值。
圖4 魯棒性實(shí)驗(yàn)結(jié)果
算法的區(qū)分性實(shí)驗(yàn)樣本來自于華盛頓大學(xué)Ground Truth Database圖庫[18]中的700幅圖像和數(shù)據(jù)庫VOC2007[19]中的300幅圖像構(gòu)成的1 000幅不同圖像圖庫。1 000幅圖像兩兩之間構(gòu)成不同圖像對,不同圖像對的總數(shù)為499 500,通過對1 000幅圖像進(jìn)行如表2所示的處理,每幅圖像與其生成的14幅內(nèi)容保持操作圖像共15幅圖像兩兩之間構(gòu)成相似圖像對,相似圖像對的總數(shù)為105 000。實(shí)驗(yàn)結(jié)果如圖5所示,橫坐標(biāo)為圖像對之間的歐氏距離,縱坐標(biāo)為不同歐氏距離的圖像對的數(shù)目。不同圖像對之間的哈希距離分布用實(shí)線表示,相似圖像對之間的哈希距離分布用虛線表示??梢钥闯?,虛線和實(shí)線之間只有少量相交,即相似圖像和不同圖像只有少量圖像會被判斷錯誤,所以可以通過合適的閾值來區(qū)分相似圖像和不同圖像。這里引入檢錯率和碰撞率[20]來衡量哈希算法的區(qū)分性,計(jì)算式分別如下:
(5)
(6)
式中:閾值T確定時(shí),NE為所有相似圖像對中被判斷為不同圖像對的數(shù)目;NC為所有不同圖像對中被判斷為相似圖像對的數(shù)目;NS、ND分別為相似圖像對的總數(shù)目和不同圖像對的總數(shù)目;PE為檢錯率;PC為碰撞率。
表2 不同攻擊參數(shù)
圖5 區(qū)分性實(shí)驗(yàn)結(jié)果
不同閾值下的PC和PE如表3所示??梢钥闯?,檢錯率與碰撞率呈反比關(guān)系,碰撞率增大,檢錯率減小。這是因?yàn)橄嗨茍D像之間的哈希距離與不同圖像之間的哈希距離有部分相交,所以閾值過小會有更多的相似圖像被誤判為不同圖像從而擁有更大的碰撞率,閾值過大則會導(dǎo)致不同圖像被誤判為相似圖像的數(shù)目增多,檢錯率隨之增大。當(dāng)閾值T為124時(shí),檢錯率和碰撞率都相對較小,所以區(qū)分相似圖像和不同圖像的最優(yōu)閾值可以設(shè)為124。
表3 不同閾值下的PC和PE
本文使用標(biāo)準(zhǔn)圖像中的Lena圖像來測試本文哈希算法的安全性,如圖6所示。對原圖像使用500個(gè)錯誤密鑰生成錯誤的哈希序列,與正確密鑰生成的哈希序列計(jì)算歐氏距離,得到的結(jié)果遠(yuǎn)遠(yuǎn)高于2.2節(jié)設(shè)置的最優(yōu)閾值124,使用錯誤密鑰所生成的哈希會被判斷為未通過安全認(rèn)證,所以本文算法具有較高的安全性。
圖6 安全性實(shí)驗(yàn)結(jié)果
將本文算法與DCT-DWT算法[5]、Local color算法[11]、Ring partition算法[12]和Tensor decomposition算法[13]進(jìn)行對比。為了進(jìn)行公平的比較,使用2.2節(jié)采用的499 500個(gè)不同圖像對和105 000個(gè)相似圖像對來驗(yàn)證它們的分類性能,在同一臺配置為Intel(R) Core(TM)i5-3230M CPU @2.60 GHz和4.00 GB內(nèi)存的計(jì)算機(jī)的MATLAB R2015b平臺上對各個(gè)比較算法進(jìn)行仿真。使用ROC曲線[21]和算法速度來衡量算法的優(yōu)劣,其中兩個(gè)重要指標(biāo)正確接受率PTPR和錯誤接受率PFPR定義如下:
(7)
(8)
式中:nTPR為所有相似圖像對中被正確判斷為相似圖像的數(shù)目;NTPR為相似圖像對的總數(shù)目;nFPR為所有不同圖像對中被錯誤判斷為相似圖像的個(gè)數(shù);NFPR為不同圖像對的總數(shù)目??梢钥闯觯阅芎玫乃惴☉?yīng)該擁有更高的正確接受率和更低的錯誤接受率。而在ROC曲線中,x軸為PFPR,y軸為PTPR,所以算法的ROC曲線越接近坐標(biāo)軸的左上角則其分類性能越好。
圖7所示為不同哈希算法的ROC曲線比較。可以看出本文算法所生成的ROC曲線在所有算法中最靠近坐標(biāo)軸左上角,說明本文算法擁有更高的正確接受率和更低的錯誤接受率,即分類性能最好。
圖7 不同算法的ROC曲線
圖8所示為不同算法相似圖像之間哈希距離和不同圖像之間哈希距離分布圖。視覺相似的圖像生成哈希相互之間的距離與不同圖像所生成哈希之間的距離重疊部分越多,算法的區(qū)分性越差??梢钥闯?,本文算法兩條曲線相交最少,也就表明其區(qū)分性最好。
(a) 本文算法
(b) DCT-DWT算法
(c) Local color算法
(d) Ring partition算法
(e) Tensor Decomposition算法圖8 不同算法相似圖像間哈希距離和 不同圖像間哈希距離分布圖
不同算法在上述平臺上進(jìn)行仿真中計(jì)算1 000幅圖像生成哈希序列的平均時(shí)間如表4所示??梢钥闯?,除Local color算法較本文算法稍快0.22 s,其他比較算法運(yùn)算效率均差于本文算法,但本文算法的區(qū)分性能在所有比較算法中最好,更遠(yuǎn)遠(yuǎn)優(yōu)于Local color算法。綜合考慮運(yùn)算效率和哈希性能的前提下,本文算法在保證效率的同時(shí)分類性能最優(yōu)。
表4 各算法運(yùn)行時(shí)間
本文提出了一種基于NSCT分解和Zernike矩的感知圖像哈希算法,在YCbCr顏色空間將NSCT分解得到的低頻圖像提取統(tǒng)計(jì)特征使用PCA降維得到低頻特征,NSCT分解得到的Y分量的高頻圖像提取邊緣后使用Zernike矩表示形狀特征,結(jié)合低頻和高頻特征生成哈希。
算法基于變換域在不同顏色空間提取圖像的統(tǒng)計(jì)特征和形狀特征來生成哈希,多角度多方位地表示圖像內(nèi)容,更符合人類視覺感知特性。實(shí)驗(yàn)表明該算法相較幾種對比算法速度較快,區(qū)分性更好,在保證哈希性能的同時(shí)實(shí)現(xiàn)分類性能最優(yōu)。