掌桥专利:专业的专利平台
掌桥专利
首页

一种多模态表情识别方法、介质及系统

文献发布时间:2024-01-17 01:27:33


一种多模态表情识别方法、介质及系统

技术领域

本发明属于表情识别技术领域,具体而言,涉及一种多模态表情识别方法、介质及系统。

背景技术

随着人工智能、机器学习等技术的快速发展,表情识别已经成为计算机视觉和模式识别领域的重要研究方向。表情是人类交流的重要方式,通过识别和理解人的表情,可以更好地理解和解读人的情绪和意图,对于社交机器人、视频会议、远程医疗、智能监控等领域具有广泛的应用价值。表情识别技术通常通过分析和理解人的面部动作、眼球动作、语音和姿态等多模态信息,来识别和理解人的情绪状态。传统的表情识别方法主要基于单一模态信息,如仅仅通过分析面部动作或语音信息来进行表情识别。然而,这种方法由于忽略了人情绪表达的多模态特性,往往无法准确地识别和理解人的真实情绪状态。为了解决这个问题,近年来,研究者们开始尝试利用多模态信息进行表情识别,以提高表情识别的准确性和鲁棒性。

现有的表情识别方法大多采用静态的特征提取方法,即在单一的时间点上提取特征进行识别,这种方法忽略了情绪的动态过程,无法准确地捕捉到情绪的变化,也就是说对时间段的表情(称为表情段)缺乏识别分析,例如电视剧《三国演义》中孙权在迎接刘备的宴前伏兵一段中,将领贾华的一脸“懵逼”的表情即一个表情段,如果将贾华的表情分帧识别,则无法识别出他的准确表情。而且,这种方法无法处理复杂的情绪状态,如混合情绪、遮掩情绪等。

发明内容

有鉴于此,本发明提供一种多模态表情识别方法、介质及系统,能够解决现有技术,忽略了情绪的动态过程,无法准确地捕捉到情绪的变化,无法处理复杂的情绪状态的技术问题。

本发明是这样实现的:

本发明的第一方面提供一种多模态表情识别方法,其中,包括以下步骤:

S10、从录像中获取识别对象的多模态特征,包括脸部动作特征、眼球动作特征、语音特征以及姿态动作特征;

S20、根据脸部动作特征获取多个表情,形成第一表情序列;

S30、利用眼球动作特征对所述第一表情序列进行修正,得到第二表情序列;

S40、利用语音特征和姿态动作特征对所述第二表情序列进行评分;

S50、对所述第二表情序列中评分低于评分阈值的表情利用预先训练好的多模态表情识别模型进行识别,并利用识别后的表情更新所述第二表情序列,得到第三表情序列;

S60、对所述第三表情序列进行单表情和复表情划分,形成包含至少一个表情段的表情段序列;

S70、将表情段序列输出。

其中,单表情是指在一段时间内,个体只显示出一种表情,例如快乐、悲伤、惊讶等。复表情则是指在相同的时间段内,个体可能会同时展示出两种或两种以上的表情,例如既快乐又惊讶,或者既愤怒又悲伤等。在实际的情感表达中,复表情的出现很常见,因为人的情感复杂,往往不可能只通过一种表情来完全表达。

在上述技术方案的基础上,本发明的一种多模态表情识别方法还可以做如下改进:

其中,所述脸部动作特征、眼球动作特征以及姿态动作特征的获取方式为:

对所述录像的每一帧进行脸部识别、眼球识别以及姿态识别,得到描述脸部特征的脸部特征点集合、描述眼球特征的眼球特征点集合以及描述姿态特征的姿态特征点集合;

将每一帧对应的脸部特征点集合、眼球特征点集合以及姿态特征点集合根据时间轴建立脸部动作特征矩阵、眼球动作特征矩阵以及姿态动作特征矩阵,作为脸部动作特征、眼球动作特征以及姿态动作特征。

其中,所述语音特征的获取方式为:

从所述录像中提取出音频信号;

对提取的音频信号进行预处理,包括降噪、增益等操作,以提高音频信号的质量;

对预处理后的音频信号通过语音特征提取器进行特征提取,得到音频信号的基本语音特征;

对录像中的口型进行识别,得到口型特征;

训练一个神经网络,通过对口型特征和基本语音特征进行口型语音同步处理,得到语音特征。

