发明内容
本发明的目的在克服上述现有技术存在的不足,提供一种将混合现实场景中虚拟模型与实物配准的方法,能够快速的将虚拟模型与实际物体叠加,通过在虚拟模型上附加信息,来增强混合现实体验者对现实的认知。
本发明的目的通过以下技术方案实现:
本发明提供一种将混合现实场景中虚拟模型与实物配准的方法,本方法的基本思想是:
首先利用标定点构建空间非直角坐标系,然后分别在以模型与物体上标定点构建的两个坐标系中求取姿态参数,最终获得物体姿态在混合现实设备参考系中的表示形式,实现模型与物体的姿态同步;利用坐标对应关系求物体中心点在混合现实设备参考系中的坐标,实现模型与物体的位置同步,最终实现模型与物体的配准。
本发明的具体技术方案为:
一种将混合现实场景中虚拟模型与实物配准的方法,包括如下步骤:
Q1、在虚拟模型与实际物体上,分别标定不共面的四个标定点,虚拟模型上标定点的位置与实际物体上标定点的位置一一对应;
Q2、假设虚拟模型的中心点坐标记为(0,0,0),虚拟模型上的4个标定点分别记为Am,Bm,Cm,Dm,这四个点的坐标信息都为已知,记Am的坐标信息为:(xAm,yAm,zAm),同理,记Bm,Cm,Dm的坐标信息分别为:(xBm,yBm,zBm)、(xCm,yCm,zCm)、(xDm,yDm,zDm);依次定位实际物体的4个标定点的空间坐标,分别记为(xAo,yAo,zAo)、(xBo,yBo,zBo)、(xCo,yCo,zCo)、(xDo,yDo,zDo);
Q3、虚拟模型和实际物体的姿态用up和forward向量表示,构建一个右手坐标系,该右手坐标系确定虚拟模型的上方、前方、左方的方向,表示虚拟模型的姿态,初始状态下,虚拟模型的up向量为(0,0,1),forward向量为(1,0,0),计算向量AmBm、AmCm、AmDm,由于Am,Bm,Cm,Dm四个点不共面,AmBm、AmCm、AmDm这三个向量构成一个非直角坐标系,此时存在一组且仅有一组系数a、b、c满足:a*AmBm+b*AmCm+c*AmDm=up;同理,存在一组且仅有一组系数d、e、f满足:d*AmBm+e*AmCm+f*AmDm=forward;
Q4、计算实际物体向量AoBo、AoCo、AoDo,计算a*AoBo+b*AoCo+c*AoDo=upo和d*AoBo+e*AoCo+f*AoDo=forwardo;
Q5、把虚拟模型进行旋转,使虚拟模型和实际物体姿态相同。
上述技术方案中,在所述实际物体上标定点的方式为:在实际物体上粘贴事先制好的易于识别的图像。
上述技术方案中,所述易于识别的图像不限制图像的形式。
上述技术方案中,所述易于识别的图像通过混合现实设备采集。
上述技术方案中,所述混合现实设备为微软公司生产的HoloLens混合现实眼镜。
本发明有益效果为:通过图像识别的方法获取标定点的坐标信息,不需要额外的位置传感器,方法简单易行;对实际物体的姿态没有限制,实际物体采用任意姿态,均可以实现模型与实际物体的姿态同步,可以将混合现实场景中的虚拟模型与实际物体配准叠加,增强混合现实设备使用者对现实信息的获取。
具体实施方式
下面结合附图和实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种将混合现实场景中虚拟模型与实物配准的方法,本方法的实现使用的硬件设备为一台具有图像获取功能的混合现实设备,现有技术的混合现实设备,都可以实现本方法采集图像的目的,优选的混合现实设备为微软公司生产的HoloLens混合现实眼镜。
本发明的方法,通过采集获取实际物体上标定点的坐标信息,根据实际物体上标定点的坐标信息,计算出实际物体的姿态,然后再将模型的姿态调整为相同姿态。
具体为:
在虚拟模型(以下简称模型)与实际物体(以下简称物体)上,分别标定不共面的四个点,模型与物体上的点位置上一一对应,即模型在哪个位置上有标定点,在物体的对应点上也粘贴一个标定点,假设模型的中心点坐标记为(0,0,0),模型上的4个标定点分别记为Am,Bm,Cm,Dm,那么Am,Bm,Cm,Dm四个点的坐标信息都为已知,记四个点的的坐标信息分别为(xAm,yAm,zAm)、(xBm,yBm,zBm)、(xCm,yCm,zCm)、(xDm,yDm,zDm);物体上的4个标定点分别记为Ao,Bo,Co,Do,在物体上粘贴的标定点为事先制好的易于识别的图像,选择易于识别的图像不限制图像的形式,不同图像的识别效果均相同,本发明实施例选择易于识别的图像是二维码,但并不需要识别该二维码内的信息。
本发明所述方法不针对运动中的物体,只针对不运动的物体,因此实施例采集时,要保持物体的位置和姿态不动,使用混合现实设备观察模型,利用图像识别技术获取标定点的空间坐标,需要说明的是,本发明是利用Vuforia工具实现该步骤,利用Vuforia工具可以快速识别一张图片,并把一个物体放置在该图片上,此时根据混合现实设备所使用的参考系定位物体的空间坐标,该部分是本发明实现的方式,使用其他图像识别技术或者工具同样可以完成该目的,依次定位物体的4个标定点的空间坐标,分别记为(xAo,yAo,zAo)、(xBo,yBo,zBo)、(xCo,yCo,zCo)、(xDo,yDo,zDo),此时已经获取了模型与物体上4个标定点的坐标,共8个坐标。
根据图1所示,左边是模型,右边是物体,目标是根据八个标注出的点坐标,求物体的姿态向量的upo和forwardo的坐标表示:
首先计算模型的姿态变换,使模型能够与物体保持相同姿态,模型和物体的姿态用up和forward向量表示,确定这两个向量后可以构建一个右手坐标系,该右手坐标系确定模型的上方、前方、左方的方向,可以表示模型的姿态,初始状态下,模型的up向量为(0,0,1),forward向量为(1,0,0),计算向量AmBm、AmCm、AmDm,由于Am,Bm,Cm,Dm四个点不共面,因此AmBm、AmCm、AmDm这三个向量可以构成一个非直角坐标系,此时必然存在一组系数a、b、c满足:a*AmBm+b*AmCm+c*AmDm=up;
同样的,有一组系数d、e、f满足:d*AmBm+e*AmCm+f*AmDm=forward。六个系数的计算方式按照一般的三元一次方程组求解,由于方程中涉及的向量不共面,因此方程具有唯一确定解。
同理:计算向量AoBo、AoCo、AoDo。
计算upo=a*AoBo+b*AoCo+c*AoDo和forwardo=d*AoBo+e*AoCo+f*AoDo,此时的目的在于获得的物体姿态,在取得了物体姿态后,就可以把模型进行旋转,使两者的姿态相同。
根据图2所示,左边是模型,右边是物体,此时两者的姿态已经相同,要将模型与物体的坐标统一,则需要求出O'点的坐标。由于O点的坐标是(0,0,0),因此O'的坐标就是向量OO'的坐标。由于模型已经经过旋转,因此模型上标定点的坐标发生变化,新的坐标点坐标记为(xAm',yAm',zAm')、(xBm',yBm',zBm')、(xCm',yCm',zCm')、(xDm',yDm',zDm'),分别计算向量AmAo、BmBo、CmCo、DmDo,得到向量坐标表示分别为(xO-xAm',yO-yAm',zO-zAm')、(xO-xBm',yO-yBm',zO-zBm')、(xO-xCm',yO-yCm',zO-zCm')、(xO-xDm',yO-yDm',zO-zDm'),理想状态下,这4个向量完全相同,但由于采集中不可避免的存在误差,这四个向量通常不完全相同,因此需要求4个向量的平均值,把平均值作为向量OO'的坐标表示形式,即为物体中心点的坐标。得到物体中心点坐标后,就可以把模型平移过去,此时模型与物体的位置和姿态都相同,完成物体与模型的配准。
根据上述的技术内容,下面以实际实施例予以说明本发明的技术方案。
1,在模型和实物上各标定4个标定点,此时可以获取到模型上的点的坐标,也就是Am(-1,1.6,-1.5)、Bm(0,3,-0.5)、Cm(1.3,3,1)、Dm(0,-1.6,1.5)。
2,利用识别技术,获取物体上的4个标定点的坐标,也就是Ao(6.09,5.49,11.69)、Bo(6.85,6.63,12.73)、Co(6.94,6.23,14.67)、Do(2.51,4.47,14.01)。这里的坐标假设为理想状况,即完美对应,实际应用中,该步骤获取的坐标与理想坐标会有一定的误差。
3,求向量AmBm、AmCm、AmDm,结果分别为(1,-2.1,2)、(2.3,1.4,2.5)、(1,3.2,3)。
4,解方程a*AmBm+b*AmCm+c*AmDm=up、和d*AmBm+e*AmCm+f*AmDm=forward,
可以求出abcdef的值分别为:
a=0.34,b=-0.3,c=0.35,d=-0.21,e=0.73,f=-0.46,此处计算保留两位小数,在实际计算与应用中,精度会取更高一点。
5,计算向量AoBo、AoCo、AoDo,结果分别为AoBo(0.76,1.41,1.04),AoCo(0.85,0.74,2.98),AoDo(-3.58,-1.02,2.32)。
6,计算upo=a*AoBo+b*AoCo+c*AoDo和forwardo=d*AoBo+e*AoCo+f*AoDo,得到upo=(-1.24,-0.09,0.27),forwardo=(-1.18,-0.22,3.02)。
7,根据模型与物体的姿态参数,旋转模型,旋转模型后,(xAm',yAm',zAm')、(xBm',yBm',zBm')、(xCm',yCm',zCm')、(xDm',yDm',zDm'),分别为(1.74,0.54,0.81),(2.52,1.68,1.85),(2.61,1.28,3.79),(-1.81,-0.47,3.13)。
8,计算AmAo、BmBo、CmCo、DmDo,得到4个向量的结果均为(4.35,4.95,10.88),则OO’的坐标表示也是(4.35,4.95,10.88)。这里四个向量完全相同是因为采集物体上的点时是理想的,实际情况中由于采集到的坐标不可避免存在误差,后续的计算都会有误差存在,此时得到的4个向量不完全相同,OO’的计算就需要求平均值。
9,OO’表示模型与实际物体的位移,因此把模型平移到物体位置,完成匹配。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。