黃嶺
摘要:為解決印花圖案所有權(quán)爭議的問題,提出一種應(yīng)用圖像特征識別的傅氏水印算法。該算法使用傅立葉域選用有實(shí)際防偽標(biāo)記圖像作為水印,在嵌入前將防偽水印置亂,采用偽隨機(jī)序列,增加了嵌入強(qiáng)度,實(shí)驗(yàn)結(jié)果也表明,該算法具有較強(qiáng)的穩(wěn)健性,適用于印花圖案版權(quán)保護(hù)。
關(guān)鍵詞:數(shù)字水印;印花圖案;傅里葉變換;版權(quán)保護(hù)
中圖分類號:TP312? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)23-0162-03
1 背景
我國可謂是紡織品出口大國,印花布創(chuàng)新設(shè)計(jì)對于出口影響巨大。不過在紡織品特別是在服裝面料的款式、圖案領(lǐng)域,相互“參考”的現(xiàn)象屢見不鮮。許多企業(yè)都不以為然,其實(shí)和一般美術(shù)作品一樣,原創(chuàng)印花圖案也是受到著作權(quán)法保護(hù)的。畢竟這些印花布的花型涉及數(shù)億設(shè)計(jì)者的智力成果,理應(yīng)得到法律的保護(hù)。如今,隨著計(jì)算機(jī)技術(shù)的引入,進(jìn)入了數(shù)碼印花技術(shù)的時(shí)代,這也使傳統(tǒng)印花圖案手工設(shè)計(jì)轉(zhuǎn)到計(jì)算機(jī)輔助設(shè)計(jì),這種轉(zhuǎn)變對產(chǎn)品質(zhì)量、生產(chǎn)效率及費(fèi)用等方面,給印花圖案設(shè)計(jì)帶來巨大變化?;ヂ?lián)網(wǎng)的發(fā)展,又使拷貝印花圖案變得非常簡單,對于兩張一模一樣的印花圖案,到底誰是真正的版權(quán)擁有者,僅依靠政府出臺(tái)的法律和法規(guī)還很難判定,所以從技術(shù)上解決印花圖案的版權(quán)保護(hù)是非常必要的[1]。
從目前查閱到的關(guān)于版權(quán)保護(hù)方面的文獻(xiàn)來看,專門針對印花圖案的數(shù)字水印研究技術(shù)比較少。如今印花圖案版權(quán)保護(hù)的問題日益突出,以往對印花圖案版權(quán)保護(hù)缺乏有效的技術(shù)手段,且處理技術(shù)較為單一,無非就是在印花圖案上加入個(gè)人印記,或者對印花圖案上的某一塊色彩進(jìn)行重設(shè)。這些方法往往會(huì)適得其反,嚴(yán)重影響印花圖案產(chǎn)品的視覺效果。應(yīng)用數(shù)字水印技術(shù)來進(jìn)行印花圖案的版權(quán)保護(hù)應(yīng)該會(huì)取得比較好的效果。
2 水印算法的原理
大多數(shù)數(shù)字水印的處理過程都是有三部分組成:產(chǎn)生數(shù)字水印、融入數(shù)字水印和檢驗(yàn)數(shù)字水印。數(shù)字水印方案主要是通過對水印原始的承載媒介進(jìn)行一定預(yù)分析、對準(zhǔn)備融入的內(nèi)容提前做分析、分塊等操作、并對涉及的融入規(guī)則、融入位置、融入的調(diào)制方式等多個(gè)關(guān)聯(lián)技術(shù)環(huán)節(jié)進(jìn)行合理的優(yōu)化改進(jìn),從而獲取到難以感知、抵御破壞、可追溯等指標(biāo)要求下的設(shè)計(jì)效果。密鑰也是關(guān)鍵點(diǎn),是每一種設(shè)計(jì)的重要特征。密鑰可以嵌入到信息融入預(yù)處理階段、選擇合適融入點(diǎn)階段和設(shè)計(jì)控制融入的調(diào)制控制階段中[2]。
2.1 嵌入算法的原理分析
通過對傅立葉變換及其性質(zhì)的研究,并運(yùn)用有意義水印、偽隨機(jī)序列和Arnold“貓臉”變換,提出一種基于傅立葉域相關(guān)性檢測的半盲水印算法,并用于印花圖案保護(hù)實(shí)踐。該算法將原始印花圖案進(jìn)行子塊劃分,并且運(yùn)用離散傅里葉變換對每個(gè)小圖像塊進(jìn)行處理,同時(shí)運(yùn)用Arnold“貓臉”變換置亂二值水印圖像、使用設(shè)定密鑰key來產(chǎn)生兩個(gè)備用的偽隨機(jī)序列;然后根據(jù)設(shè)定嵌入規(guī)則,當(dāng)被置亂的水印矩陣取值為“0”時(shí),把印花圖案的幅度譜相對應(yīng)的數(shù)值與其中一個(gè)偽隨機(jī)序列進(jìn)行乘性壘疊,矩陣取值為“1”時(shí),把印花圖案的幅度譜相對應(yīng)的數(shù)值與另外一個(gè)偽隨機(jī)序列進(jìn)行乘性壘疊;最后對每一個(gè)小圖像塊進(jìn)行離散傅里葉逆變換,得到嵌入水印的印花圖案[3]。具體的嵌入算法流程如圖1所示。
嵌入算法流程如下:
1)子塊劃分。運(yùn)用公式(1)將原始印花圖案劃分為若干個(gè)8×8的小圖像塊。
2)離散傅里葉變換。運(yùn)用公式(2)對每個(gè)小圖像塊進(jìn)行離散傅里葉變換處理,接著做快速傅里葉變換頻譜平移操作,把二位矩陣中第一、第三與第二、第四象限交換,以實(shí)現(xiàn)直流分量居中的效果。
3)置亂水印。運(yùn)用Arnold“貓臉”變換置亂二值水印標(biāo)記圖像,“貓臉”變換可以迭代執(zhí)行,只要感到置換之后有無法識別出原圖即可認(rèn)為是一張“貓臉”變換后的置亂圖。需要注意的是“貓臉”變換實(shí)質(zhì)是一種新舊點(diǎn)在位置上的移動(dòng),而且這種變換是可以說是一、一對應(yīng)的[4]。雖然說可以重復(fù)的迭代執(zhí)行下去,但“貓臉”變換也是有周期性的,當(dāng)它置換到周期會(huì)恢復(fù)成原來的圖像。由于仿真實(shí)驗(yàn)使用的水印尺寸為40×40,40階的二維置亂周期為30,實(shí)驗(yàn)算法設(shè)置嵌入水印置換次數(shù)為10,提取水印置換次數(shù)為20。
4)偽隨機(jī)序列的產(chǎn)生。使用設(shè)定密鑰key結(jié)合MATLAB提供的隨機(jī)函數(shù)來產(chǎn)生兩個(gè)備用的偽隨機(jī)序列r0、r1,需要注意的是只有在嵌入水印和提取水印時(shí)采用相同的密鑰key,才能保證產(chǎn)生的兩個(gè)備用的偽隨機(jī)序列保持一致。
5)修改相應(yīng)幅度譜值。根據(jù)設(shè)定嵌入規(guī)則,當(dāng)被置亂的水印矩陣取值為“0”時(shí),把印花圖案的幅度譜相對應(yīng)的數(shù)值與其中一個(gè)偽隨機(jī)序列r0進(jìn)行乘性壘疊,矩陣取值為“1”時(shí),把印花圖案的幅度譜相對應(yīng)的數(shù)值與另外一個(gè)偽隨機(jī)序列r1進(jìn)行乘性壘疊。
這其中, abs_block(a,b)是經(jīng)過傅立葉變換的塊圖,k為嵌入強(qiáng)度,r0、r1為兩個(gè)偽隨機(jī)序列。需要注意的是濾波器的選取,由于水印的嵌入過程可以理解為是在原始信號上嵌入噪聲的過程,一方面噪聲強(qiáng)度的選取是關(guān)鍵,另一方面濾波器設(shè)置要考慮到盡可能保留原始印花圖案的細(xì)節(jié),也就是低頻成分,在嵌入時(shí)選取濾波器值為1時(shí)即印花圖案的幅度譜高頻部分與對應(yīng)偽隨機(jī)序列進(jìn)行乘性壘疊[5]。
6)傅里葉逆變換。使用如abs_block=fftshift(abs_block);程序?qū)λ行K進(jìn)行傅氏逆變換,最終得到含有防偽標(biāo)記的印花圖案。
2.2 檢測提取的原理分析
檢測提取的算法類似嵌入算法,可以理解為嵌入的反過程。需要注意的是檢測提取時(shí)只需防偽標(biāo)記的大小等部分信息,而無需原來印花圖案。另外為保證產(chǎn)生的偽隨機(jī)序列保持一致,在嵌入水印和提取水印時(shí)要采用相同的密鑰key。具體的檢測提取流程如圖2所示。
1)子塊劃分。運(yùn)用公式(1)將原始印花圖案劃分為若干個(gè)8×8的小圖像塊。