樊景超 周国民
摘要尝试引入微软公司的一款体感周边外设Kinect设备,首先根据设备提供的人体运动检测提取复杂背景下的人体信息,结合自定义的背景图像信息制作虚拟演播室;利用手势功能完成对虚拟演播室背景图像的切换控制,以达到虚拟教学的目的。通过验证基于Kinect的前景提取和手势识别控制背景信息能力,证明该设计可以用于农业虚拟教学研究,有一定的借鉴意义。
关键词农业;虚拟;Kinect
中图分类号S-01文献标识码A文章编号0517-6611(2014)12-03706-03
基金项目基于模型的果园与油菜作物生产数字化管理平台(2013AA102505)。
作者简介樊景超(1980-),男,辽宁沈阳人,博士,助理研究员,从事农业信息技术研究。*通讯作者,博士,研究员,博士生导师,从事农业信息技术研究。
多媒体技术、网络技术在教育领域的普及和发展已经得到了广泛的认可和好评。基于计算机仿真技术的“虚拟现实”教学形式是一种新的教学模式,具有广阔的发展前景,代表了教育的未来和发展方向[1]。微软公司推出的Kinect体感技术具备了多种硬件条件和技术功能,如动态范围捕捉、影像识别、麦克风输入、语音指令、体感控制等,还具备了多种实现虚拟现实技术的硬件指标,在实际教学中具有很高的应用价值[2]。吕开阳[3]在动物外科手术的实验实践教学中引入Kinect这一新颖的输入方式,为教学实际活动提供了新思路。在不适合徒手操作电脑的情况下,教师可以用Kinect作为个人电脑的输入工具,以手势、身体姿势及语言作为输入元素,控制电脑查阅相关知识,得到及时反馈。黄康全[4]在视频会议系统中使用Kinect对PPT播放控制、与会人员举手发言的自动识别,利用深度传感器进行实时3D捕捉与显示。
该研究的目的旨在给农业培训中运用Kinect进行虚拟教学的可行性进行一定的初步探讨,希望给同行提供参考。
1 Kinect简介及工作原理
1.1Kinect简介 Kinect是微软在2010年6月14日对XBOX360体感周边外设正式发布的名字,其设备如图1所示。Kinect一共有3个摄像头,中间一个是RGB摄像头,用来获取640×480的彩色图像,每秒钟最多获取30帧图像;两边的是深度传感器,左侧的是红外线发射器,右侧的是红外线接收器,用来检测玩家的相对位置。Kinect的两侧是一组四元麦克风阵列,用于声源定位和语音识别;下方还有一个内置马达的底座,可以调整俯仰角[5]。
图1Kinect设备1.2Kinect工作原理(前景抠图) Kinect采集三维图像的光学部分主要包括两个部件:红外线发射器和红外线/VGA摄像头组。其工作原理[6]是,红外线发射器发出红外线覆盖整个Kinect的可视范围,摄像头组接收反射回光线来识别玩家的距离和特征。红外摄像头可以识别到的是物体的“深度场”(Depth Field),其中每一像素的颜色代表了那一点物体到摄像头的距离。比如离摄像头近的身体呈亮红色、绿色等,而离摄像头远的物体则呈暗灰色。
这是一种不同于传统的TOF或者结构光测量技术的光编码(light coding)技术,使用的是连续的照明(而非脉冲),也不需要特制的感光芯片,只需要普通的CMOS感光芯片,这也大大降低了Kinect的成本[7]。光编码[8]是用光源照明给需要测量的空间编上码的一种结构光技术。但与传统的结构光方法不同,它投射出去的光源并不是一副周期性变化的二维的图像编码,而是一个具有三维纵深的“体编码”,这种光源叫做激光散斑(laser speckle)。当激光照射到粗糙物体或穿透毛玻璃后会形成随机衍射斑点,这些散斑具有高度的随机性,而且会随着距离的不同变换图案,所以空间中任意两处的散斑图案都是不同的。通过这种激光散斑可以对整个空间进行标识,然后根据物体上的散斑图案就可以推测计算出物体的深度位。在进行物体散斑识别前要对整个空间的散斑图案进行记录和标定。
深度数据的有效范围[9]是0.80~3.84 m,如果在该范围以外,数值为0。标定的方法是:每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。假设用户活动空间是距离摄像头1~4 m的范围,每隔10 cm取一个参考平面,共保存30幅散斑图像。进行测量的时候,拍摄一幅待测场景的散斑图像,将这幅图像和保存下来的30幅参考图像依次做互相关运算,这样会得到30幅相关度图像。空间中有物体存在的位置,在相关度图像上就会显示出峰值。把这些峰值一层层叠在一起,再经过一些插值,就可以得到整个场景的三维结构信息。
2系统方案设计
2.1软件方案设计农业课件虚拟教学系统的软件部分如图 所示,主要包括用户管理,Kinect外设管理模块、手势管理模块、虚拟演播厅管理、课件制作模块(图2)。用户管理主要进行用户的注册、登录管理,用户信息的完善,虚拟课件直接导入用户信息作为课件属性信息。Kinect外设管理模块主要负责对Kinect设备进行初始化、设备关闭和设备状态检测管理,该模块将模块的状态返还给主程序作为系统运行的基本模块。手势管理模块主要是考虑不同用户的习惯,允许用户定义自己的手势用于控制播放。系統默认的前进手势是右手手臂平行于胸前,手掌与身体平行指尖向左;系统默认的后退手势是左手手臂平行于胸前,手掌与身体平行指尖向右。本系统的演播室是一个由图片序列组成的背景墙,用户在课件制作的过程中用自己的身体手势控制背景图片的切换。课件制作模块主要用于将录播时获取的实时图像按照时间序列制作成可以播放的视频文件,并将用户录入的课件信息、用户身份信息整合到课件中完成课件制作。
2.2软件工作流程 系统的软件流程如图3所示,用户进行登录后,首先进行外设的初始化,然后检测Kinect设备是否工作正常,如果外设状态错误则系统提示后退出。用户进入系统后首先要定义课件最常用的前进、后退手势或接受默认的手势。接下来要进行演播厅管理,用户按照播放序列导入课件需要的背景图片。系统根据用户手势来切换背景图片,达到课件播放的效果。在完成录播后系统退出。
3系统功能验证
3.1虚拟演播室Kinect传感器核心只是发射红外线,并探测红外光反射,从而可以计算出视场范围内每一个像素的深度值。从深度数据中最先提取出来的是物体主体和形状,以及每一个像素点的人体索引信息,然后用这些形状信息来匹配人体的各个部分,最后计算匹配出来的各个关节在人体中的位置。Kinect产生的景深数据作用有限,要利用Kinect创建真正意义上交互、有趣和难忘的应用,还需要除了深度数据之外的其他数据,这就是骨骼追踪技术的初衷:通过人体骨骼的关节点来控制人体运动[10]。
骨骼追踪技术通过处理景深数据来建立人体各个关节的坐标。骨骼追踪能够确定人体的各个部分,如哪部分是手、头部、身体。骨骼追踪产生X、Y、Z数据来确定这些骨骼点,其主要步骤如下[11]:①前景分割。利用数字图像处理技术可以完成这部分工作。Kinect会依据距离关系由近及远分析每个像素,以找到最有可能是人体的区域,通过边缘检测技术确定区域边缘,最终提取出人体在深度图像中的完整轮廓。②人体部位识别。该部分的任务就是识别人体轮廓区域内的各个身体部位,如头部、躯干、四肢等。Kinect使用数以TB计的数据进行训练,得到用于分类人体部位的识别模型,目前Kinect可以识别32个人体部位。③人体关节点识别。关节点是连接人体各个部位的纽带,考虑到人体部位会出现重叠,Kinect会从正面、侧面等多个角度去分析每一个可能的像素来确定关节点坐标。目前Kinect可以识别24个关节点,但是对外提供15个可供使用的关节点坐标值。
图5和图6是笔者在实验室内利用Kinect设备实现的虚拟演播室的实验截图。笔者尝试在办公室背景下实现类似无幕布的抠图效果,并替换农业教学所需图片背景,达到虚拟演播厅的目的。从测试的结果看,系统对人体的几何信息提取比较完整,精确度可以满足农业虚拟教学的需求。
图4含背景信息的图像信息图5提取前景人体后的虚拟演播厅3.2手势识别手势识别是整个虚拟课件制作重要的组成部分。通过定义好的手势,对演播厅的背景墙进行切换,达到虚拟演播的目的。人手势识别[12]是通过计算机设备对人的手势进行精确解释。早期的手势识别主要使用数据手套等传感器设备采集手部关节数据的方法进行手势提取,一起构成复杂、成本高昂而且需要专用的信息采集系统,虽然经典,但已经不适合当下对自然交互方式的要求。微软Kinect传感器的目标是将注意力集中在自然手上,通过感应红外激光散斑获取深度信息,不受环境的光照变化和复杂背景的影响。
要使用手势识别功能,Kinect SDK版本应该至少是1.5,最新版本为1.8。Kinect SDK 和 Kinect Developer Toolkit要一起安装,安装Kinect Developer Toolkit会安装Kinect Studio、一些C#/VB.Net/C++的应用程序示例、源码以及两个用于面部追踪的类库FaceTrackData.dll,FaceTrackLib.dll包括32位和64位版本[13]。
图6和图7是笔者在实验室内利用Kinect SDK对自身手势在运动状态下进行前进和后退手势的测试截图。从测试结果看,系统可以有效跟踪到肢体关节的空间位置,可以满足手势识别的需求。
图6前进手势识别图7后退手势识别4结论
研究设计了一种基于Kinect的农业课件虚拟制作系统,并对部分系统功能进行了验证。该系统以Kinect空间深度数据进行人体前景提取为工作核心,结合手势识别功能实现用户对虚拟演播厅背景图片的操作控制,它是一种新颖的虚拟课件制作系统,使得用户能够结合自己的农业知识实现农业课件虚拟制作,同时该系统不受场地限制,不需要昂贵的摄像设备。该系统的硬件成本低廉,适用于农业类用户的接受范围。该系统的最大特点就是使用户能够操作简单、易懂、灵活;且安装方便、智能性高。随着现代农业用户对知识获取意识的增强以及科学技术的快速发展,相信该研究必将在更广阔的领域得到更深层次的应用。
安徽农业科学2014年参考文献
[1] 宋宏泉.虚拟现实技术在现代医学教育中的应用[J].齐齐哈尔医学院学报,2006,27(8):984-985.
[2] 陈晨,王亚平,刘小鸿,等.基于Kinect体感系统的虚拟现实技术在医学教育中的可行性初探[J].中国医学教育技术,2012,26(6):667-670.
[3] 吕开阳.kinect体感技术在动物外科实验教学中的应用及展望[J].中国医学教育技术,2012,26(2):171-173.
[4] 黄康泉,陈壁金,郑博,等.kinect在视频会议系统中的应用[J].广西大学学报:自然科学版,2011,36(S1):308-314.
[5] 吳国斌.Kinect人机交互开发实践[M].北京:人民邮电出版社,2013:4-5.
[6] 余涛.kinect应用开发实践[M].北京:机械工业出版社,2012:41-45.
[7] 韩旭.应用kinect的人体行为识别方法研究与系统设计[D].济南:山东大学,2013:21-22.
[8] 邓小园.基于Kinect运动捕捉的高尔夫挥杆分析与辅助训练系统的研制[D].北京:北京邮电大学,2013:7-9.
[9] 杨林.基于Kinect的人体目标检测与跟踪[D].大连:大连海事大学,2013:8-15.
[10] 马庆.基于Kinect的实时人体动画合成及重定向技术研究[D].杭州:浙江工业大学,2012:11-15.