首页> 中国专利> 使用点和线特征的稳健跟踪

使用点和线特征的稳健跟踪

摘要

所揭示实施例涉及用于稳健的基于特征的跟踪的设备、系统和方法。在一些实施例中,可为包括目标对象的相机所捕获的当前图像计算得分。所述得分可基于从所述相机所捕获的所述当前图像和先前图像中的特征的比较确定的一或多个度量。所述比较可基于针对所述当前图像的所估计的相机姿势。在一些实施例中,可基于所述得分与点阈值和/或线阈值的比较来选择基于点、基于边缘,或组合的基于点和边缘的特征对应性方法中的一者,从所述目标的模型获得所述点和线阈值。可通过使用所述选定方法建立所述当前图像与模型图像之间的特征对应性来细化所述相机姿势。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-09

    授权

    授权

  • 2016-02-24

    实质审查的生效 IPC(主分类):G06T7/20 申请日:20140516

    实质审查的生效

  • 2016-01-27

    公开

    公开

说明书

相关申请案的交叉参考

本申请案主张2014年5月15日申请的标题为“使用点和线特征的稳健跟踪(Robust TrackingUsingPointandLineFeatures)”的第14/278,928号美国申请案的权益和优先权, 所述美国申请案主张2013年6月14日申请的标题为“使用点和线特征的稳健跟踪 (RobustTrackingUsingPointandLineFeatures)”的第61/835,402号美国临时申请案的权 益和优先权,上述两个申请案以全文引用的方式并入本文中。

技术领域

本发明大体上涉及用于基于稳健特征的跟踪的设备、系统和方法,且明确地说,涉 及用于使用点和线特征的组合来进行基于稳健特征的跟踪的系统和方法。

背景技术

随着技术的最近进步,增强现实(AR)应用在例如智能电话等每日用户装置上越来越 常见。在可为实时交互式的AR应用中,可处理真实图像,以将虚拟对象添加到图像, 并使所述虚拟对象在3个维度(3D)中与所捕获的图像对准。通常,所述虚拟对象补充现 实世界图像。因此,检测并定位真实图像中存在的对象,并通过图像序列确定相机相对 于所述对象的姿势,促进了准确的虚拟对象放置,且保留真实和虚拟世界的混合。

当将手持式用户装置用于图像捕获时,稳健的跟踪方法是合乎需要的,以容许快速 的不受限制的手部移动,这可导致跟踪失效和/或不佳的姿势估计。当基于点的特征容易 定位且促进图像之间的特征对应性的确定时,其容易发生跟踪错误,这可导致姿势变动。 另一方面,基于线或边缘的特征不大容易发生姿势变动,因为它们在发光面和方位变化 上是稳定的。然而,它们特征对应性确定期间容易发生错误,这使得稳健的边缘跟踪成 为挑战。

因此,需要稳健的跟踪方法,其增强基于当前特征的跟踪方法,以实现更佳AR体 验的稳健性和跟踪准确性。

发明内容

所揭示实施例涉及用于使用点和边缘特征来实行基于稳健特征的跟踪的系统、方法 和设备。

在一些实施方案中,所述方法可包含:为包括目标对象的当前相机所俘获的图像计 算得分,其中所述得分至少部分地基于从当前图像和相机所捕获的之前图像中的特征的 比较而确定的一或多个度量,且其中所述比较是基于针对当前图像而估计的相机姿势。 另外,可至少部分地基于得分与从所述目标的模型获得的至少一个点阈值和至少一个线 阈值、所述至少一个点阈值以及所述至少一个线阈值的比较,选择基于点、基于边缘, 或组合的基于点和边缘的特征对应性方法中的一者。

在另一方面,用户装置(UD)可包含:相机,其经配置以捕获包括目标对象的多个图 像;存储器,其经配置以存储所述目标对象的模型;以及处理器,其耦合到所述相机和 所述存储器。在一些实施方案中,所述处理器可经配置以:为所述相机所捕获的当前图 像计算得分,其中所述得分至少部分地基于从当前图像和所述相机所捕获的之前图像中 的特征的比较而确定的一或多个度量,且其中所述比较是基于针对当前图像而估计的相 机姿势。所述处理器可进一步经配置以至少部分地基于得分与从目标对象的模型获得的 至少一个点阈值和至少一个线阈值、所述至少一个点阈值和所述至少一个线阈值的比 较,来选择基于点、基于边缘或组合的基于点和边缘的特征对应性方法中的一者。

在另一方面,一种设备可包含:成像装置,其用于捕获包括目标对象的多个图像; 存储装置,其用于存储所述目标对象的模型,所述存储装置耦合到所述成像装置;用于 为所述成像装置所捕获的当前图像计算得分的装置,所述得分至少部分地基于从当前图 像和所述成像装置所捕获的之前图像中的特征的比较而确定的一或多个度量,且其中所 述比较是基于针对所述当前图像而估计的成像装置姿势;以及用于至少部分地基于所述 得分与从目标的所存储模型获得的至少一个点阈值和至少一个线阈值、所述至少一个点 阈值和所述至少一个线阈值的比较,来选择基于点、基于边缘或组合的基于点和边缘的 特征对应性方法中的一者的装置。

所揭示的实施例还涉及一种包括指令的非暂时性计算机可读媒体,所述指令在由处 理器执行时,实施方法中的步骤,其中所述步骤可包含:为包括目标对象的当前相机所 俘获的图像计算得分,其中所述得分至少部分地基于从当前图像和所述相机所捕获的之 前图像中的特征的比较而确定的一或多个度量,且其中所述比较是基于针对当前图像而 估计的相机姿势。另外,可至少部分地基于所述得分与从所述环境的模型获得的至少一 个点阈值和至少一个线阈值、所述至少一个点阈值以及所述至少一个线阈值的比较,选 择基于点、基于边缘,或组合的基于点和边缘的特征对应性方法中的一者。

附图说明

将参看图式仅通过实例方式来描述本发明的实施例。

图1示出了能够以与所揭示的实施例一致的方式实施基于特征的跟踪的示范性用户 装置的框图。

图2A示出了以用于与所揭示的实施例一致的方式分析图像的示范性方法的流程 图。

图2B示出了用于以与所揭示的实施例一致的方式基于点和线特征的组合来进行特 征跟踪的示范性方法的流程图。

图3A示出了用于以与所揭示的实施例一致的方式分析图像的示范性方法的流程 图。

图3B示出了用于以与所揭示的实施例一致的方式基于点和线特征的组合来进行特 征跟踪的示范性方法的流程图。

图4A示出了以与所揭示的实施例一致的方式使用点跟踪器来计算细化的姿势的示 范性方法的流程图。

图4B示出了以与所揭示的实施例一致的方式使用线跟踪器来计算细化的姿势的示 范性方法的流程图。

图4C示出了以与所揭示的实施例一致的方式使用点和线跟踪器两者来计算细化的 示范性方法的流程图。

图5示出了经启用来以与所揭示的实施例一致的方式使用点和线特征来促进稳健的 基于特征的跟踪的示范性计算装置的示意性框图。

图6示出了用于以与所揭示的实施例一致的方式基于点和线特征的组合进行特征跟 踪的示范性方法的流程图。

具体实施方式

在计算机视觉中,检测是指在所捕获图像帧中定位目标对象以及计算相对于对象的 相机姿势的过程。跟踪是指在图像帧时间序列内的相对于对象的相机姿势估计。在特征 跟踪中,可检测特征一次,且接着在后续图像中使用关于相机姿势的先验信息或假设来 直接跟踪特征。对于相机姿势的初始确定(初始化),可使用特征匹配。在特征匹配中, 可通过检测两个图像(其可接着彼此匹配)中的特征,在无关于相机姿势的先验信息的情 况下,建立两个图像之间的对应性。举例来说,在初始化期间,可将初始所捕获图像与 一或多个所存储的模型参考图像进行比较,其中每一参考图像与已知姿势和具有已知坐 标的一组独特特征相关联,以寻找最接近匹配的图像。可将关联最接近匹配图像的相机 姿势用作针对所述初始图像的相机姿势的初始估计。

