張天騏,聞 斌,吳 超,熊 天
(重慶郵電大學 通信與信息工程學院,重慶 400065)
近年來,隨著計算機網絡和多媒體技術的快速發展,多媒體作品(音頻、圖像、視頻)被隨意篡改的風險逐漸增加,數字水印技術是解決這類問題的有效途徑[1].數字水印技術是將數字水印嵌入到多媒體作品的空間域或者變換域中,通常嵌入的水印是不可見的,同時又必須保持多媒體作品的真實度.
從彩色載體圖像的處理方式來看,大部分圖像水印算法可分為分通道處理和整體處理兩類.分通道處理先提取出彩色載體圖像不同通道的低頻成份,然后進行矩陣分解嵌入水印信息; 或者先將載體圖像變換到不同的顏色空間,然后選擇通道進行水印嵌入.文獻[2]將水印嵌入到YCbCr空間的Cb分量中; 文獻[3]將水印嵌入到YCbCr空間的Y分量中; 文獻[4]將水印嵌入到RGB分量經過輪廓波變換的低頻分量中; 文獻[5-6]將水印嵌入到RGB分量經過二維離散小波變換后的低頻分量中.研究者們在分通道處理的基礎上將載體圖像進行分塊,提出了規則選塊[7-8]、Randperm函數[9]、MD5加密算法[10],提取不同通道的行和列[11]等機制用于選塊以提升水印算法的不可見性.由于彩色圖像的各通道之間存在光譜聯系,因此如果將彩色圖像作為整體進行處理,則圖像各色彩通道間的光譜聯系就會貫穿在整個運算和處理過程中[12].文獻[13]建立了四元數離散Fourier變換(QDFT)系數各分量與彩色圖像三通道傳統離散Fourier變換(DFT)之間的關系; 文獻[14]提出了一種基于DCT變換和DQFT變換的正交三角(QR)矩陣分解水印嵌入算法,能將彩色圖像三通道作為整體處理嵌入水印信息; 文獻[15]提出了一種基于四元數極諧波變換(QPHT)和最大似然解碼器的彩色圖像水印方案,將彩色圖像三通道作為整體處理的同時更好地平衡了不可感知性和魯棒性.不同載體圖像處理方式的水印算法在針對圖像攻擊時的魯棒性有差異,但對濾波攻擊的抵抗能力較差.
本文結合彩色載體圖像整體處理方式和選塊機制,提出一種基于張量分解和聯合熵的雙彩色魯棒水印算法.首先對載體圖像整體進行張量分解得到其張量特征圖; 然后對張量特征圖進行不重疊分塊處理,根據聯合熵大小確定嵌入水印的特征圖子塊; 最后將水印信息嵌入到選定塊經過奇異值分解(singular value decomposition,SVD)[16]的U矩陣中.實驗結果表明,本文算法不僅能有效抵抗圖像濾波攻擊,而且對其他常規圖像攻擊及幾何攻擊也有較強的魯棒性.
高階張量分解主要包括CP(canonical polyadic)分解和Tucker分解兩種形式.張量的CP分解是通過若干個N階的秩一張量之和表示一個N階張量,N階秩一張量就是由N個向量計算外積而成的張量.雖然張量的CP分解能保證分解結果的唯一性,但對應秩的求解是一個NP(nondeterministic polynomially)難題.張量的Tucker分解能將N階張量分解成一個核心張量和N個因子矩陣乘積的形式,核心張量保留了原張量的主要能量,具有穩定性,因此本文將張量的Tucker分解應用于彩色圖像水印算法.
一個N階張量A∈I1×…×IN的Tucker分解可表示為一個核心張量S∈I1×…×IN分別與N個因子矩陣U(1),U(2),…,U(N)的n-mode乘積的形式,即
A=S×1U(1)×2U(2)×…×NU(N),
(1)
其中U(k)∈I1×IN(k=1,2,…,N)是正交矩陣.
為計算U(k),可將N階張量A沿不同維度展開為矩陣Ai(i=1,2,…,N),并將由Ai進行奇異值分解得到的左奇異矩陣作為張量的因子矩陣Ui,即