进一步的,所述根据脸部动作特征获取多个表情,形成第一表情序列的步骤,具体是:根据每一帧对应的脸部特征点集合,识别每一帧的表情,所述每一帧的表情包含表情表现度,并将得到的每一帧的表情按照时间轴形成第一表情序列。

其中,所述利用眼球动作特征对所述第一表情序列进行修正,得到第二表情序列的步骤,具体包括:

步骤1:量化眼球动作特征;

步骤2:建立眼球动作特征和表情之间的对应关系;

步骤3:对第一表情序列进行修正,得到第二表情序列。

其中,所述利用语音特征和姿态动作特征对所述第二表情序列进行评分的步骤,具体包括:

对于所述第二表情序列中的每一个表情,提取其对应的语音特征和姿态动作特征,若不存在语音特征或姿态动作特征,则将对应的表情的评分直接设置为最高评分;若同时存在语音特征和姿态动作特征,则按照下面的步骤进行:

利用语音情感评分模型,对语音特征进行评分,得到语音情感评分;

利用姿态情感评分模型,对姿态动作特征进行评分,得到姿态情感评分;

利用加权平均的方法,计算表情评分。

其中,所述对所述第二表情序列中评分低于评分阈值的表情利用预先训练好的多模态表情识别模型进行识别,并利用识别后的表情更新所述第二表情序列,得到第三表情序列的步骤,具体包括:

步骤1、定义评分阈值;

步骤2、对第二表情序列中的每一个表情进行遍历,获取全部评分小于评分阈值的表情;

步骤3、利用预先训练好的多模态表情识别模型对步骤2得到的表情进行识别,得到新表情,并将新表情的评分阈值设为1,然后更新第二表情序列,得到第三表情序列。

其中,所述对所述第三表情序列进行单表情和复表情划分,形成包含至少一个表情段的表情段序列的步骤,具体为:

首先,对第三表情序列进行预处理;

然后,对预处理后的表情序列进行单表情和复表情划分;

最后,将划分出的单表情和复表情组合成一个表情段序列。

本发明的第二方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,所述程序指令运行时,用于执行上述的一种多模态表情识别方法。

本发明的第三方面提供一种多模态表情识别系统,其中,包含上述的计算机可读存储介质。

与现有技术相比较,本发明提供的一种多模态表情识别方法、介质及系统的有益效果是:本发明的一种多模态表情识别方法,通过融合脸部动作特征、眼球动作特征、语音特征以及姿态动作特征,实现了对表情的精准识别,具有较高的识别准确度和效率。

首先,在S10步骤中,本发明通过对录像中的每一帧进行脸部识别、眼球识别以及姿态识别,得到描述脸部特征的脸部特征点集合、描述眼球特征的眼球特征点集合以及描述姿态特征的姿态特征点集合。这种方式能够全面、详尽地捕捉到识别对象的多模态特征,为后续的表情识别提供了丰富的输入信息。而通过构建脸部动作特征矩阵、眼球动作特征矩阵以及姿态动作特征矩阵,可以清晰、直观地呈现出识别对象的动态特征。

同时,本发明还针对语音特征的获取方式进行了创新。考虑到距离可能导致语音图像不对齐的问题,本发明采用了口型和语音匹配的方式来对齐。具体地,从录像中提取出音频信号,对音频信号进行预处理以提高其质量,然后通过语音特征提取器进行特征提取。同时,对录像中的口型进行识别,得到口型特征。通过训练一个神经网络,对口型特征和基本语音特征进行口型语音同步处理,从而得到语音特征。这种方式既能够避免语音图像不对齐的问题,又能够提高语音特征的准确性,有助于提高表情识别的精准度。

然后,在S20步骤中,本发明根据脸部动作特征获取多个表情,形成第一表情序列。这个过程可以精确地捕捉到识别对象的脸部表情变化,为后续的表情识别提供了重要的基础。

在S30步骤中,利用眼球动作特征对第一表情序列进行修正,得到第二表情序列。眼球的动作往往能够反映出识别对象的内心情绪,因此,通过引入眼球动作特征,可以进一步提升表情识别的精确度。

在S40步骤中,利用语音特征和姿态动作特征对第二表情序列进行评分。这里的评分过程可以有效地筛选出可能的错误识别,从而提高表情识别的准确度。

在S50步骤中,对第二表情序列中评分低于评分阈值的表情利用预先训练好的多模态表情识别模型进行识别,并利用识别后的表情更新第二表情序列,得到第三表情序列。这个过程可以有效地纠正可能的错误识别,进一步提高表情识别的准确度。

