深度图生成的制作方法

文档序号:14748286发布日期:2018-06-22 05:14阅读:450来源:国知局
本申请是于2014年5月15日提交的美国专利申请No.14/278,471的继续申请,所述美国专利申请No.14/278,471是于2013年10月23日提交的美国专利申请No.14/061,423、现在的美国专利No.8,760,423的继续申请,其公开通过引用合并至此。
背景技术
:多种系统都允许用户使用视频的图像帧或静态图像生成结构的深度图或三维(3D)表示。典型地,这样的系统要求大量的计算能力或从不同位置捕获到的大量图像。然而,这样的系统通常不能够从静态图像或具有非常小差异的多个静态图像来创建深度图。技术实现要素:本公开的方面提供了计算机实现的方法。所述方法包括由一个或多个计算设备接收对静态图像捕获模式的初始化请求;在接收到用于初始化所述静态图像捕获模式的所述请求之后,由所述一个或多个计算设备自动地开始捕获包括多个图像帧的视频;由所述一个或多个计算设备在所述视频的第一图像帧和所述视频的其他图像帧中的每个其他图像帧之间跟踪特征;由所述一个或多个计算设备使用假设集合来生成与所跟踪的特征相对应的3D点的集合,所述假设集合包括第一假设和第二假设,所述第一假设是所述视频的多个图像帧之间不存在旋转,所述第二假设是所述视频的多个图像帧之间不存在平移;以及至少部分地基于所述3D点的所述集合,由所述一个或多个计算设备生成所述场景的深度图。在一个示例中,所述方法还包括,在开始捕获所述视频之后,接收用于捕获所述场景的静态图像的指令;以及响应于接收到所述指令,而停止对所述视频的捕获并捕获所述静态图像。在另一个示例中,所述方法还包括将所述深度图与所述静态图像相关联;以及将所述深度图、所述静态图像、和所述关联存储在存储器中。在另一个示例中,所述假设集合还包括第三假设,所述第三假设是所述场景中任何观察到的点的深度都被初始地设置为随机距离。在另一个示例中,生成所述深度图包括:使用平滑先验,所述平滑先验考虑到不相邻像素的关系。在另一个示例中,所述方法还包括:使用所述深度图来生成所述场景的三维表示。在另一个示例中,所述一个或多个计算设备是蜂窝电话。本公开的方面提供了包括一个或多个计算设备的系统。所述一个或多个计算设备被配置成接收对静态图像捕获模式的初始化请求;在接收到用于初始化所述静态图像捕获模式的所述请求之后,自动地开始捕获包括多个图像帧的视频;在所述视频的第一图像帧和所述视频的其他图像帧中的每个其他图像帧之间跟踪特征;使用假设集合来生成与所跟踪的特征相对应的3D点的集合,所述假设集合包括第一假设和第二假设,所述第一集合是所述视频的多个图像帧之间不存在旋转,所述第二假设是所述视频的多个图像帧之间不存在平移;以及至少部分地基于所述3D点的所述集合,生成所述场景的深度图。在一个示例中,所述一个或多个计算设备还被配置成在开始捕获所述视频之后,接收用于捕获所述场景的静态图像的指令;以及响应于接收到所述指令,而停止对所述视频的所述捕获并捕获所述静态图像。在另一个示例中,所述一个或多个计算设备还被配置成将所述深度图与所述静态图像相关联;以及将所述深度图、所述静态图像、和所述关联存储在存储器中。在另一个示例中,所述假设集合还包括第三假设,所述第三假设是所述场景中任何观察到的点的深度都被初始地设置为随机距离。在另一个示例中,所述一个或多个计算设备还被配置成生成所述深度图包括通过使用考虑不相邻像素的关系的平滑先验。在另一个示例中,所述一个或多个计算设备还被配置成使用所述深度图生成所述场景的三维表示。在另一个示例中,所述一个或多个计算设备是蜂窝电话。本公开的进一步的方面提供了其上存储了程序的计算机可读指令的非暂时性计算机可读存储设备。所述计算机可读指令当由一个或多个处理器执行时,致使所述一个或多个处理器执行方法。所述方法包括接收对静态图像捕获模式的初始化请求;在接收到用于初始化所述静态图像捕获模式的所述请求之后,自动地开始捕获包括多个图像帧的视频;在所述视频的第一图像帧和所述视频的其他图像帧中的每个其他图像帧之间跟踪特征;使用假设集合来生成与所跟踪的特征相对应的3D点的集合,所述假设集合包括第一假设和第二假设,所述第一假设是所述视频的所述多个图像帧之间不存在轮换,所述第二假设是所述视频的多个图像帧之间不存在转化;以及至少部分基于所述3D点的所述集合,生成所述场景的深度图。在一个示例中,所述方法还包括在开始捕获所述视频之后,接收用于捕获所述场景的静态图像的指令;以及响应于接收到所述指令,而停止对所述视频的所述捕获并捕获所述静态图像。在另一个示例中,所述方法还包括将所述深度图与所述静态图像相关联;以及将所述深度图、所述静态图像、和所述关联存储在存储器中。在另一个示例中,所述假设集合进一步包括第三假设,所述第三假设是所述场景中任何观察到的点的深度都被初始地设置为随机距离。在另一个示例中,所述方法还包括从客户端计算设备接收所述视频;以及将所述生成的深度图发送至所述客户端计算设备。在另一个示例中,所述方法还包括通过使用考虑不相邻像素的关系的平滑先验生成所述深度图。附图说明图1是根据本公开的方面的示例系统的功能图。图2是图1的示例系统的形象图。图3是根据本公开的方面的客户端计算设备和用户输入的示例。图4是根据本公开的方面的视频流中的图像帧的示例。图5A和5B是根据本公开的方面的图像帧和图像数据的示例。图6是根据本公开的方面的示例数据的图表。图7是根据本公开的方面的图像数据的示例。图8是根据本公开的方面的流程图。具体实施方式综述本技术的方面涉及生成场景的深度图。每次用户使用相机(诸如与诸如电话的移动计算设备相关联的相机)捕获图像,用户可能要花几秒钟保持手机平稳。本技术利用了移动计算设备实际捕获图像之前的时间以及用户的手并不是完全平稳而且可能将所述移动计算设备移动几毫米的事实。例如,在这期间,移动计算设备可以实际的捕获视频或一系列图像帧。这些图像帧可以被用于生成场景的深度图和/或3D模型。为了利用本文中所描述的技术,用户可能不得不安装应用、选择设置等等。在这之后,用户可以尝试使用移动计算设备捕获场景的图像。在这样做的过程中,用户可以使客户端计算设备进入静态图像捕获模式(相机模式)。在这样做之后,客户端计算设备可以自动地开始记录场景的视频。当客户端计算设备开始捕获场景的静态图像时(例如当用户选择了拍摄照片时),所述视频可以结束。在视频被捕获到之后,可以在视频的图像帧之间跟踪特征。例如,所跟踪的具体特征可以包括:例如诸如角、边等等的唯一特征。可以移除异常值。可以在参考帧和所有其他图像之间直接跟踪特征,而不是按顺序在图像帧中跟踪特征。例如,从帧1到帧2、从帧1到帧3等等这样跟踪图像,而不是在帧1和帧2、接着帧2和帧3之间跟踪图像。这避免了累积误差并可以提供更好的结果。在确定了图像帧之间的特征对应之后,必须确定相机的位置和(特征所对应的)场景中实际的3D点以便生成深度图。可以使用光束法平差,其中由逆向深度来将点参数化。为了简化解决方案,可以假定用于图像帧的所有相机具有相同位置和方向。此外,场景中观察到的点的深度可以被初始地设置为随机距离。光束法平差的结果是深度图,可以通过其重构3D场景。可以使用考虑不相邻像素之间关系的平滑函数,以便保持场景内的对象周围深度的一致性。该深度图可以与用户所捕获到的图像相关联。这样的信息对于生成3D模型、,用于认证、以及用于其他这样的技术是有用的。使用越多的图像帧,深度图的准确性越大(或者不确定性越小)。所需要的图像的最小数目可依赖于各种因素,其包括曝光量、光学器件的质量和相机的分辨率、用户所移动的量、以及场景有多远。异常值是特征跟踪的不可避免的结果,并且通常可能不影响结果。因此,在一些示例中,可以使用鲁棒器(robustifier)。当鲁棒器(robustifier)不是必要的时候,光束法平差的结果可以表现得更好。示例系统图1和2包括可以在其中实现上面所描述的特征的示例系统100。其不应该被视为限制本公开的范围或本文中所描述的特征的有用性。在本示例中,系统100可以包括计算设备110、120、130、和140以及存储系统150。计算设备110中的每个都可以包括一个或多个处理器112、存储器114、和通常出现在通用计算设备中的其他组件。计算设备110的存储器114可以存储可由一个或多个处理器112访问的信息,所述信息包括可以由一个或多个处理器112执行的指令116。存储器还可以包括数据118,所述数据118可以由处理器取得、操纵、或存储。存储器可以是能够存储可由处理器存取的信息的任意非暂时性类型,诸如硬盘驱动、存储器卡、ROM、RAM、DVD、CD-ROM、可写、和只读存储器。指令116可以是要由一个或多个处理器直接(诸如以机器代码)或非直接(诸如以脚本)执行的指令的任意集合。在那方面,术语“指令”、“应用”、“步骤”和“程序”可以在本文中可交换地使用。可以以目标代码格式存储指令以用于由处理器直接处理,或以包括脚本或独立源代码模块的集合的任意其他计算设备语言存储指令,所述脚本或独立源代码模块仅在需要时被解释或提前被编译。下面更加详细地解释指令的功能、方法和例程。根据指令116,可以由一个或多个处理器112取得、存储、或修改数据118。比如,尽管本文中所描述的主题不被任意特定数据结构所限制,数据可以被存储在计算机寄存器中、作为具有多个不同字段和记录的表存储在关系数据库中()、或存储在XML文档中。数据还可以以任意计算设备可读格式被格式化,所述计算设备可读格式诸如但不限于二进制值、ASCII或Unicode。进一步地,数据可以包括足以识别相关信息的任意信息,诸如数字、描述性文本、专有代码、指针、对存储在诸如在其他网络位置处的其他存储器中的数据的引用、或被函数使用以计算相关数据的信息。一个或多个处理器112可以是任何常规处理器,诸如市场上可以买到的CPU。替选地,处理器可以是诸如专用集成电路(\"ASIC\")的专用组件或其他基于硬件的处理器。尽管不是必要的,计算设备110中的一个或多个可以包括专门的硬件组件以更快或更有效地执行特定计算过程,诸如解码视频、将视频帧与图像匹配、使视频失真、对失真的视频进行编码等等。尽管图1功能地将计算设备110的处理器、存储器、和其他元件图示为在相同的块内,处理器、计算机、计算设备、或存储器实际上可以包括可能或可能不会被存储在相同的物理壳体内的多个处理器、计算机、计算设备、或存储器。例如,存储器可以是位于不同于计算设备110的壳体中的硬盘驱动或其他存储媒体。因此,对处理器、计算机、计算设备、或存储器的引用将被理解为包括对可能或可能不并行操作的处理器、计算机、计算设备、或存储器的集合的引用。例如,计算设备110可以包括起到负载均衡服务器群的作用的服务器计算设备。更进一步地,尽管下面所描述的一些函数被指示为取代具有单个处理器的单个计算设备,可以由多个计算设备实现本文中所描述的主题的各个方面,例如,通过网络160通信信息。计算设备110中的每一个可以在网络160的不同节点处并且能够直接和间接地与网络160的其他节点通信。尽管图1-2中只描绘了一些计算设备,应理解典型的系统可以包括与在网络160的不同节点处的每个不同计算设备相连接的大量计算设备。可以使用多种协议和系统将本文中所描述的网络160和中间节点互连,使得所述网络可以是互联网、万维网、特定内联网、广域网或本地网络的部分。网络可以利用诸如以太网、WiFi和HTTP的标准通信、协议、一个或多个公司专用的协议、以及前述的各种组合。尽管当信息如上面所指出的被传送或接收时会获得某些优势,本文中所描述的主题的其他方面不限于信息传输的任何特定方式。例如,计算设备110中的每一个可以包括能够经由网络与存储系统150以及计算设备120、130、和140通信的web服务器。例如,服务器计算设备110中的一个或多个可以使用网络160将信息传送并在显示器(诸如计算设备120、130、或140的显示器122、132、或142)上呈现至用户(诸如用户220、230、或240)。就这一点而言,计算设备120、130、和140可被视为客户端计算设备并可以执行本文中所描述的特征的全部或一些。客户端计算设备中的每一个可被类似地配置为如上面所描述的具有一个或多个服务器、存储器和指令的服务器计算设备110。每个客户端计算设备120、130、或140可以是旨在用于由用户220、230、240使用的个人计算设备,并且具有通常与个人计算设备相连使用的所有组件,所述组件诸如中央处理单元(CPU)、存储了数据和指令的存储器(例如,RAM和内部硬盘驱动)、诸如显示器122、132、或142的显示器(例如,带有屏幕或触摸屏幕的监视器、投影仪、电视机、或可操作用于显示信息的其他设备)、以及用户输入设备124(例如,鼠标、键盘、触摸屏或麦克风)。客户端计算设备还可以包括用于捕获静态图像或录制视频流的相机126、扬声器、网络接口设备、以及用于将这些元件相互连接的所有组件。尽管客户端计算设备120、130和140可以各自包括全尺寸的个人计算设备,他们可以替选地包括能够利用服务器通过诸如互联网的网络来无线地交换数据的移动计算设备。仅通过示例的方式,客户端计算设备120可以是移动电话或设备,诸如能够经由互联网获得信息的无线使能PDA、平板PC、或上网本。在另一个示例中,客户端计算设备130可以是头戴式计算系统。例如,用户可以使用小键盘、小型键盘、麦克风、利用相机使用视觉信号、或触摸屏来输入信息。与存储器114相似,存储系统150可以是任意类型的计算机化的存储,其能够存储可由服务器计算设备110访问的信息,存储系统150诸如硬盘驱动、存储器卡、ROM、RAM、DVD、CD-ROM、可写、和只读存储器。此外,存储系统150可以包括分布式存储系统,其中数据被存储在物理地位于相同或不同地理位置处的多个不同的存储设备上。存储系统150可以如图1中所示出的经由网络160被连接至计算设备和/或可以被直接连接至计算设备110至140(未示出)中任意一个的存储器,或被合并入计算设备110至140(未示出)中任意一个的存储器内。存储系统150可以存储图像和相关联的深度信息。例如,可以将每个图像与深度图相关联,所述深度图定义图像中对象相对于捕获到所述图像的相机的坐标系的3D位置。可以如下面更详细地描述的生成这些深度图。示例方法为了利用本文中所描述的技术,用户可能不得不安装应用、选择设置等等。一旦应用或设置已经被激活,用户可以能够为用相机捕获到的静态图像生成深度图。如上面所看到的,该相机可以与客户端计算设备相关联,诸如客户端计算设备140的相机126。在捕获静态图像之前,可以先要求用户初始化客户端计算设备的静态图像捕获模式。在一些示例中,该客户端计算设备可以是诸如客户端计算设备120、130或140的移动计算设备。一旦初始化了静态图像捕获模式,应用可以致使客户端计算设备自动地开始录制视频。当用户持握客户端计算设备时,用户可能花费几秒来平稳地持握该移动计算设备。因为用户的手并不是完全平稳的,移动计算设备实际上可能会移动几毫米。当客户端计算设备开始捕获场景的静态图像时(例如当用户选择了拍摄照片时),所述视频可以结束。例如,图3是用户尝试捕获场景的静态图像的示例。在本示例中,用户220的手320可以尝试平稳地持握客户端计算设备120。在这期间,客户端计算设备可以捕获该相同场景的视频。在图3的示例中,图像帧330可以表示在用户捕获场景340的图像之前所捕获到的视频的第一图像帧。再次,当客户端计算设备120开始捕获静态图像时,客户端计算设备可以停止捕获视频。在用户用来平稳地持握客户端计算设备的几秒之中,客户端计算设备可以捕获多个图像帧。如上面所看到的,典型的移动电话可以能够在4秒之中捕获大约100个图像帧。在图4的示例中,图像帧330加上图像410和420至N中的每一个可以表示以图像帧330开始的视频中的多个图像帧。图像帧序列中的下一个图像可以是图像帧410,接着是420等等直到视频中的最后一个图像帧,图像帧N。在捕获到视频之后,可以在视频的图像帧之间跟踪特征。例如,可以使用Kanade-Lucas-Tomasi(\"KLT\")技术以在图像帧之间跟踪特征。例如,所跟踪的具体特征可以包括,例如诸如角、边等等的唯一特征。例如,可以使用已知的计算机版本和模式识别技术在参考图像中检测角特征。可以不按顺序跟踪特征,而是直接在参考帧和所有其他图像之间跟踪特征。例如,参考帧可以是序列中的第一图像帧,不过其他图像帧也可以被用作参考帧。在图4的示例中,图像帧330可以被视为参考帧。从帧330到帧410、从帧330到帧420等等这样跟踪图像,而不是在帧330和帧410之间、然后帧410和帧420之间等直到图像帧N来跟踪图像。该类型的跟踪可以避免累积误差并可以提供更好的结果,并且该类型的跟踪是可能的,因为参考帧和其他帧之间的移动量是轻微的。例如,利用典型的跟踪,累积了每一帧之间的跟踪误差,使得从帧1到帧N的误差是sigma*sqrt(N),其中,sigma是帧间跟踪误差的标准差。因此,误差随着N无限地增长。但利用使用KLT的直接跟踪(帧1直接到帧N),就不存在累积;无论N变得多大,误差仅仅是sigma。这种改善的误差特性对于下面详细描述的成功的3D重构可以是关键的。用于帧到帧直接对应的标准途径(如Harris角点跟踪和尺度不变特征变换(\"SIFT\")特征匹配)可能不提供太高的精度并且因此得到没那么准确的深度数据。异常值特征是特征跟踪的必然结果。尽管异常值可能不会总是影响结果,还是可以移除或忽略它们以确保它们不影响结果。例如,要求对所有非参考图像帧来说所有特征都可以被跟踪,并且要求两个补丁之间的每像素间的最大颜色渐变差应该在可以移除异常值的阈值之下。例如,在8-but编码的灰度图像中,阈值可以是6。例如,可以使用增益自适应跟踪来选择阈值。在确定了图像帧之间的特征对应之后,必须确定相机的位置和场景中特征的实际的3D点,以便生成深度图。可以使用光束法平差,其中由逆向深度将点参数化。可以使用多种假设来初始化光束法平差。例如,用于图像帧的所有相机可以被假设具有相同的位置和方向。换句话说,为了求解相机的位置,假设图像帧之间零旋转或平移,用作数值求解运算的初始猜测。此外,在图像中观察到的点的深度可以被初始地设置为随机距离,例如2米和4米之间。初始猜测可能实际上很接近真实的解决方案,并且偶尔,随机分配的深度的显著部分事实上将是正确的。下面提供示例等式,可通过使用所述等式生成深度图。例如,捕获到的视频可以被视为三维(“3D”)中具有Nc个点的Nc个图像帧的序列。每个点都可以对所有图像可见。第一图像的相机可以被视为参考,并且第i个相机由相对旋转矩阵Ri然后是相对平移而与参考相机相关。参考相机的坐标系中第j个点的位置可以是Pj。第i个相机的坐标系中Pj的位置可以是RiPj+Tj。第i个相机的旋转角度可以是假设角度很小,相对旋转矩阵Ri可以是:为了简化结果优化,每个3D点可以被其逆向深度参数化。因此其中,(xj,yj)是Pj在参考图像中的投影。Pj在第i个图像中的投影是使用上面的定义,视网膜平面中光束法平差的代价函数可以被定义为:其中,aijy=yi-θixyi+θizxj,bijy=Tiy,cij=-θiyxj+θixyj+1,dij=Tiz,eijx=Pijccij-aijx,fijx=Pijxdij-bijx,eijy=Pijxycij-aijy,]]>并且L2范数可被用于测量重投影误差。这可以提供有用的统计解释并且还可以被鲁棒化。假设已给出并固定了正确的相机姿态,深度估计可以用于发现最小化以下深度等式的点:其中并且在小移动的场境中估计深度可以更简化,诸如如上面所描述的当捕获静态图像时用户尝试平稳地持握客户端计算设备。例如,和的通式是其中,a和b分别是函数的零点和极点。当a>b时,函数在中是凸的。当a<b时,函数在中是凸的。假设则因为cij≈1且则如在中是凸的,并且F(wj)在中可以是凸的。由于可以远大于wj的合理取值,wj可以被最优化用于上面的深度等式中的重投影误差。如果检测Pij中存在噪声,则它可能不会改变cij或dij,以及Fi(wj)的凸区间此外,代价函数的凸性分析可以不依赖于旋转矩阵的近似值。相反,其可以是带有小移动的深度估计的确切性质。如果点近似于无穷,上面的视网膜平面中光束法平差的代价函数可以通过来近似。该近似可以是在0附近的区域上相机旋转角度的凸函数。还可以确定深度估计中的不确定性。例如,考虑由基线b隔开的矫正的立体图像对。视差和深度之间的关系可以由给出,其中d可以是视差并且f可以是相机的焦距。通过其中,∈可以是定位误差,忽略量化误差和错误匹配特征,可以在任意单个像素处获得逆向深度估计。不需要使用一阶近似。假设存在点的n个观察结果并且它们具有相同的方差,组合估计方差可以是其中,对于所有1和n之间的i,j且i≠j,有Cov[εi,εj]=ρVar[ε],并且Var[∈i]=Var[∈]。这可以指示如果特征检测误差是独立的,则逆向深度估计的标准差可以以线性减少。然而,如果特征检测误差是完全相关的,则多个观察结果可能无法帮助减少不确定性。通过深度可以作出类似的结论。还可以优化视网膜平面中光束法平差的代价函数。例如,可以使用允许对大型复杂非线性最小二乘问题进行建模和求解的可移植C++库(诸如CeresSolver)来优化代价函数。光束法平差的结果是深度图。该深度图可被视为稀疏深度图,因为它只包括了针对参考图像中的像素点的一些部分的估计深度。为了针对图像中的所有像素求解深度,并提供更完整的深度图,可以使用马尔可夫随机场(\"MRF\")框架。该框架可以能够帮助求解平滑深度图,因为像素处的深度信号可能有噪声。可以使用考虑到不相邻像素之间的关系的平滑函数,以便保持场景内对象周围深度的一致性。因此,在一些示例中可以将二阶平滑度与MRF能量函数中的大范围连接相结合。可以将深度图与用户所捕获到的图像相关联。这样的信息有助于生成3D模型,用于认证以及用于其他这样的技术。深度图还可以被用于生成场景的3D表示。因为视频中的所有图像帧都可能从类似的视角示出场景,可以只针对该视角生成3D表示。因此,3D表示的输出可以是参考视图的输出。下面提供了示例等式,可以通过使用所述等式生成深度图。例如,输入可以是图像帧的集合。参考图像帧I中的像素的索引集可以是H,第i个像素的颜色可以是I(i),i∈H,并且D可以代表密集深度图。L可以将每个像素索引i∈H映射至图像帧中的二维(\"2D\")位置。照片一致性函数可以被表示为P,使得P(i,d)是距离d处的第i个像素的照片一致性分值。可以将要被最小化的能量通过以下能量函数来表示:E(D)=Ep(D)+αEs(D)+βEc(D)。在本示例中,Ep可以是Ep(D)=∑i∈HP(i,D(i))形式的标准照片一致性项。函数Es可以表示平滑先验,其将代价函数ρs以及每邻域的条件随机场(\"CRF\")权重函数W置于邻域的平滑函数S上。就这一点而言,可以通过Ep(D)=∑n∈HW(i,n)ρs(S(D,n))表示Ep。函数Ec可以将远处的像素与类似的颜色相连接,因为他们可能具有相同的深度且属于相同的对象。例如,背景对象可能会被前景中的对象遮住。背景对象应该在前景对象的每侧上大约具有相同的深度。为了在不相邻的像素之间建立连接,可使用函数值θc可以表示深度不同的鲁棒测量,并且θc和θp可以是控制连接长度和范围的参数。该函数C(i,j,I,L,D)可以基于参考图像中的颜色强度和他们的位置针对第i个和第j个像素的深度分配提供分值。就这一点而言,Ec可以是Ec(D)=∑i∈H,j∈H,i≠jC(i,j,I,L,D)形式的大范围连接项。因为确定能量函数E(D)的全局最小值很难,可以使用递进优化。例如,可以很容易地求解Ep,因为没有两个像素彼此依赖。函数C(i,j,I,L,D)可以被用于对Ep(D)+αEs(D)求解。替选地,可以使用近似优化(诸如图像分割)利用一阶平滑度求解近似MRF,并且接着使用得出的标签(labels)初始化并求解Ep(D)+αEs(D)。也可以将全部能量优化为连续函数,即使这可能不如其他选项有效。替选地,可以使用具有高效实施方式的平均场方法。图5A和5B是使用上面所述的示例技术所生成的3D重构的示例。图5A是参考图像帧330的重构的示例。数据512是使用包括大约100个图像帧的视频对用于图像帧330的光束法平差结果的表示。数据514是数据512的前景点的表示并且展示了尽管距离点具有相对大的不确定性,前景点仍可以相当好地恢复形状。数据516是从数据512的光束法平差结果所生成的示例深度图。类似地,图5B是参考图像帧520的3D表示的示例。数据522是使用包括大约100个图像帧的视频对图像帧522的光束法平差结果的表示。数据524是数据522的前景点的表示并且展示了尽管距离点具有相对大的不确定性,前景点仍可以相当好地恢复形状。数据526是从数据522的光束法平差结果所生成的示例深度图。使用越多的图像帧,深度图的准确性越大(或者不确定性越小)。所需要的图像的最小数目可依赖于各种因素,其包括曝光量、光学器件的质量和相机的分辨率、用户所移动的量、以及场景有多远。例如,在处于理想条件的典型的移动电话上,可以在大约4秒之中捕获100个图像帧并将其用于生成2米和5米之间的对象的深度图,其中深度误差为大约每50%的时间0.25米。图6展示了图5A的示例中深度估计不确定性随着相机(视频帧)数目的改变。虽然鲁棒器不是必要的,在作图的时候光束法平差结果可以表现得更好,例如如同在图5A和5B中所示出的。如上面所指出的,在特征跟踪和选择后可以忽略异常值。然而,鲁棒器仍可以改善重构结果。在每次优化之后,可以移除具有负深度的点,并且利用剩余的点重复优化。图7是使用鲁棒器的示例,其中参考图像帧的相机被固定在坐标原点处。在本示例中,图像帧710可以是大约100个图像帧的视频中的第20个图像帧,并且图像帧720可以是所述视频中的第60个图像帧。利用覆盖在图像帧上的特征点来描绘这些图像帧。矩形712、714、722和724突出显示了跟踪异常值。通过数据730描绘了视频的光束法平差结果。替选地,用户可以将视频以及在一些示例中将所捕获到的图像上传至一个或多个服务器计算设备,而不是在客户端计算设备处执行上面所描述的操作。就这一点而言,可以由服务器计算设备确定深度图。结果可以与图像相关联并且由服务器计算设备存储和/或可以被发送回至客户端计算设备。图8的流程图800是上面所描述的方面中的一些的示例,其可以由一个或多个计算设备执行,诸如上面所描述的客户端计算设备。在本示例中,在块802处,一个或多个计算设备接收对静态图像捕获模式的初始化请求。在块804处,在接收到用于初始化静态图像捕获模式的请求之后,所述一个或多个自动地开始捕获包括多个图像帧的视频。在块806处,一个或多个计算设备跟踪处于视频的第一图像帧和视频的其他图像帧中的每个其他图像帧之间的特征。在块808处,一个或多个计算设备使用假设集合生成与所跟踪的特征相对应的3D点的集合。该假设的集合包括第一假设和第二假设,所述第一假设是视频的多个图像帧之间不存在旋转,所述第二假设是视频的多个图像帧之间不存在平移。在块810处,一个或多个计算设备还至少部分地基于3D点的集合来生成场景的深度图。上述可替选示例中的大多数都不是相互排斥的,但却可以以各种组合来实现以获得独特的优势。由于可以利用上面所讨论的特征的这些和其他变化以及组合而不背离权利要求所定义的主题,应该通过说明的方式而不是对权利要求所定义的主题的限制的方式采用对实施例的上述描述。例如,前述操作不是必须按照上面所描述的严格的顺序执行。相反,可以按照不同顺序或同时处理各种步骤。除非另外规定,还可以省略步骤。此外,本文中所描述的示例的规定,以及表示为“诸如”“包括”等等的术语,都不应该被翻译为将权利要求的主题限制于特定示例;相反,示例旨在仅仅说明多个可能的实施例中的一个。进一步地,不同图中相同的附图标记可以识别相同或类似的元件。工业实用性本发明享受广泛的工业实用性,其包括但不限于通过视频生成深度数据。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1