微软XR专利提出以轻量级方式收集遥测数据并更新3D映射

HoloLens QQ群493967447

查看引用/信息源请点击:映维网Nweon

以轻量级和增强隐私的方式收集遥测数据并更新3D映射

映维网Nweon 2023年12月13日)环境的3D映射是环境中的3D位置和与3D位置相关的捕获图像的集合。所述关联或者来自描述环境中3D位置的landmark的捕获图像,或者来自由具有环境中的3D位置和方向的捕获设备捕获的图像。绘制的环境是任何室内或室外环境,如家庭、办公室内部、花园、公共火车站或其他环境。

遥测数据可以用于映射优化。但由于各种原因,包括隐私、安全、缺乏计算资源、缺乏通信网络带宽等,目前难以获得合适的遥测数据。所以在名为“Collecting telemetry data for 3d map updates”的专利申请中,微软提出了一种以轻量级和增强隐私的方式收集遥测数据并更新3D映射的方式。

所述方法包括执行第一重定位事件,其中:来自姿态追踪器在时间t1的观测的数据用于计算姿态追踪器的第一3D映射姿态,并且接收姿态追踪器在时间t1的第一本地姿态。第二重定位事件发生,其中根据来自当时的观测的数据计算姿态追踪器的第二3D映射姿态,并且接收姿态追踪器在时间t2的第二本地姿态。

计算第一和第二3D映射姿态之间的第一相对姿态。计算第一和第二本地姿态之间的第二相对姿态。作为第一相对姿态和第二相对姿态之间的差的残差存储为用于更新3D映射的过程的输入。

残差测量有助于提高3D映射的精度。残差同时可以用来衡量两个定位事件之间的映射精度。

图1是用于收集遥测数据以更新3D映射的3D映射重新定位服务122示意图。使用分布式架构部署映射更新功能118,分布式架构包括多个相互通信的工作节点和管理节点。在一个示例中,工作节点和管理节点部署在数据中心、计算节点集群或其他计算功能中。

映射更新功能通过通信网络114接收从一个或多个传感器捕获的传感器数据。映射更新功能可以访问存储在可通过通信网络114访问的位置的一个或多个3D映射106。

3D映射106可通过通信网络114访问,例如通过全息图共享和持久服务120和通过导航服务108访问。在一个示例中,导航服务108能够向3D映射106发送查询,以查找与给定3D位置关联的图像数据,或查找与给定图像关联的3D位置。在另一个示例中,导航服务108能够下载3D映射的一个区域或整个3D映射,以规划路线并向最终用户提供方向,例如头戴式增强现实设备的用户。

通信网络114包括3D映射重新定位服务122。可以将查询连同来自姿态追踪器观察的数据一起发送到3D映射重新定位服务。姿态追踪器观测的数据是姿态追踪器捕获的传感器数据或姿态追踪器捕获的传感器数据派生的数据。姿态追踪器观测数据用于查询3D映射,以查找3D映射姿态。

在一个典型的场景中,当一个姿态追踪器打开,并且它的本地追踪技术是从头开始初始化,或者当追踪失败了很短的一段时间时,就会使用3D映射重新定位服务122。另外,定期重新定位是必要的。在本文描述的示例中,为了便于遥测数据132的计算,在额外的时间使用3D映射定位服务122。

图2是一个3D映射的例子。所述映射包括多个landmark的3D位置。所述映射同时包括两个捕获装置的相对轨迹。实黑色线204表示第一捕获装置的轨迹。实黑色线208表示第二捕获装置的轨迹。每个轨迹标记的实点202、206是各自捕获装置的姿态。在轨迹204和208中及其周围显示的小黑点210是待优化环境中的landmark位置。

图3是获取用于更新3D映射的遥测数据的方法的流程图。

所述方法包括第一重新定位事件300和第二重新定位事件306。在第一个重新定位事件300中,使用姿态追踪器在时间t1观察到的数据来计算姿态追踪器的第一个3D映射姿态(map_pose_1)。同样在第一重新定位事件300中,接收姿态追踪器在时间t1 (local_pose_1)的第一个本地姿态。

在第二重定位事件306中,使用姿态追踪器在时间t2观察到的数据来计算姿态追踪器(map_pose_2)的第二个3D映射姿态。同样在第二重新定位事件306中,接收姿态追踪器在时间t2 (local_pose_2)的第二本地姿态。残差的计算公式:残差= (local_pose_2−local_pose_1)−(map_pose_2−map_pose_1)。

在31处,残差存储为用于更新3D映射的过程的输入。可选地重复图3所示的过程316,以便累加多个残差,例如数百个或数千个或更多个残差。

图4、图5、图6、图7为获取遥测数据以更新3D映射的各种方法示意图。图4到7显示为单独的方法,它们可以任意组合。

图4是获取用于更新3D映射的遥测数据的方法的示意图。姿态追踪器400由垂直线表示,3D映射重新定位服务402和3D映射404也是如此。图4中的水平线表示竖线所表示的实体之间发送的消息。水平线的相对垂直位置表示消息的时间顺序。

在406,姿态追踪器在t1时刻的观测数据从姿态追踪器400发送到3D映射重新定位服务402,并与姿态追踪器在t1时刻的本地姿态(local_pose_1)一起发送。姿态追踪器观察到的数据是从姿态追踪器捕获的图像或其他传感器数据中获得的特征。3D映射重新定位服务402具有关联的3D映射404。

