使用深度图像的活动对象分割的制作方法

文档序号:6363831阅读:221来源:国知局
专利名称:使用深度图像的活动对象分割的制作方法
技术领域
本发明涉及对象分割,尤其涉及使用深度图像的活动对象分割。
背景技术
真实世界环境的三维计算机模型在各种各样的应用中是有用的。例如,这样的模型可以用在诸如沉浸式游戏、增强现实、建筑/规划、机器人技术、以及工程原型制作等应用中。深度相机(也称为z相机)可以生成真实世界环境的实时深度图。这些深度图中的每一像素与由相机从环境中的3D点捕捉到的离散的距离测量相对应。这意味着这些相机以实时的速率来提供包括未经排序的一组点(称为点云)的深度图。除了创建真实世界环境的深度图表示之外,能够执行对环境中的各单独对象进行区分的分割操作是有用的。例如,置于桌子上的咖啡杯是与独立于该桌子的对象,但深度图不能单独地区分这一点,因为它不能将置于桌子上的对象以及作为该桌子本身的一部分的 某些事物区分开。存在着各种分割算法,如基于机器学习分类器或计算机视觉技术的分割算法。这些算法能够区分图像中的某些对象,并且相应地对相关联的像素进行标记。然而,这些算法在计算上是复杂的并且因此需要大量计算资源来尤其是用于对实时深度图执行分割。以下描述的各实施例不限于解决已知分割技术的缺点中的任一个或全部的实现。

发明内容
下面呈现了本发明的简要概述,以便向读者提供基本理解。本发明内容不是本发明的详尽概述,并且不标识本发明的关键/重要元素,也不描述本发明的范围。其唯一的目的是以简化形式呈现此处所公开的一些概念,作为稍后呈现的更详细的描述的序言。描述了使用深度图像的活动对象分割。在一示例中,活动对象被从接收自移动深度相机的场景深度图像的背景中分割出来。检索该场景的先前深度图像,并使用迭代最接近点算法来将其与当前深度图像进行比较。迭代最接近点算法包括确定当前深度图像与先前深度图像之间相对应的一组点。在确定该组点期间,检测在这两个深度图像之间不相对应的一个或多个局外点,并且这些局外点处的图像元素被标记为属于活动对象。在各示例中,迭代最接近点算法是作为用于跟踪移动深度相机的算法的一部分来执行的,因此分割不增加大量附加计算复杂度。通过结合附图参考以下详细描述,可更易于领会并更好地理解许多附带特征。


