一种类全息远程呈现实现方法与流程

文档序号:11773629阅读:336来源:国知局
一种类全息远程呈现实现方法与流程

本发明涉及计算机软件技术领域,特别是涉及一种类全息远程呈现实现方法。



背景技术:

随着计算机网络的不断发展,人们越来越多地通过互联网进行社交活动,从最开始的通过消息、邮件的基于文字的社交,逐渐发展到后来的通过语音、视频的基于多媒体的社交。随着虚拟现实技术的不断发展,互联网社交也面临着与技术发展同步的要求,因此虚拟现实社交的概念也就出现了。

虚拟现实社交基本有两种情况,一种是直接显示出社交双方的现实形象,然后在虚拟空间中进行社交活动的社交,这种社交具有高度真实性的特点,适合现实生活中的熟人之间的社交;另一种则是对社交双方的真实形象“套壳”,使用虚拟的人物形象作为本人形象的替代,然后在虚拟空间中进行社交活动的社交,这种社交具有互联网“匿名”的特点,更能保护社交者的隐私。

目前国内虚拟现实社交起步较晚,缺少较为成熟的社交产品。虽然现在市场上已经出现了一些虚拟现实设备,从理论上都能够进行虚拟现实社交的实现,但经过本发明一系列的考察发现,使用当前市场上的的虚拟现实设备进行虚拟现实社交的实现存在一下问题:

(1)虚拟现实设备价格普遍较为昂贵,对于普通消费者而言,如果仅为进行虚拟现实社交而购买虚拟现实设备的话,会是一种浪费;

(2)虚拟现实设备都拥有各自的一整套相关工具,如动作捕捉等,和相关的软件开发工具包。基于这样的虚拟现实设备进行虚拟社交平台的开发,会出现适配难的问题;

(3)当前市场上的虚拟现实设备都注重于“沉浸”的体验,但在许多社交应用的场景下,人们并不需要“沉浸”,更多地是增强现实的体验,让虚拟人像在现实的场景中进行显示。



技术实现要素:

针对现有技术中存在不足,本发明提供了一种类全息远程呈现实现方法,通过以下技术手段实现上述技术目的。

一种类全息远程呈现实现方法,其特征在于,包括如下步骤:

步骤一:在某一时刻,使用具有人体骨骼数据跟踪捕捉功能的设备即kinect设备,对现实中的真人进行动作捕捉,获得关键骨骼点的三维骨骼坐标;

步骤二:将获取到的三维骨骼坐标在数据处理程序中进行组织处理,形成某一时刻该真人的关键骨骼点的三维骨骼坐标的坐标集合,封装成数据包从本地发送给指定的远方接收端;

步骤三:从指定的远方接收端中获取封装好的数据包;

步骤四:将获取到的数据包进行拆包,还原成关键骨骼点的三维骨骼坐标的坐标集合;

步骤五:在指定的远方接收端将关键骨骼点的三维骨骼坐标的坐标集合绑定、映射到用户自定义的虚拟人像骨骼模型之上;

步骤六:对虚拟人像骨骼模型进行渲染,并输出渲染后的虚拟人像骨骼模型的正面,背面,以及左右侧面的视图,将这四张视图拼接成虚拟人像投影图形;

步骤七:用led显示屏将渲染后的虚拟人像骨骼模型的正面,背面,以及左右侧面的视图投射到全息镀膜玻璃搭建的3d金字塔的四个面上,从而输出立体的虚拟人像;

步骤八:重复步骤一至步骤七,不断捕捉现实中的真人在连续时刻的动作,从而达到连续地远程传输虚拟人像的效果。

所述步骤一中的关键骨骼点包括以下20个骨骼点:人骨骼中心点、脊柱中心点、双肩中心点、头中心点、左肩中心点、左肘中心点、左腕中心点、左手中心点、右肩中心点、右肘中心点、右腕中心点、右手中心点、左臀中心点、左膝中心点、左脚踝中心点、左脚中心点、右臀中心点、右膝中心点、右脚踝中心点、右脚中心点。关键骨骼点的三维骨骼坐标的格式为(x,y,z,w),其中x、y、z分别表示关键骨骼点在x、y、z三维空间中的维度坐标,w表示齐次坐标,一般为1;x、y、z的取值以具有人体骨骼数据跟踪捕捉功能的设备所获取的原始数据为准。

所述步骤二中将获取到的三维骨骼坐标在数据处理程序中进行组织处理,包括如下步骤;

步骤2-1:按照某一固定顺序对具有人体骨骼数据跟踪捕捉功能的设备在某一时刻捕捉到的关键骨骼点的三维骨骼坐标进行排序;

步骤2-2:将排序后的关键骨骼点的三维骨骼坐标按顺序放入一个数组中;

步骤2-3:采用deflate压缩算法对数组按比特进行压缩,从而获取数组压缩后的二进制数据,得到一个封装好的数据包。

所述步骤四中将获取到的数据包进行拆包,包括如下步骤:

步骤4-1:采用deflate解压算法对数据包进行解压,获取数据包解压后的二进制数据;

步骤4-2:对数据包解压后的二进制数据进行解析,还原成关键骨骼点的三维骨骼坐标数据组成的数组。

所述步骤五中所述的将关键骨骼点的三维骨骼坐标的坐标集合绑定到用户自定义的虚拟人像骨骼模型之上的实现,包括如下步骤:

步骤5-1:对每一个关键骨骼点的三维骨骼坐标都进行坐标转换,从具有人体骨骼数据跟踪捕捉功能的设备的坐标系转换为用户自定义的虚拟人像骨骼模型所在的世界坐标系;

步骤5-2:根据进行坐标转换后的每一个关键骨骼点的三维骨骼坐标对每一个关键骨骼点进行骨骼旋转操作。

所述步骤5-2中关键骨骼点旋转操作的实现,包括如下步骤;

步骤5-2-1:保存用户自定义的虚拟人像骨骼模型每一个关键骨骼点在初始状态下的、在关键骨骼点自身的局部空间中的坐标系与其在世界坐标系中的位置与方向;

步骤5-2-2:根据具有人体骨骼数据跟踪捕捉功能的设备所提供的现实中的真人的骨骼的混合权重,判断骨骼的混合权重是否小于等于0,如果是,则不进行关键骨骼点的旋转操作;

步骤5-2-3:根据传入的当前关键骨骼点的坐标,与事先保存的关键骨骼点在世界坐标系中的位置与方向进行比较,计算出要变换当前骨骼点坐标位置所需要经过的旋转角度;

步骤5-2-4:对当前关键骨骼点进行旋转,旋转角度为步骤5-2-3中计算出的旋转角度。

所述步骤六中拼接成虚拟人像投影图形的实现包括如下步骤:

步骤6-1:在虚拟人像骨骼模型所处的世界空间中放置4个虚拟摄像机,以虚拟人像骨骼模型的胸腔正面方向为正面方向,虚拟摄像机的位置分别处于虚拟人像骨骼模型的正面、背面、左正侧面、右正侧面;

步骤6-2:4个虚拟摄像机同时对虚拟人像骨骼模型的4个面进行拍摄,根据拍摄的图像分别渲染出4幅图形;

步骤6-3:将这4幅图形以头对头的方式按照上、下、左、右的顺序拼接成一幅完整的图像,其中背面图像在上方,正面图像在下方,左正侧面图像在左侧,右正侧面图像在右侧,所拼接形成的图像即是虚拟人像投影图形。

本发明的有益效果在于:

1、对现实中的真人进行动作捕捉采用成熟的kinect设备,其软件开发工具包成熟并且能够在windows平台上使用。

2、用普通led显示屏以及全息镀膜玻璃搭建的3d金字塔显示虚拟人像,较其他虚拟现实投影设备而言成本更加低廉。

3、从关键骨骼点的数据处理、传输到绑定到显示虚拟人像采用的都是软件技术,不需要多余的硬件设计,较同类虚拟现实设备产品而言制造成本较低。

4、虚拟人像骨骼模型可以按照用户的喜好进行更换,只需要符合关键骨骼点的三维骨骼坐标的坐标集合绑定的要求,即能够简单地完成虚拟人像骨骼模型的自定义功能。

5、对现实中的真人进行动作捕捉和显示虚拟人像,是分离互不干扰可以单独工作的两部分,因此用户可以按照自己的需要只选用其中一个部分来使用,降低了设备的使用成本。

附图说明

图1为本发明所述的全息远程呈现实现方法的整体构架示意图。

图2为本发明所述的虚拟人像骨骼模型所处的世界空间中虚拟摄像机位置示意图。

图3为本发明所述的虚拟人像投影图形拼接方法示意图。

图4为本发明所述的3d金字塔的成像原理图。

具体实施方式

下面结合附图以及具体实施例对本发明作进一步的说明,但本发明的保护范围并不限于此。

如图1所示,一种类全息远程呈现实现方法,其特征在于,包括如下步骤:

步骤一:在某一时刻,使用具有人体骨骼数据跟踪捕捉功能的设备即kinect设备,对现实中的真人进行动作捕捉,获得关键骨骼点的三维骨骼坐标;

步骤二:将获取到的三维骨骼坐标在数据处理程序中进行组织处理,形成某一时刻该真人的关键骨骼点的三维骨骼坐标的坐标集合,封装成数据包从本地发送给指定的远方接收端;

步骤三:从指定的远方接收端中获取封装好的数据包;

步骤四:将获取到的数据包进行拆包,还原成关键骨骼点的三维骨骼坐标的坐标集合;

步骤五:在指定的远方接收端将关键骨骼点的三维骨骼坐标的坐标集合绑定、映射到用户自定义的虚拟人像骨骼模型之上;

步骤六:对虚拟人像骨骼模型进行渲染,并输出渲染后的虚拟人像骨骼模型的正面,背面,以及左右侧面的视图,将这四张视图拼接成虚拟人像投影图形;

步骤七:用led显示屏将渲染后的虚拟人像骨骼模型的正面,背面,以及左右侧面的视图投射到全息镀膜玻璃搭建的3d金字塔的四个面上,从而输出立体的虚拟人像;

步骤八:重复步骤一至步骤七,不断捕捉现实中的真人在连续时刻的动作,从而达到连续地远程传输虚拟人像的效果;

在上述步骤中,步骤一到步骤二为数据采集部分,步骤三到步骤七为图形显示部分。

所述步骤一中的关键骨骼点包括以下20个骨骼点:人骨骼中心点、脊柱中心点、双肩中心点、头中心点、左肩中心点、左肘中心点、左腕中心点、左手中心点、右肩中心点、右肘中心点、右腕中心点、右手中心点、左臀中心点、左膝中心点、左脚踝中心点、左脚中心点、右臀中心点、右膝中心点、右脚踝中心点、右脚中心点。关键骨骼点的三维骨骼坐标的格式为(x,y,z,w),其中x、y、z分别表示关键骨骼点在x、y、z三维空间中的维度坐标,w表示齐次坐标,一般为1;x、y、z的取值以具有人体骨骼数据跟踪捕捉功能的设备所获取的原始数据为准。

所述步骤二中将获取到的三维骨骼坐标在数据处理程序中进行组织处理,包括如下步骤;

步骤2-1:按照某一固定顺序对具有人体骨骼数据跟踪捕捉功能的设备在某一时刻捕捉到的关键骨骼点的三维骨骼坐标进行排序;

步骤2-2:将排序后的关键骨骼点的三维骨骼坐标按顺序放入一个数组中;

步骤2-3:采用deflate压缩算法对数组按比特进行压缩,从而获取数组压缩后的二进制数据,得到一个封装好的数据包。

所述步骤二中,从本地发送给指定的远方接收端的方法,可以根据不同情况,选择不同获取方式,如使用有线局域网、无线局域网、互联网等远程传输路径,但此时统一使用sokect来进行二进制数据的发送;此时数据采集部分执行时所涉及设备的端口作为服务器端,对所有连接到服务端上的远程客户都广播关键骨骼点的三维骨骼坐标数据处理后得到的二进制数据。

所述步骤三中获取封装好的数据包的实现如下,由于数据采集部分执行时所涉及设备的端口是服务器端,图形显示部分执行时所涉及设备的端口作为客户端,因此要先将接收数据包的程序使用套接字将图形显示部分执行时所用本机的端口建立为一个客户端,然后通过ip地址去尝试连接数据采集部分执行时所涉及设备的端口,如果连接上则不断监听数据采集部分执行时所涉及设备的端口的数据发送请求,否则不断尝试连接;当接收到数据采集部分执行时所涉及设备的端口的发送数据请求的时候,接收数据包的程序将数据包完整地接收,此时完数据包的接收。

所述步骤四中将获取到的数据包进行拆包,包括如下步骤:

步骤4-1:采用deflate解压算法对数据包进行解压,获取数据包解压后的二进制数据;

步骤4-2:对数据包解压后的二进制数据进行解析,还原成关键骨骼点的三维骨骼坐标数据组成的数组,数组中关键骨骼点按照人骨骼中心点、脊柱中心点、双肩中心点、头中心点、左肩中心点、左肘中心点、左腕中心点、左手中心点、右肩中心点、右肘中心点、右腕中心点、右手中心点、左臀中心点、左膝中心点、左脚踝中心点、左脚中心点、右臀中心点、右膝中心点、右脚踝中心点、右脚中心点的顺序。

所述步骤五中所述的将关键骨骼点的三维骨骼坐标的坐标集合绑定到用户自定义的虚拟人像骨骼模型之上的实现,包括如下步骤:

步骤5-1:对每一个关键骨骼点的三维骨骼坐标都进行坐标转换,从具有人体骨骼数据跟踪捕捉功能的设备的坐标系转换为用户自定义的虚拟人像骨骼模型所在的世界坐标系;

步骤5-2:根据进行坐标转换后的每一个关键骨骼点的三维骨骼坐标对每一个关键骨骼点进行骨骼旋转操作。

所述步骤5-2中关键骨骼点旋转操作的实现,包括如下步骤;

步骤5-2-1:保存用户自定义的虚拟人像骨骼模型每一个关键骨骼点在初始状态下的、在关键骨骼点自身的局部空间中的坐标系与其在世界坐标系中的位置与方向;

步骤5-2-2:根据具有人体骨骼数据跟踪捕捉功能的设备所提供的现实中的真人的骨骼的混合权重,判断骨骼的混合权重是否小于等于0,如果是,则不进行关键骨骼点的旋转操作;

步骤5-2-3:根据传入的当前关键骨骼点的坐标,与事先保存的关键骨骼点在世界坐标系中的位置与方向进行比较,计算出要变换当前骨骼点坐标位置所需要经过的旋转角度;

步骤5-2-4:对当前关键骨骼点进行旋转,旋转角度为步骤5-2-3中计算出的旋转角度。

所述步骤六中拼接成虚拟人像投影图形的实现包括如下步骤:

步骤6-1:如图2所示,在虚拟人像骨骼模型所处的世界空间中放置4个虚拟摄像机,以虚拟人像骨骼模型的胸腔正面方向为正面方向,虚拟摄像机的位置分别处于虚拟人像骨骼模型的正面、背面、左正侧面、右正侧面;

步骤6-2:4个虚拟摄像机同时对虚拟人像骨骼模型的4个面进行拍摄,根据拍摄的图像分别渲染出4幅图形;

步骤6-3:如图3所示,将这4幅图形以头对头的方式按照上、下、左、右的顺序拼接成一幅完整的图像,其中背面图像在上方,正面图像在下方,左正侧面图像在左侧,右正侧面图像在右侧,所拼接形成的图像即是虚拟人像投影图形。

如图4所示,3d金字塔的搭建包括以下步骤:

步骤a:高透钢化玻璃镀上半透明的塑料薄膜,使高透钢化玻璃成为全息镀膜玻璃,以达

到较好的反射效果和拟真度;

步骤b:将全息镀膜玻璃搭建成正四棱锥形状,全息镀膜玻璃与地面成45°夹角放置,利

用光线反射原理,使全息玻璃反射所成的像与需要显示的像成1:1大小,且所成像的现实

角度呈90°夹角

步骤c:在搭建好的正四棱锥上安装适当大小的led屏,使led显示出的图像的中心与正四

棱锥的顶尖对齐。

上述具体实施方式为本发明的优选的实施方式,但本发明并不限于上述实施方式,在不背离本发明的实质内容的情况下,本领域技术人员能够做出的任何显而易见的改进、替换或变型均属于本发明的保护范围。

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