基于体感交互技术的工艺设计虚拟展示系统
2016-10-31宫晨
宫 晨
(陕西职业技术学院 艺术与学前教育学院,陕西 西安 710038)
基于体感交互技术的工艺设计虚拟展示系统
宫晨
(陕西职业技术学院 艺术与学前教育学院,陕西 西安 710038)
以3DMAX作为三维建模工具,运用Kinect外设体感设备的人体识别、运动跟踪与定位功能,使用Unity3D引擎设计了一种工艺设计虚拟展示系统,提出了分析系统框架设计、Unity3D界面设计、Kinect体感交互设计和动作识别算法的实现方法,进行系统测试,结果表明,方法有效,该系统在普通硬件环境中能达到高于20 f/s的运行性能。
体感交互;虚拟展示;动作识别
作为人机交互的重要组成部分,体感交互起源于游戏行业[1],目前广泛应用于电子娱乐、虚拟实验、服饰、公路几何设计、医疗辅助、汽车和机器人等领域[2-6]。在体感交互中,借助数据手套、3D头盔等硬件,用户通过身体运动和身体感受等方式完成人机交互[7]。考虑到体感交互直接与周围的设施或环境互动,操作简单,用户体验感较佳,而且能消除人机交互当中的硬件隔阂,增强虚拟展示系统的沉浸感[8],因此不少研究将体感交互与虚拟展示进行结合。20世纪90年代末,Penny利用12台摄像机环绕在一个洞穴式投影系统中,通过体感数据实时描绘空间中的人体动作[9]。McGinity通过红外摄像机识别人体的剪影,检测人体的手指等特定部位[10]。Gronbaek通过计算机视觉识别人体躯干,开发了一个具有交互性的地板式显示设备[11]。Benko在一套穹顶式显示设备中加入简单的手势交互功能[12]。这些尝试为体感交互与虚拟展示的结合提供了有益的尝试,然而,这些方法都缺乏一套高效的硬件技术以及高鲁棒性的动作识别算法,使得这些体感交互技术缺乏实用性。鉴于此,本文将微软的体感器Kinect应用到虚拟展示系统的设计中,运用人体动作识别算法获取动作数据,并经由OpenNI平台提供的数据接口实现人体动作数据在虚拟现实制作引擎Unity3D的输入,由此完成了工艺设计虚拟展示系统的整体设计,并在此基础上给出了系统关键应用的具体设计与实现。
1 系统的设计
1.1系统框架设计
以3DMAX为建造模型工具,采用3DMAX及与Zbrush等建造模型软件对拟展示的工艺设计品进行建造模型、贴图,构建展品的三维模型,并将其保存为fbx格式,然后利用Unity3D引擎将三维模型转化为可识别的Unity3D格式,并将该模型上传至3D体感交互的后台数据库;选用Unity3D作为虚拟展示平台,进行系统三维互动界面的设计,并通过编程实现对系统模型的放大、缩小、左右移动旋转等动作;同时,通过新生代体感交互设备Kinect for windows的深度摄像机对人体运动数据进行采集、分析,并运用优化的运动识别算法来实现人体动作的智能识别,获取控制指令,进行相应操作。由此所形成的工艺设计虚拟展示系统的整体框架,如图1所示。
图1 虚拟展示系统的整体框架设计
图1整个系统框架包括用户层、Kinect交互层和虚拟展示系统层等3层。与以往系统设计不同的是,在用户与虚拟系统之间增加了一个前端外设体感器Kinect,主要用来采集人体运动数据,改变了鼠标键盘交互方式。
在硬件层级,系统选用Microsoft Kinect作为外部体感设备。Microsoft Kinect具有成熟的硬件及高效的算法,支持多种软件开发工具,能提升系统兼容性,是一种采用全新空间定位技术的3D体感摄像机。在硬件的输出端,可依据展览需求设置各类图像及声音输出设备,为简化系统操作,采用较常用的PC输出设备来进行系统可行性的测试,且其输出接口可为其他输出设备接入提供便利。
在软件层级,系统采用Unity3D作为开发工具,以OpenNI平台为开发构架。在OpenNI的构架之下,通过插件NITE进行动作识别功能开发。
1.2界面设计
应用Unity3D中的NGUI插件进行系统界面设计,以实现系统展示功能,详细设计步骤如下:
第一步,设置与实现按钮。选择菜单中NGUI→Create new Widget,弹出一个Widget Tool对话框,以进行按钮及标签的设置,完成参数设置后,点击Add To按钮,在NGUI下选择Panel,创建Button。
第二步,引用外部文档。在工艺设计展示系统中,点击Button显示设计理念,为此,在NGUI中使用脚本LoadFile来引用外部文档,将其存储在设计文件目录。
第三步,切换展示界面。所设计的虚拟展示系统包含:菜单选择界面、工艺设计理念界面、工艺设计过程界面、工艺设计成品展示界面等,界面间的切换主要应用代码Appliacation.LoadLevel(“###”),选择“File”→“design Settings”将需要的场景拖入“Scenes in design”,完成界面切换。
1.3Kinect体感交互设计
Kinect体感交互设计环节,主要包括深度图像数据的获取、人体识别,骨骼追踪数据获取、人体动作对应的键盘按键的映射等4个层面,其中的两个关键环节为深度图像数据的获取和人体识别。
Kinect可提供彩色图像数据和深度图像数据,可构建缓冲区和调用其他方法来获取这两种图像帧,而数据流的获取则需要调用KinectSensor对象的事件。以时间模式来获取图像数据流,首先调用KinectSensor的Start()函数启动设备,进行视频流的接受,借助OpenDeathImage()函数来获取深度图像数据,将其复制到short数组,并运用获取的数据创建一个BitmapSource,将其赋值给初始添加的Image空间ColorImage的Source属性,进而实现深度图像数据在Unity展示界面的及时更新显示。
人体识别模块主要是将人体从深度图像中分离出来,Kinect解析较为接近Kinect的区域,并逐点扫描其中深度图像的像素,来确定人体的关节部位,其中涉及了边缘检测、平滑噪声及噪声滤出等环节。边缘检测运用特定算法抽取图像中背景与对象间的交界线。通过Kinect扫描获取的人体图像深度图,呈现凹凸不平状态,此时采用中值滤波方法进行平滑噪声,避免线性滤波引发的图像细节模糊问题,减轻过滤脉冲干扰及图像扫描噪声;同时,应用泊松方程来进行噪声滤除,确保Kinect能够基于最准确的信息来判断人体所处的具体位置。
1.4动作识别算法及其实现
采用Shotton提出的动作识别算法[13],将动作识别问题转化为普通的形状识别问题。对于深度图像I当中的像素点x,其特征值fθ为
(1)
式(1)中:x为像素点的像素,dI(x)为像素点的深度值,深度感应范围为1.2m至3.5m。当用户进入图像后,无论距离摄像机多远,都可以在身体的固定某个部位设定一个坐标,而θ=(u,v)用以描述像素对应该坐标的偏移值u与v。将dI(x)进行归一化处理后乘以这两个偏移值,进而分别求出两个深度值。将两值做差后获得特征值fθ。当该像素是背景图像时,dI(x)会被赋予一个极大的正常量,将人体剪影图像从背景图像中分离出来。
获得人体剪影的深度图像后,开始对人体剪影所反映出来的动作进行识别。通过整合的人体剪影图像数据库,训练出一个基于像素的人体结构分类器,从而将身体分成31个人体结构标签,利用决策树将图像I中的像素点x进行分类并贴上特定的标签。设决策森林有T颗决策树,树中每个叶子节点都包含一个特征值fθ和一个阈值τ,在树t中,存储了关于人体结构标签C的已知分布,定义这样一个分布用于描述像素点,即
(2)
已知的像素深度值dI(x)用于保证权重值的深度不变性,已处理好的P(C|I,x)用于确定像素人体结构标签的相关性,则有
(3)
式(3)中,wic为像素的权重值,表示像素对于标签C的概率。
然后,利用均值漂移算法来确定人体关节点。当关节点的置信度达到特定阈值后,就被输出作为算法的最后结果。
要实现动作识别算法,需要用到OpenNI软件。在OpenNI中,对人体骨骼的定义是通过关节点来实现,各个关节点都包含2个关键参数:位置和方向,OpenNI总共定义了24个关节点,但因系统应用插件NITE进行动作识别,且此仅支持15个关节点。OpenNI定义了一个负责内部沟通的生产节点类,为OpenNI框架的相关功能提供有效支撑,同时,还定义了一些进阶功能的能力类。
在进行动作识别之前,需要调用一个生产节点类来进行用户检测,检测成功,则调用NewUser函数,进行用户跟踪,并触发姿势检测能力类,来判断用户是否做出一个特定的校准姿势,当检测到校准姿势时,回调函数PoseDetected会被激活,对骨骼跟踪能力类发出骨骼信息校准请求,从而通过回调函数CalibrationStart完成骨骼信息校准。其核心算法流程如图2所示。
图2 动作识别核心算法流程图
基于以上的算法,系统在Untiy3D的脚本编辑环境中编辑了一套脚本,用来检测用户、校准及跟踪骨骼数据,并将数据实时传递到虚拟角色的骨骼上。该脚本注册了NewUser、LostUser、PoseDetected、CalibrationStart、CalibrationEnd等5个用于实现动作识别的回调函数。脚本中的Start函数调用5个核心函数,将在每次脚本调用时首先执行,完成用户的初始化与动作校准,Update函数在每渲染一帧时可判定用户距离Kinect的位置合适与否,UpdateSkeleton函数被虚拟角色骨骼的每个关节点调用,以更新其中的位置与方向两类参数,由此实现了这一帧中整个骨骼的动作识别。
2 系统测试与实现
基于双核2.3 GHz CPU、2 Gbyte内存、512 MHz独立显卡的计算机硬件环境。搭建测试系统。结合虚拟现实引擎Unity3D与应用程序开发接口API,测试系统实现了对用户动作数据的实时捕捉,并用获取的动作数据完成在虚拟世界中的视角控制与按钮点击等基本交互功能。
在测试中,当用户进入Kinect的检测范围后,系统会提示用户进行姿势校准,当用户姿势与姿势数据库配对成功后,系统中虚拟角色的骨骼便与用户实时同步。通过举起右手往屏幕方向做出一个点击的动作,屏幕中会出现一个球形控制点来跟踪用户手掌位置,虚拟场景中的摄像机方向会根据该控制点的位置变化而相应的改变,实现对虚拟视角的控制。通过左手拍打虚拟角色旁边的三维球形按钮会激活场景中特定的事件,实现用户与虚拟场景的交互。
系统的测试场景运用了渲染特效,以便模拟虚拟展示系统的硬件消耗,确保实现体感交互。图3为远距离模式下的测试效果实时截图,近距离模式下的测试效果则如图4所示。
图3 远距离模式下测试效果
图4 近距离模式下测试效果
测试系统在分辨率为 、场景特效全开的情况下进行体感交互,显示系统运行的帧速率约为20~30 f/s,基本满足虚拟展示系统要求的画面流畅性。在人体姿势与校准姿势达到一定的置信度后,使用回调函数CalibrationEnd完成校准,开始骨骼跟踪,实现效果图分别如图5和图6所示。
图5 人体姿势骨骼跟踪图
图6 标准姿势骨骼跟踪图
3 结语
设计了一种新型的工艺设计虚拟展示系统,通过Kinect 体感交互技术与Unity3D现实虚拟技术的融合应用,并通过高真实度的虚拟场景测试了体感交互技术在虚拟展示系统中实现。
[1]Saffer D.Designing for interaction creating innovative application and devices[M].2nd Edition.Berkeley:New Riders Press,2009:1-10.
[2]刘立强. 基于体感交互的裸眼3D互动展示设计与实现[D].北京:北京工业大学,2014:4-8.
[3]廖宏建,杨玉宝.体感交互设计及其在三维虚拟实验中的应用[J/OL].远程教育杂志,2013(1):54-59[2016-06-01].http://www.cnki.net/KCMS/detail/detail.aspx?QueryID= 0&CurRec=1&recid=&filename=YCJY201301007&dbname=CJFD2013&dbcode=CJFQ.DOI :10.15881/ j.cnki.cn33-1304/g4.2013.01.005.
[4]张必兰,陈艳蕾,王磊,等. 基于体感交互技术的太阳系三维模型演示系统的研究[J/OL].计算机光盘软件与应用,2014(7):25-27[2016-06-01].http://www.cnki.net/KCMS/detail/ detail. aspx?QueryID=0 &CurRec=1&recid=&filename=GPRJ201407020 &dbname=CJFD2014 &dbcode=CJFQ.
[5]符锌砂,龙立敦,李海峰,等.基于体感交互的公路真三维设计与系统架构[J/OL].华南理工大学学报(自然科学版),2014,42(8):91-96[2016-06-01]. http://www.cnki.net/KCMS/detail/ detail. aspx? QueryID=0&CurRec=1&recid=&filename =HNLG201408016 &dbname=CJFDLAST2015 &dbcode=CJFQ. DOI :10.3969/j.issn.1000-565X.2014. 08. 015.
[6]姜延,马文轩,陈剑华,等.基于Kinect体感交互技术的3D服饰文化展示系统[J/OL].纺织导报,2015(3):74-76[2016-06-01]. http://www.cnki.net/KCMS/detail /detail.aspx?QueryID=4 &CurRec=1&recid=&filename=FZDB201503020&dbname=CJFDLAST2015&dbcode=CJFQ.DOI :10.16481/j.cnki.ctl.2015.03.018.[7]廖宏建,曲哲.基于Kinect体感交互技术的虚拟装配实验系统开发[J/OL].实验室研究与探索,2013,30(7):98-102[2016-06-01]. http://www.cnki.net/KCMS/detail/ detail.aspx? QueryID=4&CurRec=1&recid=&filename=SYJL201307027&dbname=CJFD2013&dbcode=CJFQ. DOI:10.3969/ j.issn.1002-4956.2013.07.
[8]翟言,黄心渊,赵国英.基于体感交互技术的虚拟展示系统[J/OL].电视技术,2013, 37(21): 16-20[2016-06-01]. http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=28 &CurRec=1&recid=&filename=DSSS201321011&dbname=CJFDHIS2&dbcode=CJFQ.DOI:10.16280/j.videoe.2013.21.016.
[9]PENNY S,SMITH J,BERNHARDT A. Traces: wireless full body tracking in the cave[C]//Proc. ICAT, 1999. [S.l.]:ADM Press,1999:259-268.
[10]MCGINITY M,SHAW J,KUCHELMEISTER V,et al. AVIE: a versatile multi-user stereo 360.interactive VR theatre[C]//Proc.the 2007 Workshop on Emerging Displays Technologies: Images and Beyond: The Future of Displays and Interacton, 2007. New York:ACM Press,2007:5-9.
[11]GRONBAEK K,IVERSEN O S,KORTBEK K J,et al. IGame Floor: A platform for co-located collaborative games[C]//Proc.the International Conference on Advances in Computer Entertainment Technology.[S.l.]:IEEE Press,2007:64-71.
[12]BENKO H,WILSON A D. Multi-point interactions with immersive omnidirectional visualizations in a dome[C]//Proc. ACM International Conference on Interactive Tabletops and Surfaces.[S.l.]:IEEE Press,2010:19-28.
[13]SHOTTON J,FITZGIBBON A,COOK M,et al. Real-time human pose recognition in parts from single depth images[C]//Proc.Computer Vision and Pattern Recognition (CVPR).[S.l.]:IEEE Press,2011:1297-1304.
[责任编辑:汪湘]
Process design virtual exhibition system based on somatosensory interaction technology
GONG Chen
(School of Arts and Preschool, Shaanxi Vocational and Technical College, Xi’an 710038,China)
3DMAX is used as a kind of three-dimensional modeling tool. Kinect peripheral somatosensory equipment is also used for its function of human identification, motion tracking and positioning. A kind of process design virtual exhibition system is designed by unity3D engine. The implementation method of system framework design, unity3D interface design, Kinect somatosensory interaction design and action recognition algorithm are discussed and analyzed. A system test is then carried out. Test results show that the proposed method is valid. The system can achieve higher than 20 f/s operating performance in the general hardware environment.
somatosensory interaction, virtual exhibition, action recognition
10.13682/j.issn.2095-6533.2016.05.015
2016-06-10
宫晨(1981-),男,硕士,助教,从事艺术设计研究。E-mail: 358241088@qq.com
G434
A
2095-6533(2016)05-0076-05