基于脸部骨骼位置信息的唇凸度计算方法
潘晓声 1 , 张梦翰 2 , LiewWeeChung 3     
1. 上海师范大学 信息与机电工程学院, 上海 200234, 中国 ;
2. 复旦大学 生命科学学院, 上海 200438, 中国 ;
3. 格里菲斯大学 信息与通讯技术学院, 昆士兰, 澳大利亚
摘要:该文主要讨论了唇凸度的定义和提取方法。根据上、下唇的运动规律不同,该文把上唇和下唇凸度分别定义为上唇或下唇外沿到上或下门齿的Euclid距离。使用运动捕获器获取发音过程中脸部标志点运动的三维坐标信息,运用奇异值分解法消除头部刚体运动和下颌的开口运动,利用置于脸部骨骼的参考点分别推算出上下门齿的空间位置,使用上唇和下唇外沿的坐标位置计算上唇或下唇凸度。结果表明:该计算方法不但在三维唇形数据上测试效果良好,同时也适用于二维唇形数据。
关键词唇凸度     奇异值分解     刚体运动     Euclid距离    
Lip protrusion measurement based on facial skeleton data
PAN Xiaosheng1 , ZHANG Menghan2 , Liew Wee Chung3     
1. The College of Information, Mechenical and Electrical Engineering, Shanghai Normal University, Shanghai 200234, China ;
2. School of Life Sciences, Fudan University, Shanghai 200438, China ;
3. School of Information and Communication Technology, Griffith University, Queensland, Australia
Abstract:The paper presents a method to measure lip protrusion. The upper and low lip movement patterns differ, so the lip protrusion is defined for the upper or lower lips as the Euclidean distance between the lip edge and the incisor. Three-dimensional lip coordinates were obtained by observing the trajectories of reference markers on human faces. The singular value decomposition (SVD) method was used to eliminate the head rigid-body movement and mouth opening movement. Then, the coordinates for the upper and lower incisors were obtained by calculating the coordinates of the reference markers pasted on the facial bony structure. Finally, lip edge coordinates were introduced to calculate the lip protrusion. The method gives good results with three-dimensional lip data and is also applicable for analyzing two-dimensional lip data.
Key words: lip protrusion     singular value decomposition (SVD)     rigid motion     Euclidean distance    

前人关于唇凸度的研究基本都是以某一特定位置为参考点来计算唇凸度。文[1-2] 都考虑到了上唇凸度、 下唇凸度和唇角凸度三者并不是一个统一体,需要分别定义。文[1]对法语的研究中定义双唇闭合、 不发音时为唇中性状态。以唇中性状态时上唇外沿、 下唇下沿以及唇角的位置为参考点,分别求发音状态时此3处参考点在水平方向上的差值,具体见图 1a。文[2]对汉语普通话的研究与文[1]略有不同,并未以唇中性状态的为参考点,而是以某一固定位置为参考点来定义唇凸度,且没有明确指出如何使此参考点的位置不变,具体见图 1b。其他关于唇凸度的研究基本上认为唇角凸度不重要,因此不考虑唇角信息。文[3]在消除头部刚体运动后,设定图像中固定点为参考点,分别定义参考点与上唇外沿和下唇外沿的水平距离为上唇凸度和下唇凸度,具体见图 1c,其研究目的只是提取轮廓参数用于可视语音合成等工程,许多时候并不需要特别精确。文[4]定义唇凸度为门齿到双唇外沿的距离,文[5]的发音声学模型定义上唇凸度(ProTop)为上唇外沿至上门齿的水平距离,下唇凸度(ProBot)为下唇外沿至下门齿的水平距离,二者的定义基本相同,具体见图 1d。文[6]对法语和英语的研究使用了三维的数据,以鼻根为参考点,定义上唇外唇与参考点的水平距离为唇凸度,具体见图 1e,但并没有定义下唇凸度。文[7]定义下唇特征点P3(t0)经过张嘴后,理论上应到达的位置P3(t)为参考点,计算它与实际采集到的位置P3(treal)之间的水平距离为下唇凸度,如图 1f所示。

图 1 不同的唇凸度定义方法

其中文[1-2]和文[4-5]的研究因为技术条件限制都能只提取静止状态下的唇凸度数据,文[3]和文[6-7]的工作可以提取唇凸度的动态变化过程。

