一种虚实物体实时融合的实物交互方法与系统与流程

文档序号:22844669发布日期:2020-11-06 16:48阅读:216来源:国知局
一种虚实物体实时融合的实物交互方法与系统与流程

本公开属于混合现实技术领域,涉及一种虚实物体实时融合的实物交互方法与系统。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

混合现实(mr)是现实世界与虚拟世界的融合,以产生新的环境和可视化效果。混合现实环境中物理和数字对象可以实时共存。随着混合现实技术日渐成熟,传统的交互方式不适用于虚实融合的交互场景。实物交互作为新兴的三维交互方式,被认为是人们都可使用的自然和易于学习的范例。实物交互是通过物理实体与数字信息进行交互的一种交互方式,其目的是通过在物理实体上添加数字信息,利用人类掌握和操纵物理对象的能力,从而增强协作、学习和设计的能力。然而目前混合现实中的实物交互,其交互实体和数字对象之间缺乏相似性,不能充分体现混合现实高度的沉浸感。因此,混合现实中的实物交互有必要将虚拟对象和交互实体进行融合,支持用户与虚拟对象交互的同时感受到来自真实世界的触觉反馈,从而增强沉浸感。

实物交互的关键思想是:为物理实体赋予数字信息,使其作为数字信息的表示和控制。因此,要实现有形交互,需要对物理实体检测,以获取物理实体的位置和姿态等信息。在实物交互中经常使用的技术包括射频识别(rfid)技术和计算机视觉技术来获取物体的相关信息。

rfid技术利用射频技术自动识别和跟踪附着在物体上的标签。一个rfid系统由阅读器和电子标签组成。标签和阅读器接近时,两者进行通信。通信距离取决于阅读器天线的大小和rfid标签的尺寸以及磁场强度。由于通信距离和成本成正比,rfid通常局限于短距离检测,需要将附有标签的物体直接放置在读取器上。rfid技术是一种简单稳定的方法,能够将特定的实物对象通过rfid标签与特定的数字信息绑定,然而,这种方法需要特殊的阅读器,不能获取物体在空间中的位置信息,限制了实物对象的移动。

基于视觉的实物交互通过对物体进行六自由度(6dof)的姿态估计实现。主要的6dof姿态估计有特征匹配、模板匹配和基于学习的方法等。目前存在许多增强现实工具包提供了摄像头下图片和物体的识别接口,包括vuforia、wikitude和artoolkit等,多使用特征点匹配的方法实现物体姿态估计。基于特征匹配的方法对物体表面纹理有一定要求,并且对于复杂物体,计算复杂性较高;基于模板匹配的方法要求对待检测物体做充分采样,提取足够精确的模板,才能保证匹配的准确性。模板提取过程的复杂性限制了物体识别的种类;基于学习的方法,需要对每个待识别物体建立数据集,数据集中包含图像数据或点云模型等,构建过程复杂。



技术实现要素:

本公开为了解决上述问题,提出了一种虚实物体实时融合的实物交互方法与系统,本公开将物体的姿态估计问题简化为水平桌面上物体的位置跟踪和绕垂直于桌面方向上的旋转角度计算的问题,不需要为物体附加标签、建立模板和数据集等,另外不要求物体表面具有复杂纹理。

根据一些实施例,本公开采用如下技术方案:

一种虚实物体实时融合的实物交互方法,包括以下步骤:

进行服务器端和客户端的虚拟现实设备坐标系之间映射关系的计算,包括旋转矩阵和位移向量,以实现物体位置在坐标表示上的统一;

获取目标对象的模板,对模板特征进行建模,对桌面物体进行位置跟踪,对物体轮廓进行提取,获取物体主方向,在主方向上获取两个固定点,通过奇异值分解计算出物体相对于初始状态的旋转矩阵,由旋转矩阵计算得到旋转角度;

获取来自服务器端的真实物体相对于初始位置的位移以及相对于初始朝向的旋转,进行位置调整,计算得到虚拟物体当前的位置和朝向,根据得到的位置和朝向,在客户端的虚拟现实设备显示所述虚拟物体。

作为可选择的实施方式,进行服务器端和客户端的虚拟现实设备坐标系之间映射关系的计算时利用三点法直解七参数模型的方法进行计算。

作为可选择的实施方式,获取目标对象的模板,对模板特征进行建模的具体过程包括:利用跟踪器在跟踪开始的第一帧获取目标对象的模板,基于客户端虚拟现实设备提供的虚拟物体的初始位置获取物体模板,并去除桌面背景和手部背景。

作为可选择的实施方式,去除桌面背景的具体过程包括:

获取服务器端虚拟现实设备的第0帧深度数据作为桌面背景信息;

在之后的每一帧获取当前帧的深度数据,与第0帧深度数据进行背景减除,得到当前帧的深度前景图像,并将深度前景图像转化为二值图像;

采用形态学开运算去除前景二值图像中区域面积小于设定值的噪声,得到降噪后的前景二值图像;

降噪后的前景二值图像与当前帧的彩色图像进行按位操作,最终得到前景彩色图像。

作为可选择的实施方式,去除手部背景的具体过程包括:

在k-1帧中,利用追踪器在前景图像中进行物体追踪,获取到目标物体在当前帧中的目标兴趣区域,由手势分割算法获取第k帧中的手部轮廓;

对于第k帧中降噪前景二值图像中的每个属于目标兴趣区域的像素点,检查该点是否在手部轮廓范围内,若是,则将该像素点灰度值设置为0;

扫描完成后的图像为仅存在物体前景的二值图像,该图像与前景分割中得到的彩色前景图像做按位与操作,即得到去除手部背景的彩色前景图像,在该图像中运行追踪器,得到第k帧中目标物体目标兴趣区域,作为k+1帧的输入。

作为可选择的实施方式,通过奇异值分解计算出物体相对于初始状态的旋转矩阵,由旋转矩阵计算得到旋转角度的具体过程包括:

分别计算主成分方向上两组点的中心点;

将两组对应点进行中心化;

中心化后的两组对应点排列入矩阵中,每个点为一行,得到第一矩阵,计算第一矩阵的协方差矩阵;

对协方差矩阵进行奇异值分解,得到矩阵的左右奇异矩阵,进而得到旋转矩阵;

通过反正切函数计算出旋转角度。

作为可选择的实施方式,通过与虚拟物体初始位置进行计算得到虚拟物体当前的位置的具体过程包括:

将初始化阶段获取的真实物体的位置其转换为客户端虚拟现实设备的坐标,客户端虚拟现实设备同样保存虚拟物体的初始位置;

跟踪过程中,实时获取真实物体位置并转换为客户端虚拟现实设备中的坐标,计算得到物体相对于初始位置的位移向量;

依据物体相对于初始位置的位移向量和初始位置,计算客户端虚拟现实设备中虚拟物体的位置。

作为可选择的实施方式,计算虚拟物体当前的朝向的具体过程包括:

初始化阶段服务器端虚拟设备获取真实物体初始主方向上的两个点,客户端虚拟设备保存虚拟物体的初始方位;

物体跟踪过程中,客户端虚拟设备实时获取物体主方向上的两个对应点,通过奇异值分解计算物体实时的旋转角度θ;

服务器端虚拟设备的虚拟物体在桌面上的旋转表示为绕自身坐标系y轴的旋转,根据初始方位和旋转角度θ,得到虚拟物体当前的朝向。

一种虚实物体实时融合的实物交互系统,包括:

预处理模块,被配置为进行服务器端和客户端的虚拟现实设备坐标系之间映射关系的计算,包括旋转矩阵和位移向量,以实现物体位置在坐标表示上的统一;

服务器端,被配置为获取目标对象的模板,对模板特征进行建模,对桌面物体进行位置跟踪,对物体轮廓进行提取,获取物体主方向,在主方向上获取两个固定点,通过奇异值分解计算出物体相对于初始状态的旋转矩阵,由旋转矩阵计算得到旋转角度;

客户端,被配置为获取来自服务器端的真实物体相对于初始位置的位移以及相对于初始朝向的旋转,进行位置调整,计算得到虚拟物体当前的位置和朝向,根据得到的位置和朝向,在客户端的虚拟现实设备显示所述虚拟物体。

所述服务器端和客户端均具有混合显示设备。

与现有技术相比,本公开的有益效果为:

本公开提供一种真实物体和虚拟物体实时融合的有形交互方式,虚拟物体实时罩住真实物体,支持用户与虚拟物体交互的同时提供了来自真实物体的触觉反馈。

本公开支持用户利用自己制作的物体作为交互实体,实现了交互工具的即做即用;

本公开不需要建立物体数据集,不要求物体具有复杂纹理即可实现物体的姿态估计。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1为本实施例的系统架构图;

图2为实际应用场景中kinect和hololens的位置示意图;

图3为初始化阶段桌面放置的三个图像mark点位置图;

图4为基于kinect深度数据和彩色数据的前景分割流程图;

图5(a)、图5(b)为手部像素点去除前后的结果对比图;

图6为物体的主方向和中心点示意图;

图7(a)、图7(b)分别为虚拟物体和真实物体的融合效果图。

具体实施方式:

下面结合附图与实施例对本公开作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

本公开提供了一种虚实物体实时融合的实物交互方式,它具有交互自然、取材方便以及实时等优点。本发明基于rgb-d相机和头戴式混合现实设备,在水平桌面上实现一种虚实物体实时融合的实物交互。用户通过头戴式混合现实设备看到的是虚拟物体实时罩住实际物体,随着真实物体移动和改变朝向。在支持用户与虚拟物体交互的同时提供触觉反馈,使交互更加自然。本发明将物体的6dof姿态估计问题简化为水平桌面上物体的位置跟踪和绕垂直于桌面方向上的旋转角度计算的问题,支持用户自己制作交互工具,不需要为物体附加标签、建立模板和数据集等,另外不要求物体表面具有复杂纹理。

为了实现上述目的,本发明采用如下技术方案:

一种虚实物体实时融合的实物交互方法,具有交互自然、实时的优点,基于rgb-d相机和头戴式混合现实设备,在水平桌面上实现一种虚实物体实时融合的实物交互。用户通过头戴式混合现实设备看到的是虚拟物体实时罩住实际物体,随着真实物体移动和改变朝向。在支持用户与虚拟物体交互的同时提供触觉反馈,使交互更加自然。本公开将物体的6dof姿态估计问题简化为水平桌面上物体的位置跟踪和绕垂直于桌面方向上的旋转角度计算的问题,支持用户自己制作交互工具,不需要为物体附加标签、建立模板和数据集等,另外不要求物体表面具有复杂纹理。

主要分为三个阶段,分别是初始化阶段、实际物体的实时位移和旋转计算阶段,以及调整虚拟物体位姿阶段。采用kinect作为rgb-d相机,hololens作为混合现实显示设备。为了支持上述三个阶段,本发明采用客户端和服务器相配合的网络结构,其中服务器连接kinect,进行真实物体跟踪和旋转角度的计算,并将位移和角度数据发送到客户端;客户端运行于hololens中,用于接收真实物体位移和旋转数据,并根据这些数据调整虚拟物体的位置和朝向,从而实现虚实物体的融合。

所述初始化阶段,主要是利用三点法直解七参数模型的方法进行hololens和kinect两设备坐标系之间映射关系的计算,包括旋转矩阵和位移向量,以实现将kinect坐标系中的位置转换到hololens坐标系下,实现物体位置在坐标表示上的统一。另外,本阶段还负责保存真实物体和虚拟物体的初始位置和朝向数据;

所述实际物体的实时位移和旋转计算阶段包括位置跟踪和旋转计算两个方面,其中,位置跟踪利用kcf跟踪器对桌面物体进行跟踪。kcf跟踪器需要在跟踪开始的第一帧获取目标对象的模板,对模板特征进行建模,从而实现之后每帧的目标跟踪。这就需要首先分割出目标兴趣区域(roi)。本文基于hololens提供的虚拟物体的初始位置获取物体模板。由于界面中存在桌面背景信息,会对目标追踪产生干扰,因此首先需要去除桌面背景。在目标移动过程中,由于存在手的干扰,会出现目标模板偏移的问题,因此需要去除手部背景。旋转计算方面,首先对物体轮廓运行pca算法,获取物体主方向,然后在主方向上获取两个固定点,通过奇异值分解(svd)计算出物体相对于初始状态的旋转矩阵,由旋转矩阵计算得到旋转角度;

所述调整虚拟物体位姿阶段包括位置调整和朝向调整两个方面,其中位置调整方面实时获取来自服务器的真实物体相对于初始位置的位移,通过与虚拟物体初始位置进行计算得到虚拟物体当前的位置;朝向调整方面,实时获取来自服务器的真实物体相对于初始朝向的旋转,通过与虚拟物体初始朝向进行计算得到虚拟物体当前的朝向;