根据附图阅读以下具体实施方式
,将更好地理解本发明,在附图中图I示出房间中的持有移动深度相机的人的示意图,该移动深度相机被用于生成该房间的3D模型或图;图2示出由持有移动深度相机的人来探测的建筑物某层的平面视图3示出连接到实时相机跟踪系统、密集3D模型形成系统、以及游戏系统的移动深度相机的示意图;图4示出用于从深度图像中分割出活动对象的过程的流程图;图5示出迭代最接近点算法的对应点的示例确定;图6示出在迭代最接近点算法的执行期间局外点的示例确定;图7示出可在其中实现对象分割技术的各实施例的示例性的基于计算的设备。在各个附图中使用相同的附图标记来指代相同的部件。
具体实施例方式下面结合附图提供的具体实施方式
旨在作为本发明示例的描述,并不旨在表示可以构建或使用本发明示例的唯一形式。本描述阐述了本发明示例的功能,以及用于构建和操作本发明示例的步骤的序列。然而,可以通过不同的示例来实现相同或等效功能和序列。虽然在本文中将本发明的示例描述并示出为在计算机游戏系统中实现,但所描述的系统只是作为示例而非限制来提供的。本领域的技术人员将理解,本示例适于在使用3D模型的各种不同类型的计算系统中应用。图I是站在房间中并持有移动深度相机102的人100的示意图。该房间包含各种对象106,如椅子、门、窗、植物、灯、另一个人104、以及一只猫108。对象106中的许多是静态的,但这些对象中的一些可以移动,如人104和猫108。当人在房间中四处移动时,移动深度相机捕捉该房间和各对象的深度图像。实时相机跟踪系统112监视相机在房间中的位置和定向。实时相机跟踪系统112可以与移动深度相机102集成在一起,或可以处于另一位置,只要它能够(直接或间接)接收来自移动深度相机102的通信。例如,实时相机跟踪系统112可以在房间中的个人计算机、专用计算机游戏装置、或其他计算设备处提供,并与移动深度相机102进行无线通信。在其他实施例中,实时相机跟踪系统112可以处于建筑物中的别处或处于使用任何合适类型的通信网络与移动深度相机102进行通信的另一远程位置。活动对象分割系统114接收移动深度相机102捕捉到的深度图像,并执行分割操作来标识深度图像中的活动的或被操纵的并且独立于相对不变的背景的对象。例如,人104或猫108可以移动,并且因此被分割为前景活动对象,并与诸如门和窗等背景对象相区分。另外,可以操纵静态对象。例如,人100可以移动椅子,这触发分割系统检测该移动并将椅子从深度图像中分割出来作为前景对象。这可例如允许对象被分割并包括在游戏系统的游戏中。实时相机跟踪系统112向活动对象分割系统114提供输入。来自实时相机跟踪系统112的输入允许实时地执行对象分割,而不需要过多的计算资源,如在下文更详细地描述的。任选地,移动深度相机102与密集3D环境建模系统110进行通信(在该情况下,环境是该房间)。在该示例中,“密集”指的是模型的高精度和分辨率。例如,当人在房间中四处移动时,移动深度相机102捕捉到的图像被用来形成和构建环境的密集3D模型。实时相机跟踪系统112向密集3D建模系统提供输入,以允许各单独的深度图像被 构建到总体3D模型中。活动对象分割系统114也可向密集3D模型提供输入,使得3D模型中的对象被分割并被加标记。实时相机跟踪系统112还可跟踪相机相对于环境的3D模型的位置。相机跟踪和3D建模的组合被称为同时定位和绘图(SLAM)。实时相机跟踪系统112、活动对象分割系统114、以及密集3D建模系统110的输出可由游戏系统或其他应用来使用,但这不是必须的。例如,如上所述,经建模和分割的真实世界对象可被包括在游戏环境中。作为另一示例,图2示出建筑物某层200的平面视图。持有移动深度相机204的人202正如虚线箭头208所示在该层四处移动。该人沿走廊206走过各个房间和家具210。实时相机跟踪系统112能够在移动深度相机204移动时跟踪它的位置,并且3D建模系统生成该层的3D模型或图。活动对象分割系统114检测前景对象并将在深度图中对它们进行标记,从而使得这些对象可按需来分开处理。人202不必须携带移动深度相机204。在其他示例中,移动深度相机204被安装在机器人或运载工具上。这也适用于图I的示例。图3是移动环境捕捉设备300的示意图,该设备300与实时跟踪器316、深度图像分割系统334 —起使用以及可任选地与密集模型生成系统324和游戏系统332 —起使用。 移动环境捕捉设备300包括被安排成捕捉场景的深度图像序列的深度相机302。每一深度图像314(8卩,深度图帧)包括二维图像,该二维图像中的每一图像元素(即,像素)包括诸如从相机到所捕捉的场景中的造成了该图像元素的对象的长度或距离等深度值。这一深度值可以是以指定测量单位(如米或厘米)来提供的绝对值,或可以是相对深度值。在每一捕捉到的深度图像314中,存在大约300000个或更多个图像元素,每一图像元素具有深度值。深度相机302的帧速率足够高,使得深度图像能够被用于机器人技术、计算机游戏、或其他应用。例如,帧速率范围可以是每秒20或更多帧。深度信息可以使用任何合适的技术来获得,包括但不限于飞行时间、结构化光、以及立体图像。移动环境捕捉设备300还可包括被安排成以可由深度相机302查明深度信息的方式来照亮该场景的发光器304。例如,在深度相机302是红外(IR)飞行时间相机的情况下,发光器304将IR光发射到该场景上,并且深度相机302被安排成检测从该场景中的一个或多个对象的表面反向散射的光。在一些不例中,可以从发光器304发出脉冲红外光,使得出射光脉冲与对应的入射光脉冲之间的时间可由深度相机来检测和测量,并被用来确定从环境捕捉设备300到场景中的对象上的位置的物理距离。另外,在一些示例中,可将来自发光器304的出射光波的相位与入射光波的相位在深度相机302处进行比较来确定相移。随后经由包括例如快门式光脉冲成像的各种技术通过分析发射光束随时间的强度来将相移用于确定从移动环境捕捉设备300到各对象上的位置的物理距离。在另一示例中,移动环境捕捉设备300可使用结构化光来捕捉深度信息。在这种技术中,可使用发光器304将图案化光(例如,显示为诸如斑点、网格、或条形图案等已知图案的光,它也可随时间变化)投影到场景上。在到达场景中各对象的表面之后,该图案变形。深度相机302捕捉图案的这种变形并对其进行分析来确定从深度相机302到场景中的对象的绝对或相对距离。在另一示例中,深度相机302包括一对立体相机,以便获得并解析视觉立体数据来生成相对深度信息。在这种情况下,发光器304可被用来照亮场景或可被省略。在一些示例中,除深度相机302之外,移动环境捕捉设备300包括称为红绿蓝(RGB)相机306的彩色视频相机。RGB相机306被安排成捕捉场景的可见光频率处的图像序列。移动环境捕捉设备300可包括定向传感器308,诸如惯性测量单元(MU)、加速计、陀螺仪、指南针、或其他定向或移动传感器308。但是,并非必须使用定向或移动传感器。移动环境捕捉设备300可包括诸如GPS等位置跟踪设备,但这不是必须的。可任选地,移动环境捕捉设备还包括一个或多个处理器、存储器、以及通信基础结构,如下文更详细地描述的。移动环境捕 捉设备可以在外壳中提供,该外壳的形状和大小被制定成由用户手持或由用户佩戴。在其他示例中,移动环境捕捉设备的大小和形状被制定成被包括或安装在运载工具、玩具、或其他可移动装置上。移动环境捕捉设备300连接到实时跟踪器316。这一连接可以是物理有线连接或可以使用无线通信。在一些示例中,移动环境捕捉设备300通过诸如因特网等一个或多个通信网络间接连接到实时跟踪器316。实时跟踪器316可以使用控制一个或多个图形处理单元(GPU)的通用微处理器来用计算机实现。它包括帧对齐引擎318并且可任选地包括环闭合引擎320和重新定位引擎322实时跟踪器316从深度相机302获得深度图像帧,并还可任选地从移动环境捕捉设备300获得输入,并可任选地获得地图数据334。实时跟踪器316可用于使深度图像帧在空间对齐,以产生深度相机302的六自由度(6D0F)姿势估计的实时系列328。它还产生各对深度图像帧之间的变换的变换参数。在一些示例中,实时跟踪器操作来自深度相机的各对深度图像帧314。在其他示例中,实时跟踪器216获取单个深度图像314并将它与该环境的密集3D模型326对齐而非与另一深度图像对齐。实时跟踪器的帧对齐引擎318被安排成对齐各对深度图像帧,或深度图像帧和来自密集3D模型的深度图像帧的估计。它使用可以用一个或多个图形处理单元来实现以使帧对齐引擎实时操作的迭代过程。环闭合引擎230被安排成检测移动环境捕捉设备何时环形移动,使得当前深度图像帧中描绘的场景至少部分与先前深度帧的场景相重叠。例如,这可在用户在图2中的建筑物的整层四处走动并再次到达起始点时发生。这也可以在用户在房间四处移动至某家具背后并再次出来到原始起始位置或接近该原始起始位置时发生。重新定位引擎322被安排成处理以下情况实时跟踪器失去移动环境捕捉设备300的当前位置并且重新定位或再次找出当前位置。实时跟踪器316的帧对齐引擎318向深度图像分割系统334提供输出。深度图像分割系统334使用实时跟踪器316的算法的至少一部分来检测对象在深度图像内何时移动,并在深度图像中将这些对象分割成前景对象。深度图像分割系统334的输出是深度图像的一组加标记的图像元素336,从而指示哪些图像元素对应于经分割的前景对象。用于使用实时相机跟踪的结果来执行分割的过程将在下文参考图4到6更详细地描述。注意,如下文更详细地描述的,在其他示例中,通过实现跟踪算法的一部分,该分割可在没有来自相机跟踪系统的输入的情况下执行。实时跟踪器316还可将相机姿势作为输出提供给可任选密集3D模型生成系统324,模型生成系统324使用该信息和深度图像帧来形成并存储移动环境捕捉设备300在其中移动的场景或环境的密集3D模型326。例如,在图I的情况下,3D模型将是房间中的各表面和各对象的3D模型。在图2的情况下,3D模型将是建筑物的该层的3D模型。密集3D模型可以被存储在图形(GPU)存储器中。移动环境捕捉设备300可结合游戏系统332来使用,游戏系统332连接到显示设备330。例如,游戏可以是FPS (第一人称射击)游戏、高尔夫游戏、拳击游戏、赛车游戏、或其他类型的计算机游戏。经分割的深度图像(或可任选的密集3D模型和分割信息)可被提供给游戏系统332,并且该模型的各方面被合并到游戏中。例如,3D模型可被用来确定房间中各对象的形状和位置,这可与基于相机的游戏一起使用来改进背景移除或合并到游戏本身中(例如,作为玩家可与之交互的游戏中对象)。来自游戏系统332的数据(如与游戏相关的游戏状态或元数据)也可被提供给实时跟踪器316。 如上所述,在一个示例中,实时跟踪器316和/或密集3D模型生成系统324所执行的处理可以在移动环境捕捉设备300的远程位置处执行。例如,移动环境捕捉设备300可被连接到(或包括)具有相对低处理能力并且通过通信网络将深度图像流传送到服务器的计算设备。服务器具有相对高的处理能力,并且执行实时跟踪器316和/或密集3D模型生成系统324的在计算上复杂的任务。服务器可以按帧返回密集重构的已渲染图像以向用户提供交互体验,并且在模型完成时还返回最终密集3D重构以供后续本地使用(例如,用于游戏中)。这样的安排避免了用户需要拥有高能力本地计算设备。现在参考图4,它示出用于从深度图像中分割出活动对象的过程的流程图;图4中示出的分割操作重新利用在上述实时相机跟踪期间执行的算法的一部分,并且这允许以很少额外计算开销执行分割操作的至少一部分。在替换示例中,在此描述的分割操作可以在没有相机跟踪系统的情况下实现,在这种情况下,分割系统实现图4所示的跟踪算法的相关部分。首先,接收400场景的要被分割的深度图像(如移动深度相机所捕捉的)。如果分割操作利用相机跟踪结果,则这一当前深度图像是在帧对齐引擎318处接收的。当前深度图像也被称为目的地深度图像。随后检索402场景的至少一部分的先前深度图像。先前深度图像也被称为源深度图像。在一些示例中,先前深度图像可以是深度相机捕捉到并存储在存储设备处的前导帧。在替换示例中,可通过向GPU请求先前深度图像来从存储在图形存储器中的密集3D模型中生成该先前深度图像。GPU可以通过确定来自虚拟相机的在最后已知位置处的视图和真实深度相机看向密集3D模型内的定向来从存储在图形存储器上的密集3D模型生成先前深度图像。对密集3D模型的使用提供了更高分辨率的先前深度图像。还检索404先前深度图像的捕捉姿势(即,位置和定向)。如果先前深度图像是深度相机所捕捉的前导帧,则捕捉姿势是深度相机在捕捉该前导帧时的姿势,如实时相机跟踪器所确定的。或者,如果先前深度图像是从密集3D模型(网格模型的一种表现)或其他3D表示生成的,则捕捉姿势是虚拟相机的位置和定向。—旦接收到当前深度图像,并且检索到先前深度图像和捕捉姿势,则帧对齐引擎318执行一种算法来确定先前深度图像与当前深度图像之间的变换,并且因此确定移动深度相机在这两个深度图像之间是如何移动的。根据先前深度图像的捕捉姿势,这使得能够确定当前深度相机姿势。这一变换可由实时跟踪器316的帧对齐引擎318使用迭代最接近点(ICP)算法来确定。一般而言,ICP算法是如下迭代过程确定两个深度图像之间的一组对应点、确定使得这些对应点上的误差度量最小化的变换、以及使用所确定的变化来重复该过程直至达到收敛为止。当ICP算法在每次迭代确定两个深度图像之间的对应点时,可发现在图像间显著不同的各点。这些点被称为“局外点”。在相机跟踪操作期间,这些局外点可被忽略或拒绝。然而,这些局外点被用作对分割操作的有用输入。ICP算法的与局外点的确 定相关的各部分在图4中由括号406来指示。注意,出于相机跟踪目的的ICP算法的执行可涉及图4中未示出的进一步附加操作。应用407对用于将当前深度图像和先前深度图像对齐的变换的初始估计。这一初始估计是用任何合适的方式形成的。例如,可以从先前确定的相机姿势估计中确定深度相机的运动路径,并将其与预测模型一起使用来提供对当前时间的姿势的粗略估计(例如,使用恒定速度或加速度预测模型)。作为补充或替换,在其他示例中,以下信息源中的一个或多个可被用来形成初始估计游戏状态、游戏元数据、地图数据、RGB相机输出、定向传感器输出、以及GPS数据。选择408先前深度图像中的一组源点(即,像素)来进行分析。在一些示例中,该组源点可以全是先前深度图像中的像素。在其他示例中,可以选择先前深度图像中的像素的代表性子集来降低复杂度。随后对源点中的每一个执行框410所示的操作。注意,因为对每一源点执行相同操作,所以在ICP算法的执行中存在大量并行性。这使得ICP算法能够在GPU上高效地执行,如在下文参考图7讨论的。参考图5和6中示出的示例示出了在框410中执行的操作。为简明起见,图5和6仅以二维示出了示例先前(源)深度图像和当前(目的地)深度图像。这些示例示出如何确定这两个深度图像上的点是对应点(在图5的情况下)还是局外点(在图6的情况下)。图5和6两者示出所考虑的先前深度图像500和源点502。再次参考图4的框410,首先,ICP算法将当前深度图像上的目的地点映射到先前深度图像上的源点。这是通过将目的地点投影412穿过先前深度图的源点的相机投影来完成的。这由图5和6中的相机投影504来示出,它从先前深度图像的捕捉姿势(例如,从在捕捉先前深度图像时深度相机102的位置和定向)投影穿过源点502。这一投影过程可被称为“投影数据关联”。在图5中,相机投影504与当前深度图像506在目的地点508处相交。在图6中,相机投影504与当前深度图像600在目的地点602处相交。在一些示例中,多个目的地点可被选成接近投影点,并且这些目的地点中的每一个是单独地考虑的。然而,出于该示例的目的,对于每一源点只选择单个目的地点。注意,在其他示例中,当前深度图像(并且因此目的地点)可以处于源点与深度相机102之间。随后,对源点和目的地点执行两个兼容性测试以确定它们是对应点还是局外点。在第一兼容性测试中,确定源点与目的地点之间的欧几里得距离414。这在图5中示为距离510,而在图6中被示为距离604。随后,将该欧几里得距离与预定义距离阈值进行比较416。如果目的地点距源点过远,则对于ICP算法的目的而言,认为它是局外点(S卩,非对应点)并将它标记418为局外点。在一个示例中,预定义距离阈值是15cm,但可以使用任何合适的值。图5的示例示出了源点与目的地点之间的距离510很小并且小于预定义距离阈值(并且因此在这一阶段未被标记为局外点)的情况。相反,图6的示例示出了以下情况先前深度图像500与当前深度图像600 (例如,由于新的对象或活动对象)之间的差异造成了源点与目的地点之间的距离604大于预定义的距离阈值,并且因此目的地点被标记为局外点。如果发现欧几里得距离处于预定义距离阈值内,则执行第二兼容性测试。为了执行这一测试,计算419源点和目的地点处的表面法线。例如,对于给定点,通过找出深度图像中的4个(或更多)个最接近的邻居点并计算将这些邻居点及该点本身合并在一起的表面片来实现这一点。随后计算该表面片在该点的位置处的法线。图5示出源点502的表面法线512和目的地点508的表面法线514。图6示出目的地点602的不同表面法线606。

