计算机系统应用  2018, Vol. 27 Issue (8): 70-74   PDF    
3D动画自动生成的学习系统
蒋梦馨, 宗玉英     
北京工业大学 信息学部, 北京 100124
摘要:手机3D动画自动生成系统实现了在计算机辅助的条件下短信动画的全自动生成. 本文为手机3D动画自动生成系统设计并实现一个学习系统, 该学习系统利用随机森林算法生成一个以用户评价为分类结果的学习模型去指导手机3D动画自动生成系统生成更让用户满意的动画, 同时学习系统能够随着手机3D动画自动生成系统的运转不断更新学习模型, 最终实现“不断学习”的学习能力.
关键词: 手机3D动画自动生成系统    学习系统    随机森林    
Learning System of 3D Animation Automatic Generation
JIANG Meng-Xin, ZONG Yu-Ying     
Faculty of Information Technology, Beijing University of Technology, Beijing 100124, China
Abstract: The automatic generation system of mobile phone 3D animation realizes that the 3D animation of SMS messages is generated automatically with the computer-aided technique. This study designs and implements a learning system for the automatic generation system of mobile phones 3D animation. The learning system helps the original system generate more satisfying animations for the users by building a random decision forests model which uses user evaluation as classification result. At the same time, the learning system can constantly update the learning model with the operation of the automatic generation system of mobile phones 3D animation, ultimately, to accomplish the " never-ending learning” ability.
Key words: automatic generation system of mobile phones 3D animation     learning system     random decision forests    

1 引言

20世纪90年代, 中科院陆汝钤院士首次提出全过程计算机辅助动画自动生成技术, 这种基于人工智能的动画生成技术实现了从文本到动画的自动生成[1]. 2008年, 中科院张松懋研究员提出将3D动画自动生成技术应用在手机短信上并从技术上实现了该设想——手机3D动画自动生成系统 (以下简称“生成系统”), 该系统以短信文本为输入, 对动画内容给以定性分析和定量计算, 最终输出手机3D动画[2], 系统自2008年运作至今已有动画成品八千六百余条.

2015年, 18位顶级科技领袖利用共享情报评选出十大最有前途、最有希望和最有趣的科技发明, 由卡内基梅隆大学设计的Never-Ending Language Learning(NELL)系统位列榜单[3]. NELL系统能够不断地阅读数亿页的网页, 并在阅读中扩充系统的Knowledge bases以不断提高系统的理解力[4]. 机器学习是当下最热门的人工智能科学, 它通过学习已知数据集 (训练样本) 的特征和结果建立一个预测模型 (训练模型), 利用模型可以预测并度量未知数据的特征和结果[5], 经典的机器学习算法有决策树、神经网络、支持向量机等. 在NELL系统启发下, 本文依托机器学习算法为生成系统搭建一个学习系统, 实现生成系统“不断学习”的学习能力.

生成系统采用传统的基于知识的方法, 目前面临两个问题: (1) 缺乏学习能力, 大量的历史数据的被浪费; (2) 动画成品质量只能依赖于系统设计者的水平, 而系统的使用者——用户无法参与动画的生成. 为了解决这两个问题, 学习系统把用户对动画成品的评价和生成系统的历史数据作为训练样本, 使用机器学习算法生成一个以用户评价为分类结果的模型去指导生成系统生成让用户更满意的动画. 但是用户对动画的评价是一种主观判断, 用户对文本的理解、用户的心理状态以及动画本身的色彩、音乐、动作等因素都会影响评价结果, 为了让学习目的更明确、指导更有针对性需要选择一个更为具体的评价对象. 场景是动画的发生背景, 对用户来说, 场景是动画最直观的内容; 对生成系统来说, 场景的空间属性、布局属性直接影响后续模型的添加, 色彩、光照等一系列的规划, 本文选取动画场景作为用户的评价对象. 此外, 机器学习算法的选择是学习系统实现的一个关键问题, 在机器学习方法中基于决策树的方法被广泛应用, 一是由于决策树模型易于理解, 通过决策树的工作过程可以直观理解问题的求解过程; 二是由于决策树能够对广泛的问题给出准确的解[6]. 随机森林是以决策树为基学习器构建的集成学习器, 因其简单、容易实现, 计算开销小, 在很多现实任务中展现出强大性能而被誉为“代表集成学习技术水平的方法”[7].