进一步的,实际物体的实时位移和旋转计算阶段中,所述物体跟踪过程中,需要去除桌面背景和手部背景,其中去除桌面背景,利用kinect提供的深度和彩色数据,具体流程是:

(1)获取kinect的第0帧深度数据depth0作为桌面背景信息;

(2)在之后的每一帧获取当前帧的深度数据depthk,与depth0做背景减除,得到当前帧的深度前景图像,并将深度前景图像转化为二值图像;

(3)由于kinect自身深度数据存在抖动问题,得到的前景二值图像存在较多的离散噪声点,需要进行降噪处理,本文采用形态学开运算去除前景二值图像中区域面积较小的噪声,得到降噪后的前景二值图像;

(4)降噪后的前景二值图像与当前帧的彩色图像colork做按位与操作,最终得到前景彩色图像。

去除手部背景像素,利用了手势分割得到的手部轮廓,具体流程是:

(1)在k-1帧中,由kcf追踪器在前景图像中进行物体追踪,获取到目标物体在当前帧中的roi=(x,y,w,h),由手势分割算法获取第k帧中的手部轮廓chand;

(2)对于第k帧中降噪前景二值图像中的每个像素点p(x,y′)∈roi,检查p是否在chand范围内,若是,则将该像素点灰度值设置为0;

(3)扫描完成后的图像为仅存在物体前景的二值图像,该图像与前景分割中得到的彩色前景图像做按位与操作,即得到去除手部背景的彩色前景图像,在该图像中运行kcf追踪器,得到第k帧中目标物体roi,作为k+1帧的输入。

所述旋转角度计算过程中,获取物体主方向,利用pca算法获取物体轮廓的均值mean=(xc,yc),即轮廓中心点,以及轮廓的特征矩阵vobj,则vobj表示如下:

指定v0=[v00v01]为物体的主方向,在该方向上取两个点p0,p1,其中p0为轮廓中心点mean=(xc,yc),p1为v0方向上距离中心点距离为d的点,计算公式:

p1=p0+v0*d

假设初始化阶段保存的物体在初始状态下主成分方向上的两个点为p′0和p′1,使用奇异值分解(svd)计算旋转角度的具体流程是:

(1)分别计算两组点的中心点c′和c,计算方法是:

(2)将两组对应点进行中心化,计算公式:

p′ci={p′i-c},i=1,2

pci={pi-c},i=1,2

(3)中心化后的两组对应点排列入矩阵中,每个点为一行,得到两个2x2的矩阵a,b,计算的a,b协方差矩阵h=abt

(4)对h进行奇异值分解,得到矩阵的左右奇异矩阵u和v,则旋转矩阵r=vut

(5)通过反正切函数计算出旋转角度θ,计算公式:

进一步的,调整虚拟物体位姿阶段,所述位置调整过程中,kinect下真实物体的位置由物体轮廓中心点表示,具体流程是:

(1)将初始化阶段获取的真实物体的位置其转换为hololens下的坐标表示ch0,hololens端同样保存虚拟物体的初始位置ph0;

(2)跟踪过程中,实时获取真实物体位置并转换为hololens中的坐标表示chk,则物体相对于初始位置的位移向量δch=chk-ch0;

(3)hololens端,虚拟物体的位置为phk=ph0+δch。

所述朝向调整过程中,仅调整虚拟物体绕垂直于桌面方向上的旋转,具体流程是:

(1)初始化阶段kinect首先获取真实物体初始主方向上的两个点,hololens端保存虚拟物体的初始方位r0=(α,β,γ),其中α,β,γ分别为虚拟物体绕自身坐标系x,y,z轴的旋转角度;

(2)物体跟踪过程中,kinect端实时获取物体主方向上的两个对应点,通过奇异值分解(svd)计算物体实时的旋转角度θ;

(3)hololens中,虚拟物体在桌面上的旋转可以表示为绕自身坐标系y轴的旋转,则虚拟物体当前的朝向为rk=(α,β+θ,γ)。

基于上述过程的工作方法,主要包括以下步骤:

(1)在桌面设置三个图像mark点,作为hololens和kinect两坐标系映射计算中用到的三个公共点,kinect通过鼠标点击mark图像中心获取像素点坐标,然后将像素点坐标转换为kinect中的三维坐标,hololens中利用vuforia对mark进行识别;

(2)开启服务器,获取桌面深度数据,此时桌面上不存在待检测物体;

