CN116485961A - 一种手语动画生成方法、设备和介质 - Google Patents
一种手语动画生成方法、设备和介质 Download PDFInfo
- Publication number
- CN116485961A CN116485961A CN202310465584.9A CN202310465584A CN116485961A CN 116485961 A CN116485961 A CN 116485961A CN 202310465584 A CN202310465584 A CN 202310465584A CN 116485961 A CN116485961 A CN 116485961A
- Authority
- CN
- China
- Prior art keywords
- sequence
- sign language
- action gesture
- neural network
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000009471 action Effects 0.000 claims abstract description 240
- 238000013528 artificial neural network Methods 0.000 claims abstract description 146
- 230000007704 transition Effects 0.000 claims abstract description 112
- 238000012545 processing Methods 0.000 claims abstract description 51
- 210000001364 upper extremity Anatomy 0.000 claims abstract description 9
- 238000012549 training Methods 0.000 claims description 33
- 239000013598 vector Substances 0.000 claims description 31
- 230000007246 mechanism Effects 0.000 claims description 29
- 239000011159 matrix material Substances 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 22
- 238000009826 distribution Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012417 linear regression Methods 0.000 claims description 4
- 239000003550 marker Substances 0.000 claims 8
- 230000001427 coherent effect Effects 0.000 abstract description 5
- 210000003414 extremity Anatomy 0.000 description 21
- 230000008569 process Effects 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000002474 experimental method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 210000000988 bone and bone Anatomy 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 241000282414 Homo sapiens Species 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 229920002125 Sokalan® Polymers 0.000 description 4
- 206010011878 Deafness Diseases 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- LPXQRXLUHJKZIE-UHFFFAOYSA-N 8-azaguanine Chemical compound NC1=NC(O)=C2NN=NC2=N1 LPXQRXLUHJKZIE-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 210000002310 elbow joint Anatomy 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000009954 braiding Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010668 complexation reaction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/32—Indexing scheme for image data processing or generation, in general involving image mosaicing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
- G06T2207/10021—Stereoscopic video; Stereoscopic image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种手语动画生成方法、设备和介质。其中,所述方法包括:从预置的手语词库中获取目标手语词的动作姿态序列,所述目标手语词是待生成手语所需的手语词,所述动作姿态序列的每一帧至少指示虚拟人体模型的上肢姿态;按照预定的拼接方式将所有目标手语词所对应的动作姿态序列按照所述待生成手语的语义的顺序进行拼接,得到目标动作姿态序列,其中,所述预定的拼接方式中利用经训练的神经网络对待拼接的两个目标手语词对应的动作姿态序列的连接进行平滑过渡处理;根据所述目标动作姿态序列,驱动所述虚拟人体模型的姿态进行变换,生成目标手语动画。生成的手语动画中手语词动画之间过渡更加连贯自然,提高了手语动画的生成效率。
Description
技术领域
本发明涉及手语和机器学习领域,具体来说涉及手语动画技术领域,更具体地说,涉及一种手语动画生成方法、设备和介质。
背景技术
按照人类感知语言的方式,可以将语言分为听觉语言和视觉语言。
通常,大多数人类之间相互沟通时使用的是听觉语言,即表意者基于自然语言(Natural Language,例如汉语、英语、日语等)的发音规则通过嘴唇发音利用自然语言讲述欲表达的思想,接收者通过耳朵听取表意者的发音并将捕获到的声波传输至大脑中提取其表达的思想,从而实现表意者将欲表达的思想传递至接收者。也即,接收者是通过听觉感知表意者所传达的思想,相互之间交流的媒介是自然语言文本对应的语音。
但是,对于听力和/或语言功能障碍患者(即聋哑人)之间相互沟通时一般使用的是视觉语言,例如手语(Sign language),即表意者按照哑语标准(例如2019年10月中国实施的《国家通用手语词典》)做出各种各样的肢体动作,主要是手势动作,通过肢体动作的变化模拟形象或者音节以输出欲表达的思想,接收者通过眼睛观察表意者的肢体动作变化并将捕获到的肢体动作图像传输至大脑提取其表达的思想,从而实现表意者将欲表达的思想传递至接收者。也即,接收者是通过视觉感知表意者所传达的思想,相互之间交流的媒介是自然语言文本对应的肢体动作。
伴随着计算机科学技术的进步,三维计算机动画(3D computer animation)也应运而生,三维计算机动画(也称为模型动画)是通过计算机模拟三维空间中的场景及形体随时间变化的技术。具体而言,利用计算机构造三维形体的模型,并通过对模型、虚拟摄像机、虚拟光源运动的控制描述,由计算机自动产生一系列具有真实感的连续动态图像。随着模型动画在各种不同场景中的应用,工商业界开始利用模型动画技术生成手语动画,即利用虚拟人体模型制作手语动画,以为聋哑人提供更好的服务。例如,利用虚拟人体模型动画为电影制作手语动画,以便聋哑人观看电影。
在自然语言中词语组合成语句,语句组合成段落,段落组合成篇章。手语与之类似,其最小粒度是手语词,手语词组合成手语句,手语句组合成手语段落,手语段落组合成手语篇章。在制作手语动画时,通常会预先基于哑语标准(例如2019年10月中国实施的《国家通用手语词典》)制作各个手语词对应的手语词动画,然后再按照欲制作的手语动画的语义,将欲制作的手语动画所需的手语词动画按照欲制作的手语动画的语义的顺序进行连接。在需要按序连接的前后两个手语词动画之间需要生成过渡帧,过渡帧对前后两个手语词动画起到承上启下的作用,因此,过渡帧的质量直接关系到前后两个手语词动画的拼接效果的优良评价。
传统的过渡帧的生成方法主要有以下两种:基于光流的方法和距离损失确定法。
基于光流的方法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。因此,基于光流的方法是先选择过渡帧的插入位置,然后采用插值的方式在确定的插入位置处插入过渡帧序列。基于光流法生成过渡帧的方法主要存在以下两个缺点:第一、由于是基于图像序列来计算过渡帧,计算数据量较大,生成过渡帧的速度较慢,导致时间成本开销较大;其原因在于在选择过渡帧的插入位置时需要对前后两段手语词动画中的各帧动画逐一对比才能确定,使得过渡帧的生成速度较慢,而且对比次数和前后两段手语词动画的帧数的乘积成正比。第二,生成的过渡帧的质量较差,主要表现为生成的过渡帧存在重影、切换过程突兀、动作前后速度不一致、手势部分变形严重等缺点;其原因在于在插值计算时不区分像素是否属于虚拟人体模型的一部分,而是每个像素同等对待,并且在拼接过程中不考虑虚拟人体模型的肢体动作的速度以及前后肢体动作的相关性,因此生成的过渡帧质量较差,导致无法正确表示出手语动作。
距离损失确定法一般是利用虚拟人体模型的骨骼数据寻找过渡帧的插入位置。具体而言,一般是通过计算骨骼间的距离损失来评估动画帧之间的差异性,基于差异性确定插入位置,然后采用线性插值或球形插值的方式在插入位置处插入过渡帧序列。基于距离损失确定法生成的过渡帧一般也存在以上两个缺点:第一、生成过渡帧的速度较慢,导致时间成本开销较大;其原因在于在选择过渡帧的插入位置时比较固定死板,需要确定每帧动画中的虚拟人体模型的骨骼坐标,然后再基于每帧动画中的骨骼坐标确定骨骼间的距离损失,导致过渡帧的插入位置选择时间较长。第二,生成的过渡帧的质量较差;其原因在于确定过渡帧位置的方式仅考虑距离,插值时再叠加上插值手段的缺陷(参见前文所述),进而导致生成的过渡帧柔性较差,平滑效果比较直接,也使得生成的过渡帧与前后手语词动画的连接显得不太自然,丧失了连贯性。
发明内容
因此,本发明的目的在于提供一种动画生成方法、装置、电子设备、存储介质、芯片和计算机程序产品,能够在一定程度上提高手语动画的生成效率和提高生成的手语动画中的手语词动画之间的过渡帧的质量。
根据本发明实施例的第一方面,提供一种手语动画生成方法,该方法包括以下步骤:从预置的手语词库中获取目标手语词的动作姿态序列,所述目标手语词是待生成手语所需的手语词,所述动作姿态序列的每一帧至少指示虚拟人体模型的上肢姿态;按照预定的拼接方式将所有目标手语词所对应的动作姿态序列按照所述待生成手语的语义的顺序进行拼接,得到目标动作姿态序列,其中,所述预定的拼接方式中利用经训练的神经网络对待拼接的两个目标手语词对应的动作姿态序列的连接进行平滑过渡处理;根据所述目标动作姿态序列,驱动所述虚拟人体模型的姿态进行变换,生成目标手语动画。
根据本发明实施例的第二方面,提供一种手语动画生成装置,该装置包括:第一获取模块,用于从预置的手语词库中获取目标手语词的动作姿态序列,所述目标手语词是待生成手语所需的手语词,所述动作姿态序列的每一帧至少指示虚拟人体模型的上肢姿态;第一拼接模块,用于按照预定的拼接方式将所有目标手语词所对应的动作姿态序列按照所述待生成手语的语义的顺序进行拼接,得到目标动作姿态序列,其中,所述预定的拼接方式中利用经训练的神经网络对待拼接的两个目标手语词对应的动作姿态序列的连接进行平滑过渡处理;第一驱动模块,用于根据所述目标动作姿态序列,驱动所述虚拟人体模型的姿态进行变换,生成目标手语动画。
根据本发明实施例的第三方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序可被处理器执行以实现如第一方面所述的手语动画生成方法的步骤。
本申请实施例的第四方面提供了一种电子设备,该电子设备包括一个或多个处理器和存储装置,该存储装置存储可在所述处理器上运行的一个或多个计算机程序,该一个或多个计算机程序可被所述一个或多个处理器执行以使该电子设备实现如第一方面所述的手语动画生成方法的步骤。
在本申请实施例中,使用经训练的神经网络拼接待生成手语动画所需的所有目标手语词中需要按序拼接的两个手语词对应的动作姿态序列,得到目标动作姿态序列,并基于得到的目标动作姿态序列驱动虚拟人体模型的姿态进行变换,从而生成目标手语动画。不仅使得生成的手语动画中的相邻的两个手语词动画之间的过渡帧的质量更高,即相邻的两个手语词动画之间过渡更加连贯自然、柔顺,而且提高了手语动画的生成效率,满足了实时性要求。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为本申请实施例提供的手语动画生成方法的流程图;
图2为本申请实施例提供的用于拼接处的平滑过渡处理的神经网络的结构示意图;
图3为本申请实施例提供的第一神经网络的结构示意图;
图4为本申请实施例提供的第一神经网络中的循环门控单元的结构示意图;
图5为本申请实施例提供的第一神经网络中的第一注意力机制层的结构示意图;
图6为本申请实施例提供的第二神经网络的结构示意图;
图7为本申请实施例提供的动画生成方法中的部分步骤的流程图;
图8为示意性的示出了几种不同的拼接方式的效果;
图9为本申请实施例提供的对图2中所示的神经网络选择不同的选择参数作为第二神经网络中的序列选择层的选择参数进行训练后的图2所示的神经网络总体精确度;
图10为本申请实施例提供的动画生成装置的结构示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解,“第一”、“第二”等术语在适当情况下位置可以互换,同样能够实现区分类似对象的效果,,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示其所连接对象中的至少一个(即单个对象或者所连接对象的组合),字符“/”,一般表示前后关联对象是一种“或”的关系。在本申请说明书中,在无特别说明的情况下,以粗体表示向量,例如向量
如在背景技术部分提到的,现有技术的手语词拼接存在生成过渡帧的速度较慢、生成的过渡帧的质量较差的缺点。本申请发明人考虑到上述相关技术的缺点,对机器学习和深度学习技术在手语动画制作上应用进行了深入研究。本申请发明人发现可以利用在语义上连续的手语句动画(和/或手语词动画)作为原始数据,进行处理后输入神经网络进行训练,基于经训练的神经网络用于辅助手语动画制作,不仅能使制作的手语动画中的手语词动画之间的过渡帧的质量更高,且效率高于距离损失确定法。
因此,本申请实施例提供了一种手语动画生成方法。在该手语动画生成方法中,使用经训练的神经网络拼接待生成手语动画所需的目标手语词中所有需要按序拼接的两个手语词对应的动作姿态序列,得到目标动作姿态序列,并基于得到的目标动作姿态序列驱动虚拟人体模型的姿态进行变换,从而生成目标手语动画。不仅使得生成的手语动画中的相邻的两个手语词动画之间的过渡帧的质量更高,即相邻的两个手语词动画之间过渡更加连贯自然、柔顺,而且提高了手语动画的生成效率,满足了实时性要求。
为了便于理解,下面先对本申请实施例涉及的部分关键词进行解释,在无特别说明的情况下,后文中出现相同的关键词时,其表示的含义均与此处的解释相同。
手语,是指使用手势动作来表达信息的语言形式。根据手语所表达的信息的长短,可分为手语词、手语句、手语段落、手语篇章等。其中,手语句由多个手语词根据句子的语义按照时序拼接而成,手语段落或手语篇章是由多个手语句根据手语段落或手语篇章的语义按照时序排列而成。
手语词,是指通过一系列按时序连续排列的姿态表示一个词义的肢体动作,该肢体动作主要是上肢动作(具体可以参见各种手语标准,例如2019年10月中国实施的《国家通用手语词典》)。手语词是手语的最小单元。
手语句,是多个手语词形成的句子。换言之,手语句是按所需表达的语义将多个手语词按序组合形成的句子。即手语句是将一系列手语词的肢体动作按时序排列以表示一个句子的语义的肢体动作组合,该肢体动作组合是一个个手语词对应的肢体动作按照句子的语义顺序进行连接而成。
手语词的动作姿态序列,是一个用数学的方式表示的序列,该序列中的一个元素(或者称一个姿态帧或姿态单元)指示构成该手语词的肢体动作中的一个姿态,该序列中的姿态帧按照手语词中的肢体动作的排列时序进行排列。该序列中的姿态可以是驱动虚拟人体模型(可以是类似真人的形象、卡通形象或者其他任何能通过肢体表示手语的对象)做出的(手语词对应的)手势动作中的一个姿态的姿态控制数据。姿态控制数据可以是虚拟人体模型的骨骼旋转坐标(一些文献也称关节点的角度、关节角度),或者是虚拟人体模型的关节点在空间中的位置坐标,当然,也可能有其他表示形式,比如用蒙皮顶点坐标表示或虚拟人体模型的骨骼旋转坐标和蒙皮顶点坐标共同表示等。应当说明的是,前述的姿态表示方式只是示意,并不排除还可以通过其他的方式表示。
手语词动画,是按照手语词的动作姿态序列的排列时序,驱动虚拟人体模型变换姿态做出相应的肢体动作而得到的动画。
手语句动画,是按照手语句对应的动作姿态序列的排列时序,驱动虚拟人体模型变换姿态做出对应的肢体动作而得到的动画。
手语动画,即可以是按照手语句、手语段落或手语篇章(或者称手语文章)的语义对应的动作姿态序列的排列时序,驱动虚拟人体模型变换姿态做出所述语义对应的肢体动作而得到的动画。
下面结合附图,通过示例性的实施例及其示例性的应用场景对本申请实施例提供的一种手语动画生成方法、手语动画生成装置、电子设备、存储介质、芯片和计算机程序产品进行详细地说明。
如图1所示,示出了本申请实施例提供的手语动画生成方法的流程图。所述手语动画生成方法可以应用于电子设备,所述电子设备可以是计算机、智能手机、平板电脑、可穿戴式设备(如智能手表等)等设备,也可以是分布式系统的服务器、云服务器、带人工智能技术的智能云服务器或智能云主机等服务器。当然,也不排除可以应用于多个相互之间基于通信原理进行交互的电子设备之间(请参见后文中对步骤S101的说明,例如,在一些可选的实施方式中,就步骤S101而言,可以是在多个电子设备基于通信原理进行交互的情况下实现的。)。请参见图1,所述手语动画生成方法包括以下步骤S101至步骤S103:
步骤S101:从预置的手语词库中获取目标手语词的动作姿态序列。
根据本发明的一个实施例,手语词库是一个数据库,该数据库可以部署在预先确定的存储介质或设备中。该部署手语词库的存储介质或设备可以是执行该手语动画生成方法的电子设备,当需要获取目标手语词的动作姿态序列时,直接从本地调取即可。该部署手语词库的存储介质或设备也可以是独立于执行该手语动画生成方法的电子设备之外而单独部署的存储介质或设备,当需要获取目标手语词的动作姿态序列时,执行该手语动画生成方法的电子设备基于通信原理访问部署该手语词库的存储介质或设备,并从部署该手语词库的存储介质或设备中获取目标手语词的动作姿态序列。
在该手语词库中存储有可被计算机读取的手语词文件(例如可以是手语词动画、对人类即时比划的手语词进行拍照或录制的手语词图像或手语词录像)和/或手语词动画对应的动作姿态序列,手语词文件是预先基于手语标准制作的各个手语词对应的电子数据文件。在本申请实施例中,手语(词)动画是骨骼动画。当然,也不排除手语(词)动画可以是其他形式的计算机三维模型动画,例如并不排除手语(词)动画也可以是顶点动画或蒙皮动画。
手语词的动作姿态序列请参见前文的解释,动作姿态序列的每一帧至少指示虚拟人体模型的上肢姿态,动作姿态序列中的一帧指的是该动作姿态序列中的一个姿态单元(对应于元素、姿态帧)。
以手语词动画承载手语词为例,手语词动画对应的动作姿态序列,是指手语词动画中的每帧动画中的虚拟人体模型的姿态按照动画帧的时序进行排列所组成的姿态序列,一个手语词动画对应的姿态序列是虚拟人体模型针对该手语词需要按时序做出的一系列肢体动作的数学表示。
一个手语词的手语词动画和该手语词的动作姿态序列之间可以相互转换。一方面,可以从手语词动画中提取该手语词对应的虚拟人体模型的动作姿态序列(例如可以用虚拟人体模型的关节点的空间位置坐标表示动作姿态序列中的每帧姿态)。另一方面,也可以基于该手语词对应的动作姿态序列驱动虚拟人体模型的姿态进行变换,从而生成该手语词对应的手语词动画。
例如,存在一个手语词对应的手语词动画(将该手语词对应的手语词动画记作P)为P=[P1,P2...PN],该手语词动画包括N帧动画,以及该手语词对应的动作姿态序列(将该手语词对应的动作姿态序列记作P)为P=[P1,P2...PN],示意性地,其中,动画帧PN是该手语词动画P中的第N帧动画帧,姿态PN为该手语词的动作姿态序列P中的第N帧姿态。其中,N∈N*,N*表示正整数集。符号“[...]”表示序列,其中的元素按照一定的顺序进行排列。手语词动画P和动作姿态序列P之间可以按照前述的转换方式相互进行“转换”。
而手语录像同手语动画一样,均是由一帧一帧的视频帧按时序排列而成,因此以手语录像承载手语词时,与手语动画类似,也可以从手语录像中提取出手语词的动作姿态序列。手语动画和手语录像中每帧均是图像,在从手语动画和手语录像中提取动作姿态序列时,实际上是对手语动画或手语录像中每帧图像进行人体(或人体模型)识别和手势动作识别。同理,以手语词图像承载手语词时,也可以从手语图像中提取出动作姿态序列。
特别说明,待生成手语是指待生成的手语动画。针对待生成手语,需要根据待生成手语的语义获取通过词义组合能够完整表示待生成手语的语义的手语词的动作姿态序列,即目标手语词的动作姿态序列,也即目标手语词是待生成手语所需的手语词。按照待生成手语的语义,将目标手语词的动作姿态序列按序进行拼接可得到待生成手语的动作姿态序列。在本申请实施例中,是按照动作姿态序列驱动虚拟人体模型变换姿态从而生成手语动画,因此,需要从预置的手语词库中获取目标手语词的动作姿态序列,以便后序用于拼接成待生成手语对应的动作姿态序列(即目标动作姿态序列)。
例如,待生成的手语动画表示的语义是“今天天气好”,对“今天天气好”这句文本进行词语划分,可以得到“今天”、“天气”和“好”三个词语,那么需要从预置的手语词库中获取能够表示“今天”、“天气”和“好”三个词义的手语词各自所对应的动作姿态序列。
在一些实施例中,在预置的手语词库中存储有手语词的动作姿态序列的情况下,直接从手语词库中获取目标手语词的动作姿态序列即可。
步骤S102:按照预定的拼接方式将所有目标手语词所对应的动作姿态序列按照所述待生成手语的语义的顺序进行拼接,得到目标动作姿态序列。其中,所述预定的拼接方式中利用经训练的神经网络对待拼接的两个目标手语词对应的动作姿态序列的连接进行平滑过渡处理。
待生成手语可以是手语句、手语段落或手语篇章。同自然语言文本一样,手语句也是由一个个手语词按序连接而成,手语句再组成手语段落,手语段落再组成手语篇章。当待生成的手语是手语篇章动画或手语段落动画时,在从手语词库中获取到目标手语词的动作姿态序列后,需要按照待生成手语的语义,将获取到目标手语词的动作姿态序列按序“组装”成手语句(动画)对应的动作姿态序列,再将手语句(动画)对应的动作姿态序列按序排列成手语篇章(动画)或手语段落(动画)对应的动作姿态序列。即,需要按照待生成手语动画中的手语句的语义,先将目标手语词的动作姿态序列按序进行连接(或拼接)手语句(动画)的动作姿态序列,在将一个个手语句(动画)的动作姿态序列组装成手语段落(动画)或手语篇章(动画)的动作姿态序列。
需要说明的是,在后文中将主要以生成表示语义为“今天天气好”的手语句动画为例进行说明,尤其是主要以词义为“今天”和“天气”的两个手语词的连接为例进行说明,本领域技术人员基于本申请实施例的说明,能够直接地、毫无疑义地知晓手语篇章动画或手语段落动画的生成方式。例如,针对语义为“今天天气好,咱们去玩儿”的手语,按照本申请实施例所提供的手语动画生成方法,本领域技术人员基于本申请实施例的说明,能够直接地、毫无疑义地知晓需要获取词义分别为“今天”、“天气”、“好”、“咱们”、“去”、“玩儿”的六个手语词(动画)各自对应的动作姿态序列,然后将词义分别为“今天”、“天气”、“好”的三个手语词(动画)各自对应的动作姿态序列拼接为一个动作姿态序列,将词义分别为“咱们”、“去”、“玩儿”的三个手语词(动画)各自对应的动作姿态序列拼接为一个动作姿态序列,然后基于这两个动作姿态序列生成两个语义分别为“今天天气好”和“咱们去玩儿”的手语句动画,再将这两个手语句动画按照语义排列为一个手语动画,以表示“今天天气好,咱们去玩儿”的语义。当然,也可以是将语义分别为“今天天气好”和“咱们去玩儿”的两个动作姿态序列拼接为一个动作姿态序列后,直接基于该拼接后的动作姿态驱动虚拟人体模型的姿态进行变换,从而生成语义为“今天天气好,咱们去玩儿”的手语动画。
还需要补充说明的是,获取的目标手语词的动作姿态序列是可以复用的。例如,待生成手语的语义表示的是甲乙两人的对话:“甲说‘今天天气好’,乙回答:‘是的,今天天气是挺好的’”,针对该待生成手语获取目标手语词的动作姿态序列时,针对词义为“今天”和“天气”的两个手语词,并不需要获取两次词义为“今天”和“天气”的手语词的动作姿态序列,在从手语词库中获取到了目标手语词的动作姿态序列后,可以将其存储在缓存区,在需要复用手语词的动作姿态序列时,可以直接从缓冲区获取即可,而不需要再从手语词库中调取。从而相对减少获取目标手语词的动作姿态序列的时间,提高手语动画生成的效率。
例如,在获取到表示“今天”、“天气”和“好”三个词义的手语词(依次分别记作手语词I、手语词II和手语词III)各自所对应的动作姿态序列,即获取到手语词I(其语义表示“今天”)的动作姿态序列:P=[P1,P2...PN]、手语词II(其语义表示“天气”)的动作姿态序列:Q=[Q1,Q2...QM]、手语词III(其语义表示“好”)的动作姿态序列:S=[S1,S2...SZ],其中,手语词I的动作姿态序列共N帧,手语词II的动作姿态序列共M帧,手语词III动作姿态序列共Z帧,其中N、M、Z均为正整数示意性的,PN表示手语词I的动作姿态序列中的第N个元素,QM表示手语词II的动作姿态序列中的第M个元素,SZ表示手语词III的动作姿态序列中的第Z个元素,其余元素的含义类似,此处不作赘述。需要按照“今天天气好”的语义的顺序,即按照“I II III”的顺序,也即按照P、Q、S的顺序,将动作姿态序列:[P1,P2...PN]和[Q1,Q2...QM]、[Q1,Q2...QM]和[S1,S2...SZ]依次进行拼接。
在对目标手语词的动作姿态序列进行拼接以组装成手语句对应的动作姿态序列时,需要对两个按序拼接的手语词对应的动作姿态序列的拼接处进行平滑处理。
例如,在将动作姿态序列P和Q进行拼接时,需要对动画帧PN和Q1之间的连接处进行平滑处理,该平滑处理包括但不限于:删除动作姿态序列P和Q中靠近动画帧PN和Q1的部分动作姿态序列,和/或,生成过渡动作姿态序列并将生成的过渡动作姿态序列插入至动作姿态序列P和Q连接处。示例性地,对动画帧PN和Q1之间的连接处进行平滑处理是删除动作姿态序列P中第I帧之后的动画帧和删除动作姿态序列Q中第J帧之前的动画帧,并在连接处插入K帧过渡动作姿态序列F=[F1,F2...FK],其中I、J、K均为正整数,且I<N,J<M。从而得到动作姿态序列YP+Q=[P1,P2...PI,F1,F2...FK,QJ+1,QJ+2...QM]。以相同的方式,将动作姿态序列Q和S进行拼接,得到动作姿态序列YQ+S=[Q1,Q2...QA,E1,E2...EB,SD+1,SD+2...SZ],其中,姿态动作序列E=[E1,E2...EB]是动作姿态序列Q和S之间的过渡动作姿态序列,其中A、B、D均为正整数,且J<A<M,D<Z。再将动作姿态序列YP+Q和YQ+S进行拼接,得到表示“今天天气好”的待生成手语的目标动作姿态序列YP+Q+S=[P1,P2...PI,F1,F2...FK,QJ+1,QJ+2...QA,E1,E2...EB,SD+1,SD+2...SZ]。
在本申请实施例中,是利用经训练的神经网络对待拼接的两个目标手语词对应的动作姿态序列的连接进行平滑过渡处理。该经训练的神经网络可以是能够处理序列到序列任务的神经网络,例如可以是Lstm网络、GRU神经网络、ConS2S网络或Transformer网络等神经网络中的一种或多种的合并。当然,也可以为了与本申请实施例所使用的序列数据相适配,对前述的一种或多种序列到序列的神经网络作出一定的改进或选择后,再利用改进或选择后一种或多种神经网络的合并进行平滑过渡处理。示例性地,在一些可选的实施方式中,可以采用后文中图2至图7所示的实施例所描述的神经网络进行平滑过渡处理。
本申请的发明人在对机器学习和深度学习技术在手语动画制作上应用进行深入研究的基础上,针对序列到序列的神经网络(例如LSTM神经网络、GRU神经网络、ConS2S神经网络、Transformer神经网络)在手语动画生成上的应用进行了大量研究和试验,提出了如图2所示的用于拼接处的平滑过渡处理的神经网络。
如图2所示,示出了本申请实施例提供的用于拼接处的平滑过渡处理的神经网络的结构示意图。请参见图2,该用于拼接处的平滑过渡处理的神经网络包括:第一神经网络21(也可称为目标位置选择模块,拼接位置搜索网络,Splicing Position SearchNetwork,SPSN)、第二神经网络22(也可称为过渡动作姿态序列生成模块,过渡帧生成网络,Transition Frames Generation Network,TFGN)和过滤拼接层23(也可称为过滤拼接模块,Filter Layer)。第一神经网络21和第神经网络22均可以是序列到序列的神经网络模型。
为了便于理解,在对本申请实施例所提出的神经网络进行展开说明之前,仍然以前述示例的“今天天气好”这个例子为例,说明本申请实施例提出的用于拼接处的平滑过渡处理的神经网络的一个示例性的应用场景。下面以利用图2所示的用于拼接处的平滑过渡处理的神经网络拼接词义分别为“今天”和“天气”的两个手语词(动画)的动作姿态序列为例,先进行概述性的说明。
在获取到词义分别为“今天”和“天气”对应的手语词I和手语词II各自所对应的动作姿态序列P=[P1,P2...PN]和Q=[Q1,Q2...QM]之后,需要按照词义为“今天”的手语词I对应的动作姿态序列P=[P1,P2...PN]在前和词义为“天气”的手语词II对应的动作姿态序列Q=[Q1,Q2...QM]在后的顺序进行拼接。
在进行拼接时,需要先将动作姿态序列P和动作姿态序列Q合成为一个动作姿态序列X=[P1,P2...PN,Q1,Q2...QM],以动作姿态序列X作为图2所示的用于拼接处的平滑过渡处理的神经网络的输入。为了便于后序对图2所示的用于拼接处的平滑过渡处理的神经网络进行解释(尤其是其内部的处理过程的解释),将动作姿态序列X=[P1,P2...PN,Q1,Q2...QM]等价表示为第一动作姿态序列X=[X1,X2...Xt...XN,XN+1,XN+2...XN+M],其中t表示时间步,t为正整数,t的最大值为N+M。其中,姿态序列[X1,X2...Xt...XN]等同于姿态序列P=[P1,P2...PN],姿态序列[XN+1,XN+2...XN+M]等同于姿态序列=[Q1,Q2...QM]。
将动作姿态序列X输入图2所示用于拼接处的平滑过渡处理的神经网络进行处理的大致过程为:
第一神经网络21接收第一动作姿态序列X进行处理,输出目标位置(preIndex,postIndex)。目标位置是第一神经网络21预测的第一动作姿态序列中待被替换帧的位置。其中,preIndex表示目标起始位置,postIndex表示目标结束位置。
第二神经网络22接收第一动作姿态序列X和目标位置(preIndex,postIndex)进行处理,输出过渡动作姿态序列F=[F1,F2...FK]。
过滤拼接层23接收目标位置(preIndex,postIndex)、过渡动作姿态序列F和第一动作姿态序列X,用过渡动作姿态序列F替换第一动作姿态序列X中位于目标位置(preIndex,postIndex)处的动作姿态序列,完成在词义分别为“今天”和“天气”对应的手语词I和手语词II的前后两个目标手语词的动作姿态序列的拼接,得到过滤拼接层23输出的动作姿态序列YP+Q=[P1,P2...PI,F1,F2...FK,QJ+1,QJ+2...QM]。
词义分别为“天气”和“好”对应的手语词II和手语词III的动作姿态序列的拼接方式与之相似,在此不再赘述。在将序列[Q1,Q2...QM,S1,S2...SZ]输入图2所示的用于拼接处的平滑过渡处理的神经网络后得到过滤拼接层23输出的动作姿态序列YQ+S=[Q1,Q2...QA,E1,E2...EB,SD+1,SD+2...SZ]
在此基础上,下面以一些示意性实施例分别对第一神经网络21、第二神经网络22和过滤拼接层23进行展开说明。
如图3所示,示出了本申请实施例提供的用于拼接处的平滑过渡处理的神经网络中第一神经网络的结构示意图。请参见图3,第一神经网络21,包括:第一编码器211(encoder layer)、第一解码器212(decoder layer)、第一注意力机制层213(attentionlayer)、第一预测层214和第一输出层215。在一些可选的实施方式中,第一编码器211和第一解码器212均包括至少一个LSTM单元,一个LSTM单元即一个循环门控单元。下面以带注意力机制的LSTM网络作为第一神经网络211时的示意性实施例进行展开说明:
第一编码器211用于分时间步对第一动作姿态序列的每帧进行编码处理,得到第一编码器在相应时间步输出的隐藏状态。
第一编码器211在一个时间步对第一动作姿态序列中对应时间步的姿态帧进行编码处理,得到该时间步输出的隐藏状态和细胞状态。
例如,第一编码器211可以对第一动作姿态序列X中的每帧姿态分时间步进行编码处理。具体而言,在编码的时间步t时,对第一动作姿态序列X中的第t帧姿态Xt进行编码处理,得到时间步t输出的隐藏状态和细胞状态直至在编码的最后一个时间步tN+M对第一动作姿态序列X中的第N+M帧姿态XN+M进行编码处理,得到隐藏状态和细胞状态
如图4所示,示出了本申请实施例提供的用于拼接处的平滑过渡处理的神经网络中的循环门控单元的结构示意图。请参见图4,在第一编码器211中,循环门控单元的输入包括:上一时间步得到的细胞状态(或也称作记忆状态)Ct-1(在图3中所展开的示意图中的两个循环门控单元之间记忆状态的传递以呈上抛物线状且相对较细的箭头所示)、上一时间步得到的隐藏状态Ht-1(在图3中所展开的示意图中的两个循环门控单元之间隐藏状态的传递以及循环门控单元与第一注意力机制层213之间的传递以相对较粗的箭头所示)以及当前时间步输入的动作姿态序列中的一帧姿态Xt。
其中,在第一编码器211中的循环门控单元中有遗忘门、输入门以及输出门三个门控循环单元。循环门控单元在时间步t对第t帧姿态Xt进行编码处理的数学表达如式(1)-(6)所示,其中It是输入门的输出,Ft是遗忘门的输出,Ot是输出门的输出,Wxi、Wxf、Wxo和Whi、Whf、Who是权重参数,bi、bf、bo是偏置参数,σ是sigmoid激活函数。
It=σ(XtWxi+Ht-1Whi+bi) (1)
Ft=σ(XtWxf+Ht-1Whf+bf) (2)
Ot=σ(XtWxo+Ht-1Who+bo) (3)
每个循环门控单元的输出包括当前时间步t对应的细胞状态Ct和隐藏状态Ht,其数学表达式如公式(4)-(6)所示,其中为候选状态,Ct由Ft、Ct-1、It和共同决定,tanh是指双曲正切函数,⊙是点乘运算。
第一解码器212用于分时间步基于第一编码器最后一个时间步输出的隐藏状态针对所述第一动作姿态序列的每帧进行解码处理,得到第一解码器在相应时间步输出的隐藏状态。
第一解码器212在解码的过程中,基于第一编码器最后一个时间步输出的隐藏状态在一个时间步针对第一动作姿态序列中对应时间步的姿态帧进行解码处理(注意:此处并不是指将第一动作姿态序列中姿态帧输入解码器进行解码,“针对第一动作姿态序列中对应时间步的姿态帧进行解码”是指当前时间步的解码是相当于对第一动作姿态序列中与当前解码时间步“对齐”的时间步处的解码,例如,第一解码器212在时间步t的解码,相当于是对第一动作姿态序列姿态Xt的时间步t处的解码),得到该时间步输出的隐藏状态和细胞状态。
例如,第一编码器211在编码的最后一个时间步tN+M输出的隐藏状态和细胞状态会传递至第一解码器212中进行解码。第一解码器212在接收到隐藏状态和细胞状态后开始解码。解码的第一个时间步t1的输入包括:隐藏状态细胞状态和起始标志向量(如图3中start所示),进行解码得到隐藏状态细胞状态第一解码器212在解码的时间步t(除第一个时间步t1之外的其他时间步)输入的数据包括:第一注意力机制层输出的Yt-1、第一解码器212在上一时间步输出的记忆状态第一解码器212在上一时间步输出的隐藏状态第一解码器解码直至时间步tN+M结束(如图3中的Stop所示)。
第一解码器212和第一编码器211的结构类似,区别在于第一解码器212(在除第一个时间步t1之外的其他时间步)会将时间步t-1时第一注意力机制层213的输出作为时间步t的输入。第一解码器212中循环门控单元中的计算公式如公式(7)-(12)所示:
It=σ(YtWxi+Ht-1Whi+bi) (7)
Ft=σ(YtWxf+Ht-1Whf+bf) (8)
Ot=σ(YtWxo+Ht-1Who+bo) (9)
若序列到序列的神经网络中只有编码器和解码器。编码器会把输入的序列编码成一个内容单元后直接传递给解码器,但是该内容单元通常是用向量表示的,向量的维度是有限的,难免会丢失输入序列中的某些信息,导致解码器进行解码所依赖的基础数据本身就是有缺陷的,进而导致神经网络的预测精度较低。为了降低这种现象导致的神经网络的预测精度较低,本申请实施例中在序列到序列的神经网络中引入了注意力机制,在图2或图3中以第一注意力机制层213示出,该注意力机制基于第一解码器212解码过程中在时间步t产生的隐藏状态对第一编码器211编码过程中产生的隐藏状态H(e)确定第一注意力特征值。在预测时,基于第一注意力特征值对第一解码器212在时间步t输出的隐藏状态进行拼接,得到通过注意力机制“选择”的隐藏状态并基于得到的隐状态进行预测,以提高神经网络的预测精度。其中,下面对第一注意力机制层213进行说明:
如图5所示,示出了本申请实施例提供的用于拼接处的平滑过渡处理的神经网络中的第一注意力机制层的结构示意图。请结合参见图3和图5,第一注意力机制层213,用于确定第一注意力特征值。在一些可选的实施方式中,第一注意力特征值Gt是第一注意力机制层213利用第一编码器211在每个时间步输出的隐藏状态H(e)相对第一解码器212在当前时间步输出的隐藏状态的注意力值at对第一编码器211每个时间步输出的隐藏状态H(e)进行加权求和得到的。
例如,仍然以上述第一动作姿态序列X为例,确定第一注意力特征值Gt的数学运算如下公式(13)-(16)所示。
Gt=atH(e) (16)
其中,score为打分函数,exp为以自然常数e为底的指数函数,为转置运算符,Wa为权重矩阵。首先在公式(13)和(14)中会计算第一解码器212在时间步t产生的隐藏状态对于第一编码器211在(“对齐”)时间步t产生的隐藏状态的注意力值at(即,第一注意力机制层213首先确定第一编码器211在每个时间步输出的隐藏状态H(e)相对第一解码器212在当前时间步t输出的隐藏状态的注意力值at),然后在公式(15)和(16)中会利用注意力值at和第一编码器211每个时间步输出的隐藏状态H(e)进行加权求和,得到第一注意力特征值Gt(即第一注意力机制层213再将注意力值at和第一编码器211每个时间步输出的隐藏状态H(e)进行加权求和)。
第一预测层214在每个时间步利用所述第一解码器输出的隐藏状态和所述第一注意力机制层确定的第一注意力特征值进行预测,得到指示每个时间步的目标位置的概率分布矩阵,并根据每个时间步的目标位置的概率分布矩阵中的每列最大值,确定每个时间步的候选值。
请结合参见图3和图5,例如,仍然以上述的第一动作姿态序列X为输入为例,第一预测层214在时间步t时进行预测时,先将第一注意力特征值Gt与第一解码器212在时间步t产生的隐藏状态进行拼接(即图5中所述的concat操作,concat是一个函数,通常用于连接两个或多个数组),形成隐藏状态计算过程如公式(17)所示。然后,对隐藏状态进行线性变换,并利用softMax求出概率分布矩阵Yt′,计算过程如公式(18)所示,概率分布矩阵Yt′指示时间步t预测的第一动作姿态序列X中的每一帧所在的位置是目标位置的置信度。接着,确定概率分布矩阵Yt′中所有列中每一列中的最大值max,并从Yt′中取出每一列中的最大值max作为一个元素,并按照其在Yt′中所在列的前后顺序进行排列成一行,组成新的矩阵Yt,即得到时间步t预测的候选值Yt,计算过程如公式(19)所示。
Yt=argMax(Yt′) (19)
请继续参见图3,第一输出层215用于根据每个时间步的候选值和预设的目标位置的标志向量,确定目标位置。
在一些可选的实施方式中,目标位置的标志向量包括预设的起始标志向量和预设的结束标志向量,第一输出层215在根据每个时间步的候选值和预设的目标位置的标志向量,确定目标位置时,是通过以下步骤实现的:确定每个时间步的候选值分别与预设的起始标志向量之间的第一距离和与预设的结束标志向量之间的第二距离,将第一距离最小的第一候选值和第二距离最小的第二候选值确定为目标位置的坐标值。
示例性地,仍然延续上述的第一动作姿态序列X为输入为例。在得到第一预测层在时间步t1至时间步tN+M输出的所有候选值{Y1、Y2...Yt...YN+M}后,确定所有候选值{Y1、Y2...Yt...YN+M}中的每个候选值Yt与预设的起始标志向量preIndexFlag之间的第一距离和与预设的结束标志向量postIndexFlag之间的第二距离,将第一距离最小的第一候选值和第二距离最小的第二候选值分别确定为目标位置的坐标值,即将第一距离最小的第一候选值确定为目标起始位置,将第二距离最小的第二候选值确定为目标结束位置,计算过程如公式(20)-(21)所示。
preIndex=mint||Yt-preIndexFlag||2 (20)
postIndex=mint||Yt-postIndexFlag||2 (21)
在一些可选的实施方式中,在第一输出层215中会在确定了用候选值表示的目标位置后,将其转换为其在第一动作姿态序列X中的帧位置。例如,在确定出在时间步tm预测的候选值和在时间步tn预测的候选值分别为目标起始位置preIndex和目标结束位置postIndex,则将第一动作姿态序列X中时间步tm对应的姿态帧和时间步tn对应的姿态帧所在的位置第m帧和第n帧分别确定为起始目标位置和结束目标位置的坐标值。其中,m和n均为正整数,且1<m<n<N+M。
请参见图1,第一输出层215会将确定目标位置的坐标值输入至第二神经网络22和过滤拼接层23中。
虽然以上示意性实施例给出了采用带注意力机制的LSTM网络实现第一神经网络的一种方式,但是,应当理解,本领域技术人员在实施时可以采用其他的可能实施方式。比如,将上述示意性实施例LSTM网络替换为GRU网络,GRU网络的每个GRU单元替换LSTM单元,另外,GRU网络没有细胞状态,但是也存在隐藏状态,因此,也可基于上述示意性实施例的原理在GRU网络中添加第一注意力机制层,从而形成带注意力机制的GRU网络。或者,第一神经网络也可采用传统的LSTM网络、GRU网络等序列到序列的神经网络来实现。
如图6所示,示出了本申请实施例提供的用于拼接处的平滑过渡处理的神经网络中第二神经网络的结构示意图。请参见图6,第二神经网络22,包括:序列选择层221(Culling Layer)、Transformer子网络和第二输出层227。下面对图6所示的第二神经网络22进行展开说明:
序列选择层221用于对所述第一动作姿态序列执行位置选择处理,得到经选择后的第一动作姿态序列。
Transformer子网络的处理效率随着输入序列的增加而降低,为了提高Transformer子网络的处理效率,本申请实施例中在Transformer子网络之前增加了序列选择层221,序列选择层221根据接收到的来自于第一神经网络21的目标位置,对输入第二神经网络22的第一动作姿态序列进行选择,以减少输入Transformer子网络的序列的数据量,从而提高Transformer子网络处理效率。
根据本发明的一个实施例,序列选择层221对第一动作姿态序列所作的选择处理,包括:根据所述目标位置,删除所述第一姿态序列中位于所述目标位置处的姿态序列,得到选择后的第一动作姿态序列。示例性的,还是以前述的第一动作姿态序列X为输入为例。序列选择层221在接收到第一神经网络21传递的目标位置(preIndex,postIndex)和第一动作姿态序列X,删除第一动作姿态序列X中位于目标位置(preIndex,postIndex)之间的姿态帧,得到选择处理后的第一动作姿态序列Xc=[X1,X2...Xt...XpreIudex,XpostIndex...XN+M]。
根据本发明的一个实施例,在第二神经网络进行序列选择过程中,还包括以下子步骤:获取目标位置之前预设帧数的帧和位于所述目标位置之后的预设帧数的帧,组成选择后的第一动作姿态序列,所述预设帧数是从多组候选帧数中选定的能使经训练的神经网络的精确度最优的帧数。换言之,序列选择层221对第一动作姿态序列所作的选择处理,包括:根据所述目标位置和预设帧数fr(可以认为是网络的超参数),从第一动作姿态序列中截取所述目标位置前后各fr帧的姿态,得到选择后的第一动作姿态序列。fr即预设帧数,是从多组候选帧数中选定的能使第一神经网络和第二神经网络在训练后的总体精确度最优的帧数。示例性的,继续以前述的第一动作姿态序列X为输入为例。序列选择层221在接收到第一神经网络21传递的目标位置(preIndex,postIndex)和第一动作姿态序列X,从第一动作姿态序列X中截取位于目标位置(preIndex,postIndex)前后各fr帧的姿态帧,得到选择处理后的第一动作姿态序列Xc,序列Xc会被输入至Transformer子网络,序列Xc表示为Xc=[XpreIndex-fr+1,…,XpreIudex,XpreIndex,…,XpreIndex+fr-1]。该实施例的技术方案至少能够实现以下有益技术效果:该实施例通过从多组候选帧数中选定的能使经训练的神经网络的总体精确度最优的帧数来择优确定选择后的第一动作姿态序列,不仅能缩短输入序列的长度,降低数据处理量,提升拼接效率,还能提升经训练的神经网络对待拼接的两个目标手语词对应的动作姿态序列的连接进行平滑过渡处理的总体精确度,提升处理效果,使得手语动画更为平滑、流畅,提升用户体验。
Transformer子网络包括:序列嵌入层222(Embedding Layer)、位置编码层223(Position Embedding Layer)、第二编码器224(Encoder)、第二解码器225(Decoder)和线性回归层226(Linear&SoftMax Layer)。总体而言,Transformer子网络用于对所述经选择后的第一动作姿态序列执行序列嵌入、位置编码、编码、解码和线性回归处理,得到候选动作姿态序列。下面对Transformer子网络进行展开说明:
序列嵌入层222将输入数据Xc升维,升的维度大小为d,计算过程见公式(22),E为升维后的输出张量。
E=Embedding(Xc) (22)
位置编码层223首先生成位置嵌入张量,采用固定的位置编码方式,计算公式如(23)所示:
其中,pos代表数据X的第一维的位置。在位置嵌入矩阵中,偶数的位置由sin来计算,奇数的位置由cos来计算。最后将生成的位置嵌入张量与序列嵌入层输出的张量相加即为嵌入了位置信息的张量P。
过渡帧序列生成模型包括编码(Encoder)和解码(Decoder)两个部分,在编码部分将输入的数据进行编码,输出编码后的数据序列和序列掩码给解码部分。编解码部分有着相似的网络结构,本申请实施例用P(e)作为编码部分的输入,P(d)作为解码部分的输入。
第二编码器224包括多头注意力层(Multi-Head Attention)和前馈层(FeedForward)。
多头注意力(Multi-Head Attention)层由多个自注意力(Self-Attention)层合并而成。每个自注意力层首先对输入P(e)做线性变换产生三个张量Qi、Ki和Vi,其次计算Qi与的乘积,为了防止其结果过大,引入标度尺度其中dk为矩阵Ki的第二维的大小,然后进行softmax归一化,乘以Vi得到权重的求和表示headi,最后将所有headi汇聚在一起并通过一个可以学习的线性投影变换产生最后的输出Z。计算公式如(24)-(26)所示,其中是第i个自注意力层的权重矩阵,Wo是线性投影变换。
Z=MHA(Q,K,V)=[head1,…headh]·Wo (26)
前馈(Feed Forward)层提供非线性的变换,主要有三层,第一层和第三层是线性变换层,第二层是非线性激活层,激活函数是ReLu,最后经过残差连接后输出结果O,计算公式如(27)所示,其中W1、W3、b1和b3是第一层和第三层的权重参数和偏置参数。
O(e)=max(0,ZW1+b1)W3+b3+Z (27)
第二解码器225包括掩码多头注意力层、编码解码多头注意力层和前馈层。
掩码多头注意力层(Masked Multi-Head Attention)在编码部分的多头注意力层的基础上引入掩码,用来在预测某时刻的结果时消除该时刻之后的输入数据的干扰,需要在计算权重的求和表示headi时加入掩码矩阵M,计算公式如(28)所示。
编码解码多头注意力层(Encoder-Decoder Multi-Head Attention)与第二编码器224中的多头注意力层的区别仅在于输入的数据不仅来源于解码部分的信息,还来源于编码部分的输出信息,计算公式如(29)-(31)所示。
前馈(Feed Forward)层与编码部分的对应层一致,输出为O(d)。
线性和回归层226(Linear&Softmax)将O(d)输入全连接层(图中未示出)并进行softmax归一化,计算公式如(32)-(33)所示,其中WL为全连接层的权重矩阵,F′为经过softmax函数处理后的概率分布矩阵(候选动作姿态序列的概率分布矩阵),Ft表示时间步t对应的姿态帧的过渡动作姿态的预测值。
Ft′=softmax(WLO(d)) (32)
Ft=argMax(Ft′) (33)
第二输出层227,用于根据所述候选动作姿态序列与预设的指示过渡动作姿态序列的标志帧,确定过渡动作姿态序列。
在一些可选的实施方式中,所述第二输出层227用于根据所述候选动作姿态序列与预设的指示过渡动作姿态序列的标志帧,确定过渡动作姿态序列,包括:确定候选动作姿态序列中的每一候选帧与预置的起始标志帧之间的第三距离和与预置的结束标志帧之间的第四距离,将第三距离最小的第一候选帧和第四距离最小的第二候选帧之间的候选帧确定为过渡动作姿态序列。
示例性地,仍然以前述的第一动作姿态序列X为输入为例。在得到所有时间步预测的过渡动作姿态的{F1、F2...Ft...FN+M}后,计算所有时间步预测的过渡动作姿态与预置的起始标志帧YpreIndex之间的第三距离和与预置的结束标志帧YpostIndex之间的第四距离,将第三距离最小的第一候选帧和第四距离最小的第二候选帧之间的候选帧确定为过渡动作姿态序列O=(Fa,Fa+1,...,Fb)。计算过程如公式(34)-(35)所示。
a=mint||Ft-YpreIndex||2 (34)
b=mint||Ft-YpostIndex||2 (35)
过滤拼接层23用于用所述过渡动作姿态序列替换所述第一动作姿态序列中位于所述目标位置处的动作姿态序列,完成在所述前后两个目标手语词的动作姿态序列的拼接。
示例性地,仍然以前述的第一动作姿态序列X为输入为例。过滤拼接层23接收第一动作姿态序列X、目标位置(preIndex,postIndex)、过渡动作姿态序列O。过滤拼接层23用过渡动作姿态序列O替换第一动作姿态序列X中位于preIndex帧与postIndex帧之间的动作姿态,最后输出拼接完成的动作姿态序列Y,序列Y与YP+Q相同,即Y=YP+Q,也即Y=[X1,X2,…,XpreIndex,Fa,F2,...,Fb,XpostIndex,XpostIndex+1,…,XN+M]。
虽然以上示意性实施例给出了采用序列选择层的Transformer网络实现第二神经网络的一种方式,但是,应当理解,本领域技术人员在实施时可以采用其他的可能实施方式。比如,将上述示意性实施例Transformer子网络替换为ConvS2S网络或LSTM。因此,也可基于上述示意性实施例的原理在ConvS2S网络或LSTM中添加序列选择层,从而形成带序列选择层ConvS2S网络或LSTM。或者,第二神经网络也可采用传统的Transformer网络、ConvS2S网络或LSTM网络。
神经网络在投入实际预测前需要进行训练(Train),因此,在对图2所示的神经网络的结构进行了说明的基础上,接下来对图2所示的神经网络的训练进行说明。
根据本发明的一个实施例,第一神经网络21和所述第二神经网络22是通过以下步骤训练得到的:
获取训练集,所述训练集包括多个样本及每个样本对应的标签,每个样本包括需要拼接的在前手语词和在后手语词各自对应的动作姿态序列,所述标签包括用于指示对应样本中待被替换帧的位置标签以及用于指示对应样本的过渡动作姿态序列真值的过渡动作姿态序列标签。位置标签用于指示对应样本中待被替换帧的位置。
利用所述训练集对所述第一神经网络和所述第二神经网络进行多轮交替迭代训练,得到所述经训练的第一神经网络和所述经训练的第二神经网络。其中,在训练第一神经网络时,根据所有时间步的目标位置的概率分布矩阵与位置标签确定的损失求梯度并反向传播更新第一编码器、第一解码器、第一注意力机制层和第一预测层的参数。由于第一神经网络的第一输出层没有可训练的参数,因此无需更新。在训练第二神经网络时,根据候选动作姿态序列的概率分布矩阵与过渡动作姿态序列标签确定的损失求梯度并反向传播更新Transformer子网络的参数。由于第二神经网络的序列选择层和第二输出层没有可训练的参数,因此无需更新。
下面给出一个训练过程的示例,假设原始数据集有2部分组成,每个手语词A(虚拟人体模型在开始比划手语词前,上肢呈自然垂直状态置于身体两侧而手部靠近腰部,开始比划手语时,上肢尤其是手部至肘关节处从腰部抬起比划动作,一个手语词的动作比划完成后,上肢尤其是手部至肘关节处复位至呈自然状态置于身体两侧而手部靠近腰部。因此,手语词动画的初始段和结束段中一般都存在这种手臂抬起和/或落下的无用动画帧,这些动画帧并不是传递“思想”所必须的)以及由这些词组成的句子B,每个手语词A和每个句子B都对应一个完整的动态捕捉数据文件(骨骼的旋转数据),每个手语句B被分成连续的若干片段,每个片段可能是词片段C,也可能是过渡片段D,C和D交替存在,一个词C的动画片段是各个词A中的一个词的动画片段的中间部分,有起始和结束标志。在训练时,把句子B按照词间隔切断,组成C1DC2的结构,这样,C1和C2对应的A1和A2就是数据集的输入,C2的起始标志和C1的结束标志以及D就是标签。位置标签可以通过以下方式进行表示:
其中,Y是在输入模型的样本对应的位置标签,是被替换帧的位置的起始位置标签,是被替换帧的位置的结束位置标签。
第一神经网络21基于交叉熵损失的方式训练,计算公式如公式(36)所示:
其中,在每轮中基于第一预测层输出概率分布矩阵巧′与标签Y求梯度,基于梯度反向传播更新第一神经网络。应当注意,在反向传播更新时,不会更新第一神经网络21中的第一输出层215的参数,而是更新第一预测层214、第一注意力机制层213、第一解码器212和第一编码器211的参数。
过渡动作姿态序列标签可以表示为:
其中,与之间的动作姿态序列是真实过渡帧对应的姿态序列。
第二神经网络22基于交叉熵损失的方式训练,计算公式如公式(37)所示:
其中,在每轮中将Transformer子网络得到的候选动作姿态序列的概率分布矩阵Ft′与标签Y′求梯度,基于梯度反向传播更新第二神经网络22。应当注意,在反向传播更新时,不会更新第二神经网络21中的第二输出层227的参数,而是更新Transformer子网络和序列选择层221的参数。
在一些可选的实施方式中,在预先对第一神经网络21和第二神经网络22的进行训练的过程中,从预设的选择参数集{fr}中选择候选参数fr作为第二神经网络22中的序列选择层221进行选择处理的选择参数对第一神经网络21和第二神经网络22进行多组多轮训练,每组多轮训练从所述候选帧数集{fr}中选择一个尚未参与训练的候选帧数fr参与训练;
评估多组多轮训练中每组多轮训练的过程得到的第一神经网络21和第二神经网络22的总体精确度,总体精确度用于描述第一神经网络21预测的目标位置与样本的位置标签的位置误差以及第二神经网络22预测的过渡动作姿态序列与样本的过渡动作姿态序列标签的长度误差。
在一些可选的实施方式中,模型的总体精确度描述预测的手语片段Y和实际的手语片段T的整体误差。示意性的,总体精确度是通过下式计算的:
其中,t是姿态帧的编号,L是实际的手语片段长度,Tt是第t个姿态帧,Yt×K/L是过渡动作姿态序列标签中与第t个姿态帧数值最接近的标签,K是预测的手语片段长度,||Tt-Yt×K/L||是预测的姿态帧的精度,||L-K||是长度误差,λ是用于平衡预测的姿态帧的精度和长度误差的系数。
步骤S103:根据所述目标动作姿态序列,驱动所述虚拟人体模型的姿态进行变换,生成目标手语动画。
在一些可选的实施方式中,在得到待生成手语对应的目标动作姿态序列后,利用该目标动作姿态序列驱动虚拟人体模型的姿态进行变换,即驱动虚拟人体模型按照目标动作姿态序列的时序,依次连续地做出目标动作姿态序列中各个姿态,从而形成目标手语动画。该目标手语动画可以被录制成视频、插入到需要手语翻译的视频中或者实时显示在需要手语翻译的直播视频中(如在直播视频的界面中插入一个虚拟人体模型的显示窗口)。
例如,在得到目标动作姿态序列YP+Q+S后,可以驱动虚拟人体模型按[P1,P2...PI,F1,F2...FK,QJ+1,QJ+2...QA,E1,E2...EB,SD+1,SD+2...SZ]的顺序,依次做出姿态P1、姿态P2、...、姿态PI、姿态F1、姿态F2、...、姿态FK、姿态QJ+1、姿态QJ+2、...、姿态QA、...、姿态E1、...、姿态E2、...、姿态EB、...、姿态SD+1、...、姿态SD+2、...、姿态SZ,并将该过程制作成动画XP+Q+S,得到目标手语动画XP+Q+S=[P1,P2...PI,F1,F2...FK,QJ+1,QJ+2...QA,E1,E2...EB,SD+1,SD+2...SZ],该手语动画的语义为“今天天气好”。其中,P1至SZ分别表示目标手语动画XP+Q+S中的各动画帧,示例性的,P1表示目标手语动画XP+Q+S中的第一动画帧。
在本申请实施例中,使用经训练的神经网络拼接待生成手语动画所需的所有目标手语词中需要按序拼接的两个手语词对应的动作姿态序列,得到目标动作姿态序列,并基于得到的目标动作姿态序列驱动虚拟人体模型的姿态进行变换,从而生成目标手语动画。不仅使得生成的手语动画中的相邻的两个手语词动画之间的过渡帧的质量更高,即相邻的两个手语词动画之间过渡更加连贯自然、柔顺,而且提高了手语动画的生成效率,满足了实时性要求。
在对图2所示的神经网络进行训练后的一个示意性实际应用的流程如图7所示,其示出了本申请实施例提供的动画生成方法中的部分步骤的流程图。请参见图7,前述的步骤S102中,所述预定的拼接方式包括按照以下方式对所述所有目标手语词中任意需要按序拼接的前后两个目标手语词对应的动作姿态序列进行处理:
S701,对于需要按序拼接的前后两个目标手语词,将前后两个目标手语词各自所对应的动作姿态序列合并为第一动作姿态序列;
S702,将所述第一动作姿态序列输入经训练的第一神经网络进行处理,得到目标位置,所述目标位置是所述第一神经网络预测的所述第一动作姿态序列中待被替换帧的位置;
S703,将所述目标位置和所述第一动作姿态序列输入经训练的第二神经网络进行处理,得到过渡动作姿态序列;
S704,用所述过渡动作姿态序列替换所述第一动作姿态序列中位于所述目标位置处的动作姿态序列,完成所述前后两个目标手语词的动作姿态序列的拼接。
步骤S701至步骤S704的具体过程请参见前文中对图2所示的神经网络的结构及工作原理的说明,其处理过程相同或类似,在此不再赘述。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本申请实施例提供的手语动画生成方法,执行主体可以为手语动画生成方法。本申请实施例中以手语动画生成的方法为例,说明本申请实施例提供的手语动画生成装置。
如图10所示,示出了本申请实施例提供的手语动画生成装置的结构示意图。请参见图10,所述手语动画生成装置90,包括:
第一获取模块901,用于从预置的手语词库中获取目标手语词的动作姿态序列,所述目标手语词是待生成手语所需的手语词,所述动作姿态序列的每一帧至少指示虚拟人体模型的上肢姿态;
第一拼接模块902,用于按照预定的拼接方式将所有目标手语词所对应的动作姿态序列按照所述待生成手语的语义的顺序进行拼接,得到目标动作姿态序列,其中,所述预定的拼接方式中利用经训练的神经网络对待拼接的两个目标手语词对应的动作姿态序列的连接进行平滑过渡处理;
第一驱动模块903,用于根据所述目标动作姿态序列,驱动所述虚拟人体模型的姿态进行变换,生成目标手语动画。
在一些可选的实施方式中,所述第一拼接模块902,包括:
第一拼接子模块,用于对于需要按序拼接的前后两个目标手语词,将前后两个目标手语词各自所对应的动作姿态序列合并为第一动作姿态序列;
第一神经网络,用于对所述第一动作姿态序列进行处理,得到目标位置,所述目标位置是所述第一神经网络预测的所述第一动作姿态序列中待被替换帧的位置;
第二神经网络,用于将所述目标位置和所述第一动作姿态序列输入经训练的第二神经网络进行处理,得到过渡动作姿态序列;
过滤拼接层,用于用所述过渡动作姿态序列替换所述第一动作姿态序列中位于所述目标位置处的动作姿态序列,完成在所述前后两个目标手语词的动作姿态序列的拼接。
在一些可选的实施方式中,所述第一神经网络是序列到序列的模型,包括第一编码器、第一解码器、第一注意力机制层和第一预测层,其中,所述第一预测层在每个时间步利用所述第一解码器输出的隐藏状态和所述第一注意力机制层确定的第一注意力特征值进行预测,所述第一注意力特征值是利用所述第一编码器在每个时间步输出的隐藏状态相对所述第一解码器在当前时间步输出的隐藏状态的注意力值对所述第一编码器每个时间步输出的隐藏状态进行加权求和得到的。
在一些可选的实施方式中,在所述第一神经网络中,
所述第一编码器,用于分时间步对所述第一动作姿态序列的每帧进行编码处理,得到第一编码器在相应时间步输出的隐藏状态;
所述第一解码器,用于分时间步基于第一编码器最后一个时间步输出的隐藏状态针对所述第一动作姿态序列的每帧进行解码处理,得到第一解码器在相应时间步输出的隐藏状态;
所述第一注意力机制层,用于确定所述第一注意力特征值;
所述第一预测层,用于在每个时间步利用所述第一解码器输出的隐藏状态和所述第一注意力机制层确定的第一注意力特征值进行预测,得到指示每个时间步的目标位置的概率分布矩阵,并根据每个时间步的目标位置的概率分布矩阵中的每列最大值,确定每个时间步的候选值;
第一输出层,用于根据每个时间步的候选值和预设的目标位置的标志向量,确定目标位置。
在一些可选的实施方式中,目标位置的标志向量包括预设的起始标志向量和预设的结束标志向量,所述第一输出层,用于根据每个时间步的的候选值和预设的目标位置的标志向量,确定目标位置,包括:确定每个时间步的候选值分别与预设的起始标志向量之间的第一距离和与预设的结束标志向量之间的第二距离,将第一距离最小的第一候选值和第二距离最小的第二候选值确定为目标位置的坐标值。
在一些可选的实施方式中,所述第二神经网络包括:
序列选择层,用于对所述第一动作姿态序列执行位置选择处理,得到经选择后的第一动作姿态序列;
Transformer子网络,用于对所述经选择后的第一动作姿态序列执行序列嵌入、位置编码、编码、解码和线性回归处理,得到候选动作姿态序列;
第二输出层,用于根据所述候选动作姿态序列与预设的指示过渡动作姿态序列的标志帧,确定过渡动作姿态序列。
在一些可选的实施方式中,所述第二输出层,包括:
过渡动作姿态序列确定层,用于确定候选动作姿态序列中的每一候选帧与预置的起始标志帧之间的第三距离和与预置的结束标志帧之间的第四距离,将第三距离最小的第一候选帧和第四距离最小的第二候选帧之间的候选帧确定为过渡动作姿态序列。
在一些可选的实施方式中,所述第一神经网络和所述第二神经网络是通过以下步骤训练得到的:
获取训练集,所述训练集包括多个样本及每个样本对应的标签,每个样本包括需要拼接的在前手语词和在后手语词各自对应的动作姿态序列,所述标签包括用于指示对应样本中待被替换帧的位置标签以及用于指示对应样本的过渡动作姿态序列真值的过渡动作姿态序列标签;
利用所述训练集对所述第一神经网络和所述第二神经网络进行多轮交替迭代训练,得到所述经训练的第一神经网络和所经训练的第二神经网络。
在本申请实施例中,使用经训练的神经网络拼接待生成手语动画所需的所有目标手语词中需要按序拼接的两个手语词对应的动作姿态序列,得到目标动作姿态序列,并基于得到的目标动作姿态序列驱动虚拟人体模型的姿态进行变换,从而生成目标手语动画。不仅使得生成的手语动画中的相邻的两个手语词动画之间的过渡帧的质量更高,即相邻的两个手语词动画之间过渡更加连贯自然、柔顺,而且提高了手语动画的生成效率,满足了实时性要求。
本申请实施例中的手语动画生成装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
为了验证模型的有效性,本申请发明人基于国家(中国)通用手语3D数据库进行对比实验。本实验主要展示不同的神经网络框架的预测结果,并进行对比分析。首先介绍数据集,其次给出评价标准,然后给出数据集在四种不同模型上的插值过渡结果,最后对精度和效果进行评价。
(1)数据集
所采用的国家通用手语3D数据库包括6707个手语词,每个手语词是人体53个层级骨骼的旋转数据,以骨骼动画的形式表示,以双臂自然下落开始和结束。本发明实验使用其中100个手语词组成的10000条拼接词。
首先将每帧手语动画的三维旋转数据转换成位置坐标(x,y,z),其次将坐标数据归一到[-0.5,0.5]的区间,然后将53个骨骼的坐标展开,形成159维的向量。预定义的标志向量preIndexFlag和postIndexFlag是分别由数字0.6004和0.6005构成的维度为159的向量。
(2)评价指标
为了评价整体的效果,可以评估多组多轮训练中每组多轮训练的过程得到的第一神经网络21和第二神经网络22的总体精确度,总体精确度用于描述第一神经网络21预测的目标位置与样本的位置标签的位置误差以及第二神经网络22预测的过渡动作姿态序列与样本的过渡动作姿态序列标签的精度。
总体精确度(Accuary):实验使用前述公式(38)进行定义。
双语评估评分(Bilingual evaluation understudy,BLEU):BLEU用于在自然语言处理任务中衡量候选句子和参考句子之间的相似性。本发明用它衡量预测过渡帧和实际过渡帧之间的重合程度。当评估BLEU分数时,实验划分预测帧序列为不同长度n的子序列,并计算预测的序列在真实序列中出现的比例。例如存在预测序列[T1,T2,T3,…,Tm],真实序列[L1,L2,L3,…,Lm],计算BELU-2分数时可将预测序列分为m-n+1个子序列,即m-1个子序列[T1,T2],[T2,T3],...,[Tm-1,Tm],当存在[Li,Lj]使其等于其中某个预测子序列时,模型认为该预测子序列在真实子序列中出现。在本发明中,实验测量的BLEU范围n∈[1,…,4],对应的结果表示为BLEU-n。
成功预测拼接位置数据占全部数据的比例(The proportion of successfullypredicted splicing position data to all data,PTA):在这项工作中,模型能否预测出拼接位置十分重要,所以本发明提出了衡量标准:
其中NP是符合公式13的测试集样本数量,NT是测试集所有数据的数量。
预测拼接位置与实际位置对齐的比值(The ratio of the predicted splicingposition is aligned with the actual position,PAA):即使某些模型可以预测出拼接位置,但预测的拼接位置与实际拼接位置并不相同。因此,本发明提出了衡量标准:
其中NA表示预测拼接位置和实际拼接位置基本相同(位置误差正负一之间)的测试集样本数量。
(3)实验结果
本次实验利用NVIDIA GeForce RTX 3090在windows10平台上进行,实验环境为PyCharm。
对比模型包括ConvS2S、Lstm和Transformer。ConvS2S的encoder和decoder分别由20个对应的Layer组成、Embedding和Hidden层的大小均为512,CNN卷积核的大小为3,Batchsize的大小为100;Lstm的Embedding和Hidden层的大小均为512,Batch size的大小为32;Transformer包含一个Encoder层和一个Decoder层,注意力模块的头数为8,Embedding的大小为512。
四种模型均使用sgd进行优化训练,模型的初始学习率均为10-3,结果如下。
实验首先尝试使用不同的fr值来寻找Culling层的最佳参数。总体精确精度(Accuary)随fr值的增加变化关系如图9所示。可以看到,在本次实验中,fr=8时总体精确度最优。
表1展示了对比实验各个模型的指标结果,包括BELU-1~BELU-4、PTA、PAA以及Accuary指标。
表1对比实验各个模型的指标结果
表2平均预测时间
(4)结果分析和评价
如表1所示,ConvS2S、LSTM和Transformer模型在BLEU-1得分上取得高分,这意味着模型在预测单个数据时效果很好。然而其BLEU-2/3/4急剧下降,而本发明保持稳定,这意味着本发明在长序列的预测情况下优于其他三种模型。
如表1所示,ConvS2S的PTA为0.251,这意味着该模型几乎预测不到拼接位置。LSTM和Transformer的PTA接近1,这表明其几乎预测出了所有的拼接位置。然而,它们的PAA低至0.784和0.601,这证明了大多数预测的拼接位置是错误的。本发明的PTA和PAA指标均优于其他三种模型,证明了模型过渡位置预测的有效性。
(5)手语动画拼接可视化
本次实验只对x、y两个方向的数据进行可视化处理。为了突出手语手势部分,仅显示能展示人体上半身姿态的47个骨骼,可视化结果如图8所示,即图8示意性的示出了本申请实施例提供的图2所示的神经网络为实验组,以ConvS2S网络、LSTM网络和Transformer网络为对照组的实验的可视化结果。从图8可知,本申请实施例在前手语词的姿态帧(或动画帧)(Previous Animetion Frame)与在后手语词的姿态帧(或动画帧)(Post AnimetionFrame)之间生成的过渡(姿态)帧(或过渡动画帧)(Transition Animetion Frame)的质量优于ConvS2S网络、LSTM网络和Transformer网络生成的过渡(姿态)帧。
实验结果表明,本发明模型在过渡帧位置和手势动作预测上和实际相差无几,并且随着过渡帧数的增加,也没有产生精度骤降导致手势严重变形的问题。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种手语动画的生成方法,其特征在于,所述方法包括以下步骤:
从预置的手语词库中获取目标手语词的动作姿态序列,所述目标手语词是待生成手语所需的手语词,所述动作姿态序列的每一帧至少指示虚拟人体模型的上肢姿态;
按照预定的拼接方式将所有目标手语词所对应的动作姿态序列按照所述待生成手语的语义的顺序进行拼接,得到目标动作姿态序列,其中,所述预定的拼接方式中利用经训练的神经网络对待拼接的两个目标手语词对应的动作姿态序列的连接进行平滑过渡处理;
根据所述目标动作姿态序列,驱动所述虚拟人体模型的姿态进行变换,生成目标手语动画。
2.根据权利要求1所述的方法,其特征在于,所述经训练的神经网络包括经训练的第一神经网络和经训练的第二神经网络,其中,所述预定的拼接方式包括按照以下方式对所述所有目标手语词中任意需要按序拼接的前后两个目标手语词对应的动作姿态序列进行处理:
对于需要按序拼接的前后两个目标手语词,将前后两个目标手语词各自所对应的动作姿态序列按序合并为第一动作姿态序列;
将所述第一动作姿态序列输入经训练的第一神经网络进行处理,得到目标位置,所述目标位置是所述第一神经网络预测的所述第一动作姿态序列中待被替换帧的位置;
将所述目标位置和所述第一动作姿态序列输入经训练的第二神经网络进行处理,得到过渡动作姿态序列;
用所述过渡动作姿态序列替换所述第一动作姿态序列中位于所述目标位置处的动作姿态序列,完成所述前后两个目标手语词的动作姿态序列的拼接。
3.根据权利要求2所述的方法,其特征在于,所述第一神经网络是序列到序列的模型,包括第一编码器、第一解码器、第一注意力机制层和第一预测层,其中,所述第一预测层在每个时间步利用所述第一解码器输出的隐藏状态和所述第一注意力机制层确定的第一注意力特征值进行预测,所述第一注意力特征值是利用所述第一编码器在每个时间步输出的隐藏状态相对所述第一解码器在当前时间步输出的隐藏状态的注意力值对所述第一编码器在每个时间步输出的隐藏状态进行加权求和得到的。
4.根据权利要求3所述的方法,其特征在于,在所述第一神经网络中,
所述第一编码器,用于分时间步对所述第一动作姿态序列的每帧进行编码处理,得到所述第一编码器在相应时间步输出的隐藏状态;
所述第一解码器,用于分时间步基于所述第一编码器在最后一个时间步输出的隐藏状态针对所述第一动作姿态序列的每帧进行解码处理,得到所述第一解码器在相应时间步输出的隐藏状态;
所述第一注意力机制层,用于确定所述第一注意力特征值;
所述第一预测层,用于在每个时间步利用所述第一解码器输出的隐藏状态和所述第一注意力机制层确定的第一注意力特征值进行预测,得到指示每个时间步的目标位置的概率分布矩阵,并根据指示每个时间步的目标位置的概率分布矩阵中的每列最大值或每行最大值,确定每个时间步的候选值;
第一输出层,用于根据所述每个时间步的候选值和预设的目标位置的标志向量,确定目标位置。
5.根据权利要求4所述的方法,其特征在于,所述目标位置的标志向量包括预设的起始标志向量和预设的结束标志向量,所述第一输出层用于根据所述每个时间步的候选值和预设的目标位置的标志向量通过以下方式确定目标位置:
确定所述每个时间步的候选值分别与所述起始标志向量之间的第一距离和与所述结束标志向量之间的第二距离,将所述第一距离最小的第一候选值和所述第二距离最小的第二候选值确定为目标位置的坐标值。
6.根据权利要求2所述的方法,其特征在于,所述第二神经网络包括:
序列选择层,用于对所述第一动作姿态序列执行位置选择处理,得到经选择后的第一动作姿态序列;
Transformer子网络,用于对所述经选择后的第一动作姿态序列执行序列嵌入、位置编码、编码、解码和线性回归处理,得到候选动作姿态序列;
第二输出层,用于根据所述候选动作姿态序列与预设的指示过渡动作姿态序列的标志帧,确定过渡动作姿态序列。
7.根据权利要求6所述的方法,其特征在于,所述标志帧包括指示过渡动作姿态起始的起始标志帧和指示过渡动作姿态结束的结束标志帧,所述第二输出层用于根据所述候选动作姿态序列与预设的指示过渡动作姿态序列的标志帧通过以下方式确定过渡动作姿态序列:确定候选动作姿态序列中的每一候选帧与所述起始标志帧之间的第三距离和与所述结束标志帧之间的第四距离,将所述第三距离最小的第一候选帧和所述第四距离最小的第二候选帧之间的候选帧确定为过渡动作姿态序列。
8.根据权利要求2-7之一所述的方法,其特征在于,所述第一神经网络和所述第二神经网络是通过以下步骤训练得到的:
获取训练集,所述训练集包括多个样本及每个样本对应的标签,每个样本包括需要拼接的在前手语词和在后手语词各自对应的动作姿态序列,所述标签包括用于指示对应样本中待被替换帧的位置标签以及用于指示对应样本的过渡动作姿态序列真值的过渡动作姿态序列标签;
利用所述训练集对所述第一神经网络和所述第二神经网络进行多轮交替迭代训练,得到所述经训练的第一神经网络和所经训练的第二神经网络。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序可被处理器执行以实现权利要求1至8任一所述方法的步骤。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310465584.9A CN116485961A (zh) | 2023-04-27 | 2023-04-27 | 一种手语动画生成方法、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310465584.9A CN116485961A (zh) | 2023-04-27 | 2023-04-27 | 一种手语动画生成方法、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116485961A true CN116485961A (zh) | 2023-07-25 |
Family
ID=87222867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310465584.9A Pending CN116485961A (zh) | 2023-04-27 | 2023-04-27 | 一种手语动画生成方法、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116485961A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719421A (zh) * | 2023-08-10 | 2023-09-08 | 果不其然无障碍科技(苏州)有限公司 | 一种手语气象播报方法、系统、装置和介质 |
-
2023
- 2023-04-27 CN CN202310465584.9A patent/CN116485961A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719421A (zh) * | 2023-08-10 | 2023-09-08 | 果不其然无障碍科技(苏州)有限公司 | 一种手语气象播报方法、系统、装置和介质 |
CN116719421B (zh) * | 2023-08-10 | 2023-12-19 | 果不其然无障碍科技(苏州)有限公司 | 一种手语气象播报方法、系统、装置和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yan et al. | Video captioning using global-local representation | |
CN107979764B (zh) | 基于语义分割和多层注意力框架的视频字幕生成方法 | |
CN114144790B (zh) | 具有三维骨架正则化和表示性身体姿势的个性化语音到视频 | |
Chiu et al. | How to train your avatar: A data driven approach to gesture generation | |
Saunders et al. | Signing at scale: Learning to co-articulate signs for large-scale photo-realistic sign language production | |
CN112581569B (zh) | 自适应情感表达的说话人面部动画生成方法及电子装置 | |
CN108960338B (zh) | 基于注意力反馈机制的图像自动语句标注方法 | |
CN109919221B (zh) | 基于双向双注意力机制图像描述方法 | |
CN117033609B (zh) | 文本视觉问答方法、装置、计算机设备和存储介质 | |
WO2023071801A1 (zh) | 动画生成方法及装置、计算机设备、存储介质、计算机程序、计算机程序产品 | |
Filntisis et al. | Visual speech-aware perceptual 3d facial expression reconstruction from videos | |
Brock et al. | Learning three-dimensional skeleton data from sign language video | |
CN116485961A (zh) | 一种手语动画生成方法、设备和介质 | |
US20230154092A1 (en) | Kinematic interaction system with improved pose tracking | |
Rastgoo et al. | All you need in sign language production | |
CN114040126B (zh) | 一种文字驱动的人物播报视频生成方法及装置 | |
Rastgoo et al. | A survey on recent advances in Sign Language Production | |
Kosmopoulos et al. | Museum guidance in sign language: The signguide project | |
Yin et al. | Neural sign language translation with sf-transformer | |
Lu et al. | Research on the improved gesture tracking algorithm in sign language synthesis | |
Qi et al. | CoCoGesture: Toward Coherent Co-speech 3D Gesture Generation in the Wild | |
Fang et al. | Audio-to-Deep-Lip: Speaking lip synthesis based on 3D landmarks | |
Malek-Podjaski et al. | Adversarial Attention for Human Motion Synthesis | |
Guillermo et al. | Emotional 3D speech visualization from 2D audio visual data | |
CN116452741B (zh) | 对象重建方法、对象重建模型的训练方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |