基于状态机的手语动画自动生成技术*
2020-03-04张轶秋王卫民
张轶秋 王卫民 唐 洋 张 健
(江苏科技大学计算机学院 镇江 212003)
1 引言
手语生成技术最早可追溯到1982年Shantz和Poizner在1983年实现了一个用计算机合成美国手语的BASIC程序[1]。在此之前,手语生成技术发展缓慢,主要因为人们不够重视弱势群体,尤其是听障人群。随着这个程序的问世,越来越多的人开始关注与听障人群之间的交流,并将手语电子化。根据实现方式的不同,可将手语生成分为两大类:基于虚拟人的手语生成和基于视频拼接的手语生成。基于虚拟人的手语合成就是捕捉手语动作数据构建运动参数数据库,根据输入文本检索出对应的运动数据,并估计轨迹进而驱动虚拟人运动。如2002年,Stephen等[2]利用动作传感器对手语表达者的动作进行获取,得到相对应的数据信息,再利用这些信息直接控制模型进行表达,实现文字转化为手语的过程;基于视频拼接的手语合成则是直接录制真人手语视频数据库,根据输入文本搜索对应的手视频,最后通过对手语视频片段的组合拼接实现手语合成。如1999年,Slavko Krapez等[3]将单个手语动作录成相对应的视频片段[4],再将这些视频片段拼接形成手语句子视频。
2 相关工作
手语是一门极其复杂又精确的肢体语言,如果用建模的方式把手语语句动作一一表现出来[5],成本十分高昂,而且手语语句的重复利用率不高[6]。因此,本文采用拼接的方法把单个手语分词拼接成完整句子的方式进行手语生成[7]。
本文利用状态机[8]来实现手语动画的过渡。使用状态机来合成动画最早可追溯到Raibert等[9]利用状态机合成了动画人物运动。之后又有许多人在此基础上实现了动画人物跑步、跳跃等一系列动作[10~12]。本文通过状态机识别上一帧与下一帧之间的动作差异,判断是否插入过渡手语动画,来实现手语动画的平滑过渡。
状态机[13]是表示事物状态的一种机制。事物一般有静态和动态两个状态,状态机通过确定状态特征,将输入信号运用组合逻辑进行状态的转移,将状态从一个到另一个的流畅过渡。本文的动画生成技术运用了状态机状态转移这一特性,对手语动作进行中间状态的过渡,使动作与动作之间呈现更流畅,平滑。
状态机在手语动画生成中有很好的运用。在手语动画中,动画即状态,我们通过设定一个起始状态,或者可以说是一个过渡状态,如关键帧一样,所有的动画都由这个状态过渡,我们设定为T状态,就像一个人伸直手臂一样,这样使得生成的动画更加流畅。
3 手语生成方法
手语生成技术是将一段完整的文字或语音转换为手语动画的过程。手语生成主要由手语词汇动画库的建设、句子分词、分词找同义词及手语动画拼接等技术组成。
3.1 手语词汇动画库的建设
手语词汇动画库的建设是手语生成中最基本也是最重要的环节。系统利用该技术通过各种渠道建立手语词汇库,其中包括字母、称谓、职业、姓氏、衣物、食品、日用品、时间、空间、生活、社交、哲学、心理、民族、宗教、交通邮电、农牧副渔、文化、体育、卫生、科学、数学、物理、化学、生物、洲洋国家名称、动植物等54大类共5234张常见手语图片。将这些自然手语分词对应成每个分词序列,借状态机这一媒介进行动画生成,构成完整真实的手语动画片段,然后整合到动画库中去。
3.2 句子进行分词
因为每个句子都由单词或词组组成[14],该步骤是将一段文字(句子)进行拆分,分成许多个单词或词汇的集合。
3.3 分词找同义词
同义词目前采用人工录入的方式进行。经过多年的积累,系统常用词汇基本上都有比较全的同义词集,其中词条已达千万级。对公交报站常用语句的同义词进行了扩展,形成标准词。
此外,系统还对标准词进行了扩展,运用了术语语义网。例如:国家,可以扩展为马来西亚、阿根廷、斯里兰卡等。将标准词的范围扩大,将相关联的所有词汇进行扩展整理,丰富句子的含义,使句子表达更加准确,也为之后的手语动画生成的准确性提高作贡献。
通过将句子进行分词后找到对应的同义词、近义词,扩展成标准词,再找到手语词汇动画库与之对应的手语动画序列,进行含义的表达。
3.4 动画拼接(基于状态机)
从手语词汇动画库中找到词汇序列所对应的动画,形成手语动画序列,这就是手语动画拼接过程,则有如下定义:
定义 1:WS(手语词汇库)=(W1,W2,…,Wn)其中,Wi是第i个手语词汇。
当i<j时,Len(Wi)<Len(Wj)
定义2:词汇Wi的手语词汇动画表。
T(Wi)={A1,A2,…,An}
把每个手语动画序列看成一个状态,则手语动画生成方法可如图1所示。
图1 原状态机示意图
在此状态机中,所有词都互相连接,由判断条件判断是否可以直接连接,此状态机运行较快,但缺点也很明显:若有新词汇添加时,需添加一个新的状态,同时添加新状态与现有词汇状态的相互连接以及添加与T-box状态之间的连接。这样,当词汇较多时程序的代码将极其庞大,不利于维护。所以本文将此状态机改为如图2所示。
图2 现状态机示意图
一段手语词汇序列[15],状态机通过上图机制将其生成为手语动画序列。每个手语词汇之间互不相连,都与any状态互相连接,从而产生间接的联系。这样的优点在于有新的词汇添加时只需添加新词汇与any状态的两个关联,和与T-box状态的一个关联即可。减少了词与词之间的关联[16],减少了工作量,也减轻了系统的运行负担。
4 数据集和评估标准
4.1 数据集
公交手语常用语句库。
4.2 评估标准
1)分词识别率:
(1)单个句子的识别率
S表示手语句子;W(S)表示每个句子分成的每个词语的个数;N(W)表示分词W中,产生手语的词的个数;所以,单个句子S的识别率可表示为:
(2)句子库的识别率
SS={S1,S2,…}表示句子S对应的测试集;n是句子库SS中每个句子的数量;所以,句子库SS的识别率可表示为
2)识别精度
识别精度指的是给一个句子,产生手语,让听障人士去理解,是不是句子所表达的含义;如果能完全理解,说明句子产生的手语理解率为100%;完全无法理解为0%。
LS={L1,L2,…,Lm}表示多个听障人士,形成的一个库;m表示听障人士L的个数;P(S,L)代表听障人士L对句子S自动产生的手语进行语义打分,表示听障人士对句子的理解程度。听障人群LS对句子S的理解程度(识别精度)可表示为
听障人群LS对句子库SS的理解程度(识别精度)可表示为
5 实验
我们将本系统的手语动画自动生成技术应用于公交手语报站系统。对公交车的手语报站进行识别精度的实验。
对每一个站点的报站用本文算法生成一段手语动画视频,让听障人群理解,用评估标准去评价每一段生成的手语动画质量。
例句:
“镇江移动”温馨提示,您现在乘坐的“1”路公交车,是从“科技新城东园”开往“迎江桥”,全程22个站台,下一站是“明都大酒店”。
句子分词:镇江、移动、提示、您、乘、1、公交车、科技、新、城、东、园、去往、迎江、桥、全部、22、站台、下一个、站台、明都、酒店。
手语分词:镇江、移动、提示、您、乘、1、公交车、科技、新、城、东、园、去往、桥、全部、22、站台、下一个、站台、酒店。
得出这句的分词识别率为90%;由听障人群判断得出识别精度为80%。以上过程进行反复对比、比较,结论如表1,自动手语生成在分词识别率和识别精度上都有良好的表现。
表1 手语动画识别精度
本文还用人工手语报站来检测本文手语动画生成技术的有效性,识别精度如图3所示。可以看出,动画手语报站的识别精度与人工手语报站在识别精度上相差不大,聋哑人都可以有效地理解。
图3 识别率对比图
6 结语
本文将状态机应用于手语动画生成[17]中,设计了基于状态机的手语动画自动生成技术算法,生成的手语动画,准确率高。本文的创新点在于基于状态机的手语动画自动生成技术[18],实现动态扩展[19],解决了手语资源无法动态扩展的问题[20];生成的动画连贯、自然。下一步工作,丰富手语库,可以向云方面发展,将手语动画存储到云服务器,更方便调用。