潘 強,印 鑒
(1.珠海城市職業技術學院 經濟管理學院,廣東 珠海 519090;2.中山大學 數據科學與計算機學院,廣東 廣州 510006)
如何保護圖像信息的安全性,是當前各國的研究熱點[1-4]。為此,各國學者提出了水印技術,它是將水印數據隱藏到載體信號來修改初始圖像的內容,形成水印圖像[4]。如李樹全等[5]設計了基于彩色圖像的新型LSB半盲數字水印方案,基于LSB機制,設計水印信息嵌入方法,并將置亂水印密文嵌入到彩色載體圖像的R、G、B三分量中,獲取最終的水印圖像,但此方法是將水印信息隨意嵌入到載體像素中R、G、B三分量,不能準確預測像素值,使其嵌入累積失真較大。SaeidFazli等[6]基于DWT、DCT與奇異值分解,提出了一種魯棒圖像水印方法,利用DCT機制,設計了水印嵌入技術,將水印數據嵌入到載體圖像的頻域子塊中,同時,借助奇異值分解獲取載體圖的角點,建立了水印檢測機制,提取水印信息,但角點的提取易受幾何攻擊的影響,使其算法穩定不佳,削弱了水印圖像的不可感知性。Zhang等[7]提出了基于整數小波變換與位集的圖像水印算法,利用Laplace算子與位集方法確定出穩定邊緣輪廓中的單位圓,將單位圓分割為非重疊方形區域,利用嵌入機制,將水印信息植入到非重疊方形區域,但Laplace算子易受噪聲影響,且其難以準確預測載體圖像的像素,使其存在較大的嵌入失真。
為了降低水印信息的嵌入失真問題,本文設計基于像素預測誤差擴展與優化的極限學習機的圖像水印算法。構造像素交叉混淆技術,對水印信息完成加密;利用變尺度混沌來優化對極限學習機,提高其預測精度,并引入像素預測誤差擴展方法,設計水印信息嵌入機制,將水印數據嵌入到載體圖像中的像素誤差值接近零的像素中,充分降低嵌入失真。同時,利用相應的水印提取技術,聯合解密密鑰,復原水印信息。最后,測試了所提水印算法的不可感知性與失真度。
所提基于像素預測誤差擴展與優化的極限學習機的圖像水印算法如圖1所示,主要有:①基于像素交叉混淆機制的水印置亂;②水印信息的嵌入;③水印信息的檢測。

圖1 本文圖像水印算法過程
為了改善水印信息在載體中的隱秘度與抗外來攻擊性能,本文聯合鋸齒掃描技術[8]與Logistic映射[9],構建了像素交叉混淆機制來加密水印信息,將其信息徹底打亂。令水印信息圖像的尺寸為M×N,利用鋸齒掃描技術[8],將水印信息圖像轉換成像素序列P={P(1) …P(M×N)}。鋸齒掃描函數為[10]

(1)
其中,a是曲線高度;T為曲線周期。
依據鋸齒掃描技術,把水印信息圖像將掃描為1D序列P={P(0),P(1), …,P(M×N-1)}。同時,令混淆圖像的1D序列C=C(0),C(1), …,C(M×N-1)。若L是當前像素位置;L′是交叉位置。則其L′的計算函數為
L′=L+SPL+CL-1modM×N-L
(2)
式中:CL-1為像素灰度值;L是當前像素位置;L′是置亂后新位置;SPL是Logistic映射的序列值,其函數如下[9]
xn+1=λxn1-xn
(3)
其中,λ∈0,4為混沌參數。
再利用式(2)的像素位置L′來構造像素交叉混淆方法
C(L)=P(L′)=P(L+(SP(L)+
C(L-1))mod(M×N-L))
(4)
PR′=PR
(5)
為了清楚解釋所提的像素交叉混淆技術,在明文中隨機選取7個不同位置的像素,如圖2所示。令圖像中A之前的像素都已混淆,而其之后的像素B,C,D都是等待混淆的對象,如圖2(b)所示;本文提出的混淆方法,是利用像素B,C,D來交換E,F,G的位置。由圖2(b)可知,像素PC被交叉互換到PK的位置,初始水印信息中的其它所有未經混淆的像素均按照圖2(a)、圖2(b)進行置亂,獲取水印密文。
通過利用上述像素交叉混淆方法,提高了水印圖像中的每個像素的混淆程度,使其呈現一副與初始水印信息完全不同的水印密文,從而改善了算法的不可感知性與抗攻擊能力。以圖3(a)為例,利用本文像素交叉混淆方法對其加密,得到水印密文如圖3(b)所示。由圖3可知,初始水印的信息被充分打亂,較好地隱秘了其信息,顯著增強了其不可感知性。


(6)

圖2 像素交叉混淆機制