在S60步骤中,对第三表情序列进行单表情和复表情划分,形成包含至少一个表情段的表情段序列。这种方式可以更好地理解和解析识别对象的表情变化,提供更为详细和丰富的表情信息,且利用表情段序列来对表情进行描述,实现了对表情的动态过程的分析,有助于更好的捕捉情绪变化。

最后,在S70步骤中,将表情段序列输出。这种方式可以直观地呈现出识别对象的表情变化,便于后续的分析和利用。

总的来说,本发明的一种多模态表情识别方法,通过融合多种模态特征,实现了对表情的精准识别,能够解决现有技术,忽略了情绪的动态过程,无法准确地捕捉到情绪的变化,无法处理复杂的情绪状态的技术问题,具有较高的识别准确度和效率,具有较强的实用价值和广阔的应用前景。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种多模态表情识别方法的流程图。

具体实施方式

为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,其中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

另外需要说明的是,本发明的具体实施方式部分中,使用了公式以及伪代码,这些公式或伪代码中使用了不少用于描述序号的临时变量,比如i,j,k,这些临时变量均为公式或为伪代码计算或运行过程的中间变量。

如图1所示,是本发明第一方面提供一种多模态表情识别方法的流程图,本方法包括以下步骤:

S10、从录像中获取识别对象的多模态特征,包括脸部动作特征、眼球动作特征、语音特征以及姿态动作特征;

S20、根据脸部动作特征获取多个表情,形成第一表情序列;

S30、利用眼球动作特征对第一表情序列进行修正,得到第二表情序列;

S40、利用语音特征和姿态动作特征对第二表情序列进行评分;

S50、对第二表情序列中评分低于评分阈值的表情利用预先训练好的多模态表情识别模型进行识别,并利用识别后的表情更新第二表情序列,得到第三表情序列;

S60、对第三表情序列进行单表情和复表情划分,形成包含至少一个表情段的表情段序列;

S70、将表情段序列输出。

其中,在上述技术方案中,脸部动作特征、眼球动作特征以及姿态动作特征的获取方式为:

对录像的每一帧进行脸部识别、眼球识别以及姿态识别,得到描述脸部特征的脸部特征点集合、描述眼球特征的眼球特征点集合以及描述姿态特征的姿态特征点集合;

将每一帧对应的脸部特征点集合、眼球特征点集合以及姿态特征点集合根据时间轴建立脸部动作特征矩阵、眼球动作特征矩阵以及姿态动作特征矩阵,作为脸部动作特征、眼球动作特征以及姿态动作特征。

在步骤S10的实施方式中,录像是由许多帧图像构成的,将每一帧图像作为一个单独的处理单元,最开始需要对每一帧进行预处理,包括降噪、滤波和增强处理。

对于每一帧,首先进行脸部识别,这通常涉及到人脸检测和特征提取。可以使用现有的人脸识别算法,如深度学习的卷积神经网络(CNN)模型、Dlib算法,对每一帧进行处理,得到脸部的特征点集合,这些特征点可以描述脸部的轮廓、眼睛、鼻子、嘴巴等关键部位的位置和形状。

接着,进行眼球动作特征的提取,这涉及到眼睛的检测和瞳孔的定位。可以利用现有的眼球追踪算法,获取眼球的运动轨迹,形成眼球动作特征。

然后,提取语音特征。这需要从录像中提取音频信号,然后使用语音处理技术,如MFCC(Mel Frequency Cepstral Coefficients)等,提取语音的特征。

最后,提取姿态动作特征。这通常涉及到人体姿态的检测和关键点的定位。可以使用现有的姿态估计算法,如OpenPose等,对每一帧进行处理,得到描述姿态的特征点集合。

通过以上步骤,就可以从每一帧中获取脸部动作特征、眼球动作特征、语音特征以及姿态动作特征,然后将这些特征按照时间顺序组织起来,形成多模态特征。

在本发明的另一种实施例中,需要进一步考虑录像中的语音是否来自于被识别对象,以及语音传输和图像的时间间隔,这是考虑到由于距离,语音和图像存在不对齐的问题。

其中,在上述技术方案中,语音特征的获取方式为:

从录像中提取出音频信号;

对提取的音频信号进行预处理,包括降噪、增益等操作,以提高音频信号的质量;

对预处理后的音频信号通过语音特征提取器进行特征提取,得到音频信号的基本语音特征;