生成系统目前处于运转状态, 可利用的动画成品会不断增加. NELL系统利用Knowledge Bases的不断扩充实现学习能力的提高, 本文受此启发为学习系统搭建了一个样本数据库, 样本数据的增加会刺激学习模型不断更新, 提高学习系统的指导能力, 最终实现系统“不断学习”的能力.

学习系统一方面解决了生成系统的两个固有问题, 另一方面通过搭建一个循环式的学习系统, 让生成系统拥有了“不断学习”的能力. 本文第2节介绍生成系统和学习系统, 第3节介绍随机森林模型的搭建, 第4节利用实验证明学习系统的有效性.

2 系统介绍 2.1 生成系统

生成系统划分为信息抽取、情节定性规划 (ADL)、动画定量计算 (CAL)、网络渲染四个核心模块[8], 流程图如图1所示. 其他辅助模块为: 短信接收和预处理模块、动画相关文件的局域网传输模块、3D动画网址生成与发送模块.

图 1 生成系统流程图

生成系统的动画成品依托于动画素材库, 动画素材库主要包括场景库、模型库、背景音乐库等. 场景库和模型库都是maya文件库, 场景是动画发生的背景场景, 模型是指实物模型, 如一个人、一朵花等.

首先, 信息抽取模块从短信文本抽取出若干主题和模板, 主题是指从短信里提取可动画化的动画主题系列, 例如生日、打篮球、新年等; 模板是具体化的事物对象, 如人物模板、地点模板等. 如图2所示, 从短信“我想在家待着, 不想去踢球”抽取出主题“踢足球”, 以及模板“动作”、“人物”, 这些信息被存储在IE文件中, 并成为情节定性规划的依据. 生成系统利用软件protégé构建本体库 (动画场景库类、主题库类、模板库类、背景图片库类、场景空间类、动画3维模型类等), 使用SWRL语言编写规则 (包括模板原子推主题类规则、模板原子推动画场景类规则、用于对动画产生多变性效果的增加类规则、删减类规则、更改类规则等), 实现不同知识特定的表达方式和不同数据之间复杂的推理关系[7]. 情节定性规划模块依据信息框架调用对应的本体库和规则库, 推理完成场景的选择, 模型增减, 动作、色彩、变形、光照等方面的规划, 并将规划结果写入情节规划文档 (ADL), 定性规划的结果又将作为定量规划模块的依据. 定量模块进行定量计算, 对动画文件进行操作, 进而生成可以渲染的动画场景文件. 最后进入网络渲染模块进行渲染, 生成可播放的动画文件返回给用户[8].

图 2 信息抽取模块输出结果示例

生成系统的素材选择坚持合理性、随机性、多样性的原则, 即素材符合短信文本传递内容, 素材选择在合理范围内的选择不受人的干预, 同一短信文本多次输入得到会得到不同的动画. 其中场景选择的具体策略是: 首先根据信息抽取的主题、模板原子、模板原子对应的模型或特效得到若干候选场景; 然后按照设定好的评分项 (时间、人物、动作等项) 为每个候选场景打分, 并计算出最终的总得分; 最后随机选择一个候选场景作为最终场景, 总分越高的候选场景被选中的几率越大[8].

2.2 学习系统

学习系统的学习目标是坚持合理性、随机性、多样性三原则的前提下帮助生成系统选择用户更满意的场景, 最终实现用户对动画满意度的提高. 学习系统有三大模块: 交互模块、数据管理分析模块和训练模块. 系统流程图如图3.

交互模块负责与生成系统和用户交互. 通过与生成系统交互获得历史数据: 存有信息框架的IE文件、存有定性数据的ADL文档 (存有选取的场景)、动画成品, 再加上与用户交互获得的用户对场景选择的评价共同作为训练样本数据. 同时交互模块要不断传输学习结果 (模型数据) 给生成系统, 帮助生成系统做出更优选择. 交互模块是实现学习目标的重要保证.

