基于Kinect传感器姿态采集PPT控制系统软件设计

2015-08-11 04:49高小梅
企业文化·中旬刊 2015年8期
关键词:人机交互

高小梅

摘 要:设计一款可以通过人体动作对PPT进行简单播放、翻页、停止等简单操作的控制系统。该系统主要有外设和pc机组成。通过Kinect体感传感器采集人体姿势信息,在pc机中进行预处理、判断是否符合触发条件,在执行相应的操作。总而言之,本论文就是主要围绕姿势识别展开,通过kincet传感器姿态采集系统,然后对姿势进行识别最终实现对控制。

关键词:人机交互;Kinect传感器;姿态识别;PPT控制系统

随着人机交互在人们生活中的发展,大家越来越提出智能化,实现正真的人机交互。我们致力于研究出,一种全新的操控方式,基于kinect的姿势控制。通过人的姿态来控制PPT,可以更直观,更高效。增强PPT渲染力,说服力。也更符合现代人的需求,随心所欲更智能化。所选用Kinect体感手势识别传感器,其能够捕捉、跟踪以及解密人体的动作和手势,它通过对深度图像和骨骼图像的分析实现动态手势识别。在骨骼图像的20个骨点中选取至少2个有效骨骼点,通过追踪这些骨骼点的位置来实现对手部的追踪;再通过对手部深度图像的分析来实现动态手势识别。

一、Kinect的简单介绍

(一)Kinect简介

Kinect是微软为其Xbox 360游戏主机和Windows平台PC打造的一款运动感知输入设备,作为一款体感外设,它实际上是一个采用全新空间定位技术(Light Coding)的3D体感摄像头,利用即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能,允许玩家使用身体姿势和语音命令通过自然用户界面技术与Xbox 360交互,从而完全摆脱了传统游戏手柄的束缚。

(二) Kinect的主要配置有

RGB摄像头:为Xbox 360提供红、绿、蓝三颜色通道,主要作用在于面部识别和动作追踪;

深度传感器:深度传感器有红外线投影机加单色CMOS传感器组成,虽然功能并不复杂,但它可以让Xbox 360真正“看到”3D空间,而不是通过计算得出空间数据;

多点阵麦克风:主要功能是为了聊天以及语音命令识别,并可以帮助过滤环境噪声;

定制处理器和微软的定制软件:所有硬件都由微软设计的软件控制,商业目的。

(三)结构

Kinect有三个摄像头,中间是一个RGB摄像头,用来获取640×480的彩色图像,两边是两个深度传感器,左侧的是红外线发射器,右侧的是红外线接收器,用来检测玩家的相对位置。Kinect的两侧是一组四元麦克风阵列,用于声源定位和语音识别。

(四)kinect for windows SDK 功能介绍

骨骼追踪:对在Kinect视野范围内移动的一个或两个人进行骨骼追踪,可以追踪到人身体上的20个节点。此外,Kinect还支持更精确的人脸识别。

深度摄像头:利用“光编码”技术,通过深度传感器获取到视野内的环境三维位置信息。

音频处理:与Micorsoft Speech的语音识别API集成,使用一组具有消除噪声和回波的四元麦克风阵列,能够捕捉到声源附近有效范围之内的各种信息。

感应器:彩色和深度镜头,辅助感应倾斜驱动马,达完全相容所有Xbox 360装置。

二、Kinect程序流程

基于Kinect SDK中的API函数完成kinect解决方案,如下图所示,主要包括5个部分:初始化,获取图像,分析跟踪状态,显示图像,以及退出。下面将分别介绍。

Kinect SDK中的API函数以“Nui”开头,一般命名为“NuiXXXX”。为了与Kinect SDK中的API函数区别,kinect解决方案中的函数均以“KinectXXXX”命名,内部调用Kinect SDK中的API函数。

(一)初始化

对应KinectNuiInit()函数,初始化Kinect设备,设置摄像头仰角,打开颜色流、深度流和骨架流。

(二)获取图像

对应KinectGetDepthImage()、KinectColorFrameToImage()和KinectGetSkeleton()函数,从颜色流、深度流和骨架流中获得数据帧,转化为openCV中的IplImage图像类型。

上面的3个函数调用了KinectGetFrame()、KinectDepthFrameToImage()和KinectColorFrameToImage(),获取数据帧,并且转化为对应图像类型。

(三)分析跟踪状态

对应KinectJudgeTrack(),判断当前的跟踪状态以及控制权所示情况。

KinectJudgeTrack()调用了KinectPointDistance()和KinectPointHorizontalDistance(),求出两点之间的距离以及两点之间的水平距离。

三、演示系统结构

(一)演示框架

本文的虚拟演示系统是通过对骨骼数据的追踪来捕捉人体的动作来控制图片的移动,放大,缩小,旋转等操作,从而形成一个能与人交互的一个虚拟演示系统,总体结构如下:

图1 系统操作方案

(二)对骨骼数据的追踪

先定义骨骼点,通过定义的骨骼点确定骨骼位置;再定义一个骨骼状态函数,通过这个骨骼状态函数来捕捉人体的动作,最后通过时间模型来对骨骼数据进行追踪。

图2 骨骼追踪模式

(三) 图片操作

通过对骨骼的追踪,确定到手的位置,然后定义操作的动作来识别是对图片进行什么操作。先获取图片的中心位置,然后在进行操作。

图3 图片操作方案

(四)视频窗口

定义一个KinectSensor对象用来表示Kinect设备,定义一个数组来存放获取到的图像数据,再通过Loaded方法来来初始化视频数据并接收视频流,最后利用kinectSensor_ColorFrameReady方法来获取视频数据并显示出来。

图4 数据采集结构

(五)预演示

该方案应用体感外设作为LED全彩屏的手势输入终端。设备通过识别操作者的手势、动作来实现LED全彩屏的动作。

手势输入终端是一种新型的输入终端,它不同于传统意义上的输入终端,比如键盘、鼠标、游戏手柄等,它通过人体的手势以及动作将操作指令下达给设备。

本方案将体感外设作为新型的输入设备操作LED全彩屏,颠覆了以往LED屏只能显示无法互动的缺点。改变了以往LED显示后台操作的模式,实现了观众即是操作者的设计理念。

通过体感外设可以准确将用户轮廓提取出来,通过轮廓提取用户动作信息,并对用户信息进行建模。

猜你喜欢
人机交互
人机交互课程创新实验
图像处理耦合模板定位的答题卡识别研究与应用