圖3 基于像素交叉混淆的水印加密


圖4 極限學習機的網絡訓練過程
再根據式(6)的輸出矢量oj,計算其代價函數ES
(7)
S=wi,cii=1,2,…,M
(8)
由文獻[13]可在,極限學習機的訓練目標就是尋找最優的S;再根據最優S,得到網絡輸出值與真實值的最小誤差minES

(9)
其中,H,β,T分別為隱層的輸出矩陣、輸出層的輸出矩陣以及目標矩陣。

(10)
其中,H+是H的Moore Penrose廣義逆矩陣。
但是,當前的極限學習機是隨機選擇網絡輸入權值和隱層節點的閾值[13],導致其泛化能力與回歸模型的穩定性較差。為此,本文通過搜索與調整變尺度混沌來優化極限學習機,從而獲取最優的輸入權值與隱層節點的閾值。為此,根據式(7)~式(8),將式(9)簡寫為
(11)
其中,S=wi,cii=1,2,…,M;wi,ci分別是輸入權重與隱層節點閾值。
為方便算法描述,引入兩個變量ai,bi,ai≤wi,ci≤bi,將S=wi,cii=1,2,…,M記為S=(zi,i=1,2,…,L)。其中,ai≤zi≤bi。



(12)

(13)
(4)令k=k+1,繼續執行xk+1=λxk1-xk。
(5)反復執行步驟(2)~(4),直到在一定步數范圍內E*保持不變。隨后,執行步驟(6)。
(6)隨后,減小zi的搜索范圍
(14)

(15)