对录像中的口型进行识别,得到口型特征;

训练一个神经网络,通过对口型特征和基本语音特征进行口型语音同步处理,得到语音特征。

具体而言,获取语音特征的实施方式如下:

从录像中提取音频信号:首先,使用音频提取工具从录像中提取音频信号。这个步骤可以使用各种现有的音频提取软件或者工具,例如ffmpeg等。

对提取的音频信号进行预处理:在提取出音频信号后,为了提高音频信号的质量,对音频信号进行预处理,包括降噪、增益等操作。降噪可以使用各种降噪算法,例如谱减法、Wiener滤波等;增益的目的是调整音频信号的大小,使其在后续处理中更加容易识别。

对预处理后的音频信号通过语音特征提取器进行特征提取:在预处理后,使用语音特征提取器对音频信号进行特征提取,得到音频信号的基本语音特征。语音特征包括音节、语调、音高、音强等,特征提取可以使用MFCC、LPCC等传统特征提取方法,也可以使用深度学习等方法。

对录像中的口型进行识别,得到口型特征:同时,对录像中的口型进行识别,得到口型特征。口型识别可以使用图像处理的方法,例如边缘检测、区域生长等,也可以使用深度学习的方法,例如卷积神经网络等。

训练一个神经网络,通过对口型特征和基本语音特征进行口型语音同步处理,得到语音特征:最后,训练一个神经网络,输入口型特征和基本语音特征,输出口型语音同步处理后的语音特征。神经网络的训练可以使用反向传播算法,优化算法可以使用随机梯度下降、Adam等。通过这种方式,可以解决距离导致语音图像不对齐的问题。

在本发明中,将使用一个多层感知机(MLP)作为神经网络模型。MLP是一种前馈神经网络,它包括一个输入层、一个或多个隐藏层和一个输出层。

在神经网络的训练过程中,准备训练样本。训练样本是一系列预采集的大量包含口型特征和基本语音特征的数据,用于训练神经网络。在本发明中,训练样本可以从录像中获取,包括口型特征和语音特征。口型特征可以通过对录像中的口型进行识别得到,语音特征可以通过对录像中提取的音频信号进行处理得到。

具体来说,神经网络的输入层接收口型特征和基本语音特征作为输入。这些特征可以是一系列的数字,每个数字代表一个特定的特征。例如,口型特征可以包括嘴唇的宽度、高度等,语音特征可以包括音频信号的频率、振幅等。

隐藏层是神经网络的核心,它负责对输入数据进行处理,并将处理结果传递给输出层。在隐藏层中,每个神经元都会对其接收到的数据进行加权求和,并通过一个激活函数进行非线性变换。

输出层接收隐藏层的输出,并将其转化为想要的格式。在本发明中,输出层将输出一个语音特征向量。

通过这样的训练过程,神经网络能够学习到口型特征和基本语音特征之间的关系,从而能够对未知的口型和语音进行准确的预测。

进一步的,在上述技术方案中,根据脸部动作特征获取多个表情,形成第一表情序列的步骤,具体是:根据每一帧对应的脸部特征点集合,识别每一帧的表情,所述每一帧的表情包含表情表现度,并将得到的每一帧的表情按照时间轴形成第一表情序列。

在步骤S20中,将使用深度学习技术,特别是卷积神经网络(ConvolutionalNeural Networks,CNN)来从每一帧的脸部特征点集合中提取表情特征,并进行表情识别。具体实施方式如下:

首先,将脸部特征点集合作为输入,送入预先训练好的CNN模型中。这里的CNN模型是通过大量的带有标签的人脸图像进行训练得到的,它已经学会了如何从脸部特征点集合中提取有用的表情特征。CNN模型的结构通常包括多个卷积层、池化层和全连接层。卷积层和池化层负责提取局部的、不同尺度的特征,全连接层则将这些特征整合起来,进行最后的分类。

在表情识别过程中,首先通过卷积层将脸部特征点集合转化为特征映射(FeatureMaps)。然后,使用池化层进行特征降维,提高模型的计算效率和鲁棒性。池化操作通常有最大池化(Max Pooling)和平均池化(Average Pooling)两种,这里采用最大池化;通过重复的卷积和池化操作,可以把原始的脸部特征点集合转化为一种高级的、抽象的特征表示,这种特征表示能够有效地捕捉到人脸的表情信息。最后,使用全连接层对提取的特征进行分类,得到每一帧的表情。