通常,在基于特征的跟踪方法中,可使用特征来表示对象。因此,常规的基于特征 的对象跟踪可包含特征提取和特征对应步骤。特征提取是指检测图像中的特征,而特征 对应是匹配或确定两个图像中的特征之间的对应性的过程。因此,在不同成像条件(例如, 尺度、照明、定向等)下很可能在多个视图上显著的显著特征的使用促进特征对应性确定。 特征对应性中的不明确性可能导致跟踪错误。在常规系统中,通常使用基于点的特征(跟 踪点)或基于线或边缘的特征(边缘跟踪)来建立图像之间的特征对应性。术语“线”和 “边缘”在本文对特征跟踪的描述中可互换使用。

基于点的特征跟踪促进了图像之间的特征对应性的容易确定,且对出人意料的帧间 运动相对稳健。然而,常常通过减小可在其范围内确定对应性的窗口的大小,来实现基 于点的技术中的计算效率。用于对应性确定的窗口大小的减小导致图像序列上的跟踪错 误,其促成姿势变动。显著边缘的检测在变化照明面中是稳健的。即使存在照明和方位 变化,当跟踪锐缘时,仅依靠边缘信息也提供良好结果。然而,基于边缘的跟踪容易发 生对应性失配。举例来说,在其中许多边缘群集在一起的图像中,可能发生对应性失配, 从而影响稳健性。

组合基于点和边缘的跟踪的常规尝试通常基于一些条件而在点和边缘跟踪之间交 替。换句话说,在任何时间,使用基于点或边缘的跟踪来建立特征对应性。这些方法仅 在两个方案之间交替,因此,一个方法中的不良姿势估计可能影响另一方法中的估计。

因此,本文所揭示的一些实施例应用计算机视觉和其它图像处理技术,通过组合基 于点和边缘的跟踪技术,来增强跟踪能力。

下文相对于以下各图进一步解释这些和其它实施例。应理解,所属领域的技术人员 将从以下详细描述容易地明白其它方面,其中借助于说明示出且描述各个方面。图式和 详细描述应被视为本质上为说明性的而不是限制性的。

图1示出了能够以与所揭示的实施例一致的方式实施基于特征的跟踪的示范性用户 装置(UD)100的框图。如本文所使用,UD100可呈移动台或移动装置的形式,例如:蜂 巢式电话、移动电话,或其它无线通信装置、个人通信系统(PCS)装置、个人导航装置 (PND)、个人信息管理器(PIM),或个人数字助理(PDA)、膝上型计算机、平板计算机、 笔记本型计算机和/或手持式计算机或其它移动装置。在一些实施例中,UD100可采用 可穿戴计算装置的形式,所述可穿戴计算装置可包含与可穿戴头戴装置配对的显示装置 和/或相机的形式。举例来说,所述头戴装置可包含头戴式显示器(HMD),其可用于显示 实况和/或现实世界图像。在一些实施例中,所述实况图像上可覆盖着一或多个虚拟对象。 在一些实施例中,UD100可能够接收无线通信和/或导航信号。

此外,术语“用户装置”还既定包含例如通过短程无线、红外、有线连接或其它连 接与个人导航装置(PND)通信的装置,及/或在所述装置处或所述PND处发生位置相关 处理。并且,“用户装置”既定包含能够与另一计算装置(例如服务器)通信的所有裝置, 包含各种无线通信装置,不管无线信号接收、辅助数据接收和/或相关处理是在所述装置 处、服务器处还是与网络相关联的另一装置处发生。上述各项的任何可操作组合也被视 为“用户装置”。

术语“用户装置”还既定包含可未经配置以无线地或经由有线连接而连接到网络 或以其它方式与另一装置通信的游戏或其它装置。举例来说,用户装置可省略通信元件 和/或连网功能性。举例来说,本文中描述的实施例可在未被配置成连接以用于与另一装 置进行有线或无线连网的独立装置中实施。

在一些实施方案中,UD100可能够实施各种计算机视觉(CV)方法,包含图像分析、 特征检测/跟踪、特征对应性确定、建模、3D重构、AR等。在一些情况下,CV方法可 基于3D环境的现有模型。另外,在一些实施例中,可以与所揭示的实施例一致的方式 实时或近实时地实施所述CV方法。

如图1中所示,UD100可包含一或多个相机或图像传感器110(下文称为“相机 110”)、传感器组或传感器130、显示器140、一或多个处理器150(下文称为“处理器 150”)、存储器160和/或收发器170,其可以操作方式彼此耦合,且通过连接120耦合 到UD100上的其它功能单元(未图示)。连接120可包括总线、线路、光纤、链路等或其 某一组合。

收发器170可(例如)包含经启用以通过一或多种类型的无线通信网络发射一或多个 信号的发射器,以及接收通过所述一或多种类型的无线通信网络发射的一或多个信号的 接收器。收发器170可准许基于多种技术与无线网络通信,所述技术例如(但不限于)毫 微微小区、Wi-Fi网络或无线局域网(WLAN)(其可基于IEEE802.11族标准)、无线个域 网(WPAN)、蓝牙、近场通信(NFC)、基于IEEE802.15x族标准等的网络和/或无线广域 网(WWAN)(例如LTE、WiMAX等)。

举例来说,收发器170可促进与WWAN的通信,所述WWAN例如为码分多址 (CDMA)网络、时分多址(TDMA)网络、频分多址(FDMA)网络、正交频分多址(OFDMA) 网络、单载波频分多址(SC-FDMA)网络、长期演进(LTE)、WiMax等。

CDMA网络可实施一或多种无线电接入技术(RAT),例如cdma2000、宽带 CDMA(W-CDMA)等。cdma2000包含IS-95、IS-2000和IS-856标准。TDMA网络可实 施全球移动通信系统(GSM)、数字高级移动电话系统(D-AMPS)或一些其它RAT。GSM、 W-CDMA和LTE描述于来自被称为“第三代合作伙伴计划”(3GPP)的组织的文献中。 cdma2000描述于来自名为“第三代合作伙伴计划2”(3GPP2)的协会的文献中。3GPP和 3GPP2文献可公开获得。所述技术还可结合WWAN、WLAN和/或WPAN的任何组合来 实施。用户装置还可包含用于经由有线网络进行通信的一或多个端口。在一些实施例中, 可省略用户装置100上的收发器170和/或一或多个其它端口。可在例如不要求与另一装 置通信的移动台中的独立CV/AR系统/装置中使用本文中揭示的实施例。

在一些实施方案中,相机110可包含多个相机、前置和/或后置相机、广角相机,且 还可并入有电荷耦合装置(CCD)、互补金属氧化物半导体(CMOS),和/或各种其它图像 传感器。相机110,其可为静止相机或摄像机,可捕获环境的一连串图像帧,并将所捕 获的图像帧发送到处理器150。相机110所捕获得图像可为彩色的(例如以红-绿-蓝(RGB) 表示)或灰度级。在一个实施例中,相机110所捕获的图像可呈原始的未经压缩格式,且 可在由处理器150处理和/或存储在存储器160中之前经压缩。在一些实施例中,可由处 理器150使用无损或有损压缩技术来执行图像压缩。

处理器150可执行软件以处理由相机110捕获的图像帧。举例来说,处理器150可 能够处理相机110所捕获的一或多个图像帧,以执行图像分析、特征提取、特征跟踪/ 检测、特征对应性,确定相机110的姿势和/或执行对应于相机110所捕获的图像的环境 的3D重构。

相机110的姿势是指相机110相对于参考帧的位置和定向。在一些实施方案中,可 针对6自由度(6DOF)确定相机姿势,6自由度是指三个平移分量(其可由X、Y、Z坐标 给定)以及三个角度分量(例如横摇、纵摇和横摆)。在一些实施例中,相机110和/或UD 100的姿势可由处理器150使用视觉跟踪方案,基于相机110所捕获的图像帧来确定和/ 或跟踪。

可使用硬件、固件和软件的组合来实施处理器150。处理器150可表示可配置以执 行与包含图像分析、3D重构、跟踪、从图像的特征提取、图像之间的特征对应性、建 模、图像处理等的CV有关的计算步骤或过程的至少一部分的一或多个电路,且可从存 储器160检索指令和/或数据。在一些实施方案中,处理器150可包含CV模块155,其 可执行或促进各种CV应用程序的执行,例如上文概述的示范性CV应用程序的执行。

