李亞琴,周德富,陸公正
(蘇州市職業(yè)大學 計算機工程系,江蘇 蘇州 215104)
數(shù)字水印技術是在3D MAX多邊形網(wǎng)格數(shù)據(jù)中嵌入數(shù)字水印技術,對3D模型和其他CAD產品進行有效保護[1]的途徑之一.近年來對三維網(wǎng)格模型數(shù)字水印的研究工作日益增多.R.Ohbuchi在文獻[2]中提出了TSQ和TVR網(wǎng)格水印算法,及一種可視的網(wǎng)格水印算法,這無疑給三維網(wǎng)格模型水印的研究提供了許多可能的思路.Kim等[3]以網(wǎng)格的對偶圖構造出規(guī)則化的拉普拉斯矩陣,使頻譜分解正交基的固定化成為可能.文獻[4]提出一種強壯水印方案.最為成功的強壯水印算法是E.Praun[5]提出的,他利用多分辨率分析的思想,對三維網(wǎng)格模型頂點構造一組標量基函數(shù),并把基函數(shù)作為權值,對網(wǎng)格的頂點坐標進行加權的輕微擾動.實驗證明此算法具有較好的強壯性.但是仍然存在著不足之處,如計算量大、完全獨立于常用的網(wǎng)格處理和編輯算法,水印信息是實數(shù)序列而不是二值序列.
本文提出一種三維網(wǎng)格模型數(shù)字水印算法,算法在三維軟件3D MAX中進行.首先將場景中的對象轉換成網(wǎng)格模型,對模型的頂點子對象和面子對象進行分析和選擇,選擇合適的位置來嵌入水印,水印嵌入方法采用修改最不重要位來實現(xiàn).
(1) 編輯網(wǎng)格修改器.所有的網(wǎng)格對象都是默認的Editable Mesh (可編輯網(wǎng)格)對象.在保持對象的基本創(chuàng)建參數(shù)的同時,此修改器能夠修改Editable Mesh的子對象.當一個對象被塌陷成Editable Mesh時,它的參數(shù)性質被消除.然而,使用修改器,仍然可以保留對象類型和參數(shù)性質.
(2) 水印嵌入算法.輸入:三維模型;輸出:加入水印的三維網(wǎng)格模型 .
Step1:將場景中的一個或者多個對象,添加“編輯網(wǎng)格”修改器,將其轉換成網(wǎng)格模型.網(wǎng)格模型中有五個子層次對象,分別為“頂點”、“邊”、“面”、“多邊形”和“元素”;
Step2:對“頂點”和“面”子對象進行分析,選擇合適的位置嵌入水印.本文采用的是選擇形狀為直角三角形的面,修改其較小銳角所在頂點的坐標;
Step3:修改較小銳角所在頂點的坐標,采用的是修改最不重要位的方法.
利用隨機函數(shù)random產生一個矩陣,矩陣的元素數(shù)量和模型中直角三角形的數(shù)量相同,這個矩陣作為水印信息,將被嵌入到網(wǎng)格模型中.If 判斷面為直角三角形
If 兩個銳角不相等
將較小銳角所在頂點的像素值最末位修改成矩陣中元素的值;
Else 將兩個銳角所在頂點的像素值最末位都修改成矩陣中同一元素的值;
Else 不做修改
將修改后所得三維對象與原始對象進行相似程度比較,用SNR值來定量衡量三維模型的改變程度.
當三維設計作品的版權發(fā)生糾紛時,可以從中提取水印來判斷版權的所有者.
輸入:有版權爭議的三維作品;輸出:版權所有者判斷結果.先對對象的所有面進行判斷:
將所得水印和原始水印信息進行比較,用相關系數(shù)來定量衡量算法的魯棒性.
為了驗證算法的可行性和有效性,本文做了大量的實驗,現(xiàn)取兩個三維模型為例.一個是簡單的長方體,一個是較復雜的電腦顯示器.本文實驗全部在3D MAX 9和Matlab 7.0中完成.
在長方體模型中,模型大小為600 mm×400 mm×100 mm,長度分段、寬度分段和高度分段均為1,將其轉換成網(wǎng)格模型后,共有8個頂點,12個面,且均為直角三角形.
用隨機函數(shù)產生一個共有12個元素的矩陣.當修改直角三角形較小銳角點的時候,根據(jù)圖1的順序進行.
圖2為原始模型,圖3為修改頂點坐標后的模型.加入水印的模型與原始模型的SNR值為45.427 6.加入水印后的長方體與原始模型的相似系數(shù)為0.925 8.
對加入水印的模型進行攻擊,從中提取出水印,攻擊后的模型與原始模型的SNR值及相關系數(shù),以及提取出的水印與原始水印的相關系數(shù)如表1所示.
圖4顯示在加入水印模型中,對一個頂點進行分離后的形狀,圖5顯示將一個面進行細分后的形狀,圖6顯示刪除一條邊后的形狀.
圖1 修改長方體頂點坐標的順序
圖2 原始長方體
圖3 加水印長方體
表1 攻擊類型及相關系數(shù)
圖4 將一個頂點分離
圖5 將一個面細分
圖6 刪除一條邊
在顯示器模型中,將其轉換成網(wǎng)格模型后,共有300個頂點,596個面.圖7為原始模型,圖8為修改頂點坐標后的模型.加入水印的模型與原始模型的SNR值為42.329 6.加入水印后的顯示器與原始模型的相似系數(shù)為0.909 8.
對加入水印的模型進行攻擊,從中提取出水印,攻擊后的模型與原始模型的SNR值及相關系數(shù),以及提取出的水印與原始水印的相關系數(shù)如表2所示.
圖9顯示在加入水印模型中刪除一個頂點后的形狀,圖10顯示刪除一個面后的形狀,圖11顯示刪除一條邊后的形狀,圖12顯示將一個面進行細化后的形狀.
算法對三維模型的損耗很小,肉眼幾乎無法分辨.該算法實現(xiàn)起來比較簡單,且不可見性好,算法的時間復雜度較低,加密效果較好,安全性較高;但在魯棒性方面,抵抗剪切的能力稍差.
圖7 原始顯示器
圖8 加水印顯示器
表2 攻擊類型及相關系數(shù)
圖9 刪除一個頂點
圖10 刪除一個面
圖11 刪除一條邊
圖12 將一個面細化
本文提出了一種應用于3D MAX的三維數(shù)字水印算法,目前有很多三維數(shù)字水印算法,但大都是采用已有的三維模型,與3D MAX結合起來的確很少,所以本算法新穎,具有創(chuàng)新性.實驗結果表明:算法易于實現(xiàn),利用隨機數(shù)據(jù)嵌入水印,安全性較高,算法載荷較小,可以有效地保護利用3D MAX軟件設計出來的作品,具有一定的實用價值.但是,算法也存在一些缺陷,比如抗攻擊能力稍差,今后將在魯棒性上作進一步研究.
[1] 艾青松,周祖德,劉 泉.基于奇異值分解的三維網(wǎng)格模型數(shù)字水印算法[J].計算機應用,2007,27(12):2931-2933.
[2] OHBUCH I R,MASUDA H,AONO M.Watermarking three-dimensional polygonal models through geometric and topological modifications[J].IEEE Journal on Selected Areas in Communications,1998,16(4):551-560.
[3] KIM Sung-Yeol,YOON Seung-Uk,HO Yo-Sung.Spectral coding of three-dimensional mesh geometry information using dual graph[J].LNCS,2004,3331:410-417.
[4] 張 靜,鄭國勤.基于幾何特征的三維網(wǎng)格數(shù)字水印算法[J].計算機輔助設計與圖形學學報,2005,17(4):740-747.