在识别出每一帧的表情后,还需要计算出表情的表现度。表情的表现度可以理解为表情的强度或明显程度,它反映了一个人表情的鲜明度。可以使用softmax函数来计算每一帧的表情表现度,softmax函数可以将任意实数映射到(0,1)区间,使得输出可以解释为概率。softmax函数可以表示为:

其中,

最后,将每一帧的表情和对应的表现度按照时间顺序连接起来,形成第一表情序列。

这一实施例中采用的是softmax函数来计算每一帧的表情表现度,在本发明的另一个实施例中,还可以通过计算特征点间距离变化来获取表情表现度。假设脸部特征点集合为

其中,

然后,可以通过聚类算法将每一帧的表情划分为不同的类别,如快乐、悲伤、愤怒、惊讶等。对于每一帧,可以计算其与每个类别的距离,然后将其划分为距离最近的类别,即:

其中,

通过上述步骤,可以得到每一帧的表情类别和表情表现度,然后根据时间轴将其形成第一表情序列。为了减小噪声的影响,可以采用滑动窗口法对表情序列进行平滑处理,即:

其中,

通过上述步骤,可以得到每一帧的表情类别和表情表现度,然后根据时间轴将其形成第一表情序列。

其中,在上述技术方案中,利用眼球动作特征对第一表情序列进行修正,得到第二表情序列的步骤,具体包括:

步骤1:量化眼球动作特征;

步骤2:建立眼球动作特征和表情之间的对应关系;

步骤3:对第一表情序列进行修正,得到第二表情序列。

步骤S30的具体实施方式如下:

在表情识别过程中,眼球动作特征是非常重要的一部分,因为人们的眼球运动和表情有着密切的关联。例如,当人们感到惊讶或者害怕的时候,眼睛会变得大大的,眼球会看向上方;而当人们感到疲倦或者无聊的时候,眼睛会变得疲倦,眼球会看向下方。因此,通过对眼球动作特征的利用,可以对第一表情序列进行修正,得到更为准确的第二表情序列。

步骤1:量化眼球动作特征

我们首先需要量化眼球动作特征,将眼球的运动情况转化为数值形式。具体来说,我们将眼球的运动方向和幅度作为主要的量化参数。

(1) 计算眼球运动方向

我们可以通过眼球特征点集合的变化来计算眼球运动的方向。具体的计算方法是,对于每一帧,计算眼球特征点的质心,然后计算质心在连续两帧之间的运动方向。这可以用以下公式表示:

其中,

(2) 计算眼球运动幅度

我们可以通过眼球特征点集合的变化来计算眼球运动的幅度。具体的计算方法是,对于每一帧,计算眼球特征点集合的协方差矩阵,然后计算协方差矩阵的特征值之和,该值可以反映眼球运动的幅度。这可以用以下公式表示:

其中,

步骤2:建立眼球动作特征和表情之间的对应关系

我们需要建立眼球动作特征和表情之间的对应关系。我们可以设定一个眼球动作特征的阈值,当眼球动作特征超过这个阈值时,我们就认为这种表情存在。这个阈值可以通过机器学习的方法来确定或通过大量的训练数据,训练一个分类器,输入为眼球动作特征,输出为表情,然后通过交叉验证的方法来确定阈值。

步骤3:对第一表情序列进行修正

我们需要对第一表情序列进行修正。具体来说,对于第一表情序列中的每一个表情,我们都计算其对应的眼球动作特征,然后通过上述的阈值来判断这个表情是否存在,如果不存在,我们就将这个表情从第一表情序列中删除,得到第二表情序列。

通过以上步骤,我们可以利用眼球动作特征对第一表情序列进行修正,得到第二表情序列。

其中,在上述技术方案中,利用语音特征和姿态动作特征对第二表情序列进行评分的步骤,具体包括:

对于第二表情序列中的每一个表情,提取其对应的语音特征和姿态动作特征,若不存在语音特征或姿态动作特征,则将对应的表情的评分直接设置为最高评分;若同时存在语音特征和姿态动作特征,则按照下面的步骤进行:

利用语音情感评分模型,对语音特征进行评分,得到语音情感评分;

利用姿态情感评分模型,对姿态动作特征进行评分,得到姿态情感评分;

利用加权平均的方法,计算表情评分。

步骤S40的实施方式主要包括利用语音特征和姿态动作特征对第二表情序列进行评分。这一步骤的目标是通过对多模态特征的综合考虑,对表情序列进行评分,从而达到对表情的精准识别和判断。

