本说明书属于增强现实技术领域,尤其涉及一种增强现实设备的坐标系校准方法及装置。
背景技术:
随着科技的发展,增强现实技术即ar(augmentedreality)技术的应用越来越多,ar技术将虚拟的信息应用到真实世界,真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在,人们可以利用ar设备体验虚拟与现实结合的场景。
但是,ar设备中的ar坐标系通常是与ar设备初始化时的姿势、位置相关,不同的ar设备在初始化时位置和姿势不同,ar坐标系可能就会不同。不同的用户之间无法在同一个ar空间下进行互动,因此,ar应用通常是单机应用。现有技术中,对于ar设备的坐标系校准的方法,通常是将各个设备放置在同一个位置,保持同一个姿势,再将设备进行初始化。可以看出,这种方法局限性比较强,操作不方便,不能实现不同位置的用户的ar坐标系的校准。因此,亟需一种能够方便多个ar设备坐标系校准的实施方案。
技术实现要素:
本说明书目的在于提供一种增强现实设备的坐标系校准方法及装置,方法简单,实现了不同的ar设备的ar坐标系的校准。
一方面本说明书实施例提供了一种增强现实设备的坐标系校准方法,包括:
利用增强现实设备扫描预设图案,获取增强现实设备中所述预设图案的图像信息;
获取所述图像信息中的参考点在所述增强设备的图像坐标系中的图像坐标信息,和所述参考点在真实坐标系中的真实坐标信息;
基于所述图像坐标信息、所述真实坐标信息,确定所述真实坐标系、所述图像坐标系、所述增强现实设备的设备坐标系之间的转换关系;
根据所述转换关系将所述设备坐标系进行校准。
进一步地,所述方法的另一个实施例中,所述参考点在真实坐标系中的真实坐标信息获取方法包括:
确定所述图像信息中的标定点;
根据所述预设图案中所述参考点与所述标定点之间的相对位置,确定所述参考点在所述真实坐标系中的真实坐标信息。
进一步地,所述方法的另一个实施例中,所述确定所述图像信息中的标定点包括:
选取一个所述参考点作为所述标定点;
相应地,所述确定所述参考点在所述真实坐标系中的真实坐标信息,包括:
以所述标定点为坐标原点,选取所述标定点之外的两个参考点与所述标定点的连线所在的直线作为坐标轴,构建所述真实坐标系;
根据所述预设图案中所述参考点与所述标定点之间的相对位置,确定所述参考点在所述真实坐标系中的真实坐标信息。
进一步地,所述方法的另一个实施例中,所述确定所述真实坐标系、所述图像坐标系、所述增强现实设备的设备坐标系之间的转换关系包括:
获取所述增强现实设备的所述设备坐标系转换为所述图像坐标系的设备转换矩阵;
根据所述图像坐标信息、所述真实坐标信息、所述增强真实设备的相机内参矩阵,计算所述真实坐标系转变为所述图像坐标系的真实转换矩阵;
相应地,所述根据所述转换关系将所述设备坐标系进行校准的方法包括:
根据所述设备转换矩阵、所述真实转换矩阵,将所述设备坐标系进行校准。
进一步地,所述方法的另一个实施例中,所述根据所述设备转换矩阵、所述真实转换矩阵,将所述设备坐标系进行校准,包括:
按照下述公式实现第一增强现实设备和第二增强现实设备的设备坐标系的校准:
pcameraa_real-1pcameraa_aroara=pcamerab_real-1pcamerab_aroarb
上式中,pcameraa_real表示所述第一增强现实设备对应的真实转换矩阵,pcameraa_ar表示所述第一增强现实设备对应的设备转换矩阵,oara表示点o在所述第一增强现实设备的设备坐标系中的坐标,pcamerab_real表示所述第二增强现实设备对应的真实转换矩阵,pcamerab_ar表示所述第二增强现实设备对应的设备转换矩阵,oarb表示点o在所述第二增强现实设备的设备坐标系中的坐标。
进一步地,所述方法的另一个实施例中,所述根据所述转换关系将所述设备坐标系进行校准的方法还包括:
若进行设备坐标系校准的增强现实设备大于2个,则以其中任意一个增强现实设备的设备坐标系为基准进行设备坐标系的校准。
进一步地,所述方法的另一个实施例中,所述根据所述图像坐标信息、所述真实坐标信息、所述增强真实设备的相机内参矩阵,计算所述真实坐标系转变为所述图像坐标系的真实转换矩阵,包括:
根据所述图像坐标信息、所述真实坐标信息、所述增强真实设备的相机内参矩阵,利用solvepnp算法,计算获得所述真实转换矩阵。
进一步地,所述方法的另一个实施例中,所述预设图案包括二维码、条形码中的至少一种。
另一方面,本说明书提供了增强现实设备的坐标系校准装置,包括:
图像信息获取模块,用于利用增强现实设备扫描预设图案,获取增强现实设备中所述预设图案的图像信息;
坐标信息获取模块,用于获取所述图像信息中的参考点在所述增强设备的图像坐标系中的图像坐标信息,和所述参考点在真实坐标系中的真实坐标信息;
转换关系确定模块,用于基于所述图像坐标信息、所述真实坐标信息,获得所述真实坐标系、所述图像坐标系、所述增强现实设备的设备坐标系之间的转换关系;
设备坐标系校准模块,用于根据所述转换关系将所述设备坐标系进行校准。
进一步地,所述装置的另一个实施例中,所述坐标信息获取模块包括真实坐标获取单元,
所述真实坐标获取单元具体用于:
确定所述图像信息中的标定点;
根据所述预设图案中所述参考点与所述标定点之间的相对位置,确定所述参考点在所述真实坐标系中的真实坐标信息。
进一步地,所述装置的另一个实施例中,所述真实坐标获取单元还用于:
选取一个所述参考点作为所述标定点;
以所述标定点为坐标原点,选取所述标定点之外的两个参考点与所述标定点的连线所在的直线作为坐标轴,构建所述真实坐标系;
根据所述预设图案中所述参考点与所述标定点之间的相对位置,确定所述参考点在所述真实坐标系中的真实坐标信息。
进一步地,所述装置的另一个实施例中,所述转换关系确定模块包括:
设备转换矩阵计算单元,用于获取所述增强现实设备的所述设备坐标系转换为所述图像坐标系的设备转换矩阵;
真实转换矩阵计算单元,用于根据所述图像坐标信息、所述真实坐标信息、所述增强真实设备的相机内参矩阵,计算所述真实坐标系转变为所述图像坐标系的真实转换矩阵;
相应地,所述设备坐标系校准模块用于根据所述设备转换矩阵、所述真实转换矩阵,将所述设备坐标系进行校准。
进一步地,所述装置的另一个实施例中,所述设备坐标系校准模块具体用于:
按照下述公式实现第一增强现实设备和第二增强现实设备的设备坐标系的校准:
pcameraa_real-1pcameraa_aroara=pcamerab_real-1pcamerab_aroarb
上式中,pcameraa_real表示所述第一增强现实设备对应的真实转换矩阵,pcameraa_ar表示所述第一增强现实设备对应的设备转换矩阵,oara表示点o在所述第一增强现实设备的设备坐标系中的坐标,pcamerab_real表示所述第二增强现实设备对应的真实转换矩阵,pcamerab_ar表示所述第二增强现实设备对应的设备转换矩阵,oarb表示点o在所述第二增强现实设备的设备坐标系中的坐标。
进一步地,所述装置的另一个实施例中,所述设备坐标系校准模块还用于:
若进行设备坐标系校准的增强现实设备大于2个,则以其中任意一个增强现实设备的设备坐标系为基准进行设备坐标系的校准。
进一步地,所述装置的另一个实施例中,所述坐标系校准处理单元具体用于:根据所述图像坐标信息、所述真实坐标信息、所述增强真实设备的相机内参矩阵,利用solvepnp算法,计算获得所述真实转换矩阵。
进一步地,所述装置的另一个实施例中,所述图像信息获取模块获取到的所述预设图案的图像信息中的预设图案包括二维码、条形码中的至少一种。
再一方面,本说明书实施例提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被执行时,实现权利要求上述增强现实设备的坐标系校准方法。
又一方面,本说明书实施例提供了增强现实设备的坐标系校准系统,包括至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述增强现实设备的坐标系校准方法。
本说明书提供的增强现实设备的坐标系校准方法、装置、系统,基于不同ar设备中的预设图案的图像信息,可以获得ar设备的图像坐标系、ar坐标系、真实坐标系之间的转换关系,根据各坐标系之间的转换关系可以实现不同ar设备的ar坐标系的校准,使得不同的用户可以共享虚拟物体的位置、方向,得到相同的体验,使得多用户之间的ar体验互动成为可能,为后续ar应用的联机开发提供了理论基础。本说明实施例提供的方法可以不限制ar设备设置在同一个位置、保持同一个姿势进行ar坐标系的校准,操作方便,实用性强,满足了不同位置用户的ar设备的坐标系校准的需求。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书提供的一个实施例中的增强现实设备的坐标系校准方法的流程示意图;
图2是本说明书一个实施例中利用二维码图像构建真实坐标系的示意图;
图3是本说明书又一个实施例中增强现实设备的坐标系校准方法的流程示意图;
图4是本说明书提供的增强现实设备的坐标系校准装置一个实施例的模块结构示意图;
图5是本说明一个实施例中设备坐标系校准模块的结构示意图;
图6是本说明书提供的一种增强现实设备的坐标系校准系统实施例的模块结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
增强现实技术即ar技术在工程、医疗、军事、航海航空中的应用也越来越多,应用ar技术开发的应用程序也越来越多,如:苹果公司推出的一款增强现实应用程序软件开发工具包arkit。本说明书实施例中的增强现实设备也可以称为ar设备,可以包括带有ar应用的客户端,如:智能手机、平板电脑、智能可穿戴设备(智能手表、虚拟现实眼镜、虚拟现实头盔等)等电子设备。
在使用ar设备时,需要确定出ar设备中的设备坐标系(即ar坐标系),ar坐标系是ar设备中的camera(相机)坐标系(即本说明书实施例中的图像坐标系)与真实世界的真实坐标系之间的桥梁。ar设备可以实现虚拟世界与真实世界进行交互,利用ar设备中的ar坐标系可以将虚拟世界与真实世界连接起来。通常情况下ar设备中的ar坐标系是ar设备初始化成功后ar设备中的camera在真实世界中的位置,ar坐标系的y轴的方向是重力的反方向,x轴、z轴的方向与ar设备的姿势相关。因此,即使是同一台ar设备,在启动过程中只要ar设备的位置发生变化或者ar设备的姿势有所不同,初始化后的ar坐标系就会有所差异。因此,不同ar设备之间不能共享虚拟物体的位置、方向,这样就会造成ar体验的孤立,不同用户之间无法在同一个ar空间下进行互动。
本说明书实施例提供的增强现实设备的坐标系校准方法,将不同的ar设备扫描预设图案,基于ar设备中扫描到的预设图案的图像信息,可以获得ar设备的ar坐标系、真实坐标系以及图像坐标系之间的转换关系,根据坐标系之间的转换关系,可以实现不同的ar设备的ar坐标系的校准。对于ar设备的位置、姿势不需要进行限定,可以不需要将不同的ar设备固定在同一个固定点、保持同一个姿势实现ar设备的坐标系的校准。方法简单灵活,适用性广,满足了不同用户之间ar设备坐标系校准的需求。
具体地,图1是本说明书提供的一个实施例中的增强现实设备的坐标系校准方法的流程示意图,如图1所示,本说明书实施例提供的增强现实设备的坐标系校准方法,包括:
s2、利用增强现实设备扫描预设图案,获取增强现实设备中所述预设图案的图像信息。
具体地,可以控制ar设备扫描预设图案,扫描后对ar设备中的camera的数据进行处理,即处理camera中的每一帧图像信息,获取到ar设备中预设图案的图像信息。在利用ar设备扫描预设图案时,不同的ar设备可以扫描同一个预设图案,也可以将预设图案的图像(如:照片)等信息发送至不同的ar设备,或者将预设图案复制多份,不同的ar设备扫描预设图案的复制图像,或者也可以不同的ar设备扫描具有相同图像特征并且尺寸相同的图案。
本说明书一个实施例中预设图案可以是二维码、条形码或者其他具有特征的平面图案。二维码、条形码等平面图案在日常生活中比较常见,比较容易引导用户使用ar设备扫描预设图案,对于二维码或者条形码的扫描用户比较容易操作。例如:若用户a、b、c分别位于不同的城市,用户a、b、c可以共同商定使用同一个二维码图像作为预设图案,用户a、b、c可以利用各自的ar设备扫描商定的二维码图像,用户a、b、c的ar设备中可以获得二维码图像的图像信息。
s4、获取所述图像信息中的参考点在所述增强设备的图像坐标系中的图像坐标信息,和所述参考点在真实坐标系中的真实坐标信息。
具体地,可以在预设图案中选取出参考点,参考点可以是预设图案中的任意像素点,如:可以是预设图案中的角点、中心点、或者预设图案中具有特殊特征的点等,参考点的数量可以根据实际需要进行设置,如:4个,本说明书实施例不作具体限定。通过分析ar设备中的预设图案的图像信息,可以获得预设图案的图像信息中的参考点在ar设备的图像坐标系中的图像坐标信息、以及参考点在真实坐标系中的真实坐标信息。参考点在ar设备的图像坐标系中的图像坐标信息可以通过分析ar设备中预设图案的图像信息,从ar设备的自身系统获得,如:可以通过ar设备的检测条形码请求获得预设图案的图像信息中的参考点在ar设备的图像坐标系中的坐标信息。图像坐标系可以表示ar设备的camera坐标系,真实坐标系可以表示真实世界的坐标系,真实坐标系的具体构建方法可以根据实际需要选择,本说明书实施例不作具体限定。
预设图案的图像信息中的参考点在真实坐标系中的坐标信息可以根据预设图像的实际尺寸以及参考点在预设图案中的实际位置确定。
本说明书一个实施例中,所述参考点在真实坐标系中的真实坐标信息获取方法包括:
确定所述图像信息中的标定点;
根据所述预设图案中所述参考点与所述标定点之间的相对位置,确定所述参考点在所述真实坐标系中的真实坐标信息。
其中,标定点可以是参考点中的一个也可以是预设图案中除去参考点之外的其他像素点。标定点可以用于确定真实坐标系的相对位置,可以作为真实坐标系中参考点在预设图案中的基准点。根据标定点和参考点在预设图案中的相对位置,确定出参考点在真实坐标系中的真实坐标信息。例如:可以以标定点为坐标原点,构建真实坐标系,如:若预设图案时矩形、方形或平行四边形,可以将平行于预设图案的边长的方向作为坐标轴,构建真实坐标系,根据预设图案的实际尺寸,以及参考点在预设图案中的位置,确定出参考点的真实坐标信息。
本说明书一个实施例中,所述确定所述图像信息中的标定点包括:
选取一个所述参考点作为所述标定点;
相应地,所述确定所述参考点在所述真实坐标系中的真实坐标信息,包括:
以所述标定点为坐标原点,选取所述标定点之外的两个参考点与所述标定点的连线所在的直线作为坐标轴,构建所述真实坐标系;
根据所述预设图案中所述参考点与所述标定点之间的相对位置,确定所述参考点在所述真实坐标系中的真实坐标信息。
图2是本说明书一个实施例中利用二维码图像构建真实坐标系的示意图,如图2所示,本说明书一个实施例中,可以选取二维码图像的四个角点作为参考点,并且可以将左下角的参考点作为标定点。以左下角的参考点作为原点,以二维码图像中标定点所在的两个边长所在的直线作为坐标轴,如图2所示,可以构建出真实坐标系,获得参考点在真实坐标系中的真实坐标信息。如:若二维码图像的边长为1分米,则四个参考点在真实坐标系中的坐标信息可以表示为:(0,0)、(1,0)、(1,1)、(0,1)。当然,根据实际需要,参考点还可以选择二维码图像中的其他位置,如:二维码图像的中心点等,真实坐标系的构建方法也可以根据实际需要进行调整,如:可以以二维码图像之外的一点作为坐标原点构建真实坐标系等,本说明书实施例不作具体限定。
需要说明的是,本说明书实施例中不同的ar设备的真实坐标系的构建方法是相同的,这样可以确保参考点在不同的ar设备中的真实坐标信息相同。
若多个二维码图像的尺寸相同,如图2所示,若选取二维码图像的4个角点作为参考点,则不同的ar设备可以扫描尺寸相同的二维码图像,获得预设图案的图像信息。此时,不同的ar设备扫描获得的二维码图像中的参考点的真实坐标信息可以认为是相同的。
s6、基于所述图像坐标信息、所述真实坐标信息,确定所述真实坐标系、所述图像坐标系、所述增强现实设备的设备坐标系之间的转换关系。
获得参考点在ar设备的图像坐标系中的图像坐标信息、在真实坐标系中的真实坐标信息后,可以通过分析参考点的图像坐标信息、真实坐标信息,获得真实坐标系、图像坐标系以及ar坐标系即设备坐标系之间的转换关系。如:可以根据参考点的真实坐标信息、图像坐标信息,计算如何将参考点进行偏移、旋转等操作,能够将参考点在真实坐标系中的真实坐标信息转换为图像坐标系中的位置,获得真实坐标系和图像坐标系之间的转换关系。同时,可以利用ar设备系统获得ar设备的ar坐标系与图像坐标系之间的转换关系,如:可以通过基于opengl(开放式图形接口)中的视图变换矩阵获得ar设备的ar坐标系与图像坐标系之间的转换关系,也可以通过arkit的api(applicationprograminterface,应用程序编程接口)直接获取ar设备的ar坐标系与图像坐标系之间的转换关系(如:可以通过arkit的api利用arcamera中的viewmatrix(视点矩阵)获得)。arkit可以表示苹果公司推出的一款增强现实应用程序软件开发工具包,api可以表示操作系统留给应用程序的一个调用接口。
s8、根据所述转换关系将所述设备坐标系进行校准。
本说明书一个实施例中,利用真实坐标系和图像坐标系之间的转换关系、以及ar坐标系和图像坐标系之间的转换关系,可以间接的获得ar坐标系与真实坐标系之间的转换关系,实现了将不同的ar设备的ar坐标系校准到真实坐标系的,实现了不同ar设备的坐标系的校准。
如:若某个ar设备的真实坐标系和图像坐标系之间的转换关系为:a×k=b,ar坐标系与图像坐标系之间的转换关系为:c×p=b,其中,a可以表示真实坐标系中像素点o的坐标,b可以表示图像坐标系中像素点o的坐标,c可以表示ar坐标系中像素点o的坐标,k、p均表示转换系数。则可以获得ar坐标系和真实坐标系之间的转换关系可以表示为:c=a×(k/p)。可以将ar设备的ar坐标系校准到真实坐标系中,利用该方法可以对不同的ar设备进行坐标系的校准,获得不同ar设备的ar坐标系与真实坐标系之间的转换关系,实现ar设备的坐标系的校准,使得不同的ar设备的ar坐标系能够进行统一。
本说明书实施例提供的增强现实设备的坐标系校准方法,基于不同ar设备中的预设图案的图像信息,可以获得ar设备的图像坐标系、ar坐标系、真实坐标系之间的转换关系,根据各坐标系之间的转换关系可以实现不同ar设备的ar坐标系的校准,使得不同的用户可以共享虚拟物体的位置、方向,得到相同的体验,为后续ar应用的联机开发提供了理论基础。本说明实施例提供的方法可以不限制ar设备设置在同一个位置、保持同一个姿势进行ar坐标系的校准,操作方便,实用性强,满足了不同位置用户的ar设备的坐标系校准的需求。
在上述实施例的基础上,本说明书一个实施例中,所述确定所述真实坐标系、所述图像坐标系、所述增强现实设备的设备坐标系之间的转换关系包括:
获取所述增强现实设备的所述设备坐标系转换为所述图像坐标系的设备转换矩阵;
根据所述图像坐标信息、所述真实坐标信息、所述增强真实设备的相机内参矩阵,计算所述真实坐标系转变为所述图像坐标系的真实转换矩阵;
相应地,所述根据所述转换关系将所述设备坐标系进行校准的方法包括:
根据所述设备转换矩阵、所述真实转换矩阵,将所述设备坐标系进行校准。
具体地,在计算真实坐标系和图像坐标系之间的转换关系时,本说明书一个实施例可以利用获得的参考点的图像坐标信息、真实坐标信息、以及ar设备的相机内参矩阵,通过计算参考点的位移、偏移、旋转等,获得真实坐标系和图像坐标系之间的真实转换矩阵。相机内参矩阵可以表示从相机坐标系到像平面坐标系的变换关系,像平面坐标系是用像素单位来表示的,而相机坐标系(即图像坐标系)则是以毫米为单位来表示,因此,要完成改变换过程就需要先得到像平面的像素单位与毫米单位之间的线性关系。本说明书实施例中的相机内参矩阵可以由ar设备中的相机的参数获得。
本说明书一个实施例中,真实坐标系和图像坐标系之间的真实转换矩阵可以通过所述图像坐标信息、所述真实坐标信息、所述增强真实设备的相机内参矩阵,利用solvepnp算法计算获得。solvepnp可以表示opencv库里面提供的一个求解camera旋转、平移的算法,opencv可以表示一个主要针对实时计算机视觉的编程的功能库。
利用solvepnp算法可以计算ar设备的相机的姿势,计算出真实坐标系和图像坐标系之间的真实转换矩阵。
同时,可以利用ar设备获取到ar坐标系与图像坐标系之间的设备转换矩阵,利用真实转换矩阵和设备转换矩阵,可以将不同的ar设备的ar坐标系进行校准。
本说明书一个实施例中,所述根据所述设备转换矩阵、所述真实转换矩阵,将所述设备坐标系进行校准,可以包括:
按照下述公式(1)实现第一增强现实设备和第二增强现实设备的设备坐标系的校准:
pcameraa_real-1pcameraa_aroara=pcamerab_real-1pcamerab_aroarb(1)
上式中,pcameraa_real可以表示所述第一增强现实设备对应的真实转换矩阵,pcameraa_ar可以表示所述第一增强现实设备对应的设备转换矩阵,oara可以表示点o在所述第一增强现实设备的设备坐标系中的坐标,pcamerab_real可以表示所述第二增强现实设备对应的真实转换矩阵,pcamerab_ar可以表示所述第二增强现实设备对应的设备转换矩阵,oarb可以表示点o在所述第二增强现实设备的设备坐标系中的坐标。
假设有两台ar设备a和b,已经知真实世界中的一个点o,做如下定义:点o在ar设备a的图像坐标系下的坐标为ocameraa,点o在ar设备b的图像坐标系下的坐标为ocamerab,真实坐标系下的点o的坐标为oreal,真实坐标系转变为ar设备a的图像坐标系的真实转换矩阵为pcameraa_real,真实坐标系转变为ar设备b的图像坐标系的真实转换矩阵为pcamerab_real,点o在ar设备a的ar坐标系下的坐标为oara,点o在ar设备b的ar坐标系下的坐标为oarb,ar设备a的ar坐标系转换为ar设备a的图像坐标系的设备矩阵为pcameraa_ar,ar设备b的ar坐标系转换为ar设备b的图像坐标系的设备矩阵为pcamerab_ar。则可以得到如下方程组:
通过对上述公式(2)进行转换变行可以获得上述公式(1),因此计算获得不同的ar设备的真实坐标系和图像坐标系之间的真实转换矩阵、ar坐标系与图像坐标系之间的设备转换矩阵后,可以利用公式(1)将点o的坐标信息进行校准,方法简单,准确,实现了不同的ar设备的坐标系校准。
在上述实施例的基础上,本说明书一个实施例中,所述将所述设备坐标系进行校准的方法还包括:
若进行设备坐标系校准的增强现实设备大于2个,则以其中任意一个增强现实设备的设备坐标系为基准进行设备坐标系的校准。
例如:若需要对3个ar设备进行坐标系的校准,可以分别获得3个ar设备对应的真实坐标系和图像坐标系之间的真实转换矩阵、ar坐标系与图像坐标系之间的设备转换矩阵,可以以其中任意一个ar设备的ar坐标系为基准,获得另外2个ar设备的ar坐标系与该ar坐标系之间的转换关系,如:可以得到下述公式(3):
将ar设备b、c的ar坐标系校准到ar设备a的ar坐标系中,实现了3个ar设备的坐标系的校准。
图3是本说明书又一个实施例中增强现实设备的坐标系校准方法的流程示意图,下面结合图3,具体介绍本说明书实施例中ar设备坐标系的校准流程:
(1)ar设备初始化。ar设备启动是需要进行初始化。
(2)处理ar设备的相机中的帧数据。用户可以利用ar设备扫描预设的二维码图像,扫描后,可以处理ar设备的相机中的图像信息的帧数据。
(3)识别ar设备的图像信息中是否有二维码图像,若有,则执行步骤(4),若没有,则返回步骤(2)直至识别到二维码图像。
(4)获取二维码图像中四个角点在图像坐标系中的图像坐标信息,以及二维码图像中四个角点在真实坐标系中的真实坐标信息。
(5)根据二维图像的图像坐标信息、真实坐标信息、ar设备的相机内参矩阵,使用solvepnp算法计算ar设备的相机姿势,获得真实坐标系转变为ar设备的图像坐标系的真实转换矩阵。
(6)获取ar设备的ar空间视图变换矩阵即ar设备的ar坐标系转换为图像坐标系的设备转换矩阵。
(7)利用上述公式(1)计算出不同ar设备的ar坐标系的转换关系,完成ar设备的坐标系的校准。
本说明书实施例提供的方法,基于不同ar设备中的预设图案的图像信息,可以实现不同ar设备的ar坐标系的校准,使得不同的用户可以共享虚拟物体的位置、方向,得到相同的体验,使得多用户之间的ar体验互动成为可能,为后续ar应用的联机开发提供了理论基础。本说明实施例提供的方法可以不限制ar设备设置在同一个位置、同一个姿势进行ar坐标系的校准,操作方便,实用性强,满足了不同位置用户的ar设备的坐标系校准的需求,提高了用户体验。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
基于上述所述的增强现实设备的坐标系校准方法,本说明书一个或多个实施例还提供一种增强现实设备的坐标系校准装置。所述的装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
具体地,图4是本说明书提供的增强现实设备的坐标系校准装置一个实施例的模块结构示意图,如图4所示,本说明书中提供的增强现实设备的坐标系校准装置包括:图像信息获取模块41、坐标信息获取模块42、转换关系确定模块43、设备坐标系校准模块44,其中:
图像信息获取模块41,可以用于利用增强现实设备扫描预设图案,获取增强现实设备中所述预设图案的图像信息;
坐标信息获取模块42,可以用于获取所述图像信息中的参考点在所述增强设备的图像坐标系中的图像坐标信息,和所述参考点在真实坐标系中的真实坐标信息;
转换关系确定模块43,可以用于基于所述图像坐标信息、所述真实坐标信息,确定所述真实坐标系、所述图像坐标系、所述增强现实设备的设备坐标系之间的转换关系;
设备坐标系校准模块44,可以用于根据所述转换关系将所述设备坐标系进行校准。
本说明书实施例提供的增强现实设备的坐标系校准装置,基于不同ar设备中的预设图案的图像信息,可以获得ar设备的图像坐标系、ar坐标系、真实坐标系之间的转换关系,根据各坐标系之间的转换关系可以实现不同ar设备的ar坐标系的校准,使得不同的用户可以共享虚拟物体的位置、方向,得到相同的体验,为后续ar应用的联机开发提供了理论基础。本说明实施例提供的方法可以不限制ar设备设置在同一个位置、同一个姿势进行ar坐标系的校准,操作方便,实用性强,满足了不同位置用户的ar设备的坐标系校准的需求。
在上述实施例的基础上,所述坐标信息获取模块包括真实坐标获取单元,
所述真实坐标获取单元具体用于:
确定所述图像信息中的标定点;
根据所述预设图案中所述参考点与所述标定点之间的相对位置,确定所述参考点在所述真实坐标系中的真实坐标信息。
在上述实施例的基础上,所述真实坐标获取单元还用于:
选取一个所述参考点作为所述标定点;
以所述标定点为坐标原点,选取所述标定点之外的两个参考点与所述标定点的连线所在的直线作为坐标轴,构建所述真实坐标系;
根据所述预设图案中所述参考点与所述标定点之间的相对位置,确定所述参考点在所述真实坐标系中的真实坐标信息。
本说明书实施例提供的增强现实设备的坐标系校准装置,基于预设图案的实际尺寸以及参考点与标定点之间的相对位置,获取参考点在真实坐标系中的坐标信息。由于不同的ar使用的相同尺寸的预设图案,能够实现基于预设图案中参考点的真实坐标信息进行ar设备的坐标系的校准。
图5是本说明一个实施例中设备坐标系校准模块的结构示意图,如图5所示,在上述实施例的基础上,所述转换关系确定模块43包括:
设备转换矩阵计算单元51,可以用于获取所述增强现实设备的所述设备坐标系转换为所述图像坐标系的设备转换矩阵;
真实转换矩阵计算单元52,可以用于根据所述图像坐标信息、所述真实坐标信息、所述增强真实设备的相机内参矩阵,计算所述真实坐标系转变为所述图像坐标系的真实转换矩阵;
相应地,所述设备坐标系校准模块44可以用于根据所述设备转换矩阵、所述真实转换矩阵,将所述设备坐标系进行校准。
本说明书实施例,利用ar设备的图像坐标系与真实坐标系的真实转换矩阵,以及ar坐标系与图像坐标系之间的转换矩阵,可以获取不同ar设备之间ar坐标系之间的转换关系,为ar设备的坐标系的校准提供了准确的理论基础。
在上述实施例的基础上,所述设备坐标系校准模块具体用于:
按照下述公式实现第一增强现实设备和第二增强现实设备的设备坐标系的校准:
pcameraa_real-1pcameraa_aroara=pcamerab_real-1pcamerab_aroarb
上式中,pcameraa_real表示所述第一增强现实设备对应的真实转换矩阵,pcameraa_ar表示所述第一增强现实设备对应的设备转换矩阵,oara表示点o在所述第一增强现实设备的设备坐标系中的坐标,pcamerab_real表示所述第二增强现实设备对应的真实转换矩阵,pcamerab_ar表示所述第二增强现实设备对应的设备转换矩阵,oarb表示点o在所述第二增强现实设备的设备坐标系中的坐标。
本说明书实施例,提供了不同ar设备的坐标系转换公式,能够准确的将各ar设备的坐标系进行校准。
在上述实施例的基础上,所述设备坐标系校准模块还用于:
若进行设备坐标系校准的增强现实设备大于2个,则以其中任意一个增强现实设备的设备坐标系为基准进行设备坐标系的校准。
在上述实施例的基础上,所述坐标系校准处理单元具体用于:根据所述图像坐标信息、所述真实坐标信息、所述增强真实设备的相机内参矩阵,利用solvepnp算法,计算获得所述真实转换矩阵。
本说明书实施例,利用solvepnp算法可以计算出ar设备中相机的姿势,获得ar设备的真实坐标系与图像坐标系之间的真实转换矩阵,方法简单准确。
在上述实施例的基础上,所述图像信息获取模块获取到的所述预设图案的图像信息中的预设图案包括二维码、条形码中的至少一个。
本说明书实施例,将二维码、条形码等具有特征、且日常生活比较常见的平面图案作为预设图案,方便引导用户扫描,操作方便,提高了用户体验。
需要说明书的是,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书一个实施例中,还可以提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被执行时,实现上述实施例中视频数据的处理方法,例如可以实现如下方法:
利用增强现实设备扫描预设图案,获取增强现实设备中所述预设图案的图像信息;
获取所述图像信息中的参考点在所述增强设备的图像坐标系中的图像坐标信息,和所述参考点在真实坐标系中的真实坐标信息;
基于所述图像坐标信息、所述真实坐标信息,确定所述真实坐标系、所述图像坐标系、所述增强现实设备的设备坐标系之间的转换关系;
根据所述转换关系将所述设备坐标系进行校准。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。
本说明书实施例提供的上述增强现实设备的坐标系校准方法或装置可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c++语言在pc端实现、linux系统实现,或其他例如使用android、ios系统程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。本说明书提供的一种增强现实设备的坐标系校准系统的一个实施例中,图6是本说明书提供的一种增强现实设备的坐标系校准系统实施例的模块结构示意图,如图6所示,本说明书实施例提供的增强现实设备的坐标系校准系统可以包括处理器61以及用于存储处理器可执行指令的存储器62,
处理器61和存储器62通过总线63完成相互间的通信;
所述处理器61用于调用所述存储器62中的程序指令,以执行上述各地震数据处理方法实施例所提供的方法,例如包括:利用增强现实设备扫描预设图案,获取增强现实设备中所述预设图案的图像信息;获取所述图像信息中的参考点在所述增强设备的图像坐标系中的图像坐标信息,和所述参考点在真实坐标系中的真实坐标信息;基于所述图像坐标信息、所述真实坐标信息,确定所述真实坐标系、所述图像坐标系、所述增强现实设备的设备坐标系之间的转换关系,根据所述转换关系将所述设备坐标系进行校准。
需要说明的是说明书上述所述的装置、计算机存储介质、系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书实施例并不局限于必须是符合行业通信标准、标准计算机数据处理和数据存储规则或本说明书一个或多个实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书实施例的可选实施方案范围之内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。