CN103984696A - 一种基于图语法的动漫数据的表达存储方法 - Google Patents
一种基于图语法的动漫数据的表达存储方法 Download PDFInfo
- Publication number
- CN103984696A CN103984696A CN201410122389.7A CN201410122389A CN103984696A CN 103984696 A CN103984696 A CN 103984696A CN 201410122389 A CN201410122389 A CN 201410122389A CN 103984696 A CN103984696 A CN 103984696A
- Authority
- CN
- China
- Prior art keywords
- node
- animation
- information
- xml
- child
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及动漫图像和动画视频领域,具体公开一种基于图语法的动漫数据的表示存储方法,是用于创建动漫数据库,包括:动漫元素的表达模型,其中具体包括与或图模型、时空与或图模型和解析树;基于XML技术的动漫数据存储,具体为:从图语法模型生成XML描述,基于XML描述的高效检索。本发明通过对动漫元素的有效表达和存储,使在动漫创作中能够快速有效的复用已有的动漫元素,从而提高动漫创作的效率,以此带动国内动漫产业的发展。
Description
技术领域
本发明涉及动漫图像和动画视频领域,更具体地,涉及动漫图像的解析及动漫数据的表达和存储领域,是一种基于图语法的动漫数据的表达存储方法。
背景技术
世界的造物主为世界上所有的物体都提供了一个稳定的结构。以人为例,人的身体都可以分成头部、躯干和四肢,而头部再细分,可以得到五官、头发等。虽然世界上没有一模一样的两个人,但是,总可以发现他们之间有那么一两个相像点,例如,眼睛、耳朵。特别在动漫造型当中,这一特点尤其明显。从这一角度出发,可以把动漫创作的过程理解成是对造型的分解和重组的过程。基于以往的创作成品,创作者可以轻易地完成新的人物造型设计。但现在普遍的动漫创作系统都未具有或提供基于复用思想的创作平台。
动画创作过程是一项繁琐而耗时的体力劳动过程,大家现在看的影片,为了适应人眼的识别能力,在制片时都是按每秒24帧甚至更高的30帧的频率进行创作的。实际上,连接的两帧之间,它们的变化是相当微小了,但是,这样的微小的差别就导致了创作人员必需进行重新的创作。
元素的复用是通过人工标注、编辑、解析等过程,对以往的素材进行分类、结构化管理,在创作的过程中经过检索,直接或间接把现有的漫素材用于新作品的生成上。
与或图思想是来自对问题求解的抽象,问题的解总可以表示成后继问题的解的关系集。同样,物体的整体结构与局部结构存在紧密相连的关系。整体可以表示成各部分的组合关系。通过扩展与或图的应用,可以得到所有规则物体的结构表示方法。
与或图是解析工作的标准,解析过程在与或图的指导下对动漫元素进行分解和结构组织。如图1,小熊维尼被解析成身体各部分的组合关系。解析的前提是对动漫素材进行标注。图像标注是标注系统的主要功能,因为,视频可以看作是一连串的图像序列。现有的标注工作主要还是以手工标注为主,标注的结果视动漫素材的清晰程度而定,图1中就显示了两种不同的标注结果。小熊的图像比较大,方便标注,可以有效分解。小鸟的图像比较小,只能对整体解析。
发明内容
为了实现对动漫元素的有效表达和存储,使得在动漫创作中能够快速有效的复用已有的动漫元素,提高动漫创作的效率,本发明提出了一种基于图语法的动漫数据的表达存储方法。
为了实现上述目的,本发明的技术方案为:
一种基于图语法的动漫数据的表示存储方法,是创建动漫数据库,包括:
采用与或图模型表示动漫元素的结构,与或图模型表示为:
G = < VN,VT,S,R,P >
其中,G表示与或图模型,代表一类实体;非终结结点VN = VOr∪VAnd,与结点VAnd与或结点VOr组成了与或图的表示,VT表示终结结点,终结结点的集合形成与或图的实例,S是与或图的根结点,所有结点都从根结点分解而来,R = {R1,R2,…,Rn },表示与或图各结点之间关系的集合,P表示与或图所有实例的集合;
其中与或图模型用于定义一类物体;
对物体进行标注、解析得到物体的解析树,用于定义物体的结构;
通过分析、扩展与或图模型获取支持复用动漫元素数据结构的时空与或图模型,所述时空与或图用于对动漫元素数据库元素进行组织、分类和命名;
生成存储与或图模型的XML文档;
其具体为:用XML根元素<AndOrGraph>来声明与或图的XML文档的版本号,以及记录了与或图中结点的总个数;用子元素<AndOrGraphNode>记录了与或图各个结点的信息,该元素具有三个属性,用来记录当前结点的信息;
如果当前结点有孩子结点的话,并用子元素<ChildNode>来描述当前结点的孩子结点,该子元素具有两个属性:孩子结点的ID和孩子结点的名字;
如果当前结点为叶子结点,用子元素<PolyLine>来记录该叶子结点的所代表的模板信息,该元素的属性用来记录该条PolyLine所包含的点的个数;
如果该叶子结点所代表的模板拥有多条PolyLine,需要多个子元素<PolyLine>来记录模板的信息,依次从根结点开始,描述与或图各个结点的信息。
在一种优选的方案中,所述与或图模型是一种层次递归结构分解表达模型,有三种结点:
(i) 与结点And_Node)表示动漫对象的结构分解;
(ii) 或结点Or_Node 表示的是不同结构上的选择关系;
(iii) 叶结点Set_Node表示不同的实例。
在一种优选的方案中,所述时空与或图字典中每个元素同时表示2D或3D空间和时序的变化。
在一种优选的方案中,所述解析过程是对关键信息进行处理,所述关键信息主要是指动漫元素的轮廓信息、纹路信息和骨骼信息;
所述轮廓信息指的是动漫元素的外轮廓,是最基本的信息,在标注时,首先根据元素的外轮廓判断物体能否独立成为一个单元;
所述结构信息指的是动漫元素内部体现出来的强烈的感观信息;
所述骨骼信息指的是为造型添加上的可以自由活动的依据。
在一种优选的方案中,所述表示存储方法还包括读取XML文档,得到该文档所存储的与或图结构;
所述读取过程为:
a)读取该XML文档的根元素,如果得到的根元素是<AndOrGraph>,说明该XML文档存储了一个与或图结构,满足条件;否则说明此XML文档存储的不是与或图模型,退出读取程序;
得到该根元素的两个属性值,如果属性“Version”的值为XML文档的版本号,说明该XML文档的版本是对的;并用变量保存属性“Node_Num”的值,得到与或图结点的总个数,作为程序循环的次数;
b)读取子元素<AndOrGraphNode>,得到该元素的三个属性值;得到与或图的根结点信息,根结点的结点名字/结点类型为或结点;另外通过得到的结点ID为0,也可以判断该结点为与或图的根结点;
c)读取下一行,可以得到元素<AndOrGraphNode>的子元素<ChildNode>,读取该子元素的属性信息,得到与或图根结点的一个孩子结点的信息,包括孩子结点的名字,并记录下得到的属性“NodeID”的值;
d)接着读取下一行,如果读取到的结果为</AndOrGraphNode>,说明该与或图的根结点的所有信息已经全部得到,根结点的所有信息包括根结点的名字、它的孩子结点的名字以及孩子结点的个数;如果读取的元素为<ChildNode>,按照上一步的方法进行循环操作;
e)接着读取下一行,读取得到子元素为<AndOrGraphNode>的各个属性值,读取过程如同步骤b),此步骤将会得到与或图孩子结点的信息;
f)如果步骤e)得到的孩子结点的结点类型为与结点或者是或结点,按照步骤c)的方法进行读取,得到与或图中该孩子结点的所有信息;如果步骤e)得到的孩子结点的结点类型为叶子结点,则按照步骤g)读取;
g)读取子元素<PolyLine>的属性值,记录下该PolyLine所包含的点的个数;接着读取该子元素<PolyLine>的文本内容,得到各个点的值;
h)如果读取得到的XML元素是<AndOrGraphNode>,按照步骤e)至步骤f)继续往下读取XML文档,得到相应的与或图结点的所有信息;如果读取得到的XML元素是<ChildNode>,读取过程如同步骤f);如果读取得到的XML元素是<PolyLine>,读取过程如同步骤g);如果读取得到的XML元素是</AndOrGraph>,说明该XML文档已经成功读取完,同时得到了该XML文档存储的与或图结构。
与现有技术相比,本发明的有益效果为:本发明通过在动漫创作中复用已有的动漫元素,从而提高动漫创作的效率,达到带动国内动漫产业发展的目的。
附图说明
图 1是一帧动画图象的解析实例示意图;
图 2是对卡通牛构建的与或图模型示意图;
图 3是根据图2得到的具体的卡通牛的解析图示例解析树结构示意图;
图 4(a)是对图1中的图像使用粗紫色线条标注了维尼熊头部的轮廓;
图4(b)是对图1中的图像使用粗蓝色线条标注了维尼熊头部的轮廓;
图4(c)是对图1中的图像使用细绿色线条标注了维尼熊的骨骼;
图 5是存储与或图的XML文档的各个元素之间的关系示意图。
具体实施方式
下面结合附图对本发明做进一步的描述,但本发明的实施方式并不限于此。
本发明的具体实施办法如下:
一、动漫元素的结构表示:
(一)与或图模型
现实世界中,所有物体都具有统一、稳定的结构,但却缺乏对这种统一结构的规范定义。对同一个概念,可能不同人之间会造成不同的理解。例如,对于“手”这个概念,有些人可能会认为这包含了手臂和手掌,但也许有另一部分人认为这包含了手臂、手腕和手掌。也许还有不同的划分方法。为了对动漫元素结构进行统一约束,本发明在动漫元素数据结构表示上使用了与或图的思想。
与或图的概念最早由著名计算机专家Judea Pearl提出作为启发式搜索算法的数据结构,最近被计算机视觉专家朱松纯和David Mumford(菲尔兹奖得主)等改造成为图象和物体的一个计算机模型。当时的使用领域主要是对衣服模型的建模,以及部分识别应用。传统与或图的思想是应用在人工智能领域上的,通过后继问题的可解性以及问题之间的约束关系,可以得出当前问题的可解性。被扩展到对物体建模问题上后,与或图在逻辑表示上与传统有所不同。
如附图2所示,与或图在对物体模型表示的应用上,与结点表示模型的可拆解行,如卡通奶牛可以由头部、躯干、四肢以及尾巴组成;或结点表示模型的可选择性,如牛的头可以是各种形态的;而叶子结点,则表示一个实在的模型,如附图2中的任何一个卡通奶牛的头部模板就表示一类具体的卡通牛的头部部分。除了父结点与子结点之间的关系外,兄弟结点之间还存在空间上的逻辑关系,从而加强和丰富与或图的表示能力。如此复杂的与或图模型,可以归纳为以下公式:
G = < VN,VT,S,R,P >
其中,G表示与或图模型,代表一类实体。非终结结点VN = VOr ∪VAnd,与结点与或结点组成了与或图的表示。VT表示终结结点,终结结点的集合形成与或图的实例。S是与或图的根结点,所有结点都从根结点分解而来。R = {R1, R2,……,Rn },表示与或图各结点之间关系的集合。P表示与或图所有实例的集合。
与或图是一种层次递归(hierarchical recursive) 结构分解表达模型。它有三种结点:
(二)与结点(And_Node) 表示动漫对象的结构分解。
它可以分解为n个子结点作为其组成部件,这些子结点按照一定的空间关系同时组合,是一种物体分解规范。它们可以是与结点,可以是或结点,要根据其自身的可分解性来确定。比如人脸作为与结点,可以分解为眼睛、鼻子、嘴巴等五官;自行车可以分解成车扶手、车座、车架、车轮、车踏板、车链条等组成部件;卡通维尼熊可以分解为头部、躯干、四肢等。这些子结点是动漫对象的必要组成部分,一般同时出现在图像中。
(三)或结点(Or_Node) 表示动漫对象的结构选择和异构性。
属于可配置变量,根据各种可能性的大小,可选择不同的孩子结点,从而反映出该结点结构的可变性。比如,人眼作为或结点,可以有丹凤眼、三角眼、睁开、闭合等多样性;同样,车子作为或结点可以是轿车、卡车、吉普、面包车等。与结点和或结点通过递归式组合分解形成结构化的与或图。不同结点可以共享子结点,比如:轿车、卡车、吉普、面包车都有车轮作为其共同的子结点。这样不仅节省大量冗余表示,同时动漫对象的表达由树结构变为图结构。在每个图像实例中,一个或结点只能选择其中一个子结点作为最终确定的配置。
(四)叶结点(Set_Node) 也叫终端结点,代表一个基本元素或是模板。
通过与结点和或结点的不同赋值,能够选择、拼接出不同的物体实例,这就是产生式模板。比如:桌子腿、汽车车轮、人脸等。每个叶结点由一个图论中的子图来表示,该子图类似于动漫中的结构线,子图的顶点往往代表该元素的关键点。这些关键点起到三个作用:
(i)通过几何转换弹性形变来控制物体的三维朝向、变形与夸张;
(ii)通过在时间轴上的对应来实现对运动元素的跟踪;
(iii)通过多个元素关键点之间的耦合来组合出更复杂的动漫对象。
但是,现阶段的与或图结构存在一个相对的局限。首先,从或结点的定义上存在歧义。每一类物体都可能存在结构上的差异,如自行车中的山地跑车和公主车就存在差异,在每一类结构的自行车也会存在不同实例的差异。那么,或结点到底是定义不同的结构还是不同的实例呢?这里存在歧义。为了消除歧义,本实施例定义或结点表达的是不同结构上的选择关系,叶子结点表示不同的实例,所以,在叶子结点与或结点之间,还存在以与结点进行过度,但此与结点不能再分。
其次,在同一种结构的物体中,也会存在可识别程度的差异。例如图1中的小鸟,由于识别程度低,导致了无法往下继续分解。为了满足这方面的需求,允许往任何与结点中的孩子中添加叶子结点。
a)时空与或图模型
本实施例要研制的动漫数据库不同于传统的数据库,不是简单地调用已有的动画资料和片段,而是对动画和视频素材作有机、逐层分解与组合,生成大量的场景、物体、部件、运动等元素和字典。为达到这一目的,本实施例提出研制统一的动漫元素表达与分解的计算机模型:时空与或图(Spatial Temporal And-oR graph,简称STAR-图) 来对数据库元素进行组织、分类、和命名。与或图也是图语法的等价表示,它具有非常强的语义表达能力,可以通过较小的字典,组合出大量的动画元素。
与或图中的字典元素可以是二维也可以是三维的。至于到底是用以物体为中心(object-centered)的三维表示法还是用以观察者为中心(view-based)的二维平面视角表达法,在认知心理学和计算机视觉的研究中存在较大分歧。目前的基本看法是:这两种表达法各有千秋,都被人类感知所采用。对于不同的物体和目的,运用不同的表达法是明智之举;这在画家写生与创作中也有体现。
比如画马,一种办法是在动画库中建立马的三维模型,由于马的姿态千变万化,因此,寻求相应的三维字典元素往往十分困难。
第二种办法是对于分解后的马的局部模型,如马腿,马蹄保存一批在不同典型视角下的二维动漫素材,这就归结为在与或图上的“或结点”。然后通过挑选和组合拼接,直接产生二维动漫静帧画面。
第三种方法就是混合表达法。比如,用三维运动捕捉数据来产生马的运动姿态,并在此基础上通过绘制三维几何模型或者组合二维动漫元素来产生马的运动的最终动画。由于本实施例中的动漫数据库设计采用了层次分解、2D或3D表示,因此能够满足以上三种创作流程。其实,动漫字典中的元素不仅是2D和3D两种数据。严格地说,这是一个高维的数学流型(manifold)。流型的维度还要涵盖光照、运动等物理变化。这就引入时空与或图(STAR)的表示。在动漫绘制过程中,主要是增添了时序的表达。每个元素变成一个运动序列。在相邻动画帧之间,元素的关键点前后对应,形成运动轨迹。然而,这种表示带来下面的两大问题,必须在时空与或图(STAR)模型中予以解决。
(i)在通常运动捕捉的数据中,关键点的数目以及点与点之间的连接是固有的。而这在二维元素的表达法中是无法做到的。由于视角变化和遮挡,动画元素在相邻动画帧之间存在关键点数目的变化,或者图结构的跳转:从一种动画元素到另外一个图元素的变换。
(ii)动画元素或关键点的轨迹必须进行有效分解,才能脱离原有的素材。不但避免版权问题,还支持原创动画的制作。比如舞蹈或武术的基本动作分解;马的跳跃步伐等。
结合以上两点,时空与或图字典中的每个元素既要表示空间(2D或3D)又要表示时序的变化。比如:眼睛是静态与或图中的某个元素;在时空与或图中,它就变为一个眼神(眼珠的细微变化)或眨眼(眼皮的细微变化)的动作。这些眼睛和嘴巴的动作,组合成为人脸表情。
研究时空与或图(STAR)表示的关键技术是这些时空元素的图的(拓扑结构)变化和图组合的语法规则。马尔可夫模型(Hidden Markov Model)对传统的马尔可夫模型做了两点扩展: (1) 将每个时间的状态表达为一个图,而非固定维度的向量;(2) 引入图操作算子来表示相邻帧的图结构的跳转。在本实施例中提出将这一技术引入动漫数据库的表式中来解决上面提出的两个问题。
b)解析树
如果与或图完成的是对一类物体的定义,那么,解析树就是与或图的一个实例,具体地定义一个物体的结构。下面以卡通牛为例,解释与或图与解析树之间的关系。附图2定义了卡通奶牛的与或图结构,从图中可以看到,卡通奶牛的大概结构可以分成头部(head)、躯干(body)、四肢(limb)和尾巴(tail)。附图3中,以一头具体的卡通奶牛为例,显示了卡通奶牛的解析树结构。从图中可以看到,卡通奶牛的各个组成结构基本上都是和与或图结构匹配的。
与或图的应用,使动漫元素有了规则的结构表示。但是,只是记录结构上的关系,是无法达到良好的复用效果的。为此,本发明提出了解析过程中需要处理的关键信息。这些关键信息主要是指动漫元素的轮廓信息、纹路信息和骨骼信息。那么,什么是轮廓信息,什么是纹路信息,什么是骨骼信息呢?如附图4所示。
(i)轮廓信息(SketchGraph)
主要指的是动漫元素的外轮廓,这是最基本的信息,在标注时,首先根据元素的外轮廓判断物体能否独立成为一个单元。其次,由于动漫元素不会都是具有如矩形和圆形等规则外形的轮廓,所以,在复用时需要根据元素的轮廓信息,排除物体以外部分图像对复用的干扰。轮廓信息的重要性还可以体现是在对物体的识别上。在没有给出详细的内部信息的情况下,还是可以从轮廓上猜测到大概是什么物体。
(ii)结构信息(Region)
指的是动漫元素内部体现出来的强烈的感观信息。例如,人脸上的皱纹、疤痕,衣服上的皱褶,物体由于长期使用所造成的老化现象等等。这些信息可以加强对物体的认识,令元素复用变得更具感观性。例如,人脸上的皱纹会随着脸部的动作而呈现不同的形状,如果只是单纯的把图片进行复用,那可能会使创作的效果变得十分糟糕。然而,只要把重要的结构信息标注出来,为造型添上动作后,结构会依据动作的变化而进行调整,这样的效果,可以让人感觉到造型的活灵活现。
(iii)骨骼信息(Skeleton)
指的是为造型添加上的可以自由活动的依据。造型可以分为骨骼造型和非骨骼造型。骨骼造型是肢体上可以进行运动的造型,像大部分动物、随风摆动的柳树、飞行过程中的直升机等,都存在着肢体的运动,可以视作骨骼造型。非骨骼造型则相反,指的是那些不存在肢体运动的造型。像摆设品、行使中的汽车等。但是,骨骼造型和非骨骼造型之间其实并不存在不可逾越的鸿沟,在某些情况下,则可以为汽车贴上骨骼,让它成为汽车人。
1、动漫数据的存储
1)用XML存储与或图的原因
XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。XML指可扩展标记语言(Extensible Markup Language),是一种标记语言,很类似HTML。XML的设计宗旨是传输和存储数据,而非显示数据。XML标签没有被预定义,需要创作者自行定义标签。XML被设计为具有自我描述性,它是W3C的推荐标准。XML与HTML的主要差异是XML不是HTML的替代,它们是为不同的目的而设计的:
(i)XML被设计为传输和存储数据,其焦点是数据的内容。
(ii)HTML被设计用来显示数据,其焦点是数据德外观。
(iii)HTML旨在显示信息,而XML旨在传输信息。
XML具有如下的特点:
(1)XML是不作为的。
也许这有点难以理解,XML不会做任何事情,是因为XML被设计用来设计结构化、存储以及传输信息。即使一个XML文档由标题和内容,这个XML文档仍然不会做任何事情。它仅仅是包装在XML标签中的纯粹的信息。需要编写软件或者程序,才能传送、接收和显示出这个文档。所以,用XML来存储与或图,将会很方便。
(2)XML仅仅是纯文本。
XML没有什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理XML。不过,能够读懂XML的应用程序可以有针对性地处理XML的标签。标签的功能性意义依赖于应用程序的特性。由于XML仅仅是纯文本,创作者能够很容易的生成和读取存储与或图的XML文档。
(3)XML允许创作者发明自己的标签。
这是因为XML没有预定义的标签。XML允许创作者定义自己的标签和自己的文档结构。而HTML中使用的标签(以及HTML的结构)是预定义的。HTML文档只使用在HTML标准中定义的标签(比如<p>,<h1>等等)。这样,本发明根据与或图的结构信息,定义了XML文档的标签:<AndOrGraph>、<AndOrGraphNode>、<ChildNode>、<PolyLine>。
(4)XML不是对HTML的替代。
XML 是对 HTML 的补充。XML 不是对 HTML 的替代,理解这一点很重要。在大多数 web 应用程序中,XML 用于传输数据,而 HTML 用于格式化并显示数据。对XML的最好的描述是:XML 是独立于软件和硬件的信息传输工具。
(5)XML 是 W3C 的推荐标准。
可扩展标记语言 (XML) 于 1998 年 2 月 10 日成为 W3C 的推荐标准。
(6)XML 无所不在。
目前,XML 在 Web 中起到的作用不会亚于一直作为 Web 基石的 HTML。XML 无所不在。XML 应用于 web 开发的许多方面,常用于简化数据的存储和共享。主要的用途有:
(1)XML 简化数据共享
在真实的世界中,计算机系统和数据使用不兼容的格式来存储数据。XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。这让创建不同应用程序可以共享的数据变得更加容易。
(2)XML 简化数据传输
通过 XML,可以在不兼容的系统之间轻松地交换数据。对开发人员来说,其中一项最费时的挑战一直是在因特网上的不兼容系统之间交换数据。由于可以通过各种不兼容的应用程序来读取数据,以 XML 交换数据降低了这种复杂性。
(3)XML 简化平台的变更
升级到新的系统(硬件或软件平台),总是非常费时的。必须转换大量的数据,不兼容的数据经常会丢失。XML 数据以文本格式存储。这使得 XML 在不损失数据的情况下,更容易扩展或升级到新的操作系统、新应用程序或新的浏览器。
(4)XML 使数据更有用
由于 XML 独立于硬件、软件以及应用程序,XML 使数据更可用,也更有用。不同的应用程序都能够访问该数据,不仅仅在 HTML 页中,也可以从 XML 数据源中进行访问。通过 XML,可以使该数据供各种阅读设备使用(手持的计算机、语音设备、新闻阅读器等),还可以供盲人或其他残障人士使用。
基于以上对XML的介绍,以及它的特点和用途,在本实施例中使用XML来存储与或图。另外,XML文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。这一点和动漫数据的表达形式非常类似,这也是为什么在本实施例中使用XML来存储与或图的一个重要因素。
2)生成存储与或图模型的XML 文档
XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。与或图模型也是一种树结构,这样可以很方便地按照XML文档的编写规范来实现与或图的存储。尤其是XML 具有出色的自我描述性,可以根据自己的需要来描述存储与或图的XML文档的标签。
本发明用XML根元素<AndOrGraph>来声明与或图的XML文档的版本(CartoonParser_v1.0),以及记录了与或图中结点的总个数。用子元素<AndOrGraphNode>记录了与或图各个结点的信息,该元素具有三个属性,用来记录当前结点的信息,比如:结点的ID、结点的名字和结点的类型,如果当前结点有孩子结点的话,并用子元素<ChildNode>来描述当前结点的孩子结点,该子元素具有两个属性:孩子结点的ID和孩子结点的名字。如果当前结点为叶子结点(Set_Node),用子元素<PolyLine>来记录该叶子结点的所代表的模板信息,该元素的属性用来记录该条PolyLine所包含的点的个数。如果该叶子结点所代表的模板拥有多条PolyLine,就需要多个子元素<PolyLine>来记录模板的信息。依次从根结点开始,描述与或图各个结点的信息。该类XML文档的各个元素之间的关系可参见附图5。
下面给出了一个存储卡通奶牛的与或图的XML文档实例,具体说明XML文档的生成。该实例中省略了一些叶子结点。卡通奶牛的与或图见附图2。
第1行描述了XML文档的根元素<AndOrGraph>。它有两个属性“Vesion”和“Node_Num”,其中属性“Vesion”定义了XML的版本(CartoonParser_v1.0),属性“Node_Num“记录了该与或图所包含的结点总数。根据上面的实例,可知当前存储的与或图具有十个结点。
第2行至4行子元素<AndOrGraphNode>来描述与或图的根结点信息,它有三个属性和一个子元素<ChildNode>,其中:
(i)属性“NodeID”记录了当前存储的根结点的ID。注意,该ID仅仅只是一个标识符,用于标识XML元素,同时也起到了标识与或图各个结点的作用,该ID对于读取XML文件具有很重要的作用。
(ii)属性“NodeName”记录了当前存储的根结点的名字(SyntaxObject)。
(iii)属性“NodeType”记录了当前存储的根结点的类型(Or_Node)。
第3行是根元素<AndOrGraph>的一个子元素<ChildNode>,记录了与或图根结点的孩子结点的信息,该子元素包括两个属性:“NodeID”和“NodeName”。如果与或图的根结点有多个孩子,就需要多个子元素<ChildNode>来记录各个孩子结点的信息。从上述实例中可知,该与或图根结点仅有一个孩子,孩子结点的名字为牛(Cow)。
第4行定义了第2行子元素<AndOrGraphNode>的结尾。
第5行至10行定义了该与或图根结点的孩子结点信息。可知,该孩子结点的ID为1,结点名字为牛(Cow),结点的类型为与结点(And_Node)。第6行至9行定义了该结点的四个孩子结点(head、body、limb、tail)。
接下来,第11行至13行,第14行至16行,第17行至19行,第20行至22行,分别定义了四个孩子结点的信息,包括结点的ID、结点的名字、结点的类型以及它们的孩子结点的信息。这四个孩子结点的类型都是或结点。
第23行至26行描述了与或图的一个叶子结点信息。该结点的ID为6,结点的名字为head1,结点的类型为叶子结点(Set_Node),由于与或图中叶子结点也称为终端结点,即没有孩子结点,代表一个基本元素或是模板。所以用多个子元素<PolyLine>记录了该叶子结点所代表的模板信息。子元素<PolyLine>具有一个属性“Size”,主要用来记录该条PolyLine所包含的点的个数。根据第24行和第25行可知,该叶子结点所代表的模板共有两条PolyLine,第一条PolyLine包含5个点,第二条PolyLine包含7个点。
接下来,第27行至29行,第30行至32行,第33行至35行,同上所述。
最后一行定义了根元素的结尾</AndOrGraph>。
至此,用来存储附图2卡通奶牛的与或图的XML文档就生成了。该XML文档可以使用户共享该类动漫数据。也就是说,当用户想要对该类动漫数据进行标注解析的时候,不需要重新进行与或图的模型的设计,而是可以直接读取该XML文档,得到相应的与或图模型,同时用户可以在此与或图结构的基础上添加一些结点,或对某些结点进行修改等操作。这样就可以节约用户的很多的时间和精力。
3)读取XML文档,得到相应的与或图模型
为了实现XML文档的读取,需要编程员编写相应的代码。下面将阐释上面得到的存储卡通奶牛与或图的XML文档的读取过程。
(a).首先,读取该XML文档的根元素,如果得到的根元素是<AndOrGraph>,说明该XML文档存储了一个与或图结构,满足条件,否则说明此XML文档存储的不是与或图模型,退出读取程序.
得到该根元素的两个属性值,如果属性“Version”的值为“CartoonParser_v1.0”,说明该XML文档的版本是对的。并用变量保存属性“Node_Num”的值,得到与或图结点的总个数,作为程序循环的次数。
(b).接下来读取子元素<AndOrGraphNode>,得到该元素的三个属性值。这一步可以得到与或图的根结点信息,根结点的结点名字为SyntaxObject,结点类型为或结点。另外通过得到的结点ID为0,也可以判断该结点为与或图的根结点。
(c).读取下一行,可以得到元素<AndOrGraphNode>的子元素<ChildNode>,读取该子元素的属性信息,可以得到与或图根结点的一个孩子结点的信息,该孩子结点的名字为Cow,并记录下得到的属性“NodeID”的值。需要注意的是目前并不知道该孩子结点的结点类型。
(d).接着读取下一行,如果读取到的结果为</AndOrGraphNode>,说明该与或图的根结点的所有信息已经全部得到,根结点的所有信息包括根结点的名字、它的孩子结点的名字以及孩子结点的个数。如果读取的元素为<ChildNode>,按照上一步的方法进行循环操作。
(e).接着读取下一行,读取得到子元素为<AndOrGraphNode>的各个属性值,读取过程如同步骤(b)。此步骤将会得到与或图孩子结点的信息。
(f).如果步骤(e)得到的孩子结点的结点类型为与结点(And_Node)或者是或结点(Or_Node),按照步骤(c)的方法进行读取,得到与或图中该孩子结点的所有信息。如果步骤(e)得到的孩子结点的结点类型为叶子结点,则按照步骤(g)读取。
(g).读取子元素<PolyLine>的属性值,记录下该PolyLine所包含的点的个数。接着读取该子元素<PolyLine>的文本内容,得到各个点的值。
(h).如果读取得到的XML元素是<AndOrGraphNode>,按照步骤(e)至步骤(f)的方法继续往下读取XML文档,得到相应的与或图结点的所有信息;如果读取得到的XML元素是<ChildNode>,读取过程如同步骤(f);如果读取得到的XML元素是<PolyLine>,读取过程如同步骤(g);如果读取得到的XML元素是</AndOrGraph>,说明该XML文档已经成功读取完,同时也得到了该XML文档存储的与或图结构。
通过以上对读取XML文档过程的描述可知,根元素为<AndOrGraph>,而子元素<AndOrGraphNode>代表与或图的一个结点。当读取到子元素<ChildNode>,说明该子元素描述的是一个孩子结点的信息。子元素<ChildNode>清晰地描述了与或图的各个结点之间的关系,元素<AndOrGraphNode>描述的结点是父结点,而它的一个子元素<ChildNode>则描述了该父结点的一个孩子结点。如果有多个子元素<ChildNode>,则说明该父结点有多个孩子结点。子元素<PolyLine>主要记录了与或图中叶子结点的模板信息。通常叶子结点的模板都会包含一条或多条PolyLine,需要一个或多个子元素<PolyLine>来描述。
以上所述的本发明的实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神原则之内所作出的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (5)
1.一种基于图语法的动漫数据的表示存储方法,是用于创建动漫数据库,其特征在于,包括:
采用与或图模型表示动漫元素的结构,与或图模型表示为:
G = < VN,VT,S,R,P >
其中,G表示与或图模型,代表一类实体;非终结结点VN = VOr∪VAnd,与结点VAnd与或结点VOr组成了与或图的表示,VT表示终结结点,终结结点的集合形成与或图的实例,S是与或图的根结点,所有结点都从根结点分解而来,R = {R1,R2,…,Rn },表示与或图各结点之间关系的集合,P表示与或图所有实例的集合;
其中与或图模型用于定义一类物体;
对物体进行标注、解析得到物体的解析树,用于定义物体的结构;
通过分析、扩展与或图模型获取支持复用动漫元素数据结构的时空与或图模型,所述时空与或图用于对动漫元素数据库元素进行组织、分类和命名;
生成存储与或图模型的XML文档;
其具体为:用XML根元素<AndOrGraph>来声明与或图的XML文档的版本号,以及记录了与或图中结点的总个数;用子元素<AndOrGraphNode>记录了与或图各个结点的信息,该元素具有三个属性,用来记录当前结点的信息;
如果当前结点有孩子结点的话,并用子元素<ChildNode>来描述当前结点的孩子结点,该子元素具有两个属性:孩子结点的ID和孩子结点的名字;
如果当前结点为叶子结点,用子元素<PolyLine>来记录该叶子结点的所代表的模板信息,该元素的属性用来记录该条PolyLine所包含的点的个数;
如果该叶子结点所代表的模板拥有多条PolyLine,需要多个子元素<PolyLine>来记录模板的信息,依次从根结点开始,描述与或图各个结点的信息。
2.根据权利要求1所述的基于图语法的动漫数据的表示存储方法,其特征在于,所述与或图模型是一种层次递归结构分解表达模型,有三种结点:
(i) 与结点And_Node)表示动漫对象的结构分解;
(ii) 或结点Or_Node 表示的是不同结构上的选择关系;
(iii) 叶结点Set_Node表示不同的实例。
3.根据权利要求1所述的基于图语法的动漫数据的表示存储方法,其特征在于,所述时空与或图字典中每个元素同时表示2D或3D空间和时序的变化。
4.根据权利要求1所述的基于图语法的动漫数据的表示存储方法,其特征在于,所述解析过程是对关键信息进行处理,所述关键信息主要是指动漫元素的轮廓信息、纹路信息和骨骼信息;
所述轮廓信息指的是动漫元素的外轮廓,是最基本的信息,在标注时,首先根据元素的外轮廓判断物体能否独立成为一个单元;
所述结构信息指的是动漫元素内部体现出来的强烈的感观信息;
所述骨骼信息指的是为造型添加上的可以自由活动的依据。
5.根据权利要求1所述的基于图语法的动漫数据的表示存储方法,其特征在于,所述表示存储方法还包括读取XML文档,得到该文档所存储的与或图结构;
所述读取过程为:
a)读取该XML文档的根元素,如果得到的根元素是<AndOrGraph>,说明该XML文档存储了一个与或图结构,满足条件;否则说明此XML文档存储的不是与或图模型,退出读取程序;
得到该根元素的两个属性值,如果属性“Version”的值为XML文档的版本号,说明该XML文档的版本是对的;并用变量保存属性“Node_Num”的值,得到与或图结点的总个数,作为程序循环的次数;
b)读取子元素<AndOrGraphNode>,得到该元素的三个属性值;得到与或图的根结点信息,根结点的结点名字/结点类型为或结点;另外通过得到的结点ID为0,也可以判断该结点为与或图的根结点;
c)读取下一行,可以得到元素<AndOrGraphNode>的子元素<ChildNode>,读取该子元素的属性信息,得到与或图根结点的一个孩子结点的信息,包括孩子结点的名字,并记录下得到的属性“NodeID”的值;
d)接着读取下一行,如果读取到的结果为</AndOrGraphNode>,说明该与或图的根结点的所有信息已经全部得到,根结点的所有信息包括根结点的名字、它的孩子结点的名字以及孩子结点的个数;如果读取的元素为<ChildNode>,按照上一步的方法进行循环操作;
e)接着读取下一行,读取得到子元素为<AndOrGraphNode>的各个属性值,读取过程如同步骤b),此步骤将会得到与或图孩子结点的信息;
f)如果步骤e)得到的孩子结点的结点类型为与结点或者是或结点,按照步骤c)的方法进行读取,得到与或图中该孩子结点的所有信息;如果步骤e)得到的孩子结点的结点类型为叶子结点,则按照步骤g)读取;
g)读取子元素<PolyLine>的属性值,记录下该PolyLine所包含的点的个数;接着读取该子元素<PolyLine>的文本内容,得到各个点的值;
h)如果读取得到的XML元素是<AndOrGraphNode>,按照步骤e)至步骤f)继续往下读取XML文档,得到相应的与或图结点的所有信息;如果读取得到的XML元素是<ChildNode>,读取过程如同步骤f);如果读取得到的XML元素是<PolyLine>,读取过程如同步骤g);如果读取得到的XML元素是</AndOrGraph>,说明该XML文档已经成功读取完,同时得到了该XML文档存储的与或图结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410122389.7A CN103984696A (zh) | 2014-03-28 | 2014-03-28 | 一种基于图语法的动漫数据的表达存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410122389.7A CN103984696A (zh) | 2014-03-28 | 2014-03-28 | 一种基于图语法的动漫数据的表达存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103984696A true CN103984696A (zh) | 2014-08-13 |
Family
ID=51276669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410122389.7A Pending CN103984696A (zh) | 2014-03-28 | 2014-03-28 | 一种基于图语法的动漫数据的表达存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103984696A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213870A (zh) * | 2017-06-30 | 2019-01-15 | 埃森哲环球解决方案有限公司 | 文档处理 |
CN111369688A (zh) * | 2020-03-11 | 2020-07-03 | 暗物智能科技(广州)有限公司 | 一种结构化场景表达的认知导航方法及系统 |
-
2014
- 2014-03-28 CN CN201410122389.7A patent/CN103984696A/zh active Pending
Non-Patent Citations (1)
Title |
---|
杨亚玲: "基于图语法模型的动漫数据的表达、存储及复用技术研究", 《武汉工程大学2010学位论文》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213870A (zh) * | 2017-06-30 | 2019-01-15 | 埃森哲环球解决方案有限公司 | 文档处理 |
CN109213870B (zh) * | 2017-06-30 | 2022-04-29 | 埃森哲环球解决方案有限公司 | 文档处理 |
CN111369688A (zh) * | 2020-03-11 | 2020-07-03 | 暗物智能科技(广州)有限公司 | 一种结构化场景表达的认知导航方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chaudhuri et al. | Learning generative models of 3d structures | |
Jones | The emergence of the digital humanities | |
Hyun et al. | Motion grammars for character animation | |
WO2021217282A1 (zh) | 一种实现通用人工智能的方法 | |
Herhuth | Pixar and the aesthetic imagination: animation, storytelling, and digital culture | |
Ma | Automatic conversion of natural language to 3D animation | |
Scheider | Grounding geographic information in perceptual operations | |
Du et al. | Stylistic Locomotion Modeling with Conditional Variational Autoencoder. | |
Du et al. | Stylistic locomotion modeling and synthesis using variational generative models | |
Feng et al. | Fast, automatic character animation pipelines | |
Kaerlein | The social robot as fetish? Conceptual affordances and risks of neo-animistic theory | |
Preda et al. | Avatar interoperability and control in virtual Worlds | |
Wood | Behind the scenes: A study of Autodesk Maya | |
CN103984696A (zh) | 一种基于图语法的动漫数据的表达存储方法 | |
Goltz | Queer temporalities | |
Gutiérrez et al. | An ontology of virtual humans: incorporating semantics into human shapes | |
Liu | Research on virtual interactive animation design system based on deep learning | |
Zhong et al. | Learning uncoupled-modulation cvae for 3d action-conditioned human motion synthesis | |
Carreno-Medrano et al. | Perceptual validation for the generation of expressive movements from end-effector trajectories | |
Arida | Contextualizing generative design | |
Domoney-Lyttle | Drawing (non) tradition: matriarchs, motherhood and the presentation of sacred text in" The Book of Genesis, Illustrated by R. Crumb" | |
Lee et al. | The potential of a text-based interface as a design medium: An experiment in a computer animation environment | |
He | Exploring style transfer algorithms in Animation: Enhancing visual | |
CN104835189A (zh) | 基于后缀树运动图模型的运动合成方法 | |
Friedrich | Animation in relational information visualization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140813 |
|
RJ01 | Rejection of invention patent application after publication |