一种实时3D远程人机交互系统的制作方法

文档序号:11196164阅读:1230来源:国知局
一种实时3D远程人机交互系统的制造方法与工艺

本实用新型涉及到人机交互和实时远程3D视频通信领域,尤其是涉及到一种实时3D远程人机交互系统的技术背景。



背景技术:

如今,双目摄像头快速发展,如ZED、KINECT等双目摄像头,使获取深度图像信息越来越便利,并且成本低、精度高。特别是KINECT双目摄像头,用户可以很方便去获取和使用3D点云数据。将KINCKET运用到一种实时3D远程人机交互系统中,可以做到在一个较高的精度下节约制造成本。

PCL(Point Cloud Library)的出现,人们处理3D图片操作变得更加简单,结果更加稳定。一种实时3D远程AR交互系统使用PCL去处理采集到的3D点云数据,具有很大的优势。

AR技术的兴起,各种识别人身体部位的3D信息的设备得到快速发展,LEAP MOTION能够快速、稳定、准确采集到人的手部3D信息,这个为一种实时3D远程人机交互系统提供了交互技术硬件支持。

学术界已经有一些应用于远程人机交互系统和3D视频实时传输的相关专利,主要有:

1.中国公开专利:CN 103793060 A 一种用户交互系统和方法:交互界面的虚拟物体跟随提取人手的3D位置信息移动,该发明实现了3D交互系统,但是该发明只是单方向交互,并且用户必须佩戴头戴式3D显示器等,使用者操作繁琐。

2.中国公开专利:CN 105389006 A 一种基于Kinect的裸眼3D交互改进方法:利用 Kinect 采集到人手关节信息进行交互,但是在交互之前必须调整Kinect 到合适的位置和角度,由于安装复杂,限制了其使用范围。

3.中国公开专利:CN 103269423 A 可拓展式三维显示远程视频通信方法:利用RGB-D相机采集到人物图像,经过处理并发送到第二个用户,第二个用户接收并显示任务图像信息和播放声音,该发明只是实现了信息提取和传输,并没有双向交互过程。



技术实现要素:

本实用新型是实现一种实时3D远程交互系统,目的是在裸眼3D效果下,实现人与3D投影交互,其中3D投影是远程的操作的替身。本实用新型可概述为两大部分,分别是服务操作端、客户交互端,其中客户交互端为移动机器人。服务操作端至少包括一台电脑、深度摄像机、服务操作端图像处理模块、服务操作端数据发送\接收模块、服务操作端命令处理模块、服务操作端3D图像显示模块;客户交互端至少包括一台电脑、leap motion、客户交互端3D图像显示模块、客户交互端命令处理模块、客户交互端图像处理模块、客户交互端数据发送\接收模块、手的信息处理模块。

服务操作端和客户交互端实现实时在线通讯,服务操作端将3D图像和操作命令发送给客户交互端,客户交互端把交互结果发送给服务操作端。

服务操作端数据发送\接收模块和客户交互端数据发送\接收模块,用来发送和接收网络数据,且必须可以处理大数据。

服务操作端可显示交互结果的3D效果,客户交互端可显示操作者信息和命令(或者指导信息)的3D效果。

服务操作端图像处理模块和服务操作端命令处理模块,分别用来对点云数据进行处理(如滤波、分割、重建)、处理操作者命令和客户交互端发送过来的命令;客户交互端图像处理模块、渲染模块和客户交互端命令处理模块,分别用来对点云数据进行存储(如滤波、分割、重建)、渲染3D图像、处理服务操作端发送过来的操作者命令和客户交互的结果。

客户交互端手的信息处理模块,可以对leap motion获得数据进行处理,从而达到对模拟鼠标的控制。

服务操作端可以对客户交互端的移动机器人进行控制,可以在客户交互端显示操作者的命令;客户在客户交互端可以和3D投影进行交互,交互结果可以更新在投影上和发送到服务操作端。

本实用新型具体操作过程如下:

服务操作端:实现操作者上本身的3D点云数据采集、3D点云数据处理、命令处理、数据发送\接收功能。实施步骤如下:

1.深度相机采集操作者上身的3D点云数据,3D点云数据通过串口传输到近端电脑上;

2.服务操作端电脑接收到3D点云数据,将3D点云数据进行滤波、分割、重建等处理工作;

3.将处理好的3D点云数据和操作者对远端的操作命令一起打包数据包;

4.把打包好的数据包发送远端和接收客户交互端发送过来的命令;

5.解析远端发送反馈过来的命令,显示给操作者;

6.循环1-5步骤。

客户交互端:实现3D点云数据和近端发送的命令的接收、渲染3D点云数据、利用leap motion进行交互、发送交互结果到服务操作端的功能。实施步骤如下;

1.客户交互端接收到服务操作端发送过来的数据包,将数据包拆包,并存在相应的缓存中,比如点云数据缓存区、命令寄存器等。

2.将命令寄存器的命令解析成相应的文字,将点云数据缓存区的点云数据和渲染3D图片,以及将命令的文字赋给Text标签的值并渲染Text标签。

3.利用投影仪将渲染出来的效果投影到贴有幕布的玻璃上。

4.使用中断方式实现leap motion交互,其中,leap motion提取客户的手掌的位置信息、手掌法线、各个手指的向量等信息,然后把手掌的位置信息赋给模拟鼠标的位置,让模拟鼠标跟随手掌运动;利用手掌法线和手指向量信息识别两种手势,作为模拟鼠标的左右点击。当模拟鼠标移动到Text处,点击Text会触发中断,不同的Text会得到不同的命令。

5.将得到的命令打包,发送给服务操作端,并显示给操作者。

6.重复1-5步骤,其中步骤1和2是并行进行的,处于不同的线程,步骤4中,leap motion处理客户手的信息也是处于不同的线程。

本实用新型的优点:

本实用新型结合不同领域的知识,利用廉价的深度摄像头采集操作者信息,并利用局域网将操作信息传送到客户端,实现实时传输。在交互方面,利用Leap Motion 采集人手信息,去控制模拟鼠标,实现人与3D投影交互,操作方便,简单。

附图说明

图1为本实用新型整体结构流程图

图2为本实用新型服务操作端图像处理模块

图3为本实用新型客户交互端图像处理模块

图4为本实用新型客户交互端手的信息处理模块

图5为本实用新型交互信息控制流程图

其中0为操作者、1为深度摄像机、2为服务操作端图像处理模块、3为服务操作端3D图像显示模块、4为服务操作端命令处理模块、5为服务操作端数据发送\接收模块、6为客户交互端数据发送\接收模块、7为客户交互端命令处理模块、8为客户交互端图像处理模块、9为渲染模块、10为投影仪、11为客户交互端3D图像显示模块、12为手的信息处理模块、13为客户的操作手、14为leap motion。

具体实施方式

下面结合附图1到附图5以及实施例对本实用新型作进一步详细的描述。

如图1所示,本实用新型整体流程大致包括15个模块,其中由两大部分组成,分别是服务操作端和客户交互端,服务操作端利用深度摄像头采集操作者的上半身的信息,经过图像处理后,然后组合操作者的命令成数据包,一起发送到客户交互端。客户交互端接收到网络传过来的数据,然后将数据包分包,存入不同的缓冲区,然后显示相关信息,其中这个需要一台投影仪和贴着玻璃幕布的玻璃板,最终可以在客户面前显示相关的3D信息。在客户交互端,客户可以通过leap motion和3D投影图像交互,交互的结果同样会显示在客户交互端的玻璃板上,该结果同时通过局域网传到服务操作端。

在服务操作端至少包括操作者0、深度摄像机1、服务操作端图像处理模块2、服务操作端3D图像显示模块3、服务操作端命令处理模块4、服务操作端数据发送\接收模块5。其中,深度摄像机1在本次实施中使用Kinect摄像机,目的是采集操作者0上本身的3D点云信息;服务操作端图像处理模块2是处理3D点云信息,具体是对3D点云信息进行滤波、分割、重建;服务操作端3D图像显示模块3是显示采集处理后的信息和交互结果信息;服务操作端命令处理模块4是对操作者的命令处理和交互结果的解析,为显示\发送做好准备;服务操作端数据发送\接收模块5是发送3D点云信息和操作者的命令、接收客户交互端交互的结果。

在客户交互端包括客户交互端数据发送\接收模块6、客户交互端命令处理模块7、客户交互端图像处理模块8、渲染模块9、投影仪10、客户交互端3D图像显示模块11、手的信息处理模块12、客户的操作手13、leap motion 14。其中,客户交互端为移动机器人,移动机器人包括以上模块。客户交互端数据发送\接收模块6是接收服务操作端发送过来的点云信息和命令、发送客户交互端交互的结果;客户交互端命令处理模块7是对操作者的命令解析和交互结果的处理,为显示\发送命令做好准备;客户交互端图像处理模块8是处理点云信息和命令,具体是把点云数据和命令存在不同的缓存区,并把点云数据赋给PCL对象,为渲染做好准备;渲染模块9是把点云信息和命令在客户交互端的电脑GRU上渲染;投影仪10是把渲染好信息投影到贴有幕布的玻璃板上;手的信息处理模块12是处理leap motion 14采集到手一些信息,如手掌法线、手指向量、手掌位置等,在利用这一些信息之前也要进行滤波处理。利用手掌的位置信息赋给模拟鼠标的位置,这样模拟鼠标就可以跟随手掌移动,当模拟鼠标移动到Text标签时候(Text标签可以是一些指导信息或者一些交互命令,客户可以查看各种指导信息和触发各种命令),可以点击Text标签,这些结果会更新到幕布玻璃板上,同时也反馈到服务操作端,服务操作端接收到命令后,做出相应的反应,然后传送到客户交互端更新3D显示内容,从而完成一次交互动作。