首先,对于语音特征的评分,采用的是语音情感评分模型。这个模型是通过有监督学习训练得到的,其训练数据是由人工标注的语音情感数据集。在此模型中,将语音特征作为输入,语音情感标签作为输出。语音情感评分模型可以表示为一个函数

其次,对于姿态动作特征的评分,采用的是姿态情感评分模型。这个模型同样是通过有监督学习训练得到的,其训练数据是由人工标注的姿态情感数据集。在此模型中,将姿态动作特征作为输入,姿态情感标签作为输出。姿态情感评分模型可以表示为一个函数

然后,需要将语音情感评分和姿态情感评分进行综合,得到最终的表情评分。若不存在语音特征或姿态动作特征,则将对应的表情的评分直接设置为最高评分;若同时存在语音特征和姿态动作特征,则按照下面的步骤进行:这里采用的是加权平均的方法,即

最后,对于第二表情序列中的每一个表情

其中,在上述技术方案中,对第二表情序列中评分低于评分阈值的表情利用预先训练好的多模态表情识别模型进行识别,并利用识别后的表情更新第二表情序列,得到第三表情序列的步骤,具体包括:

步骤1、定义评分阈值;

步骤2、对第二表情序列中的每一个表情进行遍历,获取全部评分小于评分阈值的表情;

步骤3、利用预先训练好的多模态表情识别模型对步骤2得到的表情进行识别,得到新表情,并将新表情的评分阈值设为1,然后更新第二表情序列,得到第三表情序列。

在步骤S50中,对第二表情序列中评分低于评分阈值的表情利用预先训练好的多模态表情识别模型进行识别,并利用识别后的表情更新第二表情序列,得到第三表情序列。这个步骤的实施方式主要包括以下几个步骤:

首先,定义评分阈值

然后,对第二表情序列中的每一个表情进行遍历,如果表情的评分低于

首先,收集大量的多模态表情数据,包括脸部动作特征、眼球动作特征、语音特征以及姿态动作特征,以及对应的表情标签。这些数据可以从互联网上获取,也可以通过实验室的设备进行采集。

然后,将这些数据分为训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。

接下来,定义模型的结构。比如,如果使用CNN,可以定义多个卷积层、池化层和全连接层;如果使用RNN,可以定义多个循环层和全连接层。

然后,定义模型的损失函数和优化器。损失函数用于衡量模型的预测结果和真实结果之间的差距,优化器用于调整模型的参数以最小化损失函数。

接下来,将训练集的数据输入到模型中,通过前向传播计算出模型的预测结果,然后通过反向传播更新模型的参数。

最后,将测试集的数据输入到模型中,计算模型的预测结果,然后计算模型在测试集上的准确率,以此来评估模型的性能。

得到多模态表情识别模型后,就可以将第二表情序列中评分低于

首先,将表情的脸部动作特征、眼球动作特征、语音特征以及姿态动作特征输入到模型中。

然后,通过前向传播计算出模型的预测结果。这个预测结果是一个概率分布,表示模型预测该表情为每一种可能表情的概率。

最后,选择概率最大的表情作为模型的预测结果。

将模型的预测结果作为表情的新的识别结果,并将其评分设置为最高评分,然后更新第二表情序列,得到第三表情序列。

其中,在上述技术方案中,对第三表情序列进行单表情和复表情划分,形成包含至少一个表情段的表情段序列的步骤,具体为:

首先,对第三表情序列进行预处理;

然后,对预处理后的表情序列进行单表情和复表情划分;

最后,将划分出的单表情和复表情组合成一个表情段序列。

这一步骤的具体实施方式描述如下:

首先,对第三表情序列进行预处理。预处理的目的是为了减少噪声和不必要的干扰,以便更准确地进行单表情和复表情划分。预处理主要包括以下两个步骤:

平滑处理:对第三表情序列进行平滑处理,以减少由于识别误差或其他非表情因素导致的表情波动。常用的平滑处理方法有移动平均法、中值滤波法等。优选的,可以使用移动平均法进行平滑处理,具体公式为:

其中,

去除极值:对平滑处理后的表情序列进行极值去除,以减少由于表情识别误差或其他非表情因素导致的极端表情。可以设定一个阈值

然后,对预处理后的表情序列进行单表情和复表情划分。具体方法如下:

单表情划分:可以设定一个表情变化阈值