可在处理器150内和/或在处理器150外部实施存储器160。可使用一或多个专用集 成电路(ASIC)、中央和/或图形处理单元(CPU及/或GPU)、数字信号处理器(DSP)、数字 信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、控制器、微 控制器、微处理器、嵌人式处理器芯、电子装置、经设计以执行本文中描述的功能的其 它电子单元或其组合来实施处理器150。

存储器160可在处理器150内和/或在处理器150外部实施。如本文所使用,术语“存 储器”是指任何类型的长期、短期、易失性、非易失性或其它存储器,且不应限于任何 特定类型的存储器或任何特定数目个存储器,或上面存储有存储器的任何特定类型的物 理媒体。在一些实施方案中,存储器160可保持代码以促进各种CV和/或图像处理方法, 包含图像分析、跟踪、特征检测/提取、特征对应性确定、建模、3D重构、AR应用以及 处理器150执行的其它任务。举例来说,存储器160可保持数据、所捕获的静态图像、 3D模型、深度信息、视频帧、程序结果以及由各种传感器提供的数据。一般来说,存 储器160可表示任何数据存储机构。存储器160可包含(例如)主存储器和/或辅助存储器。 主存储器可包含(例如)随机存取存储器、只读存储器等。虽然在图1中说明为与处理器 150分开,但应理解,主存储器的全部或部分可在处理器150内提供,或以其它方式与 处理器150处于相同位置和/或耦合到处理器150。

辅助存储器可包含(例如)与主存储器和/或一或多个数据存储装置或系统相同或相 似类型的存储器,例如闪存/USB存储器驱动器、存储卡驱动器、磁盘驱动器、光盘驱 动器、磁带机、固态驱动器、混合驱动器等。在某些实施方案中辅助存储器可以操作方 式接收或另外可配置以耦合到与UD100耦合的可装卸媒体驱动器(未图示)中的非暂时 性计算机可读媒体。在一些实施方案中,非暂时性计算机可读媒体可形成存储器160和 /或处理器150的一部分。

在一些实施方案中,UD100可包含多种其它传感器130,例如立体相机、环境光传 感器、麦克风、声波传感器、超声波传感器、激光测距仪等中的一或多者。在某些实例 实施方案中,用户装置100可包含惯性测量单元(IMU),其可包括3轴陀螺仪、3轴加速 计和/或磁力计。IMU可将速度、定向和/或其它位置相关信息提供给处理器150。在一 些实施例中,IMU可与由相机130捕获每一图像帧同步地输出测得的信息。在一些实施 方案中,IMU的输出可部分地由处理器150用于确定、校正和/或以其它方式调整所估 计的姿势,相机110和/或UD100的姿势。此外,在一些实施例中,相机110所捕获的 图像还可用于重新校准或执行IMU的偏差调整。

此外,UD100可包含能够渲染彩色图像(包含3D图像)的屏幕或显示器140。在一 些实施方案中,UD100可包含准许通过单独的监视器或耦合到UD100的显示器来显示 经3D重构的图像的端口。在一些实施方案中,显示器和/或UD100可呈可穿戴装置的 形式。在一些实施方案中,显示器140可用于显示相机110所捕获得实况图像、增强现 实(AR)图像、图形用户接口(GUI)、节目输出等。在一些实施方案中,显示器140可包 含触摸屏和/或与触摸屏收容在一起,以准许用户经由虚拟键盘、图标、菜单或其它GUI/ 用户示意动作和/或例如触笔等输入装置和其它输入装置的某一组合来输入数据。在一些 实施例中,可使用液晶显示器(LCD)显示器或发光二极管(LED)显示器(例如有机 LED(OLED)显示器)来实施显示器140。在其它实施例中,显示器140可为可穿戴显示器, 其可操作地耦合到UD100中的其它功能单元但与其分开收容。在一些实施例中,UD100 可包括用以准许通过耦合到MS100的单独监视器来显示图像的端口。

图1中并未展示UD100中所包括的所有模块。还可以各种方式用与本发明一致的 方式来修改示范性用户装置100,例如通过添加、组合或省略所展示的功能块中的一或 多者。举例来说,在一些配置中,用户装置100可能不包含收发器170。在一些实施方 案中,UD100可另外包括卫星定位系统(SPS)单元,其可用于将地点信息提供给UD100。 在一些实施例中,用户装置100的若干部分可呈一或多个芯片组和/或类似物的形式。

在一些实施方案中,UD100可能够执行各种AR应用程序,其可使用基于视觉特征 的跟踪。在一些实施方案中,UD100可以与本文揭示的实施例一致的方式,基于边缘 和特征跟踪的组合来执行跟踪方法。

图2A示出了以用于与所揭示的实施例一致的方式分析图像的示范性方法200的流 程图。在示范性方法200中,已使用阈值的特定值来说明所述方法,且用于解释性目的。 然而,这些阈值不限于所使用的示范性值,而是可适当地变化。

在一些实施方案中,方法200可在模型创建阶段期间,作为离线过程执行。举例来 说,可使用基于点和边缘的特征的组合来创建待跟踪的目标的3D模型。在一些实施方 案中,所述模型可包含来自正跟踪的目标的点和线的数据库。举例来说,在一个实施例 中,3D模型可包含3D空间中的点云和边缘两者。此外3D模型可包含3D点地点和描 述符的数据库,以及显著边缘的计算机辅助设计(CAD)模型。在一些实施方案中,可基 于相机110所捕获的实况图像,实时地执行模型创建。在一些实施方案中,方法200可 由处理器150和/或CV模块155在模型创建或分析期间执行。在步骤205中,可分析关 于所述模型的一或多个图像,以从所述图像抽取特征。所提取的特征可包括点和/或线/ 边缘特征。一般来说,可以与所揭示的实施例一致的方式,结合例如坎尼(Canny)边缘检 测及其变体、差分边缘检测技术、索贝尔(Sobel)边缘检测等边缘检测技术,使用例如尺 度不变特征变换(SIFT)、加速稳健特征(SURF)等一或多种点检测技术。检测技术包含拐 角检测器,例如“来自加速片段测试的特征”(FAST)、“最小同值片段同化 核”(SUSAN)、基于最大稳定极值区域(MSER)的检测器、哈里斯(Harris)检测器等。举 例来说,在使用拐角检测器的个例中,可将拐角检测器检测到的拐角点用作点特征。一 般来说,可基于可用系统来源、所要的准确性、速度以及其它设计参数来使用任何适当 的点和/或边缘检测技术。

接下来,在步骤210中,如果图像富含点特征,即“点富(pointrich)”(步骤210中 的“Y”),那么在步骤215中,可将阈值T点设定成“0.0”,且方法进行到步骤240。 否则(步骤210中的“N”),方法进行到步骤220。

在步骤220中,如果图像缺乏点特征,即“点贫(pointpoor)”(步骤220中的“Y”), 那么在步骤225中,可将阈值T点设定成“1.0”,且方法进行到步骤240。否则(步骤 220中的“N”),方法进行到步骤230,其中可基于在图像中检测到的点特征的数目, 将阈值T点的值设定成介于0.0与1.0之间的数字。

在一些实施方案中,可基于从图像提取的点特征的数目,来做出图像是点富还是点 贫的确定。举例来说,如果所提取的点特征的数目超出第一点计数值,那么可认为所述 图像是点富的。相反,如果所提取的点特征的数目低于第二点计数值,那么可将所述图 像认为是点贫的。点计数落在第一和第二点计数之间的一些图像可既不是点富也不是点 贫的。可基于可用的处理能力、所要的响应时间、所要的跟踪准确性的程度和/或其它系 统参数,以启发方式设定点计数值。

接下来,在步骤240中,如果图像富含线特征,即“线富(linerich)”(步骤240中的 “Y”),那么在步骤245中,可将阈值T线设定成“0.4”,且方法可终止。否则(步骤 240中的“N”),方法进行到步骤250。以上T点和T线的值是示范性的。一般来说, 可基于赋予点或线特征的权重来选择T点和T线的值。在以上实例中,其中T线=0.4, 以赋予点特征比线特征大的权重。

