基于情感计算和Web3D技术的虚拟学习环境实现的关键技术研究*
2011-11-07廖瑞华李勇帆
廖瑞华,李勇帆
(湖南第一师范学院 信息科学与工程系,湖南 长沙 410205)
基于情感计算和Web3D技术的虚拟学习环境实现的关键技术研究*
廖瑞华,李勇帆
(湖南第一师范学院 信息科学与工程系,湖南 长沙 410205)
采用情感计算和Web3D技术创建具有交互性、沉浸感的虚拟学习环境,能够更好地发挥网络远程教育的优势,能有效地提高学习者的网络在线学习效果。本文在简要介绍虚拟学习环境的结构特性的基础上,分析了其实现过程中所涉及的主要技术,包括情感计算技术中的人脸表情识别以及Web3D技术中的VRML建模语言,并进一步探讨了实现的具体方法。
虚拟学习环境;情感计算;Web3D技术;人脸表情识别
一、引言
虚拟学习环境就是利用计算机技术、通信技术、仿真技术、人工智能技术等进行双向交互式学习的一种模式。[1]虚拟学习环境概念,最早在1989年由美国的William Wolf教授提出,用来描述一个计算机网络化的虚拟环境。虚拟学习环境因其广阔的应用前景,各国均在大力开发,已经取得了一些进展。例如,美国巴尔的摩(Baltimore)约翰霍普金斯大学化学工程系的卡尔威教授(Professor Michael Karweit)在电脑网络上建立了一个“虚拟学习环境”,让工程系的学生可以通过电脑网络来进行学习,尝试解决工程上遇到的各种问题;德国的汉诺威大学建立了虚拟自动化学习室。在国内,虚拟学习环境的建设也得到了很大的重视。目前,已有部分高校初步建立了虚拟学习室。
总之,以网络为主要载体的虚拟学习环境,给用户随时获取新知识提供了便捷和强有力的支持,以互联网为核心的在线学习(E-learning)正在成为全球性的教育模式的潮流和趋势。而本文基于当前远程教育发展的要求,研究的主要目的就是以“以学习者为中心,学习者是认知的主体,是知识意义的主动建构者”的原则设计虚拟学习环境,充分重视学习者的情感与交互性,从而达到提高学习效率和人性化的目的。
二、情感计算和Web3D技术概述
1.情感计算的技术概述
情感计算就是通过计算机技术创建一种能感知、识别和理解人的情感,并能针对人的情感做出智能、灵敏、友好反应的一套计算方法。[2]通过对用户情感的获取、分析与识别,用户的情感状态便可被计算机所了解,在此基础上,计算机做出合适反应以适应可能不断变化着的用户情感。因此,用户的情感信息如何被计算机所识别、计算机如何对识别的情感信息做出最合适的反应则是情感计算技术的关键。
到目前为止,情感计算主要通过人脸表情识别、姿态肢体分析、语音分析等方式进行研究。由于人类的表情能实时地、明显地反映情感的变化,人脸不同部位具有不同的表情作用。例如:眼睛对表达忧伤最直接,口部对表达快乐与厌恶最直接,而眼睛、嘴和前额对表达愤怒很直接。因此,本文研究的虚拟学习环境采用基于人脸表情识别技术进行用户的情感计算。
人脸表情识别系统流程图如图1所示。其识别流程如下:(1)分析人脸面部图像,建立人脸部件的组合模型,提取子目标图像;(2)分析部件的形状,对部件建立可变形模板;(3)对匹配进行分析,利用能量优化,通过模板匹配对目标进行特征提取,得到人脸表情的表情矢量,再与中性表情矢量相比较,达到识别人脸表情的目的。
2.Web3D技术概述
Web3D技术主要是针对于三维显示技术的网络应用而开发的,故决定了Web3D技术的主要特点就是使三维模型在网上进行三维交互演示。[4]在一般情况下,Web3D作品的视点(Viewpoint)是自由的,因此用Web3D技术开发的平面图形与视频作品有着一个很重要的区别,即不再只满足于从一个固定的角度来展示作品。而且Web3D涉及计算机图形学和多媒体通信的综合应用,文件相对比较大,在普通窄带网的传输速率下,客户端要花费大量时间等待下载,因此,本文在研究过程中采取选择合适的纹理贴图。良好的贴图不但能得到好的视觉效果,还可以简化Web3D模型,减少多边形的数目,提高虚拟学习环境的渲染速度。
此外,交互设计是Web3D技术的重要内容,具体涉及到以下三个方面:
(1)定位空间
空间定位采用三维坐标系,能够识别虚拟学习环境中用户的上方、下方、前部、后部、左边和右边,以实现3D效果。
(2)设计环境
设计环境要考虑到纹理、材质、背景、音效、光效等,还可以加入视频等其他媒体。[5]
(3)三维交互
三维交互是Web3D技术的最重要环节,包括事件(Events)设计、行为(Action)设计,涉及到人机交互、鼠标等各种触发事件以及动画设计等。
目前,包括VRML在内的JAVA3D、CULT3D、VIEWPOINT等Web 3D技术在各个领域已经获得了广泛的应用。本文的研究应用VRML技术开发虚拟学习环境。VRML提供了许多预定义的节点,分为图形节点和非图形节点两类。实现虚拟学习环境动态能力和交互性的基础是VRML中的事件体系,事件和域组成节点,其中节点的取值由域的取值决定,也决定了灵境的当前状态,节点接收外界消息、发送消息给外界都要通过事件来进行,节点通过事件入口(event In)接收事件,通过事件出口(event Out)发出事件,某一节点的事件入口和另一节点的事件出口之间用以实现事件的传递的通路称作路由(route),由路由联系起来的节点构成事件体系,用户交互、环境改变、时间变化是事件产生的最初原因。事件产生后按照时序向路由目标节点发送,由目标节点处理,该处理可能会改变会产生其他事件,或改变节点的状态,或改变虚拟学习环境图的结构,从而为虚拟环境提供了动态性。 事件体系执行模型的概念图如图2所示。
为使虚拟空间具有更强的复杂性,VRML可使用绑定指令,绑定指令描述的是如何将节点绑定在一起。两个节点被绑定后,一个节点由路径传送给另一节点的信息称为激发事件。当某一节点接收到一个事件时,它会根据节点的特征开始变化。通过对多个节点的绑定,用户能创建更多路由,创建更复杂的路线,从而使空间更加具有动感。
三、虚拟学习环境的设计与实现
1.情感识别功能的设计与实现
本文研究的情感识别原型主要包括:人脸区域定位:在输入的图像中寻找人脸区域;人脸的规范化(预处理):校正人脸在光线等方面的变化;特征提取:从人脸图像中映射提取一组反映人脸表情特征的数值;特征匹配:将待识别人脸表情特征点与已知人脸表情特征点比较,得出相关信息。
(1)人脸区域定位
因为人脸皮肤建模是根据皮肤颜色来确定的,有可能把脖子等区域也包括进去,因此要定位出人脸区域,尽可能减少处理像素点,这样可以节省计算时间。同时,人脸区域的定位也有助于眼睛、嘴巴的定位。本文在研究虚拟学习环境中的人脸区域定位算法采用了递归的方法,其算法主要是四大步骤:人脸数目初始化、人脸边界区域初始化、人脸区域定位以及定位区域的标注。其主要代码如下:
Void DIB:FaceLocate (HANDLE hDIB, CRect faceLocation[10],int&faceNum)
{
……
1)faceNum=0;//人脸数目初始化为0
2)for(int k=0;k<10;k++)//采用循环的方式设定10个区域点
{
//从上、下、左、右四个边界的定义进行区域的初始化
faceLocation[k].bottom=-1;
faceLocation[k].top=height;
faceLocation[k].right=-1;
faceLocation[k].left=width;
}
3)for(int i=0;i for(int j=0;j {…… If(num!=0) {//递归计算 RecursiveLocateRect(lpData,wBytesPerLine,i,j,num,falceLocation[faceName]); faceNum++; ……} 4)lOffset=this->PixelOffset(j,faceLocation[i].left,wBytePerLine); //把有脸区域用绿色矩形标注 *(lpData+IOffset++)=0; *(lpData+IOffset++)=255; *(lpData+IOffset++)=0; ……} (2)光线补偿 因为虚拟学习环境得到的人脸区域定位图片可能会存在光线不平衡的情况,同时虚拟学习环境中要用到YcrCb色彩空间,所以有必要对人脸区域定位图像进行光线补偿。[6]本文研究的光线补偿的思路是:把图像中亮度最大的5%的像素提取出来,然后线性放大,使得这些像素的平均亮度达到255。根据求得的系数把整个图像的亮度进行线性放大,具体来说就是调整图像像素的RGB值。 (3)特征提取与匹配 人脸特征提取是提高人脸表情识别性能的关键问题。无论哪一种检测方法都需要依赖人脸的特征。而特征匹配其实就是在人脸图像提取的特征与表情之间建立一个联系。本文研究的虚拟学习环境中的特征匹配采用的是表情“距离”特征匹配方式。 表情识别的特征矢量由六个特征参数组成,X=(X1,X2,X3,X4,X5,X6),其中X1表示两眉间的距离;X2表示眉眼间的距离;X3表示眼上下边界的距离;X4表示嘴高;X5表示嘴宽;X6表示嘴角到上唇最高位的距离。这样的特征提取与匹配具有可扩充性和可延性,例如x1=(0,0,0,0,0,0)表示中性表情,而 x2=(0,0,0,1,1,-1)表示愉快的表情。 2.交互功能的设计与实现 在虚拟学习环境中,学习者和虚拟学习环境之间要进行必要的交互。动态交互是虚拟学习环境的重要特点,涉及到虚拟学习环境内各个实体对象本身的动态属性以及操作过程的交互处理。简单而言,实体对象的动态属性包括位置的变化,如平移和旋转等,以及动态的变化过程,比如根据学习者的不同操作,显示风格各异的动画等。虚拟学习环境的交互处理主要包括键盘输入、键盘响应、点击鼠标、拖动鼠标、实体的事件等,可以由VRML的script节点和传感器节点来实现这些交互。 虚拟学习环境的交互功能流程如图3表示。 此外,VRML文件最终是要在互联网上进行发布的,所以采用VrmlPad来生成一个完整的可以进行网上发布的VRML文件。在虚拟学习场景中,三维模型的粗糙程度对学习效果有着直接影响,但精致的模型会使VRML过于庞大。因而采取以下一些措施对虚拟学习环境进行优化: (1)建模时要尽量考虑使用原语。 在进行VRML虚拟学习场景建模时,对于规则的三维物体,应当有效地使用原语。对于复杂的模型,可以考虑使用3DS MAX等工具进行建模,可使用其提供的一个模型优化器(Optimize Helper)减少总平面数。 (2)充分利用VRML语言自身因素进行优化。VRML语言提供了实例 (instance)、原型 (prototype)、细节层次(LOD)等基于语言自身的场景优化措施,可以加快客户机虚拟学习渲染场景的速度。 (3)对复杂的场景进行分割或动态增删节点。用Inline节点可以将复杂的VRML场景分成几个较小的和较简单的场景,另外,可以在组节点定义入事件addChildren和removeChildren,这样可以实现动态修改虚拟学习场景的结构。 (4)可对VRML文件进行压缩。VRML的源文件是ASCII类型的,其中许多不必要的回车符、空格符和TAB符。将这些字符去掉能使文件减小1/3,而且完全不影响执行。通常,可将VRML源文件压缩到原先的10%~35%,可以显著减少虚拟学习场景的传输时间。 当前网络化教育系统已经进入了个性化发展时代,要求我们的虚拟学习系统能够实现人性化交互教学、个性化因材施教,同时还要针对学习者的情感不同进行智能化调整。本文的研究对虚拟现实技术的应用以及提高远程的教学效率均起到了有效的促进作用。 [1]蒲利君.论虚拟现实技术在教学中的应用[J].中国成人教育,2005(3):76-79. [2]惠晓钟.以学习者为中心的虚拟现实交互学习环境[J].陕西国防工业职业技术学院学报,2006(3):42-44. [3]黄元芳,王代涵,王一哲.虚拟现实技术与VRML[J].武汉冶金管理干部学院学报,2003(2):183-186. [4]段鸿.一种虚拟人物的情感计算方法[J].计算机工程与应用,2007(11):211-214. [5]罗奇,万力勇,吴彦文.情感计算在E-learning系统中的应用探索[J].开放教育研究,2006(3):9-11. [6]马希荣,刘琳,桑婧.基于情感计算的E-learning系统建模[J].计算机科学,2005(8):28-33. TP391 A 1673-8454(2011)03-0082-04 1.全国教育科学 “十一五”规划教育部重点课题 “基于情感计算和Web3D技术的在线学习模式研究”(编号:DCA090321);2.湖南省科技计划项目“基于情感计算和Web3D的远程教育虚拟实验平台的体系结构及其关键技术研究”(编号:2010GK3049)。 (编辑:金冉)四、结论