蔡正保
(安徽國防科技職業(yè)學院信息技術(shù)學院 安徽六安 237011)
數(shù)字水印技術(shù)發(fā)展迅速,應用前景廣闊,數(shù)字水印技術(shù)的發(fā)展進步極大地方便了多媒體產(chǎn)品的傳輸、發(fā)表、應用等,但數(shù)字產(chǎn)品也會更容易被他人蓄意破壞、利用等。然而,對于數(shù)字產(chǎn)品的保護,僅僅應用管理和法律上的手段還是遠遠不夠的,必須有技術(shù)手段作為支撐[1]。大多數(shù)的水印算法都能夠很好地進行單水印嵌入與提取,可是單水印技術(shù)在實際應用中的局限性比較明顯。例如,魯棒性水印能夠?qū)Χ嗝襟w產(chǎn)品進行版權(quán)認證,但是不能夠驗證產(chǎn)品是否被篡改;相比較而言,脆弱性水印就可以對多媒體產(chǎn)品內(nèi)容進行完整性認證,但是抗攻擊能力很弱。這樣一來,可以結(jié)合不同數(shù)字水印技術(shù)的優(yōu)缺點,在多媒體產(chǎn)品中嵌入雙重水印,可以實現(xiàn)對其內(nèi)容和版權(quán)的雙重保護[2]。為方便對數(shù)字作品進行保護,文章在對雙重數(shù)字水印技術(shù)進行研究的基礎上,結(jié)合軟件工程技術(shù),設計了一種基于圖像融合和小波變換的數(shù)字水印嵌入與提取系統(tǒng),以滿足用戶對于數(shù)字圖像版權(quán)和內(nèi)容保護的需求。
在進行系統(tǒng)設計之前,需求分析為必要步驟,需求分析能否做到合理、完善將會影響到系統(tǒng)的功能是否完備。系統(tǒng)需要在算法、圖像載體選擇、軟件的開放性、性能測試等方面滿足一定的條件,具體需求如表1所示。
表1 系統(tǒng)需求分析表
對于水印的處理,采用雙重數(shù)字水印技術(shù)相結(jié)合,先采用圖像融合技術(shù)嵌入可見水印,再運用小波變換技術(shù)嵌入不可見水印[3]??梢娝∏度氲綀D像中以防范圖像被盜用,防止非法人員獲取圖像的內(nèi)容,可以用來保護圖像的版權(quán)。不可見水印可以運用到圖像的版權(quán)保護、內(nèi)容完整性鑒定等方面,不可見水印不能抵御非法人員對圖像內(nèi)容的利用,二者各有優(yōu)缺點。所以,二重數(shù)字水印技術(shù)可對圖像進行雙重保護。
2.1基于圖像融合的可見水印技術(shù)
采用圖像融合技術(shù)主要是為了使得嵌入的水印非法人員難以擦除,且水印在載體圖像上可見,不破壞載體圖像信息[4]。這里所用的圖像融合技術(shù)是同時調(diào)整載體圖像的亮度和待嵌入水印的強度,運用空間域技術(shù)修改載體圖像像素。圖像的亮度和水印嵌入強度可用公式(1)體現(xiàn)出相互聯(lián)系。
f(m,n)=jf(m,n)+kg(m,n)
(1)
其中:j為載體圖像的拉伸因子,它的取值范圍應在0.85~1.0的范圍,人類肉眼不能感知圖像的失真。K為水印嵌入深度因子。為了使得人類視覺不能感知嵌入水印后背景圖像發(fā)生變化,設z為圖像均值,它的變化肉眼能夠感知,然而,離該數(shù)值較遠的像素點,j值變化比較大,j是(f(m,n) -z)的增函數(shù)。即j是z的反函數(shù),如公式(2)所示。
(2)
圖像的亮度隨著f(m,n)的增大而增大,為了使得圖像上的水印難以覆蓋,k值也要增大,那么,k為f(m,n)的增函數(shù),如公式(3)所示。這樣采用圖像融合技術(shù)嵌入的水印難以擦除。
k=3ef(m,n)/255/5
(3)
2.2基于小波變換的不可見水印技術(shù)
顧名思義,不可見水印可以隱藏于載體圖像中,可是含印圖像會受到一些攻擊,那就需要不可見水印能夠抵御攻擊。要使得不可見水印在保護圖像版權(quán)方面有較好的魯棒性、安全性等。就要對不可見水印進行低強度嵌入,將水印嵌入到圖像的重要小波樹中,若想為增強水印安全性,可對其混沌置亂。處理方法如下:
(1)對于原始載體圖像做多分辨率小波變換處理,可以得到該圖像的重要小波樹[5]。這樣,載體圖像就被分割為低頻、水平、垂直以及對角線這4個頻帶[6]。
(2)將待嵌入水印做混沌置亂處理。
(3)在領域相關(guān)性原則指導下把置亂后的水印嵌入到載體圖像的重要小波樹系數(shù)之中。將重要小波樹系數(shù)做2×2分塊處理。例如,第n個待嵌入的分塊,將其左上頂點作為嵌入點,那么其他三點便是鄰點。得到的領域系數(shù)均值如公式(4)所示,嵌入后得到的小波系數(shù)如公式(5)所示。
(4)
(5)
公式(5)中,s是嵌入深度因子;其數(shù)值與魯棒性成正比。水印的提取規(guī)則見公式(6):
(6)
(4)把按照上述規(guī)則處理后的子帶做逆小波變換操作即可獲得含水印圖像。
系統(tǒng)的整體結(jié)構(gòu)比較簡單,主要包括四部分:水印嵌入、水印提取、算法庫、算法性能測試,如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)圖
3.1水印嵌入模塊
水印嵌入模塊相對于其他模塊要復雜一些,模塊可擴展功能比較強大,用戶可以根據(jù)需要選擇圖像載體、水印以及嵌入算法,并且添加了對水印進行加密或置亂的預處理功能[7]。
3.2水印提取模塊
水印提取模塊可以完成對水印的提取和恢復,提取的算法較為簡單,為嵌入算法的逆過程[8]。
3.3算法庫
算法庫可以完成算法的載入和更新,可以添加上文提出的基于圖像融合和小波變換的水印嵌入和提取算法,用戶也可以根據(jù)自己的需要設計其他算法添加到算法庫中。
3.4算法性能測試模塊
算法的優(yōu)劣應有具體的測試分析指標,該模塊設計了噪聲攻擊、剪切攻擊、篡改等攻擊手段,以便對水印算法性能的測試??梢愿鶕?jù)PSNR、NC等指標來具體評價分析算法性能[9]。
系統(tǒng)可在Windows 7、Windows 10等Windows 操作系統(tǒng)環(huán)境下,使用Visual C++ 6.0和Access 2016 進行架構(gòu),在算法處理上使用了Matlab 7.0,Matlab擁有大量的函數(shù)和工具,在使用C++編程過程中可以對其調(diào)用。系統(tǒng)對于數(shù)據(jù)庫的功能要求不高,可以使用Acess 數(shù)據(jù)庫來完成數(shù)據(jù)的簡單管理操作,具體開發(fā)工具及運行環(huán)境如表2所示。
表2 系統(tǒng)的開發(fā)工具及運行環(huán)境
在實際測試應用中選用256×256的灰度lena圖作為原始載體圖像,可見水印和不可見水印都選用64×64的二值圖像。圖2(a)為原始圖像lena、圖2(b)、圖2(c)分別為可見水印和不可見水印。
(a) 原始圖像lena
(b)可見水印
(c)不可見水印
圖3(a)為嵌入可見水印后的圖像,圖3(b)為嵌入雙重水印后的圖像,圖3(c)為提取出的不可見水印。此處在使用圖像融合技術(shù)的情況下,可見水印不容易擦除。含水印圖像在沒有攻擊的情況下,直接提取出的不可見水印魯棒性很好。
(a) 嵌入可見水印后的圖像(b) 嵌入不可見水印后的圖像(s=0.02)
(c) 提取出的不可見水印(NC=1)圖3 水印的嵌入和提取
圖4為含雙重水印圖像在遭受幾種攻擊的情況下的圖像以及其提取出的不可見水印。含水印圖像在遭受一定程度的篡改、剪裁和噪聲攻擊后都能提取出不可見水印,但水印的魯棒性會有不同程度的降低,具體數(shù)值如表3所示。
(a)受篡改的圖像
(b)提取的水印
(c)受剪裁的圖像
(d)提取的水印
(e)受噪聲攻擊的圖像
(f)提取的水印
表3 含水印圖像PSNR值及不可見水印的NC值
通過圖4的圖像和表3的性能指標可知,含雙重水印圖像在遭受各種攻擊后,可以提取出魯棒性較好的不可見水印,不可見水印有較強的抗攻擊能力,從而可以證明圖像的版權(quán)。通過實際測試,文章所采用的雙重數(shù)字水印算法能夠很好阻止其他人員利用圖像內(nèi)容,可以很好保護原始圖像版權(quán)。
文章采用雙重數(shù)字水印技術(shù)設計了一種水印嵌入與提取系統(tǒng)。系統(tǒng)的需求分析完善,設計較為合理,系統(tǒng)包括水印嵌入、水印提取、算法庫、算法性能測試四大模塊。通過在實際辦公環(huán)境下對系統(tǒng)進行應用測試,系統(tǒng)四大模塊功能均已實現(xiàn)。根據(jù)系統(tǒng)水印嵌入和提取過程中的性能指標分析,系統(tǒng)能很好地實現(xiàn)對數(shù)字圖像版權(quán)和內(nèi)容的保護,且結(jié)構(gòu)簡單、易于操作,可擴展性強,可應用于實際生產(chǎn)生活中。