在真实环境中进行定位和追踪十分重要,并可用于导航、对象识别、3D重建、虚拟现实和增强现实等用例。
可以使用各种计算机视觉方法来估计或确定追踪或定位信息,例如包含在摄像头姿态估计中的信息。改进的计算机视觉定位和追踪技术的一种方法是将环境信息添加到分析中。例如,可以使用环境因素,例如重力或其他已知的环境情况。
在另一个例子中,如果摄像头有惯性测量单元IMU,则可以从中获得环境信息并将其与图像相关联,从而提高定位和追踪。另外,无线信号,同样可用于帮助定位和追踪。
在名为“System for determining position both indoor and outdoor”的专利申请中,苹果提出了一种室内外位置确定系统,将所有计算机视觉和环境追踪和定位技术结合起来以实现改进的整体结果。
这家公司指出,通过在定位和追踪过程中同时包括传感器可检索信息和图像信息,发明可以在定位追踪方面取得优越的结果。例如,通过使用具有反映真实环境的多个摄像头图像以及在已知位置测量和/或生成的环境属性测量的环境属性值和位置的映射,可以更好或更容易地计算摄像头姿态估计。
在另一组实施例中,可以通过使用设备传感器来测量设备位置的一个或多个环境属性来定位设备。然后,测量的数量可以与环境映射相匹配,以进行定位或追踪确定,例如设备的初始姿态。在其他实施例中,初始姿态可用于增强随后基于机器视觉的摄像头姿态估计的速度或准确性。
图1A示出了与发明相关联的过程。在进程1001创建了一个环境属性映射。有一系列的方法可以创建环境属性映射,例如,通过使用组合的摄像头和传感器设备来收集真实环境中的参考图像和参考环境属性值。
在一个实施例中,环境属性图可以通过在现实世界环境中有意部署摄像头/传感器来构建以收集数据。在其他实施例中,数据可以以人群源方式收集,其中设备终端用户在其日常生活中移动,而设备为环境属性映射收集数据。
设备可以使用后台应用程序以不干扰终端用户享受其设备的方式收集数据。在另一实施例中,由于社区激励或明确的激励,人群源或其他终端用户可以使用前景应用程序来收集环境属性图的数据。
再次参考图1A,在过程1002中,环境属性映射用于定位项。在一个实施例中,终端用户的设备可以使用环境属性映射来方便导航(例如在建筑物内查找物品或方向)、增强现实(例如通过增强真实环境信息来了解真实环境中的物品)、以及虚拟现实(例如受现实世界活动影响的人工世界中的活动)。
图1B示出了另一个流程图,具体包括与创建环境属性图有关的实施例。在过程1010,环境属性在真实环境中测量。任何已知类型的传感器可用于进行测量,并且测量值可在进行测量的设备或在服务器或从测量设备接收测量数据的其他设备处理或存储。
在1011,捕获或获得真实环境的图像。在一个实施例中,所得到的图像文件包括或伴随着任何可用的图像元数据,例如时间和位置数据。
在1012,环境属性度量与图像数据相关联。例如,可以将数据库中的每个图像与在同一位置或与图像捕获同时进行的环境属性测量相关联。数据的关联可以发生在捕获设备,又可以发生在连接的服务器或其他计算机。
在1013,相关的数据被用来构造或更新(例如增加)一个环境属性映射。所述映射可以在测量和图像捕获的本地设备构造,又可以在连接的服务器构造。在一个实施例中,关于设备之间的工作负载共享,存在多个用于收集数据的本地设备。
在一个实施例中,多个本地设备将与另一个专门装备的本地设备通信,并且专门装备的本地设备将与服务器通信。专门配备的本地设备可以是收集数据的单元之一,也又以是不同的本地计算机。通过使用包含专门配备的本地设备的系统,所有本地设备都可以更加专业化,并且可以相应地划分工作负载。
图1C显示了另一个流程图,具体包括与使用环境属性图有关的实施例。在1020,用摄像头或传感器捕获或测量图像或环境信息,图1C所采用的用户摄像头/传感器可以与图1B所采用的摄像头/传感器相同或不同。
在1021,由用户摄像头/传感器捕获或测量的信息用作环境属性图的索引或入口点,以便确定用户摄像头/传感器的初始位置。例如,捕获/感知的信息可能包括来自特定WiFi路由器的WiFi强度。
通过将相关信息索引到环境属性映射中,一个相对较小的位置或区域可能会与特定WiFi路由器的WiFi强度相关联。然而,通过使用WiFi而不是计算机视觉,系统能够消除诸多看起来与用户摄像头/传感器正在读取的区域相同或相似的位置或区域。
捕获的或感测的信息可以根据实施例变化,并且可以同时使用一种或多种类型的感测/捕获的信息。另外,位置信息可以是真实环境中的任意位置。
在1021,获得的初始位置信息可用于选择用于精炼所述位置信息的数据集。例如,系统可能希望使用计算机视觉类型的技术为用户摄像头/传感器找到摄像头姿势。通过使用来自1021的初始位置信息,必须搜索或分析的计算机视觉信息的大小将大幅减小。
回想一下上面的WiFi的例子,如果真实的环境是一个城市街区,则在计算机视觉技术中可能会有数百万张图像需要考虑。另外,许多图片可能相似甚至相同。通过使用WiFi(或类似的)信息,可以从考虑中消除相对大量的图像。
最后,在1023为用户摄像头/传感器确定精细位置。在一个实施例中,精确位置由诸如SLAM的机器视觉技术确定,并且位置表示为摄像头/传感器姿势。
图1D示出了用于确定相对于真实环境的摄像头姿态的流程图。在101,提供了真实环境的多个参考图像。在一个或多个实施例中,所引用的图像可由照摄像头捕获。
101中提到的真实环境可以是任何真实环境,图2中显示了一个示例真实环境。参考图2,所示的真实环境为显示室内部分201和室外部分的顶视图。
根据一个或多个实施例,信号敏感对象211至217中的每一个都可以发送或接收环境信号。因此,例如,信号敏感对象211至217中的每一个都可以是发射机、接收器或收发器。另外,接收信号的信号敏感对象可以修改所接收的信号并发送修改后的信号。
图3显示了图2中具有附加特征的真实环境。例如,图3显示了传感器311、312、313、314、315、316、317、318和319。传感器311-319可以是测量或捕获有关真实环境的信息的任何类型的传感器。
再次参考图1D,在102,对多个参考图像中的每一个的参考摄像头位姿进行确定。例如,在一个或多个实施例中,参考摄像头姿势指示相对于捕获相应参考图像(或测量/拍摄的其他传感器数据)的位置的真实环境的姿势。
另外,根据实施例,所确定的姿势可以包括三维位置和方向或所述数据的任何部分。可以采用各种计算机视觉方法来基于由摄像头/传感器捕获/测量的一个或多个图像/数据来确定摄像头或传感器的参考摄像头姿势。
在一个实施例中,SLAM可用于确定用作参考的摄像头姿势。每个参考摄像头姿势通常是基于多个参考图像的分析。从参考图像中提取参考图像特征,并且确定每个参考图像特征的3D位置。
根据一个实施例,3D环境模型包括从参考图像提取的两个或多个参考图像特征。3D环境模型包括每个参考图像特征的3D位置。在一个实施例中,参考图像特征及其3D位置可以基于计算机视觉方法从参考图像中确定。在另一示例中,当可用于参考图像的深度信息时,可从深度信息确定多个参考图像特征的3D位置。
在用于组装3D环境模型的实施例中,如果一个或多个参考图像包含参考图像特征或与参考图像特征匹配的任何图像特征,则参考图像特征可以与一个或多个参考图像相关。
再次参照图1D,在103对至少一种环境特性进行或提供至少一种参考环境特性测量。例如,真实环境可能包含一个或多个不同的环境属性。可以测量每个环境属性以获得一个或多个环境属性测量。在一个例子中,一个环境属性可以由一个或多个传感器在不同位置或不同时间点多次测量。
在一个示例实施例中,一个环境属性表示由信号传感器发送的环境信号的属性。例如,环境属性可能是与任何信号的时序或信号强度相关的数据。具体的可能性有:蓝牙信号的信号强度;WLAN信号的信号强度;蓝牙信号到达的时间;蓝牙信号的传播时间;或者是超声波信号到达的时间。
现在参考图4,有一个描述由411、412、413、414、415、416、417、418、419、421、422和423指示的环境属性测量的插图。因此,411-419和421-423中的每一个都表示环境属性测量的位置,并且每个这样的测量可以包括一个或多个环境属性。
在一个实施例中,从一个或多个信号敏感对象211至217发送的环境信号可作为环境的特性由传感器测量。因此,环境属性可以通过一个或多个与摄像头/传感器311至319相关联的传感器来测量。
环境信号的信号强度,例如接收到的信号强度,可以作为参考环境属性测量进行测量。环境信号可以具有相同的信号类型,也可以具有不同的信号类型。
真实环境的温度和/或湿度可以通过附在摄像头的传感器来测量。温度和/或湿度可以在真实环境的不同位置或时间进行多次测量。照摄像头或传感器的重力或高度也可以作为参考环境属性测量来测量。光强度可以通过传感器来测量,例如连接在摄像头上的传感器。
再次参考图1D,在104,将一个或多个参考环境属性测量与至少一个测量传感器/摄像头姿势相关联。关联可以记录在存储器或数据库中,包括记录在用于快速或有效地访问信息的特殊数据结构中。
在一个示例中,在摄像头捕获一个或多个参考图像的一个或多个位置测量至少一个环境属性。可将用于摄像头311至319的参考摄像头姿态或部分参考摄像头姿态直接指定为参考环境属性测量411至419的测量姿态。在一个示例中,只有参考摄像头姿态的平移部分与各自的参考环境属性测量相关。在另一个示例中,可以将参考摄像头姿态的平移部分和旋转部分与各自的参考环境属性测量相关联。
再次参照图1D,在105,根据至少一个参考环境属性测量和至少一个测量姿势确定环境属性图。环境属性映射可以包括至少一对环境属性值和环境属性的位置。所述值可以是一个参考环境属性测量值,相应的位置可以是与所述参考环境属性测量值相关联的一个测量姿势。例如,环境属性映射可以包括至少部分的环境属性测量411至419和421至423及其相关的测量姿势。
图5显示了真实环境的插图。作为示例的一部分,假设在511、512、513或514指示的位置没有参考环境属性测量。然而,发明考虑通过内插或外推至少部分的环境属性测量值411至419和421至423来计算由511至514所指示的位置的环境属性值511至514。
因此在一个或多个实施例中,可以首先提供真实环境中的目标位置;然后,可以从所提供的目标位置和现有环境属性测量值及其相关位置确定环境属性值。
所确定的环境属性值可以与所提供的目标位置相关联,并且可以使用这种配对来构建或增强环境属性映射。当然,在许多实施例中,环境属性映射可以包括至少一部分环境属性度量411至419和421至423,以及至少一部分环境属性值511至514。环境属性测量表明该值由传感器确定,而环境属性值表明该值要么由传感器确定,要么由基于其他环境属性值的估计确定。
参照图1D,106提供了由摄像头或传感器在第一位置捕获的真实环境的当前图像。摄像头可以是使用环境映射进行导航、增强现实或虚拟现实的系统的终端用户的摄像头。
图6示出用户摄像头602,摄像头602可在602所指示的位置捕获真实环境201的当前图像。在本发明的一个或多个实施例中,确定用户摄像头602相对于真实环境201的当前摄像头姿态。
根据一个实施例,可以确定当前姿态如下:可以在当前图像中提取当前图像特征,并与多个参考图像中提取的参考图像特征相匹配;所述当前图像特征在当前图像中具有2D图像位置,所述参考图像特征具有3D位置;从特征匹配过程中构建2D-3D特征对应关系;然后,2D-3D特征对应可用于估计当前摄像头姿势。
然而,将当前图像特征与大量参考图像特征相匹配将会耗费大量的计算成本并且容易出错。例如,可能存在许多相似的参考图像特征,这将导致不正确的匹配。
对于环境201的示例,从房间222的参考图像提取的参考图像特征可以类似于从房间221的另一参考图像提取的参考图像特征,因为房间222和房间221可以具有相似的装饰。因此,确定较小且适当的参考图像特征子集并将当前图像特征与参考图像特征子集进行匹配将提高计算性能和匹配精度。
在一个实施例中,参考图像特征的适当子集可以从用户摄像头602的初始姿态确定。例如,可以从初始姿态定义视场,并将3D位置在视场内或视场外一定范围内的参考图像特征选择到适当的子集中。在另一个示例中,可以确定由初始姿态定义的位置周围的邻近区域。在邻近区域内具有3D位置的参考图像特征可以被选择到适当的子集中。
在另一个示例中,如果一个或多个参考图像的参考摄像头姿态接近初始姿态,则可以选择多个参考图像中的一个或多个参考图像。从所选参考图像中提取的参考图像特征可以确定为参考图像特征的适当子集。
根据另一实施例,具有用户摄像头602的初始姿态,如果一个或多个参考图像的参考摄像头姿态与初始姿态接近,则可以选择多个参考图像中的一个或多个参考图像。可以执行基于测光学的图像匹配以使当前图像与所选参考图像中的至少一个匹配,以便估计变换。
再次参考图1D,在107,产生至少一个电流环境特性测量。至少一个当前环境属性测量包括对环境属性的测量。至少一个当前环境属性测量可以类似地获得至少一个参考环境属性测量,如步骤103中所述。
在108,当前环境属性测量与环境属性映射相匹配。特别是,至少一个当前环境属性度量可以与环境属性映射中包含的至少一个参考环境属性值相匹配。
在一个实施例中,来自当前环境属性测量的属性只能与环境属性映射中类似类型的属性进行比较。例如,蓝牙信号强度可能只与指示蓝牙信号强度的其他数据进行比较。作为另一个更具体的示例,环境属性测量613可以包括测量的WLAN信号强度。WLAN信号强度可仅与环境属性图的参考WLAN信号强度值进行比较。
在某些情况下,在真实环境的一部分中不存在显著特征,因此从真实环境的那一部分的图像中提取图像特征可能是不实际的,甚至是不可能的。例如,真实环境中的白色墙壁可能无法提供任何功能。真实环境中不能提供可提取图像特征的部分称为无纹理环境,包含无纹理环境的图像区域称为无纹理图像区域。因此,在这种区域进行基于图像特征的追踪或环境重建在技术上是困难或不可能的。
作为基于图6的示例性场景,可以根据上述公开的任何解决方案确定摄像头602相对于真实环境201的摄像头姿态。然后可以根据所述摄像头602的摄像头姿态以及所述摄像头602与所述摄像头603之间的运动或空间差异来确定所述摄像头603的摄像头姿态。从摄像头602和摄像头603中提取的图像特征可以确定摄像头的运动。
在一个实施例中,假设摄像头605捕获墙壁的无纹理图像。在所述墙壁的无纹理图像中检测到的图像特征可能足够,也可能不够。在一个实施例中,是否“不够”可以根据多个图像特征的阈值来确定。
例如,如果图像特征的数量少于一定数量(即阈值),则确定该墙的图像为无纹理图像。在这种情况下,摄像头602和摄像头605之间的摄像头运动可以从深度信息和/或惯性传感器确定。因此,仍然可以从摄像头运动和摄像头602的摄像头姿态确定摄像头605的摄像头姿态。有了摄像头605的摄像头姿态,就可以确定无纹理部分在真实环境中的位置。
评论