随后确定420源点与目的地点的表面法线之间的角度。在替换示例中,可以计算与角度有关的不同的度量(如点积)。随后,将计算得到的角度(或其他度量)与预定义角度阈值进行比较422。如果角度大于预定义角度阈值,则认为目的地点是局外点,并将它标记418为局外点。相反,如果角度不大于预定义角度阈值,则目的地点被选作424源点的对应点。在一个示例中,预定义角度阈值是30度,但可以使用任何合适的值。参考图5,源表面法线512与目的地表面法线514之间的角度很小,并且因此在该示例中它们被认为是相对应的点。相反,在图6中,源表面法线512与目的地表面法线606之间的角度较大,且在该示例中大于预定义角度阈值,并且因此目的地点被标记为局外点(忽略这一目的地点已由于超过距离阈值而被标记为局外点)。在以上概括的这两个兼容性测试之后,ICP算法继续426来确定相机跟踪变换。例如,ICP算法找出使得所选对应点的误差度量最小化的变换,并随后在给定该变换的情况下对找出对应点的过程进行重复直至达到收敛为止。然而,并非丢弃局外点,这些点被存储并作为输入提供给对象分割系统。局外点指示深度图像中的自先前深度图像以来有点变化的点。这样的变化可能是由于动态或非刚性对象造成不同的深度测量而引起的。在一个示例中,对象分割可以简单地分割428所有局外点,并将这些点标记为深度图像中的前景对象。这提供了对深度图像的非常快速的分割,除为了相机跟踪无论如何都要执行的计算之外,该分割使用非常少的附加计算。注意,在以上参考图4描述的示例中,在实时相机跟踪期间找出的所有局外点被用作对象分割操作的输入。然而,在替换示例中,只使用检测到的局外点的子集。例如,只使用在ICP算法的最终迭代(或最终的一小部分迭代)期间找出的那些局外点。在一些示例中,在对图像进行分割之前可以对检测到的局外点执行进一步测试。例如,场景的RGB图像(由RGB相机306在深度图像的同时捕捉)可被用于进一步比较。可比较ICP局外点处的与当前深度图像和先前深度图像相对应的两个RGB图像以寻找RGB相似性。如果这一比较指示RGB值的差大于预定义值,则这是对象在此位置已移动的进一步指示并触发对图像的分割。在其他示例中,可以执行其他附加处理来对深度图像进行分割,该分割利用局外点作为输入。例如,局外点可被用作已知分割算法的输入。这样的分割算法包括基于计算机视觉技术的分割算法,如图切割算法、对象边界检测算法(如边缘检测)、GrabCut、或诸如腐蚀/膨胀/中值过滤器等其他形态运算、和/或诸如分类器等基于机器学习的运算(例如,决策树或森林)。注意,许多已知分割算法被配置成作用于图像中的RGB或灰度值。在该示例中,这些可被修改以作用于3D空间体表示(例如,根据3D表面的变化率或曲率)。
局外点提供对这些算法有用的信息,因为它们指示其中发生了深度图像变化的感兴趣区域。这允许这些较高级的分割算法集中于局外点的区域,从而相对于分析整个深度图像而言节省了计算复杂度。例如,分割算法可以分析包围局外点的预定义区域。在其他示例中,通过提示用户手动地指示局外点所检测到的对象是否是独立的、可与背景分开的对象,用户输入也可被用来增强分割。在另一示例中,局外点可结合场景的RGB图像(例如,由RGB相机306在深度图像的同时捕捉)来使用。例如,可以定位RGB图像中与局外点相对应的位置,并且将较高级分割算法(如GrabCut或边缘检测)应用于局外点的位置处的RGB图像。在RGB图像揭示了比深度图像局外点更多的关于对象的信息时,这可以是有用的。例如,如果对象绕与深度相机的视线基本上平行的轴旋转,则检测到该对象的边缘周围的局外点,但检测不到该对象的中心处的局外点(因为在两个深度图像之间该点没有移动)。然而,通过分析局外点的位置处的RGB图像,可以区分对象的全部,并且对象的中心也被正确地分割。 在其他示例中,在分割了深度图像之后,还可以对它进行处理以向其中使用该深度图像的系统(例如,游戏系统)提供附加数据。例如,对活动对象的分割使得这些活动对象能够被与背景分开且独立地跟踪。这可以通过对被分割系统标识为活动对象的深度图像部分执行进一步ICP算法来实现。以此方式,活动对象的运动可与背景分开跟踪和监视。在非刚性的可变形活动对象的情况下,使用ICP算法对对象的独立跟踪变得更复杂,因为对象本身的形状可以变化并且因此ICP不能找出该对象的与该形状变化相匹配的移动变换。在这种情况下,可以使用片级刚体近似,使得可变形对象由多个刚性对象来表示。这样的片级刚体近似可以动态且实时地执行,通过假定所有对象是刚性的来开始并随后在这一假定失败时将对象分成各片级部分(例如,在ICP算法未能找出变换时)。这可以被表示成上述分割算法的递归版本其中对所有像素执行ICP算法,随后只对经分割像素(局外点)再次执行,随后只对次经分割的像素再次执行,以此类推,直至找不出更多经分割像素(或达到某一限度)为止。像独立地跟踪深度图像中的活动对象一样,还可生成该对象的独立的密集3D模型。这可以用与如以上概述的生成场景的总体密集3D模型的方式相类似的方式来执行。例如,图形存储器的一部分可被分配来表示该对象并被安排成3D空间体。由于活动对象是独立地跟踪的,所以与该对象(被分割的)相关的深度图像数据可以与该对象的先前测量对齐并组合在该空间体中。以此方式,构造了活动对象的更详细的3D模型,该模型例如可在将该对象的表示显示在屏幕上时或用于对象识别目的时使用。所分割出的对象的密集3D模型的创建可以用多种方式来执行。在第一示例中,在检测到局外点之后(如上所述),如果局外点在与先前深度图像比较时(其自身可从密集3D模型生成,如上所述)沿相机光线位于表面前方,则它们被集成到存储器中的单独的3D空间体中。这一技术使得一旦所分割出的对象被充分集成到单独的3D空间体中ICP算法就能够跟踪该对象,并且向被添加到场景的新对象提供良好性能。在第二示例中,在检测到局外点之后(如上所述),相机的平截头体内的密集3D模型中的每一体素(S卩,不仅是相机看到的前脸)被投影到当前深度图中。如果给定体素被投影到局外点并且如果该局外点的深度值大于投影体素的深度值,则分割系统知道该体素是活动对象的一部分(因为它突然看到该体素后面的深度点)。这一技术使得对象能够在从场景中移除时被立即分割,并且对活动对象表现良好。在其他示例中,取决于已分割对象(例如,新的或已移动的对象)的特性,用于生成该对象的密集模型的上述两种方法可被组合或选择性地使用。在其他示例中,已从深度图像分割出的对象可被输入到对象识别系统中。这样的对象识别系统可以是机器学习分类器的形式,例如使用经训练的决策树。这可被用来对对象进行实时地自动识别和分类。例如,参考图1,对象识别系统可被安排成识别出已被分割的活动对象是猫108。在一些示例中,用户可以将对象(如椅子)“扫描”到密集3D重构中,并且这一扫描的对象可被用作对象识别系统的一部分以对其他类似对象进行检测和分类。在一些示例中,检测到的点不根据它们所表示的事物(猫、椅子等)而根据它们在场景中的行为来分类。例如,相对于场景中的其他对象,咖啡杯是分开的、独立的刚性对象。相反,门是分开的可活动对象,但被附连到墙上,并且因此其活动是受限的。ICP局外点所指示的点的更高级分析可使这些点被分类成例如独立的、附连的、或静态的。 一旦标识了已分割对象,这一信息就可被用来控制该系统的操作的其他方面。例如,一些对象可被安排成直接在计算机游戏环境内交互,而其他对象可被故意忽略。对象标识也可被用来控制对象的显示(例如,在显示设备330上)。例如,在标识了对象时,该对象的低分辨率深度(即RGB)图像可被替换成该对象的高分辨率模型(即该对象的各刻面)。在一个示例中,可以标识该系统的用户的脸,并且用这些用户的脸的高分辨率图像来进行替换,并且将用户的脸映射到深度图像上。在其他示例中,用户脸的这些高分辨率图像可被参数化,使得他们的脸部表情在计算机控制之下。以此方式,可以生成准确地追随用户的移动的详细且生动的化身。类似地,可根据参数化的模型来生成用户身体的3D表示,并且这一 3D身体表示可代入从深度相机(和/或从RGB相机)捕捉到的脸部表情。在其他示例中,在分割之后,密集3D模型的先前“接合”到新移动的对象的区域可被标记(例如,已移动咖啡杯座在桌子上先前所处的位置)。这一标记可指示模型中的这一区域是可能的“边界表面”。标记可包括将附加数据与模型中的指示潜在表面的这些点相关联。通过这样做,如果在将来某一时刻,一些未知对象被置于该区域上(或至少部分在该区域上),则该系统已经知道它们可能是仅仅彼此接触并且可分离的两个分开的对象(例如,桌子和接触该区域的对象),因为它们之间存在“边界表面”。以此方式加上“边界表面”标记在以下情况下是有用的各相机帧不够快以致不能跟踪场景中快速移动的对象。在这种情况下,快速移动的对象只“出现”在模型中。在对象移动得小于上述预定距离或角度阈值时,观察到类似场景,在这种情况下可能未检测到移动。然而,如果对象接触已标记的边界表面,则这可触发更详细的分析/处理,由此尽管不满足基本距离或角度阈值也可以假定该对象是可分开/可分离的对象。现在参考图7,它示出了可以实现为任何形式的计算和/或电子设备并且可由在其中实现上文所描述的活动对象图像分割的各实施例的示例性基于计算的设备700的各种组件。基于计算的设备700包括一个或多个处理器702,这些处理器702可以是用于处理计算可执行指令以控制设备的操作来执行活动对象图像分割的微处理器、控制器或任何其他合适类型的处理器。在一些示例中,例如在使用片上系统架构的示例中,处理器702可以包括一个或多个固定功能块(亦称加速器),这些块以硬件(而非软件或固件)来实现建模方法的一部分。基于计算的设备700还包括经由接口 706与处理器702进行通信的图形处理系统704,并包括被安排成以快速且高效的方式执行并行的、线程化的操作的一个或多个图形处理单元708。图形处理系统704还包括被安排成启用自图形处理单元708的快速并行访问的图形存储器710。在各示例中,图形存储器710可以存储密集3D模型,并且图形处理单元708可以执行上述ICP算法/相机跟踪以及密集模型生成操作。基于计算的设备700还包括被安排成接收来自诸如移动环境捕捉设备(包括深度相机)等一个或多个设备的输入以及可任选地接收来自一个或多个用户输入设备(例如,游戏控制器、鼠标、和/或键盘)的输入的通信接口 712。通信接口 712还可作为被安排成与一个或多个通信网络(例如,因特网)进行通信的网络接口来操作。还提供了显示器接口 714并且它被安排成向与该基于计算的设备集成在一起或、与该基于计算的设备进行通信的显示系统提供输出。显示系统可提供图形用户界面,或任何合适类型的其他用户界面,但这不是必需的。可以使用可由基于计算的设备700访问的任何计算机可读介质来提供计算机可执行指令。计算机可读介质可以包括例如诸如存储器716等计算机存储介质和通信介质。诸如存储器716等计算机存储介质包括以用于存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EPROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或者可用于存储信息以供计算设备访问的任何其他非传输介质。相反,通信介质可以以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或者其他数据。如本文所定义的,计算机存储介质不包括通信介质。虽然在基于计算的设备700中示出了计算机存储介质(存储器716),但将明白,该存储可以是分布式的或位于远处并经由网络或其他通信链路(例如,使用通信接口 712)来访问。可以在基于计算的设备处提供包括操作系统718或任何其他合适的平台软件的平台软件以使得能够在该设备上执行应用软件720。存储器716可以存储用于实现相机跟踪引擎722 (例如被安排成使用ICP来跟踪深度相机的位置和定向)、对象分割引擎724 (例如,被安排成使用ICP局外点来从深度图像中分割活动对象)的功能的可执行指令,并可任选地存储用于实现密集模型生成引擎726 (例如,被安排成在图形存储器中生成场景或各对象的密集3D模型)的功能的可执行指令。存储器716还可提供数据存储728,数据存储728可被用来在执行分割技术时提供对处理器702所使用的数据的存储,如用于存储先前捕捉的深度图像和捕捉姿势。此处所使用的术语‘计算机’是指带有处理能力使得它可以执行指令的任何设备。本领域的技术人员将认识到,这样的处理能力被集成到许多不同的设备中,因此,术语‘计算机’包括PC、服务器、移动电话、个人数字助理和许多其他设备。本文描述的方法可由有形存储介质上的机器可读形式的软件来执行,例如计算机程序的形式,该计算机程序包括在该程序在计算机上运行时适用于执行本文描述的任何方法的所有步骤的计算机程序代码装置并且其中该计算机程序可被包括在计算机可读介质上。有形(或非暂态)存储介质的示例可包括盘、拇指型驱动器、存储器等并且不包括传播信号。软件可以适合于在并行处理器或串行处理器上执行,使得各方法步骤可以以任何合适的顺序或同时实现。这确认了软件可以是有价值的、可单独交易的商品。它旨在包含运行于或者控制“哑”或标准硬件以实现所需功能的软件。它还旨在包含例如用于设计硅芯片,或者用于配置通用可编程芯片的HDL(硬件描述语言)软件等“描述”或者定义硬件配置以实现期望功能的软件。本领域的技术人员将认识到,用来存储程序指令的存储设备可以分布在网络上。例如,远程计算机可以存储被描述为软件的进程的示例。本地或终端计算机可以访问远程计算机并下载软件的一部分或全部以运行程序。可另选地,本地计算机可以根据需要下载软件的片段,或在本地终端上执行一些软件指令,并在远程计算机(或计算机网络)上执行另一些软件指令。本领域的技术人员还将认识到,通过利用本领域的技术人员已知的传统 技术,软件指令的全部,或一部分可以通过诸如DSP、可编程逻辑阵列等等之类的专用电路来实现。如本领域技术人员将清楚的,此处给出的任何范围或者设备值都可以被扩展或者改变而不失去所寻求的效果。可以理解,上文所描述的优点可以涉及一个实施例或可以涉及多个实施例。各实施例不限于解决所述问题中的任一个或全部的实施例或具有所述好处和优点中的任一个或全部的实施例。进一步可以理解,对‘一个’项目的引用是指那些项目中的一个或多个。此处所描述的方法的步骤可以在适当的情况下以任何合适的顺序,或同时实现。另外,在不偏离此处所描述的主题的精神和范围的情况下,可以从任何一个方法中删除各单独的框。上文所描述的任何示例的各方面可以与所描述的其他示例中的任何示例的各方面相结合,以构成进一步的示例,而不会丢失寻求的效果。此处使用了术语“包括”旨在包括已标识的方法的框或元素,但是这样的框或元素不构成排它性的列表,方法或设备可以包含额外的框或元素。可以理解,上文对优选实施例的描述是只作为示例给出的,本领域的技术人员可以作出各种修改。上面的说明、示例和数据提供了对本发明的示例性实施例的结构和使用的完整的描述。虽然上文以一定的详细度或参考一个或多个单个实施例描述了本发明的各实施例,但是,在不偏离本发明的精神或范围的情况下,本领域的技术人员可以对所公开的实施例作出很多更改。
权利要求
1.一种从深度图像的背景部分分割活动对象(104,108)的方法,包括 从移动深度相机(102)接收(400)所述深度图像,所述深度图像包括每一图像元素处的深度值,每一深度值与从所述深度相机到该深度相机(102)所捕捉的场景中的表面的距离相关; 检索(402)所述场景的至少一部分的先前深度图像; 使用所述深度图像和所述先前深度图像来执行迭代最接近点算法(406),其中所述迭代最接近点算法(406)包括确定所述深度图像和所述先前深度图像中的多个对应点;以及在确定所述多个对应点期间检测一个或多个局外点,并将所述深度图像中处于所述局外点处的那些图像元素标记为(418)活动对象(104,108)图像元素。
2.如权利要求I所述的方法,其特征在于,执行所述迭代最接近点算法的步骤还包括 使用所述对应点来确定用于将所述深度图像与所述先前深度图像对齐的变换,使用所述变换来跟踪所述深度相机的位置和定向,以及与所述深度图像相关联地存储所述位置和定向。
3.如权利要求I所述的方法,其特征在于,在确定所述多个对应点期间检测一个或多个局外点的步骤包括 从所述先前深度图像中选择源点;以及 将所述源点映射到所述深度图像中的目的地点。
4.如权利要求3所述的方法,其特征在于,在确定所述多个对应点期间检测一个或多个局外点的步骤还包括 确定所述源点处的第一表面法线和所述目的地点处的第二表面法线; 计算与所述第一表面法线和第二表面法线之间的角度相关的度量;以及 确定所述度量是否大于预定义的角度阈值。
5.如权利要求3所述的方法,其特征在于,在确定所述多个对应点期间检测一个或多个局外点的步骤还包括 访问与所述深度图像相对应的第一红-绿-蓝图像和与所述先前深度图像相对应的第二红_绿-蓝图像;以及 确定所述第二红-绿-蓝图像的所述源点处的红-绿-蓝值与所述第一红-绿-蓝图像的所述目的地点处的红-绿-蓝值之间的差是否大于预定义值; 确定所述源点与所述目的地点之间的距离是否大于预定义的距离阈值;以及如果确定所述距离不大于所述预定义的距离阈值,则确定所述源点处的第一表面法线和所述目的地点处的第二表面法线,计算所述第一表面法线与第二表面法线之间的角度,以及确定所述角度是否大于预定义的角度阈值。
6.如权利要求3所述的方法,其特征在于,还包括检索所述先前深度图像的先前捕捉位置和定向;以及 其中将所述源点映射到所述目的地点的步骤包括从所述先前捕捉位置和定向以及所述源点投影到所述目的地点。
7.如权利要求I所述的方法,其特征在于,还包括使用在所述局外点处加标记的图像元素来执行分割算法以标识所述深度图像中属于所述活动对象的其他图像元素,以及 其中所述分割算法是对所述场景的与所述深度图像并发地捕捉的红-绿-蓝图像执行的,并且包括以下至少一个=GrabCut算法;机器学习分类器;对象边界检测算法;以及形态运算。
8.一种图像分割系统,包括 通信接口(712),它被安排成从移动深度相机(102)接收(400)深度图像,所述深度图像包括每一图像元素处的深度值,每一深度值与从所述深度相机(102)到该深度相机(102)所捕捉的场景中的表面的距离相关; 存储器(710),它被安排成存储所述场景的至少一部分的先前深度图像;以及处理器(702),它被安排成使用所述深度图像和所述先前深度图像来执行迭代最接近点算法,其中所述迭代最接近点算法(406)包括确定所述深度图像和所述先前深度图像中的多个对应点;在确定所述多个对应点期间检测一个或多个局外点;以及将所述深度图像中所述局外点处的那些图像元素标记(418)为活动对象(104,108)图像元素。
9.如权利要求8所述的方法,其特征在于,所述先前深度图像由所述深度相机在先前捕捉,在所述通信接口处接收到,以及被存储在所述存储器处。
10.如权利要求8所述的方法,其特征在于,还包括图形处理单元和被安排成存储所述场景的密集3D模型的相关联的图形存储器,以及 其中所述处理器被安排成通过向所述图形处理单元请求所述先前深度图像来检索所述先前深度图像,并且所述图形处理单元被安排成根据存储在所述图形存储器上的所述密集3D模型来生成所述先前深度图像,在所述图形存储器中创建只表示所述活动对象的另一密集3D模型,以及使用所述活动对象的加标记的图像元素来扩充所述另一密集3D模型。
全文摘要
描述了使用深度图像的活动对象分割。在一示例中,活动对象被从接收自移动深度相机的场景的深度图像的背景中分割出来。检索该场景的先前深度图像,并使用迭代最接近点算法来将其与当前深度图像进行比较。迭代最接近点算法包括确定当前深度图像与先前深度图像之间相对应的一组点。在确定该组点期间,检测在这两个深度图像之间不相对应的一个或多个局外点,并且这些局外点处的图像元素被标记为属于活动对象。在各示例中,迭代最接近点算法是作为用于跟踪移动深度相机的算法的一部分来执行的,并且因此不增加大量附加计算复杂度。
文档编号G06T7/00GK102663722SQ20121002158
公开日2012年9月12日 申请日期2012年1月31日 优先权日2011年1月31日
发明者A·费茨吉本, D·A·巴特勒, D·莫利尼奥克斯, D·金, J·D·J·肖顿, O·希利格斯, P·科利, R·纽科姆, S·E·豪杰斯, S·伊扎迪 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1