在步骤250中,如果图像缺乏线特征,即“线贫(linepoor)”(步骤250中的“Y”), 那么在步骤255中,可将阈值T线设定成“0.0”,且方法可终止。否则(步骤250中的 “N”),方法进行到步骤260,其中可在终止之前,基于图像中检测到的线特征的数目, 将阈值T线的值设定成介于0.0与0.4之间的数字。

在一些实施例中,可基于从所述图像和/或所述图像的部分提取的线特征的数目,做 出图像是线富还是线贫的确定。举例来说,如果所提取的线特征的数目超出某一线计数 值,那么可认为所述图像是线富的。相反,如果所提取的线特征的数目低于某一线计数 值,那么可将所述图像认为是线贫的。可基于环境、可用的处理能力、所要的响应时间、 所要的跟踪准确性的程度和/或其它系统参数,以启发方式设定线计数值。

上文所指示的阈值T点和T线的值是示范性的,且仅用于说明性目的。一般来说, 为T点和T线选定的值可取决于各种系统参数和/或基于所建模的环境而变化,和/或变 化以指示对点和/或线特征的偏好。在一些实施例中,T点和T线可采取使得0≤T点,T 线≤1的值。方法200中所使用的T点和T线的值可充当将3D模型中的点、线,或点和 线特征用于跟踪目的的可用性和/或合意性的指标。

可例如模型创建阶段期间,将在方法200中确定的T线和T点的值与特征跟踪阶段 期间确定的得分进行比较。举例来说,特征跟踪阶段中的得分可基于实况图像中的跟踪 目标中与模型创建阶段期间创建的模型中的特征点匹配的特征点的数目。在一些实施例 中,基于得分与T点和/或T线的值的比较,可将基于点、基于线或基于点和线的特征 中的一者用于目标跟踪。一般来说,在方法200中,可将任意值用于T点和T线,接着 与对基于点、线或点和线的特征跟踪的偏好一致,为所述得分选择适当的值。所选的值 可用于确定在特征跟踪阶段期间,何时调用基于点、基于线,或基于点和线的特征跟踪。

在一些实施例中,方法200可由用于给定环境的服务器或另一计算装置执行,且可 将模型和相关联结果(例如阈值T点和T线)发送到UD100和/或由UD100获得,并存 储在存储器160中,以供以后结合用于所述环境的CV应用程序使用。

在一些实施例中,3D模型可包含多种相机姿势下的多个图像或关键帧,且可为关 键帧的某一子集确定T点和T线值。在一些实施例中,每一关键帧可与对应的T点和/ 或T线值相关联,其可基于特定针对所述关键帧的特征分布。在一些实施例中,可处理 模型的一或多个关键帧,以获得对应于每一经处理关键帧的T点和/或T线值。在其中 正实时和/或从实况图像创建模型的实施例中,对应T点和/或T线值的处理和确定可在 图像表示为关键帧时发生。此外,在一些实施例中,其中T点和/或T线值对应于特定 关键帧,可针对每一关键帧以及对应的T点和/或T线值执行方法200,且任何相关特征 描述符可与所述关键帧相关联,并存储为所述模型的一部分。

图2B示出了用于以与所揭示的实施例一致的方式基于点和线特征的组合来进行特 征跟踪的示范性方法275的流程图。方法200和275仅是示范性的,且可对所述方法作 出各种修改。举例来说,在一些实施例中,方法275可作为在线过程执行,或在AR应 用程序正跟踪目标时实时执行。在一些实施例中,方法275可由处理器150在目标跟踪 期间基于相机110正捕获的实况图像而执行。在一些实施例中,方法275可实时地调用 方法200,以确定T点和/或T线值,并将其添加到具有所提取的点和线特征(但不具有T 点和/或T线值)的预先存在的模型。在一些实施例中,如上所述,其中正实时地和/或从 实况图像创建基于关键帧的模型,对应T点和/或T线值的处理和确定(例如通过调用方 法200)也可在图像表示为关键帧时发生。

在步骤280中,可处理相机110所捕获的图像,以从所述图像提取点特征。可基于 特征跟踪步骤期间的点匹配的数目,将T得分指派给所捕获的图像。举例来说,可将当 前图像帧与先前图像(例如紧接在前的图像帧)和/或点匹配的平均归一化互相关(NCC)得 分进行比较。在一些实施例中,所述得分可包含以上参数中的一或多者的加权和。举例 来说,可将T得分计算为介于0与1之间的值(例如0≤T得分≤1)。

NCC是基于相关的方法,其准许图像对上的匹配,即使在具有较大相对相机运动的 情形中也是如此。“不良”特征点匹配是指不成功的NCC匹配尝试的数目,即失败点 匹配和/或具有低相关得分的匹配的数目。举例来说,可将当前图像帧与例如紧接在前的 图像帧等之前图像进行比较。T得分值可基于以下各项中的一者或一者以上:良好特征 点匹配的数目和/或不良特征点匹配的数目。因为NCC未能定位可能在视图中的点,所 以可将不良特征点匹配视为与当前图像帧的品质有关的度量。举例来说,如果特征点匹 配具有高NCC值(例如100或以上)和较低跟踪错误(例如不超过2像素再投影错误),那 么可将所述特征点匹配表示为“良好”。注意,上文概述的NCC值和跟踪错误仅是示 范性的,且可基于例如所要性能、跟踪准确性等系统参数来修改。低于以上NCC值(例 如低于100)或超过以上跟踪错误(例如超过2个像素)的特征匹配可表示为“不良”。

在一些实施例中,T得分值可基于以下各项中的一者或一者以上:正确匹配相对于 最大或预期数目的特征点匹配的比例。举例来说,可通过以实验方式观察跟踪品质和跟 踪时间,来确定特征点匹配的预期数目。在一些实施例中,正确匹配相对于最大或预期 数目个特征点匹配的比例可预配置为默认值和/或由用户配置。在一个实施例中,所述系 统经配置以用于所要性能,且可启发式地调整所跟踪特征的最大或预期数目,以达到所 要性能。相反,所述系统经配置以用于所要的跟踪品质,且可启发式地调整所跟踪特征 的最大或预期数目,以达到所要的跟踪准确性。

在一些实施例中,可在图像金字塔的所有层级执行计分。举例来说,可对相机110 所捕获的图像进行下取样和滤波,以创建图像金字塔,其中最高分辨率(或原始)图像可 位于图像金字塔顶部,且最低分辨率图像可位于金字塔底部。举例来说,金字塔的最高 层级(层级0)可具有原始或最高分辨率图像,且下面的每一层级可用某一因子相对于紧 接在上的层级对所述图像进行下取样。举例来说,对于大小为640X480的图像I0(在层 级0处),图像I1、I2、I3和I4的大小分别为320x240、160x120、80x60和40x30,其中 下标指示图像金字塔中的图像层级。

可例如模型创建阶段期间,将在方法200中确定的T线和/或T点的值与在步骤280 中确定的T得分进行比较。如上文所论述,在步骤280中确定的T得分的值可基于从实 况图像与先前图像的比较获得的各种度量。在图2B中所示的示范性方法275中,例如 基于点匹配的数目来确定T得分。在实施例中,其中正使用基于关键帧的模型以及具有 对应T点和/或T线值的关键帧,可使用当前相机姿势,基于欧几里得距离来确定最接 近于当前相机姿势的关键帧,且可将(最接近关键帧的)T线和/或T点的值与当前图像的 T得分进行比较。

在一些实施例中,基于T得分与T点和/或T线的值的比较,可调用基于点、基于 线或基于点和线的特征跟踪中的一者。一般来说,可使用与用以获得T点和T线的方法 兼容的任何计分方案来计算T得分。举例来说,如果T点和T线采取使得0≤T点,T 线≤1的值,那么可计算或归一化T得分,以获得介于0与1之间的T得分值(0≤T得分 ≤1)。因为基于与图像对的特征比较有关的度量来计算T得分,所以可将T得分看作当 前图像帧对特征跟踪的特定方法的适合性的指标。因此,如果(如在步骤280中),例如, 基于点匹配的数目来确定T得分,那么低T得分将表明所述当前帧不适合基于点的特征 跟踪。

