李美燕,孫孟卓,李 德
(延邊大學工學院 吉林 延吉 133002)
隨著科技和技術的發(fā)展數(shù)字水印的應用領域一直擴大,數(shù)字水印技術是保護信息安全、實現(xiàn)版權保護和解決版權糾紛等問題的有效方法[1]。目前已經(jīng)有很多種數(shù)字水印方法被研究和應用,試圖在空間域、變換域和壓縮域等域層盡可能做數(shù)字水印方法的擴展,嘗試更多的可能性[2-3]。本文利用數(shù)字水印技術中的典型patchwork方法和時頻域的改進算法探究了patchwork方法的魯棒性。
基于patchwork方法進行水印的嵌入,具體流程為:(1)讀入載體圖像,得到uint8類型圖像文件參數(shù),將參數(shù)賦給另一個參數(shù),現(xiàn)在就有兩個相同的圖像信息參數(shù)備用。(2)將其中一個參數(shù)改為雙精度浮點類型備用,并通過參數(shù)獲取矩陣的行數(shù)和列數(shù)。(3)通過循環(huán)運算,將像素點行列數(shù)相加之和能被2整除的像素點的像素值增加c,將像素點行列數(shù)相加之和不能被2整除的像素點的像素值減少c。每個挨著的像素點的所經(jīng)歷的像素值加減操作都不一樣[4]。(4)將這個參數(shù)的圖像數(shù)據(jù)寫到圖像文件里,得到嵌入了patchwork數(shù)字水印的圖像,見圖1。
圖1 patchwork方法嵌入水印示意圖
基于patchwork方法進行水印的提取,具體流程為:(1)讀入載體圖像,將圖像信息參數(shù)轉換為double類型為運算備用,并獲取矩陣的行數(shù)和列數(shù),并設定閾值。(2)將像素點行列數(shù)相加之和能被2整除的像素點(a類)的像素值做累和運算,將像素點行列數(shù)相加之和不能被2整除的像素點的(b類)像素值做累和運算。(3)求出a類像素點的像素值的均值和b類像素點的像素值的均值。(4)判定水印的存在與否:如果兩類像素點的像素值均值之差大于閾值,則認定為是有水印的,否則認定為是沒有水印的,見圖2。
圖2 patchwork方法提取水印示意圖
(1)讀入載體文件,將圖像信息參數(shù)轉換為雙精度類型為運算備用。
(2)產生一個8×8的DCT變換矩陣,進行離散余弦變換。
(3)得到重構后的圖像。再用典型patchwork方法進行水印的嵌入[5-6]。
本實驗在MATLAB R2019a環(huán)境下對原始測試圖片用典型patchwork方法添加數(shù)字水印,并在添加數(shù)字水印之后,進行各種攻擊環(huán)境下的水印盲檢測。再用離散余弦變換對原始測試圖片做頻域變換處理,用patchwork方法嵌入數(shù)字水印,進行各種攻擊環(huán)境下的水印盲檢測。最后對patchwork算法和patchwork改進算法經(jīng)過各種攻擊的圖像與原圖像進行余弦相似度的測試。對每個攻擊測試進行分析,再對比兩組實驗的數(shù)據(jù)做進一步分析檢測算法的魯棒性。
2.2.1 典型patchwork方法
對添加了patchwork方法的數(shù)字水印的圖像加入了8種攻擊,實驗結果如表1所示。(為了保持圖像整齊良好的視覺效果,有的被改動過寬高)
表1 典型patchwork方法攻擊環(huán)境下的水印盲檢測
下面是對每一次實驗操作的解釋和總結:
(1)高斯噪聲:參數(shù)設置到約0.049以上的時候,不能檢測出水印。
(2)椒鹽噪聲:參數(shù)設置到約0.061 5以上的時候,不能檢測出水印。
(3)乘性噪聲:參數(shù)設置到約0.085以上的時候,不能檢測出水印。
(4)泊松噪聲:patchwork方法下的數(shù)字水印能夠抵抗泊松噪聲。
(5)剪切:只要是能得出結果的經(jīng)過剪切的圖片都能檢測到水印的存在,patchwork方法對剪切攻擊有著非常強的魯棒性。
(6)旋轉:patchwork方法下的數(shù)字水印不能抵抗旋轉攻擊。
(7)腐蝕:patchwork方法下的數(shù)字水印不能抵抗腐蝕攻擊。只有當se = strel('disk',0);時才會顯示有水印,而做了一組對照實驗,根據(jù)實驗結果顯示此時它的數(shù)據(jù)與只加了水印但是沒有經(jīng)歷任何攻擊的實驗結果完全相同,說明當參數(shù)為0時,并沒有對圖片進行腐蝕。所以該方法無法承受腐蝕攻擊。
(8)膨脹:只對膨脹強度是se = strel('ball',2,1);的時候可以檢測出水印。對于se = strel('ball',a,b);當se = strel('ball',2,1);時能夠檢測出水印,當a=2,b=2和a=2,b=3和a=2,b=4時,通過對比數(shù)據(jù),與a=2,b=1的實驗結果的各項數(shù)據(jù)是完全相同的,皆能檢測出水印。推論:當b>=a時,實驗結果與se = strel('ball',a,a-1);完全相同。a->半徑,b->高度,不可以類比成畫圖是x和y,這個ball它只能做成橢圓形而且當高度大于等于半徑時,結果是無效且等于高度=半徑-1時的實驗結果,且參數(shù)只能是整型的。
另外,用patchwork方法在各種攻擊下進行圖像與原始圖像的余弦相似度測試,結果如表2所示。
表2 典型patchwork經(jīng)攻擊后圖像與原始圖像的余弦相似度
2.2.2 時域結合算法與檢測結果
對時域結合算法添加數(shù)字水印的圖像進行了與上個實驗相同的8種攻擊,實驗結果為:
(1)高斯噪聲:參數(shù)設置到約0.053以上的時候,不能檢測出水印,比典型patchwork方法對抗高斯噪聲的能力較有提升。
(2)椒鹽噪聲:參數(shù)設置到約0.062以上的時候,不能檢測出水印,比典型patchwork方法對抗椒鹽噪聲的能力較有提升。
(3)乘性噪聲:參數(shù)設置到約0.089以上的時候,不能檢測出水印,比典型patchwork方法對抗乘性噪聲的能力較有提升。
(4)泊松噪聲:時域結合算法添加數(shù)字水印的圖像也能夠抵抗泊松噪聲。
(5)剪切:時域結合算法添加數(shù)字水印的圖像對剪切的攻擊也同樣有著非常強的魯棒性。
(6)旋轉:時域結合算法添加數(shù)字水印的圖像也不能抵抗旋轉攻擊。
(7)腐蝕:時域結合算法添加數(shù)字水印的圖像不能抵抗腐蝕攻擊。
(8)膨脹:只對膨脹強度是se = strel('ball',2,1);的時候可以檢測出水印。
另外,用時頻域變換在各種攻擊下進行圖像與原始圖像的余弦相似度測試,結果如表3所示。
表3 時頻域變換經(jīng)攻擊后水印圖像與原始圖像的余弦相似度
通過上述實驗結果分析可知,patchwork方法的數(shù)字水印對于高斯噪聲、椒鹽噪聲、乘性噪聲、泊松噪聲和膨脹攻擊都有不錯的魯棒性和抵抗能力,patchwork方法對于剪切攻擊也有著非常好的抵抗能力,但是不能抵抗旋轉攻擊和腐蝕攻擊?;跁r頻域改進算法的數(shù)字水印,其抵抗高斯噪聲、椒鹽噪聲和乘性噪聲的能力,通過明顯的數(shù)據(jù)對比,較只通過patchwork方法加上水印的有著更好的抵抗能力,對泊松噪聲和膨脹攻擊也都有一定的魯棒性和抵抗能力,增強了魯棒性,但也不能抵抗旋轉攻擊和腐蝕攻擊。通過兩組水印實驗結果的余弦相似度的對比可以看出,在高斯噪聲、椒鹽噪聲、乘性噪聲、泊松噪聲和剪切攻擊下可以檢測出水印,但時頻域結合算法圖像比原始圖像的余弦相似度更低,進一步提高了典型patchwork方法的魯棒性。
本文通過patchwork算法為數(shù)字圖像添加水印,提取水印,利用攻擊環(huán)境下的水印盲檢測探究該算法的魯棒性,并對典型的patchwork算法進行基于時頻域的改進算法,探究改進算法的魯棒性。通過實驗證明,典型patchwork算法有較強的魯棒性,基于時頻域的改進算法進一步增強了典型patchwork算法的魯棒性。