最后,将划分出的单表情和复表情组合成一个表情段序列。

步骤S70体实施方式如下:

在此步骤中,将表情段序列输出。这里的表情段序列是一个包含至少一个表情段的序列,每个表情段包含一个或多个连续帧,每帧都有一个对应的表情标签。

可以将表情段序列输出为一个文件,每行包含一个表情段的信息,包括表情段的开始时间、结束时间以及表情标签。也可以将表情段序列输出为一个图形用户界面,用户可以通过滑动滚动条来查看不同时间段的表情标签。

这是步骤S70的具体实施方式。通过这种方式,可以将表情识别的结果以一种直观的方式呈现给用户,帮助用户更好地理解识别结果。

实施步骤S70的伪代码如下:

function output_expression_segment_sequence(E):

S = [] # 表情段序列

j = 0 # 上一个表情段的结束位置的下一个位置

for i in range(len(E) - 1):

if E[i] != E[i + 1]:

S.append((j, i, E[i]))

j = i + 1

S.append((j, len(E) - 1, E[j]))

return S

在这个伪代码中,首先创建一个空的表情段序列S。然后,初始化上一个表情段的结束位置的下一个位置j为0。然后,遍历表情标签序列E的每个位置i。如果在位置i的表情标签和位置i + 1的表情标签不同,那么就找到了一个表情段,从位置j到位置i,标签为E[i]。将这个表情段添加到表情段序列S中,然后将j更新为i + 1。最后,将从位置j到表情标签序列E的结束位置的表情段添加到表情段序列S中。

本发明的第二方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,所述程序指令运行时,用于执行上述的一种多模态表情识别方法。

本发明的第三方面提供一种多模态表情识别系统,其中,包含上述的计算机可读存储介质。

具体的,本发明的原理是:本发明提供了一种多模态表情识别方法,该方法主要利用脸部动作特征、眼球动作特征、语音特征以及姿态动作特征,对识别对象的表情进行有效的识别。

首先,从录像中获取识别对象的多模态特征。具体来说,对录像的每一帧进行脸部识别、眼球识别以及姿态识别,得到描述脸部特征的脸部特征点集合、描述眼球特征的眼球特征点集合以及描述姿态特征的姿态特征点集合。然后,将每一帧对应的脸部特征点集合、眼球特征点集合以及姿态特征点集合根据时间轴建立脸部动作特征矩阵、眼球动作特征矩阵以及姿态动作特征矩阵,作为脸部动作特征、眼球动作特征以及姿态动作特征。这些特征能够反映出识别对象的动态表情变化,有助于提高表情识别的准确性。

其次,对于语音特征的获取,需要考虑距离导致语音图像不对齐的问题,本发明采用口型和语音匹配的方式来对齐。具体的获取方式为:从录像中提取出音频信号;对提取的音频信号进行预处理,包括降噪、增益等操作,以提高音频信号的质量;对预处理后的音频信号通过语音特征提取器进行特征提取,得到音频信号的基本语音特征;对录像中的口型进行识别,得到口型特征;训练一个神经网络,通过对口型特征和基本语音特征进行口型语音同步处理,得到语音特征。

然后,根据脸部动作特征获取多个表情,形成第一表情序列。利用眼球动作特征对第一表情序列进行修正,得到第二表情序列。眼球动作对于表情的识别具有重要的影响,例如,眼睛的闭合程度、眼睛的移动速度和方向等都可能影响到表情的识别结果。

接着,利用语音特征和姿态动作特征对第二表情序列进行评分。语音特征和姿态动作特征能够提供额外的上下文信息,有助于更准确地识别表情。例如,当识别对象在说话时,其语音特征可能会影响到表情的识别;当识别对象在做某些动作时,其姿态动作特征可能会影响到表情的识别。

之后,对第二表情序列中评分低于评分阈值的表情利用预先训练好的多模态表情识别模型进行识别,并利用识别后的表情更新第二表情序列,得到第三表情序列。这一步骤可以进一步提高表情识别的准确性。

最后,对第三表情序列进行单表情和复表情划分,形成包含至少一个表情段的表情段序列,并将表情段序列输出。这一步骤可以帮助用户更好地理解识别对象的表情变化。

总的来说,本发明通过融合多模态特征,实现了对表情的精确识别。同时,通过引入评分机制和多模态表情识别模型,进一步提高了表情识别的准确性。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

技术分类

06120116224796