基于三维动画镜头数据和Cholesky分解的水印算法

2019-11-12 05:12:16李亚琴方立刚廖黎莉杨元峰
计算机应用与软件 2019年11期
关键词:三维动画胶片光圈

李亚琴 方立刚 廖黎莉,2 杨元峰

1(江苏省现代企业信息化应用支撑软件工程技术研发中心 江苏 苏州 215104)2(苏州大学 江苏 苏州 215104)

0 引 言

随着互联网技术的飞速发展,数字影视传播途径愈发广泛。视频网站、互联网电视、云存储服务使数字影视传播迅速,视频的传播从传统媒体时代一对多地线性传播模式,进化成为各种不同媒介面向不同对象地网状传播模式[1],与此同时数字影视的版权问题愈发突出[2]。

文献[3]中提到了在数字多媒体产品的设计、制作、存储、播放与传播等环节中,一台个人计算机设备就可以非法复制,并强调了数字水印在数字产品版权保护方面的有效意义。文献[4]中设计并实现了一种基于数字水印技术的视频安全追踪系统,系统包括两个组成模块,即水印嵌入模块和水印检出模块。在嵌入模式上分为服务器端嵌入模式和用户端嵌入模式。文献[5]提出能量差分水印算法,将视频帧信息进行DCT域变换,通过修改DCT变换后系数中代表细节信息的高频系数,在原始视频帧信息数据中嵌入水印信息。文献[6]提出了一种抗攻击性强的基于时空特征的压缩域数字视频水印算法,由一个公共密钥和一个私有密钥组成框架,用于阻止自我共谋攻击,将一个双水印序列嵌入到视频候选块中。文献[7]中提出一种基于改进置乱变换的非压缩视频图像多重数字水印隐藏方法。文献[8]提出了基于Android系统的视频水印系统,并提出基于空间域的双伪随机序列的水印算法。Lee 等[9]充分利用3D动画的插值节点和几何节点,实现了两套独立又同步的水印方案,使这种方案适用于脆弱水印和鲁棒水印的场景。Tsai等[10]提出一种对3D网格模型某些节点的水印方案,这种水印方案有好的鲁棒性。以上这些算法均是性能优良的算法,不过都是针对视频形式的文件,而不是针对输出成视频之前的动画源文件形式。

基于以上分析,本文提出了一种应用于Maya三维动画的数字水印方法,主要是应用于Maya的镜头参数中。首先收集一部三维动画中所有的镜头参数,包括镜头、视野角度、环境范围远距、近距等,记录所有镜头参数;其次将镜头参数形成一个矩阵,对矩阵进行Cholesky分解,对水印信息矩阵进行LU分解;再将分解水印信息得到的元素嵌入到分解镜头数据得到的下三角矩阵中;最后用新的镜头参数来约束镜头,形成含有水印信息的三维动画。

1 数字水印嵌入算法

第一步确定待嵌入水印的三维动画,记为A。

第二步一部动画中会有大量镜头的变换,在校动漫专业大学生制作的动画作业中至少有几十个镜头,动漫企业制作的荧幕播出的动画会有几百上千的镜头。每个镜头数据包括镜头、视野角度、环境范围远距、近距、平移x,y,z、旋转x,y,z等。收集三维动画A中的镜头数据记为矩阵X(若动画中镜头数据庞大,收集主要镜头的数据)。

第三步对矩阵X进行Cholesky分解,X=GGH。

G是一个正对角元素的下三角方阵,GH是G的厄米矩阵(复共轭)的转置。

第四步将Cholesky分解得到的下三角矩阵分为若干个2×2的小方阵,记为:

第五步确定待嵌入的水印信息,水印信息须选择可代表作者版权的有用信息,如作者姓名、身份证号、公司名称、公司logo等。

第六步将水印信息转换成矩阵,记为W。

第七步对水印信息矩阵W进行LU分解。[L,U]=LU(W)返回U中的上三角矩阵和L中的置换下三角矩阵,使W=L×U。返回值L是下三角矩阵和置换矩阵的乘积。

第八步将矩阵L嵌入到矩阵中,即将矩阵L的每个元素依次嵌入矩阵G的每个2×2方阵中,改变后的各方阵记为:

(2) 计算L中每个元素各位上的平均值,记为AVELj=average(Lj);

(3)i=1,j=1;

if(AVELj>AVEGi)

/*⨁代表异或运算,last代表各个元素的最后一位

/*p=1,2,3,4;

/*q=1,2,3,4;

}

i++;

j++;

第九步利用含有水印的G*和它的转置矩阵G*H重构矩阵,记为X*。

第十步利用X*中的数据重新设置动画中的镜头,即用新的镜头参数来设置动画中镜头的属性。至此,动画中已经成功嵌入了数字水印信息。嵌入位置和矩阵U作为嵌入水印的密钥,妥善保存在作品所有者或第三方公共安全平台上,供提取水印时使用。

2 数字水印提取算法

当网络上传播的三维动画的版权发生争议时,作者可以利用提取算法从动画中提取水印,以此证明对动画的所有权。

提取算法基本上是嵌入算法的逆过程,旨在提取出动画中嵌入的水印信息,以重构初始形态。

第一步确定待提取水印的三维动画,记为A′。

第二步按照嵌入水印时的规则,收集三维动画A′中的镜头数据记为矩阵X′。

第三步对矩阵X′进行Cholesky分解,X′=G′GH′。

第五步从矩阵G′中提取水印信息,即从矩阵G′的每个2×2方阵中提取水印信息,提取出的信息组成矩阵记为L′。

(2) 使用嵌入时的信息:

AVELj=average(Lj)

(3)i=1,j=1;

{

/*p=1,2,3,4;

/*q=1,2,3,4;

}

i++;

j++;

第六步利用LU逆变换,矩阵L′与上三角矩阵U重构矩阵,得到的矩阵记为W′,这也是提取出来的完整的水印矩阵。

第七步通过比对原始水印矩阵W和提取出的水印矩阵W′,判定动画的所有权归属。

3 仿真实验

为了验证算法的性能,选择了大量的由Maya软件设计制作的三维动画短片做了实验。选择的短片中都设置了摄像机,因此都具有镜头数据,不同时间长度的动画短片,镜头数据的数量也不尽相同。本文实验全部在MATLAB 2011b和Maya2014中完成。

下面选择一例具体说明,选择的三维动画短片《感同身受》,动画时长6分08秒。提取动画中的镜头数据组成512×512的矩阵。

图1是仿真实验的GUI界面,然后在callback中编写代码完成实验。

图1 仿真实验的MATLAB界面

3.1 算法嵌入量

算法选择动画中的镜头数据作为水印嵌入载体,每部动画中的镜头在整个动画中会根据故事情节需要而变换,而且每一个镜头都具有多个参数[11],所以嵌入载体是足够大的。譬如《感同身受》中,共有60号镜头,镜头常见的有平移、旋转、缩放变化,另外包括垂直胶片光圈、水平胶片光圈、视角、焦距、摄影机本身比例、远剪裁平面、近剪裁平面。胶片又具有胶片纵横比、镜头挤压比、胶片适配偏移、胶片偏移等参数[12]。由此可见镜头数据是非常庞大的。水印信息可以选择有代表意义的信息,本文水印信息选择图2所示的图片,是88×101的二值图像。文献[7]中的水印图像仅为35×35的二值图像。文献[13]中实验选取的文印图像大小分别为32×32、41×41、43×43、53×53。

图2 水印信息图片

3.2 算法的隐蔽性

本文算法选择的嵌入载体是镜头数据,将水印嵌入到镜头的某些参数中,动画中的摄影机本身就是不可渲染的,所以动画被输出成视频格式后,用户观看时,肉眼无法察觉水印的存在,故算法具有很好的隐蔽性。本文算法的峰值信噪比PSNR是42.869 2 dB;文献[5]中算法的PSNR值均在38.19~39.72 dB;文献[8]中,LSB算法的PSNR是40.166 9 dB;DCT算法的PSNR是40.637 5 dB;DWT算法的PSNR是39.226 8 dB;基于Android系统视频水印算法的PSNR是41.187 1 dB。可见,本文算法较高的PSNR值较好地保证了三维动画的视觉效果。

3.3 算法的鲁棒性

1) 攻击一:修改镜头平移、旋转、缩放数据。三维动画中,镜头最常见的变换有平移、旋转、缩放,以跟上角色的位置和表情变化,或者变换全景、近景、中景、特写等镜头[14]。所以,镜头有关平移、旋转、缩放的数据是最多的。篡改三维动画时,在这方面做修改的概率也是最大的。表1是修改镜头数据的数量和提取出水印与原始水印的相关系数。

表1 修改镜头数据的数量和提取出水印与原始水印的相关系数

2) 攻击二:修改垂直胶片光圈、水平胶片光圈数据。垂直胶片光圈和水平胶片光圈的数据量稍小,表2是修改垂直胶片光圈和水平胶片光圈的数量及提取出水印与原始水印的相关系数。

表2 修改垂直胶片光圈和水平胶片光圈的数量及提取出水印与原始水印的相关系数

3) 攻击三:修改景深参数。景深,是指在相机镜头或者人眼视觉系统前,物体能够获得清晰成像所测定的被摄物体前后距离范围[15]。摄影机的景深参数包括聚焦距离、F制光圈、聚焦区域比例。三维动画中,根据需要会凸显某个角色或某个重要物件,所以会设置景深效果。一部动画中的景深镜头数量有限,故景深数据的数量不会太大,实验中先后修改了1、3、5、7处景深数据。表3是提取出的水印信息与原始水印信息的相关系数。

表3 修改景深数据的数量及提取出水印与原始水印的相关系数

4) 攻击四:修改环境效果数据。环境效果、特殊效果、正交视图,这些参数都是可变可修改的。由于环境效果能很好地烘托故事情节,所以,不能过多地修改环境效果数据,否则会影响动画的观赏效果。实验中,最多修改了5处环境效果数据,表4是提取出的水印信息与原始水印信息的相关系数。

表4 修改环境效果数据的数量及提取出水印与原始水印的相关系数

5) 攻击五:删除镜头。另一种极端攻击是删除镜头,删除镜头会导致此镜头的所有参数被连带删除,但删除镜头会明显地影响动画观看效果,所以实验中删除了2个镜头。表5是提取出的水印信息与原始水印信息的相关系数。

表5 删除镜头的数量及提取出水印与原始水印的相关系数

本文算法应用于三维动画中,是数字水印技术一个新的应用领域,故攻击类型也较新颖,文献[16-17]只做了常见的高斯噪声、椒盐噪声、剪切1/16、JPEG压缩攻击。

4 结 语

本文提出了一种可以应用于由Maya软件制作的三维动画的水印算法,水印信息的嵌入载体是动画中的镜头数据。由于在制作三维动画时,绝大多数情况下都会设置摄影机,即绝大多数三维动画中都拥有镜头数据,所以,本文算法应用范围较广。算法不仅可以应用到Maya制作的三维动画中,还可以应用到3ds max软件制作的三维动画中,具有较好的的扩展性。算法的嵌入量、隐蔽性、抗攻击性都能达到批量使用的规格。目前,网络带给人们的便利不言而喻,然而,恶意从网络上下载拷贝资源的现象也比比皆是,每年毕业设计答辩时,都会出现从网络上下载的作品作为毕业设计作品,而非出自本人之手。这种现象有悖于公平公正的教育理念,也不利于良好学风的建设,所以必须加强三维动画短片的版权保护。下一步,为了减少密钥被攻击窃取的风险,将在水印盲检测方面做进一步研究。

猜你喜欢
三维动画胶片光圈
No.8 胶片复兴使柯达公司产量翻两番
影像视界
影像视界
论三维动画特效数字模拟真实性与艺术性的结合
河北画报(2021年2期)2021-05-25 02:07:28
中国水墨画在三维动画设计中的应用
河北画报(2021年2期)2021-05-25 02:06:42
90Sr-90Y敷贴治疗的EBT3胶片剂量验证方法
胶片相机的维修 当胶片机出现问题了该怎么办
摄影之友(2019年8期)2019-03-31 03:06:19
作品一
丝路艺术(2018年8期)2018-09-27 09:24:38
提升格调的光圈、焦距设计
CHIP新电脑(2016年3期)2016-03-10 14:33:43
“0起点”专业摄影技巧与基本功训练(二)
消费电子(2016年2期)2016-03-01 08:21:07