CN115349140A - 基于多种特征类型的有效定位 - Google Patents
基于多种特征类型的有效定位 Download PDFInfo
- Publication number
- CN115349140A CN115349140A CN202180018922.3A CN202180018922A CN115349140A CN 115349140 A CN115349140 A CN 115349140A CN 202180018922 A CN202180018922 A CN 202180018922A CN 115349140 A CN115349140 A CN 115349140A
- Authority
- CN
- China
- Prior art keywords
- map
- pose
- images
- lines
- points
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
有效且准确地计算图像关于其它图像信息的姿态的方法。可以采用便携式设备上的相机获取图像,并且其它信息可以是地图,使得姿态的计算使设备相对于地图定位。该技术可以应用在跨现实系统中,以使设备能够有效且准确地访问先前保持的地图。关于地图进行定位可以使多个跨现实设备能够在相对于这些地图指定的位置处渲染虚拟内容,从而为系统的使用提供增强的体验。该方法可以用在其它设备中并用于其它目的,诸如用于自主车辆的导航。
Description
相关申请的交叉引用
本申请根据35U.S.C.§119(e)要求于2020年9月30日提交的代理人案卷号M1450.70054US01且题为“EFFICIENT LOCALIZATION BASED ON MULTIPLE FEATURE TYPES(基于多种特征类型的高效定位)”的序列号为63/085,994的美国临时专利申请以及于2020年3月3日提交的代理人案卷号M1450.70054US00且题为“POSE ESTIMATION USING POINTAND LINE CORRESPONDENCE(使用点和线对应的姿态估计)”的序列号为62/984,688的美国临时专利申请的权益,在此通过引用将其全部内容并入本文。
技术领域
本申请一般涉及机器视觉系统,诸如跨现实系统。
背景技术
在一些机器视觉系统中执行定位以将配备有相机以采集3D环境的图像的设备的位置与3D环境的地图中的位置相关联。由设备采集的新图像可以与地图的一部分相匹配。地图的匹配部分的新图像之间的空间变换可以指示设备相对于地图的“姿态(pose)”。
可以在创建地图时执行某种形式的定位。新图像相对于地图的现有部分的位置可以使这些新图像能够集成到地图中。新图像可用于扩展地图以表示先前未映射的3D环境部分或更新先前映射的3D环境部分的表示。
可以在各种机器视觉系统中以各种方式使用定位结果。例如,在机器人系统中,可以相对于地图的坐标来指定目标或障碍物的位置。在相对于地图定位机器人设备后,可以沿着避开障碍物的路线将机器人设备引导向目标。
发明内容
本申请的方面涉及用于提供定位的方法和装置。如在此所述的技术可以一起、单独或以任何合适的组合使用。
发明人认识到,点和线可以单独或共同用于在跨现实(XR)或机器人系统中定位。通常,产生的问题会被单独处理,并在定位或机器人系统中实现多种算法,例如针对不同数量N的对应关系(诸如最小问题(N=3)和最小二乘问题(N>3))的算法以及针对不同的配置(平面和非平面配置)的算法。发明人意识到可能需要大量努力来实现这些算法。
在一些方面,可以在XR系统中使用定位。在此类系统中,计算机可以控制人类用户界面以创建跨现实环境,其中如由用户感知的一些或全部XR环境由计算机生成。这些XR环境可以是虚拟现实(VR)、增强现实(AR)和/或混合现实(MR)环境,其中一些或全部XR环境可以由计算机生成。例如,由计算机生成的数据可以描述虚拟对象,虚拟对象可以以用户感知为物理世界的一部分以使得用户可以与虚拟对象交互的方式渲染。由于通过用户接口设备(诸如使用户能够同时看到物理世界中的虚拟内容和对象二者的头戴式显示设备)渲染该数据,用户可以体验这些虚拟对象。
为了真实地渲染虚拟内容,XR系统可以构建系统用户周围的物理世界的表示。例如,该表示可以通过处理采用可穿戴设备上的传感器获取的图像来构建,该可穿戴设备形成XR系统的一部分。物理对象和虚拟对象二者的位置可以以关于XR系统中的用户设备可以定位到的地图来表达。定位使用户设备能够渲染虚拟对象以考虑物理对象的位置。定位还使多个用户设备能够渲染虚拟内容,使得他们相应的用户在3D环境中共享该虚拟内容的相同体验。
传统的定位方法是结合地图存储从3D环境的图像中导出的特征点的集合。可以基于特征点如何易于可识别以及特征点表示持久对象(诸如房间角落或大型家具)的可能性来选择特征点以包含在地图中。定位需要从新图像中选择特征点并识别地图中的匹配特征点。识别是基于找到变换,该变换将来自新图像的特征点的集合与地图中的匹配特征点对齐。
找到合适的变换是计算密集型的并且通常通过在新图像中选择一组特征点并尝试计算将该组特征点与来自地图的多组特征点中的每一组特征点对齐的变换来执行。计算变换的尝试可以使用非线性最小二乘法,这可能需要计算用于迭代地达到变换的雅可比矩阵。可以针对地图中的多组特征点以及可能在一个或新图像中的多组特征点重复该计算,以达到为提供合适匹配所接受的变换。
可以应用减少该匹配的计算负担的一种或多种技术。例如,RANSAC是其中匹配过程分两个阶段执行的过程。在第一阶段中,新图像和地图之间的粗略变换可以基于对多个组的处理来识别,每个组具有少量特征点。粗略对齐用作计算更精细变换的起点,该更精细变换实现在多个更大组特征点之间合适的对齐。
一些方面涉及基于用相机采集的一个或多个图像来确定相机相对于地图的姿态的方法,其中姿态被表示为旋转矩阵和平移矩阵。该方法可以包括在一个或多个图像中的点和/或线的组合与地图之间建立对应关系,将对应关系变换为一组三个二阶多项式方程,针对旋转矩阵求解该组方程,以及基于旋转矩阵计算平移矩阵。
在一些实施例中,可以基于一个或多个图像的特性动态地确定点和/或线的组合。
在一些实施例中,该方法可以进一步包括通过最小化成本函数来细化姿态。
在一些实施例中,该方法可以进一步包括通过使用阻尼牛顿步来细化姿态。
在一些实施例中,将对应关系变换为一组三个二阶多项式方程包括从对应关系中导出一组约束,形成平移矩阵的封闭形式表达,以及使用3D向量来形成旋转矩阵的参数化。
在一些实施例中,将对应关系变换成一组三个二阶多项式方程进一步包括:通过秩近似来去噪。
在一些实施例中,针对旋转矩阵求解该组方程包括使用隐藏变量方法。
在一些实施例中,使用3D向量来形成旋转矩阵的参数化包括使用Cayley-Gibbs-Rodriguez(CGR)参数化。
在一些实施例中,形成平移矩阵的封闭形式表达包括:使用该组约束来形成线性方程组。
一些方面涉及一种基于用相机采集的一个或多个图像来确定相机相对于地图的姿态的方法,其中姿态被表示为旋转矩阵和平移矩阵。该方法可以包括在一个或多个图像中的点和/或线的组合与地图之间建立多个对应关系,将该对应关系表达为多个变量的超定方程组,将超定方程组格式化为元变量的最小方程组,其中,元变量中的每个元变量表示一组多个变量;基于最小方程组计算元变量的值,以及从元变量计算姿态。
在一些实施例中,可以基于一个或多个图像的特性动态地确定点和/或线的组合。
在一些实施例中,从元变量计算姿态包括:计算旋转矩阵,以及基于旋转矩阵计算平移矩阵。
在一些实施例中,基于旋转矩阵计算平移矩阵包括:从基于旋转矩阵表达多个对应关系并且关于平移矩阵是线性的方程计算平移矩阵。
在一些实施例中,计算平移矩阵包括:从对应关系中导出一组约束,形成平移矩阵的封闭形式表达,以及使用该组约束形成线性方程组。
一些方面涉及一种存储指令的非暂态计算机可读存储介质,该指令在由至少一个处理器执行时使至少一个处理器执行方法。该方法可以包括在一个或多个图像中的点和/或线的组合与地图之间建立对应关系,将对应关系变换为一组三个二阶多项式方程,针对旋转矩阵求解该组方程,以及基于旋转矩阵计算平移矩阵。
在一些实施例中,一个或多个图像中的点和/或线可以是二维特征,并且地图中的对应特征可以是三维特征。
一些方面涉及一种存储指令的非暂态计算机可读存储介质,该指令在由至少一个处理器执行时使至少一个处理器执行方法。该方法可以包括在一个或多个图像中的点和/或线的组合与地图之间建立多个对应关系,将对应关系表达为多个变量的超定方程组,将超定方程组格式化为元变量的最小方程组,其中元变量中的每个元变量表示一组多个变量,基于最小方程组计算元变量的值,以及从元变量计算姿态。
一些方面涉及一种便携式电子设备,包括:相机,其被配置为采集3D环境的一个或多个图像;以及至少一个处理器,其被配置为执行计算机可执行指令。计算机可执行指令可以包括用于基于一个或多个图像确定相机相对于地图的姿态的指令,包括:确定关于3D环境的一个或多个图像中的点和/或线的组合的信息,向定位服务发送关于一个或多个图像中的点和/或线的组合的信息,以确定相机相对于地图的姿态,以及从定位服务接收相机相对于地图的姿态,该姿态表示为旋转矩阵和平移矩阵。
在一些实施例中,在便携式电子设备上实现定位服务。
在一些实施例中,在远离便携式电子设备的服务器上实现定位服务,其中关于一个或多个图像中的点和/或线的组合的信息通过网络发送到定位服务。
在一些实施例中,确定相机相对于地图的姿态包括:在一个或多个图像中的点和/或线的组合与地图之间建立对应关系;将对应关系变换为一组三个二阶多项式方程;针对旋转矩阵求解该组方程;以及基于旋转矩阵计算平移矩阵。
在一些实施例中,基于一个或多个图像的特性动态地确定点和/或线的组合。
在一些实施例中,确定相机相对于地图的姿态进一步包括:通过最小化成本函数来细化姿态。
在一些实施例中,确定相机相对于地图的姿态进一步包括:通过使用阻尼牛顿步来细化姿态。
在一些实施例中,将对应关系变换为一组三个二阶多项式方程包括:从对应关系中导出一组约束;形成平移矩阵的封闭形式表达;以及使用3D向量来形成旋转矩阵的参数化。
在一些实施例中,将对应关系变换成一组三个二阶多项式方程进一步包括:通过秩近似来去噪。
在一些实施例中,针对旋转矩阵求解该组方程包括使用隐藏变量方法。
在一些实施例中,使用3D向量来形成旋转矩阵的参数化包括使用Cayley-Gibbs-Rodriguez(CGR)参数化。
在一些实施例中,形成平移矩阵的封闭形式表达包括:使用该组约束来形成线性方程组。
在一些实施例中,确定相机相对于地图的姿态包括:在一个或多个图像中的点和/或线的组合与地图之间建立对应关系;将对应关系表达为多个变量的超定方程组;将超定方程组格式化为元变量的最小方程组,其中元变量中的每个元变量表示一组多个变量;基于最小方程组计算元变量的值;以及从元变量计算姿态。
在一些实施例中,基于一个或多个图像的特性动态地确定点和/或线的组合。
在一些实施例中,从元变量计算姿态包括:计算旋转矩阵;以及基于旋转矩阵计算平移矩阵。
在一些实施例中,基于旋转矩阵计算平移矩阵包括:从基于旋转矩阵表达多个对应关系并且关于平移矩阵是线性的方程计算平移矩阵。
在一些实施例中,计算平移矩阵包括:从对应关系中导出一组约束;形成平移矩阵的封闭形式表达;以及使用该组约束形成线性方程组。
在一些实施例中,一个或多个图像中的点和线是二维特征;以及地图中对应的特征是三维特征。
一些方面涉及一种用于基于由相机采集的3D环境的一个或多个图像来确定相机相对于地图的姿态的方法,包括:确定关于3D环境的一个或多个图像中的点和/或线的组合的信息;向定位服务发送关于一个或多个图像中的点和/或线的组合的信息,以确定相机相对于地图的姿态;以及从定位服务接收相机相对于地图的姿态,该姿态表示为旋转矩阵和平移矩阵。
一些方面涉及一种非暂态计算机可读介质,其包括用于由至少一个处理器执行的计算机可执行指令,其中,计算机可执行指令包括用于基于由相机采集的3D环境的一个或多个图像确定相机相对于地图的姿态的指令,包括:确定关于3D环境的一个或多个图像中的点和/或线的组合的信息;向定位服务发送关于一个或多个图像中的点和/或线的组合的信息,以确定相机相对于地图的姿态;以及从定位服务接收相机相对于地图的姿态,该姿态表示为旋转矩阵和平移矩阵。
前述概述是通过说明的方式提供的并且不旨在进行限制。
附图说明
附图不旨在按比例绘制。在附图中,各个图中所示的每个相同或几乎相同的部件由相同的数字表示。为清楚起见,在每个图中不是每个部件都被标记。在附图中:
图1是示出根据一些实施例的简化增强现实(AR)场景的示例的示意图;
图2是根据一些实施例的示例性简化AR场景的示意图,示出了XR系统的示例性使用实例;
图3是示出根据一些实施例的AR系统中单个用户的数据流的示意图,AR系统被配置为向用户提供与物理世界交互的AR内容的体验;
图4是示出根据一些实施例的为单个用户显示虚拟内容的示例性AR显示系统的示意图;
图5A是示出根据一些实施例的当佩戴渲染AR内容的AR显示系统的用户在物理世界环境中移动时的用户的示意图;
图5B是示出根据一些实施例的观看光学组件和伴随部件的示意图;
图6A是示出根据一些实施例的使用世界重建系统的AR系统的示意图;
图6B是示出根据一些实施例的维护可通行世界模型的AR系统的部件的示意图;
图7是根据一些实施例的由穿过物理世界的路径的设备形成的跟踪地图的示意图;
图8是根据一些实施例的示例XR系统的示意图,其中多个设备中的任一个可以访问定位服务;
图9是根据一些实施例的用于作为提供基于云的定位的XR系统的一部分的便携式设备的操作的示例过程流程;
图10是根据一些实施例的用于在系统中进行定位的示例性过程的流程图,该系统被配置为使用具有特征类型混合的特征来计算姿态;
图11是根据一些实施例的基于点的定位可能失败的示例性环境的示意图;
图12是根据一些实施例的2D-3D点对应关系和2D-3D线对应关系的示例性示意图;
图13是示出根据一些实施例的有效定位的方法的流程图;
图14A示出根据一些实施例的不同PnPL算法的中值旋转误差;
图14B示出根据一些实施例的不同PnPL算法的中值平移误差;
图14C示出根据一些实施例的不同PnPL算法的平均旋转误差;
图14D示出根据一些实施例的不同PnPL算法的平均平移误差;
图15A是根据一些实施例的不同PnPL算法的计算时间的图;
图15B是根据一些实施例的不同PnPL算法的计算时间的图;
图16A示出,针对PnP问题,与P3P和UPnP解决方案相比,根据在此所述的一些实施例的PnPL解决方案的特定范围的误差实例的数量与对数误差的关系;
图16B示出,针对PnP问题,与P3P和UPnP解决方案相比,根据在此所述的一些实施例的PnPL解决方案的箱线图;
图16C示出,针对PnP问题,与P3P和UPnP解决方案相比,根据在此所述的一些实施例的PnPL解决方案的以弧度为单位的平均旋转误差;
图16D示出,针对PnP问题,与P3P和UPnP解决方案相比,根据在此所述的一些实施例的PnPL解决方案的以米为单位的平均位置误差;
图17A示出根据一些实施例的不同PnL算法的中值旋转误差;
图17B示出根据一些实施例的不同PnL算法的中值平移误差;
图17C示出根据一些实施例的不同PnL算法的平均旋转误差;
图17D示出根据一些实施例的不同PnL算法的平均平移误差;
图18是用于在系统中进行定位的示例性过程的替代实施例的流程图,该系统被配置为使用具有特征类型混合的特征来计算姿态;
图20A是示出根据一些实施例的与其它求解器相比的隐藏变量(HV)多项式求解器的旋转误差的箱线图;
图20B是示出根据一些实施例的与其它求解器相比的隐藏变量(HV)多项式求解器的平移误差的箱线图;
图21A是示出根据一些实施例的与其它求解器相比的旋转误差的图;
图21B是示出根据一些实施例的与其它求解器相比的平移误差的图;
图22A是根据一些实施例的先前的算法AlgP3L、RP3L和SRP3L和在此所述的算法的实施例的旋转误差图;
图22B是根据一些实施例的先前算法AlgP3L、RP3L和SRP3L和在此所述的算法的实施例的平移误差的箱线图;
图23A示出根据一些实施例的不同P3L算法之间的以度为单位的平均旋转误差的比较;
图23B示出根据一些实施例的不同P3L算法之间的以度为单位的平均平移误差的比较;
图24A是示出根据一些实施例的不同PnL算法的平均旋转误差的曲线图;
图24B是示出根据一些实施例的不同PnL算法的平均平移误差的曲线图;
图24C是示出根据一些实施例的不同PnL算法的中值旋转误差的曲线图;
图24D是示出根据一些实施例的不同PnL算法的中值平移误差的曲线图;
图25A是示出根据一些实施例的不同PnL算法的平均旋转误差的曲线图;
图25B是示出根据一些实施例的不同PnL算法的平均平移误差的曲线图;
图25C是示出根据一些实施例的不同PnL算法的中值旋转误差的曲线图;
图25D是示出根据一些实施例的不同PnL算法的中值平移误差的曲线图;
图26A是示出根据一些实施例的不同PnL算法的平均旋转误差的曲线图;
图26B是示出根据一些实施例的不同PnL算法的平均平移误差的曲线图;
图26C是示出根据一些实施例的不同PnL算法的中值旋转误差的曲线图;
图26D是示出根据一些实施例的不同PnL算法的中值平移误差的曲线图;
图27A是示出根据一些实施例的不同PnL算法的平均旋转误差的曲线图;
图27B是示出根据一些实施例的不同PnL算法的平均平移误差的曲线图;
图27C是示出根据一些实施例的不同PnL算法的中值旋转误差的曲线图;
图27D是示出根据一些实施例的不同PnL算法的中值平移误差的曲线图;
图28是根据一些实施例的真实数据的实验结果的示例图;
图29A是根据一些实施例的许多算法的计算时间图;
图29B是在此所述的算法的实施例的计算时间与涉及多项式系统的算法的计算时间相比的图;
图29C是在此所述的算法的实施例的计算时间与基于线性变换的算法的计算时间相比的图;
图30是示出根据一些实施例的有效定位的方法3000的流程图;
图31是根据一些实施例的用于解决PnL问题的示例性算法的伪代码实现方式;以及
图32是根据一些实施例的可以在本发明系统中找到应用的计算机形式的机器的框图。
具体实施方式
在此描述了用于有效且准确地计算在包含相机的设备与其它图像信息的坐标系之间的姿态的方法和装置。其它图像信息可以充当地图,使得确定姿态相对于地图来定位设备。例如,地图可以表示3D环境。包含相机的设备可以是例如XR系统、自主车辆或智能手机。相对于地图定位这些设备使设备能够执行基于位置的功能,诸如基于位置渲染内容、导航或渲染与物理世界配准的虚拟内容。
可以通过找到在从用相机获取的图像中提取的至少一组特征与地图中存储的特征之间的对应关系来计算姿态。对应关系可基于例如对应特征可能表示物理世界中的相同结构的确定。在识别图像和地图中的对应特征后,尝试确定变换,该变换以很小误差或没有误差将对应特征对齐。该变换指示在图像和由地图提供的特征的参考系之间的姿态。由于在获取图像时图像与相机的位置相关,因此计算的姿态还指示相机以及通过扩展指示包含相机的设备相对于地图的参考系的姿态。
发明人认识到并理解,无论是基于点、线还是两者的组合的特征,提供统一解决方案的算法(意味着可以使用一种算法来解决所有产生的问题)均可以显著减少软件架构设计的编码工作。此外,在此所述的实验结果示出,在准确性和运行时间二者方面,与先前的工作相比,提供统一解决方案的算法可以实现更好或相当的性能。
姿态的计算通常需要大量的计算资源,诸如处理能力,或者对于便携式设备,需要电池电力。每两个对应的特征可以提供对计算的姿态的约束。但是,考虑到噪声或其它误差,通常特征集包含足够的特征,使得存在比要计算的变换的自由度更多的约束。在该情况下寻找解决方案可涉及计算超定(over-determined)的方程组的解决方案。用于求解超定组的传统技术可以采用最小二乘法,这是一种已知的寻找解决方案的迭代方法,其提供在满足所有约束方面具有低总体平方误差的变换作为解决方案。
在许多实际设备中,因寻找姿态可能需要尝试计算多个对应的特征组之间的变换这一事实而使计算负担加重。例如,物理世界中的两个结构可能产生两组相似的特征,这两组特征看起来可能是对应的。然而,计算的变换可能具有相对较高的误差,使得这些看似对应的特征在计算姿态时会被忽略。可能会针对其它看似对应的特征组重复计算,直到以相对较低的误差计算变换。可替代地或另外地,由于图像中的特征组可能看似(尽管不正确)对应于地图中的特征组,因此除非针对多组特征计算的变换具有足够的相似性,否则可能不会接受所计算的变换为解决方案,该多组特征可能来自图像的不同部分或来自不同的图像。
如在此所述的技术可以减少计算姿态的计算负担。在一些实施例中,可以通过将超定方程组重新格式化为最小方程组来减少计算负担,这可以用比求解最小二乘问题更低的计算负担来求解。最小方程组可以用元变量来表达,每个元变量表示超定方程组中的变量集。在获得针对元变量的解决方案后,可以从元变量计算特征组之间变换的元素。变换的元素可以是例如旋转矩阵和平移向量。
例如,元变量的使用可以使得要解决的问题能够被表达为具有少量低阶多项式的组,这可以比完全最小二乘问题更有效地解决。一些或所有多项式可具有低至二的阶数。在一些实施例中,可以存在少至三个此类多项式,使得能够以相对低的计算来达到解决方案。
计算姿态中增加的准确性和/或更低的计算负担可以通过选择特征组来产生,该特征组的对应关系不太可能是错误的。用于计算姿态的图像特征通常是图像点,其代表图像的一小块区域。例如,特征点可以表示为矩形区域,矩形区域的边延伸了图像的三个或四个像素。对于一些系统,使用点作为特征可能会在许多场景中导致适当的解决方案。然而,在其它场景下,与使用点作为特征相比,使用线作为特征可能更有可能导致适当的解决方案,这可能需要更少的尝试来计算合适的变换。因此,通过使用线作为特征,总体计算负担可能更小。当线被用作特征时,如在此所述的技术可用于有效地计算姿态。
在一些系统中,有效的解决方案可以更可能来自于使用作为特征和线的组合的特征。导致有效解决方案的每种类型特征的数量或比例可能因场景而异。被配置为基于具有任意特征类型混合的对应特征组来计算姿态的系统可使得能够选择特征类型的混合,从而以减少的计算负担来从寻找解决方案的多次尝试中增加找到解决方案的可能性。当使用点和线的任意混合作为特征时,如在此所述的技术可用于有效地计算姿态。
这些技术可以单独使用或组合使用以减少计算负担和/或增加定位的准确性,从而导致许多类型的设备的更有效或更准确的操作。例如,在可包含可相对于彼此移动的多个部件的XR系统的操作期间,可能存在多个场景,其中一个部件的坐标系可能与另一个部件的坐标系相关。定义两个部件的相对姿态的此类关系可以通过定位过程来开发。在定位过程中,一个部件(例如便携式XR设备)的坐标系中表达的信息被变换为与另一个部件(例如地图)的坐标系中表达的对应信息对齐。该变换可用于将一个部件的坐标系中指定的位置与另一个部件的坐标系相关联,反之亦然。
在此所述的定位技术可用于提供XR场景。因此,XR系统提供了如何在实践中应用计算效率高的姿态计算技术的有用示例。为了向多个用户提供逼真的XR体验,XR系统必须知道用户在物理世界中的位置,以便正确地将虚拟对象的位置与真实对象相关。发明人认识到并理解在定位XR设备方面计算高效且快速的方法和装置,即使在大型和超大规模环境(例如,邻里、城市、国家、全球)中也是如此。
XR系统可以构建用户设备可以在其中操作的环境的地图。环境地图可以根据传感器收集的图像信息来创建,传感器是XR系统用户佩戴的XR设备的一部分。每个XR设备都可以通过集成来自设备操作时收集的一个或多个图像的信息来开发其物理环境的本地地图。在一些实施例中,本地地图的坐标系在设备首次开始扫描物理世界(例如开始新会话)时与设备的位置和/或取向相关联。当用户与XR系统交互时,设备的位置和/或取向可能因会话不同而是不同的,无论不同的会话是与不同的用户(每个用户有其自己的具有扫描环境的传感器的可穿戴设备)相关联,还是与在不同时间使用同一设备的同一用户相关联。
XR系统可以实现基于持久空间信息实现跨会话的持久操作的一种或多种技术。例如,该技术可以通过允许XR系统的多个用户中的任何一个用户创建、存储和取得持久空间信息为单个或多个用户提供计算效率更高和沉浸式的体验的XR场景。当由多个用户共享时,持久空间信息提供了更加沉浸式的体验,因为它使多个用户能够体验在关于物理世界的同一位置中的虚拟内容。即使由单个用户使用,持久空间信息也可以以计算有效的方式快速恢复和重置XR设备上的头部姿态。
持久空间信息可以由持久地图来表示。可以在远程存储介质(例如,云)中存储持久地图。在打开由用户佩戴的可穿戴设备后,该可穿戴设备可以从持久存储装置中取得先前创建并存储的适当地图。先前存储的地图可能是基于在先前会话期间采用用户可穿戴设备上的传感器收集的有关环境的数据的。取得存储的地图可以启用可穿戴设备的使用,而无需采用可穿戴设备上的传感器完成对物理世界的扫描。可替代地或另外地,设备在进入物理世界的新区域时,可以类似地取得适当的存储的地图。
存储的地图可以以规范形式表示,每个XR设备上的本地参考系可以与该规范形式相关。在多设备XR系统中,由一个设备访问的存储的地图可能由另一个设备创建和存储,和/或可能通过聚合由在该存储的地图所表示的物理世界的至少一部分中先前存在的多个可穿戴设备上的传感器收集的有关物理世界的数据来构建。
在一些实施例中,可以以可以在用户之间以及在分布式部件(包括应用)之间容易共享的方式来表示持久空间信息。
规范地图可以提供关于物理世界的信息,其可以被格式化为例如持久坐标系(PCF)。可以基于物理世界中识别的一组特征来定义PCF。可以选择特征,使得这些特征在XR系统的不同用户会话之间可能是相同的。PCF可能是稀疏的,提供的关于物理世界的可用信息少于所有可用信息,使得它们可以被有效地处理和传输。
用于处理持久空间信息的技术还可包括基于一个或多个设备的本地坐标系创建动态地图。这些地图可以是稀疏地图,其用特征表示物理世界,该特征诸如点或边缘或显现为在用于形成地图的图像中检测到的线的其它结构。可以通过合并由一个或多个XR设备创建的多个此类地图来形成规范地图。
可以通过定位过程来确定每个设备的规范地图和本地地图之间的关系。可以在每个XR设备上基于所选择并发送到设备的一组规范地图执行该定位过程。可替代地或另外地,可以在远程处理器上提供定位服务,诸如可能在云中实现。
例如,可以访问同一存储的地图的两个XR设备都可以相对于存储的地图进行定位。在定位后,用户设备可以通过将根据参考所存储的地图指定的位置变换为由用户设备维护的参考系来渲染具有该位置的虚拟内容。用户设备可以使用该本地参考系来控制用户设备的显示以在指定位置中渲染虚拟内容。
XR系统可以被配置为创建、共享和使用具有低计算资源使用率和/或低延迟的持久空间信息以提供更加沉浸式的用户体验。为了支持这些操作,系统可以使用空间信息的有效比较技术。例如,该比较可以作为定位的一部分出现,在该定位中来自本地设备的特征集合与规范地图中的特征集合相匹配。类似地,在地图合并中,可以尝试将来自设备的跟踪地图中的一个或多个特征集合与规范地图中的对应特征进行匹配。
如在此所述的技术可以与多种类型的设备一起使用或单独使用,并用于多种类型的场景,包括提供增强或混合现实场景的具有有限计算资源的可穿戴或便携式设备。在一些实施例中,该技术可以由形成XR系统的一部分的一个或多个服务来实现。
AR系统概述
图1和图2示出具有结合物理世界的一部分显示的虚拟内容的场景。出于说明的目的,使用AR系统作为XR系统的示例。图3-6B示出示例性AR系统,包括一个或多个处理器、存储器、传感器和用户界面,其可以根据在此所述的技术进行操作。
参考图1,描绘了室外AR场景354,其中AR技术的用户看到像物理世界公园的设置356,其特征在于背景中的人、树木、建筑物和混凝土平台358。除了这些项目之外,AR技术的用户还感知到他们“看到”了站在物理世界混凝土平台358上的机器人雕像357,以及似乎是大黄蜂的拟人化的飞行的卡通状头像角色352,然而在物理世界中不存在这些元素(例如,头像角色352和机器人雕像357)。由于人类视觉感知和神经系统的极端复杂性,所以产生有助于将虚拟图像元素舒适、自然、丰富的呈现在其它虚拟或物理世界图像元素中的AR技术是具有挑战性的。
该AR场景可以采用如下系统来实现,该系统基于跟踪信息构建物理世界的地图,使用户能够将AR内容放置在物理世界中,确定物理世界的地图中放置AR内容的位置,保留AR场景使得所放置的AR内容可以在例如不同的AR体验会话期间重新加载以在物理世界中显示,并使多个用户能够共享AR体验。该系统可以构建以及更新用户周围的物理世界表面的数字表示。该表示可用于渲染虚拟内容,使得看上去被在用户与虚拟内容的渲染位置之间的物理对象完全或部分遮挡,从而在基于物理的交互中放置虚拟对象,以及用于虚拟角色路径规划和导航,或用于使用有关物理世界的信息的其它操作。
图2描绘了根据一些实施例的另一室内AR场景400的示例,示出了XR系统的示例性使用实例。示例性场景400是客厅,其具有墙壁、墙壁一侧的书架、房间角落的落地灯、地板、沙发和地板上的咖啡桌。除了这些物理项目之外,AR技术的用户还可以感知到虚拟对象,诸如沙发后面墙上的图像(即,如402中)、飞过门口的鸟(即,如404中)、从书架上探出头来的鹿,以及放置在咖啡桌上的风车形式的装饰品(即,如406中)。
对于墙上的图像,AR技术不仅需要关于墙壁表面的信息,而且还需要关于房间中遮挡图像的对象和表面的信息,诸如灯的形状,以正确渲染虚拟对象。对于飞过的鸟,AR技术需要有关房间周围所有对象和表面的信息,从而用逼真的物理效果渲染鸟,以避让对象和表面或在鸟碰撞时弹开它们。对于鹿,AR技术需要有关诸如地板或咖啡桌的表面的信息来计算放置鹿的位置。对于风车,系统可以识别它是与桌子分离的对象并且可以确定它是可移动的,而可以确定书架的角落或墙壁的角落是静止的。该区别可以用于确定在各种操作的每一个操作中使用或更新场景的哪些部分。
可以将虚拟对象放置在先前的AR体验会话中。当在客厅开始新的AR体验会话时,AR技术要求虚拟对象准确地显示在先前放置的位置处,并且从不同的角度真实地可见。例如,风车应显示为立在书本上,而不是在没有书本的情况下在桌子上的不同位置处漂浮。如果新的AR体验会话的用户的位置在客厅中没有被准确地定位,则可能会发生此类漂浮。作为另一示例,如果用户从与放置风车时的视点不同的视点观看风车,则AR技术需要所显示的风车的对应侧面。
可以经由包括多个部件的系统向用户呈现场景,部件包括可以刺激诸如视觉、声音和/或触摸的一种或多种用户感觉的用户界面。此外,系统可以包括一个或多个传感器,该传感器可以测量场景的物理部分的参数,包括用户在场景的物理部分内的位置和/或运动。此外,系统可以包括一个或多个计算设备,以及相关联的计算机硬件,诸如存储器。这些部件可以集成到单个设备中,或可以横跨多个互连设备分布。在一些实施例中,这些部件中的一些或全部可以集成到可穿戴设备中。
图3是描绘根据一些实施例的被配置为提供与物理世界506交互的AR内容的体验的AR系统502的示意图300。AR系统502可以包括显示器508。在所示实施例中,显示器508可以由用户佩戴,作为头戴式耳机的一部分,使得用户可以将显示器戴在他们的眼睛上,像一副护目镜或眼镜一样。显示器的至少一部分可以是透明的,使得用户可以观察透视(See-through)现实510。透视现实510可以对应于在AR系统502的当前视点内的物理世界506的部分,该当前视点可对应于用户在佩戴包含AR系统的显示器和传感器二者的头戴式耳机以获取有关物理世界的信息的情况下的用户视点。
也可以在显示器508上呈现AR内容,覆盖在透视现实510上。为了在显示器508上提供AR内容和透视现实510之间的准确交互,AR系统502可以包括传感器522,该传感器522被配置为采集关于物理世界506的信息。
传感器522可以包括输出深度图512的一个或多个深度传感器。每个深度图512可以具有多个像素,每个像素可以表示在相对于深度传感器的特定方向中到物理世界506中的表面的距离。原始深度数据可能来自深度传感器以创建深度图。该深度图的更新速度可以与深度传感器可以形成新图像一样快,这可能是每秒数百或数千次。然而,该数据可能有噪声且不完整,并且在所示深度图上具有被示为黑色像素的孔。
系统可以包括其它传感器,诸如图像传感器。图像传感器可以获取单眼或立体信息,其可以被处理以按照其它方式表示物理世界。例如,可以在世界重建部件516中处理图像以创建网格,其表示物理世界中对象的连接部分。关于此类对象的元数据(包括例如颜色和表面纹理)可以类似地用传感器获取并存储为世界重建的一部分。
系统还可以获取关于用户相对于物理世界的头部姿态的信息。在一些实施例中,系统的头部姿态跟踪部件可用于实时计算头部姿态。头部姿态跟踪部件可以在具有六个自由度的坐标系中表示用户的头部姿态,包括例如在三个垂直轴中的平移(例如,前/后、上/下、左/右)和围绕三个垂直轴的旋转(例如,俯仰、偏航和滚动)。在一些实施例中,传感器522可以包括惯性测量单元,该惯性测量单元可以用于计算和/或确定头部姿态514。深度图的头部姿态514可以指示例如以六个自由度采集深度图的传感器的当前视点,头部姿态514还可以用于其它目的,诸如将图像信息与物理世界的特定部分相关或将佩戴在用户头上的显示器的位置与物理世界相关。
在一些实施例中,头部姿态信息可以以除从IMU之外的其它方式(诸如从分析用佩戴在用户头上的相机采集的图像中的对象)导出。例如,头部姿态跟踪部件可以基于由相机采集的视觉信息和由IMU采集的惯性信息计算AR设备与物理对象的相对位置和取向。然后,头部姿态跟踪部件可以通过例如将所计算的AR设备与物理对象的相对位置和取向与物理对象的特征进行比较来计算AR设备的姿态。在一些实施例中,该比较可以通过以下来进行:识别用一个或多个传感器522采集的图像中随时间推移稳定的特征,使得随时间推移采集的图像中这些特征的位置变化可以与用户的头部姿态的变化相关联。
发明人实现并理解了用于操作XR系统以用结合XR设备的低计算资源利用率提供获得更沉浸式的用户体验的XR场景的技术,诸如以1kHz的频率估计头部姿态,该XR设备可被配置有例如以30Hz操作的四个视频图形阵列(VGA)相机、以1kHz操作的一个惯性测量单元(IMU)、单个高级RISC机器(ARM)核心的计算能力、小于1GB的存储器、以及小于100Mbp的网络带宽。这些技术涉及减少生成和维护地图和估计头部姿态所需的处理,以及以低计算开销提供并消费数据。XR系统可以基于匹配的视觉特征计算其姿态。作为申请2019/0188474公开的第16/221,065号美国专利申请描述了混合跟踪,并且因此通过引用将其全部内容并入本文。
在一些实施例中,AR设备可以从特征构建地图,特征诸如是在用户在物理世界中移动时用AR设备采集的一系列图像帧中的连续图像中识别的点和/或线。虽然每个图像帧可能是从用户移动时的不同的姿态取得的,但系统可以通过将连续图像帧的特征与先前采集的图像帧匹配来调节每个连续图像帧的特征的取向以匹配初始图像帧的取向。连续图像帧的平移使得表示同一特征的点和线将匹配来自先前收集的图像帧的对应特征点和特征线,这可用于将每个连续图像帧对齐以匹配先前处理的图像帧的取向。所得的地图中的帧可具有公共取向,该公共取向是在将第一图像帧添加到地图时建立的。该地图(具有公共参考系中的一组特征点和线)可用于通过将当前图像帧中的特征与地图匹配来确定用户在物理世界中的姿态。在一些实施例中,该地图可以称为跟踪地图。
除了能够跟踪环境内的用户姿态之外,该地图还可以使系统的其它部件(诸如世界重建部件516)能够确定物理对象相对于用户的位置。世界重建部件516可以接收深度图512和头部姿态514以及来自传感器的任何其它数据,并将该数据集成到重建518中。重建518可以比传感器数据更完整且噪声更小。世界重建部件516可以使用随时间推移来自多个视点的传感器数据的空间和时间平均来更新重建518。
重建518可以包括以一种或多种数据格式(包括例如体素、网格、平面等)表示的物理世界。不同的格式可以表示物理世界的同一部分的替代表示或者可以表示物理世界的不同部分。在所示示例中,在重建518的左侧,将物理世界的部分呈现为全局表面;在重建518的右侧,将物理世界的部分呈现为网格。
在一些实施例中,由头部姿态部件514维护的地图相对于可能维护的物理世界的其它地图可能是稀疏的。稀疏地图可以指示关注位置,而不是提供关于表面的位置以及可能的其它特性的信息,该关注位置可以作为图像中的点和/或线来反映,该点和/或线源自视觉上不同的结构,诸如角或边。在一些实施例中,地图可以包括由传感器522采集的图像帧。这些帧可以简化为可表示关注位置的特征。结合每一帧,关于用户的姿态(从该用户的姿态获取该帧)的信息也可被存储为地图的一部分。在一些实施例中,由传感器获取的每个图像可以被存储或可以不被存储。在一些实施例中,系统可以在传感器收集图像时处理图像,并选择图像帧的子集用于进一步计算。该选择可以基于限制添加信息但确保地图包含有用信息的一个或多个标准。例如,基于与已经添加到地图的先前图像帧的重叠或者基于包括被确定为可能表示静止对象的足够数量的特征的图像帧,系统可以将新的图像帧添加到地图。在一些实施例中,所选的图像帧或来自所选的图像帧的特征组可以用作地图的关键帧,其用于提供空间信息。
在一些实施例中,可以减少在构建地图时处理的数据量,诸如通过构建具有映射点和关键帧的集合的稀疏地图和/或将地图划分为块以实现逐块更新。映射的点和/或线可以与环境中的关注的点和/或线相关联。关键帧可包括从相机采集的数据中选择的信息。第16/520,582号美国专利申请(作为申请2020/0034624公布)描述了确定和/或评估定位地图,并通过引用将其全部并入本文。
AR系统502可以从物理世界的多个视点随时间推移集成传感器数据。当包括传感器的设备移动时,可以跟踪该传感器的姿态(例如,位置和取向)。由于已知传感器的帧姿态以及它与其它姿态如何相关,物理世界的这些多个视点中的每一个视点可以融合在一起,形成单个组合的物理世界的重建,其可以用作地图的抽象层并提供空间信息。通过使用空间和时间平均(即,平均随时间推移来自多个视点的数据)或任何其它合适的方法,重建可能比原始传感器数据更完整且噪声更小。
在图3中所示的实施例中,地图表示存在单个可穿戴设备的用户的物理世界的部分。在该场景中,与地图中的帧相关联的头部姿态可被表示为本地头部姿态,指示相对于在会话开始时单个设备的初始取向的取向。例如,当设备打开或以其它方式操作以扫描环境来构建该环境的表示时,可以相对于初始头部姿态跟踪头部姿态。
地图可以包括元数据,结合表征物理世界的该部分的内容。例如,元数据可以指示用于形成地图的传感器信息的采集时间。可替代地或另外地,元数据可以指示传感器在采集用于形成地图的信息时的位置。可以直接表达或间接表达位置,直接表达诸如采用来自GPS芯片的信息,间接表达诸如采用指示在收集传感器数据时从一个或多个无线接入点接收到的信号强度的无线(例如Wi-Fi)签名和/或采用在收集传感器数据时用户设备连接到的无线接入点的标识符(诸如BSSID)。
重建518可用于AR功能,诸如产生物理世界的表面表示,以用于遮挡处理或基于物理的处理。该表面表示可能随着用户移动或物理世界中的对象发生变化而变化。例如可以由部件520使用重建518的各方面,部件520在世界坐标中产生变化的全局表面表示,该变化的全局表面表示可以由其它部件使用。
可以基于该信息生成AR内容,诸如由AR应用504生成。AR应用504可以是例如游戏程序,其基于关于物理世界的信息执行一个或多个功能,诸如视觉遮挡、基于物理的交互和环境推理。AR应用504可以通过从由世界重建部件516产生的重建518中查询不同格式的数据来执行这些功能。在一些实施例中,部件520可以被配置为当物理世界的关注区域中的表示改变时输出更新。例如,该关注区域可被设定为近似于系统用户附近的物理世界的一部分(诸如用户视野内的部分),或者被投影(预测/确定)到进入用户的视野。
AR应用504可以使用该信息来生成和更新AR内容。AR内容的虚拟部分可以结合透视现实510呈现在显示器508上,从而创建逼真的用户体验。
在一些实施例中,可以通过XR设备向用户提供AR体验,该XR设备可以是可穿戴显示设备,该可穿戴显示设备可以是可以包括远程处理和/或远程数据存储的系统的一部分,和/或在一些实施例中,是其他用户佩戴的其它可穿戴显示设备。为了简化说明,图4示出包括单个可穿戴设备的系统580(以下称为“系统580”)的示例。系统580包括头戴式显示设备562(以下称为“显示设备562”),以及支持显示设备562的功能的各种机械和电子模块和系统。显示设备562可以耦合到框架564,该框架564可由显示系统用户或观看者560(以下称为“用户560”)佩戴并且被配置为将显示设备562定位在用户560的眼睛前面。根据各种实施例,显示设备562可能是顺序显示器。显示设备562可以是单目或双目的。在一些实施例中,显示设备562可以是图3中的显示器508的示例。
在一些实施例中,扬声器566耦合到框架564并且定位在用户560的耳道附近。在一些实施例中,另一个扬声器(未示出)定位在用户560的另一个耳道附近以提供立体声/可塑形声音控制。显示设备562诸如通过有线引线或无线连接568可操作地耦合到本地数据处理模块570,该本地数据处理模块570可以以多种配置安装,诸如固定地附接到框架564、固定地附接到用户560佩戴的头盔或帽子、嵌入头戴式耳机中或以其它方式可移除地附接到用户560(例如,在背包式配置中、在皮带耦合式配置中)。
本地数据处理模块570可以包括处理器以及数字存储器(诸如非易失性存储器(例如,闪存)),这两者都可以用于帮助数据的处理、缓存和存储。数据包括:a)从传感器采集的数据,传感器可以例如可操作地耦合到框架564或以其它方式附接到用户560,诸如图像采集设备(诸如相机)、麦克风、惯性测量单元、加速度计、指南针、GPS单元、无线电设备和/或陀螺仪;和/或b)使用远程处理模块572和/或远程数据存储库574获取和/或处理的数据,可能用于在该处理或取得之后传送到显示设备562。
在一些实施例中,可穿戴设备可以与远程部件通信。本地数据处理模块570可以由通信链路576、578诸如经由有线或无线通信链路分别可操作地耦合到远程处理模块572和远程数据存储库574,使得这些远程模块572、574可操作地彼此耦合并且可用作本地数据处理模块570的资源。在进一步的实施例中,作为远程数据存储库574的补充或替代,可穿戴设备可以访问基于云的远程数据存储库和/或服务。在一些实施例中,可以在本地数据处理模块570中至少部分地实现上述头部姿态跟踪部件。在一些实施例中,可以在本地数据处理模块570中至少部分地实现图3中的世界重建部件516。例如,本地数据处理模块570可以被配置为执行计算机可执行指令以至少部分地基于数据的至少一部分来生成地图和/或物理世界表示。
在一些实施例中,处理可以横跨本地和远程处理器分布。例如,本地处理可用于基于用户设备上的传感器收集的传感器数据在用户设备上构建地图(例如跟踪地图)。可由该用户设备上的应用使用该地图。此外,可以在远程数据存储库574中存储先前创建的地图(例如,规范地图)。在合适的存储或持久地图可用的情况下,可以使用它来代替或补充在设备上本地创建的跟踪地图。在一些实施例中,可以将跟踪地图定位到存储的地图,使得在跟踪地图和规范地图之间建立对应关系,该跟踪地图可能在用户打开系统时相对于可穿戴设备的位置取向,该规范地图可以相对于一个或多个持久特征取向。在一些实施例中,可以在用户设备上加载持久地图以允许用户设备渲染虚拟内容而没有与扫描位置相关联的延迟,以从扫描期间获取的传感器数据构建用户完整环境的跟踪地图。在一些实施例中,用户设备可以访问远程持久地图(例如,存储在云上)而无需在用户设备上下载持久地图。
在一些实施例中,空间信息可以从可穿戴设备传送到远程服务,诸如云服务,其被配置为将设备定位到在云服务上维护的存储地图。根据一个实施例,定位处理可以在云中进行以将设备位置与现有地图(诸如规范地图)相匹配,并返回将虚拟内容链接到可穿戴设备位置的变换。在该实施例中,系统可以避免将地图从远程资源传送到可穿戴设备。其它实施例可以被配置用于基于设备的定位和基于云的定位两者,例如,以在网络连接不可用或用户选择不启用基于云的定位时启用功能。
可替代地或另外地,跟踪地图可以与先前存储的地图合并以扩展或改进这些地图的质量。可以在本地数据处理模块570或远程处理模块572中完成确定合适的先前创建的环境地图是否可用和/或将跟踪地图与一个或多个存储的环境地图合并的处理。
在一些实施例中,本地数据处理模块570可以包括一个或多个处理器(例如,图形处理单元(GPU)),该处理器被配置为分析和处理数据和/或图像信息。在一些实施例中,本地数据处理模块570可以包括单个处理器(例如,单核或多核ARM处理器),其将限制本地数据处理模块570的计算预算但能够实现更微型的设备。在一些实施例中,世界重建部件516可以使用小于单个高级RISC机器(ARM)核心的计算预算来在非预定义空间上实时生成物理世界表示,使得可访问单个ARM核心的剩余计算预算用于其它用途,诸如例如提取网格。
在一些实施例中,远程数据存储库574可以包括数字数据存储设施,其可以通过互联网或“云”资源配置中的其它网络配置获得。在一些实施例中,在本地数据处理模块570中存储所有数据并且执行所有计算,从而允许从远程模块完全自主地使用。在一些实施例中,在远程数据存储库574中存储所有数据并且执行所有或大部分计算,从而允许更小的设备。例如,世界重建可以全部或部分地存储在该存储库574中。
在远程存储数据并且可通过网络访问数据的实施例中,可以由增强现实系统的多个用户共享数据。例如,用户设备可以上传他们的跟踪地图以增强环境地图数据库。在一些实施例中,在与可穿戴设备的用户会话结束时发生跟踪地图上传。在一些实施例中,跟踪地图上传可以连续地、半连续地、间歇地、在预定义的时间、在从前一次上传的预定义的时间段之后或者在由事件触发时发生。由任何用户设备上传的跟踪地图可用于扩展或改进先前存储的地图,无论该先前存储的地图是基于来自该用户设备还是任何其他用户设备的数据。同样,下载到用户设备的持久地图可以基于来自该用户设备或任何其他用户设备的数据。以该方式,用户可以轻松获得高质量的环境地图,以改善他们对AR系统的体验。
在进一步的实施例中,可以基于对远程资源(例如,在云中)执行的定位来限制和/或避免持久地图下载。在该配置中,可穿戴设备或其它XR设备向云服务传送与姿态信息耦合的特征信息(例如,在感测到特征信息中表示的特征时设备的定位信息)。云服务的一个或多个部件可以将特征信息与相应存储的地图(例如,规范地图)相匹配,并生成在由XR设备维护的跟踪地图和规范地图的坐标系之间的变换。每个XR设备(其具有相对于规范地图进行定位的该XR设备的跟踪地图)可以基于其自己的跟踪在相对于规范地图指定的位置中准确地渲染虚拟内容。
在一些实施例中,本地数据处理模块570可操作地耦合到电池582。在一些实施例中,电池582是可移除的电源,诸如counter电池。在其它实施例中,电池582是锂离子电池。在一些实施例中,电池582包括可充电的内部锂离子电池(其在系统580的非操作时间期间可由用户560充电)和可移除电池两者,使得用户560可以操作系统580更长的时间段而不必连接到电源为锂离子电池充电或关闭系统580以更换电池。
图5A示出当在物理世界环境532(以下称为“环境532”)中移动时的佩戴渲染AR内容的AR显示系统的用户530。由AR系统沿用户的移动路径采集的信息可以被处理成一个或多个跟踪地图。用户530在位置534处定位AR显示系统,并且AR显示系统记录相对于位置534的可通行世界的环境信息(例如,物理世界中的真实对象的数字表示,其可被存储并随着物理世界中真实对象的变化而更新)。可结合图像、特征、定向音频输入或其它所需数据组合将该信息存储为姿态。位置534被聚合到数据输入536,例如作为跟踪地图的一部分,并且至少由可通行世界模块538处理,可通行世界模块538可以例如通过在图4的远程处理模块572上的处理来实现。在一些实施例中,可通行世界模块538可以包括头部姿态部件514和世界重建部件516,使得处理的信息可以结合关于用于渲染虚拟内容的物理对象的其它信息来指示物理世界中对象的位置。
可通行世界模块538至少部分地确定AR内容540可以被放置在物理世界中的位置和方式,如根据数据输入536所确定的。通过经由用户界面呈现AR内容和物理世界的表示二者将AR内容“放置”在物理世界中,其中AR内容被渲染为如同其与物理世界中的对象交互,而物理世界中的对象被渲染为如同AR内容在适当的时候遮挡用户对这些对象的视图。在一些实施例中,可以通过从重建(例如,重建518)中适当地选择固定元素542(例如,桌子)的部分来放置AR内容,以确定AR内容540的形状和位置。作为示例,固定元素可以是桌子,并且虚拟内容可以被定位为看起来虚拟内容在该桌子上。在一些实施例中,可以在视野544中的结构内放置AR内容,该视野544可以是当前视野或估计的未来视野。在一些实施例中,AR内容可以是相对于物理世界的模型546(例如网格)持久化的。
如所描绘的,固定元素542用作物理世界内的任何固定元素的代理(例如,数字副本),其可以存储在可通行世界模块538中,使得用户530可以感知固定元素542上的内容,而系统不必在用户530每次看到它时映射到固定元素542。因此,固定元素542可以是来自先前建模会话的网格模型或由单独的用户确定但仍然由可通行世界模块538存储以供多个用户将来参考。因此,可通行世界模块538可以从先前映射的环境中识别环境532并显示AR内容,而无需用户530的设备首先映射环境532的全部或部分,从而节省计算过程和周期并避免任何渲染的AR内容的延迟。
可以由AR显示系统创建物理世界的网格模型546,并且可以由可通行世界模块538存储用于交互和显示AR内容540的适当表面和度量,以供用户530或其他用户将来取得,而无需完全或部分地重新创建模型。在一些实施例中,数据输入536是诸如地理定位、用户标识和当前活动的输入,以向可通行世界模块538指示一个或多个固定元素中的哪个固定元素542可用,哪个AR内容540最后放置在固定元素542上,以及是否显示该同一内容(该AR内容是“持久”内容,而不管用户是否观看特定的可通行世界模型)。
即使在认为对象是固定的(例如厨房桌子)的实施例中,可通行世界模块538也可以不时更新物理世界模型中的这些对象,以考虑到在物理世界中的变化的可能性。固定对象的模型可能以非常低的频率更新。物理世界中的其它对象可能在移动或以其它方式不被视为固定的(例如厨房椅子)。为了渲染具有逼真感觉的AR场景,AR系统可以以比用于更新固定对象的频率高得多的频率更新这些非固定对象的位置。为了能够准确跟踪物理世界中的所有对象,AR系统可以从多个传感器(包括一个或多个图像传感器)中获取信息。
图5B是观看光学组件548和伴随部件的示意图。在一些实施例中,直接朝向用户眼睛549的两个眼睛跟踪相机550检测用户眼睛549的度量,诸如用户眼睛549的眼睛形状、眼睑闭合、瞳孔方向和眼神发光。
在一些实施例中,传感器之一可以是深度传感器551,诸如飞行时间传感器,向世界发射信号并检测来自附近对象的这些信号的反射以确定到给定对象的距离。例如,深度传感器可以快速确定对象是否由于这些对象的运动或用户姿态的变化而进入了用户的视野。然而,可替代地或另外地由其它传感器收集关于对象在用户视野中的位置的信息。例如,可以从立体视觉图像传感器或全光传感器获得深度信息。
在一些实施例中,世界相机552记录大于外围的视图以映射和/或以其它方式创建环境532的模型并检测可影响AR内容的输入。在一些实施例中,世界相机552和/或相机553可以是灰度和/或彩色图像传感器,其可以以固定时间间隔输出灰度和/或彩色图像帧。相机553可进一步在特定时间采集用户视野内的物理世界图像。可以重复采样基于帧的图像传感器的像素,即使像素的值没有改变。世界相机552、相机553和深度传感器551中的每一个具有相应的视野554、555和556以从物理世界场景收集数据并记录物理世界场景,诸如图34A中描绘的物理世界环境532。
惯性测量单元557可以确定观看光学组件548的取向和运动。在一些实施例中,惯性测量单元557可以提供指示重力方向的输出。在一些实施例中,每个部件可操作地耦合到至少一个其它部件。例如,深度传感器551可操作地耦合到眼睛跟踪相机550,作为对用户眼睛549所注视的实际距离的测量调节的确认。
可理解,观看光学组件548可以包括图34B中所示的一些部件,并且可以包括代替所示部件或对所示部件额外添加的部件。在一些实施例中,例如,观看光学组件548可以包括两个世界相机552而不是四个。可替代地或另外地,相机552和553不需要采集它们的全视野的可见光图像。观看光学组件548可以包括其它类型的部件。在一些实施例中,观看光学组件548可以包括一个或多个动态视觉传感器(DVS),其像素可以异步响应超过阈值的光强度的相对变化。
在一些实施例中,观看光学组件548可不包括基于飞行时间信息的深度传感器551。在一些实施例中,例如,观看光学组件548可以包括一个或多个全光相机,其像素可以采集入射光的角度和光强度,从中可以确定深度信息。例如,全光相机可以包括覆盖有透射衍射掩模(TDM)的图像传感器。
可替代地或另外地,全光相机可以包括图像传感器,该图像传感器包含角度敏感像素和/或相位检测自动聚焦像素(PDAF)和/或微透镜阵列(MLA)。代替深度传感器551或除了深度传感器551之外,该传感器可以用作深度信息源。
还可理解,图5B中的部件的配置是作为示例提供的。观看光学组件548可包括具有任何合适配置的部件,其可被设定为向用户提供对于一组特定的部件实用的最大视野。例如,如果观看光学组件548具有一个世界相机552,则世界相机可以放置在观看光学组件的中心区域而不是侧面。
来自观看光学组件548中的传感器的信息可以耦合到系统中的一个或多个处理器。处理器可以生成数据,该数据可被渲染的以使用户感知与物理世界中的对象交互的虚拟内容。可以以任何合适的方式实现该渲染,包括生成描绘物理和虚拟对象二者的图像数据。在其它实施例中,可以通过调制用户在物理世界中观看的显示设备的不透明度在一个场景中描绘物理和虚拟内容。可以控制不透明度以创建虚拟对象的外观并且还阻止用户看到物理世界中被虚拟对象遮挡的对象。在一些实施例中,图像数据可以仅包括可以被修改的虚拟内容,使得在通过用户界面观看时用户感知虚拟内容为与物理世界真实地交互(例如,剪辑内容以考虑遮挡)。
为了在特定位置处创建对象的印象而在观看光学组件548上显示内容的位置可以取决于观看光学组件的物理特性。此外,相对于物理世界的用户头部的姿态和用户眼睛注视的方向可影响在物理世界中在特定位置处显示的内容将在观看光学组件内容上出现的位置。如上所述的传感器可以收集该信息,和/或提供可以从中计算该信息的信息,使得接收传感器输入的处理器可以计算应该在观看光学组件548上的何处渲染对象,以创建用户所需的外观。
无论内容如何呈现给用户,都可以使用物理世界的模型,使得可正确计算虚拟对象的可受物理对象影响的特性(包括虚拟对象的形状、位置、运动和可见性)。在一些实施例中,模型可以包括物理世界的重建,例如重建518。
可以根据从用户的可穿戴设备上的传感器收集的数据创建该模型。然而,在一些实施例中,可以从多个用户收集的数据创建模型,该数据可以在远离所有用户的计算设备中聚合(并且其可以是在“云中”的)。
模型可以至少部分地由世界重建系统创建,诸如例如图6A中更详细描绘的图3的世界重建部件516。世界重建部件516可以包括感知模块660,该感知模块660可以生成、更新和存储物理世界的一部分的表示。在一些实施例中,感知模块660可以将传感器的重建范围内的物理世界的部分表示为多个体素。每个体素可以对应于物理世界中预定体积的3D立方体,并且包括表面信息,指示体素所表示的体积中是否存在表面。可以向体素分配值,指示体素的对应体积是否被确定为包括物理对象的表面、被确定为空的或尚未用传感器测量并且因此它们的值是未知的。可理解,因为可以在计算机存储器中以任何合适的方式存储体素的值,包括不存储被确定为空的或未知的体素的信息,所以指示被确定为空或未知的体素的值不需要被显式存储。
除了生成持久世界表示的信息之外,感知模块660可以识别并输出AR系统的用户周围区域中的变化的指示。该变化的指示可以触发对作为持久世界的一部分存储的体积数据的更新,或触发其它功能,诸如触发生成AR内容的部件604以更新AR内容。
在一些实施例中,感知模块660可以基于标记的距离函数(Signed distancefunction SDF)模型来识别变化。感知模块660可以被配置为接收传感器数据,诸如例如深度图660a和头部姿态660b,并且然后将传感器数据融合到SDF模型660c中。深度图660a可以直接提供SDF信息,并且可以处理图像以获得SDF信息。SDF信息表示距用于采集该信息的传感器的距离。由于这些传感器可能是可穿戴单元的一部分,因此SDF信息可以表示从可穿戴单元的角度来看并且因此从用户的角度来看的物理世界。头部姿态660b可以使SDF信息能够与物理世界中的体素相关。
在一些实施例中,感知模块660可以生成、更新和存储针对在感知范围内的物理世界的部分的表示。感知范围可以至少部分地基于传感器的重建范围来确定,该重建范围可以至少部分地基于传感器的观察范围的限制来确定。作为具体示例,使用有源IR脉冲操作的有源深度传感器可以在一定距离范围内可靠地操作,从而创建传感器的观察范围,该观察范围可以从几厘米或几十厘米到几米。
世界重建部件516可以包括可以与感知模块660交互的附加模块。在一些实施例中,持久世界模块662可以基于由感知模块660获取的数据接收物理世界的表示。持久世界模块662还可以包括物理世界的各种格式的表示。例如,该模块可以包括体积信息662a。例如,可以存储诸如体素的体积元数据662b,以及网格662c和平面662d。在一些实施例中,可以保存其它信息,诸如深度图。
在一些实施例中,物理世界的表示(诸如图6A中所示的那些表示)与稀疏地图(诸如基于如上所述的特征点和/或线的跟踪地图)相比,可以提供关于物理世界的相对密集的信息。
在一些实施例中,感知模块660可以包括生成物理世界的各种格式(包括例如网格660d、平面和语义660e)的表示的模块。物理世界的表示可以存储在本地和远程存储介质上。取决于例如存储介质的位置,可以在不同的坐标系中描述物理世界的表示。例如,可以在设备本地的坐标系中描述存储在设备中的物理世界的表示。物理世界的表示可具有存储在云中的对应物。可以在XR系统中所有设备共享的坐标系中描述云中的对应物。
在一些实施例中,这些模块可以基于在生成表示时一个或多个传感器的感知范围内的数据以及在先前时间采集的数据和持久世界模块662中的信息来生成表示。在一些实施例中,这些部件可以对采用深度传感器采集的深度信息进行操作。然而,AR系统可以包括视觉传感器,并且可以通过分析单目或双目视觉信息来生成此类表示。
在一些实施例中,这些模块可以在物理世界的区域上操作。当感知模块660检测到物理世界的子区域中的变化时,可以触发这些模块以更新物理世界的该子区域。例如,可以通过检测SDF模型660c中的新表面或其它标准(诸如改变表示子区域的足够数量的体素的值)来检测该变化。
世界重建部件516可以包括可以从感知模块660接收物理世界的表示的部件664。部件664可以包括视觉遮挡664a、基于物理的交互664b和/或环境推理664c。这些部件可以根据例如来自应用的使用请求来提取关于物理世界的信息。在一些实施例中,诸如经由预先识别区域的变化或感知范围内的物理世界表示的变化的指示,可以将信息推送到使用部件。部件664可以包括例如游戏程序和执行视觉遮挡、基于物理的交互和环境推理的处理的其它部件。
响应于来自部件664的查询,感知模块660可以以一种或多种格式发送物理世界的表示。例如,当部件664指示使用是用于视觉遮挡或基于物理的交互时,感知模块660可以发送表面的表示。当部件664指示使用是用于环境推理时,感知模块660可以发送物理世界的网格、平面和语义。
在一些实施例中,感知模块660可以包括格式化信息的部件,以提供部件664。该部件的示例可以是光线投射(raycasting)部件660f。例如,使用部件(例如,部件664)可以从特定视点查询关于物理世界的信息。光线投射部件660f可从该视点的视野内的物理世界数据的一个或多个表示中进行选择。
在一些实施例中,可通行世界模型的部件可以是分布式的,其中一些部分在XR设备上本地执行,并且一些部分诸如在网络连接的服务器上或以其它方式在云中远程执行。本地XR设备和云之间的信息的存储和处理的分配可影响XR系统的功能和用户体验。例如,通过将处理分配给云来减少本地设备上的处理可以实现更长的电池寿命并减少本地设备产生的热量。但是,将过多的处理分配给云可能产生非期望的延迟,从而导致不可接受的用户体验。
图6B描绘了根据一些实施例的被配置用于空间计算的分布式部件架构600。分布式部件架构600可以包括可通行世界部件602(例如,图5A中的PW 538)、Lumin OS 604、API606、SDK 608和应用610。Lumin OS604可以包括具有与XR设备兼容的定制驱动器的基于Linux的内核。API606可以包括应用编程接口,该应用编程接口授权XR应用(例如,应用610)访问XR设备的空间计算特征。SDK 608可以包括允许创建XR应用的软件开发工具包。
架构600中的一个或多个部件可以创建和维护可通行世界的模型。在该示例中,在本地设备上收集传感器数据。该传感器数据的处理可以部分地在XR设备上本地执行并且部分地在云中执行。PW 538可以包括至少部分地基于由多个用户佩戴的AR设备采集的数据创建的环境地图。在AR体验的会话期间,各个AR设备(诸如上面结合图4描述的可穿戴设备)可以创建跟踪地图,这是一种类型的地图。
在一些实施例中,该设备可以包括构建稀疏地图和密集地图两者的部件。跟踪地图可以用作稀疏地图。密集地图可以包括可以由网格或深度信息表示的表面信息。可替代地或另外地,密集地图可以包括从表面或深度信息导出的更高级别的信息,诸如平面和/或其它对象的位置和/或特性。
稀疏地图和/或密集地图可以被持久化以供同一设备重复使用和/或与其它设备共享。该持久性可以通过将信息存储在云中来实现。AR设备可以将跟踪地图发送到云,以例如与从先前存储在云中的持久地图中选择的环境地图合并。在一些实施例中,可以将选择的持久地图从云发送到AR设备以进行合并。在一些实施例中,持久地图可以关于一个或多个持久坐标系取向。此类地图可以用作规范地图,因为它们可以被多个设备中的任何一个设备使用。在一些实施例中,可通行世界的模型可以包括一个或多个规范地图或从一个或多个规范地图中创建。即使设备基于设备本地的坐标系执行一些操作,设备也可以通过确定它们的设备本地的坐标系和规范地图之间的变换来使用规范地图。
规范地图可以源自跟踪地图(TM)。例如,跟踪地图可以被持久化,使得跟踪地图的参考系变成持久化坐标系。此后,访问规范地图的设备在确定了设备的本地坐标系和规范地图的坐标系之间的变换后可以使用规范地图中的信息来确定设备周围的物理世界中规范地图中表示的对象的位置。
因此,规范地图、跟踪地图或其它地图可以具有相似的格式,例如在何处使用或存储它们方面不同。图7描绘了根据一些实施例的示例性跟踪地图700。在该示例中,跟踪地图将关注的特征表示为点。在其它实施例中,可以使用线来代替点或者除了点之外还使用线。跟踪地图700可以提供由点702表示的对应物理世界中的物理对象的平面图706。在一些实施例中,地图点702可以表示可以包括多个特征的物理对象的特征。例如,桌子的每个角可能是由地图上的点表示的特征。可以通过处理图像来导出特征,诸如可以使用增强现实系统中的可穿戴设备的传感器来获取图像。例如,可以通过处理由传感器输出的图像帧以基于图像中的大梯度或其它合适的标准来识别特征来导出特征。进一步处理可限制每帧中的特征的数量。例如,处理可以选择可能表示持久对象的特征。可针对该选择应用一种或多种启发法。
跟踪地图700可以包括关于由设备收集的点702的数据。对于具有添加到跟踪地图的数据点的每个图像帧,可以存储姿态。姿态可以表示取向(从该取向采集图像帧),使得每个图像帧内的特征点可以在空间上与跟踪地图相关。可以通过定位信息来确定姿态,诸如可以从可穿戴设备上的传感器(诸如IMU传感器)导出。可替代地或另外地,可以通过将图像帧中的特征的子集与跟踪地图中已经存在的特征进行匹配来确定姿态。可以计算特征的匹配子集之间的变换,其指示图像帧和跟踪地图之间的相对姿态。
并非由设备收集的所有特征点和图像帧都可以保留为跟踪地图的一部分,因为用传感器收集的许多信息很可能是冗余的。在一些实施例中,可以处理来自图像帧的特征的相对较小的子集。这些特征可能是独特的,诸如可能由锐角或边产生。此外,可以仅将来自某些帧的特征添加到地图。可以基于一个或多个标准来选择这些帧,诸如与地图中存在的图像帧的重叠程度、这些帧包括的新特征的数量或帧中特征的质量度量。可将未添加到跟踪地图的图像帧丢弃或其可用于修改特征的位置。作为进一步的替代,可以保留来自多个图像帧的表示为一组特征的数据,但是可以将仅来自这些帧的子集的特征指定为关键帧,其用于进一步处理。
可以处理关键帧以产生关键工具(keyrig)704。可以处理关键帧以产生特征点的三维组并保存为关键工具704。该处理可能需要例如比较从两个相机同时导出的图像帧以立体地确定特征点的3D位置。元数据可以与这些关键帧和/或关键工具(诸如姿态)相关联。关键工具随后可以在基于从设备新获取的图像将设备定位到地图时使用。
环境地图可以具有多种格式中的任何一种,这取决于例如环境地图的存储位置,存储位置包括例如AR设备的本地存储和远程存储。例如,远程存储中的地图可能比在存储器有限的可穿戴设备上的本地存储中的地图具有更高的分辨率。为了将更高分辨率的地图从远程存储发送到本地存储,可以对地图进行下采样或以其它方式转换为适当的格式,诸如通过降低存储在地图中的物理世界的每区域的姿态的数量和/或针对每个姿态存储的特征点的数量。在一些实施例中,可以向本地存储发送来自远程存储的高分辨率地图的切片或部分,其中切片或部分未被下采样。
可以随着创建新的跟踪地图而更新环境地图的数据库。为了确定要更新数据库中可能非常大量的环境地图中的哪一个,更新可以包括有效地选择数据库中存储的与新的跟踪地图相关的一个或多个环境地图。所选的一个或多个环境地图可以通过相关性进行排序,并且可以选择最高等级的地图中的一个或多个用于处理以将更高等级的所选环境地图与新的跟踪地图合并以创建一个或多个更新的环境地图。当新的跟踪地图表示物理世界的一部分(该部分没有要更新的预先存在的环境地图)时,可以在数据库中存储该跟踪地图作为新的环境地图。
远程定位
各种实施例可以利用远程资源来促进个人和/或用户组之间的持久和一致的跨现实体验。可以在不下载一组规范地图的情况下实现具有如在此描述的规范地图的XR设备的操作的益处。例如,可以通过将特征和姿态信息发送到维护一组规范地图的远程服务来实现该益处。寻求使用规范地图将虚拟内容定位在相对于规范地图指定的位置中的设备可以从远程服务接收在特征和规范地图之间的一个或多个变换。可以在设备上使用这些变换(该设备维护有关这些特征在物理世界中的位置的信息),以将虚拟内容定位在相对于一个或多个规范地图指定的位置中,或者以其它方式识别物理世界中相对于规范地图指定的位置。
在一些实施例中,空间信息由XR设备采集并传送到远程服务(诸如基于云的服务),远程服务使用空间信息将XR设备定位到应用或XR系统的其它部件使用的规范地图,以指定虚拟内容相对于物理世界的位置。在定位后,将由设备维护的跟踪地图链接到规范地图的变换可被传送到设备。
在一些实施例中,相机和/或包括相机的便携式电子设备可以被配置为采集和/或确定关于特征(例如,点和/或线的组合)的信息并将信息发送到远程服务,诸如基于云的设备。远程服务可以使用该信息来确定相机的姿态。例如,可以使用在此所述的方法和技术来确定相机的姿态。在一些示例中,姿态可以包括旋转矩阵和/或平移矩阵。在一些示例中,相机的姿态可以相对于在此所述的任何地图来表示。
变换可以与跟踪地图结合使用,以确定渲染相对于规范地图指定的虚拟内容的位置,或者以其它方式识别物理世界中相对于规范地图指定的位置。
在一些实施例中,从定位服务返回到设备的结果可以是将上传的特征与匹配的规范地图的部分相关的一个或多个变换。这些变换可以在XR设备中结合其跟踪地图使用,用于识别虚拟内容的位置或以其它方式识别物理世界中的位置。在持久空间信息(诸如在此所述的PCF)用于指定相对于规范地图的位置的实施例中,定位服务可以在成功定位之后将特征与一个或多个PCF之间的变换下载到设备。
在一些实施例中,定位服务可以进一步向设备返回相机的姿态。在一些实施例中,从定位服务返回到设备的结果可以将相机的姿态与规范地图相关。
结果,XR设备和远程服务之间用于执行定位的通信所消费的网络带宽可能是低的。系统因此可以支持频繁定位,使与系统交互的每个设备能够快速获得用于定位虚拟内容或执行其它基于位置的功能的信息。当设备在物理环境中移动时,设备可能重复请求更新的定位信息。此外,设备可能频繁地获得对定位信息的更新,诸如当规范地图发生变化时,诸如通过合并附加的跟踪地图以扩展地图或提高其准确性。
图8是XR系统6100的示意图。在用户会话期间显示跨现实内容的用户设备可以有多种形式。例如,用户设备可以是可穿戴XR设备(例如,6102)或手持移动设备(例如,6104)。如上所述,这些设备可以配置有软件(诸如应用或其它部件)和/或硬连线以生成本地位置信息(例如,跟踪地图),本地位置信息可用于在其相应的显示器上渲染虚拟内容。
可以相对于全局位置信息指定虚拟内容定位信息,例如,可以将全局位置信息格式化为包含一个或多个持久坐标系(PCF)的规范地图。PCF可以是地图中的特征集合,其可以在相对于该地图进行定位时使用。例如,可以基于将特征集识别为易于识别并且可能跨多个用户会话持久存在的处理来选择PCF。根据一些实施例,例如图8中所示的实施例,系统6100配置有基于云的服务,该基于云的服务支持在用户设备上运行和显示虚拟内容,其中相对于规范地图中的PCF指定用户设备的位置。
在一个示例中,定位功能被提供为基于云的服务6106。基于云的服务6106可以在多个计算设备中的任何一个计算设备上实现,可以从该计算设备分配计算资源给在云中执行的一个或多个服务。这些计算设备可以彼此互连并且对于设备(诸如可穿戴XR设备6102和手持设备6104)是可访问的。可以通过一个或多个网络提供该连接。
在一些实施例中,基于云的服务6106被配置为接受来自相应用户设备的描述符信息并且将设备“定位”到匹配的一个或多个规范地图。例如,基于云的定位服务将接收到的描述符信息与相应(多个)规范地图的描述符信息相匹配。可以使用如上所述的技术来创建规范地图,该技术通过合并由具有图像传感器或获取关于物理世界的信息的其它传感器的一个或多个设备提供的地图来创建规范地图。
然而,这不是规范地图由访问它们的设备创建的要求,因为此类地图可以由地图开发者创建,例如,地图开发者可以通过使地图对定位服务6106可用来发布地图。
图9是可以由设备执行的示例过程流,以使用基于云的服务采用规范地图来定位设备的位置并接收指定在设备本地坐标系和规范地图的坐标系之间的一个或多个变换的变换信息。
根据一些实施例,过程6200可以在6202处以新会话开始。在设备上开始新会话可能启动图像信息的采集以构建设备的跟踪地图。此外,设备可以发送消息,向定位服务的服务器注册,提示服务器为该设备创建会话。
在建立了新会话后,过程6200可以在6204处继续,采集设备环境的新帧。在6206处,可以处理每个帧以从采集的帧中选择特征。特征可以是一种或多种类型,诸如特征点和/或特征线。
在6206处的特征提取可以包括将姿态信息附加到在6206处提取的特征。姿态信息可以是设备的本地坐标系中的姿态。在一些实施例中,姿态可以相对于跟踪地图中的参考点,该参考点可以是设备的跟踪地图的原点。无论格式如何,都可以将姿态信息附加到每个特征或每个特征集,使得定位服务可以使用姿态信息来计算可以在将特征与存储地图的特征匹配时返回给设备的变换。
过程6200可以继续到判定框6207,在判定框6207中做出是否请求定位的决定。在一些实施例中,通过对多个图像帧中的每一个执行定位来增强定位准确度。仅当在针对足够数量的多个图像帧计算的结果之间存在足够的对应关系时,才认为定位是成功的。因此,仅在为实现成功的定位采集了足够的数据时,才可发送定位请求。
可以应用一个或多个标准来确定是否请求定位。标准可以包括时间经过,使得设备可以在某个阈值时间量之后请求定位。例如,如果定位不是在阈值时间量内尝试的,则该过程可以从判定框6207继续到动作6208,在6208处请求从云定位。该阈值时间量可以在10到30秒之间,诸如例如25秒。可替代地或另外地,可以由设备的运动触发定位。执行过程6200的设备可以使用IMU和/或其跟踪地图来跟踪设备的运动,并且在检测到距设备最后请求定位的位置超过阈值距离的运动时启动定位。例如,阈值距离可以在1到10米之间,诸如在3到5米之间。
不管如何触发定位,当触发时,过程6200可以进行到动作6208,其中设备向定位服务发送请求,包括由定位服务用来执行定位的数据。在一些实施例中,对于定位尝试可以提供来自多个图像帧的数据。例如,除非多个图像帧中的特征产生一致的定位结果,否则定位服务可能不认为定位成功。在一些实施例中,过程6200可以包括将一组特征和附加姿态信息保存到缓冲器中。例如,缓冲器可以是循环缓冲器,其存储从最近采集的帧中提取的一组特征。因此,定位请求可以与在缓冲器中累积的多组特征一起发送。
设备可以将缓冲器的内容作为定位请求的一部分传送到定位服务。其它信息可以连同特征点和附加的姿态信息一起传输。例如,在一些实施例中,可以传输地理信息,这可以帮助选择地图,要针对该地图尝试定位。地理信息可以包括例如与设备跟踪地图或当前持久姿态相关联的GPS坐标或无线签名。
响应于在6208处发送的请求,云定位服务可以处理特征组以将设备定位到规范地图或由服务维护的其它持久地图。例如,基于云的定位服务可以基于相对于规范地图的匹配特征的从设备发送的特征组的姿态来生成变换。定位服务可以将变换作为定位结果返回给设备。可以在框6210处接收该结果。
不管变换是如何格式化的,在动作6212处,设备可以使用这些变换来计算渲染虚拟内容的位置,该虚拟内容的位置已经由XR系统的应用或其它部件相对于任何PCF指定。该信息可以可替代地或另外地在设备上用于执行任何基于位置的操作,其中基于PCF指定该位置。
在一些场景中,定位服务可能无法将从设备发送的特征与任何存储的规范地图匹配或者可能无法匹配与定位服务的请求通信的足够数量的特征组以认为成功定位发生。在此类场景中,定位服务可以向设备指示定位失败,而不是如上面结合动作6210描述的将变换返回给设备。在此类场景中,过程6200可以在判定框6209处分支到动作6230,其中设备可以采取一个或多个用于故障处理的动作。这些动作可包括增加缓冲器的大小,缓冲器保存为定位而发送的特征组。例如,如果不认为定位服务定位成功,除非三组特征匹配,则缓冲器大小可从5增加到6,从而增加所传输的特征组中的三组可与定位服务维护的规范地图匹配的机会。
在一些实施例中,由定位服务维护的规范地图可以包括先前识别并存储的PCF。每个PCF可以由多个特征表示,对于在6206处处理的每个图像帧,特征可以包括特征点和特征线的混合。因此,定位服务可识别具有与随定位请求发送的特征组相匹配的特征组的规范地图,并且可以计算由随定位请求发送的姿态所表示的坐标系与一个或多个PCF之间的变换。
在所示实施例中,定位结果可被表达为将提取的特征组的坐标系相对于所选的地图对齐的变换。该变换可被返回到用户设备,在该用户设备中,它可以作为正向变换或逆变换被应用,以将相对于共享地图指定的位置与由用户设备使用的坐标系相关,反之亦然。例如,该变换可以允许设备为其用户在相对于物理世界的位置中渲染虚拟内容,该位置在设备所定位的地图的坐标系中指定。
使用2D/3D点和线对应关系的姿态估计
可以在许多场景中计算一组特征相对于其它图像信息的姿态,包括在XR系统中相对于地图来定位设备。图10示出可以被实现来计算该姿态的方法1000。在该示例中,方法1000计算任何特征类型的混合的姿态。例如,特征可以是所有特征点或所有特征线或特征点和特征线的组合。例如,方法1000可以作为图9所示处理的一部分来执行,其中计算的姿态用于相对于地图定位设备。
方法1000的处理可以在采集用于处理的图像帧后开始。在框1010处,可以确定特征类型的混合。在一些实施例中,提取的特征可以是点和/或线。在一些实施例中,设备可以被配置为选择特征类型的某种混合。例如,设备可以被编程为选择一定百分比的特征为点,而选择其余的特征为线。可替代地或另外地,预配置可以基于确保来自图像的特征组中的至少一定数量的点和一定数量的线。
可以由一个或多个度量来引导该选择,例如指示特征将在同一场景的后续图像中被识别的可能性。例如,该度量可以基于物理结构的特性,该物理结构的特性引起该结构在物理环境内的特征和/或位置。例如,窗户的一角或安装在墙壁上的相框可产生具有高分的特征点。作为另一个示例,房间的角落或台阶的边缘可产生具有高分的特征线。该度量可用于选择图像中的最优特征或可用于选择对其执行进一步处理的图像,例如仅对超过具有高分的特征阈值的数量的图像执行进一步处理。
在一些实施例中,特征的选择可以以针对所有图像选择相同数量的点和线或相同混合的点和线的方式来完成。例如,可丢弃不提供指定特征混合的图像帧。在其它场景中,选择可以基于物理环境的视觉特性而是动态的。例如,可以基于分配给检测到的特征的度量的大小来引导选择。例如,在具有单色墙壁和很少家具的小房间中,可能很少有物理结构会产生具有大度量的特征点。例如,图11示出基于特征点的定位尝试可能会失败的环境。类似的结果可能发生在具有产生许多类似特征点的结构的环境中。在这些环境中,所选元素的混合可包括比点更多的线。相反,在大型或室外空间中,可能存在许多产生特征点的结构,直边很少,使得特征的混合将会偏向点。
在框1020处,可以从要处理的图像帧中提取所确定混合的特征。可理解,框1010和1020不需要按所示顺序执行,因为处理可以是动态的,使得选择特征和确定混合的处理可以同时发生。可以在框1020中应用处理图像以识别点和/或线的技术以提取特征。此外,可以应用一个或多个标准来限制提取的特征的数量。标准可以包括特征的总数或包括在提取的特征组中的特征的质量度量。
处理然后可以进行到框1030,在框1030处,确定从图像提取的特征与其它图像信息(诸如先前存储的地图)之间的对应关系。例如,可以基于与特征相关联的视觉相似性和/或描述符信息来确定对应关系。这些对应关系可用于生成关于变换的一组约束,其定义所提取的特征相对于来自其它图像信息的特征的姿态。在定位示例中,这些对应关系位于采用设备上的相机拍摄的图像中的所选的特征组与存储的地图之间。
在一些实施例中,用作姿态估计的输入的图像是二维图像。因此,图像特征是2D的。其它图像信息可以表示三维的特征。例如,如上所述的关键工具可以具有由多个二维图像构建的三维特征。即使维度不同,仍可以确定对应关系。例如,图12示出可以通过将3D特征投影到从中提取2D特征的图像的2D平面中来确定对应关系。
不管提取特征组的方式如何,处理进行到框1040,其中计算姿态。例如,如上所述,该姿态可以作为XR系统中定位尝试的结果。
根据一些实施例,方法1000的任何或所有步骤可以在在此描述的设备上和/或在诸如在此描述的远程服务上执行。
在一些实施例中,可以基于从图像帧提取的特征类型的混合来选择框1040处的处理。在其它实施例中,该处理可以是通用的,使得可以例如针对点和线的任意混合来执行同一软件。
使用2D/3D点或线对应关系来估计相机的姿态(称为PnPL问题)是计算机视觉中的一个基本问题,具有许多应用,诸如同时定位和映射(SLAM)、运动结构(SfM)和增强现实。如在此所述的PnPL算法可以是完整的、鲁棒的和高效的。这里的“完整”算法可以意指该算法可以处理所有潜在的输入,并且可以应用于任何场景,而不管特征类型的混合如何,使得可以在任何场景中应用相同的处理。
根据一些实施例,可以通过对系统进行编程以通过将最小二乘问题转换为最小问题来从一组对应关系计算姿态来实现通用处理。
解决PnPL问题的传统方法没有提供与每个问题的单独的习惯解决方案一样准确和有效的完整算法。发明人认识到,通过使用一种算法解决多个问题可以显著减少算法实现的工作量。
根据一些实施例,定位方法可以包括针对PnPL问题使用完整、准确和有效的解决方案。根据一些实施例,方法还能够将PnP和PnL问题作为PnPL问题的特定情况来解决。在一些实施例中,方法可以能够解决多种类型的问题,包括最小问题(例如P3L、P3P和/或PnL)和/或最小二乘问题(例如PnL、PnP、PnPL)。例如,方法可以能够解决P3L、P3P、PnL、PnP和PnPL问题中的任何一种问题。尽管文献中对每个问题都有定制的解决方案,但在实践中针对每个问题实现特定的解决方案非常耗时费力。
图13是可以是通用的并且可以导致将通常作为最小二乘问题解决的问题变换为最小问题的处理的示例。图13是示出根据一些实施例的有效姿态估计的方法1300的流程图。例如,可以对例如在图10中的框1030中确定的对应关系执行方法1300。该方法可以开始于,给定n个2D/3D点对应关系和m个2D/3D线对应关系,获得2×(m+n)个约束(动作1310)。
方法1300可以包括重新配置(动作1320)该组约束并且使用部分线性化方法来获得方程组。方法进一步包括求解方程组以获得旋转矩阵(动作1330)并且使用旋转矩阵和t的封闭形式(closed form)获得t,平移向量(动作1340)。旋转矩阵和平移向量可以一起定义姿态。根据一些实施例,方法1300的任何或所有步骤可以在在此所述的设备上和/或在诸如在此所述的的远程服务上执行。
使用2D/3D点和线对应关系的姿态估计的统一解决方案
根据一些实施例,解决PnPL问题可以意味着使用N个2D/3D点对应关系(即)和M个2D/3D线对应关系(即)估计相机姿态(即R和t)。Pi=[xi,yi,zi]T可以表示3D点,并且pi=[ui,vi]T可以表示图像中对应的2D像素。类似地,Li可以表示3D线,并且li可以表示对应的2D线。2个3D点(诸如和)可用于表示3D线Li,并且2个像素(诸如和)可用于表示对应的2D线li。为了简化符号,可以使用归一化的像素坐标。
在1300的方法的示例性实施例中,可以使用以下符号。PnPL问题可包括使用N个2D/3D点对应关系和M个2D/3D线对应关系估计相机姿态(即R和t)。Pi=[xi,yi,zi]T可以表示3D点,并且pi=[ui,vi]T可以表示图像中对应的2D像素。同样,Li可以表示3D线,并且li可以表示对应的2D线。2个3D点和可用于表示Li,并且2个像素和可用于表示li。为了简化符号,我们使用归一化的像素坐标。
根据一些实施例,给定n个2D/3D点对应关系和m个2D/3D线对应关系,在动作1310中获得2×(m+n)个约束可以包括使用点对应关系,其中第i个2D/3D点对应关系对R=[r1;r2;r3]提供以下2个约束,其中ri,i=1,2,3是3行R,并且t=[t1;t2;t3]T如(1)中所示。
根据一些实施例,在方法1300的动作1310中获得2×(m+n)个约束进一步包括将(1)中的分母与等式的两边相乘,以产生以下结果:
r1Pi+t1-ui(r3Pi+t3)=0,
r2Pi+t2-vi(r3Pi+t3)=0. 方程(2)
其中×代表点积。(2)和(3)中提供的方程可以以相同的形式写为
aRb+ct=0, 方程(4)
a=[1 0 -ui],
b=Pi,
c=[1 0 -ui]. 方程(5)
类似地,我们可以通过将(5)中的ui替换为vi来示出(2)中的第二方程与(4)具有相同的形式。给定n个2D/3D点对应关系和m个2D/3D线对应关系,可以获得M=2×(n+m)个约束(4)。
根据一些实施例,在方法1300的动作1320中重新配置约束集可以包括生成使用约束二次系统、使用Cayley-Gibbs-Rodriguez参数化的R的表示、以及t的封闭形式。
给定n个2D/3D点对应关系和m个2D/3D线对应关系,获得如(4)的M=2×(n+m)个约束。对于第i个约束,可以定义以下:
δi=aiRbi 方程(6)
这里δi可以是标量。堆叠M个约束,可以获得关于t的线性方程组作为:
Δ+Ct=0, 方程(7)
其中,Δ=[δ1;…;δM]并且C=[c1;…;cM]。
由于(7)相对于t是线性的,因此t的封闭形式可以写为
t=-(CTC)-1CTΔ 方程(8)
根据一些实施例,可以通过采用QR、SVD或Cholesky来求解方程(8)。在一些实施例中,可以使用正规方程来求解方程(8)的线性系统。根据一些实施例,可以通过将t反代入(7)来计算使用Cayley-Gibbs-Rodriguez参数化的R的表示,以获得以下
Δ+KΔ=(I+K)Δ=0, 方程(9)
其中K=-C(CTC)-1CT。
然后可以确定R的解决方案。Cayley-Gibbs-Rodriguez(CGR)参数化,3维向量s,可用于表示R,如下:
其中
通过将(10)代入(9)并展开(6),所得的系统如下
无论我们有多少对应关系,A的秩不能大于9。因此,如θ具有9项,我们不通过直接线性变换(DLT)来求解s。我们将R写为
对于(9),如果我们将(6)中Δ的元素δi展开,则我们可以得到
(I+K)Br=0, 方程(13)
让我们定义
H=(I+K)B 方程(14)
其中H是N×9矩阵。不受具体计算理论基础的约束,我们具有以下引理。
引理1对于没有噪声的数据,H的秩小于9。
证明:方程(13)是齐次线性系统。具有9个元素的r是(13)的非平凡解。因此H应是奇异的,否则该齐次系统只有零(或平凡)解。这与r是(13)的解的事实相矛盾。
定理1对于没有噪声的数据,(11)中A的秩小于9。
证明:使用(10)中的CGR表示,(13)中的r和(11)中的θ可以通过如下相关
将(15)代入(13)并消除非零分母1+sTs,我们具有A=(I+K)BM。使用(14)中的H的定义,我们可以重写A=HM。根据代数理论,我们具有rank(A)≤min(rank(H),rank(M))。因为rank(H)<9,我们具有rank(A)<9。
根据一些实施例,秩近似可用于去噪。矩阵A可能是秩不足的。在一些实施例中,通常,对于和>5,矩阵A的秩可分别为3、5、7和8。当数据中有噪声时,矩阵A可能会被污染,并且秩可能会变满。污染矩阵可以表示为在一些实施例中,减少噪声的影响可以包括使用具有系数矩阵A应替换的秩的矩阵例如,这可以使用Q或SVD等来实现。例如,如果的SVD是并且秩为k,则其中,是S的前k个奇异值。该步骤可以减少噪声的影响。为了简化符号,仍然使用A来表示该矩阵。
根据一些实施例,在方法1300的动作1320中使用部分线性化方法来获得方程组可以包括使用部分线性化方法来将PnPL问题转换为基本最小公式(EMF)并生成方程组。在一些实施例中,部分线性化方法可以包括将θ分成两部分,其中第一部分θ3可以包括3个单项式,而其余部分θ7可以具有7个单项式,使得它们可以写为和θ7=[s1s2,s1s3,s2s3,s1,s2,s3,1]T。根据一些实施例,部分线性化还可以包括基于θ的划分,将(11)中的矩阵A划分为A3和A7,因此并将(11)重写为
A3θ3=-A7θ7 (16)
并且θ3中的三个元素可以被视为单独的未知数,而θ7中的其余单项式可以被视为已知数。然后,我们可以具有关于θ7的θ3的封闭形式解,为
方程(17)可以重写为
Cθ=0,C=[I3,C7]. 方程(18)
它包括3个二阶多项式方程,其中在s中3个未知数。方程中的每个方程具有如下形式
根据一些实施例,求解方程组以获得旋转矩阵(动作1330)可以包括通过求解方程组来获得旋转矩阵,其中方程具有形式(19)。根据一些实施例,使用旋转矩阵和t的封闭形式获得t(动作1340)可以包括在求解s之后从(8)获得t。
示例结果
图14-17是与其它已知的PnPL求解器相比的有效定位方法的实施例的实验结果图。图14A-14D示出不同PnPL求解器(包括OPnPL和evxpnpl)的中值旋转误差、中值平移误差、平均旋转误差和平均平移误差,其分别在2016年Alexander Vakhitov,Jan Funke,andFrancesc Moreno Noguer在Springer期刊上发表的“Accurate and linear time poseestimation from points and lines:European Conference on Computer Vision(从点和线进行准确和线性的时间姿态估计:欧洲计算机视觉会议)”和Agostinho,Sérgio,Gomes,and Alessio Del Bue在2019年发表的“CvxPnPL:A unified convexsolution to the absolute pose estimation problem from point and linecorrespondences(CvxPnPL:从点和线对应的绝对姿态估计问题的统一凸解)”中描述,并且二者通过在此的引用整体并入本文。
图14A示出以度为单位的不同PnPL算法的中值旋转误差。图14B示出以百分比为单位的不同PnPL算法的中值平移误差。图14C示出以度为单位的不同PnPL算法的平均旋转误差。图14D示出以百分比为单位的不同PnPL算法的平均平移误差。在图14A-D中,根据一些实施例,pnpl曲线40100A-D示出使用在此所述的方法的旋转和平移中的误差。OPnPL曲线40200A-D和cvxpnpl曲线40300A-D示出以百分比和度为单位的误差,其始终高于pnpl曲线40100的误差。
图15A是不同PnPL算法的计算时间的图。图15B是不同PnPL算法的计算时间的图。使用在此所述的方法解决PnPL问题的计算时间由50100A-B表示,并且OPnPL曲线50200A-B和cvxpnpl曲线50300A-B示出始终比包括在此所述的算法的实施例的方法更高的计算时间。
图16A示出根据一些实施例的,对于与P3P和UPnP解决方案相比的PnP问题,根据在此所述的一些实施例的,PnPL解决方案的特定范围的误差实例的数量与对数误差的关系;
图16B示出对于与P3P和UPnP解决方案相比的PnP问题,根据在此所述的一些实施例的PnPL解决方案的箱线图。
图16C示出对于与P3P和UPnP解决方案相比的PnP问题,根据在此所述的一些实施例的PnPL解决方案的以弧度为单位的平均旋转误差。PnP问题的根据在此所述的一些实施例的PnPL解决方案具有误差60100C,可以看出该误差小于UPnP解决方案的误差60200C。
图16D示出对于与P3P和UPnP解决方案相比的PnP问题,根据在此所述的一些实施例的PnPL解决方案的以米为单位的平均位置误差。PnP问题的根据在此所述的一些实施例的PnPL解决方案具有误差60100D,可以看出该误差小于UPnP解决方案的误差60200D。
图17A-D示出不同PnL算法的中值旋转误差、中值平移误差、平均旋转误差和平均平移误差,PnL算法包括OAPnL、DLT、LPnL、Ansar、Mirzaei、OPnPL和ASPnL。在Zhou,Lipu等人于2019年发表的“A Robust and Efficient Algorithm for the PnL problem UsingAlgebraic Distance to Approximate the Reprojection Distance(使用代数距离接近重投影距离的PnL问题的稳健高效算法)”中描述了OAPnL,并在此通过引用整体并入本文。在Pibyl,B.、Zemk,P.和Adk,M.等人于2017年在Computer Vision and ImageUnderstanding(计算机视觉和图像理解)上发表的“Absolute pose estimation fromline correspondences using direct linear transformation.(使用直接线性变换从线对应进行绝对姿态估计)”中描述了DLT,并在此通过引用整体并入本文。在Xu,C.、Zhang,L.、Cheng,L.和Koch,R.于2017年发表的“Pose estimation from line contrasts:Acomplete analysis and a series of solutions(线对比的姿态估计:完整的分析和一系列的解决方案)”中描述了LPnL,并在此通过引用整体并入本文。在Ansar,A.和Daniilidis,K.于2003年发表的“Linear pose estimation from points or lines(从点或线进行线性姿态估计)”中描述了Ansar,并在此通过引用整体并入本文。在Mirzaei,F.M.和Roumeliotis,S.I.于2011年发表的“Globally optimal pose estimation from linecorrespondences(来自线对应的全局最优姿态估计)”中描述了Mirzaei,并在此通过引用整体并入本文。如在此所述,在“Accurate and linear time pose estimation frompoints and lines:European Conference on Computer Vision(从点和线进行准确和线性的时间姿态估计:欧洲计算机视觉会议)”中描述OPnPL。如在此所述,在“Poseestimation from line correspondences:A complete analysis and a series ofsolutions(从线对应的姿态估计:完整的分析和一系列的解决方案)”中描述了ASPnL的各个方面。
图17A示出不同PnL算法的以度为单位的中值旋转误差。图17B示出不同PnL算法的以百分比为单位的中值平移误差。图17C示出不同PnL算法的以度为单位的平均旋转误差。图17D示出不同PnL算法的以百分比为单位的平均平移误差。曲线70100A-D示出使用在此所描方法的PnPL解决方案的中值旋转误差、中值平移误差、平均旋转误差和平均平移误差。
使用特征线的姿态估计
在一些实施例中,代替通用方法或除了通用方法之外,当仅选择线作为特征时,可以应用有效过程来计算姿态。图18示出可以作为图10中的方法1000的替代的方法1800。如在方法1000中,方法1800可以开始于在框1810确定特征混合并在框1820用该混合来提取特征。在框1810的处理中,特征混合可能只包括线。例如,如在图11中所示的环境中可以只选择线。
类似地,在框1830,可以如上描述确定对应关系。根据这些对应关系,可以在子过程1835计算姿态。在该示例中,处理可以取决于特征是否包括至少一个点而分支。如果是,则可以采用可以基于包括至少一个点的一组特征来求解姿态的技术来估计姿态。例如,在框1830可以应用如上所描述的通用算法。
相反,如果特征集仅包括线,在该情况下可以通过传递准确和有效结果的算法来执行处理。在该示例中,处理分支到框3000。如下所述,框3000可以解决透视-n-线(PnL)问题。由于在可能需要姿态估计的环境中经常存在线并且线可以用作容易识别的特征,因此提供针对仅使用线的特征组的解决方案可以为在该环境中操作的设备提供效率或准确性优势。
根据一些实施例,方法1800的任何或所有步骤可以在在此所描述的设备上和/或在诸如在此所描述的远程服务上执行。
如在此所述,PnPL问题的特殊情况包括透视-n-线(Perspective-n-Line,PnL)问题,其中可以根据多个2D/3D线对应关系来估计相机的姿态。PnL问题可以描述为PnP问题的线对应,诸如在Hesch,J.A.,Roumeliotis,S.I.在计算机视觉国际会议上发表的“Adirectleast-squares(dls)method for pnp(pnp的直接最小二乘(dls)方法)”、Kneip,L.,Li,H.,Seo,Y.在欧洲计算机视觉会议上发表的“Upnp:An optimal o(n)solution to theabsolute pose problem with universal applicability(Upnp:具有普遍适用性的绝对姿态问题的最优o(n)解决方案)”、Kuang,Y.、Sugimoto,S.、Astrom,K.,Okutomi,M.在IEEE会议论文集发表的“Revisiting the pnp problem:A fast,general and optimalsolution(重新审视pnp问题:快速、通用且最优的解决方案)”中进行了描述,并在此通过引用整体并入本文。
PnL问题是计算机视觉和机器人技术中的基础问题,具有许多应用,包括同时定位和映射(SLAM)、运动结构(SfM)和增强现实(AR)。通常,相机姿态可以从许多N个2D-3D线对应关系中确定,其中N≥3。在线对应关系的数量N为3的情况下,该问题可以称为最小问题,也称为P3L问题。在对应关系的数量N大于3的情况下,该问题可以称为最小二乘问题。最小问题(例如N=3)和最小二乘问题(例如N>3)通常以不同的方式解决。最小问题和最小二乘问题的两种解决方案在各种机器人和计算机视觉任务中都发挥着重要作用。由于它们的重要性,为了解决这两个问题已经做出了许多努力。
针对PnL问题提出的传统方法和算法通常使用不同的算法来解决最小问题(P3L问题)和最小二乘问题。例如,在传统系统中,最小问题被用公式表示为方程组,而最小二乘问题用公式表示为最小化问题。理论上可以通过将最小问题升级为最小二乘问题来处理最小情况的其它最小二乘解决方案会导致效率低下的最小解决方案,并且在实时应用中使用是不切实际的,因为最小解决方案需要在RANSAC框架中运行多次(例如,如Fischler,M.A.、Bolles,R.C.发表的“Random sample consensus:a paradigm for model fitting withapplications to image analysis and automated cartography(随机样本共识:用于图像分析和自动制图的模型拟合范式)”中描述的,特此全文并入)。
在实时应用中使用将最小二乘问题作为最小解决方案来解决的其它传统系统也是低效的。虽然最小问题的解决方案通常导致八阶多项式方程,在此描述为通用最小公式(GMF),但最小二乘解决方案需要求解更复杂的方程组。
通过将最小二乘法作为最小解决方案来解决,传统系统在通过使用最小二乘解决方案所需要的更复杂的方程组来解决最小解决方案来求解最小解决方案方面效率低下。例如,Mirzaei的算法(例如,如Mirzaei,F.M.、Roumeliotis,S.I.在2011年计算机视觉国际会议上发表的“Optimal estimation of vanishing points in a Manhattan world(曼哈顿世界中消失点的最优估计)”中描述的,其通过引用整体并入本文)需要找到三个五阶多项式方程的根,并且在“A robust and efficient algorithm for the pnl problem usingalgebraic distance to approximate the reprojection distance”中描述的算法产生27阶单变量多项式方程,如在IEEE模式分析和机器智能汇刊(IEEE transactions onpattern analysis and machine intelligence)中发表的“Pose estimation from linecorrespondences:A complete analysis and a series of solutions(来自线对应的姿态估计:完整的分析和一系列解决方案)”(其在此通过引用整体并入本文)以及Wang,P.、Xu,G.、Cheng,Y.、Yu,Q.在机器视觉与应用(Machine Vision and Applications)30(4),603{614(2019)上发表的“Camera pose estimation from lines:a fast,robust andgeneral method(从线估计相机位姿:快速、稳健和通用的方法)”(其在此通过引用整体并入本文)中描述的,提出了一种基于子集的解决方案,该解决方案需要求解15阶单变量多项式方程。
如在此所述,最小(P3L)问题通常需要求解8阶单变量方程,并且因此至多具有8个解,除了在某些特定几何配置的情况下(例如,如在Xu,C.、Zhang,L.、Cheng,L.、Koch,R.在IEEE模式分析和机器智能汇刊中发表的“Pose estimation from line correspondences:A complete analysis and a series of solutions(来自线对应的姿态估计:完整的分析和一系列解决方案)”中所述)。对于最小(P3L)问题,一种广泛采用的策略是通过一些几何变换来简化问题(例如,诸如在IEEE模式分析和机器智能汇刊中发表的“Determination ofthe attitude of 3d objects from a single perspective view”、Chen,H.H.在IEEE模式分析和机器智能汇刊中发表的“Pose determination from line-to-planecorrespondences:existence condition and closed-form solutions”、IEEE模式分析和机器智能汇刊中发表的“Pose estimation from line correspondences:A completeanalysis and a series of solutions”、Wang,P.,Xu,G.,Cheng、Y.,Yu,Q.在机器视觉与应用30发表的“Camera pose estimation from lines:a fast,robust and generalmethod.”中所述)。
具体地,引用的参考文献的方面讨论了一些特定的中间坐标系,以减少导致单变量方程的未知数的数量。这些方法的问题在于,对于某些配置,变换可涉及一些数值上不稳定的操作,诸如Xu,C.、Zhang,L.、Cheng,L.、Koch,R.在IEEE模式分析和机器智能汇刊上发表的“Pose estimation from line correspondences:A complete analysis and aseries of solutions”的方程(4)中除法的分母,这可能是很小的值。在Zhou,L.、Ye,J.、Kaess,M.在Asian Conference on Computer Vision发表的“A stable algebraic camerapose estimation for minimal configurations of 2d/3d point and linecorrespondences”的方面中,四元数用于参数化旋转,并介绍了P3L问题的代数解决方案。一些工作侧重于P3L问题的特定配置,诸如形成Z形的三条线(例如,如Li-Juan,Q.、Feng,Z.于2008年在Acta Automatica Sinica上发表的“A new method for pose estimationfrom line contrasts”中所述,其通过引用整体并入本文)或平面三线连接问题(例如,如Caglioti,V.在Pattern recognition 26(11),1603{1618(1993)上发表的“The planarthree-line junction perspective problem with application to the recognitionof polygonal patterns”中所述,其通过引用整体并入本文)或具有已知竖直方向的P3L问题(例如,如Lecrosnier,L.、Boutteau,R.、Vasseur,P.、Savatier,X.、Fraundorfer,F.在IEEE Robotics and Automation Letters4(4),3852{3859(2019)上发表的“Camera poseestimation based on pnl with a known vertical direction”中所述,其通过引用整体并入本文)。
对最小二乘PnL问题的解决方案的早期工作主要集中在误差函数公式化和迭代解决方案上。Liu等人(Liu,Y.、Huang,T.S.、Faugeras,O.D.等人在IEEE模式分析和机器智能汇刊12(1),28{37(1990)上发表的“Determination of camera location from 2-d to 3-d line and point correspondences”,其通过引用整体并入本文)研究了2D-3D点和线对应关系的约束,并将旋转和平移的估计解耦。Kumar和Hanson(Kumar,R.、Hanson,A.R.在CVGIP:Image understanding 60(3),313{342(1994)上发表的“Robust methods forestimating pose and a sensitivity analysis”,其通过引用整体并入本文)提出在迭代方法中联合优化旋转和平移。他们提出了一种基于采样的方法来获得初始估计。后者的作品(例如,如在Dornaika,F.、Garcia,C.在Real-Time Imaging 5(3),215{230(1999)上发表的“Pose estimation using point and line correspondences”以及Iterative posecomputation from line correspondences(从线对应关系的迭代姿态计算)(1999)中描述,两者都通过引用整体并入)提出了从弱透视或旁透视相机模型估计的姿态开始迭代。迭代算法的准确度取决于初始解的质量和迭代算法的参数。无法保证迭代方法会收敛。作为大多数3D视觉问题,线性公式起着重要作用(例如,如Hartley,R.、Zisserman,A.在Cambridge university press(2003)上发表的“Multiple view geometry in computervision”中所述,其通过引用整体并入本文)。直接线性变换(DLT)提供了一种直接计算姿态的方法(例如,如Hartley,R.、Zisserman,A.在Cambridge university press(2003)上发表的“Multiple view geometry in computer vision”中所述)。该方法至少需要6个线对应关系。Pribyl等人(例如,如Pribyl,B.、Zemcik,P.、Cadik,M.在arXiv preprint arXiv:1608.02824(2016)上发表的“Camera pose estimation from lines using pln uckercoordinates”中所述)介绍了一种基于3D线的plucker坐标的新DLT方法,至少需要9条线。在他们后一作品中(例如,如Pribyl B.、Zemcik,P.、Cadik,M.在Computer Vision andImage Understanding161,130{144(2017)上发表的“Absolute pose estimation fromline correspondences using direct linear transformation”中所述),他们结合了两种DLT方法,其示出改进的性能并将线对应关系的最小数量减少到5。通过探索从PnP和PnL问题导出的约束,EPnP算法被扩展以解决PnL问题(例如,如在European Conference onComputer Vision.pp.583{599.Springer(2016)上发表的“Accurate and linear timepose estimation from points and lines”以及Xu,C.、Zhang,L.、Cheng,L.、Koch,R.在IEEE模式分析和机器智能汇刊上发表的“Pose estimation from line correspondences:A complete analysis and a series of solutions”中所述)。基于EPnP的PnL算法适用于N=4,但在N较小时不稳定,并且需要针对平面PnL问题(即所有线都在一个平面上)进行特殊处理。线性公式忽略了未知数的约束。这导致不太准确的结果并缩小了其适用范围。为了解决上述问题,提出了基于多项式公式的方法。Ansar等人(Ansar,A.、Daniilidis,K.等人在IEEE模式分析和机器智能汇刊25(5),578{589(2003)上发表的“Linear poseestimation from points or lines”)采用二次系统来表示约束并提出了一种解决该系统的线性化方法。他们的算法适用于N≥4,但是当N很大时该算法非常慢。在RPnP算法的启发下,在Xu,C.、Zhang,L.、Cheng,L.、Koch,R.在IEEE模式分析和机器智能汇刊上发表的“Poseestimation from line correspondences:A complete analysis and a series ofsolutions”和在Machine Vision and Applications 30上发表的“Camera poseestimation from lines:a fast,robust and general method”中提出了基于子集的PnL方法。他们将N个线对应关系分成N-2个三元组,并且每个三元组都是P3L问题。然后他们最小化从每个P3L问题导出的平方多项式的和。当N很大时,基于子集的PnL方法将变得耗时,如“A robust and efficient algorithm for the pnl problem using algebraicdistance to approximate the reprojection distance”中所示,其通过引用整体并入本文。使用Grobner基础技术(例如,如Cox,D.A.、Little,J.、O'shea,D.在Springer Science&Business Media(2006)上发表的“Using algebraic geometry”第185卷中所述,其通过引用整体并入本文),它能够直接求解多项式系统。这导致了一系列直接最小化方法。在文献中,CGR(例如,如在Mirzaei,F.M.、Roumeliotis,S.I.在2011International Conferenceon Computer Vision.pp.2454{2461.IEEE(2011)上发表的“Optimal estimation ofvanishing points in a manhattan world”以及Mirzaei,F.M.、Roumeliotis,S.I.在2011IEEE International Conference on Robotics and Automation.pp.5581{5588.IEEE(2011)上发表的“Globally optimal pose estimation from linecorrespondences”中所述,其通过引用整体并入本文)和四元数(例如,如在Vakhitov,A.、Funke,J.、Moreno-Noguer,F.在European Conference on Computer Vision.pp.583{599.Springer(2016)上发表的“Accurate and linear time pose estimation frompoints and lines”中所述,其通过引用整体并入本文)被用来参数化旋转,这导致多项式成本函数。然后使用Grobner基础技术求解成本函数的第一最优性条件。由于Grobner基础技术可能会遇到数值问题(例如,如Cox,D.A.、Little,J.、O'shea,D.在vol.185.SpringerScience&Business Media(2006)上发表的“Using algebraic geometry”和Byrod,M.、Josephson,K.、Astrom,K.在International Journal of Computer Vision 84(3),237{256(2009)上发表的“Fast and stable polynomial equation solving and itsapplication to computer vision”中所述,其通过引用整体并入本文),如Zhou等人的“Arobust and efficient algorithm for the pnl problem using algebraic distanceto approximate the reprojection distance”中所述,引入了隐藏变量多项式求解器。尽管它们示出改进的准确性,但它仍然比大多数基于线性公式的算法慢得多。PnL问题对某些应用具有一些扩展。一些应用具有多个相机。Lee(例如,如Lee,G.H.在EuropeanConference on Computer Vision.pp.170{185.Springer(2016)上发表的“A minimumsolution for non-perspective pose estimation from line correspondences”中所述,其通过引用整体并入本文)提出了针对多相机系统的一种封闭形式的P3L解决方案。最近,Hichem(例如,如Abdellali H.、Frohlich,R.、Kato,Z.在Proceedings of the IEEEInternational Conference on Computer Vision Workshops(2019)上发表的“A directminimum-squares solution to multi-view absolute and relative pose from 2d-3dperspective line pairs”中所述,其全部内容通过引用并入本文)提出了针对多相机系统的PnL问题的直接最小二乘解。在一些应用中,竖直方向从某个传感器(例如IMU)获知。这可以用作姿态估计的先验(例如,如在IEEE Robotics and Automation Letters 4(4),3852{3859(2019)上发表的“Camera pose estimation based on pnl with a known verticaldirection”和Abdellali,H.、Kato,Zm在2018Digital Image Computing:Techniques andApplications(DICTA).pp.1{8.IEEE(2018)上发表的“Absolute and relative poseestimation of a multi-view camera system using 2d-3d line pairs and verticaldirection”中所述,其通过引用整体并入本文)。作为单个相机的PnL解决方案可以扩展到多相机系统(例如,如在Proceedings of the IEEE International Conference onComputer Vision Workshops(2019)上发表的“A direct least-squares solution tomulti-view absolute and relative pose from 2d-3d perspective line pairs”中所述),本文重点关注单个相机的PnL问题。
理想的PnL解决方案是它对于任何可能的输入都是准确和有效的。如上所述,基于线性公式的算法对于小N通常是不稳定或不可行的,并且需要特殊处理,或甚至不适用于平面情况。另一方面,基于多项式公式的算法可以实现更好的准确度,并且适用于更广泛的PnL输入,但对计算的要求更高。此外,对于最小问题和最小二乘问题缺乏统一的解决方案。因此,迄今为止,在现有技术的PnL解决方案上存在显著的改进空间,诸如由在此的技术提供的。
根据一些实施例,定位方法可以包括用于透视-n-线(PnL)问题的完整、准确和有效的解决方案。在一些实施例中,可以通过新颖的隐藏变量方法将最小二乘问题变换为通用最小公式(GMF),其可以具有与最小问题相同的形式。在一些实施例中,可以使用Gram-Schmidt过程来避免变换中的奇异情况。
图30是示出根据一些实施例的有效定位的方法3000的流程图。该方法可以从确定所提取的特征的一组对应关系(动作3010)开始,给定n个2D/3D点对应关系和m个2D/3D线对应关系,获得2N个约束(动作3020)。方法3000可以包括重新配置(动作3030)该组约束并且使用部分线性化方法来获得方程组。方法进一步包括求解方程组以获得旋转矩阵(动作3040)以及使用旋转矩阵和t的封闭形式获得t(动作3050)。
根据一些实施例,方法3000的任何或所有步骤可以在在此所述的设备上和/或在诸如在此所述的远程服务上执行。
图19是根据一些实施例的来自的约束的示例性示意图。PnL问题可包括从数量N≥3个2D-3D线对应关系估计包括旋转R和平移t的相机姿态。从Pij到相机的投影可以写为pij=K(RPij+t),其中pij是齐次坐标。li可以定义为三维向量,例如以形式li=[ai;bi;ci]T,其中ai 2+bi 2=1。pij应在二维线li上。因此,我们具有 由于K是已知的,所以可以先计算KTli。符号可以通过使用li表示KTli来简化。通过这样做,第i个对应关系的两个约束可以写为:li(RPij+t)=0,j=1,2。如在此所述,PnL问题可以包括估计包括旋转R和平移t的相机姿态。根据一些实施例,旋转R和平移t可以具有总共6个自由度。如在此所讨论的,每个线对应关系可以产生2个约束,它们可以写为
li(RPij+t)=0,j=1,2 方程(1')
旋转R和平移t总共可以有6个自由度。由于每个线对应关系产生2个约束,如(1')中所示,至少需要3个对应关系来确定姿态。N=3是PnL问题的最小情况,并且在文献中称为P3L问题。除了一些特定的配置(例如,如在IEEE模式分析和机器智能汇刊上发表的“Pose estimation from line correspondences:A complete analysis and a seriesof solutions”中描述),该问题至多有8个解。对于P3L问题,旋转估计至关重要。基本上,它可以简化为以σ的八阶方程,它是R的三个未知数之一(例如,如在Asian Conference onComputer Vision上发表的“A stable algebraic camera pose estimation for minimalconfigurations of 2d/3dpoint and line correspondences”、在IEEE模式分析和机器智能汇刊上发表的“Pose estimation from line correspondences:A complete analysisand a series of solutions”以及在IEEE模式分析和机器智能汇刊上发表的“Posedetermination from line-to-plane correspondences:existence condition andclosed-form solutions”中所述)。
a8σ8+a7σ7+a6σ6+a5σ5+a4σ4+a3σ3+a2σ2+a1σ+σ0=0 方程(2')
其中方程(2')是P3L问题的通用最小公式(GMF)。最小二乘PnL问题也可以使用在此所述的方法简化为GMF。
根据一些实施例,在方法3000的动作3020中重新配置一组约束可以包括生成使用约束的二次系统、使用Cayley-Gibbs-Rodriguez(CGR)参数化的R的表示、以及t的封闭形式。在一些实施例中,CGR可用于表示R,例如,如“A robust and efficient algorithm forthe pnl problem using algebraic distance to approximate the reprojectiondistance”中所讨论。例如,三维向量可以表示为s=[S1,S2,S3]。根据一些实施例,使用CGR参数化的R的表示可以是由以下方程(3')描述的形式。在(3')中,I3可能是3×3单位矩阵并且[s]x是三维向量s的斜矩阵。在(3')中,的每个元素是三维向量s中的二次方程。
根据一些实施例,动作3020的t的封闭形式可以是τ=–(BTB)BTAr的形式。在一些实施例中,t的封闭形式可以通过首先在(1')中代入(3')、将两边乘以项(1+STS)来产生
其中aij是十维向量,并且(1+sTs)是s和t的三阶多项式。
方程(5')可以通过定义如下来简化
τ=(1+sTs)t 方程(6')
将(5')重写为以下:
给定N个2D-3D对应关系,我们可以具有2N个方程作为(7')。堆叠(7')的2N个方程可以给出:
Ar+Bτ=O2N+1 方程(8')
其中A=[a11,a12,…aN1,aN2]T并且B=[l1,l1,…lN,lN]T。我们可以将(8')视为τ的线性方程组,以获得封闭形式的解决方案,其中
τ=–(BTB)BTAr 方程(9')
根据一些实施例,动作3020的二次系统可以是s1、s2和s3的二次系统,并且可以是以下形式:
Kr=O2N×1,K=A-B(BTB)-1BTA 方程(10')
根据一些实施例,在方法3000的动作3020中使用部分线性化方法来获得方程组可以包括使用部分线性化方法来将PnL问题转换为通用最小公式(GMF)并生成方程组。
在一些实施例中,部分线性化方法可以包括将(5')中定义的r中的单项式分为两组和r7=[s1s2,s1s3,s2s3,s2,s3,1]T,并将(10')中的矩阵K相应地分为K3和K7,并进一步将(10')重写为如下:
K3r3+K7r7=O2N×1 方程(11')
(11')可重写为:
K3r3=-K7r7 方程(12')
其中r3的元素可以被视为单独的未知数。根据一些实施例,该方法可能要求r3的矩阵K3是满秩的。根据一些实施例,关于r7的r3的封闭形式的解可以写成如下:
其中方程(13')的可以表示3×7矩阵。根据一些实施例,当K9((10')的K)是满秩时,r3可以任意选择。根据一些实施例,对于无噪声数据的任意数量的2D-3D线对应关系,矩阵K9(即,(10')的K)可能是秩不足的。在一些实施例中,当K9(即,(10')的K)是秩不足时,某个输入可以针对秩不足或近似秩不足的r3的固定选择来作出K3。
根据一些实施例,K3可以通过具有列枢转的Gram-Schmidt过程来确定以从K9中选择3个独立的列来生成K3。
可以使用方程(16'),其中选择K的第i、j和第k列作为K3,并且对应的单项式可以形成r3。可以选择剩余的列来形成K7并且对应的单项式可以形成r7.。根据一些实施例,可以使用其它多项式求解器来求解方程(16')。
Cr=O3×1,C=[I3,C7] 方程(14')
上述方程组包括s1、s2和s3的3个二阶方程。3个二阶方程中的每一个可以具有以下形式:
根据一些实施例,求解方程组以获得旋转矩阵(动作3030)可以包括通过求解方程组来获得旋转矩阵,其中方程的形式为(15')。根据一些实施例,可以使用Grobner基本方法来求解方程组。根据一些实施例,方程组可以使用Kukelov等人描述的方法和方式来求解(例如,如Kukelova,Z.、Heller,J.、Fitzgibbon,A.在Proceedings of the IEEEConference on Computer Vision and Pattern Recognition上发表的“Efficientintersection of three quadrics and applications in computer vision”中所述,其通过引用整体并入本文),并且可以使用Zhou描述的方法来提高稳定性。
根据一些实施例,可以使用隐藏变量方法来求解方程组(14')。在一些实施例中,可以使用定制隐藏变量方法来求解方程组。例如,在Springer Science&Business Media(2006)上发表的“Using algebraic geometry”第185卷中描述了定制隐藏变量方法。在一些实施例中,定制隐藏变量方法可以通过将(15')中已知的一个视为常数来实现。例如,s3可以视为常数,而s1和s2视为未知数,使得方程组(15')可以写成以下方式:
当s0=1时,Fi=fi,因此F0,F1以及F2的雅可比矩阵的行列式J可以写为:
J可以是s0、s1和s2的三阶齐次方程,并且其系数是s3中的多项式。J关于s0、s1和s2的偏导数都可能是s0、s1和s2的二次齐次方程,具有与Fi相同的形式,即:
qij(s3)可以是s3的多项式。F0=F1=F2=0的所有非平凡解处G0=G1=G2=0(例如,如[10]中描述的)。因此,它们可以组合形成关于s0、s1和s2的新的齐次系统,如(21')。
Q(s3)u=O6×1 方程(21')
Q(s3)可以是6×6矩阵,其元素是s3的多项式,并且 基于线性代数理论,齐次线性系统(21')可具有非平凡解,当且仅当det(Q(s3))=0,其中det(Q(s3))=0是s3的八阶多项式方程,其具有与GMF相同的形式。至多可能有8个解。
根据一些实施例,在得到s3之后,可以将s3反代入(21')以导出关于u的线性齐次方程组。根据一些实施例,可以通过线性系统(21')通过将s3反代入(21')并且设定s0=1来计算s1和s2。
根据一些实施例,在方法3000中获得旋转矩阵(动作3030)可以包括,在获得s1、s2和s3后,用(3')计算R。根据一些实施例,可以通过(6')计算τ。根据一些实施例,获得(动作3030)t可以包括使用方程(9')获得t。
根据一些实施例,可以使用迭代方法来细化解决方案,例如,如“Arobust andefficient algorithm for the pnl problem using algebraic distance toapproximate the reprojection distance”、IEEE模式分析和机器智能汇刊上发表的“Pose estimation from line correspondences:A complete analysis and a seriesof solutions”以及Machine Vision and Applications 30上发表的“Camera poseestimation from lines:a fast,robust and general method”中描述的。可以通过最小化成本函数来细化解决方案(例如,如“A robust and efficient algorithm for the pnlproblem using algebraic distance to approximate the reprojection distance”中描述的),这是s和t的六阶多项式。在一些实施例中,阻尼牛顿步可用于细化解决方案(例如,如Zheng,Y、Kuang,Y.、Sugimoto,S.、Astrom,K.、Okutomi,M.在Proceedings of theIEEE International Conference on Computer Vision上发表的“Revisiting the pnpquestion:A fast,general and optimal solution”(其通过引用整体并入本文)以及“Arobust and efficient algorithm for the pnl problem using algebraic distanceto approximate the reprojection distance”中描述的)。具体地,对于第k步骤,我们计算关于s和t的成本函数的海赛函数(Hessian)Hk和梯度gk。则解决方案是[sk+1,tk+1]=[sk,tk]-(Hk+λI6)-1gk。这里在每个步骤中根据莱文贝格/马夸特(Levenberg/Marquardt)算法调节λ(例如,如More,J.J.在Numerical analysis上发表的“The levenberg-marquardtalgorithm:implementation and theory”中描述的,其通过引用整体并入本文),使成本在每一步骤都降低。可以认为成本最小的解决方案是解决方案。
根据一些实施例,在此描述的PnL解决方案适用于N≥3个2D/3D线对应关系。在一些实施例中,解决PnL问题的方法可以包括4个步骤。在一些实施例中,第一步骤可以包括将2N个约束(4')压缩成3个方程(15')。在一些实施例中,方程组3个方程(15')可以通过隐藏变量方法求解并恢复旋转R和平移t。根据一些实施例,可以通过阻尼牛顿步进一步细化PnL解决方案。图31示出根据一些实施例的用于求解PnL问题的示例性算法3100。
算法3100的步骤2(动作3120)和步骤3(动作3130)的计算复杂度是O(1),因为它与对应关系的数量无关。步骤1的主要计算成本是解决线性最小二乘问题(9')和(13')。步骤4的主要计算成本是计算平方距离函数的总和。这些步骤的计算复杂度相对于N线性增加。总而言之,算法3100的计算复杂度为O(N)。
根据一些实施例,在此描述的PnL问题的解决方案的算法的一部分被称为MinPnL。图24-27示出根据一些实施例的MinPnL算法与先前的P3L和最小二乘PnL算法的比较。所比较的用于解决P3L和最小二乘PnL算法的算法包括,对于P3L问题,三个最近的作品AlgP3L(例如,如Asian Conference on Computer Vision上发表的“A stable algebraic camerapose estimation for minimal configurations of 2d/3d point and linecorrespondences”中描述的)、RP3L(例如,如IEEE模式分析和机器智能汇刊上发表的“Poseestimation from line correspondences:A completeanalysis and a series ofsolutions”中描述的)和SRP3L(例如,如Wang,P.、Xu,G.、Cheng,Y.在Computer Vision andImage Understanding p.102711(2018)上发表的“A novel algebraic solution to theperspective-threeline pose problem”中描述的,其通过引用整体并入本文),以及对于最小二乘问题,OAPnL、SRPnL(例如,如在Computer Vision and Image Understandingp.102711(2018)上发表的“A novel algebraic solution to the perspective-threeline pose problem”中描述的)、ASPnL(例如,如IEEE模式分析和机器智能汇刊上发表的“Pose estimation from line correspondences:A complete analysis and aseries of solutions”中描述的)、Ansar(例如,如IEEE模式分析和机器智能汇刊25(5),578{589(2003)上发表的“Linear pose estimation from points or lines”中描述的)、Mirzaei(例如,如2011International Conference on Computer Vision上发表的“Optimal estimation of vanishing points in a manhattan world”中描述的)、LPnLDLT(例如,如IEEE模式分析和机器智能汇刊上发表的“Pose estimation from linecorrespondences:A complete analysis and a series of solutions”中描述的)、DLT组合线(例如,如arXiv preprint arXiv:1608.02824(2016)上发表的“Camera poseestimation from lines using pln ucker coordinates”中描述的)、DLT Plucker Lines(例如,如Computer Vision and Image Understanding上发表的“Absolute poseestimation from line correspondences using direct linear transformation”中描述的)、LPnL Bar LS(例如,如IEEE模式分析和机器智能汇刊上发表的“Pose estimationfrom line correspondences:A complete analysis and a series of solutions”中描述的)、LPnL Bar ENull(例如,如IEEE模式分析和机器智能汇刊上发表的“Poseestimation from line correspondences:A complete analysis and a series ofsolutions”中描述的)、cvxPnPL(例如,如“Cvxpnpl:A unified convex solution to theabsolute pose estimation problem from point and line correspondences”中描述的)、OPnPL和EPnPL平面(例如,如European Conference on Computer Vision上发表的“Accurate and linear time pose estimation from points and lines”中描述的)。
在图24-27中,以下度量(例如,如先前作品Computer Vision and ImageUnderstanding上发表的“Absolute pose estimation from line correspondencesusing direct linear transformation”和“A robust and efficient algorithm forthe pnl problem using algebraic distance to approximate the reprojectiondistance”中描述的)被用于测量估计误差。具体地,假设Rgt和tgt是真实数据的旋转和平移,以及是估计的旋转和平移,旋转误差可被计算为的轴角表示的角度(度),并且平移误差Δt可被计算为
对于图24-26,使用合成数据来评估不同算法的性能。首先比较方程组(15')的多项式求解器以及Gram-Schmidt过程的效果,然后将MinPnL与最先进的P3L和最小二乘PnL算法进行比较。
生成用于图24-26中比较目的的合成数据,类似于“A robust and efficientalgorithm for the pnl problem using algebraic distance to approximate thereprojection distance”、Pattern recognition上发表的“The planar three-linejunction perspective problem with application to the recognition of polygonalpatterns”、IEEE模式分析和机器智能汇刊上发表的“Pose estimation from linecorrespondences:A complete analysis and a series of solutions”以及MachineVision and Applications 30上发表的“Camera pose estimation from lines:a fast,robust and general method”中描述的,其通过引用整体并入本文。具体地,相机分辨率可以设定为640×480像素,并且焦距设定为800。欧拉角α、B、λ可以用于生成旋转矩阵。对于每次试验,相机随机放置在[-10m;10m]3立方体内并且欧拉角从α,λ∈[0°,360°]和β∈[00,1800]均匀采样。然后随机生成N个2D/3D线对应关系。首先随机生成2D线的端点,然后通过将2D端点投影到3D空间来生成3D端点。3D端点的深度在[4m;10m]内。然后将这些3D端点变换为世界坐标系。
可使用直方图和箱线图来比较估计误差。直方图用于呈现误差的主要分布,而箱线图可用于更好地示出较大的误差。在箱线图中,每个框的中心标记指示中值,并且底部和顶部边缘分别指示第25百分位数和第75百分位数。晶须(whiskers)扩展到+/-2.7标准偏差,并且使用“+”符号单独绘制超出此范围的误差。使用10000次试验将隐藏变量(HV)多项式求解器的数值稳定性与Grobner、E3Q3和RE3Q3算法进行了比较(例如,如“A robust andefficient algorithm for the pnl problem using algebraic distance toapproximate the reprojection distance”中描述的)。
图20A-B示出结果。很明显,隐藏变量求解器比其它算法更稳定。在Proceedingsof the IEEE Conference on Computer Vision and Pattern Recognition上发表的“Efficient solvers for minimal problems by syzygy-based reduction”、EuropeanConference on Computer Vision上发表的“Upnp:An optimal o(n)solution to theabsolute pose problem with universal applicability”和“A robust and efficientalgorithm for the pnl problem using algebraic distance to approximate thereprojection distance”中描述的算法产生很大的误差。由于Grobner方法、E3Q3和RE3Q3都涉及计算矩阵的逆,它们可能会遇到数值问题,从而可能导致这些大的误差。
在此描述的方法的一个关键步骤是将Kr=0(10')重组为K3r3=-K7r7(13’)。对于r3存在84种选择。不同的选择可能对数值稳定性具有不同的影响。考虑r3的3个选择,即[s1s2,s1s3,s2s3]和[s1,s2,s3],分别命名为MinPn_si 2、MinPnL_sisi和MinPnL_si。对于该比较,对应关系的数量N从4增加到20,并且噪声的标准偏差设定为2个像素。为了测试性能,对每个N进行了1000次试验。
图23A-B展示了结果。图23A示出不同P3L算法之间以度为单位的平均旋转误差的比较。图23B示出不同P3L算法之间的旋转误差的箱线图。当K3逼近奇异矩阵时,r3的固定选择可能遇到数值问题。在本文描述的算法的解决方案的一些实施例中使用的Gram-Schmidt过程可以解决该问题,从而产生更稳定的结果。
MinP3L(如在此描述的P3L问题的解决方案)可以与先前P3L算法进行比较,先前P3L算法包括AlgP3L(例如,如Asian Conference on Computer Vision上发表的“A stablealgebraic camera pose estimation for minimal configurations of 2d/3d pointand line correspondences”中描述的)、RP3L(例如,如IEEE模式分析和机器智能汇刊上发表的“Pose estimation from line correspondences:A complete analysis and aseries of solutions”中描述的)和SRP3L。为了公平地比较性能,结果没有迭代细化,因为比较的算法没有细化。必须考虑不同算法的数值稳定性,即没有噪声的估计误差。为了测试准确性进行了10000次试验。图22A-B示出了结果。图22A示出在此描述的算法的实施例的和算法AlgP3L、RP3L和SRP3L的旋转误差的箱线图。图22B示出在此描述的算法的实施例和先前算法AlgP3L、RP3L和SRP3L的平移误差的箱线图。使用在此描述的方法和技术实现的MinP3L的旋转和平移误差小于10-5。其它算法均产生较大的误差,如图22的箱线图中较长的尾部所示。然后考虑P3L算法在不同噪声水平下的表现。高斯噪声被添加到2D线的端点。标准偏差从0.5增加到5个像素。图23A-B示出了结果。图23A示出在此描述的算法的实施例和先前算法AlgP3L、RP3L和SRP3L的平均旋转误差。图23B示出在此描述的算法的实施例和先前算法AlgP3L、RP3L和SRP3L的平均平移误差。
使用在此描述的技术实现的MinP3L算法示出稳定性。与无噪声情况类似,所比较的算法(例如,如Asian Conference on Computer Vision上发表的“A stable algebraiccamera pose estimation for minimal configurations of 2d/3d point and linecorrespondences”、IEEE模式分析和机器智能汇刊上发表的“Pose estimation from linecorrespondences:Acomplete analysis and a series of solutions”中描述的)各自具有比使用在此描述的技术开发的算法更长的尾部。这可能是由这些算法中的数值不稳定操作引起的。
如参考文献“A robust and efficient algorithm for the pnl problem usingalgebraic distance to approximate the reprojection distance”、IEEE模式分析和机器智能汇刊上发表的“Pose estimation from line correspondences:A completeanalysis and a series of solutions”以及Machine Vision and Applications 30上发表的“Camera pose estimation from lines:a fast,robust and general method”中所讨论的,考虑了2D线段的两种配置,包括居中情况(例如,2D线段均匀分布在整个图像内)和非居中情况(例如,2D线段被约束在[0,160]×[0,120]内)。从500次独立试验中得到以下结果。
在第一实验中,考虑PnL算法的性能用于不同数量的对应关系。添加到2D线端点的高斯噪声的标准偏差被设定为2个像素。在第二实验中,我们考虑增加噪声水平的情况。σ是从0.5像素到5像素,步长为0.5像素,并且N设定为10。图24A-D和25A-D示出平均误差和中值误差。图24A示出不同PnL算法的平均旋转误差。图24B示出不同PnL算法的平均平移误差。图24C示出不同PnL算法的中值旋转误差。图24D示出不同PnL算法的中值平移误差。图25A示出不同PnL算法的平均旋转误差。图25B示出不同PnL算法的平均平移误差。图25C示出不同PnL算法的中值旋转误差。图25D示出不同PnL算法的中值平移误差。
通常,基于多项式公式的解决方案比线性解决方案更稳定。其它算法提供明显更大的误差。此外,还考虑了PnL算法在平面配置中的性能(即当所有3D线都在一个平面上时)。平面配置广泛存在于人造环境中。然而,许多PnL算法对于平面配置是不可行的,如“Arobust and efficient algorithm for the pnl problem using algebraic distanceto approximate the reprojection distance”中所示。在这里,如图26A-D和27A-D中所示的比较5个PnL算法。图26A示出不同PnL算法的平均旋转误差。图26B示出不同PnL算法的平均平移误差。图26C示出不同PnL算法的中值旋转误差。图26D示出不同PnL算法的中值平移误差。图27A示出不同PnL算法的平均旋转误差。图27B示出不同PnL算法的平均平移误差。图27C示出不同PnL算法的中值旋转误差。图27D示出不同PnL算法的中值平移误差。
使用在此描述的技术和方法实现的MinPnL实现了最优结果。cvxPnPL和ASPnL(例如,如IEEE模式分析和机器智能汇刊上发表的“Pose estimation from linecorrespondences:A complete analysis and aseries of solutions”中描述的)生成超出范围的大误差。
即使当特征点和特征线存在于同一平面上时,在此描述的用于使用特征来确定相机的姿态的一些方法和技术也可以工作。
示例
还使用真实数据来评估PnL算法。使用MPI和VGG数据集来评估性能。它们总共包括10个数据集,其特征如表1中列出。这里我们使用绝对平移误差而不是模拟中的相对误差,因为在一些情况下真实数据平移是[0;0;0]。图28示出了呈现结果的表1。在BB数据集上,一些算法即使对数百条线也会产生很大的误差,诸如Mirzaei(例如,如Mirzaei,F.M.、Roumeliotis,S.I.在2011IEEE International Conference on Robotics andAutomation.pp.5581{5588.IEEE(2011)上发表的“Globally optimal pose estimationfrom line correspondences”中描述的,其通过引用整体并入本文)、ASPnL(例如,如IEEE模式分析和机器智能汇刊上发表的“Pose estimation from line correspondences:Acomplete analysis and a series of solutions”中描述的)和SRPnL(例如,如MachineVision and Applications 30上发表的“Camera pose estimation from lines:a fast,robust and general method”中描述的)。在所比较的算法中,算法MinPnL取得了最优的结果,除了MC2数据集,算法MinPnL比OAPnL的结果稍差。但是MinPnL算法要快得多,如下一节中所示。
在3.1HZ intel i7膝上型计算机上采用Matlab 2019a确定PnL算法的计算时间。图29A-C示出500个独立试验的结果。Ansar和cvxPnPL算法很慢,并且因此没有显示在图表的范围内。如图29A-C中可见,LPnL Bar LS是测试中最快的,但它并不稳定。如上所示,OAPnL和根据在此所述的实施例的算法通常是最稳定的两种算法。如图29B中所示,根据在此描述的实施例的算法比OAPnL快约2倍。与线性算法DLT Combined(例如,如ComputerVision and Image Understanding上发表的“Absolute pose estimation from linecorrespondences using direct linear transformation”中描述的)和DLT Plucker(例如,如arXiv preprint上发表的“Camera pose estimation from lines using pln uckercoordinates”中描述的)相比,MinPnL算法具有相似的运行时间,当N在100以内时,略高于LPnL Bar ENull(例如,如在IEEE模式分析和机器智能汇刊上发表的“Pose estimationfrom line correspondences:A complete analysis and a series of solutions”中描述的),并且当N很大时,比LPnL DLT(例如,如在IEEE模式分析和机器智能汇刊上发表的“Pose estimation from line correspondences:A complete analysis and a seriesof solutions”中所述)更快。
图29A是许多算法的计算时间的图。
图29B是在此描述的算法的实施例的计算时间与涉及多项式系统的算法的计算时间相比的图。
图29C是在此描述的算法的实施例的计算时间与基于线性变换的算法的计算时间相比的图。
进一步的考虑
图32示出根据一些实施例的计算机系统1900的示例性形式的机器的图解表示,其中可以执行一组指令,用于使机器执行在此讨论的任何一个或多个方法。在替代实施例中,机器作为独立设备操作或可以连接(例如,联网)到其它机器。此外,虽然仅示出了单个机器,但术语“机器”也可包括单独或联合执行一组(或多组)指令以执行在此讨论的任何一种或多种方法的机器的任何集合。
示例性计算机系统1900包括经由总线1908彼此通信的处理器1902(例如,中央处理单元(CPU)、图形处理单元(GPU)或二者))、主存储器1904(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM),诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等),以及静态存储器1906(例如,闪存、静态随机存取存储器(SRAM)等)。
计算机系统1900可以进一步包括磁盘驱动单元1916和网络接口设备1920。
磁盘驱动单元1916包括机器可读介质1922,其上存储有体现在此所述的任何一种或多种方法或功能的一组或多组指令1924(例如,软件)。该软件还可以在由计算机系统1900执行期间完全或至少部分地驻留在主存储器1904内和/或处理器1902内,主存储器1904和处理器1902也构成机器可读介质。
软件还可以经由网络接口设备1920在网络18上发送或接收。
计算机系统1900包括用于驱动投影仪以生成光的驱动芯片1950。驱动芯片1950包括其自己的数据存储1960和其自己的处理器1962。
虽然在示例性实施例中机器可读介质1922被示为单个介质,但术语“机器可读介质”应理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的缓存和服务器)。术语“机器可读介质”还应理解为包括能够存储、编码或携带由机器执行的一组指令并导致机器执行本发明的任何一种或多种方法的任何介质。因此,术语“机器可读介质”应包括但不限于固态存储器、光和磁介质以及载波信号。
根据各种实施例,通信网络1928可以是局域网(LAN)、蜂窝电话网络、蓝牙网络、互联网或任何其它此类网络。
已经如此描述了一些实施例的几个方面,可以理解,本领域技术人员将容易地想到各种改变、修改和改进。
作为一个示例,结合增强的(AR)环境来描述实施例。可以理解,在此所述的一些或所有技术可以应用于MR环境中或更一般地应用于其它XR环境和VR环境中。
作为另一个示例,结合诸如可穿戴设备的设备来描述实施例。可以理解,在此所述的一些或所有技术可以经由网络(诸如云)、离散应用和/或设备、网络和离散应用的任何合适组合来实现。
该改变、修改和改进旨在成为本公开的一部分并且旨在落入本公开的精神和范围内。此外,虽然指出了本公开的优点,但可以理解,并非本公开的每个实施例都将包括每个描述的优点。一些实施例可能不实现在此和在一些情况下描述为有利的任何特征。因此,前述描述和附图仅作为示例。
本公开的上述实施例可以以多种方式中的任一种来实现。例如,可以使用硬件、软件或其组合来实现实施例。当以软件实现时,软件代码可以在任何合适的处理器或处理器集合上执行,无论是在单个计算机中提供还是分布在多个计算机中。该处理器可以实现为集成电路,在集成电路部件中具有一个或多个处理器,包括在本领域中以诸如CPU芯片、GPU芯片、微处理器、微控制器或协处理器的名称已知的可商购的集成电路部件。在一些实施例中,处理器可以在定制电路(诸如ASIC)或由配置可编程逻辑器件产生的半定制电路中实现。作为又一替代方案,处理器可以是较大电路或半导体器件的一部分,无论是可商购的、半定制的还是定制的。作为具体示例,一些可商购的微处理器具有多个内核,使得这些内核中的一个内核或一个子集可以构成处理器。但是,可以使用任何合适格式的电路来实现处理器。
此外,可以理解,计算机可以以多种形式中的任何一种形式来体现,诸如机架安装计算机、台式计算机、膝上型计算机或平板计算机。此外,计算机可以嵌入通常不被视为计算机但具有适当处理能力的设备中,包括个人数字助理(PDA)、智能电话或任何其它合适的便携式或固定电子设备。
此外,计算机可以具有一个或多个输入和输出设备。除其他外,这些设备可用于呈现用户界面。可用于提供用户界面的输出设备的示例包括用于视觉呈现输出的打印机或显示屏以及用于可听呈现输出的扬声器或其它声音生成设备。可用于用户界面的输入设备的示例包括键盘和指示设备,诸如鼠标、触摸板和数字化平板计算机。作为另一个示例,计算机可以通过语音识别或其它可听格式接收输入信息。在所示实施例中,输入/输出设备被示为与计算设备物理分离。然而,在一些实施例中,输入和/或输出设备可以物理地集成到与处理器或计算设备的其它元件相同的单元中。例如,键盘可能实现为触摸屏上的软键盘。在一些实施例中,输入/输出设备可以与计算设备完全断开,并且通过无线连接在功能上集成。
此类计算机可以通过一个或多个网络以任何合适的形式互连,包括局域网或广域网,诸如企业网络或互联网。此类网络可以基于任何合适的技术并且可以根据任何合适的协议操作并且可以包括无线网络、有线网络或光纤网络。
此外,在此概述的各种方法或过程可被编码为可在采用多种操作系统或平台中的任何一种系统或平台的一个或多个处理器上执行的软件。此外,该软件可以使用多种合适的编程语言和/或编程或脚本工具中的任何一种来编写,并且还可以编译为在框架或虚拟机上执行的可执行机器语言代码或中间代码。
在该方面,本公开可以体现为编码有一个或多个程序的计算机可读存储介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、压缩盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存、现场可编程门阵列或其它半导体器件中的电路配置,或其它有形计算机存储介质),该程序当在一个或多个计算机或其它处理器上执行时,执行实现上述公开的各种实施例的方法。如从前述示例中显而易见的,计算机可读存储介质可以将信息保留足够时间以提供非暂态形式的计算机可执行指令。该一种或多种计算机可读存储介质可以是可传输的,使得存储在其上的一个或多个程序可以被加载到一个或多个不同的计算机或其它处理器上以实现如上所述的本公开的各个方面。如在此所使用的,术语“计算机可读存储介质”仅包括可被认为是制品(即,制造品)或机器的计算机可读介质。在一些实施例中,本公开可以体现为不同于计算机可读存储介质的计算机可读介质,诸如传播信号。
术语“程序”或“软件”在此以一般意义使用,指代可用于对计算机或其它处理器进行编程以实现如上面所讨论的本公开的各个方面的任何类型的计算机代码或计算机可执行指令集。
另外,可以理解,根据本实施例的一个方面,当被执行时执行本公开的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以以模块化方式分布在许多不同的计算机或处理器中执行本公开的各个方面。
计算机可执行指令可以是由一个或多个计算机或其它设备执行的多种形式,诸如程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。通常,在各种实施例中程序模块的功能可以根据需要组合或分布。
此外,数据结构可以以任何合适的形式存储在计算机可读介质中。为了说明简单,数据结构可以被示为具有通过数据结构中的位置相关的字段。该关系同样可以通过在传送字段之间的关系的计算机可读介质中分配具有位置的字段的存储来实现。然而,可以使用任何合适的机制来建立数据结构的字段中的信息之间的关系,包括通过使用建立数据元素之间的关系的指针、标签或其它机制。
本公开的各个方面可以单独使用、组合使用或以在前述实施例中未具体讨论的各种布置方式使用,并且因此其应用不限于在前面的描述中阐述或在附图中示出的部件的细节和布置。例如,一个实施例中描述的方面可以以任何方式与其它实施例中描述的方面组合。
此外,本公开可以体现为一种方法,已经提供了该方法的示例。作为该方法的一部分执行的动作可以以任何合适的方式排序。因此,可以构造其中以不同于所示的顺序执行动作的实施例,这可以包括同时执行一些动作,即使在说明性实施例中这些动作被示为顺序动作。
在权利要求中使用诸如“第一”、“第二”、“第三”等序数术语来修改权利要求元素本身并不意味着一个权利要求元素相对于另一个权利要求元素的任何优先权、优先级或顺序或执行方法的动作的时间顺序,但仅用作标签,以区分具有特定名称的一个权利要求元素与具有相同名称的另一个元素(但使用序数术语)以区分权利要求元素。
此外,在此使用的措辞和术语是出于描述的目的,不应被视为限制性的。本文中“包括”、“包含”或“具有”、“含有”、“涉及”及其变体的使用意在涵盖其后列出的项目及其等同物以及附加项目。
一些值被描述为通过“最小化”或“优化”导出。应该理解,诸如“最小化”和“优化”的词可能但不一定需要找到最小或最大的可能值。相反,这些结果可以通过基于实际约束找到最小值或最大值来实现,诸如过程的迭代次数或执行过程的连续迭代直到迭代之间的变化低于阈值。
Claims (37)
1.一种基于用相机采集的一个或多个图像来确定所述相机相对于地图的姿态的方法,其中,所述姿态被表示为旋转矩阵和平移矩阵,所述方法包括:
在所述一个或多个图像中的点和/或线的组合与所述地图之间建立对应关系;
将所述对应关系变换为一组三个二阶多项式方程;
针对所述旋转矩阵求解所述一组方程;以及
基于所述旋转矩阵计算所述平移矩阵。
2.根据权利要求1所述的方法,其中,基于所述一个或多个图像的特性动态地确定所述点和/或线的组合。
3.根据权利要求1所述的方法,进一步包括:通过最小化成本函数来细化所述姿态。
4.根据权利要求1所述的方法,进一步包括:通过使用阻尼牛顿步来细化所述姿态。
5.根据权利要求1所述的方法,其中,将所述对应关系变换为一组三个二阶多项式方程包括:
从所述对应关系中导出一组约束;
形成所述平移矩阵的封闭形式表达;以及
使用3D向量来形成所述旋转矩阵的参数化。
6.根据权利要求1所述的方法,其中,将所述对应关系变换为一组三个二阶多项式方程进一步包括:通过秩近似来去噪。
7.根据权利要求1所述的方法,其中,针对所述旋转矩阵求解所述一组方程包括使用隐藏变量方法。
8.根据权利要求1所述的方法,其中,使用3D向量来形成所述旋转矩阵的所述参数化包括使用Cayley-Gibbs-Rodriguez(CGR)参数化。
9.根据权利要求5所述的方法,其中,形成所述平移矩阵的封闭形式表达包括:使用所述一组约束来形成线性方程组。
10.一种基于用相机采集的一个或多个图像来确定所述相机相对于地图的姿态的方法,其中,所述姿态被表示为旋转矩阵和平移矩阵,所述方法包括:
在所述一个或多个图像中的点和/或线的组合与所述地图之间建立多个对应关系;
将所述对应关系表达为多个变量的超定方程组;
将所述超定方程组格式化为元变量的最小方程组,其中,所述元变量中的每个元变量表示一组多个变量;
基于所述最小方程组计算所述元变量的值;以及
从所述元变量计算所述姿态。
11.根据权利要求10所述的方法,其中,基于所述一个或多个图像的特性动态地确定所述点和/或线的组合。
12.根据权利要求11所述的方法,其中,从所述元变量计算所述姿态包括:
计算所述旋转矩阵;以及
基于所述旋转矩阵计算所述平移矩阵。
13.根据权利要求11所述的方法,其中,基于所述旋转矩阵计算所述平移矩阵包括:从基于所述旋转矩阵表达所述多个对应关系并且相对于所述平移矩阵是线性的方程计算所述平移矩阵。
14.根据权利要求12所述的方法,其中,计算所述平移矩阵包括:
从所述对应关系中导出一组约束;
形成所述平移矩阵的封闭形式表达;以及
使用所述一组约束形成线性方程组。
15.一种非暂态计算机可读存储介质,其存储指令,所述指令在由至少一个处理器执行时使所述至少一个处理器执行方法,所述方法包括:
在一个或多个图像中的点和/或线的组合与地图之间建立对应关系;
将所述对应关系变换为一组三个二阶多项式方程;
针对所述旋转矩阵求解所述一组方程;以及
基于所述旋转矩阵计算所述平移矩阵。
16.根据权利要求15所述的非暂态计算机可读存储介质,其中:
所述一个或多个图像中的所述点和/或线是二维特征;以及
所述地图中的对应特征是三维特征。
17.一种非暂态计算机可读存储介质,其存储指令,所述指令在由至少一个处理器执行时使所述至少一个处理器执行方法,所述方法包括:
在一个或多个图像中的点和/或线的组合与地图之间建立多个对应关系;
将所述对应关系表达为多个变量的超定方程组;
将所述超定方程组格式化为元变量的最小方程组,其中所述元变量中的每个元变量表示一组多个变量;
基于所述最小方程组计算所述元变量的值;以及
从所述元变量计算所述姿态。
18.一种便携式电子设备,包括:
相机,其被配置为采集3D环境的一个或多个图像;以及
至少一个处理器,其被配置为执行计算机可执行指令,其中,所述计算机可执行指令包括用于基于所述一个或多个图像确定所述相机相对于地图的姿态的指令,包括:
确定关于所述3D环境的所述一个或多个图像中的点和/或线的组合的信息;
向定位服务发送关于所述一个或多个图像中的所述点和/或线的组合的所述信息,以确定所述相机相对于所述地图的姿态;以及
从所述定位服务接收所述相机相对于所述地图的所述姿态,所述姿态被表示为旋转矩阵和平移矩阵。
19.根据权利要求18所述的便携式电子设备,其中,在所述便携式电子设备上实现所述定位服务。
20.根据权利要求18所述的便携式电子设备,其中,在远离所述便携式电子设备的服务器上实现所述定位服务,其中,关于所述一个或多个图像中的所述点和/或线的组合的所述信息通过网络被发送到所述定位服务。
21.根据权利要求19或20所述的便携式电子设备,其中,确定所述相机相对于所述地图的所述姿态包括:
在所述一个或多个图像中的所述点和/或线的组合与所述地图之间建立对应关系;
将所述对应关系变换为一组三个二阶多项式方程;
针对所述旋转矩阵求解所述一组方程;以及
基于所述旋转矩阵计算所述平移矩阵。
22.根据权利要求21所述的便携式电子设备,其中,基于所述一个或多个图像的特性动态地确定所述点和/或线的组合。
23.根据权利要求21所述的便携式电子设备,其中,确定所述相机相对于所述地图的所述姿态进一步包括:通过最小化成本函数来细化所述姿态。
24.根据权利要求21所述的便携式电子设备,其中,确定所述相机相对于所述地图的所述姿态进一步包括:通过使用阻尼牛顿步来细化所述姿态。
25.根据权利要求21所述的便携式电子设备,其中,将所述对应关系变换为一组三个二阶多项式方程包括:
从所述对应关系中导出一组约束;
形成所述平移矩阵的封闭形式表达;以及
使用3D向量来形成所述旋转矩阵的参数化。
26.根据权利要求21所述的便携式电子设备,其中,将所述对应关系变换为一组三个二阶多项式方程进一步包括:通过秩近似来去噪。
27.根据权利要求21所述的便携式电子设备,其中,针对所述旋转矩阵求解所述一组方程包括使用隐藏变量方法。
28.根据权利要求25所述的便携式电子设备,其中,使用3D向量来形成所述旋转矩阵的参数化包括使用Cayley-Gibbs-Rodriguez(CGR)参数化。
29.根据权利要求25所述的便携式电子设备,其中,形成所述平移矩阵的封闭形式表达包括:使用所述一组约束来形成线性方程组。
30.根据权利要求19或20所述的便携式电子设备,其中,确定所述相机相对于所述地图的所述姿态包括:
在所述一个或多个图像中的所述点和/或线的组合与所述地图之间建立对应关系;
将所述对应关系表达为多个变量的超定方程组;
将所述超定方程组格式化为元变量的最小方程组,其中,所述元变量中的每个元变量表示一组所述多个变量;
基于所述最小方程组计算所述元变量的值;以及
从所述元变量计算所述姿态。
31.根据权利要求30所述的便携式电子设备,其中,基于所述一个或多个图像的特性动态地确定所述点和/或线的组合。
32.根据权利要求30所述的便携式电子设备,其中,从所述元变量计算所述姿态包括:
计算所述旋转矩阵;以及
基于所述旋转矩阵计算所述平移矩阵。
33.根据权利要求32所述的便携式电子设备,其中,基于所述旋转矩阵计算所述平移矩阵包括:从基于所述旋转矩阵表达所述多个对应关系并且相对于所述平移矩阵是线性的方程计算所述平移矩阵。
34.根据权利要求32所述的便携式电子设备,其中,计算所述平移矩阵包括:
从所述对应关系中导出一组约束;
形成所述平移矩阵的封闭形式表达;以及
使用所述一组约束形成线性方程组。
35.根据权利要求30所述的便携式电子设备,其中:
所述一个或多个图像中的所述点和线是二维特征;以及
所述地图中的对应特征是三维特征。
36.一种用于基于由相机采集的3D环境的一个或多个图像来确定所述相机相对于地图的姿态的方法,包括:
确定关于所述3D环境的所述一个或多个图像中的点和/或线的组合的信息;
向定位服务发送关于所述一个或多个图像中的所述点和/或线的组合的所述信息,以确定所述相机相对于所述地图的姿态;以及
从所述定位服务接收所述相机相对于所述地图的所述姿态,所述姿态被表示为旋转矩阵和平移矩阵。
37.一种非暂态计算机可读介质,包括用于由至少一个处理器执行的计算机可执行指令,其中,所述计算机可执行指令包括用于基于由相机采集的3D环境的一个或多个图像确定所述相机相对于地图的姿态的指令,包括:
确定关于所述3D环境的所述一个或多个图像中的点和/或线的组合的信息;
向定位服务发送关于所述一个或多个图像中的所述点和/或线的组合的所述信息,以确定所述相机相对于所述地图的姿态;以及
从所述定位服务接收所述相机相对于所述地图的所述姿态,所述姿态被表示为旋转矩阵和平移矩阵。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062984688P | 2020-03-03 | 2020-03-03 | |
US62/984,688 | 2020-03-03 | ||
US202063085994P | 2020-09-30 | 2020-09-30 | |
US63/085,994 | 2020-09-30 | ||
PCT/US2021/020403 WO2021178366A1 (en) | 2020-03-03 | 2021-03-02 | Efficient localization based on multiple feature types |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115349140A true CN115349140A (zh) | 2022-11-15 |
Family
ID=77554890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180018922.3A Pending CN115349140A (zh) | 2020-03-03 | 2021-03-02 | 基于多种特征类型的有效定位 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11748905B2 (zh) |
EP (1) | EP4115329A4 (zh) |
JP (1) | JP2023516656A (zh) |
CN (1) | CN115349140A (zh) |
WO (1) | WO2021178366A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022026609A1 (en) * | 2020-07-29 | 2022-02-03 | Magic Leap, Inc. | Camera extrinsic calibration via ray intersections |
US12008740B2 (en) * | 2020-08-12 | 2024-06-11 | Niantic, Inc. | Feature matching using features extracted from perspective corrected image |
WO2023052264A1 (en) * | 2021-09-29 | 2023-04-06 | Sony Group Corporation | Light-field camera, vision system for a vehicle, and method for operating a vision system for a vehicle |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8872928B2 (en) * | 2010-09-14 | 2014-10-28 | Adobe Systems Incorporated | Methods and apparatus for subspace video stabilization |
WO2014130854A1 (en) | 2013-02-21 | 2014-08-28 | Regents Of The Univesity Of Minnesota | Extrinsic parameter calibration of a vision-aided inertial navigation system |
US9930315B2 (en) | 2015-04-29 | 2018-03-27 | Lucid VR, Inc. | Stereoscopic 3D camera for virtual reality experience |
AU2018385695B2 (en) | 2017-12-15 | 2023-11-02 | Magic Leap, Inc. | Enhanced pose determination for display device |
US10964053B2 (en) * | 2018-07-02 | 2021-03-30 | Microsoft Technology Licensing, Llc | Device pose estimation using 3D line clouds |
JP7309849B2 (ja) | 2018-07-24 | 2023-07-18 | マジック リープ, インコーポレイテッド | 画像ディスプレイデバイスの位置特定マップを決定および/または評価するための方法および装置 |
US10839556B2 (en) * | 2018-10-23 | 2020-11-17 | Microsoft Technology Licensing, Llc | Camera pose estimation using obfuscated features |
-
2021
- 2021-03-02 WO PCT/US2021/020403 patent/WO2021178366A1/en unknown
- 2021-03-02 JP JP2022552439A patent/JP2023516656A/ja active Pending
- 2021-03-02 US US17/190,327 patent/US11748905B2/en active Active
- 2021-03-02 CN CN202180018922.3A patent/CN115349140A/zh active Pending
- 2021-03-02 EP EP21765469.8A patent/EP4115329A4/en active Pending
-
2023
- 2023-07-17 US US18/353,851 patent/US20240029301A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210279909A1 (en) | 2021-09-09 |
JP2023516656A (ja) | 2023-04-20 |
US20240029301A1 (en) | 2024-01-25 |
EP4115329A1 (en) | 2023-01-11 |
EP4115329A4 (en) | 2024-04-24 |
US11748905B2 (en) | 2023-09-05 |
WO2021178366A1 (en) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11900547B2 (en) | Cross reality system for large scale environments | |
US10444021B2 (en) | Methods for simultaneous localization and mapping (SLAM) and related apparatus and systems | |
US11869158B2 (en) | Cross reality system with localization service and shared location-based content | |
US11748963B2 (en) | Cross reality system with simplified programming of virtual content | |
US11790619B2 (en) | Cross reality system with accurate shared maps | |
US11830149B2 (en) | Cross reality system with prioritization of geolocation information for localization | |
US11551430B2 (en) | Cross reality system with fast localization | |
US20230108794A1 (en) | Cross reality system with wifi/gps based map merge | |
EP4046070A1 (en) | Cross reality system supporting multiple device types | |
US11748905B2 (en) | Efficient localization based on multiple feature types | |
US20210358173A1 (en) | Computationally efficient method for computing a composite representation of a 3d environment | |
JP7504212B2 (ja) | Wifi/gpsベースのマップマージを伴うクロスリアリティシステム | |
US20240127538A1 (en) | Scene understanding using occupancy grids |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |