虚拟现实技术1.虚拟现实技术的研究方向
虚拟现实是从英文VirtualReality翻译而来, 是一项融合了计算机图形学、人机接口技术、传感技术、心理学、人类工程学及人工智能的综合技术。在《泰坦尼克号》中,有借助头盔式显示器和可远程操作的机械手打捞遗留在沉船上物品的场景;参与过虚拟角色游戏和虚拟社区的人, 也必将沉浸于其真实感、临场感的体验中。它们带给人们的共同感受是:虚拟和现实间已没有明显界限。虚拟现实的广泛应用前景使之成为目前最具影响力的技术之一。
虚拟现实技术综合了计算机图形技术、计算机仿真技术、传感器技术、显示技术等多种科学技术,它在多维信息空间上创建一个虚拟信息环境, 能使用户具有身临其境的沉浸感,具有与环境完善的交互作用能力,并有助于启发构思,它已成为构造虚拟样机,支持虚拟样机技术的重要工具。虚拟样机是一个复杂的系统, 主要表现在组成关系复杂、与外界环境的交互关系复杂、开发过程复杂、涉及的仿真类型和学科领域众多、应用范围广泛等。虚拟样机可以理解为利用虚拟现实技术将产品数据变为取代物理样机的数字模型, 强调仿真数据的可视化, 在虚拟环境中逼真地显示产品的全部特征。虚拟样机是由分布的、不同工具开发的、甚至异构的子模型组成的模型联合体, 主要包括产品的CAD模型、产品的外观模型、产品的功能和性能仿真模型、产品的各种分析模型(可制造性、可装配行等)、产品的使用和维护模型和环境模型等。借助虚拟样机,设计人员可以通过成熟的三维计算机图形学,模拟在真实环境下产品的各种运动和动力特性,并能根据仿真结果优化产品的设计方案。虚拟现实系统一般由5个关键部分组成:虚拟世界、虚拟现实软件、计算机、输入设备、输出设备。
2.虚拟现实的建模研究虚拟环境的建模是VR的基础,主要包括三维视觉建模和三维听觉建模。其中视觉建模主要包括几何建模(geometricmodeling)、运动建模(kinematic modeling)、物理建模(physicalmodeling)、对象行为(objectbehavior)建模和模型切分(modelsegmenta-tion)等。几何建模描述对象的形状(多边形、三角形和顶点)和外表(纹理、表面反射、颜色)。对象形状能通过PHIGS、GL、XGL等图形库从头创建, 但一般都要采用专门的建模工具进行, 以提高效率。最简单的方法是采用3D建模软件,如ProE、Adams、AutoCAD等。为了得到高质量的三维数据库,通常采用专用的VR建模工具,如MultiGen、Vega、VRT3等。运动建模主要用于确定三维对象在世界坐标系中的位置,以及他们在虚拟世界中的运动。对象运动受父子层次关系的制约, 父对象的运动会影响子对象。运动建模的另一个方面是设置观察世界的方式, 即虚拟相机的运动,最后照相机图像需经过变换投影到二维显示窗口中,为用户提供视觉反馈。
物理建模是综合体现对象的物理特性, 包括重量、惯性、表面硬度、柔软度、变形模式等。这些特征与对象的行为给虚拟世界的模型带来更大真实感。物理建模所需计算负载被分派到触觉绘制流水线。行为建模主要通过虚拟人来完成。虚拟人agent 的行为模型包括情绪、行为规则和动作。Agent的行为具有层次性, 最底层是反射行为。反射行为表现为,每当看见对手就进行阻截。基于情绪的行为通过喜欢、不喜欢、生气、恐惧过滤感知数据, 因此它比简单的反射行为层次要高。模型管理包含那些用于帮助VR引擎以交互速度绘制复杂虚拟环境, 同时对仿真质量不会产生重大影响的技术。
虚拟现实接口输入设备的接口三维位置跟踪器:虚拟现实技术中用于测量三维对象位置和方向的实时变化的专门硬件设备为跟踪器,在虚拟现实应用中,为控制观察方向和操纵对象, 需测量用户头部、手、四肢的运动,还有一种需要跟踪的信息是三位声音信息。三位跟踪器的性能参数包括:精度、抖动、偏差、和延迟。现常用的跟踪器有:机械跟踪器、电磁跟踪器、交流电磁跟踪器、直流电磁跟踪器、超声波跟踪器、光学跟踪器、混合惯性跟踪器。
(1)漫游和操纵接口 该接口是一种设备,它允许通过选择和操纵感兴趣的虚拟对象,交互式的改变虚拟环境和探索过程中的视图。漫游和操纵可以在绝对坐标系统或相对坐标系统中完成,控制虚拟现实技术对象位置的另一种方法是通过相对传感器,即接收器是相对静止的, 绝对位置数据也永远不会为0, 而对于相对位置传感器来说, 如果没有动作发生,她总是返回0。现常用的漫游和操纵接口包括:基于跟踪器的漫游/操纵接口、跟踪球、三维探针。
(2)手势接口 是测量用户手指实时位置的设备,其目的是为了实现虚拟环境下的基于手势识别的自然交互。目前大多数手势接口都嵌入了传感器的传感手套,传感器用于测量每个手指相对于首长的位置。各种传感器手套的主要区别是:所使用的传感器类型、给每个手指分配的传感器的数目、感知分辨率、手套的采样速度以及他们是无线的还是有范围限制的。市场上常用的传感器手套包括:PinchGlove、5DT DataGlove、DidjiGlove、CyberGlove。
输出设备的接口输出设备作为一类专门的硬件设备, 他们为用户提供仿真过程对这些输入的反馈,通过这些接口给用户产生反馈的感觉通道,包括视觉(通过图形显示设备)、听觉(通过三维声音显示设备)和触觉(通过触觉显示设备)。
(1)图形显示设备 是一种计算机接口设备, 它把合成出的世界图像展现给与虚拟世界进行交互的一个或多个用户。在描述一个图形显示设备时,可以使用以下特征:产生图像的类型、图像的分辨率、视场、显示技术、人机工程学因素和价格。现如今将图形显示设备分为:个人图形显示设备(头盔显示器、手持显示器、地面支撑显示设备、桌面支撑的现实设备)、大型显示设备(基于监视器的大型显示设备、基于投影仪的显示器)。
(2)声音显示设备 是一类计算机接口,能给与虚拟世界交互的用户提供合成的声音反馈。声音可以是单声道,也可以是双声道。第一个三维声音产生器是1988年由CrystalRiverEngineering为NASA签约开发的。这个事实数据信号处理器称为Convol-votron,由旋转在外壳中的一组与PC兼容的双卡组成。随着数字信号处理(DSP)芯片和微电子技术的进步, 现在的Convolvotron更加小巧, 他们有处理每个声源的“卷积引擎”组成。现在最为常用的是基于扬声器的三维声音, 最为简单的就是立体声, 近年来出现了比较便宜的PC三维声卡,所使用的DSP芯片处理立体声或5.1格式的声音,并且通过卷积输出真实的三维声音。
(3)触觉反馈 可以分为接触反馈和力反馈两种模态。接触反馈传送接触表面的几何结构、虚拟对象的表面硬度、华东和温度等实时信息。它不会主动抵抗用户的触摸运动, 不能阻止用户穿过虚拟表面。力反馈提供虚拟对象表面柔顺性、对象的重量、惯性等实时信息,能主动抵抗用户的触摸运动, 并能阻止该运动。现在较为常用的触觉反馈接口为:触觉鼠标、CyberTouch手套、温度反馈手套、力反馈操纵杆、PHANToM臂、HapticMaster臂、CyberGrasp手套、Cy-berForce等。1
虚拟现实脑机接口1.概述脑-机接口(brain-computer interface,BCI)是在人脑和计算机或其他电子设备之间建立不依赖于常规大脑信息输出通路( 外周神经和肌肉组织) 的全新对外信息交流和控制技术。BCI的首个显见用途是为思维正常但运动功能残缺的人提供一种新型的辅助运动功能和对外信息交流手段。因此,自BCI 诞生以来,其研究开发的主流多是控制外部设备和替代病人的一些缺失功能,或辅助文字表达。尤其近几年BCI 在帮助残疾人控制假肢、轮椅,甚至拼写打字、上网游戏等方面取得了长足进步 。而最近在多媒体和娱乐领域 出现了一种新颖的BCI 应用模式:将BCI 技术与虚拟现实(virtu-al reality,VR)相结合,构成基于虚拟现实的脑-机接口(BCI-VR)新形式。实现BCI 与VR相结合的最简单方式是设计一个可为用户提供身临其境的3D 虚拟现实环境和可现场传感反馈以便实时使用的BCI 系统。BCI-VR新技术一出现即在两个层面上显示出意外情景效果和诱人应用前景。
一方面, BCI 作为BCI-VR系统的输入设备,革新了传统VR系统输入方式,可能彻底改变与虚拟环境(virtualenvironments,VE)互相影响的方式;同时,BCI 比传统VR系统输入方式更直观,可视为类似触觉传感与VE 进行交互与控制。另一方面,VR技术在BCI系统中成为非常有用的信息反馈利具。与BCI 的传统简单反馈模式(屏幕显示伸缩变化的2D 色条以反映大脑思维信息输出)相比,VE 则能为BCI 用户提供更积极主动、更丰富多彩、更具激励性的情境反馈( 与大脑思维信息输出密切关联) 模式。因此,VR反馈可以提高BCI 的可学习性并缩短训练时间,而且VE 可作为BCI 用户在实地使用之前最廉价、最逼真、最可靠、最安全的训练和测试场景。BCI-VR新技术的出现不仅使其传统用户─残障病人大为受益,而且得到广泛健康大众用户的特别欢迎,有望成为智能游戏和时尚娱乐的新宠。
鉴于BCI-VR新技术能兼取BCI 与VR各自所长,同时又相得益彰,开拓了这2 种技术的结构改造与应用革新之路,显示出诱人的广阔应用前景。从BCI-VR系统的基本构成、BCI 对VE 的控制改造和VR对BCI 的反馈革新等方面,较详细介绍了近年来BCI-VR的主要研究进展,并根据作者体会总结了目前存在的难点与未来的可能发展动向,以期与读者交流、共同促进BCI-VR新技术的快速发展。
2.BCI-VR系统基本构成典型的BCI-VR系统通常由脑-机接口(BCI)和虚拟现实(VR)两部分硬件构成,并含有两个独立的软件。
1)为BCI 软件,用以记录与大脑思维意愿有关的生理( 多为电生理) 信号、经实时处理和特征提取及思维状态分类后产生对外部设备的控制命令。
2)为VR软件,用以模拟和表演一个虚拟世界、给用户提供实时情景反馈并及时处理来自BCI 的控制命令。这两个软件必须能相互通信,以便及时交换信息与命令。
在BCI-VR系统中,BCI 作为输入设备的主要任务是: 提供指令,以便用户可自我设定指令内容并可于任何时间通过大脑思维活动,简单、高效且不会导致疲劳地输出这些指令;而VR界面在本系统中主要承担感官刺激和反馈任务并应该做到: 展现BCI 所需感官刺激和尽快诱发BCI 所需生理信号并提供能使用户控制BCI 的有意义反馈任务;最终需设计一个VR显示程序以便与BCI 流畅连接。BCI 技术形成于20 世纪70 年代,是一种在人脑和计算机或其他电子设备之间建立直接信息交流和控制的全新技术 。它能使部分中枢神经信息传递阻滞并因此失去了基本运动功能的瘫痪病人有重建或再造新的神经通路的可能,从而恢复其运动功能。现有基于电生理信号的BCI 技术主要有三类:基于自发脑电的BCI 技术、基于诱发电位的BCI 技术和基于植入电位的BCI 技术。
虚拟现实(VR)是利用电脑等设备模拟产生一个三维空间的虚拟世界,提供使用者关于视、听、体等感官模拟体验,让用户如身临其境,可以随时随意地观察体验VR内的事物。过去十年VR技术的快速进步吸引了众多研究领域的关注,如航空和军事训练程序模拟( 在外面培训太贵或难以监测和控制) ,心理治疗和医疗手术等。特别值得一提的是:VR技术的应用大大促进了康复医学的进步,包括中风后偏瘫病人的肢体康复( 上、下肢训练) 、知觉运动训练、帕金森氏症、骨科康复、平衡训练、轮椅驱动等,突出体现在运动功能的恢复。该领域的重要体验是: 残疾人可以先在虚拟现实中学会执行运动任务,之后将学习经验转移到现实生活中实现操作。
在VR环境下对脑电信号进行采集和分析,可以增加被试的沉浸感并给予被试实时反馈,因此可以提高训练效率、缩短训练周期、在短期内取得优异的成绩。这相对于普通BCI 系统有很大的优势。BCI-VR系统的提出和发展时间并不长:2000年Bayliss 和Ballard 第一次结合VR与BCI 技术,在VE 中被试驾驶一辆小车遇到红灯时停下,红灯被设置为足够诱发事件相关电位P300 信号。2006 年清华大学马贇等设计了基于BCI 技术的VR康复训练平台,其中将想象运动BCI 与运动功能康复训练VR结合在一起。2007 年Robert Leeb,Doron Friedman 等使用BCI 控制VE 中轮椅前进或停止 。
2010年Po T. Wang等验证了使用BCI 在VE 中控制下肢进行功能性电刺激(func-tional electric stimulation,FES)的可能性,2012年又完成了被试在VE 中通过BCI 控制实现下肢自定步调行走 。
3.BCI 对VR的控制如前述,BCI-VR系统通常由BCI 和VR两部分结合构成。BCI 记录大脑信号、提取其中生理或心理状态特征参数并进行思维意向分类识别的实时分析处理以生成控制命令;VR软件则模拟、渲染和建造VE 世界,为用户提供反馈和处理来自BCI 的命令。两部分必须在BCI-VR系统框架中交流信息、命令才能实现系统总体目标任务。其中BCI 系统所生成部分指令将被传送到虚拟现实环境( VR / VE) 当中,经过沉浸效果极好的画面显示,声音渲染甚至是触觉感知等实时反馈给用户,实现对用户的刺激。
目前 BCI-VR 系统用以控制 VR / VE 的脑电信号大致有想象动作( motor imagery , ) 电位 稳态MI 、视觉诱发电位( steady-state visual evoked potentials,SSVEP) 和事件相关电位 ( event related potential,ERP) 等。其中想象动作电位会产生事件相关去同步( event related desynchronization ( ERD) ) / 事件相关同步( event-related synchronization ( ERS) ) 电位信号; 事件相关电位中使用更多的是潜伏期为300 ms左右的 P300 成分。下面分别介绍想象动作控制 VR / VE、SSVEP 控制 VR / VE 和 P300 控制VR / VE。
3.1 想象动作控制 VR / VE
大脑进行想象动作时会在运动、感觉皮层产生相应的事件相关去同步 ( ERD ) / 事件相关同步(ERS)电位。ERD / ERS 是出现在运动、感觉皮层特定频带的信号。伴随着信号与事件相关的程度,信号的幅度会出现同步减少或同步增加现象。ERD / ERS 与运动过程相关联并且大脑以想象动作替代真实动作,即在预动作条件下同样存在ERD /ERS 现象。肢体想象动作可以引发ERD现象检测并提取相应的ERD 特征模式能用来区分所想象动作的部位 。运动神经康复的研究表明 基于想象动作的BCI,经其想象并控制残肢多次重复运动能够有效促进残肢原有损伤运动神经通路的修复。因此 在线控制的想象动作BCI 系统引发了令人瞩目的研究开发热情。
传统想象动作BCI 系统通常使用简单的显示色条来反馈想象动作效果,即被试者应努力想象增强对应肢体动作来促进色条增长。显然,有效的视觉反馈和良好的沉浸感可以更好地提高在线控制的想象动作BCI 系统工作效率。而基于虚拟现实的BCI 系统正可以提供沉浸感强、视觉反馈好的虚拟 现 实 界 面 并 实 现 在 线 反 馈。Leeb 和Pfurtscheller 第一次在BCI 实验中发现了这个特点,其实验使用了一个呈现虚拟现实画面的头盔,在呈现同步反馈且用户可自我控制进度的在线 BCI 系统中比较了传统显示条视觉反馈和虚拟现实环境反馈效果。显示条视觉反馈设置为想象左或右手运动努力使反馈条增长; 虚拟现实环境设置为酒吧场景,使用户感觉处于酒吧吧台,可通过想象左手或右手动作来控制场景向左侧或右侧等速旋转。有趣的是,所有用户在虚拟现实环境反馈的表现都比传统显示条视觉反馈效果要好。随后,通过想象脚部动作控制在虚拟街道上行走的实验也有类似结果 。在线 BCI 系统可有两种控制工作模式: 同步提示和自由控制。同步提示模式存在外部提示,要求被试在外部提示出现后一段时间内执行相应任务,BCI 系统则采集提示刺激后相应时间窗内的脑电信号进行处理。由于提示后信号产生时间确定,该系统在数据处理方面操作较为简便。自由控制模式 BCI 系统因无提示存在,可由被试自主控制( self-paced) ,即可由用户自行决定何时产生控制信号。该类 BCI 在系统搭建和信号处理方面较前者难度大些,但对用户而言比较有实用价值 。
想象动作控制的 BCI 系统可以实现多指令的输出。通常使用想象手部和足部运动,重点提取C3、Cz、C4 等与肢体动作密切相关导联(对应感觉运动皮层功能映射区) 的脑电信号,经特征提取与模式识别处理,可分类识别不同的想象肢体运动。例如Po T Wang 等设计了基于视觉反馈3D 场景的想象动作在线BCI 系统。其场景设置为沿直线散步,要求被试通过想象脚步走动或停步来控制场景中代表自己的人物行走或停止( 线上共有十个相隔一定距离的人物,要求被试控制自己的代表人物依次走到每个人物附近,简短问候后离开) ,重复以上任务,即被试在想象脚步走动或停步运动功能方面得到反复训练。该BCI 系统使用离线想象脚部运动和静息状态脑电数据所提取特征来进行想象动作分类并实现走步和停止指令输出; 再将分类器应用于加入视觉反馈3D 场景的在线BCI 系统。该系统在一组随机漫步的对照试验中,受试者展示了良好的目的控制效果,证明虚拟现实场景下受试者使用想象动作BCI 实现随意控制是可能的。Leeb,R.,Friedman 等也实现了让四肢瘫痪病人通过想象脚部运动和停止来控制轮椅在虚拟街道上行走或停止 。可见有关研究对肢体残缺、运动功能不全的患者来说是有着重大意义的。
在想象动作信号的提取与分类中存在的问题有想象动作信号的分类识别率与其他信号相比较低,这会严重影响BCI 系统的性能,因此在特征提取算法设置方面要不断寻找新的突破,以期达到更高的识别率。想象动作信号的分类指令集较少,但是目前可以通过与其他信号的结合进行改善,增加指令数目 。该领域还有一些使用BCI 系统为虚拟现实提供更多指令以拓展其应用。例如Scherer 等人设计了含3 个自主控制指令的的虚拟现实BCI 系统,用户可以通过想象左手、右手或脚的运动实现左转、右转或前进。
3.2 SSVEP 控制VR/ VE
稳态视觉诱发电位(SSVEP)是BCI 系统经常使用的脑电信号,来自大脑视觉皮层对于外界闪烁刺激(一般要求频率大于6 Hz)的响应,通过提取枕区EEG 信号即可以获得。与基于其他脑电信号的BCI 系统相比,SSVEP-BCIs 通常具有更高的信息传输率、更兼有系统简便、仅需要较少训练的优点 。
Lalor 等人 最早使用SSVEP-BCI 来控制3D 虚拟环境中的游戏。该游戏中有个怪物沿着一根绳子由一个平台走向另一个平台。怪物向前行走时,有可能失去平衡,用户须通过BCI 系统控制使之保持平衡。为此,BCI 屏幕两侧分别显示一枚按稳态频率闪烁的方格,以分别诱发不同频率的SS-VEP 信号;当用户试图向左或向右控制怪物动向以恢复怪物平衡时,BCI 会及时检测到用户已集中视力于左侧或右侧闪烁方格所产生的SSVEP 信号并发出相应控制指令恢复怪物的行走平衡。几年后, Touyama 选择洞穴虚拟环境,尝试使用SSVEP 控制洞穴环境中的快速转向。研究结果表明,受试者可以在SSVEP / 洞穴接口界面上身临其境地通过改变视野朝向( 向左侧或向右侧) 来成功穿越幽暗弯曲的洞穴 。
以上工作证明了基于SSVEP 的BCI 系统与虚拟现实环境相结合是适宜且有效的,但其局限性是离不开闪烁刺激。在VR/ VE 背景下,它需使用者注视屏幕上闪烁的小方格或棋盘格来诱发产生SSVEP,因此在VR/ VE 中易降低自然感而破坏其沉浸感。为解决这一局限,Faller 人等 设计了一个桌面VR/ VE 环境游戏 ,被试需要通过注视3 个不同的闪烁刺激方块操作虚拟人物行走,完成 中的路线。其闪烁刺激固定在一个虚拟人物 ( 控制目标) 手旁边且一直跟随其移动,游戏玩家通过选择注视 3 个不同的闪烁刺激(分别位于虚拟人物的左右手边和头顶)来产生SSVEP 信号以控制虚拟人物的不同操作或移动方式 ( 注视头顶闪烁为前进一步、注视左右手闪烁分别为左转45 °或右转45 °)。在该实验中的7 个被试,其中有5 个都顺利的完成了预订的路线。Legény 等一直致力于整合SSVEP 刺激与虚拟现实环境,使之更接近自然。为在虚拟森林中实现SSVEP 刺激控制移动 将所需SSVEP 闪烁刺激设置在森林中飞舞的蝴蝶翅膀上;设计了3 种蝴蝶在用户面前显示屏幕中上下飞舞 ,用户需紧盯左侧、中间或右侧蝴蝶分别实现左转,前进或右转; 此外,蝴蝶触角也用来给用户提供信息反馈 ( 两触角距离越远,越有可能是用户所关注并被选择的移动方向及其分类器) 。研究表明,如此将视觉刺激自然地融入虚拟现实环境中确实可增加被试的好感和真实存在感。
上述研究证实了将SSVEP-BCI 与虚拟现实环境相结合可以提供更为丰富和直观的界面、实现有效的控制,并能大大改善BCI 系统的实用性。为进一步扩展其实用性,还希望该系统可以提供更多指令输出以便与现实世界互动。为此,西安交通大学李叶平等将刺激目标与场景图像结合,设计了一种高效稳健的场景结合导航方法,显著减少了目标识别次数,大幅提高了 BCI 控制轮椅的导航效率 。基于虚拟现实环境下的 SSVEP-BCI 系统还可以直观引入具有高度控制自主性和功能独立性的智能家居控制系统,更有效地为行动障碍患者起居生活提供帮助。当前研究中存在的问题是由于 SSVEP 信号自身特征的限制,并不能适用于所有的被试,因此如何解决或避开这一问题也是未来研究中的难点之一。
3.3 P300 控制 VR / VE
2000 年 Bayliss 和 Ballard 首次将虚拟现实与BCI 技术结合,设计了被试在虚拟现实环境中驾车的场景。其中遇到红灯时停车的控制信号即利用被试在情境驾驶时产生的事件相关电位( ERP) 中P300 成分 。P300 指 ERP 中潜伏期约 300 ms 左右正波成分,常为大脑对稀少事件的认知反应。当 BCI 序列序列出现“目标刺激”( 通常目标在序列事件中出现概率较小) 时,则在该目标出现后大约300ms 左右就可以在头皮顶区记录到 P300 信号。在上述情境驾车遇到红灯需停下时,被试的应激反应足以诱发 P300 信号。在使用基于P300 的BCI 系统中,用户必须将注意力集中在给定众多刺激当中的目标刺激上,每个刺激对应一个输出。上述文献作者之一Bayliss 还介绍了一个虚拟智能家居,用户可以采用基于P300 的BCI 控制不同家电设备(如电视机等)。其中采用3D 球体作为目标控制标记,随机出现在需操控对象上,并且用户可以简单地打开或关闭他们所需对象。
其智能家居由起居室、厨房、卧室、浴室全套组成。每个房间都有几个可以被控制的装置:电视机、MP3 播放器、电话、灯和门等。因此将不同的控制命令总结在控制菜单上。用户可以通过首先注视菜单上的TV 标志打开电视开关,位置和音量也可以调整。在菜单中,可以看到房间内所有可以去的点,且在试验中不停地闪烁,使用时用户可以盯住想要去的位置的标识,BCI 系统选择后将会在虚拟现实环境中显示出一个对公寓或想要去的房间鸟瞰图 。这是一个目标指向的BCI 控制方法,与想象动作的航行方式对比,每一个前进动作都是被控制的。在此BCI 系统中,3 个被试完成任务的准确率达到了87% ~100% ,证明了该系统可以应用在智能家居中。虚拟现实系统是验证BCI 系统是否可以应用在智能家居中的最经济方式。
如上所示,可归纳基于P300 的BCI 系统有以下两个特点:
1)可用不同字母和数字来代替不同符号和标志,可直接使用图标来代表不同任务;
2)BCI 系统可在拼写实验中进行训练和提取脑电信号特征,并与用户特定信息一起用于智能家居控制指令。
因此几乎不需训练每个被试。与其他BCI 系统相比,可以减少数小时甚至数周的训练时间。故基于P300-BCI 系统是控制智能家居的良好选择。最近还将头部跟踪器用于P300 智能家居控制系统,当用户在寻找BCI 系统时会自动触发头部跟踪器接通BCI;当人注意力已转移到虚拟现实投影中,则关闭系统BCI。新近还出现了P300 与SS-VEP 相结合的混合式智能家居环境控制系统。其中,P300 用来选择命令,SSVEP 用来接通和断开BCI 系统。这些结合使得指令集更加丰富,扩展了BCI-VR系统的功能,增加了实用性。但是在P300 信号中也存在不能使用于所有被试的问题。
4.虚拟现实环境对BCI 的影响与无VR场景的传统BCI 交互接口相比,BCI-VR系统的交互方式更加直接和直观,并能克服单纯虚拟现实环境中活动的一些限制。特别是主要依赖于视觉刺激的BCI-VR系统,用户可以在VR环境中通过简捷的目光注视或直接将注意力集中于所需操作的物品来实施控制( 例如注视电视机来打开并观看电视,注视门来开关门等) 。另外,想象动作信号可提供更直观、更灵活、更丰富的VR控制方式。例如,在虚拟现实环境中可通过想象脚部运动来控制向前移动 还可以使用手持设备等增加被试在VR中移动时的沉浸感。另一方面,反馈是BCI 系统中重要一环,通过反馈,被试可以了解自己完成任务的效率并继续学习提高。而加入情景逼真的VR环境反馈情节正是BCI-VR系统能提高控制效率、促进任务完成的重要影响因素。
除BCI 控制性能表现外,其他方面还可以找到许多VR对BCI 的影响作用。例如,想象动作研究中发现: 被试在进行想象动作时,其心率会有相应在一般( 无反馈) 的想象运动 BCI 中被的变化试的心率通常会下降,它与观察中的随意动作准备相似。在存在虚拟现实反馈的实验中,当被试努力进行想象时心率会上升 。这对应了两种心理生理状态: 感知运动和神经中枢准备运动。在虚拟现实环境中被试想象运动时心率上升的现象可以理解为被试在努力想象运动( 如尽可能在虚拟场景中将重物搬运至更远处) 时增加了脑力负荷所带来的生理效应 。可见虚拟现实反馈的重要性在于丰富情感体验,增加被试的本能反应。当脑电和心率同时分析时,心率增加大约每分钟几次。这一现象也可用于 BCI-VR 系统的信号分类总之,虚拟现实环境的使用可以增加被试的积这些发现在对被试极性,提高 BCI 的性能进行调查问卷和心率分析中得到支持。当被试自认为其成功率大大超过失败时,其心率则会很快下降且能保持较高的信号分类正确率。
5.技术难点及展望如前文所述,将脑-机接口 ( BCI) 与虚拟现实( VR) 相结合构成 BCI-VR 新技术能兼取 BCI与VR 各自所长、优势互补,开拓了新的广阔应用前景。而同时在 BCI 与 VR 技术融合、结构改造与应用革新之路上也面临不少颇具挑战性的技术难点与障碍。
首先是 BCI 在 BCI-VR 新系统中须承担输入设备的角色,主要任务是为 VR 提供稳定有效、方便直观、灵活多变的控制指令。因为 VR 技术所造就的虚拟现实场景( VE) 里的漫游控制即具上述特点。如此看来,VR 并非易受控制的对象而且其受控质量还要求极高。这是设计 BCI-VR 系统遇到的首个重大挑战。为应对这个挑战,要求新系统的 BCI 具备以下几个能力: 能如常见 VR 输入设备一样为用户提供多样化的应用指令; 用户能随时随地、随心所欲地发布这些命令( 即要求 BCI 必须是“self-paced”,能做到自控自学、自我导向、自定节奏、自定进度) ; 能根据用户思维状态自由选取控制命令( 即用户与 BCI 可易于互动,并应直观、便捷、高效且不易导致用户厌烦或疲劳) 。对传统 BCI 系统而言,上述三个能力皆有难度。且不说现有 BCI 系统指令常存在种类单一、不能连续发布的弱点,难以满足前两个能力的要求; 而第 项能力的特别挑战则可令常规BCI 系统望而止步。因为目前BCI 系统所依据思维状态仅2、3 种而已,但通常VR的互动任务数目远远超过3 种以上。解决这个技术难点的关键是:要努力增加BCI 可供选取控制命令的思维状态种类与数目,扩大并丰富命令集含量,才能使用户与之互动时达到与VR互动同样便捷、高效且无疲劳感的理想状态。
其次的技术难点来自于虚拟现实场景(VE)的设计与展现,同样存在多个挑战。其主要困难包括:可为用户提供含意丰富的VR反馈以便其能多样化、随心所欲地操控BCI;所展现的VE 须能紧密、无间断地整合与集成BCI 对诱发思维脑电的各种刺激需求,并尽可能保证VE 场景的真实可信以使用户保持深度的VE 沉浸感而不会被中断、破坏;尽管典型VE 场景和标准BCI 训练章程相差甚远,VR(VE)的应用方案设计也须是可用性极强、用途花样多。
最后的技术难点涉及到BCI-VR新系统软硬件部分,当在VR(VE)场景中使用BCI 时还有若干需要考虑与新系统软硬件相关的辅助技术难点: BCI 的脑电信号放大器须能在如VR(VE)这样充斥各种噪声干扰的恶劣环境中正常工作; 而脑电数据的记录与传输同样也须能理想清静地进行,要求VR(VE)场景内无通讯线路冲突和各种环境干扰的打搅;BCI 系统与VR系统结合必须切实紧密以保证现场实验时有足够快的信息交互速度;在某些虚拟现实场景(VE)中,用户可能需要在附近周边走动,此时须使用活动电极检测脑电以便更好地避免人体运动带来的干扰。
BCI-VR新技术将如何应对上述挑战呢?从第3 节“BCI 对VR的控制”的介绍可以看到,通过采用不同类型的脑电信号(如想象动作MI、稳态视觉诱发电位SSVEP、事件相关电位P300 成分等)可以得到多种大脑思维状态,从而构成多个内涵丰富的指令集。在利用上述脑电作为控制信号构成不同模式的BCI-VR
系统中,近期新研究开发BCI 系统控制VR的实验结果均可达到较高的分类正确率,控制性能也有快速进步。因此利用BCI 指令实现对VR的有效控制是完全可能的。这为BCI-VR系统设计突破首个技术难点展示了充满希望的前景。实际上,如第3.3 节“P300 控制VR/ VE”所述,利用多种类型脑电(MI、SSVEP、P300等) 构成多种信息内涵指令集的思路已启发人们研究开发新型的混合式(Hybrid)BCI。混合BCI 由多个使用不同种类脑电的BCI 构成;混合BCI 既可以同时处理其中各个BCI 的输入,也可依次操作每个BCI 系统,其中头个BCI 系统可起“脑开关”作用。如此,混合BCI 可以结合各个BCI 的优势并因此具有更突出的长处或提供更特别的用处。第3.3 节提到P300 与SSVEP 相结合的混合式智能家居环境控制系统,即是混合BCI。其中P300 用来选择命令,SSVEP 用作BCI系统。混合BCI 也是能应对上述挑战、可获得多种大脑思维状态并提供多个内涵丰富指令集的合适BCI 系统选择。
考察上述第二个技术难点,看似为对VR(VE)设计与展现的苛刻要求,细分析其背后的实质,乃是VR(VE)对BCI 控制的服务性能要求。因为在现有的VR(VE)技术中这些难点并不存在,而只有在BCI 与VR(VE)配合时才产在。因此,攻克这些难关还须改革BCI,迫使BCI 融入VR(VE)中并老老实实地为之服务。图4 所示在虚拟现实环境中集成SSVEP 刺激和反馈技术即是改造BCI 使之适应VR(VE)服务需求的成功范例。该系统将SSVEP 视觉刺激自然地融入VR(VE)中不仅可增加被试的真实沉浸感,也为化解第二个技术难点提供了思路。至于最后的技术难点,相信随着BCI 整体技术水平的提高,其软硬件相关的辅助技术水平也会有长足进步,不会存在不可逾越的沟坎。2
虚拟现实半实物接口1.设计虚拟现实VR(Virtools Reality)技术又称为“灵境”技术,指用计算机搭建一个逼真的三维感觉世界,使人和计算机很好地“融为一体”,给人以“身临其境”的感觉。经过近30 年的发展,虚拟现实技术在许多领域有着广阔的应用前景 。虚拟现实的实现需要硬件和软件2 方面的支持 硬件方面主要包括数据手套、三维鼠标、运动跟踪器、力反馈装置、语音识别及合成系统等。Virtools 软件自带了大量的行为模块供开发者使用,但是Virtools 软件并未提供标准的数据通信模块,不能与虚拟现实仿真系统进行数据通信,因此,虚拟现实仿真系统设计的难点在于半实物接口的设计。朱湘龙 ,张跃文通过调用相应的应用程序接口函数( API) 创建自定义通信模块,实现了实物系统与视景仿真之间的通信,这种方法要求开发者对操作系统的底层函数有很好的理解,并能熟练使用; 覃伯明 通过编写串口通信类,利用 Visual Studio2003 编译生成. dll 通信插件,完成了对串口的打开,读写操作,这种方法对开发者的C ++ 语言使用能力提出了很高要求; 傅招国 ,夏华锦利用 Virtools 自带的行为模块( BB) 实现了游戏方向徐望盘与仿真系统的交互控制,这种方法较为简单,但连接的外部设备比较单一,工业情况下不适用。
针对此问题,提出以 Visual Studio 2010 ( 以下简称 VS2010) 中的 C#开发环境为平台,载入 Virtools 3D XE Player 组件后,利用 VS2010 现有的 SerialPort 串口控件,通过虚拟现实仿真系统( * . cmo 文件) 与 VS2010 通信,VS2010 与硬件( 单片机) 通信,最终实现虚拟现实仿真系统与硬件通信。本文利用 Virtools 自带的实例,Camera Orbit. cmo 与单片机进行信息交互试验,通过单片机上按键控制虚拟场景中石像进行转动或平移运动,以及虚拟场景通过发送消息控制单片机数码管显示不同数字,以此验证提出方法的可靠性
2.软件平台Virtools
Virtools 是一套具备丰富互动行为模块的实时3D 环境虚拟实景编辑软件。本身自带了700 多个Building Block(BB)模块,使用这些模块可以迅速方便地处理丰富和交互性强的3D 模型。对于某些特殊用途,比如,串口通信的实现,就需要使用Virtools SDK 开发出新的适用于特殊需求的BB 模块。SDK 针对C ++ 语言,具有C ++ 面向对象语言的所有特点。
VS2010
VS2010 是微软公司推出的开发环境,采用拖曳式便能完成软件的开发。简单的操作便可以实现一个界面的生成,支持C#、C ++ 、VB 等多种语言开发环境。其主要特点有: 支持多个监视器、快速浏览代码、调用层次结构项目功能对应等。
3.关键技术及实现3.1虚拟现实仿真系统与VS2010 交互
为减少原型开发周期并减少工作量,本文使用VS2010中C#开发环境与3D XE Player 组件开发原型的界面。3D XE Player 组件具有以下优点:
1)支持所有.NET 开发环境,方便程序开发人员
2) 不仅提供播放器窗口功能,还包括多种常用方法控件。
C#是可用于创建要运行在. NET CLR 上的应用程序的语言之一,是微软专门为使用. NET 平台而创建的。它能使用. NET Framework 代码库的每种功能 其主要特点有语法简单、易于移植到其他操作系统上等。相比于 C ++ ,它是类型安全语言,运行更加稳定。
3.2 虚拟现实仿真体统载入
为了在 VS2010 中载入虚拟现实仿真系统,首先要完成 Virtools 3D XE Player 组件的加载。在“工具箱”选项中,依次右键———选择项———COM 组件———Virtools 3D XE Player,点击确定即可加载。完成组件的加载后,便可以进行仿真系统的载入。以下为Virtools 3D XE Player 组件载入仿真系统函数原型:public virtual void Load( string file) : 该函数用于将虚拟场景仿真系统文件,即将* . cmo 文件载入到 C#开发环境中,其参数 file 有 2 种实现方式,一是填写完整的文件路径名,如 “D: Program Files /3DVIA / * . cmo”,这里需要注意的是,文件名之间不能用“\ ”,否则会出现编译错误; 二是填写相对路径,即“Application. StartupPath + ”. \ * . cmo””,这里要注意的是,要将待加载的* . cmo 文件放入到该项目工程中的 De-bug 文件夹内。
关键代码如下:
private void timer1_Tick( object sender,EventArgs e)
{
this. axXEPlayer1. Load ( Application. StartupPath + " . / /Camera Orbit. cmo" ) ;
this. timer1. Stop( ) ;
}
3.2.1虚拟现实仿真系统向 VS2010 发送消息
该模块实现的功能是,当虚拟现实仿真系统成功导入到 VS2010 中后,利用 Virtools 软件自带的“Fire Virtools Event”模块实现由虚拟现实仿真系统向 VS2010 发送消息,该模块具有 2 个参数,如图 2 所示
“Event Name”为发送数据说明,应该简单明了,容易识别,“Event Data”为发送数据内容。
3.2.2 VS2010 接收虚拟现实仿真系统消息
在VS2010 中,利用Virtools 3D XE Player 组件中的Vir-toolsEvent 事件接收来自虚拟现实仿真系统的消息,其函数原型如下:
private void axXEPlayer1 _ VirtoolsEvent (object sender,AxXEPlayerActiveX._IXEPlayerEvents _VirtoolsEventEvent e) :
该函数中需要注意的是第二个参数“e”,其对应于虚拟场景文件中“Fire Virtools Event”模块中的参数“Event Name”,利用“e.eventData.ToString ( )”可以获取其所携带的数据,即“Event Data”参数的内容,进而通过对数据内容的判断,做出相应的动作,触发不同的事件。
部分代码如下:
private void axXEPlayer1 _ VirtoolsEvent (object sender,
AxXEPlayerActiveX._IXEPlayerEvents_VirtoolsEventEvent e){
if (e.eventData.ToString( ) = = " 8" )/ / 如果仿真系统发送数字8,则向单片机发送如下信息
{
byte[]send1 = new byte[5]{0x77,0xAA,0x03,0xbd,0x01 } ;
serialPort1.Write(send1,0,5) ;
}
if (e.eventData.ToString( ) = = " 9" )/ / 如果仿真系统发送数字9,则向单片机发送如下信息
{
byte[]send = new byte[5]{0x77,0xAA,0x03,0xbd,0x02} ;
serialPort1.Write(send,0,5) ;
}
}
3.2.3 VS2010 向虚拟现实仿真系统发送消息
当VS2010 接收到来自硬件的消息时,需要向虚拟现实仿真系统发送对应消息,虚拟场景中的物体接收到来自VS2010 的消息后做出相应的动作,借此实现硬件与虚拟场景对象之间的交互。VS2010 中向虚拟现实仿真系统发送消息的函数声明如下:
public virtual void BroadcastMessageSingle (string mes-sage)。
关键代码如下:
private void VT_work(string text)/ / VS2010 向仿真系统发送消息
{
axXEPlayer1.BroadcastMessageSingle(text) ;
}
3.3 虚拟现实仿真系统接收 VS2010消息
为了实现对VS2010 所发送消息的接收,虚拟现实仿真系统脚本中需加入多个“Wait Message”BB 模块,该BB 模块当接收到与设定内容相同的消息时,便触发“out”输出端口。所以,通过对接收内容的设置,及在该模块后添加相应脚本,可以实现不同的动作响应。如图3 所示为该模块的参数设置对话框,“Message”所接收内容。
3.3.1VS2010 与硬件交互
单片机具有体积小、功耗低、控制能力强、扩展灵活、微型化和使用方便等优点,目前已渗透到生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。例如,仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制领域。单片机与各种硬件之间的交互控制技术已经非常成熟,所以,只要实现VS2010 与单片机之间的信息交互,再通过单片机与所需控制的外围硬件连接,便可完成 VS2010 对其他外接硬件设备的间接控制。因此,本文只讨论VS2010 与单片机之间的信息交互实现方法。
3.3.2 VS2010 向单片机发送消息
当VS2010 接收到来自虚拟现实仿真系统发送的消息时,需要根据消息内容做出相应的判断,并根据判断向单片机发送消息。这一功能实现需要借助SerialPort 串口控件的“Write”函数,其函数声明如下所示:public void Write(byte[]buffer,int offset,int count) :该函数的“buffer”参数表示一个字节数组,“offset”参数表示从“buffer”数组中第几个字节开始写入串口,“count”参数表示需要写入的字节数量。其关键代码参看2.1.3 小节。
3.3.3VS2010 接收单片机消息
此功能模块实现的是,VS2010 作为单片机与虚拟现实仿真系统的中介平台对单片机发送的消息进行接收,这一功能实现需要借助SerialPort 串口控件中的“DataReceived”事件,及“Read”函数(与“Write”函数类似,不再赘述)。需要注意的是,串口控件在工作时为保证能实时接收和发送消息,会在主线程外开辟一个新的线程。所以,当在“DataRe-ceived”函数事件中向仿真系统发送来自单片机的消息时,需要进行委托,才能进行跨线程参数传递,否则编译会出现错误。
关键代码如下:
private void serialPort1 _ DataReceived (object sender,Sys-tem.IO.Ports.SerialDataReceivedEventArgs e)
{
byte[]receive;
s = null;
int num = serialPort1.BytesToRead;/ / 确定单片机发送给VS2010 数据的字节数if (num >0)
{
receive = new byte[num];
serialPort1.Read(receive,0,num) ;/ / 读取单片机发送数据
for (int i = 0;i