(3)佩戴hololens并开启hololens客户端,连接到服务器,保证服务器和客户端在同一局域网内;

(4)分别看向三个mark点进行识别,获取三个点在hololens中的位置,并发送到服务器端,服务器端通过三点法计算出两个设备坐标系的映射关系,计算完成后桌面显示虚拟物体;

(5)将真实物体对齐到桌面上的虚拟物体,使虚拟物体罩住真实物体,开始进行物体跟踪;

(6)手持真实物体移动,虚拟物体跟着移动并实时罩住真实物体。

作为典型的实施方式,如图1为本发明的系统架构图,本发明主要分为服务器和客户端,其中服务器连接kinect实时获取深度数据和图像数据,利用这些数据计算出桌面上真实物体的位置和方向,通过tcp协议将真实物体位置和旋转数据发送到hololens客户端,并赋值给hololens中的虚拟物体,从而实现虚实物体的融合。

如图2为实际应用场景中kinect和hololens的位置示意图。kinect位于桌面上方,自顶向下拍摄桌面,通过这种方式我们可以将物体六自由度的姿态估计简化为物体在桌面空间中的位置跟踪和绕垂直于桌面方向的旋转角度的计算。kinect坐标系为右手系,用户在图中位置时,kinect的x轴向右,y轴指向用户,z轴指向桌面;hololens也是右手系,用户佩戴hololens时,x轴向右,y轴向上,z轴向后。假设通过三点法计算得到的旋转矩阵为r,位移向量为t,则转换公式为:

其中,qk为kinect坐标系下一点,qh为qk在hololens中的坐标表示。

如图3为初始化阶段桌面放置的三个图像mark点的位置图。设置mark点的目的是获取kinect坐标系和hololens坐标系中三个公共点坐标,作为三点法直接解算七参数模型方法的输入,从而计算出kinect坐标系转换到hololens坐标系的旋转矩阵和平移向量。该图是在kinect彩色相机中获取,kinect中获取公共点坐标的流程是,点击图像中心点以获取公共点在kinect彩色空间中的像素点坐标,然后利用kinect提供的空间转换方法mapcolorframetocameraspace()得到公共点的三维坐标,由于kinect和mark的位置固定,因此服务器端仅需要获取一次公共点位置数据;hololens中获取公共点坐标的流程是,首先将图片对象保存到vuforia图象识别数据库中,客户端结合vuforiasdk实现图像功能,程序运行时分别识别p1,p2,p3,客户端将位置数据发送到服务器,服务器端利用三点法解算kinect到hololens坐标系的旋转矩阵和位移向量。由于hololens坐标系在程序加载时确定,每次加载程序坐标系会发生变化,因此每次启动客户端都需要获取公共点位置。

如图4为基于kinect深度数据和彩色数据的前景分割流程图。前景分割的目的时去除桌面背景的干扰,保证物体跟踪效果。具体流程如下:

(1)获取kinect的第0帧深度数据depth0作为桌面背景信息;

(2)在之后的每一帧获取当前帧的深度数据depthk,与depth0做背景减除,得到当前帧的深度前景图像,并将深度前景图像转化为二值图像;

(3)由于kinect自身深度数据存在抖动问题,得到的前景二值图像存在较多的离散噪声点,需要进行降噪处理,本文采用形态学开运算去除前景二值图像中区域面积较小的噪声,得到降噪后的前景二值图像;

(4)降噪后的前景二值图像与当前帧的彩色图像colork做按位与操作,最终得到前景彩色图像。

如图5(a)、图5(b)为手部像素点去除前后的结果对比图,其中方框为物体目标区域,去除手部背景后目标区域内仅存在目标物体像素。

如图6为物体的主方向和中心点示意图。对物体轮廓进行主成分分析(pca)之后,得到轮廓的中心点mean=(xc,yc)和特征矩阵将中心点和主方向可视化在kinect彩色图像中。其中圆圈位置为物体中心点,长轴为特征矩阵第一行的方向,短轴为特征矩阵第二行的方向,指定长轴所示的方向为物体的主方向。

在跟踪开始前,需要首先将真实物体对齐到hololens中的虚拟物体,如图7(a)所示;真实物体移动过程中,hololens通过kinect计算得到的位移和旋转角度改变虚拟物体的位置和朝向,从而实现真实物体和虚拟物体的实时融合,如图7(b)所示。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

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