下面具体解释每个步骤:

在服务操作端,利用深度摄像机1提取操作者0的上半身的3D点云数据,本实施是使用是Kinect摄像机, kinect 摄像机安装在操作者前方,调整好角度,便可以固定。本实施没有使用微软官方的驱动,使用了第三方的SensorKinect 作为本实例的驱动,然后利用第三方 OpenNI库进行获取点云数据,其中利用其Grabber对象进行获取点数据。

如图2,当服务操作端电脑获取到点云数据后,利用第三方PCL库进行处理,首先是进行滤波,具体方法是使用统计滤波器( StatisticalOutlierRemoval )去除奇异点,接着使用双边滤波器平滑3D图像。接下来是分割图像,得到人的上半身的3D图像,分割是基于随机采样一致性(RANSAC)分割算法,得到操作上身的模型。但是,如果不对3D点云数据进行重建,那么会导致人的脸部缺失,重建是使用基于快速Delaunay三角化曲面重建算法,到此得到了最终处理后的点云数据。

处理好点云数据后,操作者发出的命令经过服务操作端命令处理模块4转换成发送命令的格式,结合点云数据打包成数据包,服务操作端发送\接收模块5是使用Boost中 asio 模块传输,发送先是把数据放入buffer流中,先发送数据大小然后发送整个数据包;在客户交互端,接收到网络数据包之后,首先从数据包中提取数据大小,然后分别接收3D点云数据和命令数据,接收后放在对应的缓存区。当客户交互端得到交互结果,同样先经过客户交互端命令处理模块7再打包数据,先发送数据大小,再发送数据;当服务操作端接收到网络数据,首先从数据包中提取数据大小,然后接收交互结果数据,接着把交互信息显示给操作者。

如图3,客户交互端得到服务操作端的数据后,把命令缓存区的数据转换成string类型,接着,利用PCL中 CloudViewer 对象,把命令数据赋给Text标签的值,最后对接收好的3D点云数据和Text标签进行渲染。同时,投影议会将渲染好的3D效果投影到贴有幕布的人形玻璃板上。

在客户交互端,客户裸眼可以看到3D效果图,其中由操作者的上半身图像和一些命令信息,这些命令信息可以是指导信息也可以是操作者对客户的要求等等。客户可以使用leap motion 14进行交互,交互信息可以传回给服务操作端。首先介绍本发明如何去提取客户的手信息来控制模拟鼠标(即手的信息处理模块12),接下来介绍整个交互过程。

如图4所示,当客户的手放在leap motion 14的识别区域,leap motion 14会自动读取手的信息,如手掌的位置、手掌的法线和各个手指的向量等。这些数据经过滤波后就可得到较高的精度信息,把手掌位置赋给模拟鼠标的位置,即可让模拟鼠标跟随手掌一起运动。利用手掌的法线和各个手指的向量即可识别手势,本实例中识别两种手势,分别是握拳和只有拇指张开,分别代表是鼠标的左右点击。

图5为这个系统交互的流程图,在客户交互端,leap motion 14获得客户的手信息,传送给手的信息处理模块12,当有点击命令发生时,会触发程序中断,中断程序会检测点击位置,然后根据位置确定点击是哪个Text标签,然后根据标签确定哪个命令,然后将命令传送回服务操作端。如果是指导信息,在客户交互端会更新投影图像,显示相关的指导信息。当命令通过局域网传输到服务操作端,服务操作端接收到命令,把命令解析并显示给操作者,操作者会根据交互的结果做出相应的命令,该命令同样会通过局域网传送到客户交互端,然后通过客户交互端图像处理模块6和渲染模块7,将操作者发送的命令显示给客户,如果命令是控制移动机器人运动,则该命令会传给移动机器人控制面板。

上述实施例为本实用新型的实施方式,但本实用新型的实施方式并不受上述实施例的限制,其他的任何未背离本发明的原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本实用新型的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1