按照上一节所述的情感模型的算法,根据上一节提供的初始值和观察序列训练模型,由最后的模型产生观察序列,并且综合考虑行为模式因素和输入信号判断因素的影响,以不同的组合方式给情感虚拟人不同的刺激,即设定不同的回答情绪,从而可以得到虚拟人的情感反应结果。由于在对话中可能受到的意识刺激不同,所以同一个人的情感模型中状态产生的回答情绪也就不同,而转移概率矩阵及可见符号概率根据意识刺激的不同也有所不同,把对话中产生的意识刺激分为两种情况:“正向”与“负向”。这样,针对每种刺激分别有一个状态转移概率矩阵与之对应。用于模型重估的状态转移概率矩阵及可见符号概率矩阵的初始值的选取,是可以由经验来决定的,同时要考虑到外界刺激对各个心态下的情绪熵的作用,使得角色的情绪熵符合个人的性格特征。
在前面的叙述中,我们提到了一个情感状态的计算可以由下式得出:
P(en)=Γmn(Ex(ep),Ex(er))P(er)
式中,Γmn代表情绪mn的转换概率矩阵。现在根据直觉和对人类情绪的通常理解来定义这些概率值。
通常情况下,P(mn)=BBN(mc,mr,π)=P(mn/mc,mr)P(ei),由对话部分完成对mn的判断,即通过上述公式得出某一段对话,情感虚拟人产生的情绪为mn。P(mn/mc,mr)为每一种个性模型π定义了情绪变化的条件概率。这里为了简化问题,我们设定mn是已知的,对应P(er)。
因为已经预先设定了情感虚拟人的个性化建模中其外向的个性比例为0.7,神经质的比例是0.3,当前的情绪为中性。同时,我们要预先设定每一种可以让情绪状态发生改变的概率值,并规定通过计算概率转移得到的状态值中,最大情绪概率值如果大于次大情绪概率值的10%,则不考虑次大概率值所对应的情绪状态对于表情的影响。
这里,我们的用户与情感虚拟人之间的交流定位成经理与助理的角色。另外,为了更好地体现情感虚拟人的情感状态和变化,我们建立了一个简单的、包含不同情感色彩的对话数据库。如何构建完备的且具有人工智能的对话数据库,是一个非常繁杂的任务,这需要在以后的研究中逐步完善。
在设定的场景中,比如当用户输入“早上好”时,虚拟助理的情感状态是er,其对应的P(er)为
如果分别计算e1(高兴)、e2(生气)、e3(悲伤)、e4(中性)的概率值,而P(er)是根据经验值得到的,那么通过计算,可以最终得到每种情绪状态的概率结果为
P(e1,e2,e3,e4)=[0.6525(高兴)0.505(生气)0.5775(悲伤)0.2775(中性)]。由结果可得:情感虚拟人对话后的情绪状态中,高兴的比列因子数值最大,为0.6525;悲伤的比例因子次大,为0.5775。(0.6225-0.5775)/0.5775×100%=12.9%>10%,所以这里不考虑悲伤的情感因素对于虚拟人当前情绪的影响。另外,估计出的高兴状态的比例因子0.6525大于预先设定的阈值0.55,所以当前的中性情绪状态将被改变。在运行系统时,情感虚拟人输出数据库中对应的回答“早上好”,同时根据对各情感状态对应的表情分类Ex(ep),选择高兴状态下对应的表情。根据表7-4可知,当情感状态为高兴时,对应的AU组合为AU16+AU12。根据AU6和AU12分别对应的节点,系统自动进行面部表情合成的运动计算,输出结果如图7-29所示。
图7-29 情感交互系统运行界面之一
同理,如果情感虚拟人在对话系统中进行了不愉快的交流,比如用户输入了信息:公司出现了什么问题?此时,虚拟助理接收到“负向”刺激的信息时的情感状态为(www.daowen.com)
其情感状态转移过程为
P(e1,e2,e3,e4)=[0.125(高兴)0.155(生气)0.065(悲伤)0.1325(中性)]。由结果可得:情感虚拟人对话后的情绪状态中,生气的比列因子数值最大,为0.155;悲伤的比例因子次大,为0.1325。(0.155-0.1325)/0.1325×100%=1.9%>16.9%,所以这里不考虑中性的情感因素对于虚拟人当前情绪的影响。另外,估计出的生气状态的比例因子0.155大于预先设定的阈值0.15,所以当前的中性情绪状态将被改变。在运行系统时,虚拟助理输出对应的回答“我们的员工出现了失误”,同时根据对各情感状态对应的表情分类Ex(ep),选择生气情绪状态下对应的表情。根据表7-4可知,当情感状态为生气时,对应表中愤怒的AU组合为AU27+AU4+AU9。根据三组AU对应的节点,系统自动进行面部表情合成的运动计算,输出结果如图7-30所示。
图7-30 情感交互系统运行界面之二
本节涉及的内容包括人机交互模型、用户界面模型、用户界面设计方法及拟人化人机交互技术。其中,人机交互模型用到了图形图像的相关技术;用户界面模型采用了结构化模型;用户界面设计方法是基于人工心理情感模型进行设计的;拟人化人机交互技术具体涉及了虚拟现实技术中的三维交互技术,即OpenGL技术。首先,情感虚拟人系统需要有一个表现的载体,第一步就要构建三维人脸模型,这涉及许多领域的知识,比如图像图形处理技术、三维建模技术、表情合成技术等。而要再赋予它以情感,又要进一步涉及到情感计算、心理学、生理学及信息科学等领域的理论和方法。这是一项非常庞大和复杂的研究工作。本节以Candide模型作为通用模型,对网格进行纹理贴图后,通过控制AU来控制人脸模型的面部表情,达到参数化控制的目的,进而可以精确合成多种表情。
构建三维人脸模型及实现表情合成的步骤如下:
1)构建三维人脸模型。现有的研究领域中,有很多完善的人脸模型可以借鉴使用。这里,采用了Candide网络模型。Candide网络模型是一个基于图形数据的人脸。它是由一些多边形组成的三维立体。构建三维人脸,首先需要定义顶点,其次需要定义表面,然后定义AUV。在VC++环境下借助OpenGL图形库,初步得到的具备75个节点的Candide网格模型。
2)具备了基础的人脸三维网格模型后,需要让该模型能适应特定的人脸。这就需要进行人脸模型变换。基于网格模型中的特征点,结合对应的2D人脸图像,本节采用了先进行全局变换,后进行局部变换的方法。最后可以使Candide网络模型很好地适应2D图像中的人脸模型特征。
3)在完成对特征点的三维坐标调整之后,需要确定非特征点的位置。这里我们利用径向基插值算法计算非特征点的三维坐标。通过采用著名的FACS(脸部表情编码系统)方法,特别选取能控制合成人脸大部分表情的12组AU,通过控制AU来实现表情的分析与合成。针对不同表情对应不同的AU组合的原理,通过键盘的控制而改变其对应的FAP量值,使每个FAP包含的节点在变化范围内进行运动,从而在达到理论上可以合成任意表情的功能,并可以沿X、Y、Z轴进行任意角度的旋转。
4)构建完模型后,就要进行纹理贴图。本节采用了线积分卷积法来进行纹理的向量场映射方法。同时,根据自动产生的纹理贴图,3D人脸模型的纹理坐标可以通过将3D坐标系映射进入到纹理空间而得到。
根据人工心理情感模型,将基于FFM和BBN的情感模型应用于虚拟人交互系统,详细阐述了模型初始数值的选择方法,结合所构造虚拟人物的性格特征,给定了初始值和训练数据。通过算法进行情感反应计算,用Visual C++进行了界面设计。HMM比较适合人类心理的特征描述,但是它有分类能力差、对于相似的类别方面不易区分的缺点,而BBN在决策能力和对不确定信息的描述能力是很强的。这里,依据所构建的情感虚拟人个性化模型,设计了一个对话的场景,即一位经理和他的虚拟助理之间的对话。对于任一可能的输入,在交互界面上,通过对话框的内容,对心理状态的转换计算出心情出现的概率大小,并对前面内容中描述的不同的情感状态下的种种可能的回答进行编码。根据这些可能性、个性化和情绪处理模块选择最后的回答。在确定最后的情感状态后,系统自动选择对应的表情分类,进行实时合成,通过情感表达界面显示出此时虚拟人的表情动画。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。