(2)
因此,核心張量S可表示為
S=A×(1U(1))T×(2U(2))T×…×(NU(N))T.
(3)
本文將M×M大小的彩色圖像視為三階張量P,對P進行Tucker分解可得
P=ξ×1U(1)×2U(2)×3U(3),
(4)
其中ξ表示核心張量,U(1),U(2),U(3)分別表示大小為M×M,M×M,3×3的正交矩陣.
令張量ζ=ξ×1U(1)×2U(2),ζ的大小和維度與核心張量ξ相同,則式(4)可表示為P=ζ×3U(3).將張量ζ的第i個通道設為Qi(i=1,2,3),Qi稱為彩色圖像Pt的張量特征圖.Pt的第i個通道可通過Qi線性組合得到,表示為

(5)
其中,正交矩陣U(3)的每行表示圖像各色彩通道之間的相關系數,彩色圖像經過Tucker分解后仍然保持RGB通道之間的相關性.
為提升水印算法的魯棒性,需要從Q1,Q2,Q3中選擇出最佳的張量特征圖嵌入彩色水印.彩色載體圖像的能量與各張量特征圖的能量之和相等,表示為

(6)
其中‖·‖表示Frobenius范數.由式(4)和奇異值分解理論可得
‖Q1‖2≥‖Q2‖2≥‖Q3‖2.
(7)
由式(7)可見,Q1,Q2,Q3是按照圖像能量從大到小排列的.3張張量特征圖反映了彩色載體圖像沿RGB通道的變化,Q1由原始圖像中的主要能量組成,因此更適合嵌入水印信息.圖1為512×512彩色Lena圖像通過Tucker分解后提取的張量特征圖.由圖1可見,Q1具有更豐富的紋理特征及邊緣信息,相比于其他特征圖具有更多的能量.

圖1 Lena圖像張量特征圖Fig.1 Tensor feature maps of Lena images
聯合熵較小的圖像區域對圖像攻擊的抵抗能力較強,具有更好的遮蔽能力.本文算法利用熵和邊緣熵表示圖像聯合熵,根據聯合熵大小挑選出遮蔽性較好的圖像子塊嵌入水印,以提高載體圖像的不可見性.圖像熵表示相鄰像素的空間相關性,包含圖像重要的數據信息,圖像熵定義為
(8)
圖像邊緣熵包含了圖像重要的特征信息,邊緣熵定義為

(9)
其中N表示圖像塊的像素個數,pi(0≤pi≤1)表示第i個圖像像素值出現的概率.圖像聯合熵通過熵和邊緣熵得到,定義為

(10)
水印嵌入和檢測的流程如圖2所示.

圖2 水印嵌入和檢測流程Fig.2 Flow chart of watermark embedding and detection
步驟1) 彩色水印圖像預處理.提取出大小為N×N的彩色水印圖像W的RGB分量,分別對3個分量執行Arnold變換,Arnold變換定義為

(11)

步驟2) 彩色載體圖像預處理.將大小為M×M的彩色載體圖像I表示為三階張量A,對A進行Tucker分解,得到張量特征圖Qi(i=1,2,3),取出張量特征圖Q1,并對其進行4×4不重疊分塊處理得到特征圖子塊Q1(i,j)(i,j=1,2,…,M/4).
步驟3) 確定嵌入子塊.計算出每個特征圖子塊Q1(i,j)的聯合熵,挑選出聯合熵較小的子塊,并記錄其坐標位置.
步驟4) 嵌入水印信息.對挑選出的特征圖子塊進行SVD分解,U矩陣的系數U2,1和U3,1在圖像受到攻擊后仍保持極強的穩定性,因此,本文算法利用SVD分解將水印信息嵌入到矩陣U(1,i)中,以提高水印的魯棒性.按下式的嵌入規則將水印信息w′(1,i)嵌入到矩陣U(1,i)中:

(12)



步驟2) 定位嵌入了水印信息的子塊.根據保存的坐標位置提取嵌入了水印信息的特征圖子塊.
步驟3) 提取水印信息.對提取的特征圖子塊進行SVD分解得到其U矩陣,按下式的提取規則提取出水印信息w′:

