陳杰,張學(xué)東
塔里木大學(xué)信息工程學(xué)院(阿拉爾 843300)
目前數(shù)字水印技術(shù)在食品行業(yè)得到廣泛應(yīng)用,通過一定的算法在食品圖像中嵌入被稱為水印版權(quán)標(biāo)識(shí),證明食品圖像版權(quán)歸屬的一種技術(shù)[1],但不影響食品原本價(jià)值和使用,且不意被人察覺。水印信息中可包含食品出廠序列號(hào)、公司標(biāo)識(shí)及其他需注意事項(xiàng),并攜帶生產(chǎn)許可信息和認(rèn)證信息,主要目的是鑒別出劣質(zhì)和虛假產(chǎn)品,為保障食品安全提供了一個(gè)有效的解決方案。一方面,在當(dāng)下計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)不斷發(fā)展的背景下,因數(shù)字產(chǎn)品自身易篡改、易復(fù)制的特點(diǎn),導(dǎo)致圖像水印遭受不同形式的攻擊,與嵌入時(shí)大不相同;另一方面,由于嵌入路徑不同,嵌入產(chǎn)品中的水印信息可能會(huì)遭受破壞,很難防御,導(dǎo)致信息存在一定偏差。因此,研究水印嵌入算法是一項(xiàng)富有挑戰(zhàn)性的工作。
袁志華等[2]為了進(jìn)一步提升基于支持向量機(jī)水印算法的魯棒性,提出基于支持向量機(jī)的NSCT域自適應(yīng)圖像水印算法。根據(jù)圖像自身特征生成自適應(yīng)水印序列,利用模糊聚類,支持向量機(jī)對(duì)NSCT低頻系數(shù)分類,選擇適合嵌入水印的低頻系數(shù);建立NSCT鄰域系數(shù)關(guān)系模型嵌入水印,方法具有良好的不可感知性和安全性,嵌入自適應(yīng)水印序列達(dá)到全盲水印檢測(cè);最后試驗(yàn)結(jié)果表明該算法擁有較強(qiáng)的魯棒性。黃櫻等[3]利用圖像紋理粗糙區(qū)域方便隱藏水印的優(yōu)勢(shì),提出基于圖像紋理的自適應(yīng)水印算法。設(shè)計(jì)能夠真實(shí)反映圖像紋理豐富程度的紋理度量方法,引入全局紋理值和局部紋理值的概念,對(duì)圖像紋理分布情況進(jìn)行綜合分析;利用滑動(dòng)窗口和窗口內(nèi)區(qū)域的局部紋理值,精確獲得圖像紋理粗糙區(qū)域,將水印嵌入在紋理粗糙區(qū)域中,通過多元回歸分析,得到目標(biāo)圖像內(nèi)所有紋理信息相關(guān)函數(shù),同時(shí)自適應(yīng)調(diào)節(jié)添加水印函數(shù),完成無(wú)痕水印添加。
但上述方法只進(jìn)行單一水印嵌入,一旦受噪聲影響嚴(yán)重,容易導(dǎo)致水印信息丟失或無(wú)法識(shí)別。為此設(shè)計(jì)基于DCT變換的食品圖像多重水印嵌入算法,將數(shù)字圖像看作為二維陣列,進(jìn)行離散余弦變換,同時(shí)映射水印信息預(yù)處理提升魯棒性,為了減少分塊效應(yīng),提升處理后圖像通透感,對(duì)子圖像水平與垂直像素亮度值加減,約束圖像降質(zhì),并通過頻域交流系數(shù)確定水印加載的強(qiáng)度,再施加DCT反變換時(shí)完成多重嵌入。最后在不同干擾試驗(yàn)下驗(yàn)證算法優(yōu)越性。
水印嵌入算法指將后續(xù)需檢測(cè)、包含一定信息的二值圖像嵌入到灰度圖像內(nèi),而多重水印嵌入就是將相同或不相同水印嵌入至同一圖像不同紋理區(qū)域中,以加強(qiáng)水印抗干擾能力[4]。
DCT是數(shù)字圖像處理以及信號(hào)處理常用的變換,它是一種正交變換,去相關(guān)的性能接近于K-L變換[5]。給定數(shù)字圖像f(m,n)后,可以將它看成一個(gè)二維陣列,它的大小為M×N,對(duì)它進(jìn)行DCT變換,如下
其中:
DCT反變化,如下
通過預(yù)處理未嵌入初始圖像的水印信息,提升水印魯棒性與水印信息安全性,具體的預(yù)處理流程描述如下:
1) 假設(shè)W(i,j)表示水印圖像,K表示密鑰,取值為10,由此可構(gòu)建出偽隨機(jī)序列V,該序列服從標(biāo)準(zhǔn)正態(tài)分布且滿足V∈(1,Mw×Nw),降冪排序偽隨機(jī)序列V,得到V′。
2) 按行排列水印圖像W(i,j),得到一維序列WW1,該序列WW1長(zhǎng)度等同于偽隨機(jī)序列V長(zhǎng)度,經(jīng)計(jì)算解得0、1在一維水印序列WW1中的存在數(shù)量,分別用N1、N2表示。
3) 設(shè)定排列后的偽隨機(jī)序列V分界線為N1,也就是說(shuō)水印序列WW1的掃描起始處為1。當(dāng)取得WW1(i)=0的掃描結(jié)果時(shí),序列WW1(i)將被賦予分界線左側(cè)數(shù)值,采用表達(dá)式描述,如下式所示:
若解得WW1(i)=1,則序列WW1將被賦予分界線右側(cè)數(shù)值,表達(dá)式,如下式所示:
待總體水印序列WW1掃描完全,即可取得經(jīng)過映射的水印信號(hào)WW1′。
4) 按行排序經(jīng)過映射的,得到Mw×Nw,該矩陣即為預(yù)處理后的水印圖像W′。
根據(jù)DCT變換屬性特征,發(fā)現(xiàn)直流分量生成分塊效應(yīng)的概率極高,削弱高頻分量魯棒性,降低低頻分量透明性?;谌梭w視覺感知,設(shè)定科學(xué)、適宜的頻率系數(shù),可有效提升水印嵌入效果。
1.3.1 數(shù)字盲水印嵌入流程
數(shù)字盲水印嵌入的操作步驟設(shè)計(jì),如下:
1) 二維DCT頻域獨(dú)立分塊處理初始圖像,分塊規(guī)格為n×n。假設(shè)初始圖像的n階頻域子圖是Wj=fj(x,y),可得到初始圖像與頻域子圖的關(guān)系表達(dá)式:
經(jīng)過二維DCT變換DCT頻域子圖Wj,利用計(jì)算公式求取交(直)流系數(shù)[6],如下:
式中:j=0, 1, …,n2-1,0≤x≤n,0≤y≤n。
2) 為確保子圖Wj平均亮度,約束圖像降質(zhì)得到維持,在DCT頻域r個(gè)子圖Wj=fj(x,y)的行像素亮度值上加1,在列像素亮度值上減1,獲取二值映像序列{τj},該序列與Wj=fj(x,y)存在關(guān)聯(lián)性。假設(shè)子圖Wj的灰度均值為Tj,修正因子為,且試驗(yàn)系數(shù)α的取值范圍是0.6≤α≤0.7,若j滿足j=0, 1, …,n2-1,則子圖Wj的JND門限值計(jì)算公式如下:
3) 當(dāng)j=0, 1, …,n2-1時(shí),選取DCT頻域中頻分量,重新排序子塊Wj=fj(x,y)的交流系數(shù)Cj(u,v)=DCT{Wj|fj(x,y), 0≤x,y≤n}。如果g組含有所有交流系數(shù)Cj(u,v),則各組中的DCT交流系數(shù)數(shù)量為h個(gè),假定為第k組第i個(gè)交流系數(shù),根據(jù)式(8)取值該交流系數(shù)的門限值,得到v))],其中,0≤k≤g-1,0≤j≤n2-1,0≤i≤h-1基于式(8)與給出的子圖Wj,其門限值ri,k為固定值。
4) 采用相同方法處理大小是m×m的水印圖像W′(n>m),解得g1組DCT頻域交流系數(shù),各組交流系數(shù)個(gè)數(shù)為h1,假設(shè)表示第k組第i1個(gè)DCT頻域交流系數(shù),其中,0≤j1≤m2-1,k1<g1<g,h1<h,已知初始圖像W的DCT頻域子圖Wj中,第k組交流系數(shù)的門限值是ri,k(i=0, 1, 2, …,h-1),將門限值取整后作為多數(shù)字基底,則最大整數(shù)p為該基底表達(dá)能力上限。將多數(shù)字基整數(shù)Ej設(shè)定為水印圖像W滿足不等式時(shí)的系數(shù),用表示各位數(shù)字,推導(dǎo)出表達(dá)式如下:
5) 令比特修改值為水印圖像W′多數(shù)字基整數(shù)Ej的各位系數(shù)在DCT頻域交流系數(shù)中以分散形式進(jìn)行嵌入,明確水印加載強(qiáng)度。若交流系數(shù)的加載強(qiáng)度是則其水印表達(dá)式如下:
式中:τj為約束因子[7],可在關(guān)聯(lián)于分組的二值映像序列{τj}中獲取。
6) 已知由二值映像序列{τj}得到的偽隨機(jī)序列,從中選取隨機(jī)種子Key作為密鑰[8],根據(jù)生成的密鑰隨機(jī)數(shù),選擇DCT頻域子圖Wi與Wj在掃描階段時(shí)高頻分量與低頻分量的交流系數(shù)。依據(jù)τj的極性與給出的JPEG量化因子系數(shù)Tag,判定高低頻分量交流系數(shù)調(diào)整與否,若τj=1且則表達(dá)式如下所示:
7) 當(dāng)j<n2-1且k<g-1時(shí),在增加步長(zhǎng)之后進(jìn)行對(duì)應(yīng)的移位操作,迭代操作上述兩個(gè)步驟,基于初始圖像W的DCT頻域各分組子圖的交流系數(shù)完成水印圖像W′的比特嵌入操作。
8) 若g1<g且h1<h,則初始圖像W未嵌入水印比特的DCT頻域分組交流系數(shù)有g(shù)×h-g1×h1個(gè),通過迭代操作步驟(4)~(7),處理規(guī)格為m1×m1的水印圖像W′(n>m1),并在余下交流系數(shù)里,實(shí)現(xiàn)水印圖像W比特信息嵌入。
9)Zig_Zag排序調(diào)整后的交流系數(shù),經(jīng)二維DCT反變換處理,根據(jù)頻域f(u,v)獲取完成水印嵌入的圖像W′。
1.3.2 容量分析
數(shù)字水印容量表示在原始圖像中添加水印的最多信息量。若圖像中存在高斯噪聲,且原始圖像屬于高斯白噪聲信道,此時(shí)可通過Shannon表達(dá)式預(yù)測(cè)隱藏信息容量。該文的多重水印嵌入方法在容量方面區(qū)別于單一水印[9]。
如果噪聲滿足均值為零且方差是σn2高斯分布,根據(jù)平均功率最大熵原理[10],令Y符合高斯分布,假設(shè)其平均值表示為m,在同時(shí)嵌入2個(gè)水印情況下,信道平均輸入功率受到限制:并且和噪聲N沒有任何聯(lián)系,則有:
因此,Y的熵計(jì)算公式如下:
由上述可得:
則容量表示為:
綜上所述,當(dāng)有兩個(gè)水印嵌入,此時(shí)容量并不是嵌入單一水印容量的疊加。如果水印W′1和W′2之間不存在任何聯(lián)系,則容量C1、C2與C12具有的關(guān)系如下:
由上述公式分析得出,在嵌入兩個(gè)水印情況下,其容量高于任意一個(gè)單一水印容量,然而低于兩個(gè)單一水印容量的和。
1.3.3 圖像水印檢測(cè)
1) 將待測(cè)的n×n灰度圖像W′′′分割成W′′′=獲取二維DCT轉(zhuǎn)換后不同頻域的交(值)流系數(shù)Cj(u,v),其中j=0, 1, …,n2-1。
2) 設(shè)置系數(shù)α=0.65,對(duì)j=0, 1, …,n2-1,分別獲取W′′′頻域子圖Wj的灰度均值Tj以及修正值計(jì)算二值序列{τj}與所有分組中頻分量約束值
3) 對(duì)j=0, 1, …,n2-1,將圖像W′′′的第k組約束值當(dāng)作中頻分量的多數(shù)字基底,則根據(jù)多數(shù)字基整數(shù)概念計(jì)算Ej的每一位數(shù)字且轉(zhuǎn)換成十進(jìn)制整數(shù)Dj。
4) 假設(shè)JPEG的量化值表示為Null,則根據(jù)Dj、τj結(jié)合公式(10)獲得圖像W′′的DCT轉(zhuǎn)換中頻系數(shù);反之,挑選品質(zhì)因子Tag,確定閾值λ=0.5,評(píng)估τj=±1的極性,利用公式(11)得出與其相對(duì)的高低頻系數(shù)。
5) 將閾值λ作為約束條件,對(duì)圖像W′的交流系數(shù)做Zig_Zag排序處理,根據(jù)二維IDCT反變換,對(duì)水印圖像W′進(jìn)行重構(gòu)。
6) 對(duì)分組情形(即g1<g),重復(fù)步驟三至步驟五,可實(shí)現(xiàn)水印圖像W′′的重構(gòu)。
為驗(yàn)證算法的抗噪能力以及嵌入性能,設(shè)定仿真試驗(yàn)環(huán)境為MATLAB R2012a,計(jì)算機(jī)配置為:32位Windows7系統(tǒng),Pentium雙核2.8 GHz,運(yùn)行內(nèi)存2 GB。將包含“安全食品”文本信息當(dāng)作需多重嵌入的水印圖像,同時(shí)用食物披薩圖作為初始灰度圖像。
1) 圖1為初始、多重水印、嵌入水印后、檢測(cè)出的水印圖像,能夠看出,在嵌入水印后相比初始圖像,處理后圖像清晰度并未受到太多影響,且提取的水印圖像也完整可識(shí)別。
圖1 初始、多重水印、嵌入水印后、檢測(cè)出的水印圖像
2) 對(duì)包含多重水印信息圖像進(jìn)行常見噪聲干擾試驗(yàn),試驗(yàn)結(jié)果如圖2所示,攻擊行為分別是壓縮40%、添加椒鹽噪聲、中值濾波處理、去除40%面積、旋轉(zhuǎn)45°。
圖2 不同干擾攻擊下水印檢測(cè)結(jié)果
通過圖2以及表1能夠看出,添加椒鹽噪聲以及去除40%面積后的含水印圖像,包含過多干擾噪聲,圖像也在一定程度上出現(xiàn)模糊現(xiàn)象,并且提取水印效果沒有達(dá)到理想預(yù)期,相似度分別為78.52%和84.39%,信噪比分別為32.56和30.25 dB,但是所得出結(jié)果依舊處于良好范圍,通過圖像還是能夠直觀看出所嵌入的水印信息為“安全食品”字樣。相比上述兩種,算法在面對(duì)壓縮40%、中值濾波、旋轉(zhuǎn)45度試驗(yàn)上,所得結(jié)果能夠充分滿足現(xiàn)階段社會(huì)需求,所的相似度計(jì)算結(jié)果都高于85%,甚至旋轉(zhuǎn)45°的結(jié)果高達(dá)90.21%,并且三者信噪比都能保持在25 dB下,這是因?yàn)椴捎枚嘀厮∏度胧侄?,加?qiáng)了抗噪能力,使處理后圖像中包含多個(gè)水印,在一個(gè)信息受到干擾無(wú)法得到全面數(shù)據(jù)時(shí),另外的水印還能夠填補(bǔ),獲得的信息完整。
表1 攻擊下方法相似度和信噪比數(shù)值
由于網(wǎng)絡(luò)高速發(fā)展,數(shù)字圖像傳播能力遠(yuǎn)遠(yuǎn)超出社會(huì)想象力,引發(fā)的版權(quán)問題日益嚴(yán)重,但是現(xiàn)階段社會(huì)常使用的嵌入水印技術(shù)多為單一操作,面對(duì)噪聲影響情況下,很難保持原本圖像,使提取出的水印數(shù)據(jù)不完整,難以識(shí)別,降低食品安全權(quán)益保護(hù)效果。為此設(shè)計(jì)的基于DCT變換的食品圖像多重水印嵌入算法,通過在初始圖像不同紋理區(qū)域嵌入相同水印信息,能夠最大限度保持水印完整性,即使受到噪聲干擾丟失一部分信息也能通過替他水印找回,依舊合成完整的水印圖像。并且嵌入過程的門限值和數(shù)字基底設(shè)置,幫助DCT選塊分組,通過轉(zhuǎn)換和迭代加載,使嵌入其中的水印信息十分隱蔽,且圖像處理后基本看不出和初始圖像間差別,透明度高。
在面臨椒鹽噪聲以及部分丟失時(shí),提取效果雖在良好范圍,但是從結(jié)果圖像中能明顯看出水印圖像并不完整,通過容量分析得出,在嵌入過程中,若水印數(shù)量是固定的,那么算法將自適應(yīng)選擇最優(yōu)長(zhǎng)度進(jìn)行嵌入,已完成透明度和魯棒性之間最優(yōu)均衡。但這就導(dǎo)致圖像受損較大時(shí),所有嵌入水印也受到相同程度損傷,使得所有水印信息都不夠完成。在后續(xù)研究中,將會(huì)利用半監(jiān)督學(xué)習(xí)通過訓(xùn)練樣本,明確最優(yōu)水印長(zhǎng)度,以獲得抗噪聲強(qiáng)、高透明度高、抗損傷范圍大等多重能力,用高經(jīng)濟(jì)性價(jià)比滿足社會(huì)需求。