李亚琴 方立刚 廖黎莉,2 杨元峰
1(江苏省现代企业信息化应用支撑软件工程技术研发中心 江苏 苏州 215104)2(苏州大学 江苏 苏州 215104)
跟随着网络技术迅猛发展的脚步,手机等移动终端可以轻易获取网络信息,导致对信息非法访问、未授权操作、恶意攻击等侵权行为日趋频繁[1]。对数字媒体版权所有者来说,反盗版维权是保护公司或自身利益的一个关键点[2]。数字水印技术是将一些标识信息(即数字水印)嵌入数字载体当中(包括多媒体、文档、图像、软件、音频、视频等)[3],且不影响原载体的使用价值,也不容易被检测和再次修改[4],但可以被产生方通过密钥等提取出来[5]。数字动画因其画面形象生动、高信息量、虚拟仿真特性[6],是最容易被大众接受的一种媒体形式。因此,保护数字动画的版权显得尤为重要,针对动画的数字水印嵌入和提取技术逐渐成为了研究的热点问题[7]。
目前,在数字水印领域,水印的可检测性、信息载体的容量和水印对攻击的鲁棒性等成为评判一个水印算法的重要指标[8]。文献[4,8]提出基于压缩感知采样理论和模糊理论的图像数字水印算法;文献[9-10]分别提出基于Contourlet变换、Curvelet变换和奇异值分解的水印嵌入算法;文献[1]引入μ律技术,将小波分解与对数量化索引调制结合,提出基于DWT域的对数量化索引调制数字水印算法;文献[7]提出一种利用能量差分方法将数字水印信息嵌入到DCT变换后的视频帧信息中的数字视频水印算法;文献[11]提出一种基于双树复数小波变换和多元BKF分布理论的新的统计模型数字音频盲水印算法;文献[12-13]提出基于提升小波变换的水印算法。这些都是优秀的水印算法,水印的信息量和抗攻击性都很卓越,但是目前针对三维动画的水印算法少之又少。
针对三维动画的版权保护,提出了一种基于Jordan变换和SVD分解的算法。将三维动画的骨骼权重参数作为水印的嵌入载体,将动画中的权重参数形成一个矩阵。对矩阵实施Jordan变换和SVD分解,分解后将每个分块的奇异值形成最大奇异值特征矩阵。根据特征矩阵的值确定水印的嵌入位置,将具有意义的水印信息嵌入到确定的位置上,从而将水印信息嵌入到动画的权重参数中,形成含有水印的三维动画,实现利用水印技术保护动画的版权。
定理1设A∈Cn×n,则存在可逆矩阵T∈Cn×n,使得:
A=TJT-1
(1)
式中:
J称为A的若尔当标准形,Jik为A的若尔当块[14]。
(2)
式中:Σ=diag(σ1,σ2,…,σr),而σi(i=1,2,…,r)为A的正奇异值,称下式为A的奇异值分解[15]。
(3)
三维动画中的权重,就是控制骨骼及面部Blendshape的影响范围和控制程度。一部三维角色动画中,角色要完成动作或表情,必须要为角色创建骨骼并将骨骼绑定到角色,骨骼控制模型运动。为了避免出现肌肉扭曲的现象,必须要对每一根骨骼设置合理的权重数据,即要给予每个关节所驱动的皮肤具有最合适的权重值,最终使肌肉运动符合运动规律,避免“肌肉穿插”等现象。一个简单的角色至少有几十根骨骼,动作复杂且细腻的角色,骨骼数量会达到200根,同一根骨骼在不同的动作下权重也会发生变化,所以,骨骼的权重数据是很庞大的,非常适合作为载体嵌入数字水印信息。
第一步:收集一部三维动画中的骨骼权重数据(若动画中骨骼数量庞大,可收集重要角色的骨骼权重数据),去除冗余元素后形成矩阵,记为X。
第二步:对矩阵X进行Jordan变换,得到矩阵T、J;[T,J]=jordan(X),计算jordan形式J和相似变换T,矩阵T包含X的广义特征向量,T/X×T=J。
第三步:将矩阵T分成若干个k×k的小块矩阵,记为Vk×k。
第四步:依次对每个小块矩阵Vk×k进行奇异值分解(SVD),[U,S,P]=SVD(Vk×k)产生一个与V相同维度的对角矩阵,以非负对角元素的递减顺序,以及酉矩阵U和P,使Vk×k=U×P′。
第五步:确定嵌入位置:
(4)
(2) 利用每个块最大奇异值Pi,j与整体最大奇异值的均值AVE的关系构造特征矩阵S。
第六步:将代表作者版权的水印信息嵌入到三维动画中:
(1) 确定待嵌入的水印信息,保留有效元素,进行随机置乱后记为W;
(2) 根据特征矩阵S中的元素Si,j的值决定嵌入的位置。
式中:α是密钥,数值需要通过实验得出折衷后的最佳数值。
第八步:利用新的权重数据来重新设置动画中相应骨骼的权重值,到此,三维动画中已经嵌入了数字水印,嵌入载体是骨骼的权重数据。
当三维动画的版权发生争议时,可以提取动画中的水印,以判定动画的版权归属。
水印的提取过程,主要是嵌入算法的逆过程,具体步骤如下:
第一步:收集争议三维动画中的骨骼权重数据(或按照嵌入算法收集特定角色的骨骼权重参数),形成矩阵,记为X*;
第二步:对矩阵X*进行Jordan变换,得到矩阵T*、J*;
第五步:找出水印的嵌入位置:
(5)
第六步:利用密钥α提取出水印。
第七步:将提取出的水印形成矩阵,记为W*。
本文选择的三维动画短片,情节是以宣传爱与友善为目的的体现社会主义核心价值观的动画《遗失的善良》。动画长度6分06秒,动画中共有5个角色,分别是主人公小男孩、一只猪、两只鸡和农场主,将场景中的人物骨骼权重数据形成一个128×128的方阵,将水印信息利用本文提出的算法嵌入到方阵的奇异值分解参数中,通过大量实验选择最优参数值和最合适的嵌入位置。本文实验全部在MAYA 2015和MATLAB R2011b中完成。
图1是仿真实验的GUI界面,然后在callback中编写代码完成实验。
图1 仿真实验的GUI界面
一部三维角色动画,骨骼的权重数据非常庞大,说明水印的嵌入载体巨大,可以嵌入最能代表作者身份的身份证号码,也可以嵌入一幅能代表版权的图片,图2是本文实验嵌入的水印信息图,图3是置乱后的水印信息图,图4是提取出并还原后的水印信息图。根据多次实验,确定密钥α的值为0.15。
图2 原始水印信息
图3 置乱后的水印信息
图4 还原后的水印信息
本文算法将水印嵌入到骨骼的蒙皮权重数据中,骨骼是创建在角色模型内部的,播放动画时,观众只能看到模型的表演,而看不到隐藏在模型内部的骨骼。故嵌入水印后,肉眼是无法察觉的。本文算法的峰值信噪比PSNR为49.652 7。
(1) 噪声攻击 本文实验对三维动画短片进行了高斯白噪声和椒盐噪声的攻击,由于水印信息是嵌入在动画角色的骨骼权重数据中,不是在角色本身或是动画背景中,所以不受噪声攻击的影响,提取水印和原始水印的相关系数是1.000 0。
(2) 缩放动画长度 实验所用动画的长度为6分06秒,对动画实施缩放动画长度的攻击。首先减慢动画的播放速度,由每秒播放25帧减慢为每秒播放20帧,动画长度增加到7分37秒。由于动画长度的改变只是播放速度的变化,对角色本身没有影响,所以提取水印与原始水印的相关系数是1.000 0。其次加快动画的播放速度,由每秒播放25帧改为每秒播放30帧,动画长度减少到5分05秒。同样不影响水印信息的提取,提取水印与原始水印的相关系数是1.000 0。
(3) 增减动画帧数 动画共有9 150帧,对动画实施增减帧数的攻击。首先减少动画的帧数,随机删除12帧,由于画面具有连贯性,根据视觉暂存效应形成动画,所以,过多地删除帧数会影响动画的视觉效果,攻击者不能大幅度地删除帧。实验删除12帧已经是最大程度了,按照PAL电视制式每秒播放25帧的速率,12帧已接近半秒钟,对动画的视觉效果有明显影响。由于水印是嵌入在权重参数中,删除动画帧不会影响到角色本身,故不会影响角色的骨骼和骨骼数据,提取水印与原始水印的相关系数是1.000 0。通过复制帧、插入帧等方式增加动画帧数也是同样的情况。
(4) 修改骨骼的权重数据 修改骨骼的权重数据,可能会将水印信息删除或修改。实验修改了部分骨骼的权重,图5是Maya 2015中绘制蒙皮权重的工具,图6是动画中主要角色小男孩的骨骼图。
图5 绘制蒙皮权重工具
图6 角色的骨骼图
实验修改了部分骨骼的蒙皮权重数据,修改后,从动画中按照提取算法提取出水印,计算提取水印与原始水印的相关系数,如表1所示。
表1 提取水印与原始水印的相关系数
修改骨骼的蒙皮权重会影响骨骼对肌肉的控制,所以过多的修改蒙皮权重,动画人物会出现扭曲变形的情况,影响动画视觉效果,故攻击者不能肆意修改骨骼蒙皮权重,表1中的修改十处骨骼已属于极端情况。
(5) 删除骨骼 删除骨骼虽然不会影响角色的外观,但是同样会影响被嵌入的水印。如果删除的骨骼正是水印的嵌入位置之一,那么骨骼删除后,此位置无法提取出水印。但是,过多地删除骨骼,角色无法完成预期的动作或表情,影响预期剧本和分镜头的实现从而导致动画视觉效果受损。因此,盗版者不能大量肆意地删除骨骼,且删除部分骨骼后,要重新对模型进行蒙皮和刷权重,工作量巨大。表2是删除骨骼位置和数量的情况,以及篡改后提取水印与原始水印的相关系数。
表2 删除骨骼位置和数量的情况
从以上的实验结果可以得出:本文算法不仅具有较好的水印嵌入透明性,使得水印嵌入后具有更好的保密性,而且能够抵抗大部分常规攻击及针对三维动画的特殊攻击,较好地解决了鲁棒性与不可感知性之间的平衡问题。
本文算法将数字水印技术应用到三维动画中,利用数字水印技术在版权保护方面的优势来保护三维动画的内容和知识产权,拓宽了数字水印技术的应用范围,也保护了文化创意作品的版权,推行原创的氛围,具有创新价值和实际意义。算法不仅可以应用到Maya软件制作的动画中,还可以应用到3D MAX软件制作的动画中。稍加修改,可以进一步推广到其他动漫设计软件中,应用范围广泛。更强的鲁棒性和透明性限制了水印的嵌入量,所以下一步的改进目标就是要在保证较强的鲁棒性和透明性的同时提高水印的嵌入量。