一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于捕捉摄像机图像的场景锁定模式的制作方法

2022-06-08 23:37:13 来源:中国专利 TAG:

用于捕捉摄像机图像的场景锁定模式


背景技术:

1.诸如智能电话的移动计算设备通常具有一个或多个摄像机设备。因为这些摄像机设备的质量和分辨率随着时间的推移已经显著提高,所以移动计算设备的用户越来越多地利用和依赖这些摄像机设备来捕捉他们的旅行、活动或他们生活中的其它重要事件的照片图像。在一些情况下,专业用户可以利用此类摄像机设备作为例如环境内的一般监控或景观监视的一部分。此外,某些类型的移动计算设备(例如,无人机或卫星)可以利用一个或多个摄像机设备来自动地或编程地获得某些区域或景观随着时间的推移的照片图像。


技术实现要素:

2.大体来说,本公开描述了用于提供场景捕捉或锁定模式以捕捉摄像机图像的技术。在移动计算设备上执行摄像机应用期间,用户可以启用此类场景捕捉或锁定模式,以使得该应用捕捉或记忆在显示设备处输出的特定场景的一个或多个图像的帧。例如,在识别或确定用于拍照目的的摄像机设备的期望姿态之后,第一用户可以使摄像机应用进入该模式,使得该应用记忆或以其它方式捕捉该摄像机设备对于该场景的参考姿态。该移动计算设备稍后可以被例如另一第二用户用来拍摄第一用户在该相同场景中的照片,或者例如监视建筑物或自然环境随着时间的推移的状况。移动计算设备可以跟踪摄像机在空间中的旋转和/或平移,并且然后可以生成一组易于遵循的指导(例如,视觉、听觉和/或触觉指令),以使第二用户能够将摄像机从当前姿态移动到记忆的参考姿态。使用这些指导,第二用户可以操纵摄像机回到记忆的姿态,并捕捉先前保存的和/或由第一用户指示的期望场景的照片。在一些情况下,第一用户可以使用这些指导来跟踪期望场景随时间的变化,而不涉及第二用户。在自动成像应用中,例如当长时间监视环境时,指令可以是计算机可读指令。
3.在一个示例中,一种方法包括:由移动计算设备的至少一个处理器输出具有由(例如,移动计算设备的)至少一个摄像机设备捕捉的一个或多个图像的帧,并用于在(例如,移动计算设备的)显示设备处显示;以及响应于接收到选择该帧的输入,由所述至少一个处理器将该帧存储为具有一个或多个参考图像的参考帧,其中所述一个或多个参考图像包括在显示设备处输出的帧的所述一个或多个图像。该示例性方法还包括:由所述至少一个处理器基于参考帧中包括的所述一个或多个参考图像来确定所述至少一个摄像机设备的参考姿态;以及在确定所述至少一个摄像机设备的参考姿态之后,由所述至少一个处理器输出具有由所述至少一个摄像机设备捕捉的一个或多个当前图像的当前帧,并用于在显示设备处显示。该示例方法还包括:由所述至少一个处理器基于当前帧中包括的所述一个或多个当前图像来确定所述至少一个摄像机设备的当前姿态;以及响应于确定当前姿态不同于参考姿态,由所述至少一个处理器输出一个或多个(例如,用户或计算机可读)指令的指示以将所述至少一个摄像机设备从当前姿态操纵成参考姿态。
4.在另一示例中,一种用指令编码的计算机可读存储介质,这些指令在被执行时使得移动计算设备的至少一个处理器执行包括以下各项的操作:输出具有由至少一个摄像机设备捕捉的一个或多个图像的帧以用于在显示设备处显示;以及响应于接收到选择该帧的
输入,将该帧存储为具有一个或多个参考图像的参考帧,其中所述一个或多个参考图像包括在显示设备处输出的帧的所述一个或多个图像。示例操作还包括:基于参考帧中包括的所述一个或多个参考图像来确定所述至少一个摄像机设备的参考姿态;以及在确定所述至少一个摄像机设备的参考姿态之后,输出具有由所述至少一个摄像机设备捕捉的一个或多个当前图像的当前帧以用于在显示设备处显示。示例操作还包括:基于当前帧中包括的所述一个或多个当前图像来确定所述至少一个摄像机设备的当前姿态;以及响应于确定当前姿态不同于参考姿态,输出一个或多个指令的指示以将所述至少一个摄像机设备从当前姿态操纵成参考姿态。
5.在另一示例中,一种移动计算设备包括至少一个处理器、通信地耦合到所述至少一个处理器的至少一个存储设备、以及通信地耦合到所述至少一个处理器和所述至少一个存储设备的显示设备。所述至少一个处理器被配置成:输出具有由至少一个摄像机设备捕捉的一个或多个图像的帧以用于在显示设备处显示;响应于接收到选择该帧的输入,将该帧存储为具有一个或多个参考图像的参考帧,其中所述一个或多个参考图像包括在显示设备处输出的帧的所述一个或多个图像;基于参考帧中包括的所述一个或多个参考图像来确定所述至少一个摄像机设备的参考姿态;在确定所述至少一个摄像机设备的参考姿态之后,输出具有由所述至少一个摄像机设备捕捉的一个或多个当前图像的当前帧以用于在显示设备处显示;基于当前帧中包括的所述一个或多个当前图像来确定所述至少一个摄像机设备的当前姿态;以及响应于确定当前姿态不同于参考姿态,输出一个或多个指令的指示,以将所述至少一个摄像机设备从当前姿态操纵成参考姿态。
6.在附图和下文描述中陈述一个或多个示例的细节。本公开的其它特征、目标和优点将从描述和附图以及从权利要求而显而易见。
附图说明
7.图1是示出根据本公开的一个或多个方面的示例移动计算设备的框图,该示例移动计算设备被配置成在图像捕捉期间提供姿态估计和用户指导。
8.图2是示出根据本公开的一个或多个方面的图1中所示的移动计算设备的示例的框图。
9.图3是示出根据本公开的一个或多个方面的图1和/或图2所示的姿态估计器和姿态指导模块的示例的框图。
10.图4、图5a至图5b和图6a至图6b是示出根据本公开的一个或多个方面的由移动计算设备(诸如图1和/或图2中所示的移动计算设备)提供的参考图像、当前图像和/或姿态指导的示例输出的屏幕图。
11.图7是示出根据本公开的一个或多个方面的移动计算设备(诸如图1和/或图2中所示的计算设备)的示例操作的流程图。
具体实施方式
12.如上所述,诸如智能电话的移动计算设备通常具有一个或多个摄像机设备。移动计算设备的用户可能越来越多地利用和依赖这些摄像机设备来捕捉他们的旅行、活动或他们生活中的其它重要事件的照片图像。某些类型的用户可以利用摄像机设备作为例如环境
内的一般监控或景观监视的一部分,并且一些移动计算设备可以被配置成自动地或编程地获得某些区域或景观随着时间的推移的图像。
13.一个好的场景构图过程对于用户来说通常是重要的。在某些情况下,用户(诸如包括摄像机设备的移动计算设备的所有者)可能希望另一个人拍摄特定区域或场景的照片,同时该所有者被包括在照片中。然而,通常很难指示另一个人该所有者希望这个人在拍摄照片时如何定向摄像机设备,或者以其它方式描述照片的构图或期望的风景/背景。例如,旅行用户可能希望让陌生人拍摄包括该用户站在特定地标前方的照片。然而,旅行的用户可能会发现很难向陌生人准确地解释如何在拍摄照片时定位或定向摄像机,或者准确地解释照片中要包括地标的哪些部分。
14.在其它示例中,专业用户可以执行监控或景观监视以评估给定环境或场景的变化,包括可能随时间变化的自然或人造特征的任何变化(例如,景观变化或恶化、建筑物或建筑随着时间的修改或变更)。在其它示例中,某些类型的移动计算设备(例如,无人机或卫星)可以利用一个或多个摄像机设备来获得某些区域或景观随着时间的推移的图像。在一些情况下,当通过自动或手动过程使用图像执行长期监视时,可能希望捕捉环境的区域。
15.本公开中描述的示例涉及用于为捕捉摄像机图像而提供场景捕捉或锁定模式的技术。在一些情况下,这可以促进对建筑物或环境条件的有效监视。在各种示例中,在移动计算设备上执行摄像机应用期间,用户可以启用此类场景捕捉或锁定模式,以使得该应用捕捉或记忆在显示设备处输出的特定场景的一个或多个图像的帧。例如,在识别或确定用于拍照目的的摄像机设备的期望姿态之后,用户可以使摄像机应用进入该模式(例如,经由用户输入),使得该应用记忆或以其它方式捕捉该摄像机设备对于该场景的参考姿态。该移动计算设备稍后可以由原始用户或另一用户使用,以使用相同的摄像机姿态来拍摄照片。移动计算设备可以包括惯性测量单元(例如,陀螺仪),该惯性测量单元连同所确定的图像特征一起可以用于跟踪摄像机在空间中的旋转和/或平移。移动计算设备然后可以生成一组易于遵循的指导(例如,与平移和/或定向相关联的视觉、听觉和/或触觉指令或计算机可读指令,以将摄像机设备从当前姿态移动到记忆的参考姿态)。使用这些指导或指令,原始用户、另一用户或自动化系统可以操纵摄像机设备回到记忆的姿态,并捕捉先前保存的并且例如由原始用户指示的期望场景的照片。整个过程可能是快速、直观且准确的。
16.本文公开的一个或多个技术涉及当前的六自由度摄像机运动跟踪。现有技术可以利用来自诸如陀螺仪和加速度计之类的传感器的输入以及从所捕捉的帧中提取的图像特征,来估计移动计算设备在空间中的三维(3d)旋转和平移。然而,这些现有技术跟踪每一个捕捉帧的摄像机旋转和平移,并且因此非常耗电且耗时。然而,本公开的各种技术将姿态跟踪分解成单独的步骤,诸如仅定向跟踪和组合的定向/平移跟踪。因此,在各种情况下,可以提供计算效率更高的方法,这对于移动计算设备尤其有益,因为可以通过降低执行这些技术所需的功率来节省电池寿命。
17.例如,在锁定由摄像机设备在给定时刻捕捉的特定场景之后,移动计算设备的陀螺仪可以随后在每帧的基础上确定摄像机设备的定向特性,这是非常高效的并且利用了有限的功率。当这些技术确定设备的当前定向与锁定场景或姿态所关联的先前定向基本相同或大致在阈值量之内时(其中差异可能小于预定阈值),该技术然后继续进行平移估计。组合利用这些技术提供了各种益处,诸如功率节省和处理高效,因为平移估计仅在这些技术
识别出当前设备定向与对应于该设备的锁定或参考姿态的先前保存定向足够接近匹配时才发生。在某些示例中,移动计算设备可以向用户提供仅旋转或仅定向的指导,以努力使用户能够将摄像机设备定向为基本上接近期望的姿态。在该步骤之后,因为通常在当前摄像机定向类似于期望姿态的参考定向时发生大部分重叠,所以可以使用更轻且更高效的估计技术来进行平移估计,这导致例如与对每一帧都执行平移估计相比,在移动计算设备上的功率节省(例如,更少的功率)和/或处理高效(例如,更少的计算资源)。在某些情况下,所公开的技术还可以涉及视频和/或光学图像稳定化技术(例如,融合稳定)。
18.在各种示例中,高频陀螺仪和光学图像稳定化(ois)数据(如果可用的话)被用于计算摄像机旋转和主点(例如,透视中心被投影到的图像平面上的点,或者在一些计算中可以被设置为图像中心的点)偏移。移动计算设备使用高频陀螺仪信号和捕捉的帧数据作为输入。如果ois数据也可用和/或被提供给移动计算设备,则该设备可以使用此类数据来计算主点的偏移。此外,在基于高频陀螺仪信号的分析首先确定当前设备姿态的定向与参考姿态的基本匹配之后,帧数据和对应的图像特征可以用于估计二维和/或三维平移。
19.作为一个示例,当用户在移动计算设备上触发场景锁定模式时(例如,通过激活按钮或提供另一形式的用户输入),摄像机设备当前捕捉的对应帧被保存为模板或参考。然后,移动计算设备可以跟踪摄像机设备针对每一随后输入帧的定向。如果当前估计的定向类似于记忆的定向,则移动计算设备可以通过将模板与当前帧匹配来发起平移估计。如本文所描述,不同的图像匹配方法可以应用于不同的示例中,诸如直接的基于图像相关性匹配和基于图像特征的单应性变换估计。利用跟踪结果,移动计算设备可以生成指示用户如何将设备定向和/或平移到对应于与保存的模板相关联的参考姿态的姿态的指令(例如,使用诸如投影到当前帧上的锁定场景的边界框或边界角之类的视觉指导,如下文进一步详细描述)。
20.贯穿本公开,描述了示例,其中移动计算设备和/或计算系统仅在计算设备和/或计算系统从计算设备的用户接收到分析信息的明确许可时,才可以分析与计算设备相关联的信息以及与计算设备的用户相关联的信息。例如,在下文论述的计算设备和/或计算系统可以收集或可以利用与用户和/或计算设备相关联的信息(例如,图像数据)的情况下,可以向用户提供提供输入的机会,以控制计算设备和/或计算系统的程序或特征是否可以收集和利用用户信息(例如,与用户相关联的图像数据),或者指示计算设备和/或计算系统是否和/或如何可以接收可能与用户相关的内容。另外,某些数据可以在被计算设备和/或计算系统存储或使用之前以一种或多种方式处理,以便移除个人身份信息。例如,可以处理用户的身份,使得不能确定关于用户的个人身份信息,或者可以在获得位置信息的地方概括用户的地理位置(诸如城市、邮政编码或州级),使得不能确定用户的特定位置。因此,用户可以控制如何收集关于用户并由计算设备和/或计算系统使用的信息。
21.图1是示出根据本公开的一个或多个方面的示例移动计算设备100的概念图,该示例移动计算设备被配置成在图像捕捉期间提供姿态估计和指导。移动计算设备100的示例可以包括但不限于,移动电话、平板计算机、个人数字助理(pda)、膝上型计算机、便携式游戏设备、便携式媒体播放器、可穿戴计算设备(例如,手表、腕戴式计算设备、头戴式计算设备)、电视平台、卫星或无人机设备、或其它类型的计算设备。如下文将进一步详细描述的,计算设备100可以是或包括一个或多个处理器。
22.如图1中所示,计算设备100包括显示设备102(例如,存在敏感显示设备)。显示设备102可以具有输入组件和/或输出组件。例如,显示设备102可以包括存在敏感输入组件,诸如电阻式触摸屏、表面声波触摸屏、电容式触摸屏、投射式电容触摸屏、压敏屏幕、声学脉冲辨识触摸屏、经由雷达技术或另一存在敏感技术检测运动的存在敏感屏幕。显示设备102可以包括显示组件,诸如液晶显示器(lcd)、点阵显示器、发光二极管(led)显示器、阴极射线管(crt)显示器、有机发光二极管(oled)显示器、量子点led(qled)显示器、电子墨水、投影仪或能够向移动计算设备100的用户输出信息的类似单色或彩色显示器。
23.作为一个示例,计算设备100的显示设备102可以包含存在敏感显示设备,诸如触摸屏,其包括输入组件和输出组件。显示设备102可以通过检测来自移动计算设备100的用户的一个或多个手势(例如,用户用手指或触控笔触摸或指向显示设备102的一个或多个位置)来接收触摸和/或存在敏感输入的指示。显示设备102可以在图形用户界面中呈现输出,该图形用户界面可以与移动计算设备100提供的功能性相关联。例如,显示设备102可以呈现诸如在移动计算设备100处执行的摄像机应用110之类的应用的各种图形用户界面。用户可以与这些应用中的每一者的相应图形用户界面交互,以使得移动计算设备100执行与对应的应用功能性相关的操作。
24.在一些示例中,移动计算设备100可以包括一个或多个通信单元,其可以向一个或多个其它计算设备发送数据和/或从一个或多个其它计算设备接收数据。在一些示例中,这些通信单元支持无线和/或有线通信,并且可以使用任何种类的通信协议来发送和/或接收数据。
25.移动计算设备100可以包括一个或多个摄像机设备104,并且还可以被配置成执行摄像机应用110。摄像机应用110可以使用驻留在计算设备110中和/或在计算设备100处执行的软件、硬件、固件或者硬件、软件和固件的混合来执行本文所描述的操作。计算设备100可以使用一个或多个处理器来执行诸如摄像机应用110的应用。这些应用可以以各种方式实现。例如,应用可以被实现为可下载或预安装的应用或“应用程序(apps)”。在一些示例中,应用也可以作为操作系统或计算平台的服务来执行。显示设备102可以向用户呈现一个或多个图形用户界面(gui)。这些gui可以包括在显示设备102的各个位置处显示的图形元素(例如,指示)。
26.如下文将进一步详细描述,摄像机应用110可以使用视口模块112、姿态估计器114、姿态指导模块116、姿态数据库118和图像数据库119来执行各种操作,以实现用于照片构图的场景捕捉。例如,视口模块112可以管理和/或控制被输出用于在显示设备102处显示的数据。视口模块112可以输出具有由摄像机设备104捕捉的一个或多个图像(例如,真实世界物体的图像)的帧(例如,图像帧或视频帧),以用于在显示设备102处显示。图像可以包含一个或多个真实世界物体的表示。任何给定帧可以包括由摄像机设备104捕捉的一个或多个图像,其中每个单独图像可以表示一个或多个真实世界物体。例如,图像可以表示由摄像机设备104捕捉的整个物体组,或者图像可以表示该组内的一个或多个单独物体。
27.响应于接收到选择该帧的输入(例如,用户输入,如下文进一步描述),图像捕捉模块117可以将该帧存储为参考帧(例如,在姿态数据库118和/或图像数据库119中),其中该参考帧包括显示的帧的一个或多个图像作为参考图像。图像捕捉模块117可以将参考帧存储在任何形式的存储实体或设备中(例如,易失性或临时存储器、非易失性或永久存储器
等)。姿态数据库118和图像数据库119可以存储在移动计算设备100上,如图1中所示。在其它示例中,姿态数据库118和/或图像数据库119中的一者或多者可以存储在移动计算设备100外部的一个或多个远程设备上(例如,在外部服务器上)。在一些情况下,摄像机应用110可以在一个或多个远程设备上执行。
28.例如,如图1的示例中所示,诸如移动计算设备100的所有者的第一用户可能希望拍摄包括在阳光明媚的公园里多棵不同的树的特定场景或环境的照片。该第一用户可以基于第一用户期望的公园内的场景来捕捉和选择参考图像的参考或锁定帧。在一些情况下,第一用户可以提供用户输入,以触发移动计算设备100上的场景锁定模式(例如,通过激活按钮或提供另一形式的用户输入),以选择和/或存储当前在显示设备102处显示的帧作为参考帧。例如,第一用户可以经由被移动计算设备100的一个或多个传感器检测到的触摸、存在敏感和/或音频输入来提供用户输入。
29.姿态估计器114可以基于参考帧中包括的参考图像来确定摄像机设备104的参考姿态。该参考姿态与参考图像相关联。摄像机应用110可以将参考图像的参考帧(例如,模板帧)以及与参考姿态相关联的任何其它信息保存或记忆在姿态数据库118内。例如,姿态估计器114可以确定与所捕捉参考图像相关联的参考定向(例如,相对于x轴、y轴、z轴的旋转)和/或特征信息,并将该定向和/或特征信息作为参考姿态的部分存储在姿态数据库118内。当在显示设备102上显示给定场景内的特定树组时,该参考姿态可以与移动计算设备100和/或摄像机设备104的期望定向相关联。
30.在确定参考姿态之后,视口模块112可以输出具有该场景的一个或多个当前图像的当前帧136,以用于在显示设备102处显示。这些当前图像也由摄像机设备104捕捉。例如,在移动计算设备100的第一用户(例如,所有者)已经提供输入以使得图像捕捉模块117锁定与参考姿态相关联的模板或参考帧之后,第一用户可能希望另一第二用户使用移动计算设备100和摄像机设备104来拍摄该第一用户在该场景内的照片,使得摄像机设备104相对于场景(以及场景内的树)具有与先前捕捉的参考姿态相同的姿态。当另一第二用户操纵移动计算设备100时,视口模块112可以在显示设备102处持续显示所捕捉图像的当前帧136,以供该用户查看。
31.如上所述,摄像机设备104可以包括一个或多个摄像机设备。在摄像机设备104包括多个摄像机设备的示例中,图像捕捉模块117可以被配置成从每一个摄像机设备104捕捉图像,并构造包括从每一个摄像机设备捕捉的图像的合成帧。例如,图像捕捉模块117可以在给定时间点捕捉从摄像机设备104的第一摄像机设备获得的一个或多个图像的第一帧。图像捕捉模块117还可以在相同时间点捕捉从摄像机设备104的第二摄像机设备获得的一个或多个图像的第二帧。例如,移动计算设备100的用户可以使用摄像机应用110来拍摄照片,这使得摄像机设备104能够在相同时间点捕捉图像。图像捕捉模块117可以使用一个或多个图像处理功能来构造一个或多个图像的合成帧,该一个或多个图像基于由摄像机设备104的第一和第二摄像机设备获得的单独图像。摄像机设备104可以包括相同或不同类型的摄像机(例如,具有相同或不同类型的镜头或分辨率的摄像机)。在各种示例中,摄像机设备104可以被包括在移动计算设备100上的固定定位或配置中(例如,在移动计算设备100的上后侧拐角上的固定配置中)。摄像机设备104的定位或配置可以与摄像机设备104的特定姿态(例如,参考姿态或当前姿态)相关联。
32.当视口模块112输出一个或多个当前图像以用于在显示设备102处显示时,姿态估计器114可以基于当前帧136中包括的这些当前图像来确定摄像机设备104的当前姿态。当前姿态与这些当前图像相关联。姿态估计器114可以被配置成持续地确定检测到的当前姿态是否与存储在姿态数据库118中的参考姿态相同或不同。响应于确定当前姿态与参考姿态不同,姿态指导模块116可以向第二用户输出一个或多个指令(例如,用户指令)的指示,以将移动计算设备100的摄像机设备104从当前姿态操纵成参考姿态。因此,第二用户可以接收并遵循这些用户指令以操纵摄像机设备104来拍摄第一用户在场景内的照片,使得摄像机设备104相对于场景和该场景内的树具有与先前捕捉的参考姿态相同的姿态。第二用户然后可以利用摄像机设备104来使摄像机应用110的图像捕捉模块117捕捉在显示设备102处显示的当前帧136的当前图像,该当前图像可以被保存在图像数据库119中。
33.由姿态指导模块116提供的用户指令可以包含视觉、听觉和/或触觉输出,其提供将摄像机设备104操纵成参考姿态的用户指令的一个或多个指示,和/或用于自动成像过程的一个或多个计算机可读指令。例如,如上文指示的,移动计算设备100的第一用户或所有者可能希望拍摄包括在阳光明媚的公园里的多棵不同的树的特定场景或环境的照片。该第一用户可以基于第一用户期望的公园内的场景来捕捉参考图像的参考或锁定帧,其对应于摄像机设备104的参考姿态。参考姿态可以与移动计算设备和/或摄像机设备104的参考定向和/或平移相关联,该参考定向和/或平移对应于在显示设备102处对场景的公园中的四棵特定的树的显示。
34.当第一用户将移动计算设备交给第二用户时,第一用户可能希望第二用户操纵移动计算设备100中包括的摄像机设备104(例如,经由旋转和/或平移操纵),使得摄像机设备104具有与期望的锁定姿态相匹配的当前姿态,使得显示设备102使用与由第一用户先前保存的锁定的参考(或模板)姿态相同的摄像机姿态来包括该场景中相同的四棵树。一旦第二用户已将摄像机设备104操纵成参考姿态,第二用户就可以使用摄像机设备104来使用图像捕捉模块117捕捉显示在显示设备102处的一个或多个当前图像。在一些情况下,第一用户可能希望被包括在照片中,在此情况下,该第一用户可以是由摄像机设备104在该组捕捉的图像中捕捉的场景的一部分。例如,如图1中所示,第一用户的当前图像146可以被包括在由图像捕捉模块117捕捉的当前帧136内。图像捕捉模块117可以将任何捕捉图像存储在图像数据库119中。第一用户可以通过首先确定在姿态数据库内的期望参考姿态,使第二用户能够利用摄像机设备104的期望参考姿态来拍摄第一用户在场景的特定部分内的照片。
35.在图1的特定示例中,姿态指导模块116可以在第二用户尝试将摄像机设备104操纵成参考姿态时向其提供视觉指导。可以假设移动计算设备100的第一用户(例如,所有者)已捕捉到摄像机设备104的参考姿态,该参考姿态包括在显示设备102处输出的参考帧,该参考帧包括场景内四棵不同树的参考图像。这些参考图像可以包含第一棵树的参考图像、第二棵树的参考图像、第三棵树的参考图像和第四棵树的参考图像。第一用户可以提供用户输入来选择图像作为参考帧中的参考图像,该参考帧是在显示设备102处当前显示的帧。例如,第一用户可以经由被移动计算设备100的一个或多个传感器(例如,包含存在敏感显示设备的显示设备102的传感器、移动计算设备100的麦克风、移动计算设备100的力或压力传感器、基于雷达的传感器、和/或与耦合到移动计算设备100的物理按钮相关联的传感器)检测到的触摸、存在敏感和/或音频输入来提供该用户输入。
36.在图像捕捉模块117捕捉并保存包括这四棵树的参考图像的参考帧之后,并且当第二用户随后尝试将摄像机设备104从当前姿态操纵成期望的参考姿态时,姿态指导模块116可以生成参考框角132a-132d(统称为“参考框角132”),它们被输出到显示设备102处的当前显示的帧136上。在各种示例中,在姿态估计器1142已经首先确定作为当前姿态的一部分的摄像机设备104的当前定向与保存在姿态数据库118中的参考姿态所关联的参考定向匹配之后,姿态指导模块116可以仅输出参考框角132。在这些示例中,一旦发生这种定向匹配,姿态估计器114就可以基于进一步的平移估计继续确定当前姿态是否与参考姿态匹配,并且姿态指导模块116可以输出相对于边界框130的参考框角132,如图1所示。在某些其它示例中(图1中未示出),姿态估计器114可以仅基于摄像机设备104的当前定向与摄像机设备104的保存的参考定向之间的匹配来确定当前姿态与参考姿态之间的匹配。
37.在图1中,参考框角132与参考帧相关联,并提供来自姿态数据库118的参考姿态的视觉指示,该参考姿态对应于具有场景的四棵特定树的参考图像的参考帧。然而,当前帧136包括场景中各种树的当前图像,以及第一用户的图像和太阳的图像。如图1中所示,当前帧136包括第一棵树的当前图像140、第二棵树的当前图像141、第三棵树的当前图像142和第四棵树的当前图像143。当前帧136还包括第一用户的当前图像146、另外的(第五棵)树的当前图像144和太阳的当前图像145。
38.姿态指导模块116还可以基于摄像机设备104的当前姿态,来输出当前边界框130(其与当前帧136相关联,并且在视觉上指示当前帧136的边界)以及帧136的各种当前图像,作为在显示设备102处显示的输出。然而,在图1的示例中,当前边界框130大于由参考框角132指示的参考框或区域,指示当前姿态与参考姿态不匹配。特别地,对应于参考姿态的参考帧可能不包括场景左侧的第五棵树的图像144,并且也可能不包括太阳的图像145。因此,参考框角132划分了小于边界框130的参考区域。该参考区域不包含第五棵树的图像144或太阳的图像145,并且因此参考框角向第二用户提供了这些图像不是期望姿态的一部分或不包括在期望姿态中的视觉指示。
39.相反,参考框角132和边界框130提供了视觉指示,其中第二用户要通过将摄像机设备104移动或平移得更靠近由当前图像140、141、142、143和146表示的树物体,直到显示设备102仅显示当前帧内的这些图像,而不显示图像144和145,从而将摄像机设备104从当前姿态操纵成参考姿态。在一些示例中,边界框130可以是倾斜的(而不是矩形的),这可以指示除了平移之外还要进行附加的小旋转以达到参考姿态。当第二用户以这种方式操纵摄像机设备104时,姿态指导模块116可以参考参考框角132的视觉边界,持续地将边界框130的显示重新定向到新的且当前显示的帧上。
40.随着当前姿态与参考姿态更紧密地对齐,边界框130将变得在视觉上与参考框角132所关联和/或由其划分的参考区域更对齐。一旦边界框130基本上与参考框角132的参考区域对齐(如图5b的示例所示),当前姿态将基本上与参考姿态对齐。通过此类视觉指示,第二用户可以知道摄像机设备104何时被操纵成参考姿态,并且第二用户可以使用摄像机设备104来拍摄与图1所示的当前图像140、141、142、143和146相关联的更新图像的照片。照片的当前图像可以由图像捕捉模块117捕捉并被存储在图像数据库119中。在第一用户(例如,所有者)希望被包括在照片中的情况下,第一用户可以使他或她自己位于场景的期望区域内(例如,在四棵树之间),并且第二用户然后可以在姿态指导模块116指示当前姿态与期望
的参考姿态匹配时拍摄照片。在此情况下,照片可以包括场景内的树的图像以及第一用户的图像。
41.如将在下文进一步详细描述,本公开的各种技术可以将姿态跟踪分解成单独的步骤,诸如仅定向跟踪和组合的定向/平移跟踪,而不是对每一个捕捉的帧都跟踪摄像机旋转和平移,这可能是非常耗电且耗时的。因此可以提供资源效率更高的方法。例如,当在给定时刻锁定由摄像机设备104捕捉的特定参考帧时,移动计算设备100的陀螺仪可以首先在每帧的基础上确定定向特性,这是非常高效的并且利用了有限的功率。参考姿态可以包括或以其它方式指示该参考定向。根据某些示例,当移动计算设备100确定与摄像机设备104的当前姿态相关联的当前定向与锁定场景或姿态的先前定向基本相同或近似在阈值量内时,移动计算设备100然后可以仅继续进行平移估计以确定当前姿态是否匹配参考姿态。在一些示例中,姿态估计器114可以仅基于摄像机设备104的当前定向与摄像机设备104的保存的参考定向之间的匹配来确定当前姿态与参考姿态之间的匹配。
42.在各种示例中,利用一个或多个所公开的技术提供了各种益处,诸如功率节省和处理高效,因为在各种情况下,平移估计可以仅在移动计算设备100识别到当前姿态的当前设备定向和与设备的先前保存的参考姿态相关联的定向充分接近匹配之后才发生。因此,平移估计的数量可能会减少,这可以减少计算资源和电池电量的使用。在某些示例中,移动计算设备100可以向用户提供仅旋转或仅定向的指导,以努力使用户能够将移动计算设备100定向为基本上接近期望的姿态。在该步骤之后,由于通常在当前摄像机定向类似于期望姿态的参考定向时发生大部分重叠,所以姿态估计器114和/或姿态指导模块116可以利用较轻的估计技术来进行平移估计(例如,二维和/或三维估计),这导致移动计算设备100上的功率节省和/或处理高效。在平移估计期间,可以应用各种图像匹配方法,诸如直接的基于图像相关性匹配和基于图像特征的单应性变换估计,如下文进一步详细描述。
43.图2是示出根据本公开的一个或多个方面的示例移动计算设备200的框图。移动计算设备200可以包含图1中所示的移动计算设备100的一个示例。图2示出移动计算设备200的仅一个特定示例,并且移动计算设备200的许多其它示例可以用于其它情况,并且可以包括示例移动计算设备200中包括的组件的子集,或者可以包括图2中未示出的附加组件。
44.在图2的示例中,移动计算设备200包括存在敏感显示设备202、一个或多个处理器220、一个或多个输入组件222、一个或多个通信单元224、一个或多个输出组件226和一个或多个摄像机设备204、一个或多个传感器221、电源228和一个或多个存储设备250。移动计算设备200的存储设备250被配置成存储摄像机应用210。通信信道227可以与组件220、222、202、204、221、250、228、226和/或224中的每一者互连,以用于组件间通信(物理地、通信地和/或可操作地)。在一些示例中,通信信道227可以包括系统总线、网络连接、进程间通信数据结构、或者用于在硬件和/或软件之间通信数据的任何其它方法。
45.计算设备200的一个或多个输入组件222可以接收输入,诸如来自用户的输入。输入的示例是触摸/触觉、存在敏感和音频输入。输入组件222的示例包括存在敏感屏幕、触敏屏幕、触摸屏、鼠标、键盘、轨迹板、语音响应系统、视频摄像机、麦克风或用于检测来自人类或机器的输入的任何其它类型的设备。
46.计算设备200的一个或多个输出组件226可以生成输出。输出的示例是触觉、听觉和视觉输出。输出组件226的示例包括存在敏感屏幕、触敏屏幕、触摸屏、声卡、视频图形适
配卡、扬声器、阴极射线管(crt)显示器、液晶显示器(lcd)、触觉设备或用于向人类或机器生成输出的任何其它类型的设备。
47.计算设备200的一个或多个通信单元224可以通过在一个或多个网络(例如,一个或多个有线和/或无线网络)上传输和/或接收网络信号来经由所述一个或多个网络与外部设备通信。例如,移动计算设备200可以使用通信单元224来在诸如蜂窝式无线电网络的无线电网络上传输和/或接收无线电信号。同样地,通信单元224可以在诸如全球定位系统(gps)网络的卫星网络上传输和/或接收卫星信号。通信单元44的示例包括网络接口卡(例如,诸如以太网卡)、光学收发器、射频收发器、gps接收器、或可以发送和/或接收信息的任何其它类型的设备。通信单元224的其它示例可以包括短波无线电、蜂窝式数据无线电、无线以太网网络无线电以及通用串行总线(usb)控制器。
48.计算设备200的存在敏感显示设备202包括显示组件223和存在敏感输入组件225。在一些示例中,如上文参考输出组件226所述的,存在敏感显示设备202可以使用触觉、听觉或视觉刺激向用户提供输出。例如,显示组件223可以提供如参考输出组件226所描述的显示或视频输出。存在敏感显示设备202还可以提供输入能力,诸如上文参考输入组件222描述的输入能力。例如,存在敏感输入组件225可以提供如参考输入组件222所描述的输入能力。
49.显示组件223可以是由存在敏感显示设备202在其上显示信息的屏幕,并且存在敏感输入组件225可以检测在显示组件223处和/或附近的物体。作为一个示例范围,存在敏感输入组件225可以检测在显示组件223的两英寸或更短距离内的物体,诸如手指或触控笔。存在敏感输入组件225可以确定检测到物体的显示组件223的定位(例如,(x,y)坐标)。在另一示例范围中,存在敏感输入组件225可以检测距离显示组件223六英寸或更短距离的物体,并且其它范围也是可能的。存在敏感输入组件225可以使用电容式、电感式、基于雷达和/或光学辨识技术来确定用户手指选择的显示组件223的定位。在一些示例中,如关于显示组件223所描述的,存在敏感输入组件225还使用触摸、存在敏感、听觉或视频刺激向用户提供输出。显示组件223可以是提供视觉输出的任何类型的输出设备,如关于输出组件226所描述的。
50.虽然被示为移动计算设备200的内部组件,但存在敏感显示设备202也可以表示与移动计算设备200共享数据路径以传输和/或接收输入和输出的外部组件。例如,在一个示例中,存在敏感显示设备202表示移动计算设备200的内置组件,其位于移动计算设备200的外部封装(例如,移动电话上的屏幕)内并物理连接到该外部封装。在另一示例中,存在敏感显示设备202表示移动计算设备200的外部组件,其位于移动计算设备200的封装外部并与移动计算设备200的封装物理分开(例如,与平板计算机共享有线和/或无线数据路径的监视器和/或投影仪)。
51.移动计算设备200的存在敏感显示设备202可以检测二维和/或三维手势作为来自移动计算设备200的用户的输入。例如,存在敏感显示设备202的传感器(例如,存在敏感输入组件225的传感器)可以检测在存在敏感显示设备202的传感器的阈值距离内的用户移动(例如,移动手、臂、笔、触控笔)。存在敏感显示设备202可以确定该移动的二维或三维向量表示,并使该向量表示与具有多个维度的手势输入(例如,手波、捏、拍手、笔划等)相关。换句话说,存在敏感显示设备202可以检测多维手势,而无需用户在存在敏感显示设备202输
出信息以供显示的屏幕或表面(例如,显示组件223)处或附近做出手势。相反,存在敏感显示设备202可以检测在传感器处或附近执行的多维手势,该传感器可以位于或不位于存在敏感显示设备202输出信息以供显示的屏幕或表面附近。
52.计算设备200内的一个或多个存储设备250可以存储用于在计算设备200的操作期间(例如,在一个或多个应用252、操作系统254或摄像机应用210的执行期间)处理的信息。在一些示例中,存储设备250包括临时存储器,这意味着存储设备250的主要目的不是长期存储。移动计算设备200上的存储设备250可以被配置作为易失性存储器以用于信息的短期存储,并且因此如果断电,则不保留存储的内容。易失性存储器的示例包括随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)和本领域中已知的其它形式的易失性存储器。
53.在一些示例中,存储设备250包括一个或多个计算机可读存储介质。存储设备250可以被配置成比易失性存储器存储更大量的信息。存储设备250可以还被配置作为非易失性存储器空间用于信息的长期存储,并且在通电/断电周期后保留信息。非易失性存储器的示例包含磁性硬盘、光盘、软盘、闪存、或电可编程存储器(eprom)或电可擦除且可编程(eeprom)存储器的形式。存储设备250可以存储与一个或多个应用252、操作系统254和摄像机应用210相关联的程序指令和/或数据。
54.在某些示例中,存储设备250或存储设备250中包括的一个或多个组件可以存储在移动计算设备200外部的一个或多个远程计算设备上(例如,在一个或多个外部服务器上)。在一些示例中,一个或多个远程计算设备可以存储和/或执行摄像机应用210、应用252和/或操作系统254。在这些示例中,所述一个或多个远程计算设备可以执行类似于本文参考处理器220描述的功能性。
55.如图2中所示,移动计算设备200可以包括电源228。在一些示例中,电源228可以是电池。电源228可以向计算设备2的一个或多个组件提供电力。电源228的非限制性示例可以包括但不一定限于,具有锌碳、铅酸、镍镉(nicd)、镍金属氢化物(nimh)、锂离子(li离子)和/或锂离子聚合物(li离子聚合物)化学物质的电池。在一些示例中,电源228可以具有有限的容量(例如,1000-3000mah(毫安时))。
56.移动计算设备200还包括一个或多个传感器221。在一些示例中,传感器221中的一者或多者可以是输入组件222中的一者或多者的示例。传感器221可以包括一个或多个惯性测量单元。例如,传感器221可以包括一个或多个陀螺仪,诸如一个或多个高频陀螺仪(例如,200hz(赫兹)陀螺仪)。如本文所描述,移动计算设备200的传感器221可以被配置成确定移动计算设备200在三维空间中的实时定向或旋转。在一些示例中,传感器221还可以包括一个或多个加速度计。
57.移动计算设备200还包括一个或多个摄像机设备204。摄像机设备204可以是图1中所示的摄像机设备104的一个示例。摄像机设备204被配置成在摄像机应用210的执行期间捕捉一个或多个图像(例如,摄像机应用210的图像捕捉模块217),诸如一个或多个静止和/或移动图像。摄像机设备204可以包括在移动计算设备200的前侧和/或后侧上的一个或多个摄像机设备。
58.摄像机设备204可以是任何适当类型的图像获取或捕捉设备中的一者或多者,诸如摄像机或电荷耦合设备。在一些示例中,摄像机设备204可以包括一个或多个具有高视场
和浅焦深的红外摄像机,并且可以包括具有特定视场的背光红外摄像机。在其它示例中,摄像机设备204可以是或可以还包括一个或多个其它类型的摄像机或图像传感器,其可以包括一个或多个其它红外摄像机、热感摄像机、热成像摄像机、光敏摄像机、距离传感器、断层扫描设备、雷达设备、红绿蓝(rgb)摄像机或超声波摄像机。在一些示例中,摄像机设备204可以包括适用于计算机视觉技术应用的任何图像捕捉设备。取决于所使用摄像机设备的类型,所得图像可以包括二维图像、三维体积和/或图像序列。像素值通常对应于一个或多个光谱带中的光强度,但也可能与各种物理测量相关,诸如深度、声波或电磁波的吸收或反射,或者核磁共振。
59.一个或多个处理器220可以实现功能性和/或执行移动计算设备200内的指令。例如,移动计算设备200上的处理器220可以接收和执行由存储设备250存储的指令,这些指令执行应用252、操作系统254和/或摄像机应用210的功能性。由处理器220执行的这些指令可以使得移动计算设备200在程序执行期间将信息存储在存储设备250内。处理器220可以执行操作系统254和应用252的指令以执行一个或多个操作。也就是说,操作系统254和应用252能够由处理器220操作以执行本文描述的各种功能。
60.在一些替代示例中,移动计算设备200可以仅包含或以其它方式包括处理器220。在这些示例中,输入组件222、存在敏感显示设备202、通信单元224、输出组件226、电源228和存储设备250可以在移动计算设备200外部,但与移动计算设备200通信耦合(例如,经由通信信道227)。
61.应用252可以包括一个或多个不同的各种应用。电子邮件应用、地图或导航应用、日历应用、消息应用、社交媒体应用、旅行应用、游戏应用、股票应用和天气应用都是应用252的示例。
62.存储在存储设备250上的摄像机应用210可以由处理器220执行,并且是图1中摄像机应用110的一个示例。类似于摄像机应用110,摄像机应用210包括视口模块212(例如,视口模块112的一个示例)、姿态估计器214(例如,姿态估计器114的一个示例)、姿态指导模块216(例如,姿态指导模块116的一个示例)、图像捕捉模块217(例如,图像捕捉模块117的一个示例)、姿态数据库218(例如,姿态数据库118的一个示例)和图像数据库219(例如,图像数据库119的一个示例)。
63.视口模块112可以管理和/或控制被输出以用于在存在敏感显示设备202处显示的数据。视口模块212可以输出具有由摄像机设备204捕捉的一个或多个图像的帧,以用于在显示设备202处显示。响应于接收到选择该帧的输入(例如,用户输入,如下文进一步描述),图像捕捉模块217可以将该帧存储为参考帧(例如,在姿态数据库218和/或图像数据库219中)。例如,如图1的示例中所指示的,诸如移动计算设备200的所有者的第一用户可能希望拍摄包括多个不同物体(例如,公园里的树)的特定场景或环境的照片。在一些情况下,该第一用户可能希望被包括在照片中,并且因此在拍摄照片时可能需要第二用户的帮助。然而,第一用户在拍摄照片时可能偏好特定的姿态,并且可能发现向第二用户解释在拍摄物体和第一用户的照片时如何准确地定向和/或定位移动计算设备200的摄像机设备204是有挑战性的。在没有向第二用户提供足够的指导的情况下,第二用户可能意外地拍摄了期望场景内的不同物体组或不同部分的照片。
64.因此,使用本公开的技术,在将移动计算设备200交给第二用户之前,第一用户可
以最初使用移动计算设备200基于第一用户的期望场景来捕捉并选择显示的帧作为参考图像的参考或锁定帧。例如,第一用户可以定向和/或定位包括摄像机设备204的移动计算设备200,以查看由在存在敏感显示设备202处的视口模块212输出的场景内的一组图像。当第一用户在三维空间内移动移动计算设备200和摄像机设备204时,视口模块212可以向存在敏感显示设备202输出实时图像帧。
65.当视口模块212输出具有期望的定向和/或定位的图像帧显示在存在敏感显示设备202上时,第一用户可以触发移动计算设备200上的场景锁定模式(例如,通过激活按钮或提供另一形式的用户输入)以选择所显示的帧作为参考帧,使得视口模块212和/或图像捕捉模块217选择和/或存储当前显示的输出图像的帧作为参考或模板帧。例如,第一用户可以经由被移动计算设备200的一个或多个传感器检测到的触摸、存在敏感和/或音频输入来提供该用户输入(例如,存在敏感显示设备202中包括的传感器和/或传感器221和/或输入组件222,诸如触摸传感器、基于雷达的传感器、麦克风、力或压力传感器、与耦合到移动计算设备200的物理按钮相关联的传感器、其它存在敏感传感器等)。
66.在一些示例中,如下文进一步详细描述,摄像机应用210可以允许第一用户仅当适当的时候或在某些条件下提供此类用户输入来选择或触发此类场景锁定模式。例如,为了避免难以跟踪帧时的潜在失败情况(例如,具有白色区域而没有足够显著特征的帧),视口模块212和/或姿态估计器214可以被配置成评估由摄像机设备204捕捉的图像的当前帧可以被跟踪的可靠程度,并且仅当所确定的可靠性或置信度分数满足确定的阈值时才允许用户选择场景锁定模式来捕捉参考帧。在一些情况下,该评估可以通过快速图像分析(诸如角点检测)来高效地执行。
67.在第一用户已捕捉图像的参考帧之后,姿态估计器214可以基于参考帧中包括的参考图像来确定摄像机设备204的参考姿态。该参考姿态与参考图像相关联。摄像机应用210可以将参考图像的参考帧(例如,作为模板帧)以及与参考姿态相关联的任何其它信息保存或记忆在姿态数据库218内。例如,姿态估计器214可以确定与所捕捉参考图像相关联的参考定向和/或特征信息,并将该定向和/或特征信息作为参考姿态的部分存储在姿态数据库218内。
68.在确定摄像机设备204的参考姿态之后,第一用户然后可以将移动计算设备200交给第二用户。第二用户然后可以开始使用摄像机设备204和摄像机应用210来捕捉与由第一用户先前捕捉并存储的期望参考帧相对应的图像帧。在此情况下,当第二用户正在使用摄像机设备204和摄像机应用210时,视口模块212可以输出具有该场景的一个或多个当前图像的当前帧,用于在存在敏感显示设备202处显示。当第二用户操纵移动计算设备200时,视口模块212可以在存在敏感显示设备202处持续显示所捕捉图像的当前帧,以供该用户查看。
69.当视口模块212输出所述一个或多个当前图像以用于在存在敏感显示设备202处显示时,姿态估计器214可以基于当前帧中包括的这些当前图像来确定摄像机设备204的当前姿态。当前姿态与这些当前图像相关联。姿态估计器214可以被配置成持续地确定检测到的当前姿态是否与存储在姿态数据库218中的参考姿态相同或不同。在各种示例中,当确定摄像机设备204的姿态(例如参考和/或当前姿态)时,姿态估计器214可以确定与相应姿态相关联的姿态信息。该姿态信息可以包括帧和图像信息。例如,摄像机设备204的参考姿态
可以包括参考姿态信息,该参考姿态信息包括参考帧和/或参考帧中包括的参考图像的特征。摄像机设备204的当前姿态可以包括当前姿态信息,该当前姿态信息包括当前帧和/或当前帧中包括的当前图像的特征。姿态估计器214可以将姿态信息存储在姿态数据库218内。
70.在一些情况下,姿态信息可以还包括用于相应姿态的定向和/或平移信息。例如,参考姿态信息可以包括用于摄像机设备204的参考姿态的参考定向信息,并且当前姿态信息可以包括用于摄像机设备204的当前姿态的当前定向信息,如下文进一步详细描述。在这些情况下,移动计算设备200的传感器221可以包括一个或多个陀螺仪,这些陀螺仪被配置成确定移动计算设备200在三维空间中的实时定向或旋转。姿态估计器214可以利用来自传感器221的信号来针对由在存在敏感显示设备202处的视口模块212输出的图像帧而逐帧地监视和确定移动计算设备200和摄像机设备204的定向。如上所述,姿态估计器214可以将姿态信息存储在姿态数据库218内。在一些情况下,姿态估计器214还可以将定向和/或平移信息存储在所捕捉图像的元数据中,该元数据可以存储在姿态数据库218和/或图像数据库219中。
71.姿态估计器214可以确定摄像机设备204的当前姿态是否与姿态数据库218中的保存的参考姿态基本上匹配。姿态跟踪可以包括仅定向跟踪和/或组合定向/平移跟踪。例如,在一些情况下,姿态估计器214可以基于摄像机设备204的当前定向与摄像机设备204的参考定向的匹配来确定当前姿态与参考姿态的匹配。在其它情况下,姿态估计器214可以首先基于摄像机设备204的当前定向与摄像机设备204的参考定向的匹配,并且随后进一步基于比较当前帧的图像或图像特征与参考帧的图像或图像特征的平移估计,来确定当前姿态与参考姿态的匹配。在这些情况下,姿态估计器214可以直到它确定设备定向的匹配以及当前姿态的当前帧与参考姿态的参考帧之间的图像或图像特征的匹配才确定姿态的匹配。
72.响应于基于确定的姿态差异而确定当前姿态不同于参考姿态,姿态指导模块216可以输出一个或多个(用户)指令的指示以将摄像机设备204从当前姿态操纵成参考姿态。如图2所示并且如将在下文参考图4至图6进一步描述的,姿态指导模块216可以在存在敏感显示设备202处提供这些指令的视觉指示,诸如通过使用参考框角和/或覆盖的边界框。在一些情况下,姿态指导模块216可以提供包括指令(例如,视觉、听觉和/或触觉指令)的用户指导,以基于所确定的当前姿态与参考姿态之间的差异在三维空间中旋转、平移和/或以其它方式移动移动计算设备200的摄像机设备204。此外,当当前姿态匹配参考姿态时,姿态指导模块216可以输出匹配的指示(例如,通过可视地指示参考框角和当前边界框之间的匹配,诸如图6中的那样)。
73.因此,第二用户可以接收并遵循这些用户指令以操纵和使用摄像机设备204来拍摄第一用户在期望场景内的照片,使得摄像机设备204相对于场景具有与第一用户所捕捉的先前参考姿态相同的姿态。第二用户然后可以利用摄像机设备204来使得摄像机应用210的图像捕捉模块217捕捉在存在敏感显示设备202处显示的当前帧的当前图像,该当前图像可以被保存在图像数据库219中。由姿态指导模块216提供的用户指令可以包含视觉、听觉和/或触觉输出,这些输出提供用户指令的一个或多个指示以将摄像机设备204操纵成参考姿态。在各种情况下,使用这些技术还可以促进一个或多个用户进行更有效的环境和结构状况监视。
74.图3是示出根据本公开的一个或多个方面的图1和/或图2所示的姿态估计器和姿态指导模块的示例的框图。姿态估计器314是姿态估计器114(图1)和/或姿态估计器214(图2)的一个示例。姿态指导模块316是姿态指导模块116(图1)和/或姿态指导模块216(图2)的一个示例。姿态数据库318是姿态数据库118(图1)和/或姿态数据库218(图2)的一个示例。仅出于说明的目的,图3的各方面参考图2中所示的移动计算设备200来描述。
75.如前所概述的,现有技术可以利用来自诸如陀螺仪和加速度计之类的传感器的输入以及从所捕捉的帧中提取的图像特征,来估计移动计算设备在空间中的三维(3d)旋转和平移。然而,这些现有技术跟踪每一个捕捉帧的摄像机旋转和平移,并且因此非常耗电且耗时。然而,本公开的各种技术将姿态跟踪分解成仅定向跟踪和平移跟踪。
76.例如,当锁定由摄像机设备204(图2)在给定时刻捕捉的特定场景时,移动计算设备200的陀螺仪(例如,传感器221中的一个)可以首先仅在每帧的基础上确定定向特性,相比于还监视平移特性,这是非常高效的并且利用了有限的功率。传感器事件处理程序361可以被配置成处理来自陀螺仪的信号,并且例如以高频(例如,200hz)估计最新的摄像机定向(例如,r(t),指示在当前时间t摄像机与x轴、y轴、z轴的角度的旋转矩阵)。
77.当姿态估计器314的定向估计器362确定摄像机设备204的当前定向与锁定场景或姿态的先前定向基本相同或近似在阈值量内时,平移估计器364然后继续进行平移估计。利用这些技术提供了各种益处,诸如功率节省和处理高效,因为平移估计器364的平移估计仅在定向估计器362识别出当前设备定向与对应于摄像机设备204的锁定或参考姿态的先前保存的定向足够接近匹配时才发生。
78.在某些示例中,姿态指导模块316向用户提供仅旋转或仅定向的指导,以努力使用户能够将摄像机设备204定向为基本上接近期望的姿态。在该步骤之后,假定当当前摄像机定向类似于期望姿态的参考定向时,通常发生大部分重叠,平移估计器364可以使用用于平移估计的较轻的估计技术(例如,二维和/或三维估计),这导致移动设备计算设备200上的功率节省和/或处理高效。
79.在各种示例中,高频陀螺仪和光学图像稳定化(ois)数据(如果可用的话)被可选的ois镜头移位处理程序367用来计算摄像机旋转和主点偏移。移动计算设备200使用高频陀螺仪信号和捕捉的帧数据作为输入。如果ois数据也可用和/或被提供给移动计算设备200,则ois镜头移位处理程序367可以使用此类数据来计算主点的偏移。在一些情况下,ois镜头移位处理程序367可以连续提取ois读出数据(如果可用的话)(例如,经由传感器221),并将ois读出数据转换成二维像素偏移(例如,o_len(t)=(o_len(x,t),o_len(y,t)))。
80.此外,如上所述,在定向估计器362基于高频陀螺仪信号首先确定当前姿态的定向与参考姿态的基本匹配后,帧数据和对应的图像特征可以由平移估计器364用于估计二维和/或三维平移。平移估计器364可以通过将模板与当前帧匹配来发起平移估计。如本文所描述,不同的图像匹配方法可以应用于不同的示例中,诸如直接的基于图像相关性匹配和基于图像特征的单应性变换估计。在一些示例中,平移估计器364可以通过以下操作来估计二维平移:将当前帧的当前图像(例如,其特征)与参考帧的参考图像(例如,其特征)进行比较,并且基于该比较来估计当前图像相对于参考图像的二维平移(或者当前姿态相对于参考姿态的平移,例如,平移组件中用于将当前姿态变换成参考姿态的调整)。
81.运动模型构造函数366可以使用来自传感器事件处理程序361、定向估计器362、平
移估计器364和/或ois镜头移位处理程序367的信息,以将当前帧数据的真实世界场景映射(例如,使用投影矩阵,如下文进一步详细描述)到参考帧的图像。利用映射的结果,姿态指导模块316可以生成指令(例如,使用边界框构造函数368来创建视觉指导,诸如投影到当前帧上的锁定场景的边界框或边界角,使用指令模块370来提供任何形式的视觉/触觉/音频指令),指示如何将摄像机设备204定向和/或平移到与保存的模板的参考姿态相对应的姿态。
82.如上所述,运动模型构造函数366可以使用来自传感器事件处理程序361、定向估计器362、平移估计器364和/或ois镜头移位处理程序367的信息,以将当前帧数据的真实世界场景映射到参考帧的图像。在一些情况下,运动模型构造函数366还可以使用来自任何输入帧的元数据。例如,给定任何输入帧,运动模型构造函数366可以使用该帧的相关联元数据(例如,曝光时间、滚动快门时间、焦距等)、来自定向估计器362的摄像机旋转信息,以及来自可选的ois镜头移位处理程序367的ois镜头偏移数据(当可用时),以构造将当前帧的真实世界场景映射到参考帧的参考图像的投影矩阵。
83.具体地,在各种非限制性示例中,对于具有帧索引“i”的任何给定输入帧,所确定的投影矩阵p(i)可以表示为p(i)=k(i)*m(i),其中i是帧索引,k(i)是摄像机内在矩阵,并且m(i)是4
×
4摄像机外在矩阵。在这些示例中,m(i)=[r(i)t(i);0 0 0 1],其中r(i)是从与摄像机的实时定向估计相关联的传感器事件处理程序361获得的3
×
3摄像机旋转矩阵,并且t(i)是由与摄像机的实时平移估计相关联的平移估计器364获得的3
×
1摄像机平移向量。k(i)=[f 0pt(x) o_len(x)0;f 0pt(y) o_len(y)0;0 0 1 0],这是摄像机内在矩阵,其中f是当前帧的焦距,pt是被设置为图像中心的二维主点,并且o_len是以像素为单位的经转换的ois读数(如果由ois镜头移位处理程序367提供的话)。
[0084]
如上所述,传感器事件处理程序361可以提供给定帧的3
×
3摄像机旋转矩阵r(i),以作为运动模型构造函数366的输入。平移估计器364可以提供给定帧的3
×
1摄像机平移向量t(i),以作为运动模型构造函数366的输入。在各种示例中,平移估计器364可以处理作为输入的当前帧和来自记忆视图的模板/参考帧(其可以存储在姿态数据库318中)、提取它们的特征,并且找到这些帧之间的匹配和/或对应关系,其中在执行二维平移估计时移除了潜在的异常值。平移估计器364然后还可以基于二维估计来执行三维平移估计,以生成t(i)平移向量。
[0085]
存在多个不同方式来实现此类估计。在一些情况下,姿态估计器314可以使用定向估计器362和平移估计器364来跟踪每帧摄像机姿态,组合使用旋转和平移估计。在锁定摄像机定位的情况下,姿态估计器314可以将相对于当前摄像机定位的旋转和平移确定为r(curr)*r(lock)^-1和t(curr)-t(lock)。r(curr)是当前帧的3
×
3摄像机旋转矩阵,r(lock)是锁定/参考帧的3
×
3摄像机旋转矩阵,t(curr)是当前帧的3
×
1摄像机平移向量,并且t(lock)是锁定/参考帧的3
×
1摄像机平移向量。然而,如先前指出,这种实现方式可以产生一定的功率和/或处理高效。
[0086]
因此,根据本公开的各种技术,当姿态估计器314的定向估计器362确定摄像机设备204的当前定向与锁定场景或姿态的先前定向基本相同或近似在阈值量内时,平移估计器364然后继续进行平移估计。利用这些技术提供了各种益处,诸如功率节省和处理高效,因为平移估计器364的平移估计仅在定向估计器362识别出当前设备定向与对应于摄像机
设备204的锁定或参考姿态的存储在姿态数据库318中的先前保存的定向足够接近匹配时才发生。
[0087]
根据这些技术,在一个或多个示例中,姿态估计器314可以仅在与当前图像帧相关联的当前姿态的摄像机定向足够接近与参考图像帧相关联的参考姿态的保存的摄像机定向或者在该摄像机定向的确定阈值内之后,才触发平移估计器364的平移估计。姿态估计器314可以实时确定摄像机设备204的当前旋转或定向与参考旋转或定向之间的比较差异,其中该比较差异可以包含旋转值。当旋转值满足定义的准则或阈值时(例如,当旋转接近一致时,当比较的x、y、z值接近零时),定向估计器362可以确定当前定向足够接近参考定向,并且姿态估计器314在此刻可以发起平移估计器364的平移估计。
[0088]
平移估计器364然后可以发起二维平移估计。平移估计器364可以从参考帧的参考/模板图像和当前帧的当前图像中提取特征点。在一些情况下,帧的特征点可以包含二维向量,并且对于第三维,平移估计器364可以在末尾处添加1,以将其变成三维向量。平移估计器364然后可以估计单应性变换h,使得feature_template(参考帧)=h*feature_curr_frame(当前帧)。feature_template(参考帧)可以包含参考帧图像的特征点,并且feature_curr_frame(当前帧)可以包含当前帧图像的特征点。单应性变换h可以包含可以用于二维平移估计的3
×
3矩阵。
[0089]
如先前描述,姿态指导模块316的边界框构造函数368可以被配置成输出与参考姿态和/或帧相关联的参考框角(例如,图1中的参考框角132a-132d),以及与当前姿态和/或帧相关联的边界框(例如,边界框130),从而向用户提供关于如何将摄像机设备从当前姿态操纵成期望的参考姿态的视觉指示。投影到当前帧上的锁定视口的边界框(例如,框130)可以被计算(例如,通过平移估计器364和/或边界框构造函数368)为b=h*reference_box,其中reference_box是预定义的居中矩形区域(例如,与参考框角132a-132d相关联的区域)。
[0090]
在某些非限制性示例中,平移估计器364还可以获得另一仅旋转的单应性变换,写作h_rot=k(curr)*m(curr)*(k(lock)*m(lock))^-1,其中平移向量被设为(0,0,0)。使用左上的3
×
3子矩阵,因此它们是可逆的。如先前描述d,k(i)是给定帧的摄像机内在矩阵,使得k(curr)是当前帧的摄像机内在矩阵,并且k(lock)是锁定/参考帧的摄像机内在矩阵。m(i)是给定帧的摄像机外在矩阵,使得m(curr)是当前帧的摄像机外在矩阵,并且m(lock)是锁定/参考帧的摄像机外在矩阵。在这些示例中,没有任何三维平移的仅旋转边界框可以被获得为b_rot=h_rot*reference_box,其中reference_box是预定义的居中矩形区域(例如,与参考框角132a-132d相关联的区域)。因此,平移估计器364可以通过首先如上所概述的那样来估计二维平移,并且然后从b和b_rot缩放来近似三维平移。在一些情况下,平移估计器364可以基于基于图像特征的单应性变换h和摄像机设备104的当前定向或参考定向中的至少一者(例如,其可以基于b和b_rot或从其缩放),来估计当前姿态相对于参考姿态的三维平移(例如,平移组件将当前姿态变换成参考姿态的调整)。
[0091]
在某些情况下,边界框构造函数368可以不输出仅旋转的边界框以用于在显示设备(例如,显示设备102)处显示。然而,在这些示例中,指令模块370可以利用b和/或b_rot(或者由平移估计器364提供的来自b和b_rot的对应三维平移估计)来向用户输出各种其它形式的视觉、触觉和/或听觉指令(例如,顺时针或逆时针旋转,移动得更近或更远等)。
[0092]
因此,通过首先使用定向估计器362估计当前与参考摄像机姿态之间的旋转,并且
然后在旋转被充分匹配之后使用平移估计器364来估计当前与参考摄像机姿态之间的平移以创建投影矩阵,姿态估计器314和姿态指导模块316(例如,使用边界框构造函数368)可以获得姿态差异。边界框构造函数368可以在当前帧输出投影的参考框角(例如,参考框角132a-132d),在一些情况下,这些参考框角可以在显示器内居中或基本居中。由边界框构造函数输出的边界框(例如,边界框130)可以相对于所显示的参考框角被旋转和/或平移和/或偏斜(例如,在某些情况下具有扭曲的角)。
[0093]
在一些情况下,当姿态估计器314确定当前姿态与期望的参考姿态之间的姿态差异较大(例如,高于定义的不同阈值)时,指令模块370可以首先向用户提供视觉(例如,文本)、听觉和/或触觉指令,这些指令可以指示用户以某些方式操纵移动计算设备100或摄像机设备104(例如,移动靠近或远离场景中的物体,顺时针或逆时针旋转),以便姿态估计器314识别当前姿态与参考姿态之间的更接近匹配。
[0094]
在某些情况下,如上所述,在定向估计器362首先检测到当前姿态与期望的参考姿态之间的定向基本匹配之后,边界框构造函数368才可以输出相对于参考框角的边界框(例如,相对于边界框角132a-132d的边界框130)。在检测到匹配之前,指令模块370可以向用户提供其它形式的视觉、听觉和/或触觉指令,如上文所概述的。在一些情况下,为了避免可能的用户混淆,可以提供与最大姿态差异相关联的指令(例如,逆时针旋转设备的指令)。
[0095]
一旦定向估计器362识别出当前姿态的定向与参考姿态的定向匹配(例如,满足定义的准则或者低于定义的阈值),平移估计器364就可以开始平移估计。此时,在各种情况下,边界框构造函数368可以相对于参考框角132a-132d输出边界框130,从而向用户提供关于将摄像机设备104从当前姿态操纵成参考姿态的视觉指示,同时平移估计器364继续执行实时平移估计。
[0096]
如先前描述的,为了使用户能够首先捕捉与可以被保存/锁定到姿态数据库318中的参考姿态相关联的图像的参考帧,用户可以在移动计算设备200上触发场景锁定模式(例如,通过激活图形或物理按钮或者提供另一形式的用户输入),以使视口模块212和/或图像捕捉模块217捕捉并选择输出图像的当前显示的帧作为参考或模板帧。例如,用户可以经由被移动计算设备200的一个或多个传感器检测到的触摸、存在敏感和/或音频输入来提供该用户输入或用户选择。在一些示例中,摄像机应用210可以仅当适当的时候或在某些条件下,才允许用户提供此类用户输入来选择或触发此类场景锁定模式。例如,为了避免难以跟踪帧时的潜在失败情况(例如,具有白色区域而没有足够显著特征的帧),以及因此计算资源的不必要使用,视口模块212和/或姿态估计器214可以被配置成评估由摄像机设备204捕捉的图像的当前帧可以被跟踪的可靠程度,并且仅当所确定的可靠性或置信度分数满足定义的准则或阈值时才允许用户选择场景锁定模式来捕捉参考帧。在一些情况下,该评估可以通过快速图像分析(诸如图像角点检测)来高效地执行。因此,可以仅响应于确定可靠性分数满足准则(例如,高于阈值或低于阈值,这取决于应用)才启用参考帧的存储。
[0097]
图4、图5a至图5b和图6a至图6b是示出根据本公开的一个或多个方面的由移动计算设备(诸如图1和/或图2中所示的移动计算设备)提供的参考图像、当前图像和/或姿态指导的示例输出的屏幕图。
[0098]
图4是示出在移动计算设备的显示设备402处输出的各种参考图像的示例输出的屏幕图。仅出于说明的目的,显示设备402可以是图1的移动计算设备100中包括的显示设备
102的一个示例。
[0099]
在图4的示例中,显示设备402输出不同树的四个参考图像,即参考图像440、参考图像441、参考图像442以及参考图像443。这些参考图像440-443可以由一个或多个摄像机设备获得,诸如图1中所示的摄像机设备104。例如,使用上文在图1的描述中概述的示例,诸如移动计算设备100的所有者的第一用户可能希望拍摄包括在阳光明媚的公园里的多棵不同的树的特定场景或环境的照片。该第一用户可以基于第一用户期望的公园内的场景来捕捉参考图像440-443的参考或锁定帧。在一些情况下,第一用户可以触发移动计算设备100上的场景锁定模式(例如,通过激活按钮或提供另一形式的用户输入),以捕捉并选择参考图像440-443的参考帧436作为在显示设备402处的当前显示的帧。例如,第一用户可以经由被移动计算设备100的一个或多个传感器检测到的触摸、存在敏感和/或音频输入来提供用户输入。
[0100]
姿态估计器114可以基于参考帧436中包括的参考图像440-443来确定摄像机设备104的参考姿态。该参考姿态与参考图像440-443相关联,并且还可以与摄像机设备104的当前定向相关联(例如,如由移动计算设备100的一个或多个传感器检测,诸如陀螺仪)。摄像机应用110可以将参考图像440-443的参考帧436(例如,模板帧)以及与参考姿态相关联的任何其它信息保存或记忆在姿态数据库118内。例如,姿态估计器114可以确定摄像机设备104的参考定向和/或与所捕捉参考图像440-443相关联的特征信息,并将该定向和/或特征信息作为参考姿态的部分存储在姿态数据库118内。当在图4中所示的显示设备402上显示给定场景内的特定树组时,该参考姿态可以与移动计算设备100和/或摄像机设备104的期望定向相关联。
[0101]
在确定参考姿态之后,视口模块112可以输出该场景的一个或多个当前图像的当前帧,用于在显示设备402处显示。这些当前图像也通过摄像机设备104获得。例如,在移动计算设备100的第一用户(例如,所有者)已经锁定与参考姿态相关联的模板或参考帧之后,第一用户可能希望另一第二用户拿着移动计算设备100并使用摄像机设备104来拍摄第一用户在该场景内的照片,使得移动计算设备100相对于场景(以及场景内的树)具有与先前捕捉的参考姿态相同的姿态。当另一第二用户操纵移动计算设备100时,视口模块112可以持续显示所捕捉图像的当前帧,以供该用户查看。
[0102]
图5a是示出可以在移动计算设备(诸如移动计算设备100)的显示设备502处输出的各种当前图像的示例输出的屏幕图。显示设备402可以是显示设备102的一个示例。如图5a中所示,当前帧536a包括第一棵树的当前图像540a、第二棵树的当前图像541a、第三棵树的当前图像542a和第四棵树的当前图像543a。当前帧536a还包括第一用户的当前图像546a、单独的(第五棵)树的当前图像544a和太阳的当前图像545a。
[0103]
当视口模块112输出这些当前图像以用于在显示设备502处显示时,姿态估计器114可以基于当前帧536a中所包括的所有这些当前显示的图像来确定摄像机设备104的当前姿态。当前姿态与这些当前图像相关联,并且可以进一步与摄像机设备104的当前确定的定向相关联。姿态估计器114可以被配置成持续地确定检测到的当前姿态是否与存储在姿态数据库118中的参考姿态相同或不同。响应于确定当前姿态不同于参考姿态,姿态指导模块116可以输出一个或多个用户指令的指示以将摄像机设备104从当前姿态操纵成参考姿态。因此,第二用户可以接收并遵循这些用户指令以操纵移动计算设备100和摄像机设备
104来拍摄第一用户在场景内的照片,使得摄像机设备104相对于场景(和该场景内的树)具有与先前捕捉的参考姿态相同的姿态。
[0104]
由姿态指导模块116提供的用户指令可以包含视觉、听觉和/或触觉输出,这些输出提供用户指令的一个或多个指示以将摄像机设备104操纵成参考姿态。在图5a的特定示例中,姿态指导模块116可以在第二用户尝试将摄像机设备104操纵成参考姿态时向其提供视觉指导。当第二用户尝试将摄像机设备104从当前姿态操纵成期望的参考姿态时,姿态指导模块116可以生成参考框角532a-532d(统称为“参考框角532”),它们被输出到显示设备502处的当前显示的帧536a上。如图5a中所示,参考框角132与图4中所示的参考帧436相关联,并提供参考姿态的视觉指示,该参考姿态对应于具有场景的四棵特定树的参考图像440-443的参考帧436。然而,除了第一用户的当前图像546a、单独的(第五棵)树的当前图像544a和太阳的当前图像145a之外,当前帧536a还包括第一棵树的当前图像540a、第二棵树的当前图像541a、第三棵树的当前图像542a和第四棵树的当前图像543a。
[0105]
姿态指导模块116还可以基于摄像机设备104的当前姿态,输出当前边界框530a(其与当前帧536a相关联,并且在视觉上指示当前帧536a的边界)以及帧536a的各种当前图像,作为在显示设备502处显示的输出。然而,在图5a的示例中,当前边界框530a大于由参考框角532指示的参考框或参考区域,指示当前姿态与参考姿态不匹配。特别地,对应于参考姿态的参考帧可能不包括场景左侧处的第五棵树的图像544a,并且也可能不包括太阳的图像545a。因此,参考框角532划分了小于边界框130的参考区域。该参考区域不包含第五棵树的图像544a或太阳的图像545a,并且因此参考框角向第二用户提供了这些图像不是期望姿态的一部分的视觉指示。
[0106]
相反,参考框角532和边界框530a提供了视觉指示,其中第二用户要通过将摄像机设备104移动得更靠近由当前图像540a、541a、542a、543a表示的树物体和546a,直到显示设备502仅显示这些图像,而不显示图像544a和545a,从而将摄像机设备104从当前姿态操纵成参考姿态。当第二用户以这种方式操纵摄像机设备104时,姿态指导模块116可以参考参考框角532的视觉边界,持续地将边界框530a的显示重新定向到新的且当前显示的帧上。
[0107]
随着当前姿态与参考姿态更紧密地对齐,更新的边界框将变得在视觉上与参考框角532所关联和/或由其划分的参考区域更对齐。一旦更新的边界框基本上与参考框角532的参考区域对齐,当前姿态将基本上与参考姿态对齐。这种对齐如图5b所示。
[0108]
帧536a包括第一用户的当前图像546a,其不包括在参考帧436中。然而,给定帧536a的其它剩余图像540a、541a、542a和543a与帧436的图像440、441、442和442的基本相似性,姿态估计器114能够确定摄像机设备104的当前姿态(与显示的帧536a相关联)与摄像机设备104的参考姿态(与帧436相关联)之间的基本匹配,诸如在相似度的阈值内。姿态估计器114可以被配置成基于以下操作来确定该匹配:首先确定与显示的帧536a相关联的摄像机设备104的当前定向与帧436所关联的摄像机设备104的参考定向之间的匹配(例如,使用图3中所示的定向估计器362);随后姿态估计器114基于当前姿态相对于参考姿态的估计平移来确定(例如,使用平移估计器364)当前姿态与参考姿态之间的匹配。
[0109]
图5b是示出可以在显示设备502处输出的各种当前图像的示例输出的屏幕图,其中当前姿态与参考姿态基本对齐。在图5b中,更新的边界框530b已经变得与参考区域对齐,该参考区域与图5a所示的参考框角532相关联和/或由其划分。响应于确定当前姿态与参考
姿态之间的匹配,姿态指导模块116可以输出匹配的指示。例如,如图5b所示,一旦当前姿态与参考姿态基本对齐,在显示设备502处仅向第二用户显示更新的边界框530b,并且参考框角532不再被示出。显示器502处没有参考框角532可以向第二用户提供匹配的视觉指示。在其它示例中,姿态指导模块116可以提供匹配的一个或多个其它指示。例如,姿态指导模块116可以使边界框530b闪烁、改变颜色或者以其它方式图形地指示该匹配。在一些情况下,姿态指导模块116可以提供文本、听觉和/或触觉反馈来向第二用户指示匹配。
[0110]
图5b中所示的当前显示的帧536b包括第一棵树的更新当前图像540b、第二棵树的更新当前图像541b、第三棵树的更新当前图像542b、第四棵树的更新当前图像543b和第一用户的更新当前图像546b。值得注意的是,帧536b不包括单独的(第五棵)树的任何图像,或者太阳的图像。在此特定示例中,因为第二用户可能已经将摄像机设备104移动得更靠近期望的树和第一用户,所以帧536b内的更新图像540b、541b、542b、543b和546b在大小上可能大于图5a所示的帧536a内的对应图像540a、541a、542a、543a和546a。
[0111]
通过姿态指导模块116所提供的视觉指示,第二用户可以知道摄像机设备104何时已被操纵成参考姿态,并且第二用户可以使用摄像机设备104来拍摄当前图像540b、541b、542b、543b和546b的照片。照片的这些当前图像可以由图像捕捉模块117捕捉并被存储在图像数据库119中。在第一用户(例如,所有者)希望被包括在照片中的情况下,第一用户可以使他或她自己位于场景的期望区域内(例如,在四棵树之间,如图5b中所示),并且第二用户然后可以在姿态指导模块116指示当前姿态与期望的参考姿态匹配时拍摄照片。
[0112]
图6a至图6b是示出根据本公开的一个或多个方面的由移动计算设备(诸如图1和/或图2中所示的移动计算设备)提供的参考图像、当前图像和/或姿态指导的另一示例的屏幕图。仅出于说明的目的,图6a至图6b中所示的显示设备602可以是图1中所示显示设备102的一个示例。
[0113]
如先前指出的,在其它示例中,本公开的技术还可以使例如专业用户能够执行监控或景观监视并评估给定环境或场景的变化,包括可能随时间变化的自然或人造特征的任何变化(例如,景观变化或恶化、建筑物或建筑随着时间的修改或变更)。在一些示例中,某些类型的移动计算设备(例如,无人机或卫星)可以利用一个或多个摄像机设备来获得某些区域或景观随着时间的推移的图像。使用本文描述的技术,可以以更有效和高效的方式提供这种基于图像的监视。
[0114]
在图6a至图6b所示的示例中,本公开的技术可以使用户能够监视公园的具有多棵树的特定区域,并且潜在地评估该区域随时间的任何增量变化。如先前参考图4所述,用户可以首先捕捉包括该区域中的树的参考图像的参考帧,例如,以使用后续的图像分析来监视景观变化或树木健康。图4示出包括该公园中的四棵树的图像440-443的参考帧436。用户可以使用摄像机设备104来捕捉和选择该参考帧,并且与该参考帧相关联的参考姿态的信息可以存储在姿态数据库118中,诸如先前所述。
[0115]
类似于图5a至图5b中所示的技术,在稍后的时间点,在参考帧436已经被捕捉之后(例如,一个月之后),姿态指导模块116可以输出对应于摄像机设备104的当前姿态的边界框630a,以及对应于参考姿态的参考框角632a-632d(统称为“参考框角632”),如图6a所示。例如,用户可能希望随时间监视该特定区域,并且可以在已经捕捉到图4的参考姿态一个月后使用摄像机设备104来拍摄该区域的新照片。
[0116]
如图6a中所示,当前帧636a包括第一棵树的当前图像640a、第二棵树的当前图像641a和第四棵树的当前图像643a。当前帧636a还包括单独的(第五棵)树的当前图像644a和云/雨的当前图像650a。帧636a不包括对应于参考图像542a的第三棵树的任何图像。
[0117]
响应于确定当前姿态不同于参考姿态,姿态指导模块116可以输出一个或多个用户指令的指示以将摄像机设备104从当前姿态操纵成参考姿态,使得摄像机设备104相对于场景(以及场景内的树)具有与先前捕捉的参考姿态相同的姿态。当用户尝试将摄像机设备104从当前姿态操纵成期望的参考姿态时,姿态指导模块116可以生成参考框角632,它们被输出到显示设备602处的当前显示的帧636a上。
[0118]
姿态指导模块116还可以基于摄像机设备104的当前姿态来输出当前边界框630a,其与当前帧636a相关联并且在视觉上指示当前帧636a的边界。然而,在图6a的示例中,当前边界框630a大于由参考框角632指示的参考框或参考区域,指示当前姿态与参考姿态不匹配。特别地,对应于参考姿态的参考帧可能不包括场景左侧处的第五棵树的图像644a,并且也可能不包括云/雨的图像650a。因此,参考框角632划分了小于边界框630a的参考区域。该参考区域不包含第五棵树的图像644a或云/雨的图像650a,并且因此参考框角向第二用户提供了这些图像不是期望姿态的一部分的视觉指示。
[0119]
相反,参考框角632和边界框630a提供了视觉指示,其中该用户要通过将摄像机设备104移动得更靠近由当前图像640a、641a和643a表示的树物体,直到显示设备602仅显示这些图像,而不显示图像644a和650a,从而将摄像机设备104从当前姿态操纵成参考姿态。当用户以这种方式操纵摄像机设备104时,姿态指导模块116可以参考参考框角632的视觉边界,持续地将边界框630a的显示重新定向到新的且当前显示的帧上。随着当前姿态与参考姿态更紧密地对齐,更新的边界框将变得在视觉上与参考框角632所关联和/或由其划分的参考区域更对齐。
[0120]
图6b是示出可以在显示设备602处输出的各种当前图像的示例输出的屏幕图,其中当前姿态与参考姿态基本对齐。在图6b中,更新的边界框630b已经变得与参考区域对齐,该参考区域与图6a所示的参考框角632相关联和/或由其划分。响应于确定当前姿态与参考姿态之间的匹配,姿态指导模块116可以输出匹配的指示。例如,如图6b所示,一旦当前姿态与参考姿态基本对齐,就在显示设备602处仅向第二用户显示更新的边界框630b,并且参考框角632不再被示出。显示器602处没有参考框角632可以向第二用户提供匹配的视觉指示。在其它示例中,姿态指导模块116可以提供匹配的一个或多个其它指示,诸如先前参考图5b所描述。
[0121]
图6b中所示的当前显示的帧636b包括第一棵树的更新当前图像640b、第二棵树的更新当前图像641b和第四棵树的更新当前图像643b。值得注意的是,帧636b不包括单独的(第五棵)树的任何图像,或者云/雨的图像。在此特定示例中,因为该用户可能已经将摄像机设备104移动得更靠近参考姿态的期望树木,所以帧636b内的更新图像640b、641b和643b在大小上可能大于图6a所示的帧636a内的对应图像640a、641a和643a。
[0122]
通过由姿态指导模块116提供的视觉指示,用户可以知道摄像机设备104何时已被操纵成参考姿态,并且该用户可以使用摄像机设备104来拍摄帧636b中的当前图像的照片。在图6a至图6b所示的示例中,本公开的技术可以使用户能够监视公园的具有多棵树的特定区域,并且潜在地评估该区域随时间的任何增量变化。例如,随着时间的推移(例如,一个
月),对应于参考图像442(图4)的第三棵树可能已经倒下或被毁坏。帧636a和636b不包括该第三棵树的任何图像。然而,给定帧636b的其它图像640b、641b和643b与帧436的图像440、441和443的基本相似性,姿态估计器114能够确定摄像机设备104的当前姿态(与所显示的帧636b相关联)与摄像机设备104的参考姿态(与帧436相关联)之间的基本匹配,诸如在相似度的阈值内。姿态估计器114可以被配置成基于以下操作来确定该匹配:首先确定与显示的帧636b相关联的摄像机设备104的当前定向与显示的帧436所关联的摄像机设备104的参考定向之间的匹配(例如,使用图3中所示的定向估计器362);随后姿态估计器114基于当前姿态相对于参考姿态的估计平移来确定(例如,使用平移估计器364)当前姿态与参考姿态之间的匹配。在某些情况下,因此可以提供更有效和高效的环境监视。
[0123]
图7是示出根据本公开的一个或多个方面的计算设备(诸如移动计算设备100和/或200)的至少一个处理器(例如,一个或多个处理器220)的示例操作的流程图。仅出于说明的目的,图7的操作参考图1中所示的计算设备100来描述。
[0124]
移动计算设备100(例如,使用摄像机应用110的视口模块112)输出(700)具有由至少一个摄像机设备(例如,摄像机设备104)捕捉的一个或多个图像的帧,以用于在显示设备(例如,显示设备102)处显示。响应于接收到选择该帧的输入(例如,用户输入),图像捕捉模块117将该帧存储(701)为具有一个或多个参考图像的参考帧,其中所述一个或多个参考图像包括在显示设备处输出的帧的所述一个或多个图像。
[0125]
移动计算设备100(例如,使用姿态估计器114)基于参考帧中包括的所述一个或多个参考图像来确定(702)移动计算设备100的参考姿态,其中该参考姿态与所述一个或多个参考图像相关联。在确定参考姿态之后,移动计算设备100(例如,使用视口模块112)输出(704)具有由所述至少一个摄像机设备获得的一个或多个当前图像的当前帧,以用于在显示设备处显示。
[0126]
移动计算设备100(例如,使用姿态估计器114)基于当前帧中包括的所述一个或多个当前图像来确定(706)移动计算设备100的当前姿态,其中该当前姿态与所述一个或多个当前图像相关联。响应于确定当前姿态不同于参考姿态,移动计算设备100(例如,使用视口模块112和/或姿态指导模块116)来输出(708)一个或多个用户指令的指示,以将移动计算设备100从当前姿态操纵成参考姿态。
[0127]
提供以下示例仅用于说明目的。
[0128]
示例1:一种方法包含:由移动计算设备(例如,由移动计算设备的至少一个处理器,其可以执行以下示例操作中的每一者)输出具有由至少一个摄像机设备捕捉的一个或多个图像的帧,并用于在显示设备处显示;响应于接收到选择所述帧的输入,由所述移动计算设备将所述帧存储为具有一个或多个参考图像的参考帧,其中所述一个或多个参考图像包括在所述显示设备处输出的所述帧的所述一个或多个图像;由所述移动计算设备基于所述参考帧中包括的所述一个或多个参考图像来确定所述至少一个摄像机设备的参考姿态;在确定所述至少一个摄像机设备的所述参考姿态之后,由所述移动计算设备输出具有由所述至少一个摄像机设备捕捉的一个或多个当前图像的当前帧,并用于在所述显示设备处显示;由所述移动计算设备基于所述当前帧中包括的所述一个或多个当前图像来确定所述至少一个摄像机设备的当前姿态;以及响应于确定所述当前姿态不同于所述参考姿态,由所述移动计算设备输出一个或多个指令的指示,以将所述至少一个摄像机设备从所述当前姿
态操纵成所述参考姿态。
[0129]
示例2:示例1的方法,还包含:由所述移动计算设备基于由至少一个传感器提供的一个或多个信号并随着时间的推移来监视当所述至少一个摄像机设备捕捉一个或多个帧时所述至少一个摄像机设备的定向,其中,确定所述至少一个摄像机设备的所述参考姿态包括,由所述移动计算设备基于所述一个或多个信号来确定所述至少一个摄像机设备的参考定向,其中所述参考定向与具有所述一个或多个参考图像的所述参考帧相关联,以及其中,确定所述至少一个摄像机设备的所述当前姿态包括,由所述移动计算设备基于所述一个或多个信号来确定所述至少一个摄像机设备的当前定向,其中所述当前定向与具有所述一个或多个当前图像的所述当前帧相关联。
[0130]
示例3:示例2的方法,其中,确定所述当前姿态不同于所述参考姿态包含:由所述移动计算设备确定所述至少一个摄像机设备的所述当前定向不同于所述至少一个摄像机设备的所述参考定向,并且可选地,其中所述一个或多个指令包含一个或多个视觉、听觉或触觉指令以将所述至少一个摄像机设备从所述当前定向操纵成所述参考定向。
[0131]
示例4:示例2的方法,其中,确定所述当前姿态不同于所述参考姿态包含:由所述移动计算设备确定所述至少一个摄像机设备的所述当前定向与所述至少一个摄像机设备的所述参考定向之间的差异满足定义的准则或阈值,可选地,其中满足所述定义的准则或阈值包含所述差异低于或小于预定阈值(或所述当前定向在所述参考定向的阈值量内),由所述移动计算设备确定所述当前姿态相对于所述参考姿态的估计平移;以及由所述移动计算设备基于所述估计平移来确定所述当前姿态不同于所述参考姿态。
[0132]
示例5:示例4的方法,其中,确定所述当前姿态相对于所述参考姿态的所述估计平移包含:由所述移动计算设备估计所述当前帧的所述一个或多个当前图像相对于所述参考帧的所述一个或多个参考图像的二维平移;以及可选地,由所述移动计算设备使用运动模型构造函数基于所述当前定向和所述二维平移来生成投影矩阵,所述投影矩阵将所述当前帧的所述一个或多个当前图像映射到所述参考帧的所述一个或多个参考图像。将所述至少一个摄像机设备从所述当前姿态操纵成所述参考姿态的所述一个或多个指令的指示能够基于所述投影矩阵。
[0133]
示例6:示例5的方法,其中,估计所述二维平移包含:由所述移动计算设备比较所述当前帧的所述一个或多个当前图像与所述参考帧的所述一个或多个参考图像;以及由所述移动计算设备基于所述比较来估计所述当前帧的所述一个或多个当前图像相对于所述参考帧的所述一个或多个参考图像的所述二维平移。
[0134]
示例7:示例6的方法,其中,比较所述当前帧的所述一个或多个当前图像与所述参考帧的所述一个或多个参考图像包含,由所述移动计算设备执行所述一个或多个当前图像与所述一个或多个参考图像之间的基于图像特征的单应性变换或者直接图像相关性中的至少一者。
[0135]
示例8:示例7的方法,还包含:由所述移动计算设备基于所述至少一个摄像机设备的所述当前定向或所述参考定向中的至少一者以及所述基于图像特征的单应性变换来估计所述当前姿态相对于所述参考姿态的三维平移。
[0136]
示例9:示例1-8中的任一项的方法,其中,输出所述一个或多个指令的指示包含,由所述移动计算设备基于所述当前姿态与所述参考姿态之间的姿态差异来输出至少一个
指令(例如,视觉指令、听觉指令和/或触觉指令),以在空间中旋转或平移所述至少一个摄像机设备,并且其中,所述方法还包含:响应于确定所述当前姿态与所述参考姿态之间的匹配,由所述移动计算设备输出所述匹配的指示。
[0137]
示例10:示例1-9中的任一项的方法,其中,输出所述一个或多个指令的指示包含,由移动计算设备输出指示以将边界框与多个参考框角在视觉上对齐,以便将所述至少一个摄像机设备从所述当前姿态操纵成所述参考姿态,所述多个参考框角指示与所述参考姿态相关联的参考区域,并且所述边界框指示与所述当前姿态相关联的区域。
[0138]
示例11:示例10的方法,还包含:由所述移动计算设备基于所述当前姿态相对于所述参考姿态的估计平移来确定所述边界框相对于所述参考框角的定位,其中,所述当前姿态相对于所述参考姿态的所述估计平移是基于执行基于特征的单应性变换来估计所述当前帧的所述一个或多个当前图像相对于所述参考帧的所述一个或多个参考图像的二维平移。
[0139]
示例12:示例1-11中的任一项的方法,其中,接收所述输入包含,由所述移动计算设备接收用户输入,所述用户输入包含在所述移动计算设备处检测到的触摸输入、音频输入或存在敏感输入中的一者或多者,以选择所述帧作为所述参考帧。
[0140]
示例13:示例12的方法,还包含:由所述移动计算设备评估与在所述帧中包括的由所述至少一个摄像机设备捕捉的所述一个或多个图像相关联的可靠性分数,其中,仅响应于由所述移动计算设备确定所述可靠性分数满足确定的阈值或准则,可选地,响应于确定所述可靠性分数高于预定阈值,才实现响应于接收到所述输入来将所述帧存储为所述参考帧。
[0141]
示例14:示例1-13中的任一项的方法,其中,所述一个或多个指令包含一个或多个视觉、听觉或触觉指令,以将所述至少一个摄像机设备从所述当前姿态操纵成所述参考姿态。
[0142]
示例15:一种移动计算设备,包含:至少一个处理器;以及显示设备,所述显示设备通信地耦合到所述至少一个处理器,其中所述至少一个处理器被配置成:输出具有由至少一个摄像机设备捕捉的一个或多个图像的帧,以在显示设备处显示;响应于接收到选择所述帧的输入,将所述帧存储为具有一个或多个参考图像的参考帧,其中所述一个或多个参考图像包括在所述显示设备处输出的所述帧的所述一个或多个图像;基于所述参考帧中包括的所述一个或多个参考图像来确定所述至少一个摄像机设备的参考姿态;在确定所述至少一个摄像机设备的所述参考姿态之后,输出具有由所述至少一个摄像机设备捕捉的一个或多个当前图像的当前帧,以在所述显示设备处显示,其中所述当前帧包括在所述参考帧中不包括的至少一个图像;基于所述当前帧中包括的所述一个或多个当前图像来确定所述至少一个摄像机设备的当前姿态;以及响应于确定所述当前姿态不同于所述参考姿态,输出一个或多个指令的指示,以将所述至少一个摄像机设备从所述当前姿态操纵成所述参考姿态。
[0143]
示例16:一种移动计算设备,包含:至少一个处理器;以及显示设备,所述显示设备通信地耦合到所述至少一个处理器,其中,所述至少一个处理器被配置成执行示例1-14中的任一项的方法。可选地,所述移动计算设备包含通信地耦合到所述至少一个处理器的摄像机设备。可选地,可以提供一种系统,包含所述移动计算设备和耦合到所述至少一个处理
器的摄像机设备,其中所述摄像机设备远离移动计算设备。
[0144]
示例17:一种用指令编码的计算机可读存储介质,这些指令在被执行时使得移动计算设备的至少一个处理器执行包含以下各项的操作:输出具有由至少一个摄像机设备捕捉的一个或多个图像的帧,以在显示设备处显示;响应于接收到选择所述帧的输入,将所述帧存储为具有一个或多个参考图像的参考帧,其中所述一个或多个参考图像包括在所述显示设备处输出的所述帧的所述一个或多个图像;基于所述参考帧中包括的所述一个或多个参考图像来确定所述至少一个摄像机设备的参考姿态;在确定所述至少一个摄像机设备的所述参考姿态之后,输出具有由所述至少一个摄像机设备捕捉的一个或多个当前图像的当前帧,以在所述显示设备处显示,其中所述当前帧包括在所述参考帧中不包括的至少一个图像;基于所述当前帧中包括的所述一个或多个当前图像来确定所述至少一个摄像机设备的当前姿态;以及响应于确定所述当前姿态不同于所述参考姿态,输出一个或多个指令的指示,以将所述至少一个摄像机设备从所述当前姿态操纵成所述参考姿态。
[0145]
示例18:一种使用指令编码的计算机可读存储介质,这些指令在被执行时使得移动计算设备的至少一个处理器执行示例1-14的方法。
[0146]
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任何组合来实现。如果用软件实现,那么可以将功能作为一或多个指令或代码存储在计算机可读介质上或在其上传输,并由基于硬件的处理单元执行。计算机可读介质可以包括对应于诸如数据存储介质的有形介质的计算机可读存储介质,或包括有助于例如根据通信协议将计算机程序从一处传送到另一处的任何介质的通信介质。以此方式,计算机可读介质通常可以对应于:(1)有形计算机可读存储介质,其为非暂时性的;或者(2)通信介质,诸如信号或载波。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0147]
举例来说(且非限制),此类计算机可读存储介质可以包含ram、rom、eeprom、cd-rom或其它光盘存储器、磁盘存储器、或其它磁性存储设备、快闪存储器、或可以用以存储呈指令或数据结构形式的所要程序代码且可以由计算机访问的任何其它存储介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或诸如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输指令,那么同轴电缆、光纤电缆、双绞线、dsl或诸如红外线、无线电和微波的无线技术包括在介质的定义中。然而,应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它瞬态介质,而是涉及非瞬态有形存储介质。如本文所使用,磁盘和光盘包括紧密光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘使用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
[0148]
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga),或其它等效集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可以指代上述结构或适于实现本文所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文描述的功能性可以在专用硬件和/或软件模块内提供。而且,可以将这些技术充分实现在一个或多个电路或逻辑元件中。
[0149]
本公开的技术可以实现在广泛多种设备或装置中,包括无线手机、集成电路(ic)或一组ic(例如,芯片组)。在本公开中描述各种组件、模块或单元以强调被配置成执行所公开的技术的设备的功能方面,但未必需要通过不同的硬件单元来实现。相反,如上所述,各种单元可以组合在硬件单元中,或由能够互操作硬件单元的集合(包括如上所述的一个或多个处理器)结合合适的软件和/或固件来提供。
[0150]
应认识到,根据实施例,本文所述的任何方法的某些动作或事件可以以不同的顺序执行,可以被添加、合并或一起省略(例如,并非所有描述的动作或事件对于方法的实践都是必要的)。此外,在某些实施例中,动作或事件可以同时执行,例如,通过多线程处理、中断处理或多个处理器,而不是依序执行。
[0151]
在一些示例中,一种计算机可读存储介质包含非暂时性介质。术语“非暂时性”指示存储介质未体现在载波或传播信号中。在某些示例中,非暂时性存储介质可以存储能够随着时间变化的数据(例如,在ram或高速缓冲存储器中)。
[0152]
已描述各种示例。这些和其它示例在随附权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献