一种虚拟交互方法与流程

文档序号:13427119阅读:132来源:国知局

本发明涉及人机交互技术领域,特别涉及一种虚拟交互方法。



背景技术:

当前,在人机交互中,用户采用的信息输入方式通常可以包括以下几种:

1.传统实体交互,即通过真实的物理设备完成输入,例如被广泛使用的鼠标、键盘、游戏手柄、遥控器等。该方法的缺点是:实体交互尺寸较大无法用于微型设备;功能限制性很大,只能解决一种设备的输入需求(比如鼠标不能用在手机上);设备尺寸固定无法适应不同的人群(手较大的人觉得键盘间距小,而手小的人则反之)。

2.可穿戴实体交互,即通过传感器(加速传感器、陀螺仪、磁传感器等)完成输入。例如可穿戴手环、可穿戴戒指、动作捕捉手套等等。该方法的缺点是:必须穿戴才能交互;只能识别穿戴部位的简单运动。

3.半虚拟交互,即通过触摸屏,把实体虚拟成界面元素。例如手机、平板,触摸屏等。该方法的缺点是:交互范围受限于设备的尺寸;交互时手遮挡界面。

4.三维虚拟交互,即在三维空间中与虚拟物体交互,例如leapmotion,kinect等,或者基于这两种设备的交互扩展。该方法的缺点是:手不能在支撑面上交互,否则支撑面被误判为手从而出错。

5.表面虚拟交互,通过把桌面虚拟化为触摸板,从而完成类似触摸板的交互。该方法的缺陷是:支撑表面必须平整(不能凹凸不平);识别精度较低,容易误触;无法识别手指按压表面的力度。

由上可见,目前需要一种识别精度较高,适用于微型设备,且具有通用性的人机交互方法。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种虚拟交互方法。所述技术方案如下:

一种虚拟交互方法,所述方法应用于主动体和被动体之间,所述方法包括:

分别对所述主动体和所述被动体进行建模,得到所述主动体的第一模型和所述被动体的第二模型;其中,所述第一模型中包括相连接的线段主体模型和球帽模型;所述第二模型中包括曲面模型;

确定所述第一模型和所述第二模型之间的交互状态,所述交互状态由所述第一模型和所述第二模型之间的距离确定;其中,所述交互状态包括临近状态、接触状态以及挤压状态;

根据所述交互状态,计算所述第一模型的变化或者计算所述第二模型的变化。

进一步地,在分别对所述主动体和所述被动体进行建模之前,所述方法还包括:获取所述主动体的点云数据以及所述被动体的点云数据;

相应地,对所述主动体进行建模包括:

按照下述公式确定所述第一模型中的线段主体模型:

其中,(x,y,z)表示空间点的坐标,(x0,y0,z0)表示空间原点的坐标,m、p、l为直线拟合参数,a1、b1、a2、b2为待求解的系数;

根据下述公式确定所述待求解的系数的值:

其中,(xi,yi,zi)表示所述主动体的点云数据中第i个点的坐标,i的取值为1到n,n为所述主动体的点云数据中包含的点的总个数。

进一步地,所述方法还包括:

根据下述公式确定所述第一模型中的球帽模型:

x2+y2+z2-ax-by-cz+d=0

其中,a、b、c、d为待求解的参数;

根据下述公式确定所述待求解的参数的值;

其中,n表示样本点的个数。

进一步地,获取所述主动体的点云数据以及所述被动体的点云数据包括:

获取传感器视野内物体的点云数据;

根据所述点云数据对应的深度信息,将所述点云数据划分为多个数据集合;

将最大的数据集合中的点云数据作为所述被动体的点云数据;

确定所述多个数据集合中除所述被动体的点云数据之外的候选数据集合;

将所述候选数据集合中平均深度最小的集合中的点云数据作为所述主动体的点云数据。

进一步地,对所述被动体进行建模包括:

按照下述递归公式确定所述第二模型中的曲面模型:

其中,表示第n次递归计算之后的曲面模型,λ表示指定常数,d(x)表示点到曲面的欧式距离,α、β为指定正常数,δt表示递归步长。

进一步地,按照下述公式确定所述第一模型和所述第二模型之间的距离:

其中,p为所述曲面模型上的一点,q为所述球帽模型的球心,表示点p到点q的距离,分别是点p在所述曲面模型上两个不同方向的偏导数,a、b、c、k表示待求解的参数。

进一步地,根据所述交互状态,计算所述第一模型的变化或者计算所述第二模型的变化包括:

当所述交互状态为临近状态或者接触状态时,计算所述第一模型的变化;

当所述交互状态为挤压状态时,计算所述第二模型的变化。

进一步地,计算所述第一模型的变化包括:

获取所述第一模型变化后产生的新的点云数据,并在所述新的点云数据中确定除去所述第一模型变化之前的点云数据的剩余数据;

按照下述公式计算所述第一模型的变化距离:

其中,表示所述第一模型的变化距离,p1(xi,yi,zi)表示所述剩余数据中的第i个点,p0(x0,y0,z0)表示球心坐标,n表示所述剩余数据中点的数量。

进一步地,计算所述第一模型的变化包括:

按照下述公式计算所述第二模型对应的压感等级:

其中,l(d)表示所述压感等级,lmax表示最大压感等级,lmin表示最小压感等级,d表示所述球帽模型的球心与所述曲面模型的距离,r0表示所述球帽模型的半径。

进一步地,所述方法还包括:

根据所述交互状态,在当前界面中展示与所述交互状态对应的视觉效果;其中,当所述交互状态为临近状态时,在所述当前界面中显示悬停效果;当所述交互状态为接触状态时,在所述当前界面中显示触碰或者点击效果;当所述交互状态为挤压状态时,在所述当前界面中显示拖拽效果。

由上可见,本发明至少具备以下技术效果:

1)可以在任意支撑表面(包括曲面)上交互,也可以在虚拟物体上交互;

2)交互范围不依赖于设备尺寸(如智能手表很小,但可以在手臂、桌面上操作手表);

3)精确识别主动体(虚拟或现实的)与被动体(虚拟或现实的)的临近、触碰和挤压的状态;

4)主动体可以虚拟成各种设备(鼠标,画笔,画刷等):获知距离和压感就能模拟各种设备的效果;

5)被动体可以虚拟成各种设备(键盘,触摸板,数位板等)。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施方式中虚拟交互方法的流程图;

图2是本发明实施方式中主动体的运动区间示意图;

图3是本发明实施方式中主动体的结构示意图;

图4是本发明实施方式中新的点云数据和消失的点云数据示意图;

图5是本发明实施方式中主动体模型和被动体模型的交互示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

请参阅图1,本申请提供一种虚拟交互方法,所述方法应用于主动体和被动体之间,所述方法包括:

s1:分别对所述主动体和所述被动体进行建模,得到所述主动体的第一模型和所述被动体的第二模型;其中,所述第一模型中包括相连接的线段主体模型和球帽模型;所述第二模型中包括曲面模型;

s2:确定所述第一模型和所述第二模型之间的交互状态,所述交互状态由所述第一模型和所述第二模型之间的距离确定;其中,所述交互状态包括临近状态、接触状态以及挤压状态;

s3:根据所述交互状态,计算所述第一模型的变化或者计算所述第二模型的变化。

在本实施方式中,在分别对所述主动体和所述被动体进行建模之前,所述方法还包括:获取所述主动体的点云数据以及所述被动体的点云数据;

相应地,对所述主动体进行建模包括:

按照下述公式确定所述第一模型中的线段主体模型:

其中,(x,y,z)表示空间点的坐标,(x0,y0,z0)表示空间原点的坐标,m、p、l为直线拟合参数,a1、b1、a2、b2为待求解的系数;

根据下述公式确定所述待求解的系数的值:

其中,(xi,yi,zi)表示所述主动体的点云数据中第i个点的坐标,i的取值为1到n,n为所述主动体的点云数据中包含的点的总个数。

在本实施方式中,所述方法还包括:

根据下述公式确定所述第一模型中的球帽模型:

x2+y2+z2-ax-by-cz+d=0

其中,a、b、c、d为待求解的参数;

根据下述公式确定所述待求解的参数的值;

其中,n表示样本点的个数。

在本实施方式中,获取所述主动体的点云数据以及所述被动体的点云数据包括:

获取传感器视野内物体的点云数据;

根据所述点云数据对应的深度信息,将所述点云数据划分为多个数据集合;

将最大的数据集合中的点云数据作为所述被动体的点云数据;

确定所述多个数据集合中除所述被动体的点云数据之外的候选数据集合;

将所述候选数据集合中平均深度最小的集合中的点云数据作为所述主动体的点云数据。

在本实施方式中,对所述被动体进行建模包括:

按照下述递归公式确定所述第二模型中的曲面模型:

其中,表示第n次递归计算之后的曲面模型,λ表示指定常数,d(x)表示点到曲面的欧式距离,α、β为指定正常数,δt表示递归步长。

在本实施方式中,按照下述公式确定所述第一模型和所述第二模型之间的距离:

其中,p为所述曲面模型上的一点,q为所述球帽模型的球心,表示点p到点q的距离,分别是点p在所述曲面模型上两个不同方向的偏导数,a、b、c、k表示待求解的参数。

在本实施方式中,根据所述交互状态,计算所述第一模型的变化或者计算所述第二模型的变化包括:

当所述交互状态为临近状态或者接触状态时,计算所述第一模型的变化;

当所述交互状态为挤压状态时,计算所述第二模型的变化。

在本实施方式中,计算所述第一模型的变化包括:

获取所述第一模型变化后产生的新的点云数据,并在所述新的点云数据中确定除去所述第一模型变化之前的点云数据的剩余数据;

按照下述公式计算所述第一模型的变化距离:

其中,表示所述第一模型的变化距离,p1(xi,yi,zi)表示所述剩余数据中的第i个点,p0(x0,y0,z0)表示球心坐标,n表示所述剩余数据中点的数量。

在本实施方式中,计算所述第一模型的变化包括:

按照下述公式计算所述第二模型对应的压感等级:

其中,l(d)表示所述压感等级,lmax表示最大压感等级,lmin表示最小压感等级,d表示所述球帽模型的球心与所述曲面模型的距离,r0表示所述球帽模型的半径。

在本实施方式中,所述方法还包括:

根据所述交互状态,在当前界面中展示与所述交互状态对应的视觉效果;其中,当所述交互状态为临近状态时,在所述当前界面中显示悬停效果;当所述交互状态为接触状态时,在所述当前界面中显示触碰或者点击效果;当所述交互状态为挤压状态时,在所述当前界面中显示拖拽效果。

具体地,在实际应用场景中,所述主动体可以指通过运动、姿态变化完成操作的物体(如手指、笔)。所述被动体可以指与主动体发生交互的物体(如桌子表面、虚拟键盘,虚拟画布),通常是静止的。所述交互状态可以指主动体与被动体的位置关系,如临近、接触、挤压。

本发明通过光学传感器对现实物体建模(也可以是其它传感器,如雷达,结构光,激光散斑,激光测距等),使现实物体具有一定表面感知能力,对与其临近、接触、挤压的其它物体有视觉反馈效果(通过显示器展现),以达到增强现实的目的。

在本申请中,先通过点云算法建立主动体和被动体的模型,由于主动体是运动的主体,还需要建立便于描述运动和姿态的刚体模型,以及便于描述挤压程度的模型。根据主动体和被动体的垂直距离,选用不同的模型描述之间的关系,当主动体从远处接近,直到挤压被动体,依次经过三个区域,具体过程请一并结合表1和图2。

表1主动体对应的三个区域

在本申请中,涉及主动体建模的流程,具体地,为了简化模型和计算,本发明的主动体模型由空间线段主体和球帽组成。如图3所示。点云数据点集为pi(xi,yi,zi)是其中的一个点,主动体的主体所在空间直线标准方程为:

经过等价表换,可得两空间平面方程,直线即为两平面的交线:

根据残差平方和最小

s1=∑(xi-a1zi-b1)2,s2=∑(yi-a2zi-b2)2

可得参数方程:

从而求得a1,a2,b1,b2四个参数,以及主体的直线方程,再通过点云寻找点云中距离最远的两个点找到定义域。

设球帽空间方程为:(x-a)2+(y-b)2+(z-c)2=r2

令a=2a,b=2b,c=2c,d=a2+b2+c2-r2,化简得:

x2+y2+z2-ax-by-cz+d=0

使得距离平方残差最小,即s=∑(xi2+yi2+zi2-axi-byi-czi+d)2最小

由于四个参数偏导数为0,化简后,可得

从而求得球帽空间方程的各个参数,由此可得到主动体与被动体交互的横截面等尺寸信息。

本发明还涉及被动体建模的过程,具体地,对于被动体建模,本发明采用基于变分水平集的曲面重构方法,由以下能量泛函度量重建效果:

其中为三维空间中的可变形封闭曲面,项是衡量散乱点云逼近曲面的程度;是几何约束项,代表曲面的表面积;是避免重新初始化的惩罚项;d(x)是点到曲面的欧式距离,α,β为可选正常数。

上式对应的梯度下降流为:

其中为构造的近似狄拉克函数。

为了上式能做数值运算,选取网格为1的有限差分法和中心差分法相结合的离散化方案,采用较小的正则化变量δ做近似处理可得离散化递归形式:

由此,即可得到平滑的被动体表面。

在本申请中,还涉及姿态、位置和距离的确定过程。具体地,求主动体到被动体表面的距离,主动体的位置由球帽球心决定,姿态由主体姿态决定,因此距离实质为球心q到被动体表面的最小距离。假设q点的垂足为q0,在曲面上任取一点p(u,v),则

其中d是要求的最小距离,是表面的法向量,分别是点p在表面上两个方向的偏导数。容易得到:

解方程可得:

其中

对于给定误差ε,迭代结束条件同时满足以下方程:

当垂足在曲面极值点附近时候,会出现振荡的情况,此时a,b的符号会相反,监控这种状态,一旦触发,则调整迭代步长,以便更快结束迭代过程。

在本申请中,还涉及刚体运动模型,其中,当主动体运动时,有两种方式估计其位置和姿态:

方案一:每一帧都对主动体建模,球心的位置就是主动体的位置,两帧之间球心的距离就是主动体变化的距离。主动体的主体线段方程就能描述其整体平移、旋转、缩放的姿态。

方案二:一旦建立完主动体模型,除非模型失效(如被动体移动,主动体移出识别范围,严重卡顿等),否则只对其跟踪和微调,不再重新构建模型。

方案一的优势是:不会出现跟踪出错的情况。缺陷是耗时较多,因此在实际操作时往往通过跟踪完成姿态和位置的更新,而当环境变化较大导致失效时,则采用方案一重新建模。

对于方案二的跟踪,其本质是两帧之间的微小移动估计,假设为新帧的点云集合,为上一帧球帽的空间方程,则点集的点可以分为两类:

即a2指的是被上一帧球帽包含的点,a1为球外的点。为了求球帽整体移动的距离,假设这些点通过外部做功而产生势能变化,则根据能量守恒,有:

其中ρ是质点的密度,化简可得:

通常,这种方法允许只计算变化的点(如图4中的实心点),而不需计算不运动的点,或已经消失的点(如图4中的空心点),可进一步减少运算时间。

本申请还涉及非刚体挤压模型,具体地,请参阅图5,当被动体和主动体产生挤压时,有可能主动体发生形变,也有可能被动体发生形变,但不管哪种情况,挤压部分都是被遮挡的,只能通过主动体尺寸来估计挤压程度。为了便于计算,这两种情况都认为是被动体发生形变,而主动体不变。当相互挤压后,根据主动体的尺寸,可估算球帽球心距被动体表面的距离。

当表面被挤压时,需要算出挤压的程度,也就是压感等级,压感等级和球心到表面的距离有关,为了简化运算,假设被动体的原表面与球帽的相交面总是平面,通过归一化处理之后,得压感等级的公式:

由上可见,本发明至少具备以下技术效果:

1)可以在任意支撑表面(包括曲面)上交互,也可以在虚拟物体上交互;

2)交互范围不依赖于设备尺寸(如智能手表很小,但可以在手臂、桌面上操作手表);

3)精确识别主动体(虚拟或现实的)与被动体(虚拟或现实的)的临近、触碰和挤压的状态;

4)主动体可以虚拟成各种设备(鼠标,画笔,画刷等):获知距离和压感就能模拟各种设备的效果;

5)被动体可以虚拟成各种设备(键盘,触摸板,数位板等)。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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