(13)

在仿真實驗中,選取1 024×1 024大小的Lena,Avion,Baboon,Peppers 4張彩色載體圖像和“福”、“企鵝”兩張彩色水印圖像衡量算法的不可見性和魯棒性,如圖3所示.嵌入水印時的參數如下: 圖像分塊大小為4×4,獲得N=(1 024/4)2個圖像子塊,根據圖像聯合熵選出3×8×322個子塊嵌入水印信息,嵌入強度?=0.715.

圖3 彩色載體圖像與水印圖像Fig.3 Color carrier images and watermark images
為評估嵌入水印圖像的不可見性,采用峰值信噪比(peak signal to noise ratio,PSNR)和結構相似度(structural similarity index measure,SSIM)作為算法的衡量指標.表1列出了Lena,Avion,Baboon,Peppers圖像嵌入水印后的效果和提取的水印圖像.

表1 算法不可見性分析
由表1可見: Lena,Avion,Baboon,Peppers圖像嵌入水印后的PSNR值分別為39.017 5,39.275 3,36.593 3,39.122 7 dB; SSIM值分別為0.992 8,0.993 9,0.991 8,0.984 7.Baboon圖像的PSNR值略低于其他載體圖像,原因在于Baboon圖像相對于其他圖像具有更豐富的邊緣紋理信息,嵌入的水印能量由張量特征圖擴散到彩色載體圖像的各通道中,破壞了圖像大量的細節邊緣紋理,導致圖像PSNR值降低.Peppers圖像的SSIM值略低于其他載體圖像,主要是因為Peppers圖像的色彩跳變幅度較大,嵌入的水印能量會導致圖像對比度降低進而影響SSIM值.4張圖像的PSNR值均在36 dB以上,SSIM值均在0.980 0以上,說明本文算法具有良好的不可見性.
為驗證本文算法的魯棒性,將“福”字彩色水印圖像嵌入到Lena,Avion,Baboon,Peppers圖像中,對彩色載體圖像分別進行常規攻擊、幾何攻擊及部分組合攻擊,利用提取出水印圖像的歸一化相關系數(normalization coefficient,NC)的最大值NCmax評估本文算法的魯棒性,實驗結果分別列于表2和表3.

表2 本文算法對圖像常規攻擊的抵抗能力

表3 本文算法對圖像幾何攻擊的抵抗能力
由表2可見,邊緣紋理信息較豐富的Baboon圖像相對于其他載體圖像在針對各種常規攻擊時具有更高的NC值及更高的穩定性.以Lena圖像為例,Lena圖像在針對不同攻擊強度的椒鹽噪聲、斑紋噪聲均具有較好的性能,NCmax值在0.959 8以上,但在針對高斯噪聲時性能不佳.這主要是因為高斯噪聲不同于椒鹽噪聲和斑紋噪聲,它的幅度分布服從高斯分布,受高斯噪聲攻擊的彩色載體圖像經過張量分解后會將受較大干擾的圖像像素值分配到張量特征圖上,導致NC值降低.Lena圖像在針對不同參數的圖像濾波攻擊時均具有良好的魯棒性,NCmax值達到1.000 0,雖然圖像濾波在不同圖像通道會分區域的改變載體圖像的像素值,但經過張量分解后這些改變的像素值在張量特征圖上的數值相對關系并未改變,通過提取規則仍然能正確地提取水印信息.Lena圖像在針對JPEG壓縮、JPEG2000壓縮、直方圖均衡攻擊時性能略差,NCmax為0.939 2,這主要是因為上述攻擊會整體上改變載體圖像的像素值,導致提取時大范圍出錯.
由表3可見,Lena,Avion,Baboon,Peppers圖像在針對同一攻擊參數的裁剪攻擊時會出現較大的NC值差異,原因在于不同載體圖像提取的張量特征圖區域不同,裁剪掉的部分像素值在不同張量特征圖上選取到的數量不同,導致出現較大的NC值差異.以Lena圖像為例,Lena圖像在針對圖像裁剪左上1/16、中心1/16、右下1/4攻擊時均具有良好的性能,NCmax達到0.983 8,但對圖像裁剪中心1/4時性能較弱,NCmax只有0.927 9.Lena圖像在針對旋轉攻擊以及旋轉+高斯低通組合攻擊時性能不佳,NCmax只有0.741 7,原因在于旋轉攻擊會整體上改變載體圖像像素值的原始位置,導致提取正確率降低.Lena圖像在針對交換行列、JPEG壓縮+中值濾波、交換行+中心裁剪、交換行+均值濾波等攻擊時均展現了較強的魯棒性,NCmax最高達到1.000 0,最低在0.849 3以上.
由上述分析可見,本文算法對圖像常規攻擊和幾何攻擊都有較好的抵抗能力,這主要是因為通過Tucker分解將彩色圖像RGB分量中大部分的低頻能量集中在張量特征圖Q1中,因此將水印信息嵌入到Q1中具有較好的穩定性和魯棒性.
為進一步驗證本文算法的優越性,將本文算法與文獻[4]、文獻[7]、文獻[10]進行對比.選擇1 024×1 024的標準彩色圖像Lena作為載體圖像,選擇32×32的“企鵝”彩色圖像作為嵌入水印,通過提取水印的NC值及視覺效果評估算法魯棒性的優越性.
表4列出了本文算法與文獻[4]、文獻[7]、文獻[10]的魯棒性與視覺效果對比結果.

