李文娜
(遼寧石油化工大學 人工智能與軟件學院,遼寧 撫順 113001)
互聯(lián)網(wǎng)技術的快速發(fā)展改變了數(shù)字信息的傳輸與交流的方式,信息傳播比以往更容易,但也容易導致嚴重的侵權問題[1‐3]。為此,需要更先進的技術和方法來保護數(shù)字信息版權。數(shù)字水印技術是數(shù)字信息版權保護的有效技術手段之一。圖像水印的不可見性和算法魯棒性是評估水印算法的主要指標。目前,數(shù)字水印技術在廣播監(jiān)控、所有者識別、所有權證明、交易跟蹤、內(nèi)容認證、拷貝控制和設備控制等領域得到了廣泛應用[4]。
水印圖像經(jīng)常直接被嵌入到圖像信號的空域中,直接修改像素值,但此類方法在圖像信號被攻擊時魯棒性低,水印圖像也可以嵌入到圖像信號變換域中,例如離散余弦變換(DCT)[5]、離散傅里葉變換(DFT)、離散小波變換(DWT)和奇異值分解(SVD)等方法[6‐11]。為了提高嵌入方法的魯棒性,相關人員研究了不同嵌入水印頻域系數(shù)位置的方法。結果表明,人類視覺對信號的低中頻系數(shù)更敏感。文獻[10]首先將宿主圖像從RGB空間轉(zhuǎn)換到YCuCv空間,然后將Cv通道的數(shù)據(jù)進行小波變換,再將小波變換后的LL子帶數(shù)據(jù)進行DCT變換,得到直流系數(shù)(DC)和交流系數(shù)(AC),最后將二值圖像水印經(jīng)過兩次加密后的數(shù)據(jù)嵌入到DC系數(shù)。該方法嵌入水印圖像為二值圖像,嵌入尺寸為32×32,嵌入信息容量小,嵌入信息能力弱。文獻[11]提出的算法不能很好地平衡嵌入水印圖像的不可見性和算法的魯棒性兩個指標。小波變換的嵌入水印方法很難抵抗幾何攻擊,因此有學者提出了基于小波變換和奇異值分解的水印算法[6‐7]。
基于以上討論,本文提出了基于小波變換‐海森伯格矩陣分解‐奇異值分解的可以抵抗多種攻擊的彩色水印算法,算法在嵌入水印圖像的不可見性和算法魯棒性兩個指標有很好的平衡。
YCbCr彩色空間在視頻系統(tǒng)、攝影系統(tǒng)和計算機系統(tǒng)中的應用很廣泛,常見的圖片格式JPEG、MPEG均采用此顏色表達格式。YCbCr彩色空間的Y、Cb和Cr分別代表亮度、藍色色度和紅色色度分量。由于人眼對Y分量更敏感,即使對Cb和Cr減少采樣頻率,人眼也不容易感覺到圖像質(zhì)量的變化,其優(yōu)點是在一定程度上減少存儲空間。從RGB彩色空間獲得YCbCr彩色空間分量的表達式為[9]:
式中,R為RGB彩 色空間的紅 色 分 量;G為RGB彩色空間的綠色分量;B為RGB彩色空間的藍色分量。
小波變換是一種常用的數(shù)學變換方法,在工程中應用廣泛。二維圖像信號小波變換是一維離散小波變換的推廣,將信號在不同尺度上分解,從而得到原始信號的近似值和細節(jié)值。分解后包括LL、HL、LH和HH子帶[6‐7]。LL子帶是在行和列方向都通過低通小波濾波生成的系數(shù),是圖像的近似表示;HL子帶是在行方向通過低通小波濾波后再在列方向上通過高通小波濾波生成的系數(shù),表示圖像的水平方向奇異特性;LH子帶是在行方向通過高通小波濾波后再在列方向上通過低通小波濾波生成的系數(shù),表示圖像的垂直方向奇異特性;HH子帶是由行和列方向通過高通小波濾波后生成的系數(shù),表示圖像的對角邊緣特性。
圖像的奇異特性通過低通小波濾波時保留,通過高通小波濾波時被濾除。小波變換后能量可以集中在少數(shù)系數(shù)上,因此可提高算法抵抗圖像水印攻擊的性能。
矩陣H的第一子對角線下元素都是0的矩陣被稱為海森伯格(Hessenberg)矩陣。如果為對稱矩陣,則它的海森伯格形式為對角三角陣。海森伯格矩陣分解用于方陣分解,其表達式為:
式中,X為n×n的矩陣;P為正交矩陣;H為矩陣X的海森伯格形式;HAD通常由豪斯霍爾德變換矩陣進行計算,豪斯霍爾德變換矩陣Q是一個正交矩陣,其表達式為:
式中,u為一個非零n維矢量;In為一個n×n的單位矩陣。在整個過程中,需要n?2步迭代運算其表達式見式(6)?(8)。
通過海森伯格矩陣分解后能夠獲得宿主圖像更精確的成分,進而提高算法的魯棒性。
奇異值分解是另一種正交矩陣分解法,是最可靠的分解方法,分解后的三個矩陣分別為左奇異矩陣U、奇異矩陣S、右奇異矩陣V。其中,U和V代表兩個正交矩陣UUT=In和VVT=In;S代表一個對角矩陣。假設K是一個對稱矩陣,K的奇異值分解通過公式(9)計算[2]。
式中,U的列為KKT的標準正交特征向量;V的列為KTK的標準正交特征向量;S為一個包含U或V的按照降序排列的平方根的對角矩陣。
矩陣K的秩為r,如果滿足r≤n,對角矩陣K中元素可以通過式(10)表示,矩陣K可以通過式(11)表示。
式中,ui、vi分別為U、V的第i個特征向量;σi為第i個奇異值。
通過信息隱藏算法對秘密信息進行加密存在風險,如果黑客破解了水印算法可直接提取水印信息。Arnold變換也稱為貓臉變換。對圖像進行置亂,可以得到無序無內(nèi)容無紋理的無意義的圖像[11]。Arnold變換表達式為:
式中,(xn,yn)為變換(逆變換)前灰度圖像像素的位置;(xn+1,yn+1)為變換(逆變換)后圖像像素位置;a、b分 別 為 參 數(shù);n為 變 換 次 數(shù);N為 圖 像 的 長或?qū)挕?/p>
當圖像為正方形時,經(jīng)過n次Arnold變換后的數(shù)據(jù)可以通過n次逆變換恢復。Arnold逆變換表達式為:
本文提出的水印算法可以實現(xiàn)二值水印、灰度水印和彩色水印的嵌入和提取,宿主圖像通過R級小波變換實現(xiàn)多尺度的水印嵌入和提取。
水印嵌入算法的輸入為宿主圖像C和水印圖像W,輸出為嵌入水印的宿主圖像C*。C、W和C*的尺寸分別為M×M×3、N×N×3(如果水印為二值圖像和灰度圖像,則其尺寸為N×N)和M×M×3。水印嵌入的具體步驟為:
步驟1讀取宿主圖像和水印圖像。
步驟2將宿主圖像從RGB彩色空間轉(zhuǎn)換到YCbCr彩色空間。如果水印圖像是彩色圖像,同樣將RGB彩色空間轉(zhuǎn)換到YCbCr彩色空間。水印圖像如果是二值或灰度圖像,則省略此步。
步驟3對宿主圖像的Y、Cb、Cr分量進行R級小波變換,獲得各分量的LL、LH、HL和HH系數(shù)。
步驟4對各LL子帶系數(shù)進行海森伯格矩陣分解獲得海森伯格矩陣H。
步驟5對海森伯格矩陣H通過式(9)進行奇異值分解,獲得S、U和V。
步驟6對水印圖像的各個分量進行Arnold變換,將水印圖像置亂,消除像素的空間相關性,使算法抗攻擊能力增強。同時,將(a,b,n)作為水印算法的第一密鑰。
步驟7對Arnold變換后的置亂圖像進行奇異值分解,獲得Uw、Sw和Vw分量。
步驟8Uw和Vw分量通過混沌系統(tǒng)的邏輯斯諦映射進行加密,加密后的分量分布標記為Uw1和Vw1。
步驟9在步驟5獲得的S分量上,按式(14)嵌入步驟7獲得的Sw矩陣分量。其中,α為嵌入系數(shù),同時作為水印算法的第二密鑰。如果水印是灰度或二值圖像,水印分量嵌入位置選擇宿主圖像的Y分量對應的系數(shù)。
步驟10嵌入水印的子帶H*通過逆奇異值分解合成,其表達式為:
步驟11新的低頻子帶系數(shù)通過逆海森伯格矩陣重構,其表達式為:
步驟12嵌入水印的各個圖像分量通過逆R級小波變換獲得。
步驟13嵌入水印的宿主圖像從YCbCr彩色空間轉(zhuǎn)換到RGB彩色空間,標記為宿主圖像C*。
在水印提取算法中,輸入為含水印的宿主圖像C*,輸出為提取的水印圖像W*。水印提取的具體步驟為:
步驟1將含水印的宿主圖像C*從RGB彩色空間轉(zhuǎn)換到YCbCr彩色空間。如果水印圖像為彩色圖像,同樣將RGB彩色空間轉(zhuǎn)換到YCbCr彩色空間。
步驟2含對水印的宿主圖像的Y*、Cb*、Cr*分量進行R級小波變換,獲得各分量的LL*、LH*、HL*和HH*系數(shù)。
步驟3對各分量的LL*子帶系數(shù)進行海森伯格矩陣分解,得到含有水印的海森伯格矩陣。
步驟4對各分量的通過式(9)進行奇異值分解,得到
步驟5通過式(17)獲得提取的水印奇異值分量Sw2。
步驟6Uw1和Vw1分量通過混沌系統(tǒng)解密,解密后的分量標記為Uw2和Vw2。
步驟7各彩色分量的Sw2、Uw2和Vw2通過逆奇異值分解操作后獲得提取的YCbCr彩色空間的水印圖像。
步驟8提取的YCbCr彩色空間的水印圖像各彩色分量在第一密鑰的參與下進行逆Arnold變換,得到YCbCr彩色空間的水印圖像W2。
步驟9對W2進行從YCbCr彩色空間到RGB彩色空間的轉(zhuǎn)換,獲得提取的水印圖像W*。
為了驗證水印算法的有效性,進行了仿真實驗。所使用的宿主圖像為真彩圖像,水印圖像可以是彩色圖像、灰度圖像或二值圖像,宿主圖像和水印圖像如圖1所示。
圖1 宿主圖像和水印圖像
其中,圖(a)?(c)像素為512×512,圖(d)?(f)像素為256×256,圖(g)像素為128×128,圖(h)像素為64×64,圖(i)像素為32×32。如果嵌入水印為二值圖像或灰度圖像,則忽略水印嵌入算法中的步驟2。
為了確保嵌入水印信息的安全,嵌入水印的宿主圖像應該為不可見,該指標通常由峰值信噪比和結構相似度來衡量。峰值信噪比的表達式為:
式中,MSE為宿主圖像C和嵌入水印的宿主圖像C*之間的均方誤差分別為宿主圖像和嵌入水印的宿主圖像的具體位置(i,j)處的像素;Cmax為宿主圖像中像素最大值。
結構相似度表達式為:
式中,μC、μC*分別為宿主圖像C和嵌入水印的宿主圖像C*的均值;分別為宿主圖像C和嵌入水印的宿主圖像C*的方差;σCC*為宿主圖像C和嵌入水印的宿主圖像C*的協(xié)方差;d1、d2分別為避免分母為零設置的兩個變量,通常取接近零的很小的正數(shù)。
用歸一化相關系數(shù)NC來衡量提取水印圖像W*和嵌入水印圖像W的魯棒性。
式中,Wi,j、分別為嵌入水印圖像和提取的水印圖像具體位置(i,j)處的像素值。
計算所得NC值在0和1之間,其值越大說明提取的水印和原始水印的相似性越好。
實驗中對不同尺度的水印圖像及對彩色圖像、灰度圖像和二值圖像的水印進行了嵌入和提取。嵌入的水印圖像尺寸影響嵌入水印的宿主圖像的可見性和提取算法的魯棒性。選擇宿主圖像Lena像素為512×512,水印圖像Flowers像素為256×256,不同嵌入比例因子下的歸一化相關系數(shù)、峰值信噪比、結構相似度如圖2?4所示。
圖2 不同嵌入比例因子下的歸一化相關系數(shù)
圖3 不同嵌入比例因子下的峰值信噪比
圖4 不同嵌入比例因子下的結構相似度
不同尺寸的水印圖像及不同嵌入比例因子的水印算法的PSNR、SSIM、NC性能指標如表1所示。
表1 不同尺寸的水印圖像及不同嵌入比例因子的水印算法的PSNR、SSIM、NC性能指標
選擇宿主圖像Lena像素為512×512及水印圖像Flowers像素為256×256進行了嵌入比例因子為0.08的多種攻擊實驗,對嵌入水印的圖像進行多種攻擊后進行了嵌入水印圖像的提取。提高嵌入比例因子,以提高水印算法的魯棒性。受到不同攻擊時水印算法的PSNR、SSIM、NC性能如表2所示。
表2 受到不同攻擊時水印算法的PSNR、SSIM、NC性能
采用宿主圖像像素為512×512的lena彩色圖像、水印圖像像素為32×32的二值圖像進行實驗,實驗參數(shù)與文獻[10]相同。本算法對灰度圖像、彩色圖像水印嵌入和提取時,需要較小的嵌入比例因子;對二值圖像進行水印嵌入和提取時,需要較大的嵌入因子。實驗中選擇嵌入比例因子為10。宿主圖像嵌入二值圖像水印后,未受攻擊時不同水印算法PSNR指標如表3所示。進行多種攻擊后提取水印,受到多種類別攻擊時不同算法的魯棒性如表4所示。
表3 未受攻擊時不同水印算法的PSNR dB
表4 受到多種類別攻擊時不同算法魯棒性指標
結合Arnold變換和混沌加密系統(tǒng),提出了一種新的基于DWT‐HAD‐SVD的水印算法。仿真結果表明,嵌入水印的宿主圖像有優(yōu)質(zhì)的不可見性;水印圖像能清晰地從受到各種不同攻擊的嵌入水印的宿主圖像中提取出來。該算法適用于不同的水印尺寸,兼容彩色圖像水印、灰度圖像水印和二值圖像水印,具有嵌入水印信息的容量大、抗攻擊性強等優(yōu)勢,具有一定的應用價值。