孫文靜+陳建華+章無用
摘 要
針對目前大部分水印算法嵌入容量小、抗剪切等幾何攻擊性能差的缺點,提出一種利用特征點對匹配關系進行圖像矯正,并通過BCH碼進行糾錯的大容量水印嵌入方案。本方案利用SURF算法從原始圖像和受攻擊圖像中分別提取特征點,結(jié)合向量匹配法及RANSAC算法進行誤匹配特征點對排除,根據(jù)特征點對間的坐標關系,用最小二乘法擬合出仿射矩陣進行圖像矯正。實驗結(jié)果表明,本算法具有水印嵌入容量大、魯棒性強、透明性好等特點。
【關鍵詞】BCH碼 SURF特征點 向量匹配法 RANSAC算法
目前已發(fā)表的水印文獻中能有效抵御常規(guī)攻擊及幾何(RST)攻擊的大多是基于圖像特征點或特征區(qū)域的算法。例如文獻[1][2][3]雖然都可以有效應對旋轉(zhuǎn)、平移、縮放等一般幾何攻擊,文獻[2]甚至可以抵御部分聯(lián)合攻擊及剪切攻擊,但其統(tǒng)一缺點是水印嵌入容量小?;谀0娴乃〕C正技術雖然可以解決水印嵌入容量小的問題,但這類水印的提取方案對模版準確性依賴太強,一旦模版在攻擊中受損就會導致矯正方案的失敗。
本文在吸取前人經(jīng)驗的基礎上,提出一種既能保持較大水印嵌入容量,又能有效抵御剪切等幾何攻擊的魯棒性水印算法。本算法利用從原始圖像和受攻擊圖像中提取出來的特征點對進行匹配,根據(jù)特征點對間的坐標關系結(jié)合最小二乘法擬合出受攻擊圖像的仿射變換矩陣,對受攻擊圖像進行幾何矯正。為了應對剪切攻擊對水印圖像造成的損害,本文還結(jié)合BCH碼,將水印圖像編碼后在DWT-DCT變換域進行嵌入,即使圖像遭受大面積剪切攻擊,只要剪切幅度不超過原始圖像的50%都能提取出水印信息。
1 特征點的提取及篩選方案
本文利用SURF算法從原圖像和受攻擊圖像中分別提取特征點,由于提取出來的特征點數(shù)目可能高達幾百個,但并不是所有的特征點都適合用作模版匹配,因此在特征點提取出來后還得做篩選,只選擇中間尺度范圍的特征點。接著選出|det(Happrox)|值最大的特征點,設其坐標為(c1,c2),對應的尺度為σ,生成的圓形特征區(qū)域如式(1)所示。
(1)
從剩下的特征點中選出|det(Happrox)|值最大,且由式(1)確定的特征區(qū)域與之前的區(qū)域不重疊的特征點,對所有特征點重復上述操作,根據(jù)圖像紋理豐富程度的不同選出20個左右的特征點保存為密鑰。
2 仿射矩陣的估計
2.1 最佳匹配特征點對的挑選
圖像在遭受攻擊后提取出來的魯棒性特征點,與從原始圖像中挑選出來的特征點可能會產(chǎn)生誤匹配情況,為了提高特征點對的匹配準確性,本文采用最近鄰向量匹配法找出所有潛在匹配的特征點對,但仍然可能存在誤匹配的情況,因此使用RANSAC算法進行特征點對的二次挑選。
2.2 最小二乘法
原始圖像和受攻擊圖像最佳匹配特征點對篩選出來后,就可以通過點對之間的關系進行受攻擊圖像仿射矩陣的估計了。假設圖像仿射變換前后的坐標關系如式(2)所示,其中(u,v)為某特征點a的原始坐標、(x,y)為a點經(jīng)仿射變換后與(u,v)相匹配的特征點坐標,記作點b:
3 水印編碼方案
在水印處理方面,為了應對水印在圖像傳輸過程中的突發(fā)或隨機差錯,早已有學者引入了各種信道編碼方案。本文在多方比較之下選用了具有優(yōu)秀檢錯、糾錯性能,且編碼方案簡單成熟的BCH碼。
利用BCH碼編碼糾錯的問題在于,信道編碼僅在矯正和檢測單個差錯和不太長的差錯時才更有效。而圖像攻擊一般是對一段連續(xù)比特單元的修改或刪除。為了保證出錯的單元之間足夠離散,提高水印抗突發(fā)錯誤的能力,本文采用交織算法對BCH編碼后的碼流進行處理。
設n為碼字長度,t為糾錯個數(shù),k為編碼消息組長度,W為待編碼的水印圖像,將W讀作碼流S1后按照k位一組劃分消息組并對所有消息組進行BCH編碼獲得碼流S2。
交織過程如圖2所示(圖2假設交織深度為48),將碼流S2按照圖2所示的方法進行交織重排,直至所有單元重排完畢獲得碼流S3。一般來說,交織深度越深,碼流離散度越好,而當交織深度足夠深時,信源離散度已經(jīng)足夠,再繼續(xù)增加交織深度也無法獲得更為理想的編碼糾錯效果。在經(jīng)過一系列對比實驗后,本文選擇的交織深度為124。
在進行反交織編碼時,只要將圖2所示的過程進行逆操作即可。
4 水印的嵌入與提取方案
4.1 水印的嵌入方案
本文結(jié)合DWT和DCT變換的優(yōu)點,在DWT-DCT域進行水印嵌入,具體嵌入步驟如下:
(1)將設定區(qū)域圖像剪裁出來并進行一層DWT變換,變換后取其低頻系數(shù)部分LL1進行8×8分塊DCT變換,共獲得x個DCT子塊,每個子塊包含64個待選嵌入位置,按照盡量分散的原則根據(jù)S3的長度分配每個DCT子塊的嵌入比特數(shù)z:
(6)
(2)按順序掃描S3中每個比特,設S3當前檢索位置為k(k=1……length(S3)),在每個DCT子塊中按照Zigzag掃描順序選擇z個合適的位置對S3(k)進行嵌入,z個位置全部嵌滿后自動搜索下一子塊繼續(xù)對S3(k)進行嵌入。
(3)記在DCT子塊中當前嵌入位置為j,S3比特流的嵌入值按照如下公式(7)進行:
γ為量化補償參數(shù),取0~0.25之間,為量化步長,是JPEG標準量化表中與選定嵌入位置j點對應的量化系數(shù),fi(j)為當前嵌入位置點的DCT系數(shù)值。
(4)進行IDCT、IDWT得到嵌入水印后的部分載體圖像W1。
(5)將W1重新合并入原載體圖像中,還原成一副完整的載體圖像。
4.2 水印W的提取方案
(1)將經(jīng)矯正和重同步后的圖像按照實驗設定區(qū)域進行剪裁,進行一層DWT變換,取出低頻子帶部分LL1并對其進行8×8的DCT變換,在每一個DCT子塊當中,按公式(9)提取水印流:
其中
(9)
為公式(7)中選定的量化步長,是JPEG標準量化表中與位置為j的嵌入點對應的量化系數(shù),fi'(j)為從剪裁區(qū)域低頻系數(shù)部分中位置j提取出來的DWT-DCT變換域值;
(2)進行反交織編碼和反BCH編碼;
(3)重構(gòu)水?。?/p>
5 實驗及仿真結(jié)果
本文采用512*512的lena.bmp圖像做水印容量測試,實驗使用的仿真工具為2011b版MATLAB,交織深度為124,BCH編碼的方案為n=31,k=6,t=7。當水印嵌入容量為576bits時,PSNR為46.2024;當水印嵌入容量為2304bits時,PSNR為46.1976;即使水印嵌入容量為4096bits時,PSNR也能達到45.2184,說明本文水印嵌入方案具有良好的隱蔽性。而如果愿意適當犧牲BCH碼糾錯性能,則嵌入更大容量的水印圖像也成為可能。
為了驗證本文算法的魯棒性,本小節(jié)設計了兩組對比實驗與文獻[8]的實驗結(jié)果做比較,所有算法均以誤碼率(BER)來表示誤差。載體圖像選用512*512的lena.bmp,水印嵌入容量為576 bits,交織深度為124。每組實驗分別采用三種不同的BCH編碼方案,設n為碼字長度,t為糾錯個數(shù),k為編碼消息組長度,當編碼方案為n=31,k=6,t=7時,BCH編碼后實際嵌入容量為2976 bits,在本文中用算法一表示;當編碼方案為n=63,k=7,t=15時,BCH編碼后實際嵌入容量為5332 bits,在本文中用算法二表示;當編碼方案為n=127,k=8,t=31時,BCH編碼后實際嵌入容量為9176 bits,在本文中用算法三表示。表1中文獻[8]算法水印容量為64 bits,表2中文獻[8]算法水印容量為128bits,是100幅圖像的BER均值。
表2中仿射變換1的變換系數(shù)為(1.007,0.01;0.01,1.012);仿射變換2的變換系數(shù)為(1.010,0.013;0.009,1.011);仿射變換3的變換系數(shù)為(1.013,0.008;0.011,1.008)。從表1和表2中可以看出,即使在水印嵌入容量增大的情況下,本文算法依然在抵抗濾波、加噪聲、平移、旋轉(zhuǎn)、縮放、錯切、一般仿射變換方面有較為優(yōu)異的表現(xiàn)。值得一提的是抗剪切性,即使載體圖像遭受達20%的剪切攻擊后本文算法仍能提取出清晰的水印圖像。
表3是本文算法在應對部分聯(lián)合攻擊時的BER,抗聯(lián)合攻擊時的誤碼率通常比抗單一攻擊時高,由于攻擊類型多樣,無法對所有的聯(lián)合攻擊做出相應的矯正,因此只對部分常見的聯(lián)合攻擊做出了抗攻擊能力測試。從實驗結(jié)果可以看出,當聯(lián)合攻擊中包含有不等比例縮放時,本文算法誤碼率上升較快,這也是今后算法的改進重點。
6 結(jié)語
針對目前大部分水印算法嵌入容量低、抗攻擊類型單一的情況,提出了一種基于特征點和BCH碼的大容量水印嵌入方案。本文算法通過特征點對的匹配關系進行仿射矩陣的估計,可以對大多數(shù)圖像攻擊進行矯正,但缺點在于,當圖像遭受隨機刪除行列攻擊時,由于攻擊的隨機性導致算法無法進行圖像矯正,誤碼率高低完全取決于BCH碼的糾錯能力。
從本文進行的對比實驗結(jié)果可以看出,大部分情況下,BCH碼編碼時冗余度越大,提取出的水印誤碼率越低,但也存在著部分比較奇異的情況,那是由于在進行隨機實驗時,有時仿射矩陣的估計不理想而至。從本文與其他文獻的實驗對比結(jié)果可以看出,本文算法具有抗攻擊類型豐富、水印嵌入容量大、誤碼率低、魯棒性強、透明性好、算法簡單等特點。
參考文獻
[1]劉全,張樂,張永剛,Christian Bessiere,傅啟明,王曉燕.基于角點特征的幾何同步數(shù)字水印算法[J].通信學報,2011,32(04):25-31.
[2]李雷達,郭寶龍,表金峰.基于奇偶量化的空域抗幾何攻擊水印圖像算法[J].電子與信息學報,2009,31(01):134-138.
[3]劉培利,譚月輝.基于不變質(zhì)心及SIFT特征點的抗幾何攻擊零水印算法[J].計算機應用與軟件,2014,31(05):300-304.
[4]史寶明,賀元香,蕭萍,李嵐.一種基于圖像特征的彩色圖像水印算法[J].計算機應用與軟件,2014,31(11):307-310.
[5]Deng C,Gao XB.Geometrically Robust Image Watermarking Based on SIFT Feature Regions.Guangzi Xuebao/acta Photonica Sinica,2009,38(04):1005-1010(in Chinese with English abstract).
[6]Bay H,Ess A,Tuytelaars T,Luc VG.Speeded-Up Robust Features.Computer Vision & Image Understanding,2008,110(03):346-359.
[7]Chang CC,Chen TS,Chung LZ.A steganographic method based upon JPEG and quantization table modification.Information Sciences,2002,141(1-2):123-138.
[8]Tian HW,Zhao Y,Ni RR,et al.LDFT-based watermarking resilient to local desynchronization attacks.IEEE Trans. on Cybernetics,2013,43(06):2190-2201.