接下来,在步骤285中,可将先前步骤中计算的T得分的值与T点进行比较。如果 T得分≥T点(步骤285中的“Y”),那么在步骤287中,可作出仅将点特征用于后续姿 势细化步骤的确定,且方法275可调用例程297。

在图2A中,在示范性方法200中,T点=0.0是针对点富图像,而T线=0.4(>0.0) 是针对线富图像。示范性方法200中指派的权重结合示范性方法275使用,以偏爱点超 过线。因此,在示范性方法275中,在步骤280中,基于点匹配计算T得分,且在步骤 285中,如果T得分≥T点,那么在步骤287中,选择基于点的特征跟踪作为特征跟踪方 法。因为当图像为点富时,T点=0.0,所以在示范性方法275中,对于点富图像,始终 满足步骤285中的条件(T得分≥T点),且当图像为点富时,选择基于点的特征跟踪。

如果T得分<T点(步骤285中的“N”),那么在步骤290中,可将T得分的值(来自 步骤280)与T线进行比较。如果T得分≤T线(步骤290中的“Y”),那么在步骤293中, 可作出将边缘特征用于后续姿势细化步骤的确定,且方法275可调用297。

否则(步骤290中的“N”),在步骤295中,T线<T得分<T点,且可作出将点和边 缘用于后续姿势细化步骤的确定,且方法275可调用例程297。

并且,参看图2A,对于线富图像T线=0.4(>0.0),因此,在一些情况下,即使当不 满足步骤285中的条件(T得分≥T点)且未选定基于点的特征跟踪时,在步骤290中,T 得分也不可小于T线=0.4,因此可在步骤295中选择基于点和线的特征跟踪方法。在示 范性方法275中,对于将选择的基于线的特征跟踪方法,即使对于线富图像,也不应满 足步骤285中的条件(T得分≥T点)(所述图像不应是点富的,否则基于点的特征跟踪是有 利的),且在步骤290中,T得分应低于T线0.4。低T得分指示基于点的特征跟踪的不 良得分。因此,在示范性方法200和275中,基于点的特征和基于点的特征跟踪比基于 线的特征和基于线的特征跟踪有利。然而,方法200和275仅为示范性的,且可使用不 同的加权方案来给予线和点特征相同的权重,或者对线特征的加权比对点特征重。可调 整步骤280和决策框285和290,以反映选定的加权方案。

在例程297中,可基于先前在步骤287、293或295的一者中作出的确定来细化姿 势估计。举例来说,在一个实施例中,可基于如在步骤287、293或295的一者中作出 的确定,使用2D-3D特征对应性来细化先前或所估计的6DOF相机姿势。

图3A示出了用于以与所揭示的实施例一致的方式在模型创建阶段期间分析图像的 示范性方法300的流程图。在一些实施例中,方法300可在模型创建阶段期间,作为离 线过程执行。在一些实施例中,方法300可为由处理器150基于相机110所捕获的一或 多个图像,在模型创建期间执行。在一些实施例中,方法300可为模型中的关键帧的某 一子集反复。方法300和320(图3B)仅是示范性的,且可对所述方法作出各种修改。举 例来说,示范性方法300和320更偏爱点特征的选择和使用,而不是线特征。然而,可 容易地更改所述方法以改变偏好。

在一些实施例中,模型可包含关键帧,且每一关键帧可与对应的T点和/或T线值 相关联,其可基于特定针对所述关键帧的特征分布。在一些实施例中,可处理模型的一 或多个关键帧,以获得对应于每一经处理关键帧的T点和/或T线值。在其中正实时和/ 或从实况图像创建模型的实施例中,对应T点和/或T线值的处理和确定可在图像表示 为关键帧时发生。此外,在一些实施例中,其中T点和/或T线值对应于特定关键帧, 可针对每一关键帧以及对应的T点和/或T线值执行方法300,且任何相关特征描述符可 与所述关键帧相关联,并存储为所述模型的一部分。

在步骤303中,关于所述模型的一或多个图像可各自分成细分部,以从图像细分部 提取点特征。在一些实施例中,所述细分部可呈各种多边形的形式。在一个实施例中, 例如下文所描述的示范性实施例,可将图像分成多个网格。

在步骤305中,可选择第一或下一网格,且可将点特征添加到所述网格/模型的特征 列表。在步骤307中,如果所述网格是点贫的(步骤307中的“Y”),那么在步骤310 中,可为所述网格提取线特征,且可将所述线特征添加到特征列表,以使创建跨越图像 中的网格的均一特征分布。举例来说,在一些实施例中,所添加的线特征的数目可取决 于点特征从所述网格缺失的程度。在一些实施例中,可维持添加到每一网格的模型的点 和/或线特征的数目的表格。

在一些实施例中,可基于从网格提取的点特征的数目,来作出网格是点富还是点贫 的确定。举例来说,如果所提取的点特征的数目超出第一点计数值,那么可认为所述网 格是点富的。相反,如果网格中的所提取的点特征的数目低于第二点计数值,那么可将 所述网格认为是点贫的。点计数落在第一和第二点计数之间的一些网格可既不是点富也 不是点贫的。可基于可用的处理能力、所要的响应时间、所要的跟踪准确性的程度和/ 或其它系统参数,以启发方式设定每一网格的点计数值。

在步骤310中,在一些实施例中,部分地通过从每一网格提取相当数目的点和/或线 特征来促进特征分布均一性。因此,在一些实施例中,所提取的线的数目可相对于网格 中的点的数目相反变化。因此,随着点的数目增加,可从网格提取较低数目的线。相反, 当网格展现低点密度时,从网格提取的线的数目可增加。图像上的特征均一性便于找出 图像上的对应性,这促成姿势细化准确性。

在其中模型中的图像分成网格的实施例中,点和线特征遍及目标图像的均一分布可 在跟踪期间产生较大的准确性。使用网格来分配特征点/边缘提供优于偏斜特征分布的优 点(例如当点特征的大部分集中在小区域中时),因为当特征分布不均匀时,可导致跟踪 不稳定性。在点贫区中,对应性模糊增加。因此,以与所揭示的实施例一致的方式,将 线特征添加到点贫区可为有益的,且产生增加的跟踪稳定性和较好的后续姿势细化。

在步骤307中,如果网格是点富的(步骤307中的“N”),那么在步骤309中,可 任选地将线特征添加到网格/模型的特征列表,且方法进行到步骤312。在一些实施例中, 可在步骤309中不为点富网格添加线特征,和/或可忽略步骤309。因此,在示范性方法 300中,在一些情况下,当网格是点富(步骤307中的“N”)时,可不添加基于线的特征, 因此偏爱基于点的特征跟踪。

然而,在一些实施方案中,在步骤309中,例如,可基于网格中可用的点特征的数 目,将变化数目的基于线的特征添加到网格。在一些实施例中,在步骤309中,所添加 的基于线的特征的任选数目可受制于上限。作为另一实例,在步骤309中,可将最小数 目的基于线的特征添加到网格,而与基于点的特征的数目无关。

作为另一个实例,可修改方法300以偏爱基于线的特征,可修改步骤307,以测试 网格区是否是线富的,且在网格区是线贫的时,任选地添加点特征(例如在步骤309中)。 举例来说,在其中存在快速相对目标移动和/或用以促进存在运动模糊的情况下的跟踪的 例子中,基于线的特征可为有利的。一般来说,可修改方法300,以使基于线的特征的 数目是基于点的特征的数目的函数,或相反,使基于点的特征的数目是基于线的特征的 数目的函数。

在步骤312中,如果存在待处理的额外网格(步骤312中的“Y”),那么调用步骤 305来开始下一次反复,且可选择另一网格。如果不存在待处理的其它网格(步骤312中 的“N”),那么方法终止。