(16)
其中,α是一個很小的正整數,本文取α=0.01。
(8)令r=r+1;若r>P,或者E* 隨后,利用優化的極限學習機來預測載體圖像的每個像素值。其過程如下: (1)按照從上到下、從左到右的順序,將載體圖像的每個像素的指定鄰域像素作為優化的極限學習機的訓練集的輸入部分; (2)再對這些指定鄰域像素值完成歸一化處理,使其位于-1,1內。通過對其完成訓練與學習過程,可獲得優化極限學習機的回歸模型; 根據優化的極限學習機輸出的像素預測值,引入預測誤差擴展技術[11]來設計水印信息嵌入過程。水印信息嵌入到載體圖像中近零像素中,能夠大幅降低嵌入失真。其嵌入過程如下: (1)令尺寸為M×N的載體圖像為Ixy,再引入光柵掃描排序機制[14],將其變為一個像素序列{p1,p2,p3,…,pM×N}。對于任意的像素pi,利用上述優化后的極限學習機對其預測,獲取其預測值為p′。 (17) (3)然后,利用如下預測誤差擴展機制,將水印密文b嵌入到誤差di中 (18) 其中,b∈0,1為水印信息位。 (4)根據上述誤差擴展機制,形成含水印信息的水印像素 (19) (5)選擇一個閾值T,若預測值di (6)利用載體圖像中前SL個像素的最低有效位LSB[16]來構成一個新序列R,依據式(18),將水印信息與R嵌入到擴展像素中。 (20) (4)通過步驟(3)處理后,得到水印密文。然后,再利用解密密鑰a,T,λ,對水印密文進行復原,獲取清晰的水印信息。 為了驗證本文水印技術的不可感知性與嵌入失真,在Matlab軟件中進行實驗,同時,并將文獻[5]與文獻[6]作為對照組,以反映所提算法的優異性。實驗環境是:DELL, 2.5 GHz,雙核CPU,400 GB硬盤與4 G RAM。從USC-SIPI測試集中[17]中挑選4幅圖像作為載體圖像,如圖5(a)~圖5(c)所示,其大小都是512×512;另外,圖5(d)~圖5(f)是待嵌入的水印信息。執行水印嵌入的部分參數為a=4,T=8,λ=3.5,α=0.01;輸入層、隱層、輸出層節點數量分別為m=32、M=8、n=32。 圖5 載體圖像與水印信息 算法的量化指標為:①不可感知性;②抗失真性能。 利用本文算法、文獻[5]、文獻[6]這3種技術將圖5(d)~圖5(f)分別嵌入到圖6(a)、圖7(a)、圖8(a)中,得到的水印結果如圖6~圖8所示。根據輸出水印圖像可知,3種算法都具備良好的不可感知性,所有水印信息都成功地嵌入到載體圖像中,三者只呈現載體圖像的相關信息,攻擊者難以從水印圖像中獲取任何水印數據,如圖6~圖8所示。但是,視覺評估是難以具體量化這3種技術的隱秘性差異,故本文引入差分圖[18]來體現所提技術的優異性。將圖7(c)~圖7(e)作為實驗對象,設置0.4 bpp的嵌入率,獲取三者對應的差分圖結果如圖9所示。根據實驗曲線可知,所提水印技術的水印圖像的隱秘性最佳,具備更高的不可感知性,其水印圖像的像素灰度分布與載體圖像的擬合度最高,無階梯效應,如圖9(a)所示,但是,文獻[5]、文獻[6]雖然具有良好的視覺不可感知性,但是其水印圖像的差分圖都存在一定的階梯效應,其像素灰度分布與載體圖像的擬合度均要低于所提技術,如圖9(b)、圖9(c)所示,特別是文獻[6],其水印圖像的階梯效應最大。原因是本文技術構造了像素交叉混淆方法,高度置亂了水印像素信息,充分提高了水印圖像的不可感知性,且利用了變尺度混沌來優化極限學習機,改善了其回歸模型的穩定,提高了載體圖像中每個像素的預測精度,將水印信息嵌入到近零像素中,從而使其水印圖像的隱秘性最高。而文獻[5]雖然也對水印信息進行了混沌置亂,將水印密文嵌入到載體圖像中的LSB中,但其是將水印信息隨意嵌入到載體像素中,使其嵌入過程存在較大的失真,且單純的LSB技術的隱秘性不高,從而使其水印圖像的不可感知性要低于所提技術。文獻[6]算法主要是直接將水印信息嵌入載體圖像中,缺乏對水印信息的安全處理,導致其水印圖像的隱秘性最低。 圖6 Lena圖像的水印嵌入測試 圖7 Mandrill圖像的水印嵌入測試 圖8 House圖像的水印嵌入測試 圖9 3種算法的水印圖像的不可感知性測試結果 衡量水印算法的評估指標除了不可感知性外,其提取水印信息的失真程度也是重要指標[3]。故本文以圖7(c)~圖7(e)為對象,利用本文算法、文獻[5]、文獻[6]相應的水印信息檢測方法來提取初始水印,同時,借助峰值信噪比PSNR、相關系數NC[19]來反映提取水印的失真度,所得數據見表1。根據表1中的測試結果可知,3種算法的提取水印都存在一定的失真,然而,所提水印算法的復原水印的失真度最小,所輸出的水印信息和初始水印非常相似,其PSNR、NC值都是最大,分別為46.28 dB、0.995。而文獻[5]、文獻[6]算法的提取水印質量不佳,其失真度較大,所對應的PSNR、NC值都要小于本文技術。原因是本文算法利用了變尺度混沌來優化極限學習機,提高了其泛化能力與回歸模型的穩定,從而提高了載體圖像中每個像素的預測精度,通過將水印信息嵌入到近零像素中,有效降低了嵌入失真。而文獻[5]、文獻[6]兩種技術都是將水印信息任意嵌入到載體圖像像素中,使其嵌入過程存在一定的失真;雖然文獻[5]的不可感知性要高于文獻[6],但是由于通過將水印信息直接嵌入到載體圖像的低頻子帶中,通過奇異值分解來實現水印嵌入,在一定程度上可以有效降低視覺失真,使其抗失真性能要高于文獻[5]。 為了量化在不同嵌入率下的水印提取失真度,本文以圖6(a)、圖7(a)、圖8(a)為對象,通過設置多個嵌入率,利用所提技術、文獻[5]、文獻[6]復原水印,形成 表1 不同算法的抗失真性能測試 的PSNR曲線如圖10所示。根據PSNR曲線可知,當嵌入率不斷增大時,3種技術的復原水印所對應的PSNR值均呈現下降趨勢,然而,本文技術的復原水印的PSNR值最大,且對于載體圖像中的近零像素,其允許的嵌入容量可超過1位;而文獻[5]、文獻[6]算法的PSNR值不但要小于所提技術,同樣,其每個像素所允許的水印容量都要低于1位。這顯示所提水印算法具備更低的水印嵌入失真與更大的水印容量。 圖10 不同嵌入率下的各算法水印提取PSNR曲線 為了改善水印圖像的不可感知性與抗失真性能,本文提出了基于像素預測誤差擴展與優化的極限學習機的圖像水印算法。利用Logistic映射來設計像素交叉混淆技術,高度混亂水印信息,對其實現加密,改善水印信息的隱密性;再利用變尺度混沌,來改進極限學習機,提高其回歸模型的穩定性與泛化能力。隨后,借助優化的極限學習機來預測載體圖像中的每個像素,基于像素預測誤差擴展方法,將每個像素值的誤差與水印信息嵌入載體圖像,輸出水印圖像。最后,利用相應的水印檢測技術與密鑰來完整復原水印信息。實驗結果驗證了所提技術的有效性與優異性。




1.3 水印信息的檢測



2 仿真結果及分析

2.1 不可感知性能測試分析




2.2 算法抗失真性能測試分析


3 結束語