发明内容
本发明实施例的目的在于提供一种基于标记的增强现实交互方法、装置及电子设备,以实现在多个终端之间进行实时地增强现实交互。具体技术方案如下:
为达到上述目的,第一方面,本发明实施提供了一种基于标记的增强现实交互方法,应用于增强现实交互***中的第一终端,所述增强现实交互***还包括至少一个第二终端,该方法包括:
获取包含标记的第一图像;
根据预设的角点检测算法,确定所述第一图像中所述标记的至少四个角点,并确定各个所述角点的角点坐标;
基于各个所述角点的角点坐标,确定所述第一终端与所述标记之间的相对位置姿态;
获取各个所述第二终端与所述标记之间的相对位置姿态;
根据所述第一终端与所述标记之间的相对位置姿态,以及各个所述第二终端与所述标记之间的相对位置姿态,确定所述第一终端与各个所述第二终端之间的相对位置姿态;
基于所述第一终端与各个所述第二终端之间的相对位置姿态,在所述第一终端获取的第二图像中呈现各个所述第二终端在所述第二图像上的投影坐标。
可选地,所述确定各个所述角点的角点坐标,包括:
确定各个所述角点在当前时刻所述第一终端对应的坐标系中的第一坐标,以及各个所述角点在预先建立的标记坐标系中的第二坐标;其中,
所述标记坐标系为:x轴对应于所述标记的第一方向,y轴对应于所述标记的第二方向,所述第一方向与所述第二方向垂直,z轴垂直于x轴和y轴所确定的平面;所述标记坐标系的原点为所述标记的中心点;
所述第一终端对应的坐标系为:x轴对应于所述第一终端的第三方向,y轴对应于所述第一终端的第四方向,所述第三方向与所述第四方向垂直;所述第一终端对应的坐标系的原点为所述第一终端的中心点。
可选地,所述基于各个所述角点的角点坐标,确定所述第一终端与所述标记之间的相对位置姿态,包括:
基于各个所述角点的角点坐标,通过n点/线透视定位PnP方法,确定所述预先建立的标记坐标系到所述当前时刻所述第一终端对应的坐标系的旋转矩阵和平移向量;
所述获取各个所述第二终端与所述标记之间的相对位置姿态,包括:
获取所述预先建立的标记坐标系到当前时刻各个所述第二终端对应的坐标系的旋转矩阵和平移向量;其中,
各个所述第二终端对应的坐标系为:x轴对应于各个所述第二终端的第五方向,y轴对应于各个所述第二终端的第六方向,所述第五方向与所述第六方向垂直;各个所述第二终端对应的坐标系的原点为各个所述第二终端的中心点;
所述根据所述第一终端与所述标记之间的相对位置姿态,以及各个所述第二终端与所述标记之间的相对位置姿态,确定所述第一终端与各个所述第二终端之间的相对位置姿态,包括:
根据所述预先建立的标记坐标系到所述当前时刻所述第一终端对应的坐标系的旋转矩阵和平移向量,以及所述预先建立的标记坐标系到所述当前时刻各个所述第二终端对应的坐标系的旋转矩阵和平移向量,确定所述当前时刻各个所述第二终端对应的坐标系到所述当前时刻所述第一终端对应的坐标系的旋转矩阵和平移向量。
可选地,所述获取各个所述第二终端与所述标记之间的相对位置姿态,包括:
接收各个所述第二终端发送的各个所述第二终端与所述标记之间的相对位置姿态。
可选地,在所述基于所述第一终端与各个所述第二终端之间的相对位置姿态,在所述第一终端获取的第二图像中呈现各个所述第二终端在所述第二图像上的投影坐标的步骤之前,所述方法还包括:
获取各个所述第二终端上的任一点在当前时刻本终端对应的坐标系中的目标坐标;
所述基于所述第一终端与各个所述第二终端之间的相对位置姿态,在所述第一终端获取的第二图像中呈现各个所述第二终端在所述第二图像上的投影坐标,包括:
基于所述第一终端与各个所述第二终端之间的相对位置姿态,确定所述目标坐标在所述第二图像上的目标投影坐标,并在所述第一终端获取的第二图像中呈现所述目标投影坐标。
第二方面,本发明实施例提供了一种基于标记的增强现实交互装置,应用于增强现实交互***中的第一终端,所述增强现实交互***还包括至少一个第二终端,该装置包括:
第一获取单元,用于获取包含标记的第一图像;
第一确定单元,用于根据预设的角点检测算法,确定所述第一图像中所述标记的至少四个角点,并确定各个所述角点的角点坐标;
第二确定单元,用于基于各个所述角点的角点坐标,确定所述第一终端与所述标记之间的相对位置姿态;
第二获取单元,用于获取各个所述第二终端与所述标记之间的相对位置姿态;
第三确定单元,用于根据所述第一终端与所述标记之间的相对位置姿态,以及各个所述第二终端与所述标记之间的相对位置姿态,确定所述第一终端与各个所述第二终端之间的相对位置姿态;
呈现单元,用于基于所述第一终端与各个所述第二终端之间的相对位置姿态,在所述第一终端获取的第二图像中呈现各个所述第二终端在所述第二图像上的投影坐标。
可选地,所述第一确定单元,具体用于确定各个所述角点在当前时刻所述第一终端对应的坐标系中的第一坐标,以及各个所述角点在预先建立的标记坐标系中的第二坐标;其中,
所述标记坐标系为:x轴对应于所述标记的第一方向,y轴对应于所述标记的第二方向,所述第一方向与所述第二方向垂直,z轴垂直于x轴和y轴所确定的平面;所述标记坐标系的原点为所述标记的中心点;
所述第一终端对应的坐标系为:x轴对应于所述第一终端的第三方向,y轴对应于所述第一终端的第四方向,所述第三方向与所述第四方向垂直;所述第一终端对应的坐标系的原点为所述第一终端的中心点。
可选地,所述第二确定单元,具体用于基于各个所述角点的角点坐标,通过PnP方法,确定所述预先建立的标记坐标系到所述当前时刻所述第一终端对应的坐标系的旋转矩阵和平移向量;
所述第二获取单元,具体用于获取所述预先建立的标记坐标系到当前时刻各个所述第二终端对应的坐标系的旋转矩阵和平移向量;其中,
各个所述第二终端对应的坐标系为:x轴对应于各个所述第二终端的第五方向,y轴对应于各个所述第二终端的第六方向,所述第五方向与所述第六方向垂直;各个所述第二终端对应的坐标系的原点为各个所述第二终端的中心点;
所述第三确定单元,具体用于根据所述预先建立的标记坐标系到所述当前时刻所述第一终端对应的坐标系的旋转矩阵和平移向量,以及所述预先建立的标记坐标系到所述当前时刻各个所述第二终端对应的坐标系的旋转矩阵和平移向量,确定所述当前时刻各个所述第二终端对应的坐标系到所述当前时刻所述第一终端对应的坐标系的旋转矩阵和平移向量。
可选地,所述第二获取单元,具体用于接收各个所述第二终端发送的各个所述第二终端与所述标记之间的相对位置姿态。
可选地,上述装置还包括第三获取单元;
所述第三获取单元,用于在所述呈现单元基于所述第一终端与各个所述第二终端之间的相对位置姿态,在所述第一终端获取的第二图像中呈现各个所述第二终端在所述第二图像上的投影坐标之前,获取各个所述第二终端上的任一点在当前时刻本终端对应的坐标系中的目标坐标;
所述呈现单元,具体用于基于所述第一终端与各个所述第二终端之间的相对位置姿态,确定所述目标坐标在所述第二图像上的目标投影坐标,并在所述第一终端获取的第二图像中呈现所述目标投影坐标。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现如上第一方面所述的基于标记的增强现实交互的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上第一方面所述的基于标记的增强现实交互的方法步骤。
第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如上第一方面所述的基于标记的增强现实交互的方法步骤。
本发明实施例提供的基于标记的增强现实交互方法、装置及电子设备,增强现实交互***中的第一终端首先获取包含所述标记的第一图像;并根据预设的角点检测算法,确定所述第一图像中所述标记的至少四个角点,并确定各个所述各角点的角点坐标;然后基于各个所述各角点的角点坐标,确定所述第一终端与所述标记之间的相对位置姿态;并获取增强现实交互***中的各个第二终端与所述标记之间的相对位置姿态;最后根据所述第一终端与所述标记之间的相对位置姿态,以及各个所述各第二终端与所述标记之间的相对位置姿态,确定所述第一终端与各个所述各第二终端之间的相对位置姿态;并基于所述第一终端与各个所述各第二终端之间的相对位置姿态,在所述第一终端获取的第二图像中呈现各个所述第二终端在所述第二图像上的投影坐标。本发明实施例可以使每个终端在自己的场景下显示出其他终端的运动状态,进而实现多个终端实时地进行增强现实交互。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例提供的基于标记的增强现实交互方法,可以应用于增强现实交互***中的第一终端,该***还包括至少一个第二终端。第一终端和各第二终端一般均具有图像显示的功能,可以显示具有增强现实效果的图像等。其中,上述第一终端可以为:台式计算机、便携式计算机、智能移动终端等,第二终端可以为:台式计算机、便携式计算机、智能移动终端等。
图1为本发明实施例提供的一种基于标记的增强现实交互方法的流程图,该方法包括以下步骤:
S101,获取包含标记的第一图像。
上述标记可以是至少具有四个角点的一平面图案,如一个具有四个角点的正方形等。上述标记还可以是至少具有四个角点的一立体图形,如一个具有四个角点的三棱锥等。需要说明的是,无论上述标记是平面图案还是立体图形,该标记均不能存在旋转歧义性,也就是说,标记上至少有四个角点与标记图案本身有唯一的对应方式。在实际应用中,标记可以放置于任一平面上。
本实施例中,第一终端可以包括摄像头,并通过该摄像头实时地采集包含标记的第一图像。第一终端也可以外接具有图像采集功能的设备,并通过该设备实时地采集包含标记的第一图像。
在实际应用中,第一终端可以只获取一幅包含标记的第一图像,并进一步确定该幅第一图像中标记的角点。为了使增强现实交互的结果更为准确,第一终端也可以获取多幅包含标记的图像,并将其中最为清晰、最利于确定角点的图像作为第一图像,以进一步确定该幅第一图像中标记的角点。
S102,根据预设的角点检测算法,确定第一图像中标记的至少四个角点,并确定各个角点的角点坐标。
本实施例中,确定第一图像中标记的至少四个角点的目的在于:根据确定的至少四个角点进一步确定第一终端与标记之间的相对位置姿态。具体的,该相对位置姿态可以包括:标记坐标系到第一终端对应的坐标系的旋转矩阵和平移向量,以通过该平移向量和旋转矩阵分别表示第一终端与标记之间的位置变化关系和姿态变化关系。标记坐标系和第一终端对应的坐标系的相关描述详见以下步骤S103。以下其他步骤中的相对位置姿态的描述均可参考上述相位位置姿态的描述。
预设的角点检测算法可以为现有的任一角点检测算法,如哈里斯Harris角点检测算法等。通过预设的角点检测算法可以确定第一图像中的标记的至少四个角点在第一图像中对应的像素点和像素坐标。
例如,设定第一图像对应的像素坐标系为:原点位于第一图像平面的左上角,u轴向右,v轴向下。通过预设的角点检测算法确定第一图像中标记的四个角点A1、A2、A3、A4在第一图像中对应的像素坐标分别为A1(100,100),A2(150,100),A3(100,150),A4(150,150)。
在图1所示基于标记的增强现实交互方法的基础上,如图2所示,本发明实施例一种可选的实施例中,步骤S102可以为:
S1021,根据预设的角点检测算法,确定第一图像中标记的至少四个角点,并确定各个角点在当前时刻第一终端对应的坐标系中的第一坐标,以及各个角点在预先建立的标记坐标系中的第二坐标。
上述标记坐标系可以为:x轴对应于标记的第一方向,y轴对应于标记的第二方向,第一方向与第二方向垂直,z轴垂直于x轴和y轴所确定的平面;标记坐标系的原点为标记的中心点。进一步地,标记坐标系可以为一右手坐标系。
若标记为一平面图案,则标记的中心点为该平面图案的平面几何中心;标记的第一方向可以为平面图案所在平面内的任一方向;标记的第二方向为平面图案所在平面内与该任一方向垂直的方向。
若标记为一立体图形,则标记的中心点为该立体图形的立体几何中心;标记的第一方向可以为包含立体图形的立体几何中心的任一平面内的任一方向;标记的第二方向为该任一平面内与该任一方向垂直的方向。
上述第一终端对应的坐标系可以为:x轴对应于第一终端的第三方向,y轴对应于第一终端的第四方向,第三方向与第四方向垂直;第一终端对应的坐标系的原点为第一终端的中心点。
在实际应用中,第一终端是可以移动的,因而在不同时刻,第一终端对应的坐标系可能是不同的。具体的,在当前时刻,若第一终端通过摄像头采集第一图像,则第一终端的中心点可以为摄像头光轴与第一图像平面的交点;若第一终端通过外接的具有图像采集功能的设备采集第一图像,则第一终端的中心点可以为该外接设备的摄像头的光轴与第一图像平面的交点。
本实施例中,第一终端的第三方向和第四方向可以分别与上述第一图像对应的像素坐标系的u轴、v轴平行。
需要说明的是,上述的各个角点在标记坐标系中的第二坐标具体为:各个角点在真实场景中标记的对应角点在标记坐标系中的坐标。
举例来说,在当前时刻,确定的第一图像中标记的角点A1在第一终端对应的坐标系中的第一坐标为(5,5);同时确定角点A1在标记坐标系中的第二坐标为(-10,10,0),即角点A1在真实场景中标记的对应角点a1在标记坐标系中的坐标为(-10,10,0)。当然,第一图像中标记的角点在第一终端对应的坐标系以及标记坐标系中每个轴的坐标的精确度可根据需要设定,如精确到毫米等。
在本实施例的一种实现方式中,可以通过现有的测量方法测量得到各个角点在真实场景中标记的对应角点在标记坐标系中的坐标。
在本实施例的另一种实现方式中,可以根据各个角点在第一图像中对应的像素坐标,通过以下公式确定各个角点在当前时刻第一终端对应的坐标系中的第一坐标:
其中,(ui,vi)为第i个角点在第一图像中对应的像素坐标,dx和dy分别为第一图像中每个像素在当前时刻第一终端对应的坐标系的x轴和y轴方向上的物理尺寸,(xi,yi)为第i个角点在当前时刻第一终端对应的坐标系中的第一坐标,(u0,v0)为当前时刻第一终端对应的坐标系的原点在第一图像中对应的像素坐标,i=1,…,N,N为角点个数,N≥4,s′表示第一终端对应的坐标系的坐标轴不正交引起的倾斜因子。
S103,基于各个角点的角点坐标,确定第一终端与标记之间的相对位置姿态。
通过步骤S102确定了各个角点的角点坐标,意味着确定了标记的至少四个角点在标记坐标系和当前时刻第一终端对应的坐标系中的坐标对应关系。在步骤S103中,可以进一步根据该至少四个角点的坐标对应关系确定第一终端与标记之间的相对位置姿态。具体地,可以进一步确定当前时刻第一终端对应的坐标系与标记坐标系之间的旋转矩阵和平移向量。
在图1所示基于标记的增强现实交互方法的基础上,如图3所示,本发明实施例一种可选的实施例中,步骤S103可以为:
S1031,基于各个角点的角点坐标,通过n点/线透视定位(Perspective-n-Point,PnP)方法,确定预先建立的标记坐标系到当前时刻第一终端对应的坐标系的旋转矩阵和平移向量。
PnP方法是机器视觉领域的经典方法,可以根据物体上的n个特征点来确定摄像机与物体间的相对位置和姿态,具体的,可以根据物体上的n个特征点来确定摄像机与物体间的旋转矩阵和平移向量。当n≥4时,所确定的结果有1个或多个解,但需要说明的是,针对所确定的结果有多个解的情况,其中,只有一个解是正解。而出现多个解的原因为:代价函数存在多个局部极小值。如果n个特征点的2D-3D的坐标初始值设定不当,会导致所确定的结果收敛到错误的极小值上。
以下为基于个各角点的角点坐标,通过PnP方法确定的标记坐标系到当前时刻第一终端对应的坐标系的坐标转换关系:
其中,Zc为第一终端对应的比例因子,(x,y)为点P在当前时刻第一终端对应的坐标系中的坐标,(Xm,Ym,Zm)为点P在标记坐标系中的坐标,R为标记坐标系到当前时刻第一终端对应的坐标系的旋转矩阵,R是3×3正交单位矩阵且其行列式的值为1,t为标记坐标系到当前时刻第一终端对应的坐标系的平移向量,t为3维向量。
S104,获取各个第二终端与标记之间的相对位置姿态。
为了使增强现实交互***中的各个第二终端与第一终端进行增强现实交互,第一终端可以获取各个第二终端与标记之间的相对位置姿态,以进一步确定第一终端与各个第二终端之间的相对位置姿态。
在图1所示基于标记的增强现实交互方法的基础上,如图3所示,本发明实施例一种可选的实施例中,步骤S104可以为:
S1041,获取预先建立的标记坐标系到当前时刻各个第二终端对应的坐标系的旋转矩阵和平移向量。
上述各个第二终端对应的坐标系为:x轴对应于各个第二终端的第五方向,y轴对应于各个第二终端的第六方向,第五方向与第六方向垂直;各个第二终端对应的坐标系的原点为各个第二终端的中心点。
一种具体实现方式中,各个第二终端可以参考步骤S103预先确定出标记坐标系到当前时刻本第二终端对应的坐标系的旋转矩阵和平移向量。
在实际应用中,各个第二终端是可以移动的,因而在不同时刻,各个第二终端对应的坐标系可能是不同的。具体的,在当前时刻,若各个第二终端通过摄像头采集包含标记的第二图像,则各个第二终端的中心点可以为摄像头光轴与各自采集的第二图像平面的交点;若各个第二终端通过外接的具有图像采集功能的设备采集包含标记的第二图像,则各个第二终端的中心点可以为该外接设备的摄像头的光轴与各自采集的第二图像平面的交点。
本实施例中,各个第二终端的第五方向和第六方向可以分别与各自采集的第二图像对应的像素坐标系的u轴、v轴平行。各第二图像对应的像素坐标系的设定可以参考上述第一图像对应的像素坐标系。
以下为第一终端获取的标记坐标系到当前时刻各个第二终端对应的坐标系的坐标转换关系:
其中,Zc,j为第j个第二终端对应的比例因子,(xj,yj)为点P在当前时刻第j个第二终端对应的坐标系中的坐标,(Xm,Ym,Zm)为点P在标记坐标系中的坐标,Rj为标记坐标系到当前时刻第j个第二终端对应的坐标系的旋转矩阵,Rj是3×3正交单位矩阵且其行列式的值为1,tj为标记坐标系到当前时刻第j个第二终端对应的坐标系的平移向量,tj为3维向量,j=1,...,M,M为第二终端的个数,M≥1。
在图1所示基于标记的增强现实交互方法的基础上,如图4所示,本发明实施例一种可选的实施例中,步骤S104可以为:
S1042,接收各个第二终端发送的各个第二终端与标记之间的相对位置姿态。
具体地,在第一终端和各个第二终端中可以设置有通信模块,各个第二终端可以通过各自的通信模块以有线或无线通信的方式将各自与标记之间的相对位置姿态发送至第一终端的通信模块,以使第一终端共享各个第二终端与标记之间的相对位置姿态。其中,各个第二终端可以参考步骤S101-S103预先确定出各自与标记之间的相对位置姿态。
S105,根据第一终端与标记之间的相对位置姿态,以及各个第二终端与标记之间的相对位置姿态,确定第一终端与各个第二终端之间的相对位置姿态。
确定第一终端与各个第二终端之间的相对位置姿态,便可以进一步在第一终端显示第二终端的位置信息,从而实现第一终端和各个第二终端的增强现实交互。
在图1所示基于标记的增强现实交互方法的基础上,如图3所示,本发明实施例一种可选的实施例中,步骤S105可以为:
S1051,根据预先建立的标记坐标系到当前时刻第一终端对应的坐标系的旋转矩阵和平移向量,以及预先建立的标记坐标系到当前时刻各个第二终端对应的坐标系的旋转矩阵和平移向量,确定当前时刻各个第二终端对应的坐标系到当前时刻第一终端对应的坐标系的旋转矩阵和平移向量。
以下为当前时刻第一终端对应的坐标系与各个第二终端对应的坐标系的坐标转换关系:
其中,Z
c,j为第j个第二终端对应的比例因子,Z
c为第一终端对应的比例因子,(x,y)为点P在当前时刻第一终端对应的坐标系中的坐标,(x
j,y
j)为点P在当前时刻第j个第二终端对应的坐标系中的坐标,
为当前时刻第一终端对应的坐标系到第j个第二终端对应的坐标系的旋转矩阵,
是3×3正交单位矩阵且其行列式的值为1,
为当前时刻第一终端对应的坐标系到第j个第二终端对应的坐标系的平移向量,
为3维向量,j=1,...,M,M为第二终端的个数,M≥1,其中,
其中,(·)-1表示逆矩阵。
S106,基于第一终端与各个第二终端之间的相对位置姿态,在第一终端获取的第二图像中呈现各个第二终端在第二图像上的投影坐标。
步骤S105确定了第一终端与各个第二终端之间的相对位置姿态,即确定了空间任一点在当前时刻第一终端对应的坐标系和各个第二终端对应的坐标系中的坐标对应关系。从而可以确定第二终端在第二图像上的投影坐标。将第二终端在第二图像上投影后,第一终端上便可以显示第二终端的位置。
第一终端获取第二图像的方式可以参考步骤S101中第一终端获取第一图像的方式。
本实施例中,第二图像可以具体有与第一图像相同的显示尺寸和显示位置,这样第二图像对应的像素坐标系和第一图像对应的像素坐标系可以完全相同。因此各个第二终端在第二图像上的投影坐标具体为:各个第二终端在第一终端对应的坐标系中的坐标。
一种具体实现方式中,可以将第二终端对应的坐标系的原点作为第二终端在真实场景中的参考点,并基于第一终端与各个第二终端之间的相对位置姿态,确定与该参考点在第二终端对应的坐标系中的坐标相对应的、该参考点在第一终端对应的坐标系中的坐标,那么确定的坐标即为第二终端在第二图像上的投影坐标。
进一步地,各个第二终端可以向第一终端发送各自的参考点在本终端对应的坐标***中的坐标,这样第一终端就可以根据第一终端与各个第二终端之间的相对位置姿态,计算各个第二终端的参考点在第二图像上的投影坐标。
本发明实施例提供的基于标记的增强现实交互方法,增强现实交互***中的第一终端首先获取包含标记的第一图像;并根据预设的角点检测算法,确定第一图像中标记的至少四个角点,并确定各个角点的角点坐标;然后基于各个角点的角点坐标,确定第一终端与标记之间的相对位置姿态;并获取增强现实交互***中的各个第二终端与标记之间的相对位置姿态;最后根据第一终端与标记之间的相对位置姿态,以及各个第二终端与标记之间的相对位置姿态,确定第一终端与各个第二终端之间的相对位置姿态;并基于第一终端与各个第二终端之间的相对位置姿态,在第一终端获取的第二图像中呈现各个第二终端在第二图像上的投影坐标。本发明实施例可以使每个终端在自己的场景下显示出其他终端的运动状态,进而实现多个终端实时地进行增强现实交互。
图5为本发明实施例提供的另一种基于标记的增强现实交互方法的流程图,该方法包括以下步骤:
S201,获取包含标记的第一图像。
S202,根据预设的角点检测算法,确定第一图像中标记的至少四个角点,并确定各个角点的角点坐标。
S203,基于各个角点的角点坐标,确定第一终端与标记之间的相对位置姿态。
S204,获取各个第二终端与标记之间的相对位置姿态。
S205,根据第一终端与标记之间的相对位置姿态,以及各个第二终端与标记之间的相对位置姿态,确定第一终端与各个第二终端之间的相对位置姿态。
本实施例中,上述步骤S201-S205可以分别与图1所示实施例中的步骤S101-S105完全相同,这里不再赘述。
S206,获取各个第二终端上的任一点在当前时刻本终端对应的坐标系中的目标坐标。
在实际应用中,第一终端的用户可以根据需要确定在第一终端上显示第二终端上的任一点。本实施例中,第二终端上的任一点可以为第二终端本身的任一点,也可以为第二终端的用户身体上的任一点。例如,第二终端为一增强现实(Augmented Reality,AR)眼镜,第二终端上的任一点可以为该AR眼镜的中心点等。又如,第二终端的用户为一运动员,第二终端上的任一点可以为该运动员的右手的中心点等。
第二终端可以将本终端上任一点在本终端对应的坐标系中的目标坐标发送至第一终端。
S207,基于第一终端与各个第二终端的相对位置姿态,确定目标坐标在第二图像上的目标投影坐标,并在第一终端获取的第二图像中呈现目标投影坐标。
本发明实施例提供的基于标记的增强现实交互方法,增强现实交互***中的第一终端首先获取包含标记的第一图像;并根据预设的角点检测算法,确定第一图像中标记的至少四个角点,并确定各个角点的角点坐标;然后基于各个角点的角点坐标,确定第一终端与标记之间的相对位置姿态;并获取增强现实交互***中的各个第二终端与标记之间的相对位置姿态;最后根据第一终端与标记之间的相对位置姿态,以及各个第二终端与标记之间的相对位置姿态,确定第一终端与各个第二终端之间的相对位置姿态;并基于第一终端与各个第二终端之间的相对位置姿态,在第一终端获取的第二图像中呈现各个第二终端在第二图像上的投影坐标。本发明实施例可以使每个终端在自己的场景下显示出其他终端的运动状态,进而实现多个终端实时地进行增强现实交互。
图6为本发明实施例提供的一种基于标记的增强现实交互装置的结构图,该装置应用于增强现实交互***中的第一终端,增强现实交互***还包括至少一个第二终端,该装置包括:第一获取单元301、第一确定单元302、第二确定单元303、第二获取单元304、第三确定单元305和呈现单元306;其中,
第一获取单元301,用于获取包含标记的第一图像;
第一确定单元302,用于根据预设的角点检测算法,确定第一图像中标记的至少四个角点,并确定各个角点的角点坐标;
第二确定单元303,用于基于各个角点的角点坐标,确定第一终端与标记之间的相对位置姿态;
第二获取单元304,用于获取各个第二终端与标记之间的相对位置姿态;
第三确定单元305,用于根据第一终端与标记之间的相对位置姿态,以及各个第二终端与标记之间的相对位置姿态,确定第一终端与各个第二终端之间的相对位置姿态;
呈现单元306,用于基于第一终端与各个第二终端之间的相对位置姿态,在第一终端获取的第二图像中呈现各个第二终端在第二图像上的投影坐标。
本发明实施例提供的基于标记的增强现实交互装置,第一终端首先获取包含所述标记的第一图像;并根据预设的角点检测算法,确定所述第一图像中所述标记的至少四个角点,并确定各个所述角点的角点坐标;然后基于各个所述角点的角点坐标,确定所述第一终端与所述标记之间的相对位置姿态;并获取增强现实交互***中的各个第二终端与所述标记之间的相对位置姿态;最后根据所述第一终端与所述标记之间的相对位置姿态,以及各个所述第二终端与所述标记之间的相对位置姿态,确定所述第一终端与各个所述第二终端之间的相对位置姿态;并基于所述第一终端与各个所述第二终端之间的相对位置姿态,在所述第一终端获取的第二图像中呈现各个所述第二终端在所述第二图像上的投影坐标。本发明实施例可以使每个终端在自己的场景下显示出其他终端的运动状态,进而实现多个终端实时地进行增强现实交互。
一种实现方式中,第一确定单元302,具体用于确定各个角点在当前时刻第一终端对应的坐标系中的第一坐标,以及各个角点在预先建立的标记坐标系中的第二坐标;其中,
标记坐标系为:x轴对应于标记的第一方向,y轴对应于标记的第二方向,第一方向与第二方向垂直,z轴垂直于x轴和y轴所确定的平面;标记坐标系的原点为标记的中心点;
第一终端对应的坐标系为:x轴对应于第一终端的第三方向,y轴对应于第一终端的第四方向,第三方向与第四方向垂直;第一终端对应的坐标系的原点为第一终端的中心点。
一种实现方式中,第二确定单元303,具体用于基于各个角点的角点坐标,通过PnP方法,确定预先建立的标记坐标系到当前时刻第一终端对应的坐标系的旋转矩阵和平移向量;
第二获取单元304,具体用于获取预先建立的标记坐标系到当前时刻各个第二终端对应的坐标系的旋转矩阵和平移向量;其中,
各个第二终端对应的坐标系为:x轴对应于各个第二终端的第五方向,y轴对应于各个第二终端的第六方向,第五方向与第六方向垂直;各个第二终端对应的坐标系的原点为各个第二终端的中心点;
第三确定单元305,具体用于根据预先建立的标记坐标系到当前时刻第一终端对应的坐标系的旋转矩阵和平移向量,以及预先建立的标记坐标系到当前时刻各个第二终端对应的坐标系的旋转矩阵和平移向量,确定当前时刻各个第二终端对应的坐标系到当前时刻第一终端对应的坐标系的旋转矩阵和平移向量。
一种实现方式中,第二获取单元304,具体用于接收各个第二终端发送的各个第二终端与标记之间的相对位置姿态。
图7为本发明实施例提供的另一种基于标记的增强现实交互装置的结构图,该装置应用于增强现实交互***中的第一终端,增强现实交互***还包括至少一个第二终端,该装置包括:第一获取单元401、第一确定单元402、第二确定单元403、第二获取单元404、第三确定单元405、第三获取单元406和呈现单元407;其中,第一获取单元401、第一确定单元402、第二确定单元403、第二获取单元404、第三确定单元405可以分别与图6所示实施例中的第一获取单元301、第一确定单元302、第二确定单元303、第二获取单元304、第三确定单元305完全相同,这里不再重复。
本实施例中,第三获取单元406,用于在呈现单元基于第一终端与各个第二终端之间的相对位置姿态,在第一终端获取的第二图像中呈现各个第二终端在第二图像上的投影坐标之前,获取各个第二终端上的任一点在当前时刻本终端对应的坐标系中的目标坐标。
呈现单元407,用于基于所述第一终端与各个所述第二终端之间的相对位置姿态,确定所述目标坐标在所述第二图像上的目标投影坐标,并在所述第一终端获取的第二图像中呈现所述目标投影坐标。
本发明实施例提供的基于标记的增强现实交互装置,第一终端首先获取包含所述标记的第一图像;并根据预设的角点检测算法,确定所述第一图像中所述标记的至少四个角点,并确定各个所述角点的角点坐标;然后基于各个所述角点的角点坐标,确定所述第一终端与所述标记之间的相对位置姿态;并获取增强现实交互***中的各个第二终端与所述标记之间的相对位置姿态;最后根据所述第一终端与所述标记之间的相对位置姿态,以及各个所述第二终端与所述标记之间的相对位置姿态,确定所述第一终端与各个所述第二终端之间的相对位置姿态;并基于所述第一终端与各个所述第二终端之间的相对位置姿态,在所述第一终端获取的第二图像中呈现各个所述第二终端在所述第二图像上的投影坐标。本发明实施例可以使每个终端在自己的场景下显示出其他终端的运动状态,进而实现多个终端实时地进行增强现实交互。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
获取包含标记的第一图像;
根据预设的角点检测算法,确定第一图像中标记的至少四个角点,并确定各个角点的角点坐标;
基于各个角点的角点坐标,确定第一终端与标记之间的相对位置姿态;
获取各个第二终端与标记之间的相对位置姿态;
根据第一终端与标记之间的相对位置姿态,以及各个第二终端与标记之间的相对位置姿态,确定第一终端与各个第二终端之间的相对位置姿态;
基于第一终端与各个第二终端之间的相对位置姿态,在第一终端获取的第二图像中呈现各个第二终端在第二图像上的投影坐标。
本发明实施例提供的电子设备,处理器通过执行存储器上所存放的程序使增强现实交互***中的第一终端首先获取包含标记的第一图像;并根据预设的角点检测算法,确定第一图像中标记的至少四个角点,并确定各个角点的角点坐标;然后基于各个角点的角点坐标,确定第一终端与标记之间的相对位置姿态;并获取增强现实交互***中的各个第二终端与标记之间的相对位置姿态;最后根据第一终端与标记之间的相对位置姿态,以及各个第二终端与标记之间的相对位置姿态,确定第一终端与各个第二终端之间的相对位置姿态;并基于第一终端与各个第二终端之间的相对位置姿态,在第一终端获取的第二图像中呈现各个第二终端在第二图像上的投影坐标。本发明实施例可以使每个终端在自己的场景下显示出其他终端的运动状态,进而实现多个终端实时地进行增强现实交互。
上述电子设备提到的通信总线504可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线504可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口502用于上述电子设备与其他设备之间的通信。
存储器503可以包括随机存取存储器(RandomAccess Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器501可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的基于标记的增强现实交互方法。
本发明实施例提供的计算机可读存储介质内存储的指令,当其在计算机上运行时,增强现实交互***中的第一终端首先获取包含标记的第一图像;并根据预设的角点检测算法,确定第一图像中标记的至少四个角点,并确定各个角点的角点坐标;然后基于各个角点的角点坐标,确定第一终端与标记之间的相对位置姿态;并获取增强现实交互***中的各个第二终端与标记之间的相对位置姿态;最后根据第一终端与标记之间的相对位置姿态,以及各个第二终端与标记之间的相对位置姿态,确定第一终端与各个第二终端之间的相对位置姿态;并基于第一终端与各个第二终端之间的相对位置姿态,在第一终端获取的第二图像中呈现各个第二终端在第二图像上的投影坐标。本发明实施例可以使每个终端在自己的场景下显示出其他终端的运动状态,进而实现多个终端实时地进行增强现实交互。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的基于标记的增强现实交互方法。
本发明实施例提供的包含指令的计算程序产品,当其在计算机上运行时,增强现实交互***中的第一终端首先获取包含标记的第一图像;并根据预设的角点检测算法,确定第一图像中标记的至少四个角点,并确定各个角点的角点坐标;然后基于各个角点的角点坐标,确定第一终端与标记之间的相对位置姿态;并获取增强现实交互***中的各个第二终端与标记之间的相对位置姿态;最后根据第一终端与标记之间的相对位置姿态,以及各个第二终端与标记之间的相对位置姿态,确定第一终端与各个第二终端之间的相对位置姿态;并基于第一终端与各个第二终端之间的相对位置姿态,在第一终端获取的第二图像中呈现各个第二终端在第二图像上的投影坐标。本发明实施例可以使每个终端在自己的场景下显示出其他终端的运动状态,进而实现多个终端实时地进行增强现实交互。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备/存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。