实时有源立体匹配的制作方法
未命名
09-13
阅读:65
评论:0

1.实施例涉及一种用于增加深度图的分辨率和/或准确度的实时有源立体系统。
背景技术:
2.立体匹配,也称为立体视觉或视差映射,是寻找场景深度的过程,并且涉及从不同视点捕获两个图像并匹配那些图像以定位场景中元素的视差(例如,位置差异)。有源立体匹配是一个使用结构光来简化立体匹配问题的过程。然而,常规的有源立体匹配技术在计算上是昂贵的,并且这些常规系统的分辨率和准确度可能无法满足需要实时处理的应用和/或需要更高水平的细节和准确度的应用的需要。
技术实现要素:
3.根据一个方面,一种实时有源立体系统,包括:捕获系统,被配置为捕获立体图像数据,立体图像数据包括参考图像和辅助图像;以及,深度感测计算系统,被配置为生成深度图,深度感测计算系统被配置为:基于参考图像和辅助图像计算描述符;基于像素改变信息和视差改变信息计算稳定性惩罚;使用描述符来评估一组像素的多个平面假设,包括:计算与每个平面假设相关联的描述符之间的匹配成本;用稳定性惩罚来更新匹配成本;以及,基于更新的匹配成本从该组像素的多个平面假设中选择一个平面假设。根据一些方面,提供了包括该实时有源立体系统的功能的方法和/或计算机可读介质。
4.根据一个方面,一种实时有源立体系统包括:捕获系统,被配置为捕获立体图像数据,包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像;以及,深度感测计算系统,被配置为:基于参考图像和辅助图像计算描述符;基于像素值之间的强度差来计算与描述符相关联的可靠性数据;使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本;使用可靠性数据来调整匹配成本;以及,基于调整后的匹配成本从该组像素的多个平面假设中选择一个平面假设。根据一些方面,提供了包括该实时有源立体系统的功能的方法和/或计算机可读介质。
5.根据一个方面,一种实时有源立体系统包括:捕获系统,被配置为捕获立体图像数据,立体图像数据包括参考图像和辅助图像;以及,深度感测计算系统,被配置为生成深度图,深度感测计算系统被配置为:基于参考图像和辅助图像计算描述符;使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本,并基于匹配成本从该组像素的多个平面假设中选择一个平面假设;以及,基于匹配成本生成与该组像素的选择的平面假设相关联的置信权重。根据一些方面,提供了包括该实时有源立体系统的功能的方法和/或计算机可读介质。
6.根据一个方面,一种实时有源立体系统包括:捕获系统,被配置为捕获立体图像数据,包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像,参考图像或辅助图像包括与第一时间窗口相关的第一图像和与第二时间窗口相关的第二图像;以及,深度感测计算系统,被配置为:基于参考图像和辅助图像计算描述符,包括通过可替代地进行以下操
作来计算描述符:i)从第一图像或第二图像中的一个选择像素用于比较;以及,ii)从第一图像选择像素和从第二图像选择像素来用于比较;以及,使用描述符生成深度图。根据一些方面,提供了包括该实时有源立体系统的功能的方法和/或计算机可读介质。
附图说明
7.图1a图示了根据一个方面的实时有源立体系统。
8.图1b图示了根据一个方面的由实时有源立体系统的深度感测计算系统接收的立体图像数据的示例。
9.图1c图示了根据一个方面的匹配成本的示例。
10.图1d图示了根据一个方面的描述符的计算的图形表示。
11.图1e图示了根据一个方面的评估一组像素的平面假设的图形表示。
12.图1f图示了根据一个方面的可由实时有源立体系统的局部立体重构算法执行的平面评估循环的子步骤。
13.图1g图示了根据一个方面的重复图案-图案-引导序列中的立体图像的定时图。
14.图2a图示了根据一个方面的用于比较像素的比较图。
15.图2b图示了根据一个方面的用于减少描述符中的冗余信息量的描述符生成器。
16.图3图示了描绘根据一个方面的使用由描述符生成器生成的描述符来生成深度图的示例操作的流程图。
17.图4图示了根据一个方面的用于生成可靠性数据的描述符生成器。
18.图5图示了描绘根据一个方面的生成其中用可靠性数据来更新匹配成本的深度图的示例操作的流程图。
19.图6a图示了根据一个方面的用于增加深度图的稳定性的稳定性模块。
20.图6b图示了根据一个方面的用于生成稳定性惩罚的稳定性模块的示例。
21.图6c图示了根据一个方面的稳定性模块的强度函数。
22.图6d图示了根据一个方面的稳定性模块的视差函数。
23.图7图示了描绘根据一个方面的生成其中用稳定性惩罚来更新匹配成本的深度图的示例操作的流程图。
24.图8图示了根据一个方面的用于使用立体内部数据生成置信权重的置信权重生成器。
25.图9图示了描绘根据一个方面的为每个像素的立体深度估计生成置信权重的示例操作的流程图。
26.图10图示了根据一个方面的计算机设备和移动计算机设备的示例。
27.图11图示了根据一个方面的三维远程呈现系统。
28.图12以框图形式图示了根据一个方面的用于在两个用户之间进行三维视频会议的三维远程呈现系统。
具体实施方式
29.本公开涉及实时有源立体系统,其被配置为使用一对立体相机(例如,参考立体相机和辅助立体相机)来捕获立体图像数据(例如,跨多个时间曝光的立体图像)并基于立体
图像数据生成深度图(例如视差图或深度图像),在该深度图中,每个像素处的值(例如视差值)是最近表面沿相关射线位于的距离。当参考立体相机中的像素可以与辅助立体相机中的像素匹配时,实时有源立体系统可以对相关联的射线进行三角测量以恢复在该像素处的表面的深度。
30.可以直接比较像素值以确定两个像素是否匹配。然而,实时有源立体系统使用描述符来确定两个像素是否匹配。例如,实时有源立体系统可以计算参考描述符(例如,根据从参考立体相机捕获的参考图像)和辅助描述符(例如,根据从辅助立体相机捕获的辅助图像)。描述符(例如,二进制描述符)可以描述特定像素的邻域,这在图像之间匹配时(与直接比较像素值相比)可能更鲁棒。
31.描述符可以描述像素的邻域。在一些示例中,描述符可以包括像素比较信息。像素比较信息可以包括多个比较值。比较值(例如,零或一)可以包括反映图像数据中的一个像素与另一像素的比较的结果的信息。在一些示例中,描述符可以包括时空窗口上的像素比较信息。在一些示例中,时空窗口具有预定大小的空间程度和预定大小的时间程度。在一些示例中,空间程度在2
×
2像素至8
×
8像素的范围内,并且时间程度在2至6个时间窗口(例如,2至6个时间间隔图像)的范围内。描述符可以包括二进制值集合,其中,每个值表示像素比较的结果。像素比较可以是将同一图像部分中(例如,第一像素和第二像素在同一图像中)或跨不同时间捕获的不同的图像部分(例如,第一像素位于在时间a捕获的第一图像部分中,第二像素位于在时间b捕获的第二图像部分中)的第一像素的强度与第二像素的强度进行比较的结果。如果在给定的比较中,第一像素具有的像素值大于第二像素的像素值,则将第一值(例如,一)记录在相应的位元位置中,否则第二值(例如,零)可能会被记录。如果描述符是32位元描述符,则选择32对像素,并且每次比较产生一个位元值。
32.实时有源立体系统可以将立体图像数据划分为像素组(例如,预定大小的区域或瓦片),使用描述符来评估每个组的多个平面假设(例如,倾斜(slanted)平面假设),并基于评估结果来更新深度图的视差值。在一些示例中,评估包括计算描述符之间的匹配成本(例如,分歧成本(也称为成本))。在一些示例中,使用边缘感知滤波器来滤波匹配成本(例如,原始成本)以获得经滤波的匹配成本,使得针对在该组像素内的像素子集而选择该像素子集的、具有最低滤波的匹配成本(或低于阈值水平的经滤波的匹配成本)的平面(例如,平面假设)。换句话说,实时有源立体系统可以向每个像素分配来自产生最低滤波的匹配成本的平面假设的深度。在一些示例中,匹配成本是基于两个描述符内不同的位元数(例如,汉明(hamming)距离)来计算的。
33.实时有源立体系统可以包括描述符生成器,该描述符生成器可以减少特定描述符内包括的冗余信息量,该冗余信息可能由比较图中循环的存在引起。例如,描述符生成器可以生成如下描述符,该描述符通过策略性地采样像素以产生对比较图中的循环进行最小化或进行避免的比较来增加描述符的信息内容。在一些示例中,代替以随机方式(或半随机方式)选择用于比较的像素,描述符生成器可以通过可替代地执行下述操作来计算描述符:1)从相同时间片选择像素,以及2)从不同时间片选择像素。描述符生成器可以重复该过程,直到时空窗口中的所有像素都已被选择或者直到描述符达到其最大位元数。而且,描述符生成器可以避免重新选择已经在比较中使用的像素,直到已经选择了时空窗口中的所有像素。在一些示例中,如果已经选择了时空窗口中的所有像素(并且仍然还有要进行的比较),
则描述符生成器可以以像素的图结构具有大于阈值水平和/或大于另一可能布置的循环长度的循环长度的方式来选择像素。
34.如上所指示,可以通过比较时空窗口中的像素强度来生成描述符,但是一些比较可能比其他比较更常见和可靠。例如,如果第一像素和第二像素之间的比较的幅度相对大,则可以认为该比较更可靠。如果差异(例如,绝对差异)相对小,则可以认为该比较不太可靠。
35.实时有源立体系统可以包括描述符生成器,其可以基于在像素值之间的强度差来生成与描述符相关联的可靠性数据。然后,实时有源立体系统可以在平面评估循环期间利用可靠性数据来调整匹配成本(例如,原始匹配成本)。在一些示例中,可靠性数据包括可靠掩码和不可靠掩码。在计算机科学中,掩码或位元掩码是用于按位元运算的数据。可靠掩码可以包括指示描述符的比较值的可靠性的信息。不可靠掩码可以包括指示描述符的比较值的不可靠性的信息。可靠掩码和不可靠掩码可以具有与描述符相同的大小,并且描述符中的每个位元位置在可靠掩码和不可靠掩码中具有对应的位元。当计算描述符时,如果比较的幅度超过可靠阈值,则描述符生成器可以在可靠掩码中的相应位元位置中生成第一可靠值(例如,一)。如果比较的幅度小于不可靠阈值,则描述符生成器可以在不可靠掩码中的相应位元位置中生成第一可靠值(例如,一)。可靠掩码和不可靠掩码用于在成本计算期间对比较进行加权。
36.代替对参考描述符和辅助描述符不同的位置(例如,汉明距离)进行计数,实时有源立体系统使用可靠掩码和不可靠掩码来确定位元位置是否被标记为可靠或不可靠。在一些示例中,实时有源立体系统对参考描述符和第二描述符计算异或(xor)运算,然后与可靠掩码和不可靠掩码(其后面可以跟随总体计数)执行按位元and运算。在一些示例中,实时有源立体系统对可靠比较进行两次计数,丢弃不可靠比较,并对既非可靠也非不可靠的比较计数一次。
37.实时有源立体系统可以包括稳定性模块,其可以通过减少时间闪烁来增加生成深度图的稳定性。稳定性惩罚可以包括用于抵消(例如,调整)匹配成本的信息。稳定性惩罚可以包括用于抵消(例如,调整)匹配成本以解决时间闪烁的信息。在一些示例中,稳定性惩罚被添加到匹配成本。
38.稳定性模块可以基于像素改变信息和视差改变信息来计算稳定性惩罚。像素改变信息可以表示用于计算最后深度图(例如,深度帧)的图像数据(例如,参考图像)与用于计算当前深度图(例如当前帧)的图像数据(例如参考图像)之间的像素改变量(例如,像素已经变化了多少)。例如,稳定性模块可以通过确定当前深度图的输入(例如,参考图像)和先前深度图的输入(例如,参考图像)之间的像素强度改变量来计算像素改变信息。视差改变信息可以表示视差改变量以及先前深度图和当前深度图。例如,稳定性模块可以通过确定先前深度图的视差和当前深度图的建议视差之间的视差改变量来计算视差改变信息。稳定性模块可以使用像素强度信息和视差改变信息来计算稳定性惩罚。例如,稳定性模块可以使用输入有像素强度信息和视差改变信息的一个或多个函数来导出稳定性惩罚。实时有源立体系统可以在平面评估循环期间用稳定性惩罚来更新匹配成本。
39.像素改变信息可以包括像素改变值。像素改变值表示当前深度图的参考图像或辅助图像中的像素的像素值与先前深度图的参考图像或辅助图像中的像素的像素值之间的
差。视差改变信息包括视差改变值。视差改变值可以表示当前深度图的像素的建议视差与先前深度图的像素的视差之间的差。稳定性模块可以使用像素改变值来计算强度乘数。在一些示例中,稳定性模块使用边缘感知滤波器来滤波像素改变值,并使用经滤波后的像素改变值来计算强度乘数。稳定性模块使用视差改变值来计算视差乘数。稳定性模块使用强度乘数、视差乘数和在平面假设评估期间可以产生的最大匹配成本(例如,强度乘数、视差乘数和最大匹配成本的乘积)来计算稳定性惩罚。
40.实时有源立体系统可以包括置信权重生成器,其被配置为以使用立体内部数据的方式生成每个像素的立体深度估计的置信权重。置信权重可以是表示与像素的深度估计相关联的置信水平的值。置信权重生成器可以基于匹配成本(例如,原始成本)和像素变化值来生成与该组像素的所选择的平面假设相关联的置信权重。例如,置信权重生成器可以接收与所选择的平面假设和像素变化值相关联的匹配成本(例如,原始匹配成本),并且使用输入有匹配成本和像素变化值的查找表来计算置信权重。像素变化值可以指示在与描述符相关联的时空窗口上该组像素中的像素强度改变量。在一些示例中,查找表可以将置信权重映射到像素变化值和匹配成本的组合,其是根据具有已知几何形状的场景的图像数据已经创建的。
41.图1至图1g示出了根据一个方面的实时有源立体系统100。实时有源立体系统100被配置为基于实时(或接近实时)捕获的立体图像数据114来生成深度图122,并且生成要在显示设备上示出的3d立体图像帧。对于立体图像的每个图像元素,深度图122包括视差值。视差值与从相机视点到场景中的对象的表面的距离成负相关。例如,深度图122可用于描述包含与从相机视点到场景中的对象的表面的距离有关的信息的图像。在一些示例中,深度图122是图像,其中,每个像素处的值是最近表面沿着相关射线位于的距离。
42.深度图122可用于控制增强现实、机器人技术、自然用户界面技术、游戏或其他应用。实时有源立体系统100可以以相对高的帧速率实时构建高分辨率、准确的3d模型。在一些示例中,实时有源立体系统100是深度感测系统,其可以处理移动场景并生成密集的、高质量的深度图122。在一些示例中,实时有源立体系统100在超过60hz时以1兆像素(或大于1兆像素)生成密集的、高质量的深度图122。
43.实时有源立体系统100包括:被配置为捕获立体图像数据114的捕获系统102、以及被配置为基于立体图像数据114生成深度图122的深度感测计算系统104。深度感测计算系统104包括至少一个处理器116和存储可执行指令的非暂时性计算机可读介质118,该可执行指令当由至少一个处理器116执行时,被配置为执行局部立体重构算法120和/或执行这里讨论的功能的任何一个。在一些示例中,捕获的立体图像数据114包括由捕获系统102捕获的图像序列,并且局部立体重构算法120被配置为处理图像序列以生成深度图122,深度图122可用于输出根据新的视点的重新投影图像数据。此外,局部立体重构算法120被配置为输出掩码和每像素表面取向估计。
44.捕获系统102可以包括被配置为生成一个或多个参考图像和一个或多个辅助图像的一对立体相机。在一些示例中,捕获系统102包括彩色相机106、参考立体相机108、辅助立体相机110、一个或多个结构光投影仪111、微控制器112以及被配置为投射非结构光的光源113。在一些示例中,光源113是近红外(nir)泛光灯。在一些示例中,参考立体相机108被认为是右相机,并且辅助立体相机110被认为是左相机。投影仪111被配置为在立体曝光期间
产生结构化照明(例如,由参考立体相机108和辅助立体相机110捕获的立体图像)。在一些示例中,投影仪111是被配置为投影ir点图案的红外(ir)投影仪。微控制器112被配置为触发彩色相机106、参考立体相机108、辅助立体相机110和结构光投影仪111。在一些示例中,微控制器112是触发微控制器。
45.在一些示例中,投影仪111包括投影随时间变化的有源照明图案的一排或多排近红外(nir)衍射光学元件(doe)。在一些示例中,投影仪111包括两排doe。在一些示例中,每排包括一个doe集合。在一些示例中,该doe集合包括四个doe,并且每个图案图像由来自每排的一个doe照亮。一次触发两个doe可能会增加投影点图案的密度,其可以改进深度准确度和覆盖范围。在一些示例中,在引导图像曝光期间,doe被关闭并且利用由光源113提供的环境nir照明来捕获图像。
46.图1b图示了由深度感测计算系统104接收的立体图像数据114的示例。例如,局部立体重构算法120被配置成处理预定数量的组中的图像。在一些示例中,局部立体重构算法120被配置为来处理在十个的集合中的图像。在一些示例中,局部立体重构算法120被配置为处理在少于十个的集合中的图像。在一些示例中,局部立体重构算法120被配置为处理多于十个的集合中的图像。在一些示例中,信号集合包括五个同步对。例如,一对同步图像包括由参考立体相机108捕获的参考图像和由辅助立体相机110捕获的辅助图像。
47.如图1b所示,立体图像数据114包括第一对115-1、第二对115-2、第三对115-3、以及第四对115-4、以及第五对115-5,其中,每一对对应于不同的时间窗口(或时间帧或曝光)。每对包括与分离的时间片相关的参考图像130和辅助图像132。
48.在前两次和最后两次曝光期间,使用高频投影图案(由投影仪111提供)来照亮场景,并且在中间曝光期间(例如,第三对115-3),通过非图案化照明(例如,由光源113提供的泛光照明)照亮场景。在一些示例中,在前两次和最后两次曝光期间产生的点图案彼此不同。在一些示例中,在前两次和最后两次曝光期间产生的一个或多个点图案是相同的。在第一次曝光期间,微控制器112被配置为触发至少一个投影仪111产生点图案照明来照亮场景,并且微控制器112被配置为触发参考立体相机108和辅助立体相机110来分别捕获第一对115-1的参考图像130-1和辅助图像132-1。
49.在第二次曝光期间,微控制器112被配置为触发至少一个投影仪111以产生点图案照明来照亮场景,并且微控制器112被配置为触发参考立体相机108和辅助立体相机108以分别捕获第二对115-2的参考图像130-1和辅助图像132-1。在第三次曝光期间,场景被光源113照亮,并且微控制器112被配置为触发参考立体相机108和辅助立体相机110来分别捕获第三对115-3的参考图像130-3和辅助图像132-3。在一些示例中,在第三次曝光期间,微控制器112被配置为触发彩色相机106以获得彩色图像。在一些示例中,第三对115-3的参考图像130-3和辅助图像132-3不是图案化图像,因为场景被光源113照亮。在一些示例中,第三对115-3被认为是包含引导图像的中间对,该引导图像用于使用边缘感知滤波器196来滤波匹配成本194(例如,原始成本194a)(图1c中所示)。在一些示例中,引导图像是参考图像130-3。
50.在第四次曝光期间,微控制器112被配置为触发至少一个投影仪111产生点图案照明来照亮场景,并且微控制器112被配置为触发参考立体相机108和辅助立体相机108以分别捕获第四对115-4的参考图像130-4和辅助图像132-4。在第五次曝光期间,微控制器112
被配置为触发至少一个投影仪111以产生点阵照明来照亮场景,并且微控制器112被配置为触发参考立体相机108和辅助立体相机110以分别捕获第五对115-5的参考图像130-5和辅助图像132-5。
51.立体图像数据114包括参考图像130的序列(或堆叠),诸如参考图像130-1、参考图像130-2、参考图像130-3、参考图像130-4和/或参考图像130-5。在一些示例中,参考图像130的序列(或堆叠)被称为图案化参考图像的序列(或堆叠),其中,图案化参考图像包括参考图像130-1、参考图像130-2、参考图像130-4、和参考图像130-5(但不是参考图像130-3,因为参考图像130-3没有被图案化)。立体图像数据114包括诸如辅助图像132-1、辅助图像132-2、辅助图像132-3、辅助图像132-4和/或辅助图像132-5的辅助图像132的序列(或堆叠)。在一些示例中,辅助图像132的序列(或堆叠)被称为图案化辅助图像的序列(或堆叠),其中,图案化辅助图像包括辅助图像132-1、辅助图像132-2、辅助图像132-4、以及辅助图像132-5(但不是辅助图像132-3,因为辅助图像132-3没有被图案化)。
52.局部立体重构算法120被配置为处理参考图像130和辅助图像132以生成深度图122。例如,在操作103中,局部立体重构算法120被配置为基于立体图像数据11计算描述符121(例如,二进制时空描述符)。在一些示例中,仅图案化图像用于计算描述符121(例如,第一对115-1、第二对115-2、第四对115-4和第五对115-5)。在一些示例中,第三对115-3的参考图像130-3和辅助图像132-3不用于描述符121的计算,但是在成本滤波(例如,边缘感知滤波器196)中使用参考图像130-3或辅助图像132-3。在一些示例中,在成本滤波中仅使用参考图像130-3,因为辅助图像132-3不与成本体积像素对准。描述符121是针对参考图像130计算的(例如,称为参考描述符121a),并且是针对辅助图像132计算的(例如,称为辅助描述符121b)。在一些示例中,为了提高准确度,局部立体重构算法120被配置为将辅助图像132移位子像素偏移并且还计算那些移位的图像上的辅助描述符121b。
53.图1d图示了根据一个方面的描述符121的计算的图形表示。例如,如图1d所示,时空窗口150内的图像部分的堆叠包括图像部分151、图像部分152、图像部分153和图像部分154,并且每个图像部分是从不同的时间窗口捕获的。图像部分151、图像部分152、图像部分153和图像部分154可以统称为在时空窗口150内的图像数据。每个图像部分包括多个像素,每个像素具有像素强度值。同一图像部分中的像素被认为是在同一时间片(或同一时间窗口)中,并且不同的图像部分来自不同的时间片(或不同时间窗口)。
54.这四个图像部分可以对应于图案化参考图像的堆叠或图案化的辅助图像的堆叠。如果图像部分是图案化参考图像的堆叠,则图像部分151可以是参考图像130-1的一部分,图像部分152可以是参考图像130-2的一部分,图像部分153可以是参考图像130-4的一部分,并且图像部分1154可以是参考图像130-5的一部分。如果图像部分是图案化的辅助图像的堆叠,则图像部分151可以是辅助图像132-1的一部分,图像部分152可以是辅助图像132-2的一部分,图像部分153可以是辅助图像132-4的一部分,并且图像部分1154可以是辅助图像132-5的一部分。
55.描述符121是在相对小的时空窗口150上计算的。例如,描述符121是在具有预定大小的空间程度和预定大小的时间程度的时空窗口150上计算的。在一些示例中,如图1d所示,空间程度是3
×
3像素,并且时间程度是4个时间窗口。在一些示例中,空间程度小于8
×
8像素,并且时间程度小于4个时间窗口。在一些示例中,空间程度等于或大于8
×
8像素,并且
时间程度大于4个时间窗口。在一些示例中,空间程度在2
×
2像素至8
×
8像素的范围内,并且时间程度在2至6个时间窗口的范围内。另外,如上所指示,在每次曝光期间投影不同的随机点照明图案,并且具有泛光照明的引导图像不用于描述符121的计算,而是将被用于滤波。描述符121的空间紧凑性可以为斜(oblique)几何形状和深度不连续性提供增加的鲁棒性。
56.描述符121包括表示图像部分的堆叠的时空内的像素的比较的二进制计算机数据。在一些示例中,每个描述符121包括时空窗口150中的多个成对强度比较的连结。在一些示例中,每个描述符121包括32位元二进制描述符,其表示时空窗口150中的32个成对强度比较。然而,描述符121可以包括任何数量的位元,包括多于三十二的位元或少于三十二的位元。
57.如图1d所示,线160表示图像部分153中的像素171和图像部分152中的像素173之间的比较(例如,不同时间片中的像素之间的比较)。如果像素171的强度值大于像素173的强度值,则可以将比较值(例如,1)记录在描述符121的对应位元位置中。如果像素171的强度值小于像素173的强度值,则可以将比较值(例如,0)记录在描述符121的对应位元位置中。
58.线161表示图像部分154中的像素172与图像部分154中的像素174之间的比较(例如,同一时间片中的像素之间的比较)。线162表示图像部分154中的像素175和图像部分151中的像素177之间的比较(例如,在不同时间片中的像素之间的比较)。在一些示例中,二进制时空描述符将包括时空窗口150上的多个成对强度比较(例如,多个比较值)的连结,诸如[0,1,1,0....n),其中,整数n定义描述符121的长度(或其中的位元数)。然后,将在另一个时空窗口150上计算另一个描述符121。注意,时空窗口150在时间和空间两者上都是重叠的,因此时空窗口150不同但不一定有区别,因为相同的像素可能被包含在许多时空窗口150中。
[0059]
参考图1a和图1e,在计算描述符121之后,在操作105中,局部立体重构算法120被配置为将立体图像数据114的图像集划分成预定大小的区域134。注意,区域134可以被称为瓦片。在一些示例中,区域134是一组像素。在一些示例中,区域134是具有相同大小的矩形瓦片。在一些示例中,图像被分割成预定大小(例如,32
×
28)的独立区域134,以及预定大小(例如,36
×
32)的重叠区域134。然后,局部立体重构算法120被配置为使用描述符121来处理区域134以生成深度图122。在一些示例中,局部立体重构算法120被配置为并行处理区域134。
[0060]
局部立体重构算法120被配置为以下两个部分之间迭代:i)假设所有瓦片的视差平面(操作107)和ii)在每个区域134上并行计算和聚合匹配成本194(操作109)。视差平面可以被称为平面假设136。在一些示例中,平面假设136包括倾斜的(或倾侧(tilted)的)平面假设。操作107和操作109可以被认为是平面评估循环,其使用时空窗口150的每个区域134处的倾斜(或倾侧的)平面猜测来实现实时时空立体匹配,基于描述符121之间的汉明距离计算匹配成本194(例如,原始成本194a),并且使用边缘感知滤波器196来聚合(滤波)原始成本194a以获得滤波成本194b,如图1c所示。在一些示例中,边缘感知滤波器196是渗透性滤波器。
[0061]
如图1c所示,在应用边缘感知滤波器196之前,匹配成本194可以被称为原始成本
194a。在应用边缘感知滤波器196之后,匹配成本194可以被称为滤波成本194b。匹配成本194可以指代或表示两个描述符之间(并且因此两个像素之间)的相似性(或相异性)(以数字表示)的水平。换句话说,匹配成本194可以指代或表示一个图像中的一个像素或一组像素与另一图像中的一个像素或一组像素之间的相似性(或相异性)的量。在一些示例中,匹配成本194(例如,匹配成本)被称为成本量。在一些示例中,匹配成本194是一个图像中的一个像素或一组像素与另一图像中的一个像素或一组像素之间的信息差异的度量。在一些示例中,匹配成本194(例如,原始成本194a)是基于两个描述符121不同的位元数(例如,也称为汉明距离)来计算的。在一些示例中,描述符之间的成本194可以是两个描述符之间的汉明距离。汉明距离可以是两个描述符不同的位元位置的数量。可以通过对两个描述符121执行异或运算以及随后的总体计数(例如,也称为popcount)来计算汉明距离(例如,匹配成本)。
[0062]
具有最低聚合(滤波)成本194b(或低于阈值水平的滤波成本194b)的区域134的平面假设136可以被选择作为给定迭代中区域134中的一些像素的潜在匹配。注意,平面假设136跨区域134共享,但是特定区域134中的每个像素是用最佳拟合倾斜平面假设136来选择的。两个描述符121之间的汉明距离是参考描述符121a的位元和辅助描述符121b的位元之间的差异的数量。换言之,通过聚合和滤波在预先计算的描述符121之间的汉明距离来针对每个区域134测试多个平面假设136,并且选择具有最低滤波成本194b(或低于阈值水平的滤波成本194b)的平面假设136作为特定像素的潜在匹配。
[0063]
然后,局部立体重构算法120可以通过返回到操作107来重复该迭代,以基于操作109的结果生成新的平面假设136。例如,局部立体重构算法120可以通过以下方式生成新的平面假设136:修改来自操作109的结果的潜在匹配或从邻近区域134中的像素复制平面假设136,然后通过聚合和滤波描述符121之间的汉明距离来测试新的平面假设136。
[0064]
更详细地,局部立体重构算法120被配置为沿着每个区域134的多个平面假设136对描述符121进行迭代采样。图1e图示了立体图像数据114的图像对之一的参考图像130和辅助图像132。如图1e所示,参考图像130被划分为区域134。局部立体重构算法120被配置为通过相对于辅助图像132中的对应区域评估多个平面假设136来在辅助图像132中找到与参考图像130中的给定区域134的匹配。换言之,对于每个区域134,局部立体重构算法120确定要猜测的多个平面假设136,然后相对于区域134评估那些平面假设136。在一些示例中,局部立体重构算法120被配置为在几个区域134上并行评估多个平面假设136(例如,并行处理区域134)。在一些示例中,并行处理单个区域134的多个平面假设136。
[0065]
在一些示例中,对于每个点(像素),局部立体重构算法120不仅假设深度,而且假设该点处的切平面,这可以在查看该点的邻域时提供更准确的比较。对于区域134,局部立体重构算法120相对于区域134中的所有点测试一致的这样的平面,以摊销计算。
[0066]
在一些示例中,平面假设136是使用平面(例如,倾斜平面)来表示立体数据114中描绘的特征(例如,对象)的局部表面几何形状的深度估计。在一些示例中,对于每个区域134,深度感测计算系统104评估多个平面(例如,倾斜平面),其中,每个平面评估产生分离的平面假设136(或特定平面处的深度估计)。例如,多个平面假设136可以包括使用第一平面(例如,第一倾斜平面)来表示局部表面几何形状的深度估计、使用第二平面(例如,第二倾斜平面)来表示局部表面几何形状(等等)的深度估计,其中,第二平面具有与第一平面不
同的取向(例如,不同的倾斜度)。然后,为该区域134选择具有最低匹配成本194的深度估计(例如,平面假设136)。
[0067]
具体地,对于特定平面假设136,局部立体重构算法120被配置为沿着平面假设136对区域134的辅助描述符121b进行重新采样。例如,平面假设136提供每个像素的视差,其用于对最近邻辅助描述符121b进行重新采样。局部立体重构算法120被配置为通过计算在重采样的辅助描述符121b和该区域134中的参考描述符121a之间的汉明距离来计算在辅助图像132的区域134中的重采样的辅助描述符121b与参考图像130的对应区域134中的参考描述符121a之间的原始成本194a。
[0068]
然后,局部立体重构算法120被配置为使用边缘感知滤波器196和引导图像(例如,参考图像130-3)聚合(用于滤波器)原始成本194a以获得滤波成本194b,其可以补偿具有低信号的区域134,这将在本公开中稍后进一步描述。在一些示例中,边缘感知滤波器196是渗透性滤波器。在一些示例中,边缘感知滤波器196是双边滤波器。在一些示例中,边缘感知滤波器196是引导滤波器。边缘感知滤波器196用于对引导图像的低对比度区域中的噪声成本值进行正则化,同时保留引导图像的高对比度图像区域中的高频细节,其可以对应于场景中的深度边缘。更一般地,即使对于时空模式,在任何给定像素处,也可能不存在独特的匹配,但附近的像素可能应该与另一图像中的附近的点匹配。边缘感知滤波器196使用引导图像来组合远离边缘的定位处的数据。
[0069]
描述符121在预处理操作(例如,操作103)中被计算一次,并且描述符121在平面评估循环(例如,操作107和操作109)期间不被重新计算。例如,因为描述符121在时空窗口150中相对小,所以局部立体重构算法120可以在处理步骤中预先计算描述符121,从而减少计算机资源量并提高生成深度图122的速度。此外,由于描述符121的紧凑性,局部立体重构算法120被配置为执行描述符121的最近邻采样,这在计算上是快速的。
[0070]
在一些示例中,平面评估循环包括四个子步骤。图1f图示了描绘根据一个方面的可由局部立体重构算法120执行的平面评估循环的子步骤的流程图。操作191包括对平面假设136的最近邻辅助描述符121b进行重采样,其中,平面假设136提供每像素的视差。操作193包括使用描述符121之间的汉明距离来计算原始成本194a。操作195包括使用边缘感知滤波器196来滤波原始成本194a以获得滤波成本196b,其可以补偿具有低信号的区域。操作197包括用当前平面假设136的比先前的滤波成本194更低的滤波成本194b来更新任何像素的深度。
[0071]
图1g图示了根据一个方面的重复的图案-图案-引导序列中的立体图像的定时图。在一些示例中,立体图像是在重复的图案-图案-引导序列中以180hz捕获的。每个立体深度图122是在以引导图像为中心的5帧(4个图案,1个引导)的滚动窗口上计算的。如果使用rgb相机进行彩色纹理化,则会与引导图像同步触发它。这可以确保深度边缘与相关联的纹理图的良好对准。
[0072]
返回参考图1a,深度感测计算系统104可以包括描述符生成器124,描述符生成器124可以减少特定描述符121内包括的冗余信息量,这可能由比较图125中循环的存在引起。例如,描述符生成器124可以生成描述符121,其通过策略性地采样像素以产生对比较图125中的循环进行最小化或进行避免的比较来增加描述符121的信息内容。通过增加描述符121的信息内容,描述符121可以对于确定图像之间的匹配更准确。
[0073]
图2a图示了用于以可以在描述符121中引入冗余的方式比较像素的比较图125a。图2b图示了根据一个方面的用于减少描述符121中的冗余信息量的描述符生成器124。
[0074]
参考图2a,在一个示例中,可以存在可以比较以形成描述符121的三个像素[a,b,c],并且可以进行三个成对强度比较。执行所有三个成对比较将产生如图2a所示的比较图125a。有八种可能的位元组合,但只有六种可能的次序关系,例如,位元组合[a》b,b》c,a》c]=[1,1,0]无效,因为a》b且b》c,这导致a》c,所以鉴于a》b且b》c,a》c是矛盾的。类似地,[a》b,b》c,a》c]=[1,1,1]是多余的,因为前两位元已经暗示了a》c=1。因此,为了最小化描述符121中的冗余位元,可能期望避免比较图125中的循环。
[0075]
参考图2b,代替以随机方式(或半随机方式)选择用于比较的像素,描述符生成器124可以通过可替代地进行以下操作来计算描述符121:1)从相同时间片选择像素,并且2)从不同时间片选择像素,从而形成比较图125。例如,描述符生成器124可以接收参考图像130和辅助图像132,并且以如比较图125b中所示的方式使用参考图像130计算参考描述符121a并且使用辅助图像132计算辅助描述符121b。左列中的像素(例如,a0、a1、a2、a3、a4、a5、a6、a7、a8)可以描绘图1d的图像部分151。右列中的像素(例如,b0、b1、b2、b3、b4、b5、b6、b7、b8)可以描绘图1d的图像部分153。两个像素之间的强度比较导致比较值(例如,一或零)被记录在描述符中。
[0076]
描述符生成器124可以可替代地选择一个空间边缘(例如,在同一时间片内的两个像素之间的比较)和一个时间边缘(例如,来自不同时间片的像素之间的组合)。例如,在第一比较中,描述符生成器124可以选择像素a0和像素a1(从而创建空间边缘a0-a1),其中,像素a0和像素a1来自同一时间片(例如,图像部分151)。对于下一次比较,描述符生成器124可以选择像素a1和像素b0(从而创建时间边缘a1-b0),其中,像素a1和像素b0来自不同的时间片(例如,像素a1来自图像部分151,像素b0来自图像部分153)。然后,该过程可以重复,例如,对同一时间片中的两个像素的选择,随后对不同时间片中的两个像素的选择。例如,对于下一次比较,描述符生成器124可以选择像素b1和像素b2(从而创建空间边缘b1-b2),其中,像素b1和像素b2来自同一时间片(例如,图像部分153)。对于下一次比较,描述符生成器124可以选择像素b2和像素a2(从而创建时间边缘b2-a2),其中,像素b2和像素a2来自不同的时间片。然后对时空窗口150中的所有图像部分重复该过程。该采样策略可以确保空间和时间边缘均匀分布(或大体上均匀分布)。
[0077]
描述符生成器124可以重复该过程,直到时空窗口150中的所有像素都已被选择或者直到描述符121达到其最大位元数。而且,描述符生成器124可以避免重新选择已经在比较中使用的像素,直到已经选择了时空窗口150中的所有像素。在一些示例中,如果时空窗口150中的所有像素都已被选择(并且仍然存在要进行的比较),则描述符生成器124可以以像素的图形结构具有大于阈值水平和/或大于另一可能布置的循环长度的循环长度的方式来选择像素(例如,描述符生成器124可以以长循环优于短循环的方式选择像素)。
[0078]
图3图示了描绘根据一个方面的使用由描述符生成器124生成的描述符121来生成深度图122的示例操作的流程图。尽管图3的流程图300按顺序次序图示了操作,但是应当理解,这仅仅是示例,并且可以包括附加的或可替代的操作。此外,图3的操作和相关操作可以以与所示的次序不同的次序执行,或者以并行或重叠的方式执行。
[0079]
操作302包括接收立体图像数据114,该立体图像数据114包括从参考立体相机108
捕获的参考图像130和从辅助立体相机110捕获的辅助图像132,其中,参考图像130或辅助图像132包括与第一时间窗口相关的第一图像以及与第二时间窗口相关的第二图像。
[0080]
操作304包括基于参考图像130和辅助图像132计算描述符121(例如,参考描述符121a、辅助描述符121b),包括:通过可替代地进行以下操作来计算描述符121:i)从第一图像(例如,图像部分151)或第二图像(例如图像部分153)选择像素用于比较,以及ii)从第一图像中选择像素和从第二图像中选择像素用于比较。操作306包括使用描述符121生成深度图122。
[0081]
返回参考图1a,深度感测计算系统104可包括描述符生成器124,描述符生成器124生成(或计算)与描述符121相关联的可靠性数据126。可靠性数据126可包括指示比较值129是否可靠、不可靠或两者都不是的信息。如图1a中所示,可靠性数据126可用于在平面假设评估期间更新(或调整)匹配成本194(例如,原始成本194a),从而导致更准确的匹配。
[0082]
描述符121可以通过比较时空窗口150中的像素强度来生成,但是一些比较可能比其他比较更常见和可靠。例如,如果第一像素和第二像素之间的比较的幅度相对大,则可以认为该比较更可靠。如果差异(例如,绝对差异)相对小,则可以认为该比较不太可靠。描述符生成器124可以基于像素值之间的强度差来生成与描述符121相关联的可靠性数据126。然后,深度感测计算系统104可以在平面评估循环期间利用可靠性数据126来调整原始成本194a。
[0083]
深度感测计算系统104可以使用描述符121来评估一组像素(例如,区域134)的多个平面假设136,这包括计算每个平面假设136的描述符121之间的匹配成本194(例如,原始成本194a)。如图1a和图1c所示,深度感测计算系统104可以利用可靠性数据126调整原始成本194a。在一些示例中,使用边缘感知滤波器196来滤波原始成本194a以获得滤波成本194b。然后,深度感测计算系统104可以针对具有最低滤波(调整)成本194b的像素组选择平面假设136。
[0084]
图4图示了根据一个方面的用于生成可靠性数据126的描述符生成器124。如图4所示,描述符121包括比较值129,诸如比较值129-1、比较值129-2、比较值129-3以及比较值129-4至比较值129-n,其中,n是定义描述符121中的位的总数的整数。描述符生成器124可以生成可靠掩码138和不可靠掩码148。可靠掩码138可以包括指示描述符121中的每个比较值129是否可靠的信息。不可靠掩码148可以包括指示描述符121中的每个比较值129是否不可靠的信息。
[0085]
可靠掩码138和不可靠掩码148可以具有与描述符121相同的大小,并且描述符121中的每个位元位置在可靠掩码138和不可靠掩码148中具有对应的位元。例如,可靠掩码138可以包括多个可靠位元139,诸如可靠位元139-1、可靠位元139-2、可靠位元139-3、可靠位元139-4至可靠位元139-n。可靠位元139-1可以对应于比较值129-1,并且可靠位元139-2可以对应于比较值129-2,等等。不可靠掩码148可以包括多个不可靠位元149,诸如不可靠位元149-1、不可靠位元149-2、不可靠位元149-3、不可靠位元149-4至不可靠位元149-n。不可靠位元149-1可以对应于比较值129-1,并且不可靠位元149-2可以对应于比较值129-2,等等。
[0086]
当计算描述符121时,描述符生成器124可以计算第一像素的强度值和第二像素的强度值之间的差。如果比较的幅度(例如,强度值之间的差)超过可靠阈值,则描述符生成器
124可以在可靠掩码138中的相应位元位置中生成第一值(例如,一)。例如,相对于比较值129-1,如果两个像素之间的强度差大于可靠阈值,则描述符生成器124可以将第一值(例如,一)记录在可靠位元139-1中。相对于比较值129-2,如果两个像素之间的强度差小于可靠阈值,则描述符生成器124可以不将第一值(例如,一)记录在可靠位元139-2中(例如,没有记录任何内容)。在一些示例中,如果两个像素之间的强度差小于可靠阈值,则描述符生成器124可以在可靠位元139-2中记录第二值(例如,零)。对于可靠掩码138中的所有位元,继续该过程。
[0087]
如果比较的幅度(例如,像素强度差)小于不可靠阈值,则描述符生成器124可以在不可靠掩码148中的相应位元位置中生成第一可靠值(例如,一)。在一些示例中,不可靠阈值小于可靠阈值。相对于比较值129-1,如果两个像素之间的强度差小于不可靠阈值,则描述符生成器124可以将第一值(例如,1)记录在不可靠位元149-1中。相对于比较值129-2,如果两个像素之间的强度差大于不可靠阈值,则描述符生成器124可以不将第一值(例如,一)记录在不可靠位元149-2中(例如,没有记录任何内容)。在一些示例中,如果两个像素之间的强度差大于不可靠阈值,则描述符生成器124可以在不可靠位元149-2中记录第二值(例如,零)。对于不可靠掩码148中的所有位元,继续该过程。
[0088]
可靠掩码138和不可靠掩码148用于在成本计算期间对比较进行加权(例如,对原始成本194a进行加权)。例如,代替计数参考描述符121a和辅助描述符121b的位置(例如,汉明距离),深度感测计算系统104使用可靠掩模138和不可靠掩模148来确定位元位置是被标记为可靠还是不可靠。在一些示例中,深度感测计算系统104对参考描述符121a和辅助描述符121b计算xor运算,然后与可靠掩码138和不可靠掩码148执行按位元and运算,这可以接下来是总体计数。在一些示例中,深度感测计算系统104对可靠比较计数两次,丢弃不可靠比较,并对既非可靠也非不可靠的比较计数一次。
[0089]
图5图示了描绘根据一个方面的生成其中用可靠性数据126来更新匹配成本194(例如,原始成本194a)的深度图122的示例操作的流程图500。尽管图5的流程图500按顺序次序图示了操作,应当理解,这仅仅是示例,并且可以包括附加的或可替代的操作。此外,图5的操作和相关操作可以以与所示的次序不同的次序执行,或者以并行或重叠的方式执行。
[0090]
操作502包括接收立体图像数据114,包括从参考立体相机108捕获的参考图像130和从辅助立体相机110捕获的辅助图像132。操作504包括基于参考图像130和辅助图像132来计算描述符121。操作506包括基于像素值之间的强度差来计算与描述符121相关联的可靠性数据126。
[0091]
操作508包括使用描述符121评估一组像素的多个平面假设136,包括:计算每个平面假设136的描述符121之间的匹配成本194(例如,原始成本194a),使用可靠性数据126调整匹配成本194,并基于调整后的匹配成本194从该组像素的多个平面假设136中选择平面假设136。在一些示例中,在利用可靠性数据126更新匹配成本194(例如,原始成本194a)之后,对匹配成本194进行滤波以获得滤波成本194b,并且滤波成本194b用于选择平面假设136。
[0092]
返回参考图1a,深度感测计算系统104可以包括稳定性模块127,其可以通过减少时间闪烁量来增加生成深度图122的稳定性。例如,在一些常规系统中,高频时间闪烁可能发生在诸如黑发的低信号区。为了避免(或减少)闪烁,如果产生估计的输入也尚未改变,则
帧中像素处的深度估计应该接近最后帧中的估计。
[0093]
在实时有源立体系统100中,使用描述符121,其中,输入中的小变化(例如,相机噪声)可能导致描述符121中的比较值129改变(例如,从一改变到零或反之亦然)。此外,在低信号区域中,可能存在具有相似成本的两个深度。尽管小的输入变化可能会产生成本194中的小变化,但这两个成本最小值可能相距很远,并且估计可能会在它们之间切换(例如,一个可能在某个点具有较低的成本,另一个可能在另一个点具有较低的成本)。
[0094]
图6a至图6d图示了用于减少(或消除)闪烁的稳定性模块127。为了减少时间闪烁(从而增加实时有源立体系统100的稳定性),如图6a所示,稳定性模块127可以基于像素改变信息192和视差改变信息199来计算稳定性惩罚128。例如,稳定性模块127可以通过下述方式来计算像素改变信息192:确定在每个像素处的当前深度图122a的输入(例如,参考图像130)和先前深度图122b的输入(例如,参考图像130)之间的像素强度改变量。稳定性模块127可以通过确定每个像素的来自先前深度图122b的视差135与当前深度图122a中的建议视差137之间的视差改变量来计算视差改变信息199。稳定性模块127可以使用像素改变信息192和视差改变信息199来计算稳定性惩罚128。深度感测计算系统104可以在平面评估循环期间用稳定性惩罚128来更新滤波成本194b。
[0095]
深度感测计算系统104可以使用描述符121来评估一组像素的多个平面假设136,这包括计算每个平面假设136的描述符121之间的匹配成本194(例如,原始成本194a)。在一些示例中,使用边缘感知滤波器196来滤波原始成本194a以获得滤波成本194b。深度感测计算系统104可以用稳定性惩罚128来调整滤波成本194b(例如,将稳定性惩罚128添加到滤波成本194b)。然后,深度感测计算系统104可以针对具有最低滤波(调整)成本194b的像素组来选择平面假设136。
[0096]
如图6b所示,稳定性模块127包括像素变化计算引擎140,其被配置为基于像素改变信息192计算强度乘数146。像素变化计算引擎140可接收作为当前深度图122a的输入的参考图像130(例如,图1g中的深度帧1)和作为先前深度图122b的输入的参考图像130(例如,图1g中的深度帧0)。参考图像130可以包括图案化图像(例如,参考图像130-1、130-2、130-4、130-5),其是用作用于生成深度图122的输入的图像。对于作为当前深度图122a的输入的图案化图像中的每一个,在操作141中,像素变化计算引擎140可以(在每个像素处)计算该像素值和与先前深度图122b相关联的对应参考图像130中的像素值之间的差,以生成像素改变值142。在一些示例中,像素改变值142是像素强度的绝对差。然而,稳定性模块127(除了绝对差之外还)可以采用另一种技术来导出像素强度变化。
[0097]
在操作143中,像素变化计算引擎140可将边缘感知滤波器196(例如,在成本计算中使用)应用到像素改变值142以计算滤波后的像素改变值144。在操作145中,像素变化计算引擎140可将强度函数168应用于经滤波的像素改变值144以计算强度乘数146。在一些示例中,强度乘数146是零与一之间的值。
[0098]
图6c图示了强度函数168的示例。如图6c所示,如果滤波后的像素改变值144相对小,则强度乘数146可以具有第一值(例如,一)。在一些示例中,如果滤波后的像素改变值144在零到第一阈值169的范围内,则强度乘数146可以具有第一值(例如,一)。然而,如果滤波后的像素改变值144开始朝着第二阈值170超过第一阈值169,则强度乘数146可以减小到第一值(例如,一)和第二值(例如,零)之间的值。如果滤波后的像素改变值144相对大,则强
度乘数146可以具有第二值(例如,零)。例如,如果滤波后的像素改变值144超过第二阈值170,则强度乘数146可以具有第二值(例如,零)。
[0099]
稳定性模块127包括视差改变计算引擎155,其(对于每个像素)接收针对当前深度图122a的评估下的假设136的建议视差137和针对先前深度图122b的视差135。在操作157中,视差改变计算引擎155计算当前深度图122a的建议视差137与先前深度图122b的视差135之间的差以获得视差改变值158。在一些示例中,视差改变值158是视差值的绝对差。然而,稳定性模块127(除了绝对差之外还)可以采用另一种技术来导出视差改变值。
[0100]
在操作159中,视差改变计算引擎155将视差函数178应用到视差改变值158以计算视差乘数164。在一些示例中,视差乘数164是零和一之间的值。视差函数178可以不同于强度函数168。
[0101]
图6d图示视差函数178的示例。在一些示例中,视差函数178与强度函数168相反。如图6d中所示,如果视差改变值158相对小,则视差乘数164可以具有第二值(例如,零)。在一些示例中,如果视差改变值158在零到阈值179的范围内,则视差乘数164可以具有第二值(例如,零)。然而,如果视差改变值158开始朝向阈值180超过阈值179,则视差乘数164可以增加到第二值(例如,零)和第一值(例如,一)之间的值。如果视差改变值158相对大,则视差乘数164可以具有第一值(例如,一)。例如,如果视差改变值158超过阈值180,则视差乘数164可以具有第一值(例如,一)。在一些示例中,如果像素在先前深度图122b中被标记为无效,则视差改变计算引擎155将视差乘数164设置为第二值(例如,零)。
[0102]
稳定性模块127包括惩罚计算器166,其基于强度乘数146、视差乘数164和最大可能成本165来计算稳定性惩罚128。例如,惩罚计算器166可以计算在平面匹配阶段期间可以产生的相应像素处的最大可能成本165。在一些示例中,最大可能成本165是最大可能预稳定总成本,其中,最大可能预稳定总成本是如果所有匹配成本都尽可能大时的成本。在一些示例中,最大可能成本165是最大可能预稳定总成本乘以附加乘数(例如,最大可能预稳定总成本的一定百分比),其中,附加乘数可以影响被应用的稳定性水平。在一些示例中,附加乘数被并入强度函数168和/或视差函数178中(例如,不在零和一之间,而是在零和小于一的值之间)。惩罚计算器166可以将最大可能成本165乘以强度乘数146,该强度乘数146乘以视差乘数164,以计算稳定性惩罚128(例如,最大可能成本165、强度乘数146和视差乘数164的乘积)。在平面评估阶段期间将稳定性惩罚128添加至滤波成本194b。
[0103]
稳定性模块127可以减少时间闪烁,并且在一些示例中,还可以导致更完整的重构。例如,当存在多个近似最小值时,真正的最小值可能跨连续帧,但其他最小值的定位由噪声驱动,因此可能会四处移动。假最小值常常在稍后的后处理中被标记为无效,这导致稳定性惩罚128不被应用于具有假最小值的像素(例如,视差乘数将为零)。然而,一旦选择了真正的最小值,像素就不会被标记为无效,这导致实时有源立体系统100鼓励其在未来帧中的选择。
[0104]
图7图示了描绘根据一个方面的生成深度图122的示例操作的流程图700,在该深度图122中,用稳定性惩罚128来更新滤波成本194b。尽管图7的流程图700按顺序次序图示了操作,但是应当理解,这仅仅是示例,并且可以包括附加的或可替代的操作。此外,图7的操作和相关操作可以以与所示的次序不同的次序执行,或者以并行或重叠的方式执行。
[0105]
操作702包括接收包括从参考立体相机108捕获的参考图像130和从辅助立体相机
110捕获的辅助图像132的立体图像数据114。操作704包括基于参考图像130和辅助图像132来计算描述符121。操作706包括基于像素改变信息192和视差改变信息199来计算稳定性惩罚128。
[0106]
操作708包括使用描述符121评估一组像素的多个平面假设136,包括:计算每个平面假设136的描述符121之间的匹配成本194,用稳定性惩罚128更新匹配成本194,以及从该组像素的多个平面假设136中选择具有最低更新成本194的平面假设136。在一些示例中,匹配成本194被滤波以获得滤波成本194b,其中,使用稳定性惩罚128来调整滤波成本194b。
[0107]
返回参考图1a,深度感测计算系统104可以包括置信权重生成器185,其被配置为使用像素变化值184和原始成本194a(例如,未滤波的成本)来计算与每个深度估计相关联的置信权重182。在一些示例中,像素变化值184被计算为图像区域中的像素值与图像区域中的平均像素值之间的绝对差的平均值。由于多种原因,立体可能无法准确计算图像中每个像素处的视差,包括遮挡(例如,一个点可能对两个相机都不可见)、以非常斜的角度查看的表面上的透视缩短和/或低信号(例如,低反射率)。然而,置信权重生成器185可以计算置信权重182,其可以在将深度图122与一个或多个其他深度图组合时被使用。例如,系统(例如,多视图融合系统)可以使用置信权重182来降低权重或滤波掉具有相对低置信权重182的像素深度估计。
[0108]
图8图示了根据一个方面的用于使用立体内部数据183生成置信权重182的置信权重生成器185。立体内部数据183可以包括像素变化值184和成本194。例如,置信权重生成器185可以基于原始成本194a和像素变化值184针对该组像素生成与所选择的平面假设136相关联的置信权重182。换言之,置信权重生成器185可以使用诸如原始成本194a的立体内部数据183和像素变化值184来确定与深度估计相关联的准确度水平。
[0109]
置信权重生成器185可以接收与所选择的平面假设136和像素变化值184相关联的原始成本194a(例如,不是滤波成本),并且使用输入有原始成本194a和像素变化值184的查找表187来计算置信权重182。像素变化值184指示在与描述符121相关联的时空窗口150上像素组中的像素强度改变量。在一些示例中,查找表187可以将置信权重映射至像素变化值184和原始成本194a的组合,其是根据具有已知几何形状的场景的图像数据已经创建的。
[0110]
图9图示了描绘根据一个方面的针对每个像素的立体深度估计生成置信权重182的示例操作的流程图。尽管图9的流程图900按顺序次序图示了操作,应当理解,这仅仅是示例,并且可以包括附加的或可替代的操作。此外,图9的操作和相关操作可以以与所示的次序不同的次序或者以并行或重叠的方式执行。
[0111]
操作902包括接收包括参考图像130和辅助图像132的立体图像数据114。操作904包括基于参考图像130和辅助图像132来计算描述符121。
[0112]
操作906包括使用描述符121评估一组像素的多个平面假设136,包括:计算每个平面假设136的描述符121之间的匹配成本194,以及,基于匹配成本194从该组像素的多个平面假设136选择平面假设136。操作908包括基于匹配成本194生成与该组像素的所选择的平面假设136相关联的置信权重182。
[0113]
图10示出了可以用于这里描述的技术的计算机设备1000和移动计算机设备1050的示例。计算设备1000旨在表示各种形式的数字计算机,诸如膝上型计算机、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。计算设备1050旨在表
示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。此处所示的组件、它们的联系和关系以及它们的功能仅意味着是示例性的,并不意味着限制本文档中描述和/或要求保护的发明的实施方式。
[0114]
计算设备1000包括处理器1002、存储器1004、存储设备1006、连接到存储器1004和高速扩展端口1010的高速接口1008、以及连接到低速总线1014和存储设备1006的低速接口1012。组件1002、1004、1006、1008、1010和1012中的每一个都使用各种总线互连,并且可以安装在公共母板上或以其他合适的方式安装。处理器1002可以处理用于在计算设备1000内执行的指令,包括在存储器1004中或存储设备1006上存储以在外部输入/输出设备——诸如耦合到高速接口1008的显示器1016——上显示用于gui的图形信息的指令。在其他实施方式中,可以适当地使用多个处理器和/或多条总线以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备1000,每个设备提供必要操作的部分(例如,作为服务器库、一组刀片服务器或多处理器系统)。
[0115]
存储器1004将信息存储在计算设备1000内。在一个实施方式中,存储器1004是一个或多个易失性存储器单元。在另一个实施方式中,存储器1004是一个或多个非易失性存储单元。存储器1004也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
[0116]
存储设备1006能够为计算设备1000提供大容量存储。在一种实施方式中,存储设备1006可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备,闪存或其他类似的固态存储设备或设备阵列,包括在存储区域网络或其他配置中的设备。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含指令,这些指令在被执行时执行一种或多种方法,诸如上面描述的那些。信息载体是计算机或机器可读介质,诸如存储器1004、存储设备1006或处理器1002上的存储器。
[0117]
高速控制器1008管理计算设备1000的带宽密集型操作,而低速控制器1012管理较低带宽密集型操作。这样的功能分配只是示例性的。在一个实施方式中,高速控制器1008被耦合到存储器1004、显示器1016(例如,通过图形处理器或加速器)以及被耦合到可以接受各种扩展卡(未示出)的高速扩展端口1010。在该实施方式中,低速控制器1012被耦合到存储设备1006和低速扩展端口1014。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器被耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或联网设备,诸如交换机或路由器)。
[0118]
如图所示,计算设备1000可以以多种不同的形式实现。例如,它可以被实现为标准服务器1020,或者在一组这样的服务器中多次实现。它也可以实现为机架服务器系统1024的一部分。此外,它可以在诸如膝上型计算机1022的个人计算机中实现。可替代地,来自计算设备1000的组件可以与诸如设备1050的移动设备(未示出)中的其他组件组合。这样的设备中的每一个可以包含计算设备1000、1050中的一个或多个,并且整个系统可以由相互通信的多个计算设备1000、1050组成。
[0119]
计算设备1050包括处理器1052、存储器1064、诸如显示器1054的输入/输出设备、通信接口1066和收发器1068以及其他组件。设备1050还可以配备有存储设备,诸如微型驱动器或其他设备,以提供附加的存储。组件1050、1052、1064、1054、1066和1068中的每一个都使用各种总线互连,并且组件中的几个可以安装在公共主板上或以其他适当的方式安装。
[0120]
处理器1052可以执行计算设备1050内的指令,包括在存储器1064中存储的指令。处理器可以被实现为包括分离的多个模拟和数字处理器的芯片的芯片组。处理器可以提供例如设备1050的其他组件的协调,诸如用户界面的控制、设备1050运行的应用和设备1050的无线通信。
[0121]
处理器1052可以通过被耦合到显示器1054的控制接口1058和显示接口1056与用户通信。显示器1054可以是例如tft lcd(薄膜晶体管液晶显示器)或oled(有机发光二极管)显示器或其他适当的显示技术。显示接口1056可以包括用于驱动显示器1054以向用户呈现图形和其他信息的适当电路。控制接口1058可以接收来自用户的命令并且将它们转换以提交给处理器1052。此外,可以提供与处理器1052通信的外部接口1062,以实现设备1050与其他设备的近区通信。外部接口1062可以例如在一些示例中提供有线通信,或者在其他实施方式中提供无线通信,并且也可以使用多个接口。
[0122]
存储器1064将信息存储在计算设备1050内。存储器1064可以被实现为一个或多个计算机可读介质、一个或多个易失性存储器单元或一个或多个非易失性存储器单元中的一个或多个。还可以提供扩展存储器1074并将其通过扩展接口1072连接到设备1050,扩展接口1072可以包括例如simm(单列直插式存储器模块)卡接口。这样的扩展存储器1074可以为设备1050提供附加的存储空间,或者也可以为设备1050存储应用或其他信息。具体地,扩展存储器1074可以包括执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器1074可以作为设备1050的安全模块提供,并且可以用允许安全使用设备1050的指令进行编程。此外,可以经由simm卡提供安全应用以及附加信息,诸如以不可破解的方式在simm卡上放置识别信息。
[0123]
存储器可以包括例如闪存和/或nvram存储器,如下所述。在一个实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,这些指令在被执行时执行一种或多种方法,诸如上述方法。信息载体是计算机或机器可读介质,诸如存储器1064、扩展存储器1074或处理器1052上的存储器,其可以例如通过收发器1068或外部接口1062被接收。
[0124]
设备1050可以通过通信接口1066进行无线通信,必要时通信接口1066可以包括数字信号处理电路。通信接口1066可以提供各种模式或协议下的通信,该各种模式或协议诸如是gsm话音呼叫、sms、ems或mms消息传递、cdma、tdma、pdc、wcdma、cdma2000或gprs等。这样的通信可以例如通过射频收发器1068发生。此外,可以诸如使用蓝牙、wifi或其他这样的收发器(未示出)发生短程通信。此外,gps(全球定位系统)接收器模块1070可以向设备1050提供附加的导航和定位相关的无线数据,这些数据可以由在设备1050上运行的应用适当使用。
[0125]
设备1050还可以使用音频编解码器1060进行可听通信,音频编解码器1060可以从用户接收口述信息并将其转换成可用的数字信息。音频编解码器1060可以类似地诸如通过例如在设备1050的手机中的扬声器为用户生成可听声音。这样的声音可以包括来自话音电话呼叫的声音,可以包括记录的声音(例如,话音消息、音乐文件等)并且还可以包括由在设备1050上操作的应用生成的声音。计算设备1050可以以多种不同的形式来实现,如图中所示。例如,它可以被实现为蜂窝电话1080。它还可以被实现为智能电话1082、个人数字助理或另一类似移动设备的一部分。
[0126]
在一些示例中,实时有源立体系统100被包括在三维远程呈现系统内。三维远程呈现系统可以在不使用头戴式显示器和3d眼镜的情况下提供比传统视频会议系统更真实的面对面体验。视频会议和图像会议系统是远程呈现系统的一些示例。
[0127]
图11图示了根据一个方面的三维远程呈现系统1100。三维远程呈现系统1100可以被配置为根据本文描述的技术执行深度感测计算系统104。
[0128]
两个用户1105a和1105b可以使用三维远程呈现系统1100来远程通信但仍然面对面。第一用户1105a位于远离第二用户1105b的定位。第二用户1105b在显示器1125上看到第一用户1105a的三维图形图像。在一些示例中,显示器1125距第二用户1105b一定距离并且具有适当的大小以模拟第一用户1105a和第二用户1105b的共存。例如,显示器1125可以位于距离第二用户1105b跨桌子1m的位置,并且显示器1125可以是1m显示器。相机组装件1180可以被配置为捕获可见光和红外光(例如,立体图像数据114),其可以由三维远程呈现系统1100(例如,由第二用户1105b使用的终端)使用来显示第二用户1105b在第一用户1105a(图11中未图示)可观看的显示器上的三维立体图像。在一些示例中,相机组装件1180包括捕获系统102。在一些示例中,系统1100中可以包括一个或多个麦克风和/或扬声器(例如,扬声器阵列)。在这样的系统1100中,麦克风和/或扬声器可用于模拟空间音频(例如,取决于起源位置而在空间上产生的声音)。
[0129]
图12以框图形式图示了根据一个方面的用于在两个用户之间进行三维视频会议的三维远程呈现系统1200。在一些示例中,对应于相应用户(例如,第一参与者和第二参与者)的每个终端1220可以使用网络1290进行通信。
[0130]
三维远程呈现系统1200可以是计算机化的,其中,所示组件中的每一个包括被配置为经由网络1290与其他计算设备通信的计算设备或计算设备的一部分。例如,每个终端1220可以包括一个或多个计算设备,诸如台式机、笔记本或手持式计算设备,其被配置为经由网络1290向其他计算设备发送数据和从其他计算设备接收数据。在一些示例中,每个终端1220可以是专用电话会议设备,其中,终端1220的每个组件都设置在同一外壳内。在一些示例中,每个终端1220之间的通信可以由管理会议设置、拆除和/或调度的一个或多个服务器或计算集群(未图示)来促进。在一些示例中,终端1220可以使用点对点通信协议进行通信。
[0131]
终端1220可以由视频会议的参与者使用。在一些示例中,参与者使用相同的终端。例如,每个参与者可以使用具有相同配置或规格的相同型号的终端1220,或者已经以类似方式配置以促进视频会议期间的通信的终端1220。在一些示例中,参与者使用的终端可以不同,但各自被配置为发送和接收图像和深度数据(例如,深度图122)并生成三维立体图像,而不使用头戴式显示器或三维眼镜。为了便于讨论,图12的示例呈现了三维远程呈现系统1200的两端上的相同终端1220。
[0132]
终端1220包括显示器1225、相机组装件1280和处理设备1230。在一些示例中,显示器1225可以包括裸眼双凸(lenticular)透镜三维显示器。相机组装件1280可以包括捕获系统102。处理设备1230可以包括深度感测计算系统104。
[0133]
处理设备1230可以执行功能和操作以命令(例如,触发)显示器1225来显示图像。在一些示例中,处理设备1230可以与相机组装件1280通信以接收立体图像数据114,并且处理设备1230被配置为基于立体图像数据114执行局部立体重构算法120,以便根据本文讨论
的技术生成深度图122。处理设备1230还可以与网络适配器1260通信以从参与视频会议的其他终端1220接收图像数据和深度数据(例如,深度图122)。处理设备1230可以使用从相机组装件1280接收的位置和定位数据以及来自网络适配器1260的图像数据和深度数据来在显示器1225上渲染三维立体图像。在一些示例中,处理设备1230可以压缩或编码图像数据和/或深度数据,使得在通过网络1290传送图像数据或深度数据之前需要更少的存储器或带宽。同样,处理设备1230可以在处理设备1230渲染立体三维图像之前解压缩或解码接收到的图像数据或深度数据。
[0134]
根据一些示例,终端1220可以包括扬声器组装件1240和麦克风组装件1250。扬声器组装件1240可以投射与从视频会议中的其他终端1220接收的音频数据相对应的音频。扬声器组装件1240可以包括可以位于多个定位以例如投射方向性音频的一个或多个扬声器。麦克风组装件1250可以捕获与终端1220的用户相对应的音频。麦克风组装件1250可以包括可以位于多个位置以例如投射方向性音频的一个或多个扬声器。在一些示例中,处理单元(例如,处理设备1230)可以对由麦克风组装件1250捕获的音频进行压缩或编码,并经由网络适配器1260和网络1290传送到参与视频会议的其他终端1220。
[0135]
终端1220还可以包括i/o设备1270。i/o设备1270可以包括用于控制终端1220正在参与的视频会议的输入和/或输出设备。例如,i/o设备1270可以包括可用于调节显示器1225的对比度、亮度或缩放的按钮或触摸屏。i/o设备1270还可以包括可用于注释显示器1225上渲染的图像的键盘接口或传送到参与视频会议的其他终端1220的注释。
[0136]
终端1220可以包括存储器1285。取决于实施方式,存储器1285可以是一个或多个易失性存储器单元或者一个或多个非易失性存储器单元。存储器1285可以是任何形式的计算机可读介质,诸如磁盘或光盘、或固态存储器。存储器1285可以存储使处理设备1230执行与所公开的示例一致的功能和操作的指令。
[0137]
三维远程呈现系统1200的终端1220在彼此之间传送各种形式的数据以促进视频会议。在一些示例中,终端1220可以传送与终端1220的每个相应用户相对应的图像数据、深度数据(例如,深度图122)、音频数据和/或定位数据。每个终端1220的处理设备1230可以使用接收到的图像数据、深度数据和/或位置数据来在显示器1225上渲染立体三维图像。处理设备1230可以解释音频数据以命令扬声器组装件1240来投射与音频数据相对应的音频。在一些示例中,图像数据、深度数据、音频数据和/或定位数据可以被压缩或编码,并且处理设备1230可以执行功能和操作以解压缩或解码数据。
[0138]
取决于实施方式,网络1290可以包括任何类型的网络中的一种或多种,诸如一种或多种局域网、广域网、个域网、电话网络和/或互联网,其可以可经由任何可用的有线和/或无线通信协议进行访问。例如,网络1290可以包括每个终端1220通过其进行通信的互联网连接。网络的任何其他组合,包括安全和不安全的网络通信链路,都被设想用于本文描述的系统中。
[0139]
示例1是一种实时有源立体系统,包括:捕获系统,被配置为捕获立体图像数据,立体图像数据包括参考图像和辅助图像;以及,深度感测计算系统,被配置为生成深度图,深度感测计算系统被配置为:基于参考图像和辅助图像计算描述符;基于像素改变信息和视差改变信息计算稳定性惩罚;使用描述符来评估一组像素的多个平面假设,包括:计算与每个平面假设相关联的描述符之间的匹配成本;用稳定性惩罚更新匹配成本;以及,基于更新
的匹配成本从该组像素的多个平面假设中选择一个平面假设。
[0140]
示例2是示例1的实时有源立体系统,其中,像素改变信息包括像素改变值,视差改变信息包括视差改变值,并且深度感测计算系统被配置为:使用像素改变值计算强度乘数;使用视差改变值计算视差乘数;和/或,使用强度乘数和视差乘数计算稳定性惩罚。
[0141]
示例3是示例1至2中任一个的实时有源立体系统,其中,深度感测计算系统被配置为将边缘感知滤波器应用于像素改变值以导出经滤波的像素改变值,经滤波的像素改变值用于计算强度乘数。
[0142]
示例4是示例1至3中任一个的实时有源立体系统,其中,像素改变值表示当前深度图的参考图像或辅助图像中的像素的像素值与先前深度图的参考图像或辅助图像中的像素的像素值之间的差,视差改变值表示当前深度图的像素的建议视差与先前深度图的像素的视差之间的差。
[0143]
示例5是示例1至4中任一个的实时有源立体系统,其中,深度感测计算系统被配置为:计算在平面假设评估期间能够产生的最大匹配成本;和/或,基于最大匹配成本、强度乘数和视差乘数的乘积计算稳定性惩罚。
[0144]
示例6是示例1至5中任一个的实时有源立体系统,其中,深度感测计算系统被配置为使用输入有像素改变值的强度函数来计算强度乘数。
[0145]
示例7是示例1至6中任一个的实时有源立体系统,其中,深度感测计算系统被配置为使用输入有像素改变值的视差函数来计算视差乘数。
[0146]
示例8是示例1至7中任一个的实时有源立体系统,其中,深度感测计算系统被配置为使用边缘感知滤波器来滤波匹配成本,其中,使用稳定性惩罚来更新经滤波的匹配成本。
[0147]
示例9是一种用于实时有源立体的方法,包括:接收立体图像数据,包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像;基于参考图像和辅助图像计算描述符;基于像素改变信息和视差改变信息计算稳定性惩罚;使用描述符来评估一组像素的多个平面假设,包括:计算与每个平面假设相关联的描述符之间的匹配成本;使用稳定性惩罚更新匹配成本;以及/或者,从该组像素的多个平面假设中选择具有最低更新匹配成本的平面假设。
[0148]
示例10是示例9的方法,其中,像素改变信息包括像素改变值,视差改变信息包括视差改变值,该方法进一步包括:使用像素改变值计算强度乘数;使用视差改变值计算视差乘数;和/或,使用强度乘数和视差乘数计算稳定性惩罚。
[0149]
示例11是示例9至10中任一个的方法,进一步包括将边缘感知滤波器应用于像素改变值以导出经滤波的像素改变值,经滤波的像素改变值被用于计算强度乘数。
[0150]
示例12是示例9至11中任一示例的方法,其中,像素改变值表示在当前深度图的参考图像中的像素的像素值与先前深度图的参考图像中的像素的像素值之间的差,视差改变值表示在当前深度图的像素的建议视差与先前深度图的像素的视差之间的差。
[0151]
示例13是示例9至12中任一个的方法,进一步包括:计算在平面假设评估期间能够产生的最大匹配成本;以及,基于最大匹配成本、强度乘数和视差乘数的乘积计算稳定性惩罚。
[0152]
示例14是示例9至13中任一个的方法,进一步包括:使用输入有像素改变值的强度函数来计算强度乘数;以及,使用输入有像素改变值的视差函数来计算视差乘数,视差函数
与强度函数不同。
[0153]
示例15是示例9至14中任一个的方法,进一步包括:基于描述符之间的汉明距离计算匹配成本;以及,使用边缘感知滤波器来滤波匹配成本,其中,使用稳定性惩罚来更新经滤波的匹配成本。
[0154]
示例16是一种存储可执行指令的非暂时性计算机可读介质,所述可执行指令在由至少一个处理器执行时被配置为使得所述至少一个处理器:接收立体图像数据,包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像;基于参考图像和辅助图像计算描述符;基于像素改变信息和视差改变信息计算稳定性惩罚;使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本;以及使用稳定性惩罚更新匹配成本;以及,基于更新的匹配成本从该组像素的多个平面假设中选择一个平面假设。
[0155]
示例17是示例16的非暂时性计算机可读介质,其中,像素改变信息包括像素改变值,视差改变信息包括视差改变值,可执行指令包括指令,该指令当由所述至少一个处理器执行时使得所述至少一个处理器:将边缘感知滤波器应用于像素改变值以导出经滤波的像素改变值;使用经滤波的像素改变值计算强度乘数;使用视差改变值计算视差乘数;以及,使用强度乘数和视差乘数计算稳定性惩罚。
[0156]
示例18是示例16至17中任一个的非暂时性计算机可读介质,其中,像素改变值表示在当前深度图的参考图像中的像素的像素值与先前深度图的参考图像中的像素的像素值之间的差,视差改变值表示在当前深度图的像素的建议视差与先前深度图的像素的视差之间的差。
[0157]
示例19是示例16至18中任一个的非暂时性计算机可读介质,其中,可执行指令包括指令,该指令当由所述至少一个处理器执行时使得所述至少一个处理器:计算在平面假设评估期间能够产生的最大匹配成本;以及/或者,基于最大匹配成本、强度乘数和视差乘数的乘积计算稳定性惩罚。
[0158]
示例20是示例16至19中任一个的非暂时性计算机可读介质,其中,可执行指令包括指令,该指令当由所述至少一个处理器执行时使得所述至少一个处理器:使用输入有像素改变值的强度函数来计算强度乘数;以及,使用输入有像素改变值的视差函数来计算视差乘数,视差函数与强度函数不同。
[0159]
示例21是一种实时有源立体系统,包括:捕获系统,被配置为捕获立体图像数据,包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像;以及,深度感测计算系统,被配置为基于参考图像和辅助图像计算描述符;基于像素值之间的强度差计算与描述符相关联的可靠性数据,使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本,使用可靠性数据来调整匹配成本,以及,基于调整后的匹配成本从该组像素的多个平面假设中选择一个平面假设。
[0160]
示例22是示例21的实时有源立体系统,其中,描述符包括描述时空窗口中的像素的邻域的描述符,描述符包括多个比较值,每个比较值表示在时空窗口中的两个像素之间的比较的结果。
[0161]
示例23是示例21至23中任一个的实时有源立体系统,其中,可靠性数据包括具有对应于多个比较值的多个可靠位元的可靠掩码,每个可靠位元指示对应的比较值是否可靠。
[0162]
示例24是示例21至23中任一个的实时有源立体系统,其中,深度感测计算系统被配置为基于两个像素之间的强度差大于第一阈值来计算可靠位元的第一值。
[0163]
示例25是示例21至24中任一个的实时有源立体系统,其中,可靠性数据包括不可靠掩码,不可靠掩码具有与多个比较值相对应的多个不可靠位元,每个不可靠位元指示对应的比较值是否不可靠。
[0164]
示例26是示例21至25中任一个的实时有源立体系统,其中,深度感测计算系统被配置为基于两个像素之间的强度差小于第二阈值来计算不可靠位元的第一值。
[0165]
示例27是示例21至26中任一个的实时有源立体系统,其中,可靠性数据包括可靠掩码和不可靠掩码,深度感测计算系统被配置为基于描述符之间的汉明距离来计算描述符之间的匹配成本,并使用可靠掩码和不可靠掩码来调整匹配成本。
[0166]
示例28是示例21至27中任一个的实时有源立体系统,其中,描述符包括参考描述符和辅助描述符,其中,深度感测计算系统被配置为:使用参考描述符和辅助描述符执行第一按位元运算;以及,使用第一按位元运算的结果以及可靠掩码和不可靠掩码来执行第二按位元运算。
[0167]
示例29是一种用于实时有源立体的方法,包括:接收立体图像数据,包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像;基于参考图像和辅助图像计算描述符;基于像素值之间的强度差来计算与描述符相关联的可靠性数据;以及,使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本;使用可靠性数据来调整匹配成本;以及,基于调整后的匹配成本从该组像素的多个平面假设中选择一个平面假设。
[0168]
示例30是示例29的方法,其中,描述符包括描述时空窗口中的像素的邻域的描述符,描述时空窗口中的像素的邻域的描述符包括多个比较值,每个比较值表示时空窗口中的两个像素之间的比较的结果。
[0169]
示例31是示例29至30中任一个的方法,其中,可靠性数据包括可靠掩码,该可靠掩码具有与多个比较值相对应的多个可靠位元,每个可靠位元指示对应的比较值是否可靠。
[0170]
示例32是示例29至31中任一个的方法,进一步包括基于两个像素之间的强度差大于第一阈值来计算可靠位元的第一值。
[0171]
示例33是示例29至32中任一个的方法,其中,可靠性数据包括具有与多个比较值相对应的多个不可靠位元的不可靠掩码,每个不可靠位元指示对应的比较值是否不可靠。
[0172]
示例34是示例29至33中任一个的方法,进一步包括基于两个像素之间的强度差小于第二阈值来计算不可靠位元的第一值。
[0173]
示例35是示例29至34中任一个的方法,其中,可靠性数据包括可靠掩码和不可靠掩码,该方法包括:基于描述符之间的汉明距离计算在描述符之间的匹配成本;以及,使用可靠掩码和不可靠掩码调整匹配成本。
[0174]
示例36是一种存储可执行指令的非暂时性计算机可读介质,可执行指令在由至少一个处理器执行时使得所述至少一个处理器:接收立体图像数据,包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像;基于参考图像和辅助图像计算描述符;基于像素值之间的强度差来计算与描述符相关联的可靠性数据;以及,使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本;使用可靠性数据来调
整匹配成本;以及,基于调整后的匹配成本从该组像素的多个平面假设中选择一个平面假设。
[0175]
示例37是示例36的非暂时性计算机可读介质,其中,描述符包括描述时空窗口中的像素的邻域的描述符,描述时空窗口中的像素的邻域的描述符包括多个比较值,每个比较值表示时空窗口中的两个像素之间的比较的结果。
[0176]
示例38是示例36至37中任一个的非暂时性计算机可读介质,其中,可靠性数据包括具有与多个比较值相对应的多个可靠位元的可靠掩码,每个可靠位元指示对应的比较值是否是可靠的。
[0177]
示例39是示例36至38中任一个的非暂时性计算机可读介质,其中,可靠性数据包括不可靠掩码,不可靠掩码具有与多个比较值相对应的多个不可靠位元,每个不可靠位元指示对应的比较值是否不可靠。
[0178]
示例40是示例36至39中任一个的非暂时性计算机可读介质,其中,可靠性数据包括可靠掩码和不可靠掩码,可执行指令包括指令,该指令当由所述至少一个处理器执行时使得所述至少一个处理器:基于描述符之间的汉明距离计算在描述符之间的匹配成本;以及,使用可靠掩码和不可靠掩码来调整匹配成本。
[0179]
示例41是一种实时有源立体系统,包括:捕获系统,被配置为捕获立体图像数据,该立体图像数据包括参考图像和辅助图像;以及,深度感测计算系统,被配置为生成深度图,深度感测计算系统被配置为:基于参考图像和辅助图像计算描述符;使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本,并基于匹配成本从该组像素的多个平面假设中选择一个平面假设;以及,基于匹配成本生成与该组像素的选择的平面假设相关联的置信权重。
[0180]
示例42是示例41的实时有源立体系统,其中,深度感测计算系统被配置为基于像素变化值和匹配成本来生成置信权重,像素变化值指示该组像素中的像素强度改变量。
[0181]
示例43是示例41至42中任一个的实时有源立体系统,其中,像素变化值指示在与描述符相关联的时空窗口上该组像素中的像素强度改变量。
[0182]
示例44是示例41至43中任一个的实时有源立体系统,其中,时空窗口具有预定大小的空间程度和预定大小的时间程度。
[0183]
示例45是示例41至44中任一个的实时有源立体系统,其中,深度感测计算系统被配置为使用输入有像素变化值和匹配成本的查找表来生成置信权重,查找表将置信权重映射到像素变化值和匹配成本的组合。
[0184]
示例46是示例41至45中任一个的实时有源立体系统,其中,匹配成本是基于描述符之间的汉明距离来计算的。
[0185]
示例47是示例41至46中任一个的实时有源立体系统,其中,深度感测计算系统被配置为使用边缘感知滤波器来滤波匹配成本,其中,经滤波的匹配成本被用于选择平面假设,其中,所选择的平面假设的未滤波匹配成本被用于计算置信权重。
[0186]
示例48是示例41至47中任一个的实时有源立体系统,其中,描述符中的每一个包括时空窗口中的多个成对强度比较。
[0187]
示例49是示例41至48中任一个的实时有源立体系统,其中,多个平面假设包括倾斜平面。
[0188]
示例50是示例41至49中任一个的实时有源立体系统,其中,深度感测计算系统被配置为将立体图像数据划分为预定大小的区域,并且沿着每个区域的多个平面假设迭代地采样描述符,每个区域表示分离的一组像素。
[0189]
示例51是一种用于实时有源立体的方法,包括:接收包括参考图像和辅助图像的立体图像数据;基于参考图像和辅助图像计算描述符;使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本;以及,基于匹配成本从该组像素的多个平面假设中选择一个平面假设;以及,基于匹配成本生成与该组像素的选择的平面假设相关联的置信权重。
[0190]
示例52是示例51的方法,进一步包括:基于像素变化值和匹配成本生成置信权重,像素变化值指示该组像素中的像素强度改变量。
[0191]
示例53是示例51至52中任一个的方法,其中,像素变化值指示在与描述符相关联的时空窗口上该组像素中的像素强度改变量。
[0192]
示例54是示例51至53中任一个的方法,其中,时空窗口具有预定大小的空间程度和预定大小的时间程度。
[0193]
示例55是示例51至54中任一个的方法,进一步包括:使用输入有像素变化值和匹配成本的查找表来生成置信权重,查找表将置信权重映射到像素变化值和匹配成本的组合。
[0194]
示例56是示例51至55中任一个的方法,进一步包括:基于描述符之间的汉明距离计算匹配成本;使用边缘感知滤波器来滤波匹配成本;基于经滤波的匹配成本来选择平面假设;以及,使用所选择的平面假设的未滤波匹配成本来计算置信权重。
[0195]
示例57是一种存储可执行指令的非暂时性计算机可读介质,可执行指令当由至少一个处理器执行时,使得所述至少一个处理器:接收包括参考图像和辅助图像的立体图像数据;基于参考图像和辅助图像计算描述符;使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本;以及,基于匹配成本从该组像素的多个平面假设中选择一个平面假设;以及,基于匹配成本和像素变化值生成与该组像素的选择的平面假设相关联的置信权重。
[0196]
示例58是示例57的非暂时性计算机可读介质,其中,像素变化值指示在与描述符相关联的时空窗口上的该组像素中的像素强度改变量,其中,时空窗口具有预定大小的空间程度和预定大小的时间程度。
[0197]
示例59是示例57至58中任一个的非暂时性计算机可读介质,其中,可执行指令包括指令,该指令当由所述至少一个处理器执行时使得所述至少一个处理器使用输入有像素改变值和匹配成本的查找表来生成置信权重,查找表将置信权重映射到像素改变值和匹配成本的组合。
[0198]
示例60是示例57至59中任一个的非暂时性计算机可读介质,其中,可执行指令包括指令,该指令当由所述至少一个处理器执行时使得所述至少一个处理器:基于描述符之间的汉明距离计算匹配成本;使用边缘感知滤波器来滤波匹配成本;基于经滤波的匹配成本选择平面假设;以及,使用所选择的平面假设的未滤波匹配成本来计算置信权重。
[0199]
示例61是一种实时有源立体系统,包括:捕获系统,被配置为捕获立体图像数据,包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像,参考图像或辅助图像包括
与第一时间窗口相关的第一图像和与第二时间窗口相关的第二图像;以及,深度感测计算系统,被配置为基于参考图像和辅助图像计算描述符,包括通过可替代地进行以下操作来计算描述符:i)从第一图像或第二图像中的一个选择像素用于比较;以及,ii)从第一图像选择像素和从第二图像选择像素来用于比较;以及,使用描述符生成深度图。
[0200]
示例62是示例61的实时有源立体系统,其中,深度感测计算系统被配置为在具有预定大小的空间程度和预定大小的时间程度的时空窗口上计算描述符。
[0201]
示例63是示例61至62中任一个的实时有源立体系统,其中,深度感测计算系统被配置为不对已在比较中使用的像素进行重新采样,直到已经选择了时空窗口中的所有像素为止。
[0202]
示例64是示例61至63中任一个的实时有源立体系统,其中,深度感测计算系统被配置为响应于时空窗口中的所有像素被确定为在时空窗口中采样,重新选择时空窗口中具有大于阈值水平的循环长度的像素。
[0203]
示例65是示例61至64中任一个的实时有源立体系统,其中,描述符包括多个比较值,其中,多个比较值的数量是预定数量。
[0204]
示例66是示例61至65中任一个的实时有源立体系统,其中,描述符包括多个比较值,多个比较值包括第一值和第二值,第一值表示在来自第一图像的像素之间的比较的结果,第二值表示在来自第一图像的像素与来自第二图像的像素之间的比较的结果。
[0205]
示例67是示例61至66中任一个的实时有源立体系统,其中,多个比较值包括第三值和第四值,第三值表示来自第二图像的像素之间的比较的结果,第四值表示来自第二图像的像素与来自第一图像的像素之间的比较的结果。
[0206]
示例68是示例61至67中任一个的实时有源立体系统,其中,深度感测计算系统被配置为使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本;以及,从该组像素的多个平面假设中选择具有最低更新匹配成本的平面假设。
[0207]
示例69是一种用于实时有源立体的方法,包括:接收立体图像数据,包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像,参考图像或辅助图像包括与第一时间窗口相关的第一图像和与第二时间窗口相关的第二图像;基于参考图像和辅助图像计算描述符,包括通过可替代地进行以下操作来计算描述符:i)从第一图像或第二图像中的一个选择像素用于比较,以及,ii)从第一图像选择像素和从第二图像选择像素来用于比较;以及,使用描述符生成深度图。
[0208]
示例70是示例69的方法,其中,描述符是在具有预定大小的空间程度和预定大小的时间程度的时空窗口上计算的。
[0209]
示例71是示例69至70中任一个的方法,其中,不对已经在比较中使用的像素进行重新采样,直到已经选择了时空窗口中的所有像素为止。
[0210]
示例72是示例69至71中任一个的方法,进一步包括:响应于时空窗口中的所有像素被确定为在时空窗口中采样,重新选择时空窗口中具有大于阈值水平的循环长度的像素。
[0211]
示例73是示例69至72中任一个的方法,其中描述符包括多个比较值,其中,多个比较值的数量是预定数量。
[0212]
示例74是示例69至73中任一个的方法,其中,描述符包括多个比较值,多个比较值包括第一值和第二值,第一值表示在来自第一图像的像素之间的比较的结果,第二值表示在来自第一图像的像素与来自第二图像的像素之间的比较的结果。
[0213]
示例75是示例69至74中任一个的方法,其中,多个比较值包括第三值和第四值,第三值表示来自第二图像的像素之间的比较的结果,第四值表示来自第二图像的像素和来自第一图像的像素之间的比较的结果。
[0214]
示例76是示例69至75中任一个的方法,进一步包括:使用描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的描述符之间的匹配成本;以及,从该组像素的多个平面假设中选择具有最低更新匹配成本的平面假设。
[0215]
示例77是一种存储可执行指令的非暂时性计算机可读介质,可执行指令当由至少一个处理器执行时,使得所述至少一个处理器:接收立体图像数据,包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像,参考图像或辅助图像包括与第一时间窗口相关的第一图像和与第二时间窗口相关的第二图像;基于参考图像和辅助图像计算描述符,包括通过可替代地进行以下操作来计算描述符:i)从第一图像或第二图像中的一个选择像素用于比较,以及,ii)从第一图像选择像素和从第二图像选择像素来用于比较;以及,使用描述符生成深度图。
[0216]
示例78是示例77的非暂时性计算机可读介质,其中,描述符是在具有预定大小的空间程度和预定大小的时间程度的时空窗口上计算的。
[0217]
示例79是示例77至78中任一个的非暂时性计算机可读介质,其中,可执行指令包括指令,该指令当由所述至少一个处理器执行时使得所述至少一个处理器:确定时空窗口内的所有像素都被采样;以及,重新选择时空窗口中具有大于阈值水平的循环长度的像素。
[0218]
示例80是示例77至79中任一个的非暂时性计算机可读介质,其中,描述符包括多个比较值,所述多个比较值包括第一值、第二值、第三值和第四值,第一值表示在来自第一图像的像素之间的比较的结果,第二值表示在来自第一图像的像素与来自第二图像的像素之间的比较的结果,第三值表示来自第二图像的像素之间的比较的结果,第四值表示来自第二图像的像素与来自第一图像的像素之间的比较的结果。
[0219]
虽然示例实施例可以包括各种修改和可替代形式,但其实施例在附图中以示例的方式示出并且在本文被详细描述。然而,应当理解,不意图将示例实施例限制为所公开的特定形式,而是相反,示例实施例将覆盖落入权利要求的范围内的所有修改、等同物和可替代物。贯穿附图的描述,相同的数字指代相同的元件。
[0220]
可以在数字电子电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或它们的组合中实现这里描述的系统和技术的各种实施方式。这些各种实施方式可以包括在一个或多个计算机程序中的实施方式,该一个或多个计算机程序在包括至少一个可编程处理器的可编程系统上可执行和/或可解释,该至少一个可编程处理器可以是专用或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。这里描述的系统和技术的各种实施方式可以被实现为和/或本文通常被称为可以组合软件和硬件方面的电路、模块、块或系统。例如,模块可以包括在处理器(例如,形成在硅衬底和gaas衬底等上的处理器)或一些其他可编程数据处理装置上执行的功能/动作/计算机程序指令。
[0221]
以上示例实施例中的一些被描述为被描绘为流程图的过程或方法。尽管流程图将操作描述为顺序过程,但可以并行、并发或同时执行许多操作。此外,可以重新安排操作的次序。这些过程可能在其操作完成时终止,但也可能具有图中未包括的附加步骤。过程可以对应于方法、功能、过程、子例程、子程序等。
[0222]
上面讨论的方法——其中一些由流程图示出——可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当以软件、固件、中间件或微代码实现时,用于执行必要任务的程序代码或代码段可以被存储在机器或计算机可读介质中,诸如存储介质中。处理器可以执行必要的任务。
[0223]
在此公开的特定结构和功能细节仅仅是为了描述示例实施例的目的而具有代表性。然而,示例实施例以许多替代形式体现并且不应被解释为仅限于在此阐述的实施例。
[0224]
应当理解,尽管术语第一、第二等可以在本文中用于描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元素相对于另一个元素区分。例如,可以将第一元件称为第二元件,并且类似地,可以将第二元件称为第一元件,而不脱离示例实施例的范围。如本文所用,术语和/或包括一个或多个相关联的列出的项目的任何和所有组合。
[0225]
应当理解,当一个元件被称为连接或耦合到另一个元件时,它可以直接连接或耦合到另一个元件或者可以存在中间元件。相反,当一个元件被称为直接连接或直接耦合到另一个元件时,不存在中间元件。用于描述元件之间关系的其他词应当以类似的方式解释(例如,之间与直接之间、相邻与直接相邻等)。
[0226]
本文使用的术语仅出于描述特定实施例的目的,并不旨在限制示例实施例。如本文所用,单数形式一、一个、该旨在也包括复数形式,除非上下文另有明确指示。将进一步理解,术语包含和/或包括,当在本文中使用时,指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
[0227]
还应注意,在一些可替代实施方式中,所指出的功能/动作可能不按图中所指出的次序发生。例如,连续显示的两个图实际上可以并发执行或有时可以以相反的次序执行,这取决于所涉及的功能/动作。
[0228]
除非另有定义,本文使用的所有术语(包括技术和科学术语)具有与示例实施例所属领域的普通技术人员通常理解的相同含义。将进一步理解,术语,例如在常用字典中定义的术语,应被解释为具有与其在相关领域的上下文中的含义一致的含义,并且不会以理想化或过于正式的意义来解释,除非在此明确如此定义。
[0229]
以上示例实施例的部分和对应的详细描述是根据软件、或对计算机存储器内的数据位元的操作的算法和符号表示来呈现的。这些描述和表示是本领域普通技术人员有效地向本领域其他普通技术人员传达他们工作的实质的那些。算法,正如这里使用的术语,并且正如通常被使用的术语,被认为是导致期望结果的自洽步骤序列。这些步骤是需要对物理量进行物理操纵的步骤。通常,尽管不是必须的,这些量采用能够被存储、传输、组合、比较和以其他方式操纵的光、电或磁信号的形式。有时,主要出于常用的原因,将这些信号称为位元、值、元素、符号、字符、术语或数字等已证明是方便的。
[0230]
在以上说明性实施例中,对可以被实现为程序模块或功能过程的操作(例如,以流程图的形式)的动作和符号表示的引用包括例程、程序、对象、组件、数据结构等,它们执行
特定任务或实现特定抽象数据类型,并且可以使用在现有结构元件处的现有硬件来描述和/或实现。这样的现有硬件可以包括一个或多个中央处理单元(cpu)、数字信号处理器(dsp)、专用集成电路或现场可编程门阵列(fpga)计算机等。
[0231]
然而,应该记住,所有这些和类似的术语都与适当的物理量相关联并且仅仅是应用于这些量的方便标签。除非另有具体说明,或从讨论中显而易见,诸如处理或计算或核算或确定或显示等术语是指计算机系统或类似电子计算设备的操作和过程,该计算机系统或类似电子计算设备将在计算机系统的寄存器和存储器内表示为物理、电子量的数据操纵和转换为在计算机系统存储器或寄存器或其他这样的信息存储、传输或显示设备中类似地表示为物理量的其他数据。
[0232]
还要注意,示例实施例的软件实现的方面通常被编码在某种形式的非暂时性程序存储介质上或通过某种类型的传输介质实现。程序存储介质可以是磁性的(例如,软盘或硬盘驱动器)或光学的(例如,光盘只读存储器或cd rom),并且可以是只读的或随机存取的。类似地,传输介质可以是双绞线、同轴电缆、光纤或本领域已知的一些其他合适的传输介质。示例实施例不受任何给定实施方式的这些方面的限制。
[0233]
最后,还应注意,虽然所附权利要求阐述了本文所述特征的特定组合,但本公开的范围不限于本文要求保护的特定组合,而是代替地延伸到涵盖此处公开的特征或实施例的任何组合,而与此时是否已经在所附权利要求中具体列举了该特定组合无关。
技术特征:
1.一种实时有源立体系统,包括:捕获系统,所述捕获系统被配置为捕获立体图像数据,所述立体图像数据包括参考图像和辅助图像;以及深度感测计算系统,所述深度感测计算系统被配置为生成深度图,所述深度感测计算系统被配置为:基于所述参考图像和所述辅助图像计算描述符;基于像素改变信息和视差改变信息计算稳定性惩罚;以及使用所述描述符来评估一组像素的多个平面假设,包括:计算与每个平面假设相关联的所述描述符之间的匹配成本;用所述稳定性惩罚来更新所述匹配成本;以及基于所更新的匹配成本从所述组像素的所述多个平面假设中选择平面假设。2.根据权利要求1所述的实时有源立体系统,其中,所述像素改变信息包括像素改变值,所述视差改变信息包括视差改变值,所述深度感测计算系统被配置为:使用所述像素改变值计算强度乘数;使用所述视差改变值计算视差乘数;以及使用所述强度乘数和所述视差乘数计算所述稳定性惩罚。3.根据权利要求2或3所述的实时有源立体系统,其中,所述深度感测计算系统被配置为:将边缘感知滤波器应用于所述像素改变值以导出经滤波的像素改变值,所述经滤波的像素改变值用于计算所述强度乘数。4.根据权利要求2所述的实时有源立体系统,其中,所述像素改变值表示当前深度图的参考图像或辅助图像中的像素的像素值与先前深度图的参考图像或辅助图像中的所述像素的像素值之间的差,所述视差改变值表示所述当前深度图的像素的建议视差与所述先前深度图的所述像素的视差之间的差。5.根据权利要求2至4中任一项所述的实时有源立体系统,其中,所述深度感测计算系统被配置为:计算在平面假设评估期间能够产生的最大匹配成本;以及基于所述最大匹配成本、所述强度乘数和所述视差乘数的乘积来计算所述稳定性惩罚。6.根据权利要求2至5中任一项所述的实时有源立体系统,其中,所述深度感测计算系统被配置为使用输入有所述像素改变值的强度函数来计算所述强度乘数。7.根据权利要求2至6中任一项所述的实时有源立体系统,其中,所述深度感测计算系统被配置为使用输入有所述像素改变值的视差函数来计算所述视差乘数。8.根据权利要求1至7中任一项所述的实时有源立体系统,其中,所述深度感测计算系统被配置为:使用边缘感知滤波器来滤波所述匹配成本,其中,经滤波的匹配成本使用所述稳定性惩罚来被更新。9.一种用于实时有源立体的方法,包括:接收立体图像数据,所述立体图像数据包括从参考相机捕获的参考图像和从辅助相机
捕获的辅助图像;基于所述参考图像和所述辅助图像计算描述符;基于像素改变信息和视差改变信息计算稳定性惩罚;以及使用所述描述符来评估一组像素的多个平面假设,包括:计算与每个平面假设相关联的所述描述符之间的匹配成本;使用所述稳定性惩罚来更新所述匹配成本;以及从所述组像素的所述多个平面假设中选择具有最低更新匹配成本的平面假设。10.根据权利要求9所述的方法,其中,所述像素改变信息包括像素改变值,所述视差改变信息包括视差改变值,所述方法进一步包括:使用所述像素改变值计算强度乘数;使用所述视差改变值计算视差乘数;使用所述强度乘数和所述视差乘数计算所述稳定性惩罚。11.根据权利要求10所述的方法,进一步包括:将边缘感知滤波器应用于所述像素改变值以导出经滤波的像素改变值,所述经滤波的像素改变值被用于计算所述强度乘数。12.根据权利要求10或11所述的方法,其中,所述像素改变值表示当前深度图的参考图像中的像素的像素值与先前深度图的参考图像中的所述像素的像素值之间的差,所述视差改变值表示所述当前深度图的像素的建议视差与所述先前深度图的所述像素的视差之间的差。13.根据权利要求10至12中任一项所述的方法,进一步包括:计算在平面假设评估期间能够产生的最大匹配成本;以及基于所述最大匹配成本、所述强度乘数和所述视差乘数的乘积来计算所述稳定性惩罚。14.根据权利要求10至13中任一项所述的方法,进一步包括:使用输入有所述像素改变值的强度函数来计算所述强度乘数;以及使用输入有所述像素改变值的视差函数来计算所述视差乘数,所述视差函数与所述强度函数不同。15.根据权利要求9至14中任一项所述的方法,进一步包括:基于所述描述符之间的汉明距离计算所述匹配成本;以及使用边缘感知滤波器来滤波所述匹配成本,其中,经滤波的匹配成本使用所述稳定性惩罚来被更新。16.一种存储可执行指令的非暂时性计算机可读介质,所述可执行指令在由至少一个处理器执行时被配置为使得所述至少一个处理器:接收立体图像数据,所述立体图像数据包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像;基于所述参考图像和所述辅助图像计算描述符;基于像素改变信息和视差改变信息计算稳定性惩罚;以及使用所述描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的所述描述符之间的匹配成本;
使用所述稳定性惩罚来更新所述匹配成本;以及基于所更新的匹配成本从所述组像素的所述多个平面假设中选择平面假设。17.根据权利要求16所述的非暂时性计算机可读介质,其中,所述像素改变信息包括像素改变值,所述视差改变信息包括视差改变值,所述可执行指令包括指令,所述指令当由所述至少一个处理器执行时使得所述至少一个处理器:将边缘感知滤波器应用于所述像素改变值以导出经滤波的像素改变值;使用所述经滤波的像素改变值计算强度乘数;使用所述视差改变值计算视差乘数;以及使用所述强度乘数和所述视差乘数计算所述稳定性惩罚。18.根据权利要求17所述的非暂时性计算机可读介质,其中,所述像素改变值表示当前深度图的参考图像中的像素的像素值与先前深度图的参考图像中的所述像素的像素值之间的差,所述视差改变值表示所述当前深度图的像素的建议视差与所述先前深度图的所述像素的视差之间的差。19.根据权利要求17或18所述的非暂时性计算机可读介质,其中,所述可执行指令包括指令,所述指令当由所述至少一个处理器执行时使得所述至少一个处理器:计算在平面假设评估期间能够产生的最大匹配成本;以及基于所述最大匹配成本、所述强度乘数和所述视差乘数的乘积来计算所述稳定性惩罚。20.根据权利要求17至19中任一项所述的非暂时性计算机可读介质,其中,所述可执行指令包括指令,所述指令当由所述至少一个处理器执行时使得所述至少一个处理器:使用输入有所述像素改变值的强度函数来计算所述强度乘数;以及使用输入有所述像素改变值的视差函数来计算所述视差乘数,所述视差函数与所述强度函数不同。21.一种实时有源立体系统,包括:捕获系统,所述捕获系统被配置为捕获立体图像数据,所述立体图像数据包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像;以及深度感测计算系统,所述深度感测计算系统被配置为:基于所述参考图像和所述辅助图像计算描述符;基于像素值之间的强度差计算与所述描述符相关联的可靠性数据;以及使用所述描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的所述描述符之间的匹配成本,使用所述可靠性数据来调整所述匹配成本,以及基于调整后的匹配成本从所述组像素的所述多个平面假设中选择平面假设。22.根据权利要求21所述的实时有源立体系统,其中,所述描述符包括描述时空窗口中的像素的邻域的描述符,所述描述符包括多个比较值,每个比较值表示在所述时空窗口中的两个像素之间的比较的结果。23.根据权利要求21或22所述的实时有源立体系统,其中,所述可靠性数据包括可靠掩码,所述可靠掩码具有与所述多个比较值相对应的多个可靠位元,每个可靠位元指示对应的比较值是否可靠。24.根据权利要求23所述的实时有源立体系统,其中,所述深度感测计算系统被配置为
基于两个像素之间的强度差大于第一阈值来计算可靠位元的第一值。25.根据权利要求24所述的实时有源立体系统,其中,所述可靠性数据包括不可靠掩码,所述不可靠掩码具有与所述多个比较值相对应的多个不可靠位元,每个不可靠位元指示对应的比较值是否不可靠。26.根据权利要求25所述的实时有源立体系统,其中,所述深度感测计算系统被配置为基于两个像素之间的强度差小于第二阈值来计算不可靠位元的第一值。27.根据权利要求21至26中任一项所述的实时有源立体系统,其中,所述可靠性数据包括可靠掩码和不可靠掩码,所述深度感测计算系统被配置为基于所述描述符之间的汉明距离来计算所述描述符之间的所述匹配成本,并使用所述可靠掩码和所述不可靠掩码来调整所述匹配成本。28.根据权利要求27所述的实时有源立体系统,其中,所述描述符包括参考描述符和辅助描述符,其中,所述深度感测计算系统被配置为:使用所述参考描述符和所述辅助描述符来执行第一按位元运算;以及使用所述第一按位元运算的结果以及所述可靠掩码和所述不可靠掩码执行第二按位元运算。29.一种用于实时有源立体的方法,包括:接收立体图像数据,所述立体图像数据包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像;基于所述参考图像和所述辅助图像计算描述符;基于像素值之间的强度差计算与所述描述符相关联的可靠性数据;以及使用所述描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的所述描述符之间的匹配成本;使用所述可靠性数据来调整所述匹配成本;以及基于调整后的匹配成本从所述组像素的所述多个平面假设中选择平面假设。30.根据权利要求29所述的方法,其中,所述描述符包括描述时空窗口中的像素的邻域的描述符,所述描述符包括多个比较值,每个比较值表示所述时空窗口中的两个像素之间的比较的结果。31.根据权利要求29或30所述的方法,其中,所述可靠性数据包括可靠掩码,所述可靠掩码具有与所述多个比较值相对应的多个可靠位元,每个可靠位元指示对应的比较值是否可靠。32.根据权利要求31所述的方法,进一步包括:基于两个像素之间的强度差大于第一阈值来计算可靠位元的第一值。33.根据权利要求32所述的方法,其中,所述可靠性数据包括不可靠掩码,所述不可靠掩码具有与所述多个比较值相对应的多个不可靠位元,每个不可靠位元指示对应的比较值是否不可靠。34.根据权利要求33所述的方法,进一步包括:基于两个像素之间的强度差小于第二阈值来计算不可靠位元的第一值。35.根据权利要求29至34中任一项所述的方法,其中,所述可靠性数据包括可靠掩码和不可靠掩码,所述方法包括:
基于所述描述符之间的汉明距离来计算所述描述符之间的所述匹配成本;以及使用所述可靠掩码和所述不可靠掩码来调整所述匹配成本。36.一种存储可执行指令的非暂时性计算机可读介质,所述可执行指令在被至少一个处理器执行时使得所述至少一个处理器:接收立体图像数据,所述立体图像数据包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像;基于所述参考图像和所述辅助图像计算描述符;基于像素值之间的强度差来计算与所述描述符相关联的可靠性数据;以及使用所述描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的所述描述符之间的匹配成本;使用所述可靠性数据来调整所述匹配成本;以及基于调整后的匹配成本从所述组像素的所述多个平面假设中选择平面假设。37.根据权利要求36所述的非暂时性计算机可读介质,其中,所述描述符包括描述时空窗口中的像素的邻域的描述符,所述描述符包括多个比较值,每个比较值表示所述时空窗口中的两个像素之间的比较的结果。38.根据权利要求36或37所述的非暂时性计算机可读介质,其中,所述可靠性数据包括可靠掩码,所述可靠掩码具有与所述多个比较值相对应的多个可靠位元,每个可靠位元指示对应的比较值是否是可靠的。39.根据权利要求36至38中任一项所述的非暂时性计算机可读介质,其中,所述可靠性数据包括不可靠掩码,所述不可靠掩码具有与所述多个比较值相对应的多个不可靠位元,每个不可靠位元指示对应的比较值是否不可靠。40.根据权利要求36至39中任一项所述的非暂时性计算机可读介质,其中,所述可靠性数据包括可靠掩码和不可靠掩码,所述可执行指令包括指令,所述指令当由所述至少一个处理器执行时使得所述至少一个处理器:基于所述描述符之间的汉明距离来计算所述描述符之间的所述匹配成本;以及使用所述可靠掩码和所述不可靠掩码来调整所述匹配成本。41.一种实时有源立体系统,包括:捕获系统,所述捕获系统被配置为捕获立体图像数据,所述立体图像数据包括参考图像和辅助图像;以及深度感测计算系统,所述深度感测计算系统被配置为生成深度图,所述深度感测计算系统被配置为:基于所述参考图像和所述辅助图像计算描述符;使用所述描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的所述描述符之间的匹配成本,并基于所述匹配成本从所述组像素的所述多个平面假设中选择平面假设;以及基于所述匹配成本生成与所述组像素的所选择的平面假设相关联的置信权重。42.根据权利要求41所述的实时有源立体系统,其中,所述深度感测计算系统被配置为基于像素变化值和所述匹配成本来生成所述置信权重,所述像素变化值指示所述组像素中的像素强度改变量。
43.根据权利要求42所述的实时有源立体系统,其中,所述像素变化值指示在与所述描述符相关联的时空窗口上所述组像素中的所述像素强度改变量。44.根据权利要求43所述的实时有源立体系统,其中,所述时空窗口具有预定大小的空间程度和预定大小的时间程度。45.根据权利要求42至44中任一项所述的实时有源立体系统,其中,所述深度感测计算系统被配置为使用输入有所述像素变化值和所述匹配成本的查找表来生成所述置信权重,所述查找表将置信权重映射到像素变化值和匹配成本的组合。46.根据权利要求41至45中任一项所述的实时有源立体系统,其中,所述匹配成本是基于所述描述符之间的汉明距离来计算的。47.根据权利要求41至46中任一项所述的实时有源立体系统,其中,所述深度感测计算系统被配置为使用边缘感知滤波器来滤波所述匹配成本,其中,经滤波的匹配成本用于选择所述平面假设,其中,所选择的平面假设的未滤波匹配成本用于计算所述置信权重。48.根据权利要求41至47中任一项所述的实时有源立体系统,其中,所述描述符中的每一个包括时空窗口中的多个成对强度比较。49.根据权利要求41至48中任一项所述的实时有源立体系统,其中,所述多个平面假设中的每一个包括与表示在所述立体数据中描绘的对象的局部表面几何形状的不同平面相对应的深度估计。50.根据权利要求41至49中任一项所述的实时有源立体系统,其中,所述深度感测计算系统被配置为将所述立体图像数据划分为预定大小的区域,并且沿着每个区域的所述多个平面假设迭代地采样所述描述符,每个区域表示分离的一组像素。51.一种用于实时有源立体的方法,包括:接收包括参考图像和辅助图像的立体图像数据;基于所述参考图像和所述辅助图像计算描述符;使用所述描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的所述描述符之间的匹配成本;以及基于所述匹配成本从所述组像素的所述多个平面假设中选择平面假设;以及基于所述匹配成本生成与所述组像素的所选择的平面假设相关联的置信权重。52.根据权利要求51所述的方法,进一步包括:基于像素变化值和所述匹配成本生成所述置信权重,所述像素变化值指示所述组像素中的像素强度改变量。53.根据权利要求52所述的方法,其中,所述像素变化值指示在与所述描述符相关联的时空窗口上所述组像素中的所述像素强度改变量。54.根据权利要求53所述的方法,其中,所述时空窗口具有预定大小的空间程度和预定大小的时间程度。55.根据权利要求52至54中任一项所述的方法,进一步包括:使用输入有所述像素变化值和所述匹配成本的查找表来生成所述置信权重,所述查找表将所述置信权重映射到像素变化值和匹配成本的组合。56.根据权利要求51至55中任一项所述的方法,进一步包括:基于所述描述符之间的汉明距离计算所述匹配成本;
使用边缘感知滤波器来滤波所述匹配成本;基于经滤波的匹配成本选择所述平面假设;以及使用所选择的平面假设的未滤波匹配成本来计算所述置信权重。57.一种存储可执行指令的非暂时性计算机可读介质,所述可执行指令当由至少一个处理器执行时,使得所述至少一个处理器:接收包括参考图像和辅助图像的立体图像数据;基于所述参考图像和所述辅助图像计算描述符;使用所述描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的所述描述符之间的匹配成本;以及基于所述匹配成本从所述组像素的所述多个平面假设中选择平面假设;以及基于所述匹配成本和像素变化值生成与所述组像素的所选择的平面假设相关联的置信权重。58.根据权利要求57所述的非暂时性计算机可读介质,其中,所述像素变化值指示在与所述描述符相关联的时空窗口上的所组述像素中的所述像素强度改变量,其中,所述时空窗口具有预定大小的空间程度和预定大小的时间程度。59.根据权利要求57或58所述的非暂时性计算机可读介质,其中,所述可执行指令包括指令,所述指令当由所述至少一个处理器执行时使得所述至少一个处理器:使用输入有所述像素变化值和所述匹配成本的查找表来生成所述置信权重,所述查找表将置信权重映射到像素变化值和匹配成本的组合。60.根据权利要求57至59中任一项所述的非暂时性计算机可读介质,其中,所述可执行指令包括指令,所述指令当由所述至少一个处理器执行时使得所述至少一个处理器:基于所述描述符之间的汉明距离计算所述匹配成本;使用边缘感知滤波器来滤波所述匹配成本;基于经滤波的匹配成本选择所述平面假设;以及使用所选择的平面假设的未滤波匹配成本来计算所述置信权重。61.一种实时有源立体系统,包括:捕获系统,所述捕获系统被配置为捕获立体图像数据,所述立体图像数据包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像,所述参考图像或所述辅助图像包括属于第一时间窗口的第一图像和属于第二时间窗口的第二图像;以及深度感测计算系统,所述深度感测计算系统被配置为:基于所述参考图像和所述辅助图像计算描述符,包括通过可替代地进行以下操作来计算描述符:i)从所述第一图像或所述第二图像中的一个选择像素用于比较,以及ii)从所述第一图像选择像素和从所述第二图像选择像素来用于比较;以及使用所述描述符生成深度图。62.根据权利要求61所述的实时有源立体系统,其中,所述深度感测计算系统被配置为在具有预定大小的空间程度和预定大小的时间程度的时空窗口上计算所述描述符。63.根据权利要求62所述的实时有源立体系统,其中,所述深度感测计算系统被配置为不对已经在比较中使用的像素进行重新采样,直到已经选择了所述时空窗口中的所有像素为止。
64.根据权利要求63所述的实时有源立体系统,其中,所述深度感测计算系统被配置为响应于所述时空窗口中的所有像素被确定为在所述时空窗口中采样,重新选择所述时空窗口中具有大于阈值水平的循环长度的像素。65.根据权利要求61至64中任一项所述的实时有源立体系统,其中,所述描述符包括多个比较值,其中,所述多个比较值的数量是预定数量。66.根据权利要求61至65中任一项所述的实时有源立体系统,其中,所述描述符包括多个比较值,所述多个比较值包括第一值和第二值,所述第一值表示来自所述第一图像的所述像素之间的所述比较的结果,所述第二值表示来自所述第图像的所述像素与来自所述第二图像的所述像素之间的所述比较的结果。67.根据权利要求66所述的实时有源立体系统,其中,所述多个比较值包括第三值和第四值,所述第三值表示来自所述第二图像的像素之间的比较的结果,所述第四值表示来自所述第二图像的像素与来自所述第一图像的像素之间的比较的结果。68.根据权利要求61至67中任一项所述的实时有源立体系统,其中,所述深度感测计算系统被配置为使用所述描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的所述描述符之间的匹配成本;以及从所述组像素的所述多个平面假设中选择具有最低更新匹配成本的平面假设。69.一种用于实时有源立体的方法,包括:接收立体图像数据,所述立体图像数据包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像,所述参考图像或所述辅助图像包括属于第一时间窗口的第一图像和属于第二时间窗口的第二图像;基于所述参考图像和所述辅助图像计算描述符,包括通过可替代地进行以下操作来计算描述符:i)从所述第一图像或所述第二图像中的一个选择像素用于比较,以及ii)从所述第一图像选择像素和从所述第二图像选择像素来用于比较;以及使用所述描述符生成深度图。70.根据权利要求69所述的方法,其中,所述描述符是在具有预定大小的空间程度和预定大小的时间程度的时空窗口上计算的。71.根据权利要求70所述的方法,其中,不对已经在比较中使用的像素进行重新采样,直到已经选择了所述时空窗口中的所有像素为止。72.根据权利要求71所述的方法,进一步包括:响应于所述时空窗口中的所有像素被确定为在所述时空窗口中采样,重新选择所述时空窗口中具有大于阈值水平的循环长度的像素。73.根据权利要求69至72中任一项所述的方法,其中,所述描述符包括多个比较值,其中,所述多个比较值的数量是预定数量。74.根据权利要求69至73中任一项所述的方法,其中,所述描述符包括多个比较值,所述多个比较值包括第一值和第二值,所述第一值表示来自所述第一图像的所述像素之间的所述比较的结果,所述第二值表示来自所述第一图像的所述像素与来自所述第二图像的所述像素之间的所述比较的结果。75.根据权利要求74所述的方法,其中,所述多个比较值包括第三值和第四值,所述第三值表示来自所述第二图像的像素之间的比较的结果,所述第四值表示来自所述第二图像
的像素和来自所述第一图像的像素之间的比较的结果。76.根据权利要求69至75中任一项所述的方法,进一步包括:使用所述描述符来评估一组像素的多个平面假设,包括:计算每个平面假设的所述描述符之间的匹配成本;以及从所述组像素的所述多个平面假设中选择具有最低更新匹配成本的平面假设。77.一种存储可执行指令的非暂时性计算机可读介质,所述可执行指令当由所述至少一个处理器执行时,使得所述至少一个处理器:接收立体图像数据,所述立体图像数据包括从参考相机捕获的参考图像和从辅助相机捕获的辅助图像,所述参考图像或所述辅助图像包括属于第一时间窗口的第一图像和属于第二时间窗口的第二图像;基于所述参考图像和所述辅助图像计算描述符,包括通过可替代地进行以下操作来计算描述符:i)从所述第一图像或所述第二图像中的一个选择像素用于比较,以及ii)从所述第一图像选择像素和从所述第二图像选择像素来用于比较;以及使用所述描述符生成深度图。78.根据权利要求77所述的非暂时性计算机可读介质,其中,所述描述符是在具有预定大小的空间程度和预定大小的时间程度的时空窗口上计算的。79.根据权利要求78所述的非暂时性计算机可读介质,其中,所述可执行指令包括指令,所述指令当由所述至少一个处理器执行时使得所述至少一个处理器:确定所述时空窗口中的所有像素都被采样;以及重新选择所述时空窗口中具有大于阈值水平的循环长度的像素。80.根据权利要求77至79中任一项所述的非暂时性计算机可读介质,其中,所述描述符包括多个比较值,所述多个比较值包括第一值、第二值、第三值和第四值,所述第一值表示来自所述第一图像的所述像素之间的所述比较的结果,所述第二值表示来自所述第一图像的所述像素与来自所述第二图像的所述像素之间的所述比较的结果,所述第三值表示来自所述第二图像的像素之间的比较的结果,所述第四值表示来自所述第二图像的像素与来自所述第一图像的像素之间的比较的结果。
技术总结
根据一个方面,一种实时有源立体系统包括:被配置为捕获立体图像数据的捕获系统,所述立体图像数据包括参考图像和辅助图像;以及,被配置为生成深度图的深度感测计算系统,所述深度感测计算系统被配置为基于参考图像和辅助图像计算描述符,并且基于像素改变信息和视差改变信息来计算稳定性惩罚,使用描述符来评估一组像素的多个平面假设,包括:计算在与每个平面假设相关联的描述符之间的匹配成本,用稳定性惩罚来更新匹配成本,以及基于更新的匹配成本从所述组像素的多个平面假设中选择一个平面假设。选择一个平面假设。选择一个平面假设。
技术研发人员:哈里斯
受保护的技术使用者:谷歌有限责任公司
技术研发日:2021.03.03
技术公布日:2023/9/9
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:废水的净化方法与流程 下一篇:一种发光二极管的封装方法及封装结构与流程