全过程计算机辅助动画自动生成技术是20世纪90年代中国科学院陆汝钤院士提出的一种崭新的计算机动画技术, 是将人工智能技术与电影艺术、图形学等知识相结合, 以图形学技术为支撑, 运用人工智能技术以及电影艺术实现的一个全新领域[1]. 基于这个技术, 陆汝钤院士率领科研人员研制出了一个动画自动生成原型系统《天鹅》, 这个系统能够将用受限的自然语言描述的故事进行故事理解、动画的定性规划、导演规划、摄影规划、动画定量规划直至最后生成可观看的视频动画. 基于全过程计算机辅助动画自动生成技术, 在审视了3G通信技术及其应用背景之后, 中国科学院张松懋研究员创新性的提出了将3D动画自动生成技术应用在手机短信上的全过程计算机辅助手机3D动画自动生成技术, 它能够将短信内容以3D动画的形式展示在短信接收者的手机上[2].
动画中场景的材质包括基础材质、色彩、纹理和贴图, 是动画最直观的展示, 它就像是动画作品的包装, 独具匠心的材质设计往往使一个简单的场景蓬荜生辉[3]. 材质拥有物理效应和心理效应, 不同的材质会呈现出不同的视觉特征, 给人不同的视觉感受, 唤起人们的情感, 产生心理感受、联想, 在3D动画中, 提升纹理材质与成像贴图的美学功能, 能够更好地表现出镜头的美感, 增强镜头的感染力, 使画面具有无与伦比的真实性, 针对动画场景整体的材质规划在呼应主题、增强动画表现力以及丰富动画表现形式等方面能够取得更加突出的表现.
手机3D动画自动生成系统现在的版本并没有材质相关的规划, 场景中的模型所展示的仅仅是建模时设计的外观, 由于系统模型库模型数量有限, 导致最终生成的动画效果较为单一, 尤其是动画场景的展示效果. 为此, 本文提出在手机3D动画自动生成系统中增加场景材质的规划, 在丰富动画展示效果、增强模型真实感的同时, 通过不同的材质方案反映动画的主题, 表现动画的整体气氛, 带给短信接收者更直观的心理感受.
本文完成的主要工作是在手机3D动画自动生成系统中实现场景材质的自动规划和生成, 具体内容包括: 将语义网技术应用与手机3D动画自动生成系统的材质规划部分, 构建材质本体库, 通过短信中的相关信息得到关于材质的定性描述, 最终在具体的动画场景中实现材质的生成.
2 动画材质相关研究在计算机动画中, 材质的研究主要包含色彩和纹理贴图两部分. 早期的计算机动画技术中, 场景中模型的材质都是在建模时确定的, 当需要更改模型材质时, 只能采取手动调整的方式, 使得动画场景表现形式较为单一[4]. 近十几年来, 计算机图形学中, 发展出很多关于图像着色的方法, 主要分为基于图片引导和基于数据驱动两种更改方式[5], 三维场景中模型的材质更改方法, 大多由这两种方式演变而来. 基于图片引导的方式通过对示例图像进行特征识别, 拟合出一组材质赋予场景中的模型, 如赵福恺等人提出的一种从单幅图像获取三维场景材质风格的方法[6], 该方法通过对场景进行多次视图采样, 利用反绘制技术, 能够快速有效的从图像中拟合得到多组材质并选取最优材质赋予三维场景中各个模型, 最终场景材质效果取决于场景的采样和示例图像的选取, 实际上很难得到与场景相符的示例图像; 基于数据驱动的方式通过选取大量相关的数据进行神经网络模型的训练, 通过相关的输入数据计算模型材质, Chen等人基与数据驱动方法, 提出了一种自动为三维室内场景中的模型分配材质的方法[7], 该方法收集大量与室内场景相关的图像, 在每幅图像按照模型种类及材质信息进行标注后作为驱动数据进行训练, 达到为场景中不同模型规划材质的目的.
基于图片引导的材质实现方式需要提前获知场景的最终形态并根据场景内容选取合适的示例图像, 对于多样化的场景应用极其有限, 与3D动画自动生成系统每次生成动画通过添加模型改变场景的现状不符; 基于数据驱动的方式需要提前准备大量的具有良好效果的数据作为训练数据集, 且在应用时需要对每个模型单独进行计算, 耗费时间较长. 结合3D动画自动生成系统实际情况, 本文提出基于语义网技术的场景材质规划方法, 通过构建材质本体库刻画与材质有关的各种属性, 根据短信文本中有限的信息实现三维场景材质的规划和生成.
3 材质自动生成的整体框架和流程手机3D动画自动生成系统接收用户发出的短信之后, 首先进行信息抽取, 通过哈尔滨工业大学分词系统对短信文本进行分词处理后, 经过命名实体识别、否定分析、主题识别、模板识别、情感分析等模块对分词结果进行分析, 将信息抽取结果以结构化的形式输出到系统指定位置保存; 然后是定性情节规划, 读取信息抽取结果后, 通过评分系统进行场景的选择, 根据主题、模板、情感分析结果等信息, 以Ontology知识库为基础, 确定添加的模型, 并通过变形规划、布局规划、动作规划、表情规划、粒子特效规划等子系统对场景及场景中的模型定义相关操作, 将各自的属性信息输出; 之后是定量计算模块, 定量计算依赖定性规划结果, 通过调用Maya API[8]以及mel脚本, 实现对动画场景及模型的各种操作, 包括空间布局计算、动作计算、变形计算、色彩计算、灯光计算、摄像机计算、粒子特效计算、表情计算、材质计算等, 得到一个与短信内容相符的动画文件; 最后是网络渲染模块, 将定量计算得到的. ma文件上传到系统的网络服务器, 服务器通过批处理程序渲染出一个图片序列, 使用渲染程序将图片序列和音乐、字幕合成为. MP4格式的视频文件, 并将动画视频发送给短信接收者.
本文主要研究通过不同的材质搭配方案来反映动画的主题, 表现动画的整体气氛, 主要包括以下两个部分:
(1) 材质定性规划主要包括场景整体基调的规划、基础材质与色彩的规划以及纹理贴图的规划三个部分, 其中场景基调由基础材质与色彩以及纹理贴图来表达. 首先根据知识库中关于场景的标记属性和信息抽取的内容对场景进行整体基调的规划, 确定动画场景的整体氛围; 然后基于场景基调进行基础材质与色彩的规划, 为场景背景和场景中每个模型分别确定基础材质及色彩搭配; 最后进行纹理贴图的规划, 根据知识库对场景中每个模型的属性标记、信息抽取的内容以及场景的整体基调对每个模型分配纹理贴图. 定性规划完成后生成定量实现所需要的定性信息, 每条信息包括模型名称、模型基础材质、模型基础颜色、模型纹理名称以及贴图文件名等信息.
(2) 材质定量实现是整个材质规划中最重要的部分, 定量计算的结果直接影响最终场景表达效果的好坏. 在定量实现部分, 首先根据定性信息中的纹理名称及贴图文件, 通过机器学习图像处理使得贴图展现出我们需要的纹理效果; 然后通过Maya中的Hypershade系统, 调用API, 根据定性信息依次创建材质节点, 通过组合得到最终的材质效果并赋予指定的模型. 对于定性信息中没有提到的模型以及场景中原有模型, 根据场景基调进行随机的基础材质及色彩的规划和实现. 图1是整个系统的流程图.
4 动画场景材质的定性规划材质定性规划的实现, 主要依靠系统本体库, 结合材质知识库进行匹配选择, 包括材质本体库的建立及定性规划设计两个部分. 在目前动画系统成功运行所使用的系统知识库的基础上, 我们通过构建材质本体库, 支持动画材质的定性规划.
4.1 构建动画材质本体库本体[9](Ontology)是由AI中的语义网络演化的一种概念化的、结构化的表示方法, 能够捕捉相关领域知识, 提供对该领域知识的共同理解, 确定该领域内共同认可的词汇, 并给出这些词汇和词汇间相互关系的明确定义, 通过概念之间的关系来描述概念的语义, 被广泛应用到知识工程、软件复用、信息检索和Web上异构信息处理. 本体开发所采用的建模语言通常基于描述逻辑, 本文选择Protégé[10]本体编辑工具进行知识库的构建.
整个系统的知识库包括本体库和规则库, 本文主要使用其中的本体库. 本体库由各种动画相关的类及属性组成, 包括主题类、模板类、动画场景类及动画模型类等. 围绕系统本体库, 最终建立的材质本体库如图2所示.
材质本体库包含newMaterial和scenceHypershade两个类, 其中scenceHypershade类为动画场景材质球类, 分为室内场景(inDoorScence)和室外场景(outDoorScence)两个子类, 每个子类下定义动画场景中的材质球实例, 通过isMaScence属性与系统本体库中定义的动画场景实例关联, 并刻画材质球类型及名称(如图3所示).
newMaterial类定义了材质的各个基本属性以及场景材质风格, 包括材质类型(HyperType), 基础材质(BasicMaterial), 颜色(Color), 纹理(Texture), 图片(Picture)以及场景风格(Scene_style)六个子类, 其中场景风格类有室内设计和室外设计两个子类, 根据室内外场景不同的特点, 室内场景设计按照装修风格划分, 室外场景设计按照季节划分, 通过hasScenceBaseForTemplate和hasScenceBaseForTopic两个属性与系统本体库中的模板和主题实例关联, 并刻画场景风格实例对应的材质色彩、纹理和贴图属性(如图4所示); 基础材质类按照Maya软件中提供的几种基础材质创建, 图片类定义了系统库中的图片素材实例, 色彩类定义了各种色彩的HSV值, 纹理类包含两个子类: 程序纹理和图片纹理, 程序纹理类为Maya软件Hypershade编辑器中提供的二维和三维纹理, 图片纹理类依据DTD数据集中图片的纹理分类, 定义了47种纹理类型实例.
4.2 基于材质本体库的定性规划
场景材质定性规划的目标是对动画情节规划部分所选择的动画场景及新添加到场景中的模型进行材质的分配, 根据信息抽取模块得到的短信主题和模板来推出与短信内容相符的材质信息. 定性规划遵循以下的策略:
(1) 根据短信主题和模板确定场景材质的整体风格, 后续的所有材质规划在这个风格上进行;
(2) 为场景背景及其中添加的模型选择合适的材质. 对于原始场景, 根据材质本体库中定义的材质球名称和类别, 选取材质风格下定义的相应类别的材质实例得到材质定性描述信息; 对于新添加到场景中的模型, 根据适用于模型和适用于材质风格两个条件选取得到贴图、纹理和色彩的集合, 从中随机选择实例得到材质定性描述信息.
(3) 对于信息抽取中没有抽取到主题、模板信息或是选取得到的主题、模板没有在材质库中匹配到相应材质风格的情况, 本文采用根据材质库中定义的与动画场景相符合的材质风格实例进行随机选择, 即与信息抽取结果相分离的方法得到材质风格实例并进行后续材质规划.
以短信“好好写论文吧, 马上就要毕业了”为例, 图5是这条短信信息抽取的结果. 对于室内场景, 材质规划分为两个部分, 首先是从信息抽取结果获取场景材质风格, 然后根据材质风格对添加到场景中的模型依次进行材质的规划.
从图5看出这条短信没有抽取到明确的情绪主题或是模板, 室内场景与季节主题或模板无关, 所以在进行材质规划时, 随机的选择场景材质风格. 材质风格确定之后, 从材质本体库读取到当前所选择场景所包含的材质球信息如图6所示, 6(a)是room1场景在材质本体库中所拥有的全部材质球实例, 6(b)是room1_floor材质球的属性信息, 6(c)是中式场景材质基调中对应于floor类型的材质实例信息.
根据材质球类型, 从所选取的场景材质风格类下获取相应类别的材质实例并保存到定性规划文件中; 然后依次处理添加到场景中的模型材质. 图7是选取到中式风格时的材质定性规划信息输出. 下面的定性规划信息的参数说明如表1所示.
<rule
ruleType="setTexture"
type="PeopleTexture"
usedModelID="addModelID1"
usedModelInMa="M_boy. ma"
pictureType="Shirt"
pictureName="boy_shirt_07.jpg"
toChangeTexture="false"
colorName="color_red_13"
colorHue="1.24"
colorSaturation="0.949"
colorValue="0.996"/>
5 动画场景材质的定量实现
根据动画场景材质定性规划结果, 材质的定量实现部分读取到每一条定性描述信息之后, 首先进行图像纹理的合成, 并对每一条定性描述信息在具体的场景中进行计算, 得到相应材质的节点连接方法, 从而达到更改动画场景材质的目的.
5.1 图像纹理合成
在计算机动画技术中, 材质的研究主要包含色彩和纹理贴图两部分. 由于Hypershade编辑器中提供的纹理类型有限且无法与贴图同时使用, 需要进行纹理合成处理. 根据Subhransu Maji等人提出的基于机器学习的图片纹理合成方法[11], 本文使用B-CNN[12,13]网络, 通过vgg-16模型[14]对DTD数据集[15]和FMD数据集[16]进行训练获取纹理分类器, 训练完成后将定性规划中选择的贴图以及纹理属性作为输入数据, 最终得到符合相应纹理的纹理图片. 图8是使用图片plank. eps进行图像纹理合成的结果示例.
5.2 基于Maya Hypershade编辑器的材质计算本文选择Maya软件中的Hypershade编辑器进行材质的定量计算. Hypershade编辑器主要是用来制作纹理、材质节点的, 它是从Maya2. 0中引入的. 在Hypershade编辑器中, 有3种基本的材质类型, 分别为表面材质、体积材质、置换材质. Maya软件中使用表面材质模拟金属、卡通、木头、玻璃等质感; 体积材质多用于模拟雾、烟、云等粒子特效; 置换贴图可以实现真实的凹凸效果. 在Maya中, 纹理贴图不能直接指定给场景中的物体, 必须与材质球的某个属性连接起来才能赋予场景模型, 创建纹理时, 系统会默认创建出对应的纹理贴图坐标器, 用于对曲面进行定位. 纹理贴图坐标器可以定位纹理在UV空间的位置及方向, 还可以通过操作手柄及参数的设置来控制其在物体表面覆盖的位移、旋转、重复次数等属性. 利用编辑器中提供的各种材质节点, 能够组合得到不同效果的物体材质.
根据定性规划结果, 对场景进行材质规划时, 材质类型分为组合材质和简单材质. 按照读取的定性信息, 首先判断是否有图片需要处理, 经过图像纹理合成得到符合相应纹理特征的纹理图片.
对于动画场景中的单一材质, 直接在程序中调用Maya API, 通过Hypershade编辑器在模型的原始材质上进行修改, 包括修改材质颜色, 基础材质类型以及贴图路径等; 对于组合材质, 在Hypershade编辑器中, 依次创建相应的材质节点, 按照特定的组合方式完成材质的合成, 比如在基础材质上连接凹凸纹理、透明通道贴图及色彩等, 之后再赋予相对应的模型, 覆盖模型原始材质信息. 如图9(a)所示, 在room1_floor材质球上连接色彩通道贴图plank-meshed和凹凸纹理bump2d1后, 在贴图节点连接着色节点shadingMap1将贴图颜色改为红褐色再赋予场景中的地面得到图9(b)所示效果.
在定性规划中, 一般只对场景中部分模型的材质进行规划, 对于那些没有显式定性规划的模型, 定量计算采取“就近取材”的方式, 根据它在场景中邻近模型的材质的色彩, 微调得到它的色彩.
按照图7的材质规划结果, 得到图10(b)所示的动画截图, 在中式风格场景地板材质中, 采用了图9(a)所示的材质组合方式.
6 系统实验
目前, 手机3D动画自动生成系统中已经基本实现了场景材质的自动规划模块, 本实验的目的是验证材质规划的有效性及多样性, 选取系统从2018年6月至2018年10月期间接收的所有短信进行测试并统计测试结果. 短信数量共计314条, 其中273条短信进行了材质规划, 22条短信由于程序启动不当未进行定性规划, 21条短信由于所选择场景不适合作材质规划且未添加任何模型, 没有进行材质规划. 在进行了材质规划的273条短信中, 约71.4%的短信针对动画系统场景库中的原始场景进行了材质规划, 改变了整个动画场景的材质风格(如图10), 28.6%的短信未改变系统中原有的场景材质, 仅改变程序添加到场景中的模型材质, 这是由于系统未选择使用场景库中的原有场景, 而是由程序自动生成全新场景(如图11(a)), 或是所选取的场景不适合进行材质规划(如图11(b), 所选择场景有明显的指向为海底场景).
6.1 材质规划多样性实验
为了验证材质规划的多样性, 从上述进行了材质规划的273条短信中随机选取60条短信, 每条短信运行10次, 统计600次短信运行的材质规划结果如图12所示. 图12中, x轴为一条短信测试10次得到不同材质效果的个数, 从图中可知, 17条短信出现了7个不同材质效果, 约占总短信数28.3%; 81.7%的短信得到了5个以上的不同材质效果. 总体来看, 材质规划多样性取得较好效果.
图13是对短信“好好写论文吧, 马上就要毕业了”多次运行得到的不同材质风格的规划结果截图, 图13(a)是场景库中原始场景, 图13(b)–图13(f)依次是田园风格场景、日式风格场景、都市风格场景、地中海风格场景及中式风格场景, 材质规划系统根据短信选取到合适的场景风格后, 能够得到一组相应的材质组合并对应的选取材质包含的色彩、贴图及纹理.
6.2 材质规划效果评估实验为了进一步分析添加材质规划后的动画效果, 本文采用调查问卷的方式评估场景材质效果. 从成功进行了材质规划的273条短信中随机抽取80条作为评价样本, 设计两个评价指标, 分别是“我认为材质效果符合动画场景”、“我认为材质效果表达短信主题\模板”, 采用十分制进行评价打分, 得分越高, 说明场景材质效果越好. 本次问卷共发放120张, 填写调查问卷的人群为随机抽取人员, 问卷收回120张, 对调查结果进行统计, 统计结果如图14所示.
根据图14得分统计, “我认为材质效果很好表现了短信内容”的加权平均分为7.8, “我认为材质效果很美观”的加权平均分为6.4. 通过上述数据说明, 在系统中添加材质规划是比较被认可的, 达到了本文设计的初步要求. 在“我认为材质效果与短信内容相符”的评价中, 部分短信所得分值较低, 主要原因是目前的材质规划中, 当信息抽取部分没有抽取到短信主题、模板, 或是所抽取的主题、模板在材质库中匹配不到相应的材质风格时, 所采取的方式是根据动画场景随机选择材质风格进行材质规划, 导致材质风格与短信内容不符. 后续的工作中, 将考虑根据短信主题之间相关性进行主题、模板推导, 以得到相符的材质风格.
7 结语本文的主要研究内容是手机3D动画自动生成系统中动画场景材质的自动规划, 目前计算机技术中, 对于三维场景材质的制作, 主要有基于图片引导和基于数据驱动两种方法, 需要依赖有很高参照性的示例图像或是大量材质图像数据集进行材质拟合, 计算的复杂度较高且耗费时间较长. 基于手机3D动画自动生成系统动画场景中模型添加的多样性, 本文提出基于语义网技术的材质规划方法, 通过提取短信文本中有限的信息进行材质规划. 在开放性短信测试中, 使用了314条短信进行测试, 我们的方法对273条短信所生成的动画成功进行了材质规划, 其中218条短信多次运行得到了不同的材质结果, 实验结果表明此方法能够产生正确、多样的材质效果; 同时, 也发现目前材质规划系统中一些潜在的问题和不足, 主要表现在以下两方面: (1)场景中材质的最终表达效果受灯光的影响, 尤其是一些对光线比较敏感的材质; (2)材质规划依赖于信息抽取算法对短信文本的抽取结果, 当抽取结果不准确时, 可能导致最终场景材质的规划与短信语义不符. 针对以上问题的改进将是后续研究的重点.
[1] |
陆汝钤, 张松懋. 从故事到动画片--全过程计算机辅助动画自动生成. 自动化学报, 2002, 28(3): 321-348. |
[2] |
吴中彪. 全过程计算机辅助手机3D动画自动生成系统的设计与实现[硕士学位论文]. 北京: 北京工业大学, 2011. 11–22.
|
[3] |
顾玉琼. 材质、灯光在数字立体动画技术中的应用研究. 科技创新与应用, 2014(31): 9. |
[4] |
翟雅薇. 三维影视动画主场景的设计及实现[硕士学位论文]. 北京: 北京工业大学, 2014.
|
[5] |
马晗. 数据驱动的室内场景着色方法研究[硕士学位论文]. 南京: 南京大学, 2017.
|
[6] |
赵福恺, 刘新国. 从单幅图像获取三维场景材质风格. 计算机辅助设计与图形学学报, 2013, 25(7): 946-954. DOI:10.3969/j.issn.1003-9775.2013.07.003 |
[7] |
Chen K, Xu K, Yu YZ, et al. Magic decorator: Automatic material suggestion for indoor digital scenes. ACM Transactions on Graphics, 2015, 34(6): 232. |
[8] |
http://download.autodesk.com/us/maya/2010help/index.html?url=Maya_API_introduction.htm.
|
[9] |
章勇, 吕俊白. 基于Protege的本体建模研究综述. 福建电脑, 2011, 27(1): 43-45. DOI:10.3969/j.issn.1673-2782.2011.01.021 |
[10] |
http://protege.stanford.edu.
|
[11] |
Lin TY, Maji S. Visualizing and understanding deep texture representations. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 2791–2799.
|
[12] |
Lin TY, Roychowdhury A, Maji S. Bilinear CNNs for fine-grained visual recognition. arXiv: 1504. 07889, 2015.
|
[13] |
Lin TY, Roychowdhury A, Maji S. Bilinear convolutional neural networks for fine-grained visual recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018, 40(6): 1309-1322. DOI:10.1109/TPAMI.2017.2723400 |
[14] |
Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition. arXiv: 1409.1556, 2014.
|
[15] |
Cimpoi M, Maji S, Kokkinos I, et al. Describing textures in the wild. Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, OH, USA. 2014. 3606–3613.
|
[16] |
Sharan L, Rosenholtz R, Adelson EH. Accuracy and speed of material categorization in real-world images. Journal of Vision, 2014, 14(9): 12. DOI:10.1167/14.9.12 |