图3B示出了用于以与所揭示的实施例一致的方式基于点和线特征的组合来进行特 征跟踪的示范性方法320的流程图。如早先所概述,在示范性方法320中,在方法200 和275中,点特征比线特征有利,但仅较轻微的程度。在一些实施例中,方法320可作 为在线过程执行,或在AR应用程序正跟踪目标时实时执行。在一些实施例中,方法320 可由处理器150在目标跟踪期间基于相机110正捕获的实况图像而执行。在一些实施例 中,方法320可实时地调用方法300,以确定T点和/或T线值,并将其添加到具有所提 取的点和线特征(但不具有T点和/或T线值)的预先存在的模型。在一些实施例中,如上 所述,其中正实时地和/或从实况图像创建基于关键帧的模型,对应T点和/或T线值的 处理和确定(例如通过调用方法300)也可在图像表示为关键帧时发生。

在步骤280中,可处理相机110所捕获的当前图像,以从所述图像提取点特征。可 基于特征跟踪步骤期间的点匹配的数目,将T得分动态地指派给所捕获的图像。举例来 说,可基于针对先前图像(其在一些情况下,可为相机110所捕获的紧接在前的图像)的 先前相机姿势来确定针对当前图像的相机姿势的估计。可将当前图像与先前图像进行比 较,以获得点匹配。动态计算的T得分值可基于以下各项中的一者或一者以上:点匹配 的空间分布、相对于特征点匹配的最大或预期数目的良好特征点匹配的数目/不良特征点 匹配的数目,和/或点匹配的平均NCC得分。

当使用特征点匹配来确定T得分时,表示为“良好”的特征点匹配例如可具有高 NCC值(例如100或以上)和较低跟踪错误(例如不超过2像素再投影错误)。注意,上文 概述的NCC值和跟踪错误仅是示范性的,且可基于例如所要性能、跟踪准确性等系统 参数来修改。低于以上NCC值(例如低于100)或超过以上跟踪错误(例如超过2个像素) 的特征匹配可表示为“不良”。

此外,可通过以实验方式观察跟踪品质和跟踪时间,来确定特征点匹配的预期数目。 在一些实施例中,正确匹配相对于最大或预期数目个特征点匹配的比例可预配置为默认 值和/或由用户配置。在一个实施例中,所述系统经配置以用于所要性能,且可启发式地 调整所跟踪特征的最大或预期数目,以达到所要性能。相反,所述系统经配置以用于所 要的跟踪品质,且可启发式地调整所跟踪特征的最大或预期数目,以达到所要的跟踪准 确性。

在一些实施例中,T得分值可取决于与点匹配的空间分布相关联的均一性程度。在 一个实施例中,当点匹配的空间分布较均一时,可指派较高的T得分。在一些实施例中, 所述得分可包含以上参数中的一或多者的加权和。举例来说,可将T得分计算为介于0 与1之间的值(例如0≤T得分≤1)。

在步骤325中,可分析模型的可见区,其为先前创建的模型中对应于当前图像的区。 在一些实施例中,可基于先前创建的表格中指示建模的可见区中的每一网格的点和线特 征(其在模型创建期间存储)的数目的信息来分析所述模型的可见区。在一些实施例中, 可通过使用环境的所存储的模型(例如3D模型)以及针对当前图像的相机姿势的估计(其 可基于先前姿势)来确定模型的可见区,以将模型投射到相机针对当前图像的视图中。在 其中使用基于关键帧的模型且关键帧具有对应的T点和/或T线值的实施例中,可使用 相机姿势来基于欧几里得距离,确定最接近当前相机姿势的关键帧。可接着将最接近当 前相机姿势的关键帧投射到相机的视图中,且可将可见区中的(最接近关键帧的)T线和/ 或T点的对应值与当前图像的T得分进行比较。在一些实施例中,可使用目标的几何形 状来确定可见区。举例来说,对于圆柱形目标,可使用基于圆柱体几何形状的参数来确 定角度范围。

接下来,在步骤330中,如果模型的可见区是点富的(步骤330中的“Y”),那么 在步骤333中,可将阈值T点设定成“0.0”,且方法进行到步骤345。否则(步骤330 中的“N”),方法进行到步骤335。注意,可使用先前所存储的表格中的信息(其包含关 于每一图像细分部的点和/或线特征的数目的信息),来确定模型的可见区是否是点富的。 举例来说,在一个实施例中,可使用点特征的计数和与可见区中的每一网格相关联的边 缘特征的计数的总和或其它函数,来确定模型的可见区是否是点富的。

在步骤335中,如果模型的可见区是点贫的(步骤335中的“Y”),那么在步骤337 中,可将阈值T点设定成“1.0”,且方法进行到步骤345。否则(步骤335中的“N”), 方法进行到步骤340,其中可基于在所建模的可见区中检测到的点特征的数目,将阈值 T点的值设定成介于0.0与1.0之间的数字。注意,可使用先前所存储的表格中的信息来 确定所建模的可见区是否是点贫的(在步骤335中),和/或设定T点的值(在步骤340中)。

接下来,在步骤345中,如果所建模的可见区富含线特征,即线富(步骤345中的 “Y”),那么在步骤347中,可将阈值T线设定成“0.6”,且方法可进行到步骤365。 否则(步骤345中的“N”),方法可进行到步骤350。可使用先前所存储的表格中的信息 (其包含关于每一图像细分的点和/或线特征的数目的信息),来确定所建模的可见区是否 是线富的。

在步骤350中,如果所建模的可见区是线贫的(步骤350中的“Y”),那么在步骤 357中,可将阈值T线设定成“0.0”,且方法可进行到步骤365。否则(步骤350中的 “N”),方法可进行到步骤360,其中可基于图像中检测到的线特征的数目,将阈值T 线的值设定成介于0.0与0.6之间的数字。注意,可使用先前所存储的表格中的信息(其 包含关于每一图像细分的点和/或线特征的数目的信息)来确定所建模的可见是否是点贫 的(在步骤350中),和/或设定T线的值(在步骤360中)。

在步骤365中,可将在步骤280计算的T得分的值与T点进行比较。如果T得分≥T 点(步骤365中的“Y”),那么在步骤367中,可进行仅将点特征用于后续姿势细化步 骤的确定,且方法320可调用例程297。

如果T得分<T点(步骤365中的“N”),那么在步骤370中,可将T得分的值(来自 步骤280)与T线进行比较。如果T得分≤T线(步骤370中的“Y”),那么在步骤377中, 可作出仅将边缘特征用于后续姿势细化步骤的确定,且方法320可调用例程297。

否则(步骤370中的“N”),在步骤295中,T线<T得分<T点,且可作出将点和边 缘用于后续姿势细化步骤的确定,且方法320可调用例程297。

上文所指示的阈值T点和T线的值是示范性的,且仅用于说明性目的。一般来说, 为T点和T线选定的值可取决于各种系统参数和/或基于所建模的环境而变化,和/或变 化以指示对点和/或线特征的偏好。

在图3A中,在示范性方法300中,在一些情况下,可不将基于边缘的特征添加到 点富网格,从而偏好基于点的特征跟踪。类似地,在图3B中,在示范性方法320中, 基于点的特征跟踪是有利的。因为当可见图象区是点富的时,T点=0.0(在步骤333中), 所以对于点富可见区,始终满足步骤365中的条件T得分≥T点,且当可见图象区是点 富的时,选择基于点的特征跟踪。

然而,在示范性方法300中,与图2A和2B的方法中相比,已给予基于边缘的特征 较大的权重。举例来说,对于线富可见区,T线=0.6(在步骤347中),因此更可能满足步 骤370中的条件T得分≤T线(相对于图2A和2B,其中针对线富区,为T线指派值0.4)。 因此,更可能选择线特征,和/或在步骤377中,将其用于特征跟踪。对应地,存在将点 和线特征两者用于步骤380中的跟踪的较低可能性。因此,可基于系统参数最佳地定制 各种特征跟踪方法的选择/使用的程度。

在例程297中,可基于先前在步骤367、377或380的一者中作出的确定来细化姿 势估计。举例来说,在一个实施例中,可基于在步骤367、377或380中的一者中作出 的确定,来从2D-3D特征对应性估计6DOF相机姿势。在一些实施例中,可使用经加权 最小平方近似或其变体来计算特征对应性。

