李亞琴 方立剛 廖黎莉,2 楊元峰
1(江蘇省現(xiàn)代企業(yè)信息化應(yīng)用支撐軟件工程技術(shù)研發(fā)中心 江蘇 蘇州 215104)2(蘇州大學(xué) 江蘇 蘇州 215104)
跟隨著網(wǎng)絡(luò)技術(shù)迅猛發(fā)展的腳步,手機(jī)等移動(dòng)終端可以輕易獲取網(wǎng)絡(luò)信息,導(dǎo)致對(duì)信息非法訪(fǎng)問(wèn)、未授權(quán)操作、惡意攻擊等侵權(quán)行為日趨頻繁[1]。對(duì)數(shù)字媒體版權(quán)所有者來(lái)說(shuō),反盜版維權(quán)是保護(hù)公司或自身利益的一個(gè)關(guān)鍵點(diǎn)[2]。數(shù)字水印技術(shù)是將一些標(biāo)識(shí)信息(即數(shù)字水印)嵌入數(shù)字載體當(dāng)中(包括多媒體、文檔、圖像、軟件、音頻、視頻等)[3],且不影響原載體的使用價(jià)值,也不容易被檢測(cè)和再次修改[4],但可以被產(chǎn)生方通過(guò)密鑰等提取出來(lái)[5]。數(shù)字動(dòng)畫(huà)因其畫(huà)面形象生動(dòng)、高信息量、虛擬仿真特性[6],是最容易被大眾接受的一種媒體形式。因此,保護(hù)數(shù)字動(dòng)畫(huà)的版權(quán)顯得尤為重要,針對(duì)動(dòng)畫(huà)的數(shù)字水印嵌入和提取技術(shù)逐漸成為了研究的熱點(diǎn)問(wèn)題[7]。
目前,在數(shù)字水印領(lǐng)域,水印的可檢測(cè)性、信息載體的容量和水印對(duì)攻擊的魯棒性等成為評(píng)判一個(gè)水印算法的重要指標(biāo)[8]。文獻(xiàn)[4,8]提出基于壓縮感知采樣理論和模糊理論的圖像數(shù)字水印算法;文獻(xiàn)[9-10]分別提出基于Contourlet變換、Curvelet變換和奇異值分解的水印嵌入算法;文獻(xiàn)[1]引入μ律技術(shù),將小波分解與對(duì)數(shù)量化索引調(diào)制結(jié)合,提出基于DWT域的對(duì)數(shù)量化索引調(diào)制數(shù)字水印算法;文獻(xiàn)[7]提出一種利用能量差分方法將數(shù)字水印信息嵌入到DCT變換后的視頻幀信息中的數(shù)字視頻水印算法;文獻(xiàn)[11]提出一種基于雙樹(shù)復(fù)數(shù)小波變換和多元BKF分布理論的新的統(tǒng)計(jì)模型數(shù)字音頻盲水印算法;文獻(xiàn)[12-13]提出基于提升小波變換的水印算法。這些都是優(yōu)秀的水印算法,水印的信息量和抗攻擊性都很卓越,但是目前針對(duì)三維動(dòng)畫(huà)的水印算法少之又少。
針對(duì)三維動(dòng)畫(huà)的版權(quán)保護(hù),提出了一種基于Jordan變換和SVD分解的算法。將三維動(dòng)畫(huà)的骨骼權(quán)重參數(shù)作為水印的嵌入載體,將動(dòng)畫(huà)中的權(quán)重參數(shù)形成一個(gè)矩陣。對(duì)矩陣實(shí)施Jordan變換和SVD分解,分解后將每個(gè)分塊的奇異值形成最大奇異值特征矩陣。根據(jù)特征矩陣的值確定水印的嵌入位置,將具有意義的水印信息嵌入到確定的位置上,從而將水印信息嵌入到動(dòng)畫(huà)的權(quán)重參數(shù)中,形成含有水印的三維動(dòng)畫(huà),實(shí)現(xiàn)利用水印技術(shù)保護(hù)動(dòng)畫(huà)的版權(quán)。
定理1設(shè)A∈Cn×n,則存在可逆矩陣T∈Cn×n,使得:
A=TJT-1
(1)
式中:
J稱(chēng)為A的若爾當(dāng)標(biāo)準(zhǔn)形,Jik為A的若爾當(dāng)塊[14]。
(2)
式中:Σ=diag(σ1,σ2,…,σr),而σi(i=1,2,…,r)為A的正奇異值,稱(chēng)下式為A的奇異值分解[15]。
(3)
三維動(dòng)畫(huà)中的權(quán)重,就是控制骨骼及面部Blendshape的影響范圍和控制程度。一部三維角色動(dòng)畫(huà)中,角色要完成動(dòng)作或表情,必須要為角色創(chuàng)建骨骼并將骨骼綁定到角色,骨骼控制模型運(yùn)動(dòng)。為了避免出現(xiàn)肌肉扭曲的現(xiàn)象,必須要對(duì)每一根骨骼設(shè)置合理的權(quán)重?cái)?shù)據(jù),即要給予每個(gè)關(guān)節(jié)所驅(qū)動(dòng)的皮膚具有最合適的權(quán)重值,最終使肌肉運(yùn)動(dòng)符合運(yùn)動(dòng)規(guī)律,避免“肌肉穿插”等現(xiàn)象。一個(gè)簡(jiǎn)單的角色至少有幾十根骨骼,動(dòng)作復(fù)雜且細(xì)膩的角色,骨骼數(shù)量會(huì)達(dá)到200根,同一根骨骼在不同的動(dòng)作下權(quán)重也會(huì)發(fā)生變化,所以,骨骼的權(quán)重?cái)?shù)據(jù)是很龐大的,非常適合作為載體嵌入數(shù)字水印信息。
第一步:收集一部三維動(dòng)畫(huà)中的骨骼權(quán)重?cái)?shù)據(jù)(若動(dòng)畫(huà)中骨骼數(shù)量龐大,可收集重要角色的骨骼權(quán)重?cái)?shù)據(jù)),去除冗余元素后形成矩陣,記為X。
第二步:對(duì)矩陣X進(jìn)行Jordan變換,得到矩陣T、J;[T,J]=jordan(X),計(jì)算jordan形式J和相似變換T,矩陣T包含X的廣義特征向量,T/X×T=J。
第三步:將矩陣T分成若干個(gè)k×k的小塊矩陣,記為Vk×k。
第四步:依次對(duì)每個(gè)小塊矩陣Vk×k進(jìn)行奇異值分解(SVD),[U,S,P]=SVD(Vk×k)產(chǎn)生一個(gè)與V相同維度的對(duì)角矩陣,以非負(fù)對(duì)角元素的遞減順序,以及酉矩陣U和P,使Vk×k=U×P′。
第五步:確定嵌入位置:
(4)
(2) 利用每個(gè)塊最大奇異值Pi,j與整體最大奇異值的均值A(chǔ)VE的關(guān)系構(gòu)造特征矩陣S。
第六步:將代表作者版權(quán)的水印信息嵌入到三維動(dòng)畫(huà)中:
(1) 確定待嵌入的水印信息,保留有效元素,進(jìn)行隨機(jī)置亂后記為W;
(2) 根據(jù)特征矩陣S中的元素Si,j的值決定嵌入的位置。
式中:α是密鑰,數(shù)值需要通過(guò)實(shí)驗(yàn)得出折衷后的最佳數(shù)值。
第八步:利用新的權(quán)重?cái)?shù)據(jù)來(lái)重新設(shè)置動(dòng)畫(huà)中相應(yīng)骨骼的權(quán)重值,到此,三維動(dòng)畫(huà)中已經(jīng)嵌入了數(shù)字水印,嵌入載體是骨骼的權(quán)重?cái)?shù)據(jù)。
當(dāng)三維動(dòng)畫(huà)的版權(quán)發(fā)生爭(zhēng)議時(shí),可以提取動(dòng)畫(huà)中的水印,以判定動(dòng)畫(huà)的版權(quán)歸屬。
水印的提取過(guò)程,主要是嵌入算法的逆過(guò)程,具體步驟如下:
第一步:收集爭(zhēng)議三維動(dòng)畫(huà)中的骨骼權(quán)重?cái)?shù)據(jù)(或按照嵌入算法收集特定角色的骨骼權(quán)重參數(shù)),形成矩陣,記為X*;
第二步:對(duì)矩陣X*進(jìn)行Jordan變換,得到矩陣T*、J*;
第五步:找出水印的嵌入位置:
(5)
第六步:利用密鑰α提取出水印。
第七步:將提取出的水印形成矩陣,記為W*。
本文選擇的三維動(dòng)畫(huà)短片,情節(jié)是以宣傳愛(ài)與友善為目的的體現(xiàn)社會(huì)主義核心價(jià)值觀(guān)的動(dòng)畫(huà)《遺失的善良》。動(dòng)畫(huà)長(zhǎng)度6分06秒,動(dòng)畫(huà)中共有5個(gè)角色,分別是主人公小男孩、一只豬、兩只雞和農(nóng)場(chǎng)主,將場(chǎng)景中的人物骨骼權(quán)重?cái)?shù)據(jù)形成一個(gè)128×128的方陣,將水印信息利用本文提出的算法嵌入到方陣的奇異值分解參數(shù)中,通過(guò)大量實(shí)驗(yàn)選擇最優(yōu)參數(shù)值和最合適的嵌入位置。本文實(shí)驗(yàn)全部在MAYA 2015和MATLAB R2011b中完成。
圖1是仿真實(shí)驗(yàn)的GUI界面,然后在callback中編寫(xiě)代碼完成實(shí)驗(yàn)。
圖1 仿真實(shí)驗(yàn)的GUI界面
一部三維角色動(dòng)畫(huà),骨骼的權(quán)重?cái)?shù)據(jù)非常龐大,說(shuō)明水印的嵌入載體巨大,可以嵌入最能代表作者身份的身份證號(hào)碼,也可以嵌入一幅能代表版權(quán)的圖片,圖2是本文實(shí)驗(yàn)嵌入的水印信息圖,圖3是置亂后的水印信息圖,圖4是提取出并還原后的水印信息圖。根據(jù)多次實(shí)驗(yàn),確定密鑰α的值為0.15。
圖2 原始水印信息
圖3 置亂后的水印信息
圖4 還原后的水印信息
本文算法將水印嵌入到骨骼的蒙皮權(quán)重?cái)?shù)據(jù)中,骨骼是創(chuàng)建在角色模型內(nèi)部的,播放動(dòng)畫(huà)時(shí),觀(guān)眾只能看到模型的表演,而看不到隱藏在模型內(nèi)部的骨骼。故嵌入水印后,肉眼是無(wú)法察覺(jué)的。本文算法的峰值信噪比PSNR為49.652 7。
(1) 噪聲攻擊 本文實(shí)驗(yàn)對(duì)三維動(dòng)畫(huà)短片進(jìn)行了高斯白噪聲和椒鹽噪聲的攻擊,由于水印信息是嵌入在動(dòng)畫(huà)角色的骨骼權(quán)重?cái)?shù)據(jù)中,不是在角色本身或是動(dòng)畫(huà)背景中,所以不受噪聲攻擊的影響,提取水印和原始水印的相關(guān)系數(shù)是1.000 0。
(2) 縮放動(dòng)畫(huà)長(zhǎng)度 實(shí)驗(yàn)所用動(dòng)畫(huà)的長(zhǎng)度為6分06秒,對(duì)動(dòng)畫(huà)實(shí)施縮放動(dòng)畫(huà)長(zhǎng)度的攻擊。首先減慢動(dòng)畫(huà)的播放速度,由每秒播放25幀減慢為每秒播放20幀,動(dòng)畫(huà)長(zhǎng)度增加到7分37秒。由于動(dòng)畫(huà)長(zhǎng)度的改變只是播放速度的變化,對(duì)角色本身沒(méi)有影響,所以提取水印與原始水印的相關(guān)系數(shù)是1.000 0。其次加快動(dòng)畫(huà)的播放速度,由每秒播放25幀改為每秒播放30幀,動(dòng)畫(huà)長(zhǎng)度減少到5分05秒。同樣不影響水印信息的提取,提取水印與原始水印的相關(guān)系數(shù)是1.000 0。
(3) 增減動(dòng)畫(huà)幀數(shù) 動(dòng)畫(huà)共有9 150幀,對(duì)動(dòng)畫(huà)實(shí)施增減幀數(shù)的攻擊。首先減少動(dòng)畫(huà)的幀數(shù),隨機(jī)刪除12幀,由于畫(huà)面具有連貫性,根據(jù)視覺(jué)暫存效應(yīng)形成動(dòng)畫(huà),所以,過(guò)多地刪除幀數(shù)會(huì)影響動(dòng)畫(huà)的視覺(jué)效果,攻擊者不能大幅度地刪除幀。實(shí)驗(yàn)刪除12幀已經(jīng)是最大程度了,按照PAL電視制式每秒播放25幀的速率,12幀已接近半秒鐘,對(duì)動(dòng)畫(huà)的視覺(jué)效果有明顯影響。由于水印是嵌入在權(quán)重參數(shù)中,刪除動(dòng)畫(huà)幀不會(huì)影響到角色本身,故不會(huì)影響角色的骨骼和骨骼數(shù)據(jù),提取水印與原始水印的相關(guān)系數(shù)是1.000 0。通過(guò)復(fù)制幀、插入幀等方式增加動(dòng)畫(huà)幀數(shù)也是同樣的情況。
(4) 修改骨骼的權(quán)重?cái)?shù)據(jù) 修改骨骼的權(quán)重?cái)?shù)據(jù),可能會(huì)將水印信息刪除或修改。實(shí)驗(yàn)修改了部分骨骼的權(quán)重,圖5是Maya 2015中繪制蒙皮權(quán)重的工具,圖6是動(dòng)畫(huà)中主要角色小男孩的骨骼圖。
圖5 繪制蒙皮權(quán)重工具
圖6 角色的骨骼圖
實(shí)驗(yàn)修改了部分骨骼的蒙皮權(quán)重?cái)?shù)據(jù),修改后,從動(dòng)畫(huà)中按照提取算法提取出水印,計(jì)算提取水印與原始水印的相關(guān)系數(shù),如表1所示。
表1 提取水印與原始水印的相關(guān)系數(shù)
修改骨骼的蒙皮權(quán)重會(huì)影響骨骼對(duì)肌肉的控制,所以過(guò)多的修改蒙皮權(quán)重,動(dòng)畫(huà)人物會(huì)出現(xiàn)扭曲變形的情況,影響動(dòng)畫(huà)視覺(jué)效果,故攻擊者不能肆意修改骨骼蒙皮權(quán)重,表1中的修改十處骨骼已屬于極端情況。
(5) 刪除骨骼 刪除骨骼雖然不會(huì)影響角色的外觀(guān),但是同樣會(huì)影響被嵌入的水印。如果刪除的骨骼正是水印的嵌入位置之一,那么骨骼刪除后,此位置無(wú)法提取出水印。但是,過(guò)多地刪除骨骼,角色無(wú)法完成預(yù)期的動(dòng)作或表情,影響預(yù)期劇本和分鏡頭的實(shí)現(xiàn)從而導(dǎo)致動(dòng)畫(huà)視覺(jué)效果受損。因此,盜版者不能大量肆意地刪除骨骼,且刪除部分骨骼后,要重新對(duì)模型進(jìn)行蒙皮和刷權(quán)重,工作量巨大。表2是刪除骨骼位置和數(shù)量的情況,以及篡改后提取水印與原始水印的相關(guān)系數(shù)。
表2 刪除骨骼位置和數(shù)量的情況
從以上的實(shí)驗(yàn)結(jié)果可以得出:本文算法不僅具有較好的水印嵌入透明性,使得水印嵌入后具有更好的保密性,而且能夠抵抗大部分常規(guī)攻擊及針對(duì)三維動(dòng)畫(huà)的特殊攻擊,較好地解決了魯棒性與不可感知性之間的平衡問(wèn)題。
本文算法將數(shù)字水印技術(shù)應(yīng)用到三維動(dòng)畫(huà)中,利用數(shù)字水印技術(shù)在版權(quán)保護(hù)方面的優(yōu)勢(shì)來(lái)保護(hù)三維動(dòng)畫(huà)的內(nèi)容和知識(shí)產(chǎn)權(quán),拓寬了數(shù)字水印技術(shù)的應(yīng)用范圍,也保護(hù)了文化創(chuàng)意作品的版權(quán),推行原創(chuàng)的氛圍,具有創(chuàng)新價(jià)值和實(shí)際意義。算法不僅可以應(yīng)用到Maya軟件制作的動(dòng)畫(huà)中,還可以應(yīng)用到3D MAX軟件制作的動(dòng)畫(huà)中。稍加修改,可以進(jìn)一步推廣到其他動(dòng)漫設(shè)計(jì)軟件中,應(yīng)用范圍廣泛。更強(qiáng)的魯棒性和透明性限制了水印的嵌入量,所以下一步的改進(jìn)目標(biāo)就是要在保證較強(qiáng)的魯棒性和透明性的同時(shí)提高水印的嵌入量。