李亞琴 方立剛 廖黎莉,2 楊元峰
1(江蘇省現(xiàn)代企業(yè)信息化應(yīng)用支撐軟件工程技術(shù)研發(fā)中心 江蘇 蘇州 215104)2(蘇州大學(xué) 江蘇 蘇州 215104)
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,數(shù)字影視傳播途徑愈發(fā)廣泛。視頻網(wǎng)站、互聯(lián)網(wǎng)電視、云存儲(chǔ)服務(wù)使數(shù)字影視傳播迅速,視頻的傳播從傳統(tǒng)媒體時(shí)代一對(duì)多地線性傳播模式,進(jìn)化成為各種不同媒介面向不同對(duì)象地網(wǎng)狀傳播模式[1],與此同時(shí)數(shù)字影視的版權(quán)問(wèn)題愈發(fā)突出[2]。
文獻(xiàn)[3]中提到了在數(shù)字多媒體產(chǎn)品的設(shè)計(jì)、制作、存儲(chǔ)、播放與傳播等環(huán)節(jié)中,一臺(tái)個(gè)人計(jì)算機(jī)設(shè)備就可以非法復(fù)制,并強(qiáng)調(diào)了數(shù)字水印在數(shù)字產(chǎn)品版權(quán)保護(hù)方面的有效意義。文獻(xiàn)[4]中設(shè)計(jì)并實(shí)現(xiàn)了一種基于數(shù)字水印技術(shù)的視頻安全追蹤系統(tǒng),系統(tǒng)包括兩個(gè)組成模塊,即水印嵌入模塊和水印檢出模塊。在嵌入模式上分為服務(wù)器端嵌入模式和用戶端嵌入模式。文獻(xiàn)[5]提出能量差分水印算法,將視頻幀信息進(jìn)行DCT域變換,通過(guò)修改DCT變換后系數(shù)中代表細(xì)節(jié)信息的高頻系數(shù),在原始視頻幀信息數(shù)據(jù)中嵌入水印信息。文獻(xiàn)[6]提出了一種抗攻擊性強(qiáng)的基于時(shí)空特征的壓縮域數(shù)字視頻水印算法,由一個(gè)公共密鑰和一個(gè)私有密鑰組成框架,用于阻止自我共謀攻擊,將一個(gè)雙水印序列嵌入到視頻候選塊中。文獻(xiàn)[7]中提出一種基于改進(jìn)置亂變換的非壓縮視頻圖像多重?cái)?shù)字水印隱藏方法。文獻(xiàn)[8]提出了基于Android系統(tǒng)的視頻水印系統(tǒng),并提出基于空間域的雙偽隨機(jī)序列的水印算法。Lee 等[9]充分利用3D動(dòng)畫(huà)的插值節(jié)點(diǎn)和幾何節(jié)點(diǎn),實(shí)現(xiàn)了兩套獨(dú)立又同步的水印方案,使這種方案適用于脆弱水印和魯棒水印的場(chǎng)景。Tsai等[10]提出一種對(duì)3D網(wǎng)格模型某些節(jié)點(diǎn)的水印方案,這種水印方案有好的魯棒性。以上這些算法均是性能優(yōu)良的算法,不過(guò)都是針對(duì)視頻形式的文件,而不是針對(duì)輸出成視頻之前的動(dòng)畫(huà)源文件形式。
基于以上分析,本文提出了一種應(yīng)用于Maya三維動(dòng)畫(huà)的數(shù)字水印方法,主要是應(yīng)用于Maya的鏡頭參數(shù)中。首先收集一部三維動(dòng)畫(huà)中所有的鏡頭參數(shù),包括鏡頭、視野角度、環(huán)境范圍遠(yuǎn)距、近距等,記錄所有鏡頭參數(shù);其次將鏡頭參數(shù)形成一個(gè)矩陣,對(duì)矩陣進(jìn)行Cholesky分解,對(duì)水印信息矩陣進(jìn)行LU分解;再將分解水印信息得到的元素嵌入到分解鏡頭數(shù)據(jù)得到的下三角矩陣中;最后用新的鏡頭參數(shù)來(lái)約束鏡頭,形成含有水印信息的三維動(dòng)畫(huà)。
第一步確定待嵌入水印的三維動(dòng)畫(huà),記為A。
第二步一部動(dòng)畫(huà)中會(huì)有大量鏡頭的變換,在校動(dòng)漫專業(yè)大學(xué)生制作的動(dòng)畫(huà)作業(yè)中至少有幾十個(gè)鏡頭,動(dòng)漫企業(yè)制作的熒幕播出的動(dòng)畫(huà)會(huì)有幾百上千的鏡頭。每個(gè)鏡頭數(shù)據(jù)包括鏡頭、視野角度、環(huán)境范圍遠(yuǎn)距、近距、平移x,y,z、旋轉(zhuǎn)x,y,z等。收集三維動(dòng)畫(huà)A中的鏡頭數(shù)據(jù)記為矩陣X(若動(dòng)畫(huà)中鏡頭數(shù)據(jù)龐大,收集主要鏡頭的數(shù)據(jù))。
第三步對(duì)矩陣X進(jìn)行Cholesky分解,X=GGH。
G是一個(gè)正對(duì)角元素的下三角方陣,GH是G的厄米矩陣(復(fù)共軛)的轉(zhuǎn)置。
第四步將Cholesky分解得到的下三角矩陣分為若干個(gè)2×2的小方陣,記為:
第五步確定待嵌入的水印信息,水印信息須選擇可代表作者版權(quán)的有用信息,如作者姓名、身份證號(hào)、公司名稱、公司logo等。
第六步將水印信息轉(zhuǎn)換成矩陣,記為W。
第七步對(duì)水印信息矩陣W進(jìn)行LU分解。[L,U]=LU(W)返回U中的上三角矩陣和L中的置換下三角矩陣,使W=L×U。返回值L是下三角矩陣和置換矩陣的乘積。
第八步將矩陣L嵌入到矩陣中,即將矩陣L的每個(gè)元素依次嵌入矩陣G的每個(gè)2×2方陣中,改變后的各方陣記為:
(2) 計(jì)算L中每個(gè)元素各位上的平均值,記為AVELj=average(Lj);
(3)i=1,j=1;
if(AVELj>AVEGi)
/*?代表異或運(yùn)算,last代表各個(gè)元素的最后一位
/*p=1,2,3,4;
/*q=1,2,3,4;
}
i++;
j++;
第九步利用含有水印的G*和它的轉(zhuǎn)置矩陣G*H重構(gòu)矩陣,記為X*。
第十步利用X*中的數(shù)據(jù)重新設(shè)置動(dòng)畫(huà)中的鏡頭,即用新的鏡頭參數(shù)來(lái)設(shè)置動(dòng)畫(huà)中鏡頭的屬性。至此,動(dòng)畫(huà)中已經(jīng)成功嵌入了數(shù)字水印信息。嵌入位置和矩陣U作為嵌入水印的密鑰,妥善保存在作品所有者或第三方公共安全平臺(tái)上,供提取水印時(shí)使用。
當(dāng)網(wǎng)絡(luò)上傳播的三維動(dòng)畫(huà)的版權(quán)發(fā)生爭(zhēng)議時(shí),作者可以利用提取算法從動(dòng)畫(huà)中提取水印,以此證明對(duì)動(dòng)畫(huà)的所有權(quán)。
提取算法基本上是嵌入算法的逆過(guò)程,旨在提取出動(dòng)畫(huà)中嵌入的水印信息,以重構(gòu)初始形態(tài)。
第一步確定待提取水印的三維動(dòng)畫(huà),記為A′。
第二步按照嵌入水印時(shí)的規(guī)則,收集三維動(dòng)畫(huà)A′中的鏡頭數(shù)據(jù)記為矩陣X′。
第三步對(duì)矩陣X′進(jìn)行Cholesky分解,X′=G′GH′。
第五步從矩陣G′中提取水印信息,即從矩陣G′的每個(gè)2×2方陣中提取水印信息,提取出的信息組成矩陣記為L(zhǎng)′。
(2) 使用嵌入時(shí)的信息:
AVELj=average(Lj)
(3)i=1,j=1;
{
/*p=1,2,3,4;
/*q=1,2,3,4;
}
i++;
j++;
第六步利用LU逆變換,矩陣L′與上三角矩陣U重構(gòu)矩陣,得到的矩陣記為W′,這也是提取出來(lái)的完整的水印矩陣。
第七步通過(guò)比對(duì)原始水印矩陣W和提取出的水印矩陣W′,判定動(dòng)畫(huà)的所有權(quán)歸屬。
為了驗(yàn)證算法的性能,選擇了大量的由Maya軟件設(shè)計(jì)制作的三維動(dòng)畫(huà)短片做了實(shí)驗(yàn)。選擇的短片中都設(shè)置了攝像機(jī),因此都具有鏡頭數(shù)據(jù),不同時(shí)間長(zhǎng)度的動(dòng)畫(huà)短片,鏡頭數(shù)據(jù)的數(shù)量也不盡相同。本文實(shí)驗(yàn)全部在MATLAB 2011b和Maya2014中完成。
下面選擇一例具體說(shuō)明,選擇的三維動(dòng)畫(huà)短片《感同身受》,動(dòng)畫(huà)時(shí)長(zhǎng)6分08秒。提取動(dòng)畫(huà)中的鏡頭數(shù)據(jù)組成512×512的矩陣。
圖1是仿真實(shí)驗(yàn)的GUI界面,然后在callback中編寫(xiě)代碼完成實(shí)驗(yàn)。
圖1 仿真實(shí)驗(yàn)的MATLAB界面
算法選擇動(dòng)畫(huà)中的鏡頭數(shù)據(jù)作為水印嵌入載體,每部動(dòng)畫(huà)中的鏡頭在整個(gè)動(dòng)畫(huà)中會(huì)根據(jù)故事情節(jié)需要而變換,而且每一個(gè)鏡頭都具有多個(gè)參數(shù)[11],所以嵌入載體是足夠大的。譬如《感同身受》中,共有60號(hào)鏡頭,鏡頭常見(jiàn)的有平移、旋轉(zhuǎn)、縮放變化,另外包括垂直膠片光圈、水平膠片光圈、視角、焦距、攝影機(jī)本身比例、遠(yuǎn)剪裁平面、近剪裁平面。膠片又具有膠片縱橫比、鏡頭擠壓比、膠片適配偏移、膠片偏移等參數(shù)[12]。由此可見(jiàn)鏡頭數(shù)據(jù)是非常龐大的。水印信息可以選擇有代表意義的信息,本文水印信息選擇圖2所示的圖片,是88×101的二值圖像。文獻(xiàn)[7]中的水印圖像僅為35×35的二值圖像。文獻(xiàn)[13]中實(shí)驗(yàn)選取的文印圖像大小分別為32×32、41×41、43×43、53×53。
圖2 水印信息圖片
本文算法選擇的嵌入載體是鏡頭數(shù)據(jù),將水印嵌入到鏡頭的某些參數(shù)中,動(dòng)畫(huà)中的攝影機(jī)本身就是不可渲染的,所以動(dòng)畫(huà)被輸出成視頻格式后,用戶觀看時(shí),肉眼無(wú)法察覺(jué)水印的存在,故算法具有很好的隱蔽性。本文算法的峰值信噪比PSNR是42.869 2 dB;文獻(xiàn)[5]中算法的PSNR值均在38.19~39.72 dB;文獻(xiàn)[8]中,LSB算法的PSNR是40.166 9 dB;DCT算法的PSNR是40.637 5 dB;DWT算法的PSNR是39.226 8 dB;基于Android系統(tǒng)視頻水印算法的PSNR是41.187 1 dB。可見(jiàn),本文算法較高的PSNR值較好地保證了三維動(dòng)畫(huà)的視覺(jué)效果。
1) 攻擊一:修改鏡頭平移、旋轉(zhuǎn)、縮放數(shù)據(jù)。三維動(dòng)畫(huà)中,鏡頭最常見(jiàn)的變換有平移、旋轉(zhuǎn)、縮放,以跟上角色的位置和表情變化,或者變換全景、近景、中景、特寫(xiě)等鏡頭[14]。所以,鏡頭有關(guān)平移、旋轉(zhuǎn)、縮放的數(shù)據(jù)是最多的。篡改三維動(dòng)畫(huà)時(shí),在這方面做修改的概率也是最大的。表1是修改鏡頭數(shù)據(jù)的數(shù)量和提取出水印與原始水印的相關(guān)系數(shù)。
表1 修改鏡頭數(shù)據(jù)的數(shù)量和提取出水印與原始水印的相關(guān)系數(shù)
2) 攻擊二:修改垂直膠片光圈、水平膠片光圈數(shù)據(jù)。垂直膠片光圈和水平膠片光圈的數(shù)據(jù)量稍小,表2是修改垂直膠片光圈和水平膠片光圈的數(shù)量及提取出水印與原始水印的相關(guān)系數(shù)。
表2 修改垂直膠片光圈和水平膠片光圈的數(shù)量及提取出水印與原始水印的相關(guān)系數(shù)
3) 攻擊三:修改景深參數(shù)。景深,是指在相機(jī)鏡頭或者人眼視覺(jué)系統(tǒng)前,物體能夠獲得清晰成像所測(cè)定的被攝物體前后距離范圍[15]。攝影機(jī)的景深參數(shù)包括聚焦距離、F制光圈、聚焦區(qū)域比例。三維動(dòng)畫(huà)中,根據(jù)需要會(huì)凸顯某個(gè)角色或某個(gè)重要物件,所以會(huì)設(shè)置景深效果。一部動(dòng)畫(huà)中的景深鏡頭數(shù)量有限,故景深數(shù)據(jù)的數(shù)量不會(huì)太大,實(shí)驗(yàn)中先后修改了1、3、5、7處景深數(shù)據(jù)。表3是提取出的水印信息與原始水印信息的相關(guān)系數(shù)。
表3 修改景深數(shù)據(jù)的數(shù)量及提取出水印與原始水印的相關(guān)系數(shù)
4) 攻擊四:修改環(huán)境效果數(shù)據(jù)。環(huán)境效果、特殊效果、正交視圖,這些參數(shù)都是可變可修改的。由于環(huán)境效果能很好地烘托故事情節(jié),所以,不能過(guò)多地修改環(huán)境效果數(shù)據(jù),否則會(huì)影響動(dòng)畫(huà)的觀賞效果。實(shí)驗(yàn)中,最多修改了5處環(huán)境效果數(shù)據(jù),表4是提取出的水印信息與原始水印信息的相關(guān)系數(shù)。
表4 修改環(huán)境效果數(shù)據(jù)的數(shù)量及提取出水印與原始水印的相關(guān)系數(shù)
5) 攻擊五:刪除鏡頭。另一種極端攻擊是刪除鏡頭,刪除鏡頭會(huì)導(dǎo)致此鏡頭的所有參數(shù)被連帶刪除,但刪除鏡頭會(huì)明顯地影響動(dòng)畫(huà)觀看效果,所以實(shí)驗(yàn)中刪除了2個(gè)鏡頭。表5是提取出的水印信息與原始水印信息的相關(guān)系數(shù)。
表5 刪除鏡頭的數(shù)量及提取出水印與原始水印的相關(guān)系數(shù)
本文算法應(yīng)用于三維動(dòng)畫(huà)中,是數(shù)字水印技術(shù)一個(gè)新的應(yīng)用領(lǐng)域,故攻擊類型也較新穎,文獻(xiàn)[16-17]只做了常見(jiàn)的高斯噪聲、椒鹽噪聲、剪切1/16、JPEG壓縮攻擊。
本文提出了一種可以應(yīng)用于由Maya軟件制作的三維動(dòng)畫(huà)的水印算法,水印信息的嵌入載體是動(dòng)畫(huà)中的鏡頭數(shù)據(jù)。由于在制作三維動(dòng)畫(huà)時(shí),絕大多數(shù)情況下都會(huì)設(shè)置攝影機(jī),即絕大多數(shù)三維動(dòng)畫(huà)中都擁有鏡頭數(shù)據(jù),所以,本文算法應(yīng)用范圍較廣。算法不僅可以應(yīng)用到Maya制作的三維動(dòng)畫(huà)中,還可以應(yīng)用到3ds max軟件制作的三維動(dòng)畫(huà)中,具有較好的的擴(kuò)展性。算法的嵌入量、隱蔽性、抗攻擊性都能達(dá)到批量使用的規(guī)格。目前,網(wǎng)絡(luò)帶給人們的便利不言而喻,然而,惡意從網(wǎng)絡(luò)上下載拷貝資源的現(xiàn)象也比比皆是,每年畢業(yè)設(shè)計(jì)答辯時(shí),都會(huì)出現(xiàn)從網(wǎng)絡(luò)上下載的作品作為畢業(yè)設(shè)計(jì)作品,而非出自本人之手。這種現(xiàn)象有悖于公平公正的教育理念,也不利于良好學(xué)風(fēng)的建設(shè),所以必須加強(qiáng)三維動(dòng)畫(huà)短片的版權(quán)保護(hù)。下一步,為了減少密鑰被攻擊竊取的風(fēng)險(xiǎn),將在水印盲檢測(cè)方面做進(jìn)一步研究。