从生理的角度,颞下颌关节的运动可以分成3种不同的功能运动[8]: 侧方运动、 前后运动和开闭运动。这3种运动通过2种活动方式,即髁突的转动和滑动运动来实现。开闭运动分为开颌和闭颌,二者运动轨迹正好相反。

[1-6]的研究恰恰是没有结合下颌运动对下唇凸度的影响,因此都存在缺陷。以图 1a为例,根据文[1]对下唇凸度和唇角凸度的定义,当发/ɑ/等张嘴幅度较大元音时,下颌会以髁突为轴心作向下向右运动,下唇的位置也会随之向下向右运动,即下唇凸度变小。下颌的张开也会使唇角向右运动,唇角深度也在变小,这种唇凸度的变化是由于没有将下颌的运动消除所产生的。如果没有消除下颌的运动对唇凸度的影响,在比较非圆唇元音/a/和/i/的下唇凸度时,/a/的下唇凸度会远小于/i/。非圆唇元音/i/和圆唇元音/u/的下唇凸度差异就显得微不足道,这与圆唇元音与非圆唇元音唇凸度差异较大,非圆唇元音内部唇凸度差异较小的一般认识相违背。

以上研究中,只有文[7]考虑了下颌运动对下唇凸度造成的影响,所定义的唇凸度并非唇到门齿之间的距离,而是发生嘴唇形变后,其实际位置与理论位置的水平距离相差较大。它的算法也存在不足: 1) 无法从采集的数据中得到颞下颌关节的真实位置; 2) 假设下颌上的采样点P3(t),在经过平移和旋转运动之后,会与平移后的颞下颌关节位置C(t)以及休息状态下的颞下颌关节位置C(t0)处于同一直线之上,P3(t)对唇凸度的求解也是基于此假设。如果平移之后,C(t0)、 C(t)和P3(t)在一条直线之上,那么再经过发音时下颌骨的旋转运动,这3点一定不在同一直线之上,所以假设是不成立的。

本文认为,形成唇凸度的原因主要在于口轮匝肌收缩时,唇宽度变小,口轮匝肌向外突出。如果关心唇凸度的绝对值时,文[4-5]的定义都能反映上下唇的厚度,定义的唇凸度变化正好可以反映唇辐射的作用,也反映了发音过程中声道长度的变化。对于唇凸度的定义,主要是计算唇轮廓上的标志点与所设定的参考点之间的差值,而文[4-5]将参考点设置在门齿之上,所得的差值可以认为是唇凸度的绝对值,都考虑了上下唇对于唇凸度的影响,但文[5]将上下唇分别定义唇凸度可以为后续研究提供更精确的数据。很多情况下双唇到门齿之间并没有空隙或空隙小到不足以使用工具探测到门齿的位置,无从计算双唇到门齿的距离,因此测量门齿到双唇外沿距离有着一定的难度。文[4-5]使用X光数据来提取唇凸度,但由于X光对人身有害,现在已经禁止对人体使用X光进行实验,所以无法采集到更多的唇形数据用于后续研究。

本文采用非创伤性实验方法,提出一种计算方法,有效地开展唇凸度研究。

1 实验方案

本文发音人为成年男性。使用上海师范大学语言研究所的三维运动数据捕获设备Vicon MX采集了汉语普通话三维人脸运动数据,具体人脸标志点位置如图 2所示。

图 2 人脸标志点位置

其中: H1—H5为额头5个标志点; N1为鼻尖标志点; M1—M4为嘴唇廓上4个标志点; T1为上门齿标志点,T2为下门齿标志点; J1—J6为下颌6个标志点。在布置标志点时,将H3、 N1、 M1、 M3、 J1和J4安排在人脸的中轴线上,保证在侧脸时,通过肉眼可以有效观察到这些标志点。人脸标志点的侧面如图 3所示。

图 3 侧脸示意图(左)以及侧面人脸(右)

本文采集了汉语普通话声韵配合表上所有单音节共1 299个字的音频数据和脸部标志点在发音时的实时三维运动数据。

2 唇凸度定义及计算方法

