2. 中国科学院重庆绿色智能技术研究院, 重庆 400714
2. Chongqing Institute of Green and Intelligent Technology, Chinese Academy of Sciences, Chongqing 400714, China
人在与人的交流中,除了听和说,还需要“察言观色”。在嘈杂环境下,人要更加依赖观察对方的嘴唇运动来判断其说话内容;例如聋哑人群与其他人的交流必须依赖于对方的唇动视觉信息。已有研究证明,唇动视觉信息是说话内容的重要载体[1]。目前唇语识别应用场景主要有两个,一是用于辅助语音识别系统,以提高其在嘈杂环境等不利情况下的识别性能;二是用于安防系统,扮演活体检测的角色,配合其他生物特征识别技术来实现高安全性。Graves将序列学习分为3类[2],本文研究的唇语识别属于段分类(segment classification),因为本文中的唇语视频是将说话内容限制为有限个短语或单词,对应某个短语或单词的唇语视频起止点是已知的。
相较于语音识别,唇语识别更加困难,因为不同人在不同环境和不同时刻,即使说话内容相同,受说话者不同的嘴唇外观、背景信息和说话习惯的影响,其唇动视觉信息也会相差很大。Zhou等[3]针对如何在唇语识别中提取更好的特征提出两个需要解决的问题:1)如何抑制因说话者不同带来的视觉信息多样性的特征,即如何提取与说话者无关而与说话内容相关的视觉特征;2)如何对视觉特征做时序编码。为解决这两个问题,我们探索了基于LSTM的唇语识别方法,如图 1所示,第一步是用人脸关键点检测技术对视频每一帧检测嘴唇关键点,用嘴唇关键点的坐标描述该帧的嘴唇的形状信息,并将其作为每一帧的特征,第二步是将视频所有帧的特征连接起来输入LSTM学习空间-时序特征,输出识别的结果。我们试图通过该方法提供一个新的唇语识别流程,免去手工设计特征,从高度不确定性的唇动视觉信息中自动提取不变性的空间-时序特征,从而提高唇语识别准确率。
Download:
|
|
已有研究者提出唇语识别的方法。从视觉特征提取这方面看,一些方法只从提取嘴唇部分的外表特征入手,如用空间-时间LBP描述子提取视频嘴唇部分图像的空间-时序特征[4-6]。还有一些方法同时利用嘴唇部分的外表特征和形变特征,如Lan等[7]则用主动外观模型(active appearance model)的外表参数和形状参数作为特征,Pei等[8]用3种特征的融合,分别是主动外观模型形状参数描述的特征、HOG描述子提取的特征和LBP描述子提取的特征。本文使用的描述每帧的唇动视觉信息的特征跟Lan等[7]使用的主动外观模型中的形状参数类似,将使用人脸关键点检测技术检测到的嘴唇关键点的坐标作为每一帧的特征,与之不同的是,我们使用了判别方法而非生成方法,直接将视频所有帧的嘴唇关键点坐标输入到LSTM进行分类。从对视觉特征的时序编码看,Zhao等[4]用空间-时间LBP描述子完成对时序特征的编码,Lan等[7]用隐马尔科夫模型对特征建模,文献[5-6, 8]使用流形降维技术完成特征选择,Rekik等[9]直接将特征插值成固定长度的特征向量。近年来,深度学习应用越来越广泛,在很多模式识别任务上都取得了优异的成绩。在唇语识别这个领域,研究者也提出一些基于深度学习的方法,如Noda等[10]利用卷积神经网络提取视频每帧嘴唇区域的特征再用隐马尔科夫模型建模和分类。跟卷积神经网络相比,LSTM更适用于序列学习任务,近年来在语音识别[11]、机器翻译[12]和动作识别[13]上都取得了不错的成绩。有研究者将LSTM应用于唇语识别,如Wand和Koutn[14]用前向神经网络提取视频每帧嘴唇区域的特征,再用LSTM进行分类。与以上基于深度学习的唇语识别方法不同,受Simonyan和Zisserman[15]将图像光流作为时间卷积神经网络输入,将原始图像作为空间卷积神经网络输入实现动作识别的启发,本文提出将视频所有帧嘴唇关键点的坐标作为LSTM的输入,让LSTM由这些坐标信息中去自动学习空间-时序特征,而非将原始图片序列作为网络的输入[10, 14],这样做基于两个假设:1)人说话过程中,嘴唇形状的变换信息比嘴唇外表的变化信息更重要;2)LSTM能够从嘴唇关键点的坐标信息中提取具有区分性和泛化性的空间-时序特征。在GRID数据库[16]、MIRACL-VC数据库[9]和OuluVS数据库[4]上的实验结果证实了我们的假设。
1 基于LSTM的唇语识别算法 1.1 特征唇语视频是一段图片序列,由于我们只关心说话者嘴唇的运动,所以只需要关注视频每帧图像嘴唇区域的信息。受说话者嘴唇外观、光照条件、说话习惯等影响,即使说话者说相同的内容,嘴唇区域的视觉信息也可能会相差很大,因此从唇语视频中提取具有类内一致性、类间区分性的视觉特征是唇语识别中很关键的一步。
以往大多数提取唇语视频视觉特征的方法是基于嘴唇外表信息,包括传统的手工特征(如HOG特征和LBP特征)[4-6]和基于深度学习的特征[10, 14]。直观上,人在交流时,主要是观察对方嘴唇形状的变化帮助理解对方说话的内容。另一方面,嘴唇外表信息容易受到光照、不同人说话背景、不同人嘴唇外观的影响,所以我们从捕捉唇语视频中嘴唇形状的变换信息入手。为了较为精确地描述嘴唇形变信息,首先对嘴唇关键点进行追踪,使用Xiong和Torre[17]的人脸关键点提取算法,提取唇语视频中每帧图像嘴唇的18个关键点,如图 2所示。在GRID数据库上对说话内容为数字的那段唇语视频中的嘴唇关键点进行追踪,如图 3所示(可放大显示)。发现,对有限个关键点的位置的追踪能够描述说话者说话时嘴唇的运动,并且在说话内容相同的情况下,不同人的唇语视频中嘴唇关键点位置的纵坐标y随着时间的相对变化具有一致性,而在说话内容不同的情况下,不同人的唇语视频中嘴唇关键点的纵坐标y随着时间的相对变化有明显的不同,而嘴唇关键点位置的横坐标x随着时间的相对变化不是很明显。这表明用嘴唇关键点坐标描述的嘴唇形变信息存在一定的模式,于是我们考虑将每帧图像嘴唇的18个关键点的坐标(x, y)连接起来,得到一个描述该帧(设为第i帧)嘴唇形状的特征向量pi=(xi1, yi1, xi2, yi2, …, xi18, yi18)。
Download:
|
|
Download:
|
|
递归神经网络是在前向神经网络的基础上,在隐藏层节点和输出层节点的相邻时间点之间引入指向自身的连接,相比前向神经网络,递归神经网络更适用于序列学习任务,因为前向神经网络假设不同时间点输入的样本特征向量是独立的,而递归神经网络解除了这个假设,由于引入了节点指向相邻时间点自身的连接,它能够直接对网络当前时间点之前的输入和当前时间点的输出建模。这使得递归神经网络能够利用输入序列的上下文信息完成序列学习任务[2],因此对于输入序列局部出现的变形和失真现象具有鲁棒性。
LSTM由Hochreiter和Schmidhuber提出[18],用来解决递归神经网络训练中出现的梯度迷失的问题。在递归神经网络的基础上,LSTM将隐藏层节点和输出层节点替换为记忆单元,这个记忆单元有输入门、忘记门和输出门用来控制记忆状态向量的更新。LSTM对输入输出的计算具体如下:设LSTM第l-1层在t时刻的输入向量为htl-1∈RN,其中上标l-1表示第l-1层,当上标为0时,即表示LSTM在t时刻的输入向量xt,下标t表示t时刻。则LSTM第l-1层在t时刻的输出向量(即第l层在t时刻的输入向量)htl的更新公式为:
$ \begin{array}{l} {\mathit{\boldsymbol{i}}_t} = {\rm{sigm}}\left( {\mathit{\boldsymbol{W}}_i^l\left[\begin{array}{l} \mathit{\boldsymbol{h}}_t^{l-1}\\ \mathit{\boldsymbol{h}}_{t-1}^l \end{array} \right]} \right), \\ {\mathit{\boldsymbol{f}}_t} = {\rm{sigm}}\left( {\mathit{\boldsymbol{W}}_f^l\left[\begin{array}{l} \mathit{\boldsymbol{h}}_t^{l-1}\\ \mathit{\boldsymbol{h}}_{t-1}^l \end{array} \right]} \right), \\ {\mathit{\boldsymbol{o}}_t} = {\rm{sigm}}\left( {\mathit{\boldsymbol{W}}_o^l\left[\begin{array}{l} \mathit{\boldsymbol{h}}_t^{l-1}\\ \mathit{\boldsymbol{h}}_{t-1}^l \end{array} \right]} \right), \\ {\mathit{\boldsymbol{g}}_t} = {\rm{tanh}}\left( {\mathit{\boldsymbol{W}}_g^l\left[\begin{array}{l} \mathit{\boldsymbol{h}}_t^{l-1}\\ \mathit{\boldsymbol{h}}_{t-1}^l \end{array} \right]} \right), \\ \mathit{\boldsymbol{c}}_t^l = {\mathit{\boldsymbol{f}}_t} \odot \mathit{\boldsymbol{c}}_{t - 1}^l + {\mathit{\boldsymbol{i}}_t} \odot {\mathit{\boldsymbol{g}}_t}, \\ \;\;\mathit{\boldsymbol{h}}_t^l = {\mathit{\boldsymbol{o}}_t} \odot \tanh \left( {\mathit{\boldsymbol{c}}_t^l} \right). \end{array} $ |
其中:ctl表示第l层在t时刻的记忆状态向量,gt和ft分别表示作用于输入it的输入门和忘记门,ot为输出门,sigm和tanh分别表示sigmod函数和双曲正切函数作用于向量的每一个元素,Wil, Wfl, Wol, Wgl∈RN×2N为网络权值,⊙表示Hadamard积。LSTM记忆单元更新记忆的机制使得LSTM在训练过程中,能够利用输入门、忘记门和输出门学习如何控制梯度信息在网络中的传播,这能缓解递归神经网络在训练过程中出现的梯度迷失问题。
1.2.2 唇语识别LSTM前文提到我们研究的唇语识别的输入是一段标注了起止点的说话内容为范围确定的数字或者短语的视频,输出是对该段视频说话内容的预测,即我们要对该段视频进行分类。1.1中选用嘴唇关键点坐标序列描述唇语视觉特征,如图 3所示,从嘴唇关键点坐标序列整体来看,说话者7说9和说话者20说9时具有相同的模式,说5时具有另一种模式,如说9时较为明显的时序特征是关键点y坐标从时间点3到时间点4显著增长,说5时较为明显的时序特征是关键点y坐标从时间点1到时间点3显著下降。这表明需要利用整个序列的上下文信息去提取具有区分度的时序特征进行模式识别。从嘴唇关键点坐标序列局部来看,相同类别的模式并非完全一致,表现在:1)不同说话者说相同内容时嘴唇关键点的位置并非完全一致。2)不同说话者说相同内容时嘴唇关键点的变化趋势并非完全一致,如说话者7说9时关键点Pts11在从第3帧到第4帧位置的变化率比说话者20说9时更大。出现以上现象的可能原因有很多,比如不同说话者的说话习惯不一样,说话者与镜头的距离不一样,光照条件不一样导致嘴唇关键点的检测不一致。这表明需要采用对输入序列局部出现失真现象鲁棒的模型。同时,还发现嘴唇坐标关键点序列的长度并不是固定的,如说话者7说9用7帧,说话者20说9用9帧。为解决以上3个问题,我们决定采用LSTM完成唇语识别任务,输入为嘴唇关键点坐标序列,在最后一个时间点输出对序列的预测值。其原因是LSTM继承了递归神经网络的优点,能对任意长度输入序列当前时间点之前的输入和当前时间点的输出直接建模,能利用序列的上下文信息提取有用的时序特征,能对输入序列局部出现的失真现象鲁棒,并且相比递归神经网络更易训练。
我们的唇语识别LSTM具体描述如下:唇语视频是一段图片序列,经过1.1所述方法将图片序列转换成嘴唇关键点坐标序列x=(p1, p2, …, pT)∈RN×T,其中pi, i∈[1, T]表示第i帧所有嘴唇关键点的坐标,T表示这段视频的总帧数,N表示pi维度。我们使用的LSTM完成这样一个输入序列到输出类别的映射:(p1, p2, …, pT)|→
我们在3个公开的数据库上进行唇语识别实验,它们分别是GRID、MIRACL-VC和OuluVS。
GRID包含34人每人1 000条英文句子的音频和视频,视频分为普通质量画质和高质量画质。实验用的是普通质量画质的视频,分辨率为360×288,时长约3 s,帧率约25 fps, 视频的一帧如图 4(a)所示。视频中每条语句的模式为:命令单词+颜色单词+介词+字母+数字+副词,其中数字为0到9,并且每个单词的起止时间都做了标注。我们只对包含数字那段的视频做唇语识别实验。
Download:
|
|
MIRACL-VC包含15人每人读10个单词和10个短语10次的视频(图片帧的形式),每帧图片的分辨率为640×480,除正常的RGB图片外,MIRACL-VC唇语数据库还包括保存有深度信息的图片,RGB图片如图 4(b)所示。单词和短语如表 1所示。
OuluVS包含20人每人读10个短语5次的视频,分辨率为720×576,时长约1 s,帧率约25 fps。OuluVS噪声信息更大,因为少数说话者的头部会轻微摆动,并且少数唇语视频的终止点说话者嘴唇是张开状态。视频的一帧如图 4(c)所示,说话者所说的短语如表 2所示,可以看到,OuluVS短语和MIRACL-VC短语有8个相同。
在GRID和MIRACL-VC上已有的唇语识别研究使用的方法是很基本的标杆算法,如Lan等[7]使用主动外观模型和HMM相结合,Rekik等[9]使用传统手工特征(HOG和MBH)和SVM相结合。而在OuluVS上已有的唇语识别研究使用的方法很多,具体见最近的文献[3]。因此我们决定在GRID和MIRACL-VC上的实验侧重于对模型的分析,在OuluVS上的实验侧重于和state of art的比较。
2.2 实验设置在GRID上,我们的实验设置与Lan等[7]的实验设置一致:在15个说话者(说话者1~12,20,23~24)的说话视频中的数字部分做实验,把数据分成15份,每份只包含1名说话者,分别用每一份数据作为测试数据,剩下的14份作为训练数据,进行交叉验证,这样使得测试数据出现的用户不会出现在训练数据中,这能更好地评估模型的泛化能力。
在MIRACL-VC上,我们的实验设置与Rekik等[9]的实验一致:把数据分成15份,每份只包含1名说话者,分别用每一份数据作为测试数据,剩下的14份作为训练数据,进行交叉验证,同样,测试数据出现的用户不会出现在训练数据中。
在OuluVS上,我们的实验设置与Zhao等[4]的实验一致:把数据分成20份,每份只包含1名说话者,分别用每一份数据作为测试数据,剩下的19份作为训练数据,进行交叉验证,测试数据出现的用户不会出现在训练数据中。
因为以上3个数据库相对于训练我们的LSTM来说,数据量较小,我们采用如下数据增强技术:在GRID和MIRACL-VC上,令嘴唇关键点坐标序列的起止帧向前向后各滑动1帧;在OuluVS上,因为唇语视频的时长比另外2个数据库长,数据量比另外2个数据库小,而且噪声信息更多,令其嘴唇关键点坐标序列的起止帧向前向后各滑动3帧以生成更多样本。同时,在所有数据库上,对嘴唇关键坐标做了归一化。将以上方法生成的样本做最近邻插值,使得所有样本的嘴唇关键点坐标序列长度相同,这是为了使LSTM的训练收敛更快,根据对数据库唇语视频时长的统计,在GRID上设定所有样本的嘴唇关键点坐标序列长度为10,在MIRACL-VC上设定所有样本的嘴唇关键点坐标长度序列长度为12,在OuluVS上设定所有样本的嘴唇关键点坐标长度序列长度为40。经过对超参数不同值的实验,将LSTM隐藏层节点数统一设置为256,网络层数设置为3,使用dropout技术[19]对LSTM进行正则化,将层与层之间的权值dropout率和相邻时间点权值dropout率设置为1%。我们的LSTM的实现用到了深度学习库Keras①。
① Keras深度学习库是开源的,其网址为https://github.com/fchollet/keras。
2.3 实验结果 2.3.1 y和(x, y)的选择由图 3可观察到不同人说相同的内容时嘴唇关键点的纵坐标y随着时间的相对变化比较一致,而横坐标x随着时间的相对变化的一致性不明显。在MIRACL-VC上分别用嘴唇关键点的纵坐标y序列和嘴唇关键点的坐标(x, y)序列作为输入,评估二者的表现。实验结果如表 3所示。可以看到,虽然图 3中不同人说相同的内容时横坐标x随着时间相对变化的一致性不明显,但是对于唇语识别LSTM识别准确度的提升来说是很重要的。因此后面的实验用嘴唇关键点的坐标(x, y)序列作为输入。
我们在GRID上对我们的方法在单词上的唇语识别表现和Lan等[7]的结果进行比较,如表 4所示。表 4中app和shape分别表示使用主动外观模型的外表参数和形状参数为特征,app_pca表示使用外表特征和形状特征的融合,采用主成分分析法。可以看到,使用我们的方法将平均准确率提升33%以上,这表明Lan等[7]得出的唇语识别中嘴唇外表信息比嘴唇形状信息更重要的结论并非完全正确,因为我们的方法中用嘴唇关键点坐标序列与主动外观模型的形状参数类似,关键在于如何从这些信息中提取有用的空间-时序特征。
② 文献[7]中使用指标是平均单词准确度,计算方式为(H-I)/N,其中H为准确识别的单词数量,I为插入误差的数量,N为需要识别的的单词数量。在我们的实验中,I=0,因此我们的指标与之等价。
我们在MIRACL-VC上对我们的方法在单词和短语上的唇语识别表现和Rekik等[9]的结果进行比较,如表 5所示。表 5中下标c和d分别表示从RGB图像序列和深度图像序列提取特征。可以看到,在只使用RGB图像序列的情况下,使用我们的方法将平均准确率提升30%以上。我们还发现在文献[9]的实验中使用传统的运动特征,如MBHc,要比外表特征,如HOGc表现要差,这更加体现了用LSTM提取时序特征的优异性。
因为OuluVS的唇语视频数据量比GRID和MIRACL-VC小,同时OuluVS与MIRACL-VC的唇语视频说话内容大部分是相同的,相同的类别共有8个,我们决定令我们的唇语识别LSTM先在MIRACL-VC上进行预训练,然后在OuluVS上微调。与直接令我们的唇语识别LSTM在OuluVS上进行训练和测试的比较如图 5所示。发现,即使MIRACL-VC和OuluVS唇语视频的视觉信息相差很大(如图 4(b)和4(c)所示),在MIRACL-VC上进行预训练的模型比不在MIRACL-VC上进行预训练的模型表现要好(平均准确率85.0%对81.8%),而且只在MIRACL-VC上进行预训练的模型在OuluVS上的表现比随机猜说话内容的表现好很多(平均准确率34.6%对10%)。这表明我们的方法提取的空间-时间特征具有很好的泛化性。
Download:
|
|
我们将在OuluVS上的实验结果跟最近的唇语识别研究[4-6, 8]做了比较,如表 6所示。除Pei等[8]使用嘴唇外表信息和嘴唇形变信息的融合之外,其余方法[4-6]只用了嘴唇外表信息。我们的方法在OuluVS上的表现超过大多数利用嘴唇外表信息方法[4-6],并且比较接近平均准确率最高的方法[8](85.0%对89.7%)。这表明利用嘴唇形变信息完成唇语识别是很重要的,并且我们的方法能够从形变信息中提取具有区分性和泛化性的特征。
本文提出一种新的并且简单有效的唇语识别方法,它基于LSTM,输入为唇语视频所有帧嘴唇部分的关键点的坐标,能自动学习具有不变性的空间-时序特征,有效地解决了唇语视觉信息多样性的问题,结果显示这种方法在两个公开的唇语数据集GRID和MIRACL-VC上比传统的唇语识别方法准确率至少高30%,在另一个规范性更差的数据集OuluVS上,本方法表现接近于最优表现。由于这3个数据库数据量的限制,有理由相信,在数据量更大的情况下,本文提出的方法识别准确率将会更高。同时,因为本方法只是对唇语视频嘴唇关键点位置信息做处理,可以与已有的方法进行互补以达到更好的唇语识别效果。目前仅在分割的标注起止时间的单词或短语上做了唇语识别实验,未来将会在连续的单词和短语上进行唇语识别实验,它将会包括一个检测说话内容的过程,这将是我们以后工作的重点。
[1] |
McGurk H, MacDonald J. Hearing lips and seeing voices[J]. Nature, 1976, 264:746–748.
DOI:10.1038/264746a0 |
[2] |
Graves A.
Supervised sequence labelling with recurrent neural networks[M]. Berlin: Springer Berlin Heidelberg, 2012.
|
[3] |
Zhou Z, Zhao G, Hong X, et al. A review of recent advances in visual speech decoding[J]. Image & Vision Computing, 2014, 32:590–605.
|
[4] |
Zhao G, Barnard M, Pietikainen M. Lipreading With Local Spatiotemporal Descriptors[J]. IEEE transactions on multimedia, 2009, 11:1254–1265.
DOI:10.1109/TMM.2009.2030637 |
[5] |
Zhou Z, Zhao G, Pietikainen M, Towards a practical lipreading system[C]//Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on. IEEE, 2011: 137-144.
|
[6] |
Bakry A, Elgammal A. Mkpls: manifold kernel partial least squares for lipreading and speaker identification[C]//Computer Vision and Pattern Recognition (CVPR), 2013 IEEE Conference on. IEEE, 2013: 684-691.
|
[7] |
Lan Y, Harvey R, Theobald B J, et al. Comparing visual features for lipreading[C]//International Conference on Auditory-Visual Speech Processing. 2009: 102-106.
|
[8] |
Pei Y, Kim T K, Zha H. Unsupervised random forest manifold alignment for lipreading[C]//Proceedings of the IEEE International Conference on Computer Vision. 2013: 129-136.
|
[9] |
Rekik A, Ben-Hamadou A, Mahdi W. A new visual speech recognition approach for RGB-D cameras[C]//International Conference Image Analysis and Recognition. Springer International Publishing, 2014: 21-28.
|
[10] |
Noda K, Yamaguchi Y, Nakadai K, et al. Lipreading using convolutional neural network[J]. Interspeech, 2014:1149–1153.
|
[11] |
Graves A, Jaitly N. Towards end-to-end speech recognition with recurrent neural networks[C]//Proceedings of the 31st International Conference on Machine Learning, 2014: 1764-1772.
|
[12] |
Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neural networks[C]//Advances in Neural Information Processing Systems, 2014: 3104-3112.
|
[13] |
Donahue J, Hendricks L A, Guadarrama S, et al. Long-term recurrent convolutional networks for visual recognition and description[C]//Computer Vision and Pattern Recognition (CVPR), 2015 IEEE Conference on. IEEE, 2015: 2625-2634.
|
[14] |
Wand M, Koutn J. Lipreading with long short-term memory[C]//Acoustics, Speech and Signal Processing (ICASSP), 2016 IEEE International Conference on. IEEE, 2016: 6115-6119.
|
[15] |
Simonyan K, Zisserman A. Two-stream convolutional networks for action recognition in videos[C]//Advances in Neural Information Processing Systems, 2014: 568-576.
|
[16] |
Cooke M, Barker J, Cunningham S, et al. An audio-visual corpus for speech perception and automatic speech recognition[J]. The Journal of the Acoustical Society of America, 2006, 120:2421–2424.
DOI:10.1121/1.2229005 |
[17] |
Xiong X, Torre F D L. Supervised descent method and its applications to face alignment[C]//Computer Vision and Pattern Recognition (CVPR), 2013 IEEE Conference on. IEEE, 2013: 532-539.
|
[18] |
Hochreiter S, Schmidhuber J. Long short-term memory[J]. Neural computation, 1997, 9:1735–1780.
DOI:10.1162/neco.1997.9.8.1735 |
[19] |
Yarin G, Ghahramani Z. A theoretically grounded application of dropout in recurrent neural networks[C]//Advances in Neural Information Processing Systems, 2016: 1019-1027.
|