图 3 学习系统流程图

数据管理分析模块实现对样本数据统一的存储、管理以及分析决断. 首先接收交互模块传递的完整样本数据, 进行信息提取和处理后得到标准样本数据存入数据库, 然后该模块对样本数据库中数据进行分析决断. 数据库的属性列表是: ID编号, 短信编号, 标准样本数据, IsUsed(该样本是否被用作过训练样本), Difference[9,10](样本距离最近的簇的距离值), IsJudge (是否被用户评分). Difference属性用于选出需要交互的短信动画, Difference和IsUsed共同决定是否需要重新训练, 策略如下:

(1) 当数据库中未被使用的样本数目超过限度值时, 建议系统管理者重新训练数据;

(2) 当数据库中Difference值超标的样本数目超过限度值时, 建议系统管理者重新训练数据;

(3) 当上面两者情况同时出现的时候, 要求系统管理者重新训练数据;

训练模块使用训练样本进行训练, 得到的学习模型返回给交互模块. 该模块接受数据管理分析模块的判断意见决定是否训练, 保证学习模型能够随着生成系统的运转而不断更新.

3 随机森林模型 3.1 训练样本

用户对动画最直接的评判来源于短信文本传递的信息, 信息抽取模块得到的信息框架是对文本传递内容的精炼, 短信主题、短信模板、短信最终选用的场景决定了用户对动画成品场景选择的满意度. 目前生成系统内有103个主题, 135组模板, 95个场景, 为了避免决策树的分支过于庞大, 将主题、场景各分成10组, 模板依照本身的类别分成14组. 标准样本数据为 (属性, 分类), 属性=(主题组号, 主题实例, 第N组模板实例, 场景组号, 场景实例)(N=1, 2, …, 14, 共有18个属性), 分类=(用户对动画成品的场景评分)(评分=1, 2, 3, 4, 5).

训练样本的处理流程是: 首先从生成系统得到初始样本数据 (IE文件、ADL文档、动画成品); 然后与用户交互后得到部分样本数据的标记; 最后由数据管理分析模块处理得到完整的标准样本数据作为随机森林的训练样本. 在数据管理分析模块, 由于只有部分样本有标记, 需要采用半监督学习方法[9,10]实现对所有样本的标记, 本文采用Constrained Seed K-means算法完成对所有样本的标记.

3.2 随机森林模型

随机森林的生成首先从数据库中采样出T个(T=基学习器数量)含有m个 (m=数据库中可用的标准样本数据的数量) 训练样本的采样集, 抽取方式是有放回的抽取; 然后基于每个采样集训练出一个基学习器, 基学习器基于ID3算法搭建 (学习系统目前建立5个基学习器用于实验), 但与传统的ID3算法不同的是对基决策树的每个结点的选取是先从该结点的属性集合中选择一个包含着k (k=log2d, d=当前结点的属性数目) 个属性的子集, 然后再从这个子集中选择一个最优属性用于划分[7].

为完成随机森林模型对生成系统的指导作用, 在学习系统的交互模块对学习模型的使用需要完成四个步: (1) 接收随机森林模型数据; (2) 接收信息框架、候选场景; (3) 得到单棵决策树对每个候选场景的用户满意度, 使用投票法得到预测的用户满意度, 再计算出用户推荐分值 (用户推荐分值=用户满意度/所有候选场景的用户满意度的和); (4) 用户推荐分值被列入评分项, 与合适的权重相乘后被算入总分. 其中权重的选择依据候选场景个数, 候选场景越多权重越大.

4 实验

学习系统目前已经实现了基本的功能, 从2017年6月份到2017年11月已参与414条动画的生成.