唇凸度研究的难点在于发音过程中,虽然可以采集到嘴唇的位置,但无法有效地取得门齿的位置,无法计算唇凸度。其中因为下唇的运动受下颌骨开合的影响,如何表示及计算下唇凸度尤为困难。如果可以通过计算,间接得到门齿的位置,则计算唇凸度的问题将迎刃而解。

2.1 唇凸度定义

上唇、 下唇和唇角都是口轮匝肌的一部分。本文认为定义唇凸度应考虑以下因素:

1) 上下唇分别是依附在上下颌骨上的肌肉与皮肤组织。上下门齿分别生长于上下颌骨头之上,因此讨论唇凸度首先要了解上下颌的规律。

2) 上颌骨与下颌骨的运动具有相互独立性。颅骨与上颌骨以及上门齿连成一体。在消除颅骨的刚体运动后,颅骨与上门齿之间的位置是固定不变的。

3) 前人的发音模型一般假设下颌以某一固定点为圆心进行转动[9],但这种假设略显粗糙。下门齿和下颌骨通过颞下颌关节与颅骨相连,有其自身运动规律。如果可以知道颞下颌关节的位置,则可以通过闭颌运动,将下颌恢复到未发音时的状态,以消除掉开颌运动对唇凸度的影响,但录像由于无法透过皮肤取得颞下颌关节的真实位置,因此并没有一种简单的方法可以消除开颌运动。

本文根据图 3(左)所示,分别进行定义。

上唇凸度

$ProTop={{\left\| M1-T1 \right\|}_{2}}.$ (1)

即上门齿T1与上唇外沿标志点M1之间的Euclid距离。

下唇凸度

$ProBot={{\left\| M3-T2 \right\|}_{2}}.$ (2)

以下颌标志点和下门齿之间的位置相对固定为前提条件,使用奇异值分解(SVD)[10]的方法,利用静止时下门齿和下颌标志点数据,对下颌骨进行旋转及平移运算,生成发音过程中,每一帧数据的下门齿空间坐标值,计算下门齿T2与下唇外沿标志点M3之间的Euclid距离。

因为贴于门齿上的标志球会影响发音,所以在实际采集数据时,门齿上的标志球会被取下。利用其他参考点,比如图 2中的H1—H5、 J2—J6,根据它们与上下门齿之间存在着固定的位置关系,间接得到门齿的位置,并用于计算唇凸度。

本文所提出的方法,同样适用于没有三维运动数据捕获设备的研究人员。使用二维的录像数据计算唇凸度时,由于视角的关系,只能使用侧脸数据。此时,采用图 3中参考点H1—H3、 J2—J4的二维坐标,同样可以计算得到上下门齿的位置。

2.2 计算方法

根据节2.1的定义,计算唇凸度的关键在于取得门齿的位置。在发音过程中,人的头部不可避免的会有晃动,从而影响门齿的位置,因此有必要在提取门齿位置之前,将头部的轻微晃动消除。本文假设贴于头部的标志点H1—H5在发音时,受皮肤运动的影响小,可以近似的看成贴在颅骨上,反映了颅骨的运动。如果使用二维录像数据计算唇凸度时,只需要侧面信息,因此只使用H3—H5参与计算。

SVD是一种常用的消除刚体旋转和平移的方法。以本研究为例,其具体描述如下: 从相邻的两帧图像中提取对应特征点的坐标,A={ai},B={bi}。此处aibi为头部特征点H1—H5在不同帧中的位置。

即特征点ai经过旋转和平移后,将到达bi的位置,如下所示:

${{b}_{i}}=R{{a}_{i}}+T.$ (3)

其中: R为旋转矩阵,T为平移向量。

奇异值分解法可以求解出RT,使得所有对应的特征点在经过旋转和平移之后,它们之间的距离平方和$\sum\limits_{i=1}^{n}{{{\left\| {{b}_{i}}-(R{{a}_{i}}+T) \right\|}^{2}}}$最小。

将每一帧图片中特征点H1—H5都与第一帧的这5个特征点进行配准后,就可以消除头部的刚体运动。

因为颅骨与上门齿连接在一起,因此可以认为图 2中标志点H1—H5与上门齿标志点T1之间的相对位置固定不变。在上门齿及额头贴反光球后,单独采集一段露上门齿的三维人脸数据,可以得到H1—H5和T1的坐标以及它们之间的相对位置。在实际发音时,可以将标志点T1取下,以免影响发音。

在消除头部的刚体运动后,每一帧数据中的H1—H5的位置可以认为是静止不动的,那么也可以认为T1是静止不动,同时上唇标志点M1的坐标可以采集得到,因此可以认为M1和T1之间的距离就是上唇凸度。

下门齿与下颌骨连接在一起,但在开口发音时,下颌骨并不只是简单的旋转运动,无法通过逆旋转计算将下颌骨复位。此外,下颌骨表面的皮肤与下颌骨之间存在着相当明显的滑动。在不发音闭唇时,根据下颌骨的形状,在皮肤表面贴上标志点,如图 3所示。经过标志点J2—J6的曲线为下颌骨的轮廓。在下颌打开之后,皮肤受表面张力的作用,不完全随下颌骨运动,即下颌骨与皮肤之间发生了滑动。原先根据下颌骨轮廓所粘贴的标志点位置与下颌骨的新位置之间产生了差异,即下颌骨曲线不再穿过标志点J2—J6。从实验数据观测可得,当打开口腔时,离下颌中轴标志点J4越近,皮肤与骨骼之间的滑动越小,因此选择下颌标志点位置时,也尽量的靠近J4。

当皮肤和下颌骨之间的滑动小到一定程度,就可以假设二者之间不存在滑动。经过标志点的轮廓线反映了下颌骨的形状,总体形状应保持基本不变。又因为下颌骨与下门齿之间的位置相对固定,则可以由下颌骨曲线来推算下门齿的坐标位置。

在下门齿及下颌上分别粘贴上标志点后单独采集一段露下门齿的三维人脸数据,可以得到J2—J6和T2的坐标。在实际发音时将标志点T2取下,因此实际发音时所采集的数据中,并没有下门齿的坐标值。但因为下颌骨和下门齿之间存在固定的位置关系,所以只要使用SVD,就能够以J2—J6为顶点,将含有下门齿T2坐标值数据帧,分别向发音过程中不含下门齿的所有其他帧对齐。当含下门齿的数据帧转到了新的位置,即实现了开颌运动,并可以推算出每一帧中下门齿的位置。原始的每一帧数据中已经含有下唇标志点M3的坐标,此时又计算得到了T2的坐标,从而可以计算出下唇凸度。

3 实验结果

利用上述方法计算发音时上下唇凸度的实时变化曲线,取得了令人满意的效果。下面以普通话的“军”字为例,具体如图 4所示。

图 4 普通话“军”字的唇形参数与声学参数

运动捕获设备每秒采样率为100 Hz。图 4a表示3种不同唇形参数在每一帧中的变化。短横虚线为发音过程中上唇凸度的变化,实线表示发音过程中下唇凸度的变化。可以看出,二者的变化规律大体相似。在50帧之前,处于静音阶段,双唇仍未打开,上下唇凸度基本保持不变; 在60~120帧之间,处于发音阶段,可以从图中见到唇凸度由小变大再变小的过程; 在120帧之后,发音动作恢复到双唇闭合,称之为发音动作的恢复阶段。

图 4a中的点虚线为外唇宽度的变化,具体为左右唇角标志点M2和M4之间的Euclid距离归一化后的结果。可以看出,外唇宽度和上下唇凸度之间存在负相关性,在60~120帧之间的发音阶段,负相关性尤其明显,在120帧之后,外唇宽度没有恢复到发音之前的状态,但唇凸度基本上恢复到发音之前的状态,说明外唇宽度和唇凸度之间,并不是严格的负相关。本研究中,其他涉及圆展唇元音的样本,其外唇宽度和唇凸度基本上也体现出负相关性。

图 4b表示“军”字的语音频谱随着时间变化。其中元音部分的第二共振峰(F2)的走势由白色虚线标出。可以看到F2的值由高变低再变高,与唇凸度成反比的趋势。根据语音学原理[11],语音的第二共振峰往往和舌位的前后有关。舌头越往后,则F2越低。在凸唇运动时,声管的长度变长,虽然舌头的位置不变,但在声道中的相对位置变得靠后了,所以F2也会降低。这与图中观察到的现象一致。

4 讨论与结论