图4A示出了用以使用点跟踪器来计算细化的姿势的示范性方法400的流程图。在 一些实施例中,如果先前已(在步骤365)将基于点的特征选择为用于确定特征对应性的 方法,那么方法400的若干部分可由例程297执行和/或调用。

在步骤405中,可通过基于当前估计的姿势,将当前图像与使用基于点的特征的模 型上的现有特征进行比较来确定特征对应性。

接下来,在步骤410中,可计算雅可比(Jacobian)。雅可比描述姿势变化(Δθ) 与投射点变化(Δu)间的线性映射。

J·Δθ=Δu=um-up(1)

其中,具有6个参数的Δθ=(ΔrxΔryΔrzΔtxΔtyΔtz)与3D空间中的旋转和平 移有关,

J是2x6矩阵,测量错误的局部差异为Δθ

δuxδrxδuxδryδuxδrzδuxδtxδuxδtyδuxδtzδuyδrxδuyδryδuyδrzδuyδtxδuyδtyδuyδtz

u是2×1测量错误向量(uxuy)T

up是u的投射,

um是测得的或找到的对应性。

等式(1)可用于在步骤410中计算雅可比。

接下来,在步骤415中,由于u是2×1矩阵,且可按点计算u,因此可按点获得2 个线性约束。在步骤420中,在具有充分的点对应性的情况下,可使用经加权最小平方 (W.L.S)技术来计算用于姿势更新的解决方案,其最小化(Δu),且使所有投射up达到所 找到的对应性um

因此,可用充分的点/线对应性来获得使所有投影up达到找到的对应性um的姿势更 新的解决方案。

其中,

HP=ΣJpTJp---(2)

bP=ΣJpTupΔ---(3)

可使用以上等式(2)和(3)来计算姿势更新。

图4B示出了用以使用线跟踪器来计算细化的姿势的示范性方法400的流程图。在 一些实施例中,如果基于边缘的特征先前已被选定作为用于确定特征对应性的方法,那 么方法400的部分可由例程297执行。

在步骤430中,可通过将当前图像于使用基于边缘的特征的模型上的现有特征进行 比较来确定特征对应性。接下来,在步骤410中,可使用等式(1)来计算雅可比。

在步骤440中,对于边缘像素,可最小化法向距离,使得每一边缘给出由以下等式 (4)给定的1个线性约束条件。

nT·J·Δθ=nT·Δu(4)

其中,当将u投射到图像平面上时,n=(nxny)T是u的法向向量。

因此,可使用以下等式(5)和(6),用充分的线对应性来获得使所有投影up达到所找 到的对应性um的姿势更新的解决方案。

HLΔθ=ΣJlTnl·nlTJl---(5)

其中

bL=ΣJlTnl·nlTΔul---(6)

对于所有l线对应性。可使用以上等式(5)和(6)来计算姿势更新。

图4C示出了用以使用点和线跟踪器两者来计算细化的姿势的示范性方法450的流 程图。在一些实施例中,如果先前已将基于点和边缘的特征选定作为用于确定特征对应 性的方法,那么方法400的部分可由例程297执行。

在步骤405和430中,可通过将当前图像于使用基于点和边缘的特征的模型上的现 有特征进行比较,来确定特征对应性。举例来说,点跟踪器和边缘跟踪器可对图像操作 以确定对应性。

接下来,在步骤410中,可使用等式(1)来计算雅可比。在步骤415中,可每个点获 得2个线性约束,且在步骤440中,可获得每线1个线性约束,由以上等式(4)给出。

因此,可使用上文的等式(3)和(6)以及下文等等式(7),用充足的点和线对应性来获 得使所有投影up达到所找到的对应性um的姿势更新的解决方案。

pHpLHL)Δθ=λpbpLbL(7)

其中,λP=1,且λL是分别指派给点和线的权重。等式(3)、(6)和(7)可用于计算姿势 更新。

在一些实施例中,上文所描述的方法促进对目标采用阈值,且因此最佳化所揭示的 方法的运行时间,且增强特征跟踪器的稳定性。

本文所揭示的实施例促进对多种目标(包含3D目标)的准确且稳健跟踪,且准许具 有6-DoF的跟踪。所揭示实施例促进存在未预期帧间运动、变化的照明和方位变化的情 况下的准确跟踪,从而改进跟踪稳健性。取决于应用,本文中所描述的方法可以通过各 种装置来实施。举例来说,对于固件和/或软件实施方案,可用执行本文中所描述的功能 的模块(例如,程序、函数等)来实施所述方法。在实施本文所描述的方法中,可以使用 有形地体现指令的任何机器可读媒体。举例来说,软件代码可存储在存储器中,并且由 处理器单元来执行。在一些实施例中,可将所述功能作为一或多个指令或代码存储在计 算机可读媒体上。实例包含编码有数据结构的计算机可读媒体和编码有计算机程序的计 算机可读媒体。计算机可读媒体包含物理计算机存储媒体。

储存媒体可为可由计算机存取的任何可用媒体。作为实例而非限制,此类计算机可 读媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置,磁盘存储装置 或其它磁性存储装置,或任何其它可用于存储呈指令或数据结构的形式的所要程序代码 且可由计算机存取的媒体;在本文中使用时,磁盘和光盘包括压缩光盘(CD)、激光光盘、 光学光盘、数字多功能光盘(DVD),软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再 现数据,而光盘用激光以光学方式再现数据。上述各项的组合也应该包含在计算机可读 媒体的范围内。

除了存储在计算机可读媒体上之外,还可将指令和/或数据提供为通信设备中包含的 发射媒体上的信号。举例来说,通信设备可包含具有指示指令和数据的信号的收发器。 所述指令和数据经配置以致使一或多个处理器实施权利要求书中概述的功能。也就是 说,通信设备包含具有指示用以执行所揭示的功能的信息的发射媒体。在第一时间,通 信设备中所包含的发射媒体可包含用以执行所揭示的功能的信息的第一部分,而在第二 时间,通信设备中所包含的发射媒体可包含用以执行所揭示的功能的信息的第二部分。

现在参考图5,其为说明经启用以与所揭示的实施例一致的方式使用点和线特征来 促进稳健的基于特征的跟踪的计算装置500的示意性框图。在一些实施例中,计算装置 500可呈服务器的形式。在一些实施例中,计算装置500可包含(例如)一或多个处理单 元552、存储器554、存储装置560,以及(在适用时)通信接口590(例如缆线或无线网络 接口),其可以操作方式与一或多个连接556(例如总线、线、光纤、链路等)耦合。在某 些实例实施方案中,计算装置500的某一部分可呈芯片组等的形式。在一些实施例中, 计算装置500可经由无线网络(未图示)无线耦合到一或多个UD100,所述无线网络可为 WWAN、WLAN或WPAN中的一者。

在一些实施例中,计算装置500可方法200、275、300、320、400、425和/或450 的若干部分。在一些实施例中,上述方法可由处理单元552和/或计算机视觉(CV)模块 566执行。举例来说,上述方法可完全或部分地由处理单元552和/或CV模块566结合 计算装置500上的一或多个功能单元和/或结合UD100来执行。举例来说,计算装置500 可从UD100接收一序列所捕捉的图像,且可使用利用存储在存储器554中的环境的模 型的CV模块566,完全或部分地执行方法200、275、300、320、400、425和/或450 中的一或多者的若干部分。

通信接口590可包含支持有线发射和/或接收的多种有线和无线连接,并且在需要时 可另外或替代地支持一或多个信号通过一或多种类型的无线通信网络的发射和接收。通 信接口590可包含用于与UD100和/或各种其它计算机和外围配置通信的接口。举例来 说,在一个实施例中,通信接口590可包含实施计算装置500所执行的通信功能中的一 或多者的网络接口卡、输入-输出卡、芯片和/或ASIC。在一些实施例中,通信接口590 还可与UD100介接,以发送环境的3D模型信息,和/或接收与方法200、275、300、 320、400、425和/或450有关的图像、数据和/或指令。