实验一验证学习系统的随机森林模型是否能有效学习到用户的喜好. 记特定短信文本内容下用户评分1分的动画场景为厌恶场景, 用户评分5分的动画场景记为喜爱场景, 从用户对动画的反馈中找出16条评分为1分的短信动画和15条评分为5分的短信动画, 提取出对应的短信文本内容和选择的场景, 对这31条短信进行对比试验. 具体操作为: (1) 将短信文本输入没有学习系统的生成系统, 得到系统选择的场景, 相同内容短信反复测试100次; (2) 将短信文本输入有学习系统指导的生成系统, 得到系统选择的场景, 相同内容短信反复测试100次; (3) 对比两组实验厌恶场景/喜爱场景出现的概率. 结果如表1, 在使用学习系统后, 生成系统能够增加特定短信文本对应的喜爱场景的选中概率, 减少厌恶场景的选中概率. 实验一以代表场景 (特定短信文本内容对应的喜爱场景和厌恶场景) 为实验对象, 证明了学习系统能够学习到用户对场景的喜好, 从而帮助生成系统作出让用户更满意的选择.

表 1 特定短信文本对用户喜爱/厌恶场景选中概率的对比实验

学习系统最主要的功能是通过帮助生成系统选择用户更喜欢的场景, 实现用户对动画满意度的提高. 在实验二中有20名实验用户, 男女各10名, 实验用户背景信息如表2. 从原生成系统选择400条动画, 在实验用户明确了解了生成系统场景的定义后为这400条动画的场景选择评分, 平均分是3.08. 在学习系统投入使用后, 随机选择50条动画与实验用户交互得到评分反馈, 平均分是3.6, 增长16.883%. 结果表明, 学习系统能够帮助生成系统提高用户满意度, 增长幅度没有大幅度提高主要是由于用户对生成系统素材库中的场景制作满意度不高导致用户评价的最高分不能有突破.

表 2 实验用户 (男/女) 背景信息

本小节用两个实验验证学习系统的有效性, 即学习系统能够学习到用户对场景的喜好, 帮助生成系统提高用户对动画成品满意度, 但是受生成系统其它因素的客观限制, 并为了保证动画的随机性、多样性, 这种提高是在一定范围内的提高.

5 结语

本文主要介绍了手机3D动画自动生成系统的学习系统的设计与实现, 学习系统帮助生成系统不断从历史数据中学习经验生成更让用户满意的动画, 同时学习系统的实现让生成系统拥有“不断学习”的能力. 目前学习系统主要帮助生成系统进行场景选择, 这种学习模式也可以应用于模型、人物动作、背景音乐的选择, 让用户的意见作用于动画成品的各个方面. 学习系统仍处于改进阶段, 需大量实验寻找更优的系统参数如基学习器的数目, 从而更好的为生成系统服务.

参考文献
[1]
陆汝钤, 张松懋. 从故事到动画片——全过程计算机辅助动画自动生成. 自动化学报, 2002, 28(3): 321-348.
[2]
林海华, 许向辉. 从短信文本到手机动画的粒子特效的自动生成. 计算机系统应用, 2016, 25(6): 81-87.
[3]
2015年正在崛起的十种最具潜力的新兴科技: 零排放汽车、无人机、数字神经技术……这些力量正在改变世界. http://news.ittime.com.cn/news/news_3912.shtml. [2015-03-10].
[4]
Carlson A, Betteridge J, Kisiel B, et al. Toward an architecture for never-ending language learning. Proceedings of 24th AAAI Conference on Artificial Intelligence. Atlanta, GA, USA. 2010. 1306–1313.
[5]
郭亚宁, 冯莎莎. 机器学习理论研究. 中国科技信息, 2010(14): 208-209, 214.
[6]
王爱平, 万国伟, 程志全, 等. 支持在线学习的增量式极端随机森林分类器. 软件学报, 2011, 22(9): 2059-2074.
[7]
周志华. 机器学习. 北京: 清华大学出版社, 2016: 180.
[8]
聂君莲. 基于语义网的手机短信3D动画情节规划[硕士学位论文]. 北京: 北京工业大学, 2012.
[9]
Zhou ZH, Li M. Semi-supervised learning by disagreement. Knowledge and Information Systems, 2010, 24(3): 415-439. DOI:10.1007/s10115-009-0209-z
[10]
周志华. 机器学习. 北京: 清华大学出版社, 2016: 307–310.