基于体态识别的航天员虚拟训练仿真技术研究
2015-12-08陈学文晁建刚安明林万洪胡福超
陈学文,晁建刚,安明,林万洪,胡福超
(中国航天员科研训练中心人因工程重点实验室,北京100094)
基于体态识别的航天员虚拟训练仿真技术研究
陈学文,晁建刚,安明,林万洪,胡福超
(中国航天员科研训练中心人因工程重点实验室,北京100094)
以未来空间站任务建设虚拟现实训练器为需求,为了最大限度地降低虚拟现实设备穿戴给航天员带来的额外束缚,提出了一种新的基于体态识别的航天员虚拟训练仿真系统:采用平行双目视觉原理和偏振立体电视实现立体图像的生成与显示;采用人体三层模型实现虚拟航天员表达,采用骨骼动画实现人体典型动作自动演示、Kinect实现人机交互过程中人体跟踪和运动控制,适合于空间站任务航天员训练、工效验证、典型流程演示等人机交互应用。
空间站;航天员;虚拟训练仿真;体态识别;立体;Kinect;人体仿真
1 引言
空间站的建设和运行是一个长期过程,随着建设的发展,结构越来越复杂,舱内设备/物品越来越多,多批次航天员需在上面工作。即将执行任务的航天员和地面支持人员需要一套能够直观反映有人参与其中的空间站模拟系统,便于训练、学习、交流、任务规划与工程验证。但是在地面由于重力和物理条件的限制,无法或很难建设一套能够反映在轨飞行时空间视觉环境、物体操作的运动特性和相互力学特性的实物模拟器。目前世界上航天大国纷纷利用虚拟现实技术,采用计算机仿真技术,结合一些虚拟现实设备,创建出场景逼真、可交互、沉浸感强的虚拟训练仿真系统[1-3]。但是对于人体位置跟踪大多采用需要佩戴的设备,如数据手套、数据衣、位置跟踪仪等,这些设备给航天员带来了具有负面效应的束缚感,降低了航天员使用该设备的兴趣和效果。同时在虚拟人的交互上,没有形成用户与虚拟人的有效融合和交互,导致训练时虚拟人动画成分较重,逼真度降低。因此,开展基于体态识别的虚拟训练仿真系统研究势在必行。
本文首先给出了系统组成,然后给出了三维场景立体图像生成与显示、虚拟航天员三层表达与典型动作自动演示、自然人机交互中的人体跟踪与虚拟航天员运动驱动,形成一套自然人机交互虚拟训练仿真系统。
2 仿真系统设计
仿真系统首先需要创建逼真的三维虚拟场景,本文以某任务中的实验舱与轨道舱组合体和其中的航天员为例,在3D Max软件中建立组合体结构、舱内设备、虚拟航天员的几何结构,并贴上纹理信息,生成逼真的组合体和虚拟航天员三维场景数据库。通过编程,采用OGRE图形引擎,读入场景数据库,依据计算机图形学原理创建虚拟摄像机,实时渲染出逼真的三维数字组合体。控制虚拟摄像机的位置和姿态,向用户展示舱内不同部位的画面内容。在没有用户操作的情况下给摄像机一定的路径,让其沿着该路径移动,向用户动态展示舱内各部分的场景。
用户可以通过鼠标控制虚拟摄像机的移动和转动,观察感兴趣的物体。对某个设备感兴趣时,通过鼠标点选该设备,由Overlay技术在旁边弹出该设备的功能、工作原理和使用方法的介绍,进而获得该设备的详细信息。由于鼠标在屏幕上点击时直接获得的是屏幕二维坐标,而被点选的对象在三维空间中,采用射线法实现三维物体的拾取[4]。其基本原理是:过摄像机位置点向鼠标选中点做一条射线并求它和场景中所有实体的交点。在所有和该射线相交的实体中,离摄像机位置点最近的实体就是被选中的物体。
虚拟航天员的模型要能满足运动控制、碰撞检测和外形表达的功能。当用于人机交互时,虚拟航天员完全由Kinect采集的人体运动数据控制;当用于典型任务,如紧急撤离过程中航天员操作动作流程演示时,可以采用骨骼动画的方式实现虚拟航天员的运动和相应物体的动态演示。
用户可以通过基于光学的体态识别设备Kinect实时跟踪人体的运动,实现虚拟航天员运动控制。在三维虚拟场景中,当把虚拟摄像机绑定到虚拟航天员的眼部位置时,模拟出航天员第一视点观察到的场景内容,并随着用户头部的移动作动态变化。
为了实现上面的功能,仿真系统软件组成如图1所示,由数字组合体仿真软件和体态识别软件组成,后者通过网络把人体骨架各节段位置数据实时传递给数字组合体仿真软件,控制虚拟航天员的运动,两个软件部署在一台计算机上。数字组合体仿真软件实现组合体三维虚拟场景仿真、立体图像生成与显示、虚拟航天员三层表达与仿真、航天员典型活动三维仿真。体态识别软件利用Kinect采集的深度图像,识别人体深度信息,分析计算出人体骨架各个节段的位置数据,并传递给数字组合体仿真软件。
仿真系统的硬件组成如图1所示。1台计算机用于三维虚拟场景仿真、立体图像生成、虚拟航天员表达与仿真、典型操作动作演示、人体体态识别。1台具备偏振立体功能的立体电视机用于三维虚拟场景立体显示。1台Kinect体感设备用于人体运动跟踪。
图1 系统软硬件组成Fig.1 Component of software and hardware system
3 关键技术实现
3.1 立体图像生成与显示
增强用户的沉浸感和想象性,为用户提供三维场景的立体显示是很好的方法。由于左右眼之间有一定的间距,左右眼观察现实中的物体在大脑中所成的像稍有差别,经过人脑对两幅稍有差别图像的合成和想象,产生立体感。三维虚拟场景立体显示时,首先需要设计两台摄像机,分别为左眼摄像机和右眼摄像机,两个摄像机水平相距一个眼距,以一种双目投影模型分别生成稍有差别的左眼图像和右眼图像,然后通过立体显示设备显示给用户,把左眼图像和右眼图像分开,使得左眼只能观察到左眼图像,右眼只能观察到右眼图像。
目前有两种双目投影模型:汇聚双目投影模型、平行双目投影模型[5]。两种模型都存在左眼摄像机和右眼摄像机,水平相距一个眼距d,其差别是两台摄像机的视轴相对方向不同。汇聚双目投影模型是两台摄像机的视轴(视线方向)相交(如图2所示),即两台摄像机都向投影平面的中点观察。该模型实现简单,只需要把两台摄像机的位置相距一个眼距,观察方向旋转一个角度,使两台摄像机视轴水平对称、相交于投影平面上即可。但是该模型会引入垂直视差,在左眼和右眼图像的左边图像存在差异,同样右边图像也存在差异,两幅图像在大脑合成时会产生变形感,给用户带来不适,影响立体效果。平行双目投影模型是两台摄像机的视轴平行(如图3所示),即两台摄像机平行向前观察,且与投影面垂直,采用垂直对称、水平不对称的投影视锥体生成左右眼图像,不存在汇聚双目投影模型的变形问题,立体视觉效果好。本文采用平行双目投影模型。
图2 汇聚双目投影模型Fig.2 The convergence binocular projection model
在计算机中进行立体图像生成时,创建两台摄像机,分别代表左眼和右眼,两台摄像机相距一个眼距 d。根据三维图形学原理,存在左视口(viewport)、右视口和左平截头体、右平截头体的概念,视口是显示窗口中的一个区域,用来存放三维场景投影后的图像,左右平截体用来限定投影区域,相距一个眼距d,每个平截体有近裁剪面、远裁剪面,用与摄像机的距离ln、lf来表示。投影面也用与摄像机的距离来表示,具体用摄像机的焦距f来表达,如图4所示。在进行立体效果调试时,对于某些物体要求出屏效果-负视差(如图2中的物体A),即物体与相机的距离小于摄像机的焦距,对于某些物体要求在屏幕内部-正视差(如图2中的物体C),即物体与相机的距离大于摄像机的焦距,可以调整摄像机的焦距来实现正视差或负视差。
图3 平行双目投影模型Fig.3 The parallel binocular projection model
图4 投影模型Fig.4 Projection model
在软件代码实现时为了简化对多摄像机的管理,可以只管理一个摄像机、一个视口、一个平截体,在三维场景渲染生成立体图像之前,对摄像机和平截体的位置左右移动d/2的距离,创建两个渲染目标(render target),把渲染后的左右眼图像放在渲染目标相对应的两个视口中即可。
3.2 虚拟航天员表达与典型动作自动演示
为了虚拟航天员能够随着用户人体运动,同时满足人体外形逼真表达和碰撞检测的要求,对人体采用三层模型表达,并利用该表达模型实现航天员典型动作自动演示。
3.2.1 人体三层模型
为了满足虚拟航天员模型的多用途,借鉴文献[6]的三层模型表达法把虚拟航天员模型表达成三层模型,分别为骨骼层、皮肤层和物理模型层。骨骼层描述了人体的骨架结构,各骨骼之间具有父子关系的层次结构,相邻骨骼通过关节相连,可以做相对运动。通过改变相邻骨骼间的夹角、位移,使骨骼转动和移动,并带动皮肤层一起运动。皮肤层定义了人体的外观,皮肤是在骨骼影响下可变形的网格。皮肤上网格的每个顶点,根据它所关联骨骼的全局变换矩阵基于骨骼影响权值(Weight)对顶点进行变换,关节处皮肤顶点受到关节邻近的几块关联骨骼的影响,影响大小由权值确定,实现皮肤随骨骼的转动和移动作相应的变形。建立人体模型时在3D Max中不断调整各个顶点的权值,使得达到较好的变形效果,每个顶点的权值满足公式(1):
其中,vi是顶点在第i个关联骨骼子空间的局部坐标,Ci是第i个关联骨骼的全局变换矩阵,wi是第i个关联骨骼的权值,它们之和为1。
物理模型描述了人体各个节段外轮廓,采用面模型,大小与人体各个节段实际一致,节段之间具有父子关系的层次结构,为了获得较高的计算速度,其面片数相对皮肤层少,并且随着骨骼各节段的运动而运动。模型分层结构见图5。
图5 人体三层模型Fig.5 Three layers model of human body
3.2.2 虚拟航天员骨骼层的表达
按照人体骨骼结构,人体有66个运动骨骼节段,包括各个手指、脚趾骨骼细节,结合体态识别软件中的骨架模型,对虚拟航天员骨骼层简化,由人体肢体、躯干和头部10节段表达,如图6所示,名称见表1。节段之间的父子关系如图7所示,图中箭头从父节段指向子节段。
图6 人体简化骨骼模型及坐标系定义Fig.6 The simplify skeleton model and coordinate system of body
表1 躯体模型标号项对应体段Table 1 Name of body segments
图7 人体节段之间父子关系Fig.7 The father and son relationship of body segments
3.2.3 典型动作自动演示
当用于航天员典型操作动作演示时,如组合体内紧急情况下需要撤离时,航天员在离开组合体之前要执行一系列操作,对组合体相关设备进行状态设置。为了直观展示失重状态下航天员撤离时的操作流程,在数字组合体中采用动画的方式对人体和物体进行动态展示是一种合适的方法。对虚拟航天员人体本身采用骨骼动画,对热支持软管收缩过程采用顶点动画。
骨骼动画[7]是关节动画和关键帧动画的结合,基于人体骨骼层和皮肤层。对每一个撤离时操作动作,在3DMax中通过调整相邻骨骼间的夹角、位移,设置连续关键位置处相应的姿态,根据皮肤层网格上顶点变形权值,皮肤层随着骨骼一起到达相应的连续关键位置。动画播放时,通过在连续关键位置之间插值,实现人体连续动作演示。对于平移采用线性插值,对于旋转采用四元数球面线性插值。插值公式如式(2):
其中,p、q是需要插值的四元数,t为0到1之间的参数。
对热支持软管收缩过程的顶点动画,在3DMax中连续调整软管收缩过程中每一关键帧的位置状态,并记录每个顶点的当前位置信息。在动画播放时,通过在相邻关键帧之间线性插值来更新网格模型中顶点的位置实现软管收缩动态过程。该动画过程,由于顶点位置是直接获得的,计算量小,满足实时性的要求。
在程序中分别读取3DMax创建的人体动画和软管动画信息,根据用户操作指令,以操作动作为依据决定播放人体动画和软管动画,或只播放人体动画,完成各撤离动作的动态演示。
3.3 自然人机交互中人体跟踪与虚拟航天员运动驱动
在自然人机交互过程中,采用光学设备Kinect实现人体跟踪,并利用跟踪获得的数据实时驱动虚拟人的运动,实现用户控制虚拟人的运动。
3.3.1 人体跟踪
本文选用体感设备Kinect[8,9]实现对人体运动信息的采集。Kinect可以实时地从单一深度图像中分离出目标人体,标注出32个不同的人体部位,确定出20个人体骨架的空间关节点,构造出三维人体骨架。如图8所示。
骨架不仅包含了人体的局部形状信息,同时还包含了人体的结构拓扑信息。人体四肢长度是固定的,肢体节段之间同样具有父子关系。当人体运动时,通过对骨架深度图像的连续分析,计算出人体骨架各个关节旋转的角度,再结合骨架各个节段长度可以计算出各个关节的位置。
图8 Kinect人体骨架模型Fig.8 The human body skeleton model of Kinect
3.3.2 虚拟航天员运动驱动
根据人体跟踪骨架模型20个骨架的位置数据,选择与虚拟人体仿真中骨骼模型相对应的10个节段位置,采用下面的正向运动学,实时计算骨骼模型各个节段的位置和姿态,实现虚拟航天员模型的运动驱动。计算过程变换矩阵采用4×4的齐次矩阵T来表示,T由3×3的旋转变换R和3×1平移变换D构成。由末端体坐标系i到基坐标系0的正向运动学变换为式(3):
把计算出的人体骨架数据通过网络传递给虚拟航天员模型计算各层模型的运动,仿真流程如图9所示。
图9 虚拟航天员仿真流程Fig.9 Flow chart of virtual astronaut simulation
4 仿真结果
在一台HP Z820图形工作站上采用VC 2008开发并运行程序,机器具体配置为:至强 E5-2680,2.7 GHz,20 MB缓存,Win7 64位专业版操作系统,显卡为Nvidia Quadro K5000,内存32 G。显示器为LG 55英寸偏振立体电视,电视与显卡之间通过HDMI-DP视频线连接。
仿真程序可实现四种功能:①自动漫游功能,即摄像机沿着一定的路径动态移动,生成漫游动态图像;②舱载设备的熟悉与定位功能,采用O-verlay技术生成导航菜单,通过点击菜单,摄像机自动对准相应的设备成像,同时右下角显示设备的介绍信息,截图如图10所示;③基于体态识别的模拟航天员运动控制功能,采用体态识别和人体三层仿真模型实现人体运动识别和运动控制,虚拟航天员交互控制第三视点图像及相应的第一视点图像如图11所示;④紧急撤离时航天员操作流程演示功能,采用骨骼动画和顶点动画实现紧急撤离时人体和软管的动画,部分截图如图12所示。生成的偏振立体图像如图13所示。
经测试,三维数字组合体场景在打开立体渲染时,帧频率最低41 Hz,最高77 Hz,在关闭立体渲染时,帧频率最低76 Hz,最高440 Hz,都能满足实时性要求。针对立体显示效果,邀请各类人员对其立体效果进行测试,不断调整调整参数。最佳的立体参数为:眼距 d为65 mm,焦距为2.8 m。
图10 设备导航-虚拟仪表Fig.10 Navigation of virtual instrument
图11 基于体态识别的虚拟航天员运动控制Fig.11 Virtual astronaut motion control based on posture recognition
5 结论
本文以空间站虚拟现实训练器为需求,开展基于体态识别的虚拟训练仿真技术研究,以某任务天宫一号实验舱与轨道舱的组合体为具体仿真案例,在计算机中创建逼真的三维虚拟组合体舱内场景和虚拟航天员,采用平行双目投影模型和偏振立体电视实现三维场景的立体图像生成与显示;采用人体三层模型实现虚拟航天员的多用途表达,对于典型动作采用计算代价小的骨骼动画和顶点动画实现紧急撤离时航天员操作过程三维演示;采用Kinect实现人体运动跟踪和虚拟航天员的运动控制。形成一套虚拟训练仿真系统,包括自动漫游功能、舱载设备的熟悉与定位功能、基于自然人机交互的模拟航天员运动控制功能、紧急撤离时航天员操作流程演示功能。经测试,该仿真系统三维场景逼真,立体显示效果好,实时性好,人体动作跟踪准确,紧急撤离动作逼真,可以应用于空间站任务航天员训练、工效验证、典型流程演示等。
图12 紧急撤离Fig.12 Emergency evacuation
图13 偏振立体图像Fig.13 Polarized stereo images
(
)
[1]Virtual Reality Laboratory[EB/OL].(2010)[2014].http://www.nasa.gov/centers/johnson/engineering/robotics_simulation/virtual_reality/index.html
[2]Virtual Reality Theatre[EB/OL].(2012)[2015].http://vrt.esrin.esa.int/tiki-index.php?page=VRT at Work
[3]Charles J G,David J H.Application of Virtual Reality Technology,Including Froce Feedback,for Astronaut Training [C]//International Conference on Artificial Reality and Texlexistence,Japan,1995.143-152.
[4]姚继权,李晓豁.计算机图形学人机交互中三维拾取方法的研究[J].工程设计学报,2006,13(2):116-120.YAO Jiquan,LI Xiaohuo.Research on 3-dimension pick-up of human-computer interaction in computer graphics[J].Journal of Engineering Design,2006,13(2):116-120.(in Chinese)
[5]王良燕,张佑生,高敏.基于OGRE的双目立体显示研究与实现[J].计算机系统应用,2013,22(5):168-171.WANG Liangyan,ZHANG Yousheng,GAO Min.Research and implementation of binocular stereoscopic display based on OGRE[J].Computer Systems&Applications,2013,22(5): 168-171.(in Chinese)
[6]安明,刘玉庆,周伯河,等.失重状态下旋转陀螺交互操作的仿真研究[J].载人航天,2014,20(3):214-218.AN Ming,LIU Yuqing,ZHOU Bo-He,et al.Study on realtime interactive simulation of rotating top in weightlessness [J].Manned Spaceflight,2014,20(3):214-218.(in Chinese)
[7]倪晨,邱鹏,王峰,等.Kinect体感技术在人机交互中的应用研究[J].信息技术与信息化,2013(1):87-90.NI Chen,QIU Peng,WANG Feng,et al.The research and application of Kinect techology in the field of human-computer interaction[J].Information Technology and Informatization,2013(1):87-90.(in Chinese)
[8]刘飞.基于Kinect骨架信息的人体动作识别[D].上海:东华大学,2014.LIU Fei.Human Action Recognition Based on Kinect Skeleton Information[D].Shang Hai:Dong Hua University,2014.(in Chinese)
[9]袁会杰.骨骼动画技术的研究与实现[D].成都:电子科技大学,2010.YUAN Huijie.Research and Implementation of Skeletal Animation technology[D].Cheng Du:University of Electronic Science and Technology of China,2010.(in Chinese)
Research on Simulation Technology of Astronaut Virtual Training Based on Posture Recognition
CHEN Xuewen,CHAO Jiangang,AN Ming,LIN Wanhong,HU Fuchao
(National Key Laboratory of Human Factors Engineering,China Astronaut Research and Training Center,Beijing 100094,China)
Virtual training simulation,as a kind of full digital simulation,can create some special situation that physical or half hardware device is difficult to make.To meet the requirements of astronaut virtual reality trainer in the future space station mission,which can minimize the extra constraint feelings from the traditional virtual reality hardware device,a new astronaut virtual training simulation system based on posture recognition was proposed.It uses the parallel binocular vision principle to generate three-dimensional(3D)stereo image,which can be displayed on polarized 3D stereo TV.The three layers model of human body was adopted to express virtual astronaut,and skeletal animation was used to demo typical human body movement.The Kinect device was applied to track real astronaut body motion to control virtual astronaut body movement.The system is natural during human-computer interaction,which avoided the shackles of wearable virtual reality device for human body moving.It can be applied to astronaut training,ergonomics validation,and typical operation process demonstration in the future mission,etc.
space station;astronaut;virtual training simulation;posture recognition;stereo;Kinect;human simulation
TP391.9
B
1674-5825(2015)03-0217-07
2014-08-01;
2015-04-14
国家自然科学基金(81227001)
陈学文(1978-),男,硕士,助理研究员,研究方向为虚拟现实及航天员训练仿真。E-mail:chenxuewen2002@sohu.com