在408,使用姿态追踪器在t1时刻的观测数据查询3D映射404。在410,3D映射中的位置可在3D映射重新定位服务402找到,位置是姿态追踪器的map_pose_1。这是第一重新定位事件。3D映射姿态可选地发送回姿态追踪器,其中3D映射姿态可用于重新定位姿态追踪器(。

稍后会发生第二重新定位事件。在414,姿态追踪器在时刻t2的观测数据从姿态追踪器400发送到3D映射重新定位服务402,并与姿态追踪器在时刻t2 (local_pose_2)的本地姿态一起发送。来自姿态追踪器观测的数据包括来自姿态追踪器捕获的图像或其他传感器数据的特征。

在416,使用姿态追踪器在时间t2的观测数据查询3D映射404。在418中,3D映射中的位置可以在3D映射重新定位服务402找到,位置是姿态追踪器的map_pose_2。

在422,根据公式(local_pose_2−local_pose_1)−(map_pose_2−map_pose_1)在3D重定位服务402计算残差。剩余的可以用来更新存储在云端的3D映射404。残差可选择从3D映射重新定位服务602发送到姿态追踪器。

图5是获取用于更新3D映射的遥测数据的另一种方法。图5表示使用垂直线的姿态追踪器500,使用垂直线的3D映射重新定位服务502和使用垂直线504的3D映射。

在506,查询连同在时刻t1与姿态追踪器500相关的位置信息一起从姿态追踪器500发送到3D映射重新定位服务502。基于位置数据,3D映射重新定位服务502从3D映射504请求3D映射504的一部分。映射部分由步骤510的3D映射重新定位服务获得,并发送到512的姿态追踪器。在姿态追踪器,使用与姿态追踪器观测时间t1相关的数据,在514找到与数据匹配的3D映射部分的位置和方向(map_pose_1)。姿态追踪器同时确定t1时刻的本地姿态,即local_pose_1。

在稍后的时间t2,姿态追踪器请求不同的3D映射部分。在316,带有位置信息的查询从姿态追踪器500发送到3D映射重新定位服务502。在518请求另一个映射部分,在520由3D映射重新定位服务获得,并在528发送到姿态追踪器。

第二个3D映射位姿map_pose_2是在522时使用位姿追踪器在时刻t2的观测数据计算。在合适的3D映射部分中找到最接近的匹配,即找到与所述数据匹配的3D映射部分中的位置和方向。姿态追踪器同时确定了t2时刻的本地姿态,即local_pose_2。

残差在534计算,并在526选择性地发送给3D映射重定位服务,残差为(local_pose_2−local_pose_1)−(map_pose_2−map_pose_1)。

图6是获取用于更新3D映射的遥测数据的另一种方法。在图6中,姿态追踪器600表示为垂直线,本地3D映射604表示为垂直线,并且是姿态追踪器的本地。3D映射重新定位服务602表示为一条垂直线。3D映射重新定位服务602使用的3D映射中的3D映射姿态(map_pose_1)具有与之关联的数据。

数据与map_pose_1一起从3D映射重新定位服务发送到姿态追踪器600。在608、610、612处,数据用于查询本地3D映射604,即在姿态追踪器上存储的本地3D映射中找到与从3D映射重新定位服务中获得的衍生特征相匹配的位置和方向(local_pose_1)。这是第一重新定位事件。

稍后,3D映射重新定位服务602发送另一个3D映射姿态(map_pose_2)。在616、618、620处,查询存储在姿态追踪器600的本地3D映射604,以在位置追踪器本地存储的本地3D映射中找到与衍生特征匹配的位置和方向(local_pose_2)。这是第二重新定位事件。

在622计算残差,残差为(local_pose_2−local_pose_1)−(map_pose_2−map_pose_1)。

图7是获取用于更新3D映射的遥测数据的另一种方法。在708,来自时间t1的姿态追踪器观测的数据从姿态追踪器700发送到3D映射重定位服务702。姿态追踪器同时使用追踪技术(local_pose_1)来确定姿态追踪器在t1处的本地姿态。

来自姿态追踪器观测的数据是从姿态追踪器700捕获的图像或其他传感器数据导出的特征。3D映射重定位服务702在中具有相关联的3D映射704。在710,712处,利用来自在时间t1处的姿态追踪器观测的数据来查询云中的3D映射704。在714,在3D映射重定位服务702处找到3D映射704中的位置和方向map_pose_1。在716,3D映射姿态发送到姿态追踪器700,并用于计算残差。这是第一重定位事件。

稍后会发生第二个重新定位事件。在720,姿态追踪器在时刻t2的观测数据从姿态追踪器700发送到3D映射重新定位服务702。姿态追踪器同时利用追踪技术(local_pose_2)确定姿态追踪器在t2处的本地姿态。

在722,724,3D映射704是用时刻t2的姿态追踪器观测数据查询。相关数据用于在3D映射中找到最接近的匹配,即3D映射中与衍生特征匹配的位置和方向。在726,3D映射中的位置在3D映射重新定位服务702中找到,位置是姿态追踪器的map_pose_2。3D映射姿态在728处发送到姿态追踪器700。

在732,根据公式(local_pose_2−local_pose_1)−(map_pose_2−map_pose_1)计算残差。可选地,残差发送到3D映射重新定位服务702。

通过利用本地姿态追踪和3D映射重新定位姿态的误差特性,残差测量有助于提高3D映射的精度。发明描述的两个重新定位事件的残差计算以非常规方式操作,以实现遥测数据的有效收集和计算。

相关专利Microsoft Patent | Collecting telemetry data for 3d map updates

名为“Collecting telemetry data for 3d map updates”的微软专利申请最初在2022年5月提交,并在日前由美国专利商标局公布。

需要注意的是,一般来说,美国专利申请接收审查后,自申请日或优先权日起18个月自动公布或根据申请人要求在申请日起18个月内进行公开。注意,专利申请公开不代表专利获批。在专利申请后,美国专利商标局需要进行实际审查,时间可能在1年至3年不等。

HoloLens QQ交流群493967447

您可能还喜欢...

专栏