智能Agent及多Agent在虚拟现实系统中的应用研究进展Word格式.docx
《智能Agent及多Agent在虚拟现实系统中的应用研究进展Word格式.docx》由会员分享,可在线阅读,更多相关《智能Agent及多Agent在虚拟现实系统中的应用研究进展Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
![智能Agent及多Agent在虚拟现实系统中的应用研究进展Word格式.docx](https://file1.bdocx.com/fileroot1/2022-10/13/4b20b5bc-ed59-4b1f-95fe-df3d6ee831d4/4b20b5bc-ed59-4b1f-95fe-df3d6ee831d41.gif)
一引言Introduction
随着计算机硬件的不断升级,用户对系统环境的要求越高。
在系统环境上,用户希望在一个与现实世界相仿甚至难辨真假的平台上工作;
在交互控制上,用户希望系统提供更强大更全面的辅助,适应用户的操作。
前者促进了虚拟环境技术的不断分化深入;
后者常常引入人工智能领域的重要概念——Agent,在面向过程,面向实体,面向对象编程的基础上发展出更抽象的面向Agent编程[5]。
利用Agent技术建构的智能化实体,广泛应用在探测、材料、医疗、教育、游戏等领域,帮助或代替人类完成工作[7]。
1.1一些工作SomeWorks
虚拟环境涵义很宽,对现实世界中物理的方法、行为、地理和抽象的思维、情绪、感情的模拟都属于虚拟现实的范畴,所以Agent与之的结合点很多,在实际应用给开发人员很好的实现灵感。
Helmut设计一个卡通形象的动画(Animated)Agent[2],具有让人信服的表情和社交能力,用于日本学生的英语对话训练。
他们使用XML风格的MPML脚本语言(Multi-modalpresentationMarkupLanguage)控制不参与交互的Agent角色的行为语言。
Baldi[3]由俄勒冈州研究院、卡内基梅隆大学等联合开发的语言教学系统,是一个具有听觉和可视化演讲能力的Agent,结合了语音识别,面部动画,表情跟踪和语音朗读四个方向的技术。
Marche和Anton的Jacob[4]项目在虚拟现实系统中构建一个叫做Jacob的拟人(Human-like)Agent,传达给用户操作指示。
Jacob项目涉及虚拟现实模型的软件工程、自然语言等交互模块和融合Agent技术,由于任务模块和指令模块的分离,JacobAgent可以容易地移植到其它虚拟环境中。
Ipke和Yong在VIENA[6]项目中(VirtualEnvironmentsandAgents)使用适应性Agent帮助用户设计和探索3D图形,这是一个多Agent系统,Agent之间根据当前状态互相协作实现用户的指令;
而对于用户来说,只是面对一个能理解和执行语言指令的Agency。
Agent的研究还包括控制脚本[8][9][10][18]和实际应用的性能分析[11][12][13]。
1.2本文框架LayoutofThisArticle
本文从三个层次总结智能Agent和多Agent系统在虚拟环境中的应用。
第3章介绍会话(Conversational)Agent,第4章介绍行为(Behavioral)Agent,第四章关于多Agent。
为了帮助读者形成完整的概念,第2章会对智能Agent做出探索性定义。
二关于AgentConceptsofAgent
智能Agent的定义很不统一,在不同应用,从不同的角度,研究人员总是在自己的理解基础上给出说明。
Stan和Art考察大量Agent的概念,得出模糊却内涵丰富的结论[14]:
自主(Autonomous)Agent系统是环境的一部分,只在特定的(Situated)环境中感知环境并作用于环境,从而实现自身的日程,影响将来的感知。
自主Agent和智能Agent应该是等价的。
智能Agent总是与之对应的环境紧密结合,离开了所处的环境,Agent就失去其存在的意义,再也不是Agent。
她通过感应器(Sensor)感知环境,利用效应器(Effector)作用于环境。
她具有自己的信念,即有目的,有意图地行为,使环境将来的状态符合日程。
智能Agent可以是硬件,如机器人,人眼等,自然更是软件(Softbot)。
本文主要讨论软件(Software)Agent的设计框架和实现。
对智能Agent概念的详细解释可以从Winikoff[32]等提出的SAC(SimplifiedAgentConcepts)——“一个简化的模型,能让更多人开发智能Agent系统,但是保存BDI的能力和效率”——中获得。
2.1描述性定义DescriptiveDefinition
描述性定义指出只要一个基于硬件或软件的系统具有某些描述性特性,就可以被称为Agent。
可分为弱定义和强定义[15]。
弱定义包括自主性(Autonomy),社会性(Socialability),反应性(Reactivity)等人类特有的性质。
强定义在弱定义的基础上加入知识(Knowledge)、信念(Belief)、意图(Intention)、责任(Obligation)等精神概念,有研究者称之情感(Emotional)Agent[17]。
其它很多词汇也常被研究者用来描述Agent,如移动性(Mobility),诚实(Veracity),善良(Benevolence),理性(Rationality),长寿性(Longevity),前瞻性(Pro-active,Goal-directed)等。
2.2形式化定义FormalDefinition
本文的形式化定义只是以理想理性(IdealRational)Agent[16]为例,抛砖引玉,帮助读者对不同类型的Agent形成自己的形式化方法。
理想理性Agent:
对每一个可能的感知序列(Perceptsequence),她都能基于感知序列和内建的知识提供的证据采取行为,期望性能最优化。
Agent由PAGE描述:
感知(Percept),行为(Action),目标(Goal),环境(Environment)。
Agent等于体系构架(Architecture)和程序(Program)。
Stuart和Peter提出最基本的骨架Agent程序:
functionSKELETON-AGENT(percept)returnsaction
static:
memory,theagent’smemoryoftheworld
memory←UPDATE-MEMORY(memory,percept)
action←CHOOSE-BEST-ACTION(memory)
memory←UPDATE-MEMORY(memory,action)
returnaction
而根据程序设计的立足点不同,由简到繁区分成:
表格驱动(Table-driven)Agent,简单反射(Simplereflex)Agent,跟踪内部状态的反射Agent(Reflexagentwithinternalstate),基于目标的(Goal-based)Agent,基于效能的(Utility-based)Agent。
三会话AgentConversationalAgent
会话Agent主要在教育培训程序中扮演导师和同学的角色,随时随地供给交流学习的伙伴,增强娱乐性和参与性,极大提高教学效率,也可以在场馆中推广产品,或说明旅游项目。
MicrosoftOffice系列软件的帮助精灵是我们最熟悉的会话Agent。
会话Agent具有一般的语言能力,也有一定的声音识别能力,甚至有感情;
在虚拟环境中,她常常通过图形具体化(Embodied)。
本章将介绍Baldi和Max两个系统,说明如何让Agent表示出表情和嘴形,或手势,进一步加入情感。
关于会话Agent的更多研究请参考[22][23][24][25]。
3.1表情和嘴形FacialExpressionandLips
与一个表情丰富、语言流畅的伙伴交流,无疑是长期在计算机前学习生活的
人很吸引的事。
图3-1所示的Baldi[3][19]曾在上文引述过,是一个由计算机驱动的聊天人头,暂时用于聋哑儿童的课堂语言教学。
她的存在和功能完全依赖于计算机动画控制,和文本—语言合成。
图3-1
她的语言有33个参数:
颌旋转和挤压,嘴的水平宽度,嘴唇弯曲和突出控制,下嘴唇褶皱,嘴唇垂直位置,牙齿的位移,舌头的角度、宽度和长度。
为了能在低端设备上实时绘制,研究者采用目标相似合成(TerminalAnalogueSynthesis)技术,仅令最终结果看起来很像,并没有完全模仿生理结构。
大约900个多边形边边相连组成Baldi的眼睛、瞳孔、虹膜、巩膜、眉毛、鼻子、皮肤、嘴唇、舌头、牙齿、脖子。
多边形的拓扑结构和动画由一个参数集控制。
Baldi的研发进展主要在控制参数的增加和修改,舌头的两代实现方式,视觉语言合成控制,文本—语言合成,双模(视觉/听觉)合成,和并行信息处理。
最终大概有20000行C代码,可在SGI和PC上实时运行,图3-2是一些结果。
图3-2Baldi的表情:
高兴、生气、吃惊、恐惧、伤心、恶心
3.2手势Gesture
手势是人们自发的无意识的语言表达,是很重要的沟通手段,对多模式(Multi-Modal)会话Agent的具体化最终都需要一套肢体语言的支持,可从真人捕捉,或手动预定义。
拟人AgentMax[20]是在3D虚拟环境中的装配专家,通过上肢活动和口述的相互协同向用户展示装配过程,图3-3。
图3-3与Max多模交互
Max的多模(Multi-Modal)发言直接由一种基于XML的语言描述,包括语言词句和非语言行为。
语句被时间点(TimePoint)分隔,特定的手势动作被定义在相应的时间间隔中。
手势由发出阶段(StrokePhrase)的时空特性决定,由子动作组成。
子动作被定义成:
(1)拳头的位置,
(2)手的形状,(3)拳头的朝向;
每一项性质用数值或符号表示。
子动作是静态或动态,静态代表一定时间内不变,动态子动作又由连续的动作片断(Segment)组成。
手势的特点,如并发(Simultaneity),滞后(Posteriority),重复(Repetition)和对称(Symmetry),既可以显示说明,也可以用行为通信函数表达。
图3-4是XML说明片断,图3-5是其结果。
图3-4
图3-5
基于特点的手势动画要求运动规划和上肢控制。
在高级(Higher-Level)规划时,手势发出(Stroke)阶段的约束条件被充分限定,按时序传给独立的运动控制模块(MotionControlModule),手、拳头、手臂、脖子和脸都有不同的模块。
低级(Lower-Level)规划采用局部运动程序(LocalMotionProgram),几个LMP组成的运动程序根据动力学原理控制上肢的移动。
LMP定义在外部坐标系或关节连接角上,根据当前运动状态自动激活,并按照给定的边界条件互相连接,如图3-5。
在介绍口语和手势同步协作之前,先说明块(Chunk)的意义。
手势被分成准备(Preparation)、保持(Hold)、发出(Stroke)、收回(Reaction)四个阶段,语言也组织成音调阶段(IntonationalPhrase)。
块就是一个音调阶段加上一个手势阶段,复杂的发言和手势由多个快组成。
在Max的同步结构中,块各自在独立的黑板上交叉执行。
在InPrep状态,口语合成和手势规划模块共同决定完成规划(Planning)过程;
规划完成后,块进入Pending状态,如果上一块在Subsiding状态,调度器将切换到处在Lurking状态的块,接着进入InExec状态