本研究所提出的计算唇凸度的方法,是建立在文[4-5]唇凸度定义的基础之上。与前人的研究相比,其优点主要在于可以通过计算得到唇凸度的实时变化值,尤其是针对下唇凸度的计算,提出了一种消除下颌的开口运动对下唇凸度影响的方法。

在本文的计算方法中,需要特别注意在采集数据时,比如颅骨与上门齿以及下颌骨与下门齿之间的空间位置关系是绝对固定的,而皮肤与上下门齿之间并不存在固定的位置关系。但三维运动捕获设备只能采集皮肤表面可见区域的标志点的三维位置,因此采集得到的采样点数据只能是近似等于骨骼的三维位置,由标志点的三维位置来推算门齿的三维位置一定会有误差存在。为了解决这一问题,尽量选择发音过程中皮肤与骨骼滑动不大的位置粘贴标志球。由数据可以发现,经过奇异值分解去除头部刚体运动后,每一帧数据中额头的标志点H1—H5的坐标几乎相同。以J2—J6对齐消除下颌的刚体运动也取得了极佳的效果,这说明所选择的参考点位置合适。

本文的方法同样可以应用于二维的唇形数据中。通过录像数据,可以直接使用Kass等[12]方法提取下颌轮廓线,从而实现唇凸度的提取和计算。因为所提取的轮廓线就是下颌骨的形状,反而可以提高对下门齿的估算精度。

参考文献
[1] Abry C, Boë L J. "Laws" for lips[J]. Speech Communication , 1986, 5 (1) : 97–104. DOI:10.1016/0167-6393(86)90032-4
[2] 王安红. 普通话语音视位系统初探[D]. 北京:北京语言文化大学, 2000. WANG Anhong. Primary Research on Standard Chinese Viesemes[D]. Beijing:Beijing Language and Culture University, 2000. (in Chinese) http://epub.cnki.net/kns/detail/detail.aspx?QueryID=0&CurRec=1&FileName=2000002699.nh&DbName=CMFD9904&DbCode=CMFD&pr=
[3] 王志明. 汉语视位建模及可视语音的研究[D]. 北京:清华大学, 2003. WANG Zhiming. Research on Modeling Chinese Viseme and Visual Speech[D]. Beijing:Tsinghua University, 2003. (in Chinese)
[4] 吴宗济, 林茂灿. 实验语音学概要[M]. 北京: 高等教育出版社, 1989 . WU Zongji, LIN Maocan. A Prime of Experimental Phonetics[M]. Beijing: Higher Education Press, 1989 . (in Chinese)
[5] Denis B, Badin P, Bailly G. Linear degrees of freedom in speech production:Analysis of cineradio-and labio-film data and articulatory-acoustic modeling[J]. The Journal of the Acoustical Society of America , 2001, 109 (5) : 2165–2180. DOI:10.1121/1.1361090
[6] Martine T, Maeda S, Carlen A J, et al. Lip protrusion/rounding dissociation in French and English consonants:/w/vs[C]//Proc of ICPhS XV. Barcelona, Spain:ISCA, 2003:1763-1766. http://cn.bing.com/academic/profile?id=196673355&encoded=0&v=paper_preview&mkt=zh-cn
[7] Martinoa J M D, Magalhães L P, Violaro F. Facial animation based on context-dependent visemes[J]. Computers & Graphics , 2006, 30 (6) : 971–980.
[8] 皮昕. 口腔解剖生理[M]. 北京: 人民卫生出版社, 2007 . PI Xin. Oral Anatomy and Physiology[M]. Beijing: People's Medical Publishing House, 2007 . (in Chinese)
[9] Mermelstein P. Articulatory model for the study of speech production[J]. The Journal of the Acoustical Society of America , 1973, 53 (4) : 1070–1082. DOI:10.1121/1.1913427
[10] Arun K S, Huang T S, Blostein S D. Least-squares fitting of two 3-D point sets[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence , 1987, 9 (5) : 698–700.
[11] Fant G. Acoustic Theory of Speech Production:with Calculations Based on X-ray Studies of Russian Articulations[M]. Berlin: Walter de Gruyter, 1971 .
[12] Kass M, Witkin A, Terzopoulos D. Snakes:Active contour models[J]. International Journal of Computer Vision , 1988, 1 (4) : 321–331. DOI:10.1007/BF00133570