表4 不同算法對不同攻擊方式抵抗能力的視覺效果與NC值對比

續表4
由表4可見,本文算法在針對圖像濾波攻擊時魯棒性較強,NC值達到1.000 0,NC值相比于對比算法平均提升了6%.原因在于本文通過張量分解將彩色載體圖像進行整體處理,改變的像素值在張量特征圖上的數值相對關系并未改變,而對比文獻均采用了將載體圖像分通道處理嵌入水印,圖像濾波攻擊后各通道改變的像素值的數值相對關系部分發生改變,導致魯棒性不佳.文獻[4]在噪聲攻擊、壓縮攻擊及部分組合攻擊下提取的水印在視覺效果上均優于本文算法,主要是因為文獻[4]在提取時對水印圖像進行了平滑處理,獲得了更好的視覺效果,但文獻[4]的算法復雜度遠高于本文算法.本文算法在針對攻擊參數為0.01的噪聲攻擊時,NC值最高達到0.988 6,弱于文獻[7]的1.000 0,優于文獻[10]的0.978 5; 針對移動模糊攻擊時NC值最高達到1.000 0,均優于其他對比算法; 針對圖像壓縮攻擊時性能略弱于其他對比算法.本文算法在針對旋轉攻擊和與旋轉相關的組合攻擊時魯棒性較差,NC值只有0.765 5,主要是因為旋轉攻擊改變了載體圖像像素值的原始位置,而文獻[4]利用Radon變換進行旋轉校正,用算法復雜度換取了水印的魯棒性.由上述討論可見,本文算法在針對壓縮、裁剪及部分組合攻擊時性能稍弱于對比算法,但提取水印的NC值均在0.925 8以上,在視覺上也能識別出水印的主要輪廓; 在針對不同攻擊參數、不同類型的濾波攻擊時均展現了比其他對比算法更優的性能,NC值最高達到1.000 0.因此,本文算法在整體效果上優于對比算法,提取的水印圖像更清晰,可以更簡單快捷地保障版權所有者的合法權益.
綜上所述,本文通過結合使用張量分解和聯合熵,提出了一種能有效抵抗圖像濾波攻擊的雙彩色魯棒水印算法.該算法先將載體圖像整體進行張量分解提取出張量特征圖并分塊,然后利用聯合熵挑選出遮蔽性較好的特征圖子塊,最后將水印嵌入到特征圖子塊經過SVD分解后的U矩陣中.實驗結果表明,本文算法在保證彩色圖像各通道相關性的前提下不僅對一系列圖像攻擊有較強的魯棒性,而且提取的水印圖像也有良好的視覺效果.