3. 3解决手型图标抖动问题
Kinect每 秒 钟会 采 集30帧 的 深度/RGB数 据,每 帧所获 取 的骨骼的 三维坐 标 都是不相 同的,转变成二维坐标也是不相同的,所以把二 维 坐标映射 到手型图标上,手型图标会出现抖动的情况。在软件编程中,取出30帧的二维坐标数据如图4所示。
本文的设计考虑到抖动这一问题,提出采用K-Means算法[4]的解决方案,其基本方法为: 首先在软件中提取出最近的6个帧的骨骼三维数据,然后转换成二维坐标数据。再使用K-Means算法,随机在图中取K个种子点,然后对所有点求出到其K个种子点的距离,假如点pi离种子点最近,那么pi属于si点群。接下来,把种子点移动到属于它的点群中心。然后重复上述步骤,直到种子点没有移动。最后使用各个点的X/Y坐标的平均值,计算出点群中心的坐标。把6帧二维坐标的点群中心坐标映射到手型图标上可以有效地解决抖动的问题。具体算法流程如图5所示。
3. 4文物选择与控制
该系统首先根据客户的需求,对用户的手势行为做了规范协议[5],如表1、表2所示。如果用户的手势不是协议中所规定的,系统将不会做出任何响应。
用户操作虚拟文物的流程如图6所示。用户可以用自己的左右手来选择查看哪个朝代的文物,只需要把手放在图标按钮2 s即可。当用户选择了清朝的文物,界面右边会出现文物的二维图片,用户可以继续选择具体的文物。当用户选择了一个自己比较感兴趣的文物时,界面会出现一个3D文物模型,用户可以根据手势协议来操作模型,例如对模型旋转、放大等。当用户想查看其他的文物时,只需要把当前文物撤销即可。用户想要和当前文物模型合影时,只需要把手放在照相按钮上,系统会把图片保存到文件夹上。
4实验结果
为了验证系统的可靠性以及响应时间,进行了如下的现场测试。测试环境为Win10 + WPF + Kinect for WindowsSDK 1. 8.测试者站在Kinect正前方,做出不同的手势,以验证不同手势识别的准确性。表3为测试者做出不同手势的结果。
实验结果表明,使用Kinect能够正确判断出用户手势的意思,通过相应的算法以及手型图标抖动问题的解决,进而实现了对虚拟文物的位置、角度、姿态的控制,充分验证了基于Kinect的虚拟文物互动展示系统的可行性。
5结束语
基于Kinect的虚拟文物互动展示系统是一个新颖而又充满意义的课题。本文使用Kinect与WPF完成了一套用户体验良好、功能完备的用户与虚拟文物互动系统。该系统主要通过Kinect来获取人体骨骼坐标数据,通过对数据的分析与综合识别出用户的肢体语言,然后映射到3D文物上,实现用户与3D文物之间的互动。本文还提出了使用K-Means算法来解决手型图标在屏幕上的抖动问题,使用户具有更好的体验。下一步研究方向是采用手机App和Unity3D的开发方式,如通过扫描文物图片,在手机屏幕上出现3D文物模型,用户通过触屏的方式与3D文物进行互动。这样可以有效地解决用户多的问题,让每位用户都可以积极参与到博物馆展览之中。
参考文献
[1]刘鹏飞 虚拟博物馆系统的设计与实现[D].长春: 吉林大学,2011.
[2]马源驵。基于Kinect的内容展示系统设计与实现[D].郑州: 郑州大学,2014.
[3]韩娜,陈东伟,钟单成,等。基于Kinect的虚拟试衣系统设计与实现[J].信息技术,2015(7) :59-61.
[4]陈皓。 K-均值算法[DB/OL].(2013-11-28) [2016-08-25]
[5]胡焰。基于Kinect的虚拟试衣系统的设计与实现[D].武汉: 华中科技大学,2013.