处理单元552可使用接收到的信息中的一些或全部来执行所请求的计算,和/或经由 通信接口590将所请求的信息和/或结果发送到UD100。在一些实施例中,可使用硬件、 固件和软件的组合来实施处理单元552。在一些实施例中,处理单元552可包含CV模 块566,其可产生和/或处理环境的3D模型,执行3D重构,实施和执行各种计算机视 觉方法,例如方法200、275、300、320、400、425和/或450。在一些实施例中,处理 单元552可表示可配置以执行数据信号计算程序或与计算装置500的操作相关的过程的 至少一部分的一或多个电路。

举例来说,CV模块566可以与所揭示的实施例一致的方式,通过处理从UD100 接收到一或多个图像帧,使用点和线特征的组合来实施基于特征的跟踪。在一些实施例 中,CV模块566可执行图像分析、模型创建、特征提取、目标跟踪、特征对应性、使 用点和线特征两者的相机姿势确定,和/或基于接收到的图像的环境的3D重构中的一或 多者。在一些实施例中,可在各种AR应用程序的执行过程期间调用上述方法中的一或 多者。

本文在流程图和消息流程中描述的方法可依据应用由各种装置实施。举例来说,这 些方法可用硬件、固件、软件或其任何组合来实施。对于硬件实施方案,处理单元552 可实施于经设计以执行本文中所描述功能的一或多个专用集成电路(ASIC)、数字信号处 理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列 (FPGA)、处理器、控制器、微控制器、微处理器、电子装置、其它电子单元,或其组合 内。

对于固件和/或软件实施方案,可用执行本文中所描述的功能的模块(例如,程序、 函数等等)来实施所述方法。在实施本文中所描述的方法的过程中,可使用任何有形地体 现指令的机器可读媒体。举例来说,软件可存储在可装卸媒体驱动器570中,所述装卸 媒体驱动器可支持非暂时性计算机可读媒体558(包含可装卸媒体)的使用。程序代码可 驻存在非暂时性计算机可读媒体558或存储器554上,且可由处理单元552读取和执行。 存储器可实施在处理单元552内或处理单元552外部。如本文中所使用,术语“存储器” 是指任何类型的长期、短期、易失性、非易失性或其它存储器,且不应限于任何特定类 型的存储器或任何特定数目的存储器,或其上存储有存储器的任何特定类型的媒体。

如果在固件和/或软件中实施,那么所述功能可作为一或多个指令或代码存储在非暂 时性计算机可读媒体558和/或存储器554上。实例包含编码有数据结构的计算机可读媒 体和编码有计算机程序的计算机可读媒体。举例来说,上面存储有程序代码的非暂时性 计算机可读媒体558可包含用于以与所揭示的实施例一致的方式促进稳健的基于特征的 跟踪的程序代码。

非暂时性计算机可读媒体可包含多种物理计算机存储媒体。存储媒体可以是可由计 算机存取的任何可用的媒体。作为实例而非限制,此类非暂时性计算机可读媒体可包括 RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置,磁盘存储装置或其它磁性存 储装置,或任何其它可用于存储呈指令或数据结构的形式的所要程序代码且可由计算机 存取的媒体;如本文所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数 字多功能光盘(DVD),软性磁盘和蓝光光盘,其中磁盘通常以磁性方式重现数据,而光 盘用激光以光学方式重现数据。非暂时性计算机可读媒体的其它实施例包含快闪驱动 器、USB驱动器、固态驱动器、存储器卡等。以上各项的组合也应包含在计算机可读媒 体的范围内。

除了存储在计算机可读媒体上之外,可将指令及/或数据作为传输媒体上的信号提供 到通信接口590,所述通信接口可将指令/数据存储在存储器554、存储装置560中,和/ 或将所述指令/数据中继到处理单元552以用于执行。举例来说,通信接口590可接收指 示指令和数据的无线或网络信号。所述指令和数据经配置以致使一或多个处理器实施所 附权利要求书中所概述的功能。也就是说,通信设备包含具有指示用以执行所揭示的功 能的信息的信号的发射媒体。

存储器554可表示任何数据存储机构。存储器554可包含(例如)主存储器和/或辅助 存储器。主存储器可包含(例如)随机存取存储器、只读存储器、非易失性RAM等。虽 然在此实例中说明为与处理单元552分开,但应理解,主存储器的全部或部分可在处理 单元552内提供,或以其它方式与处理单元552处于相同位置/与处理单元耦合。辅助存 储器可包含(例如)与主存储器和/或存储装置560相同或相似类型的存储器,例如一或多 个数据存储装置560,包含(例如)硬盘驱动器、光盘驱动器、磁带机、固态存储器驱动 器等。

在一些实施例中,存储560可包含一或多个数据库,其保持关于环境的信息,包含 3D模型、图像、与所存储的模型相关联的数据库和/或表、关键帧、关于虚拟对象的信 息等。在一些实施例中,数据库中的信息可由处理单元552和/或CV模块566在各种计 算期间读取、使用和/或更新。

在某些实施方案中,辅助存储器可操作地接收非瞬时性计算机可读媒体558或以其 它方式可配置以耦合到非瞬时性计算机可读媒体558。由此,在某些实例实施方案中, 可完全或部分地使用非暂时性计算机可读媒体558来实施本文中呈现的方法和/或设备, 非暂时性计算机可读媒体558可包含存储在其上的计算机可实施的指令,所述计算机可 实施的指令在由至少一个处理单元552执行的情况下,可以操作方式被启用以执行如本 文中所描述的实例操作的全部或部分。在一些实施例中,计算机可读媒体558可使用可 装卸媒体驱动器570来读取和/或可形成存储器554的一部分。

图6示出了用于以与所揭示的实施例一致的方式基于点和线特征的组合进行特征跟 踪的示范性方法600的流程图。

在一些实施例中,在步骤610中,可计算包括目标对象的当前相机所捕获图像的得 分。所述得分可至少部分地基于从当前图像和相机所捕获的先前图像中的特征的比较而 确定的一或多个度量,且所述比较可基于针对所述当前图像所估计的相机姿势。在一些 实施例中,可至少部分地基于针对先前图像获得的相机姿势且基于当前图像中的目标对 象的估计地点来获得为当前图像估计的相机姿势。一或多个度量可包括以下各项中的至 少一者:当前图像与先前图像之间的特征匹配的数目;相对于当前图像与先前图像之间 的特征匹配的预期数目的特征匹配比例;或当前图像与先前图像之间的特征点匹配的平 均归一化互相关(NCC)得分。

接下来,在步骤620中,可至少部分地基于所述得分与至少一个点阈值和至少一个 线阈值的比较,来选择基于点、基于边缘,或组合的基于点和边缘的特征对应性方法中 的一者,其中所述至少一个点阈值和所述至少一个线阈值是从所述目标的模型获得。在 一些实施例中,所述至少一个点阈值可提供所述模型对基于点的特征跟踪的适合性的指 示,且所述至少一个线阈值可提供所述模型对基于线的特征跟踪的适合性的指示。

在一些实施例中,可使用选定的特征对应性方法来确定当前图像与至少一个模型图 像之间的特征对应性,其中可基于所估计的相机姿势来选择模型图像。可接着通过使用 经加权最小平方近似,基于在当前图像与至少一个模型图像之间获得的特征对应性来细 化所估计的相机姿势。

在一些实施例中,所述目标的模型可包括所述目标对象的多个所存储的图像。在一 些实施例中,所述目标对象的每一所存储的图像可包括多个图像细分部,且每一图像细 分部可与点特征的计数和边缘特征的计数相关联。此外,至少一个点阈值和至少一个线 阈值可至少部分地基于与可见区中的每一图像细分部相关联的点特征的计数和边缘特 征的计数,从模型的可见区获得,其中所述模型的可见区对应于当前图像。在一些实施 例中,每一图像细分部可呈通过将模型中的每一图像细分成多个网格而获得的网格的形 式。

在目标的模型包括所述目标的多个所存储图像(其各自具有多个图像细分部)的实施 例中,一或多个度量可进一步基于:当前和先前图像之间的点匹配的空间分布的均一性。

提供对所揭示方面的先前描述是为了使所属领域的任何技术人员都能够制造或使 用本发明。所属领域的技术人员将容易明白对这些方面的各种修改,且在不脱离本发明 的精神或范围的情况下,本文中所界定的一般原理可应用于其它方面。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号