鄭秋梅 楊亞男 曹寶琴 王風(fēng)華 張萌萌
(中國石油大學(xué)(華東)計(jì)算機(jī)與通信工程學(xué)院 青島 266580)
隨著互聯(lián)網(wǎng)、多媒體技術(shù)的迅速發(fā)展,使得多媒體內(nèi)容分發(fā)、通訊、再現(xiàn)變得容易,隨之而來也出現(xiàn)了很多問題,如內(nèi)容的篡改、非法復(fù)制、發(fā)行、再傳輸。數(shù)字水印技術(shù)[1~2]是解決這些問題的有效手段之一。數(shù)字水印是以不易察覺的方式將水印嵌入作品所有權(quán)版權(quán)信息(企業(yè)標(biāo)識、作品信息等),來保護(hù)版權(quán)所有者的合法利益。目前數(shù)字水印算法大多數(shù)以灰度圖像為研究載體,而彩色圖像在實(shí)際的應(yīng)用場景中占主導(dǎo)地位。目前彩色圖像數(shù)字水印算法大多利用人類視覺系統(tǒng)的特性,在載體圖像的頻域系數(shù)中嵌入水印,然而由于頻域系數(shù)沒有幾何不變性,不能有效抵抗幾何攻擊,因此,設(shè)計(jì)彩色圖像能夠抵抗幾何攻擊的水印算法成為研究熱點(diǎn)和難點(diǎn)。
近幾年抗幾何攻擊的水印算法主要采用第二代數(shù)字水印技術(shù)[3~4]。第二代數(shù)字水印技術(shù)利用圖像內(nèi)在特征進(jìn)行水印嵌入在抗幾何攻擊中具有良好的魯棒性。其基本思想是利用提取圖像中具有幾何不變性的特征點(diǎn),利用這些特征點(diǎn)來構(gòu)造特征區(qū)域,將水印信息嵌入其中,從而提高水印算法對幾何攻擊的魯棒性。目前針對抗幾何攻擊,國內(nèi)外學(xué)者利用Harris 角點(diǎn)具有RST 不變性的特性做了大量研究。Qi等[5]提出,圖像內(nèi)容由基于圖像紋理的自適應(yīng)Harris 角檢測器獲得的重要特征點(diǎn)表示,這些重要的特征點(diǎn)具有幾何意義,因此能夠利用基于Delaunay三角形匹配方法去同步攻擊。陳青等[6]利用Harris 算子提取并篩選穩(wěn)定的特征點(diǎn),在特征區(qū)域的小波域嵌入水印,該算法抗旋轉(zhuǎn)攻擊魯棒性較好,但水印圖像和載體圖像像素大小受特征區(qū)域個(gè)數(shù)限制。周廣州等[7]利用Harris算子提取出歸一化圖像的特征點(diǎn),選取部分穩(wěn)定特征點(diǎn)確定特征區(qū)域,對特征區(qū)域進(jìn)行一次小波分解,利用分塊加權(quán)奇異值分解法提高水印的魯棒性,該算法對剪切攻擊魯棒性良好,但對中值濾波、縮放攻擊、旋轉(zhuǎn)攻擊等水印攻擊魯棒性不佳。
單一地使用Harris 算子提取特征點(diǎn),通過這些特征點(diǎn)選定的特征區(qū)域,特征點(diǎn)個(gè)數(shù)較少,當(dāng)圖像旋轉(zhuǎn)角度較大時(shí),遭受攻擊后點(diǎn)位移或剪切時(shí),特征區(qū)域不穩(wěn)定,水印無法恢復(fù)。本文根據(jù)人眼視覺特性,采用彩色圖像作為載體圖像,利用具有旋轉(zhuǎn)不變性的Harris 算子,提出一種新的基于聚類算法的特征構(gòu)造算法,使得到的特征區(qū)域不但盡可能多地包含穩(wěn)定的特征點(diǎn)又互不重疊,采用DC 系數(shù)自適應(yīng)的水印嵌入算法,保證了對常規(guī)圖像處理攻擊的魯棒性。
Harris 角點(diǎn)檢測函數(shù)計(jì)算簡單,同時(shí)該響應(yīng)函數(shù)具有旋轉(zhuǎn)不變性。Harris[8~9]在1988 年改良并優(yōu)化Moravec 算子,考慮角點(diǎn)與方向的差值,提出了Harris 角點(diǎn)檢測算法。Moravec 算法[10]的窗口移動方向都是45°或45°的整數(shù)倍,而Harris 算法將窗口沿各個(gè)方向進(jìn)行移動,計(jì)算出各個(gè)方向上的像素梯度變化,定義灰度值的變化如式(1):
其中,Iu,v為圖像的灰度函數(shù),wu,v=e-(u2+v2)/ο2為窗口函數(shù)。
對于局部微小的移動量[x,y] ,可以近似得到下面的表達(dá):
其中,k是一個(gè)經(jīng)驗(yàn)常量,一般k∈[0 .04,0.06] ,Tr(M)和Det(M)分別是矩陣M的行列式和跡。
R值與M的特征值有關(guān),當(dāng)R為大數(shù)值正數(shù)、大數(shù)值負(fù)數(shù)和小數(shù)值,對應(yīng)檢測到的是角點(diǎn)、邊緣和平坦區(qū)。圖1 為對Lena 圖和Baboon 圖進(jìn)行Har?ris特征檢測后得到的結(jié)果。
圖1 Harris特征檢測結(jié)果
由圖1 可以看出,Harris 角點(diǎn)的檢測算法提取出的角點(diǎn)數(shù)目較多且密集,分布較廣,聚類算法構(gòu)造特征區(qū)域具有局限性,因此本文采用一種加權(quán)Harris 角點(diǎn)檢測算法[11],給每個(gè)檢測到的角點(diǎn)分配權(quán)值,通過權(quán)值大小來進(jìn)行角點(diǎn)篩選。
將式(5)中計(jì)算得到的R值歸一化,作為其初始權(quán)值,Harris 角點(diǎn)檢測算法提取出的角點(diǎn)作為窗口的中心點(diǎn),每一個(gè)角點(diǎn)用窗口(尺寸為7×7)進(jìn)行遍歷。根據(jù)式(6)計(jì)算中心角點(diǎn)的權(quán)值。
其中value 為權(quán)值,(x,y)為中心角點(diǎn)的坐標(biāo),(x',y')為窗口覆蓋區(qū)域坐標(biāo)。
根據(jù)value 的大小對提取到的角點(diǎn)進(jìn)行劃分,權(quán)值大的角點(diǎn)比權(quán)值小的角點(diǎn)更為重要,利用特征權(quán)值對特征點(diǎn)進(jìn)行初步篩選后,采用K-means聚類算法構(gòu)造特征區(qū)域。
K-means 是解決眾所周知的聚類問題最簡單的無監(jiān)督學(xué)習(xí)算法之一。其基本思想[12]為將n個(gè)數(shù)據(jù)點(diǎn)劃分為K個(gè)不相交的類,其類簇中心為μi,把數(shù)據(jù)點(diǎn)劃分至與μi距離最小的類簇中,以便最小化等式(7)的平方誤差函數(shù):
K-means算法詳細(xì)流程如下。
步驟1初始化質(zhì)心μi,i=1,2,...k;
步驟2按照距離最近原則,將數(shù)據(jù)點(diǎn)劃分到最近的聚類中心那一類中;
步驟3當(dāng)分配完所有點(diǎn)后,計(jì)算K 個(gè)質(zhì)心的位置;
步驟4循環(huán)步驟2 和步驟3,直至質(zhì)心不再改變。
對K 值和初始質(zhì)心的選取方面,K-means 算法需要選取K 個(gè)初始質(zhì)心,常見的方法是隨機(jī)選取,但這種方法得到的聚類劃分效果較差;K-means算法選取初始質(zhì)心需要不停地計(jì)算距離平方和,以得到最佳聚類中心,若數(shù)據(jù)集里面的數(shù)據(jù)量很大時(shí),需要耗費(fèi)大量的時(shí)間。本文采用與層次聚類結(jié)合的方法[13],首先對特征點(diǎn)進(jìn)行層次聚類,根據(jù)層次聚類結(jié)果選取K值和初始質(zhì)心。
不同特征區(qū)域內(nèi)可能會含有相同的特征點(diǎn),若構(gòu)造方法不得當(dāng)不僅會導(dǎo)致特征區(qū)域重疊反復(fù),還容易導(dǎo)致水印信息的交錯(cuò)相互影響,因此利用K-means聚類算法設(shè)計(jì)特征區(qū)域構(gòu)造算法,使得到的特征區(qū)域不但包含穩(wěn)定的特征點(diǎn)又互不重疊。
本文提出一種新的基于K-means 聚類和Har?ris角點(diǎn)的特征區(qū)域構(gòu)造算法,通過加權(quán)Harris角點(diǎn)檢測提取圖像的特征點(diǎn),選取響應(yīng)值R較大的特征點(diǎn),利用K-means聚類算法設(shè)計(jì)特征區(qū)域構(gòu)造算法,使得到的特征區(qū)域不但盡可能多的包含穩(wěn)定的特征點(diǎn)又互不重疊。
構(gòu)造算法具體流程如下。
步驟1通過加權(quán)Harris 角點(diǎn)檢測算法給每個(gè)檢測到的角點(diǎn)分配權(quán)值value,權(quán)值較大的點(diǎn)周圍的角點(diǎn)分布密集,權(quán)值較小的點(diǎn)周圍的角點(diǎn)數(shù)量少;
步驟2根據(jù)需要構(gòu)造的特征區(qū)域數(shù)TN 選取合適的K 值,根據(jù)角點(diǎn)value 值的大小初步篩選后,利用層次聚類法對特征點(diǎn)初次聚類,得到K 個(gè)層次聚類中心,以求得的K 個(gè)中心點(diǎn)作為K-means聚類初始中心,進(jìn)行K-means 聚類得到最終的K 個(gè)K-means聚類中心;
步驟3根據(jù)K 個(gè)聚類中心與嵌入?yún)^(qū)域半徑大小r 對中心角點(diǎn)進(jìn)行篩選,去掉區(qū)域超過載體圖片大小的角點(diǎn),得到K1個(gè)中心點(diǎn);
步驟4比較距離中心點(diǎn)最近的角點(diǎn)的value值大小,value 值最大中心點(diǎn)作為區(qū)域中心進(jìn)行特征區(qū)域構(gòu)造,以此方法構(gòu)造特征區(qū)域內(nèi)焦點(diǎn)數(shù)目,權(quán)值較大的點(diǎn)周圍的角點(diǎn)分布密集;
步驟5刪除位于步驟4 構(gòu)造的特征區(qū)域內(nèi)的中心點(diǎn),得到新的中心點(diǎn)序列;
步驟6判斷已構(gòu)造的特征區(qū)域數(shù)是否為TN,若小于則執(zhí)行步驟4,若等于,則構(gòu)造完成,使得到的特征區(qū)域不但盡可能多的包含穩(wěn)定的特征點(diǎn)又互不重疊。
水印的嵌入流程圖如圖2,本文嵌入算法基本流程如下。
步驟1水印預(yù)處理
大小為m×m的二值圖像作為水印圖像,采用Arnold 變換和Logistic 混沌序列[14]相結(jié)合的方法對水印進(jìn)行預(yù)處理,將Arnold 變換次數(shù)n、Logistic 映射的迭代初始值x0、迭代控制參數(shù)μ以及去除序列項(xiàng)數(shù)t作為密鑰保存。
今天,三北的生態(tài)狀況依然脆弱,三北的生態(tài)建設(shè)任務(wù)依然任重道遠(yuǎn)。也許,就在未來的某一天,沙暴或者沙魔還會來襲,如果防沙不力,已有的成果可能葬身沙海,被無情地埋葬。
步驟2提取Harris角點(diǎn)構(gòu)造局部特征區(qū)域
構(gòu)造嵌入?yún)^(qū)域,將構(gòu)造特征區(qū)域的中心點(diǎn)坐標(biāo)信息、嵌入?yún)^(qū)域半徑r 及載體圖像尺寸S 作為密鑰保存,此外選取權(quán)值大的u 個(gè)特征點(diǎn)信息作為密鑰保存。然后將求得的局部特征區(qū)域進(jìn)行合并,將合并后的區(qū)域作為水印的嵌入?yún)^(qū)域。
圖2 本文算法水印嵌入流程圖
步驟3水印位判斷取反
將上述得到的嵌入?yún)^(qū)域B 分量作為水印嵌入?yún)^(qū)域,下采樣為EB1 和EB2 兩部分。分別對區(qū)域EB1 和區(qū)域EB2 進(jìn)行8×8 分塊DCT 變換,得到DC系數(shù)分別記為DCi與DCj,根據(jù)式(8)對要嵌入的1bit水印信息W進(jìn)行取反判斷:
其中,α為水印的嵌入強(qiáng)度,將紋理不同的8×8子塊經(jīng)過DCT變換得到兩個(gè)AC系數(shù)帶入式(10),判斷子塊類型,然后根據(jù)式(11)選取對應(yīng)的嵌入強(qiáng)度。這里閾值β的選取參照了Wang[15]中的經(jīng)驗(yàn)閾值0.05。具體判斷方法如下所示:
式中的λ1,λ2取經(jīng)驗(yàn)閾值:λ1=50,λ2=65。
其中,αsmooth<αedge<αtexture,通過實(shí)驗(yàn)驗(yàn)證,對于RGB 模 型 設(shè) 置 為:αsmooth=0.07 ,αtexture=0.2 ,αedge=0.1。
嵌入?yún)^(qū)域圖像的RGB 模型的G 分量進(jìn)行和B分量相同的操作,G 分量嵌入另一半水印,然后進(jìn)行DCT逆變換,得到最終嵌入水印的圖像。
本文在水印提取前,首先利用密鑰中保存的權(quán)值較大的特征點(diǎn)信息進(jìn)行幾何校正[16],利用密鑰中保存的特征區(qū)域中心點(diǎn)坐標(biāo)構(gòu)造特征區(qū)域,對校正后的圖像提取水印,其具體步驟如下。
步驟1通過加權(quán)Harris 角點(diǎn)檢測算法提取遭受攻擊后的圖像特征,保存權(quán)值較大的u 個(gè)特征點(diǎn)信息,與密鑰中保存的特征進(jìn)行匹配;
步驟2圖像幾何校正,對圖像縮放攻擊的矯正直接根據(jù)密鑰中保存的載體圖像尺寸S 進(jìn)行縮放攻擊校正。對圖像旋轉(zhuǎn)攻擊的矯正通過式(12)計(jì)算逆旋轉(zhuǎn)角度Θ 進(jìn)行旋轉(zhuǎn)攻擊校正。計(jì)算公式如下:
θ為旋轉(zhuǎn)角度。
步驟3根據(jù)密鑰中保存的區(qū)域中心點(diǎn)構(gòu)造局部區(qū)域,轉(zhuǎn)化為RGB 模型,提取B 分量下采樣記為TB1和TB2;
步驟4分別對TB1與TB2進(jìn)行8×8分塊DCT變換,得到對應(yīng)的DC 系數(shù)DCi與DCj,根據(jù)式(13)進(jìn)行水印提取。
根據(jù)密鑰中保存的取反坐標(biāo)序列,對提取到的水印信息進(jìn)行取反處理,得到一半水印信息。
步驟5取RGB 模型中的G 分量,下采樣為TG1 和TG2,分別對TG1 與TG2 進(jìn)行8×8 分塊DCT變換,得到對應(yīng)的DC 系數(shù)DCj與DCj,利用式(13),根據(jù)密鑰中保存的取反坐標(biāo)序列,對提取到的水印信息進(jìn)行取反處理,提取到另一半水印。
步驟6將步驟4和步驟5水印信息合并,利用密鑰進(jìn)行解密,合并得到最終的水印圖像。
實(shí)驗(yàn)使用Matlab 2017b 作為驗(yàn)證平臺,實(shí)驗(yàn)中采用512 pixel×512 pixel 彩色Lena 圖像作為載體圖像,選擇30 pixel ×30 pixel的二值圖像作為嵌入的水印圖像,圖3為實(shí)驗(yàn)使用的載體圖像及水印圖像,圖4為原始圖像及嵌入水印后的圖像。
采用峰值信噪比(PSNR)作為算法不可見性的評價(jià)指標(biāo)[17],通過實(shí)驗(yàn)仿真,本文算法的PSNR 值為45dB,遠(yuǎn)遠(yuǎn)高于人眼可感知程度的33dB,具有很好的不可見性。
圖3 載體圖像和水印圖像
圖4 原始圖像和嵌入水印后的圖像
1)用歸一化系數(shù)(NC)值客觀評價(jià)原始圖像與提取水印后圖像的相關(guān)度[18]。常規(guī)信號攻擊包括不同強(qiáng)度的壓縮、噪聲和濾波等,本文算法和馬婷等[19]提取出的水印信息與原始水印信息的NC值見表1,實(shí)驗(yàn)數(shù)據(jù)表明本文提出的水印算法對常規(guī)信號攻擊的魯棒性上要明顯優(yōu)于對比算法。
表1 常規(guī)圖像攻擊下的NC值
2)旋轉(zhuǎn)攻擊。本文算法和陳青等[20]提取出的水印信息與原始水印信息的NC 值見表2,本文算法經(jīng)旋轉(zhuǎn)攻擊后提取的NC 值接近1,實(shí)驗(yàn)數(shù)據(jù)表明本文提出的水印算法在抗旋轉(zhuǎn)攻擊下的魯棒性上要明顯優(yōu)于對比算法。
表2 旋轉(zhuǎn)攻擊下的NC值
3)縮放攻擊。采用雙三次插值方法對水印進(jìn)行同等比例縮放攻擊(縮放比例分別為0.5,0.75,1.25,1.5 倍)。表3 為本文算法和文獻(xiàn)[20]提取出的水印信息與原始水印信息的NC 值,對比文獻(xiàn)[20]可知,本文算法在抵抗縮放攻擊更有優(yōu)勢。
表3 縮放攻擊下的NC值
本文針對彩色圖像數(shù)字水印算法對幾何攻擊魯棒性較差的問題,提出一種基于K-means聚類和Harris 特征的第二代數(shù)字水印算法。選取具有旋轉(zhuǎn)不變性的Harris 角點(diǎn)來構(gòu)造水印嵌入?yún)^(qū)域。通過對特征的區(qū)域構(gòu)造算法進(jìn)行改進(jìn),采用K-means聚類算法確定嵌入?yún)^(qū)域的中心,保證了嵌入?yún)^(qū)域內(nèi)特征點(diǎn)的最大化。由Matlab仿真實(shí)驗(yàn)分析,本文算法的PSNR 值達(dá)到45dB,遠(yuǎn)遠(yuǎn)高于人眼可感知程度的33dB,具有很好的不可見性;此外本文算法在不同圖像攻擊下,計(jì)算得到的NC 值接近1,不僅對常規(guī)圖像處理具有魯棒性,能夠很好地抵抗幾何攻擊。而相較于大部分的基于特征區(qū)域的水印算法,本文提出的算法具有更高的水印容量。