根据深度图对人形进行建模的制作方法

文档序号:6454554阅读:338来源:国知局
专利名称:根据深度图对人形进行建模的制作方法
技术领域
本发明一般地涉及用于对三维(3D)物体进行绘图(map)和建模 的方法和系统,尤其涉及根据深度图对人形进行的自动提取。
背景技术
在现有技术中,已知许多用于生成深度图的不同方法和系统。在本专 利申请和权利要求书中,术语"深度图"是指场景的二维像素矩阵表示, 其中,每个像素与其在场景中的位置相对应并具有表示从某个参考位置到 其场景位置的距离的像素值。(换言之,深度图具有图像的形式,其中, 像素值指出场景中的物体的形貌信息(topographical information ),而不 是亮度和/或颜色)。通过例如向物体投射激光斑点图案并检测和处理该物 体的图4象,可以生成深度图,如在PCT国际7>布\¥0 2007/043036 Al中 所述,该文献的内容通过引用包含于此。
现有技术中已知有用于根据视频或其它图像数据对人形的三维(3D ) 模型进行计算机处理的各种方法。这其中的一些方法要求将专用标记附在 位于已知位置处的对象的身体,以便于跟踪对象的运动。这种基于标记的 方法在例如下述文献中有描述Fua等人的"Human Shape and Motion Recovery Using Animation Models", 19th Congress, International Society for Photogrammetry and Remote Sensing (阿姆斯特丹,2000年7月), 该文献通过引用包含于此。
其它方法使用多个照相M供3D立体图像信息,并处理这些信息以 对人形(或其它形状)进行建模。例如,Allard等人在下述文献中描述了 这样一种方法"Marker-less Real Time 3D Modeling for Virtual Reality",Immersive Projection Technology (IPT 2004, Iowa State University ),该 文献通过引用包含于此。在下述文献中Howe等人描述了另一种方法,该 方法将人的形体和运动的概率模型应用到二维(2D)图像中"Bayesian Reconstruction of 3D Human Motion from Single-Camera Video", Advances in Neural Information Processing Systems 12 ( Denver , Colorado, 1999),该文献也通过引用包含于此。
Li等人在下述文献中描述了使用"立体照相机"提供深度信息"Real time 3D Motion Recognition with Dense Depth Map" (Report CPSC525, Department of Computer Science, University of British Columbia, Vancouver, BC, 2004),该文献通过引用包含于此。将统计背景减除方 法应用到来自立体照相机的输入视频流,并使用基于相关性的立体方法 (stereo method)来给出前景物体的稠密深度图。然后,基于该深度图使 用光$危法(optical flow approach)检测物体的运动。
Grammalidis等人在下述文献中描述了另一种基于深度的方法"3D Human Body Tracking from Depth Images Using Analysis by Synthesis", Proceedings of the IEEE International Conference on Image Processing (ICIP2001, Thessaloniki, Greece), pp. 185-188,该文献通过引用包含 于此。该方法用来估计人手臂的MPEG-4身体动画参数(BAP, body animation parameters),开始时将MPEG-4身体模型的刚性部分按比例 缩放(scale)到由照相机成像的相应身体部分的几何特性。然后使用基于 下坡单纯最小4匕方法(Downhill Simplex minimization method)的技术来 估计BAP值。

发明内容
下面说明的本发明的实施例提供了用于基于深度图对人形进行建模 的方法、设备和软件。(在本专利申请和权利要求书中所使用的术语"人 形的"是指身体结构类似于人体结构的任何存在)。在示例性实施例中, 处理器对包含对象的身体的场景的深度图进行分割,以便找出该身体的轮 廓。然后处理器对该轮廓进行分析,以便识别该对象的躯干和一个或多个 肢体,并确定各肢体中至少一个的布置。
处理器可以在单个图像上或在一系列图像上估计四肢的布置,以便提 取对象的姿势和/或其它运动。可以将所得到的信息用作输入来控制在计算机上运行的应用程序。可选择地,为其它目的,处理器可以结合四肢也 许还有躯干的布置来导出身体的静态或运动模型。下面所述用于处理深度 图的方法是非常高效的,使得可以对传统微处理器进行编程来实时(即,
以至少等于25-30帧/秒的标准视频速率的处理速率)执行这些方法。
因此,根据本发明实施例,提供了一种用于处理数据的计算机实现的 方法,该方法包括
接收包含人形对象的身体的场景的深度图,该深度图包括像素矩阵, 每个像素与其在场景中的位置相对应并具有其像素值,该像素值表示参考 位置到该<象素的位置的距离;
分割深度图以便找出身体的轮廓;
处理轮廓以便识别对象的躯干和一个或多个肢体;以及
通过分析深度图中的至少一个被识别出的肢体的布置,产生输入来控 制计算机上运行的应用程序。
通常,接收深度图包括在不给身体附任何专用标记的情况下获取深度 图。在公开的实施例中,接收深度图包括使用单一固定成像设备来获取深 度图。获取深度图可以包括将无关联的斑点图案投射到对象上,使用成像 设备捕获所投射图案的图像,以及处理图像以便产生深度图。在一个实施 例中,損:射无关联的斑点图案包括使用相干光源形成初级斑点图案。
在一些实施例中,接收深度图包括以至少25帧/秒的帧速率获取深度 图序列,产生控制输入包括以至少等于所述帧速率的更新速率响应于深度 图序列来更新控制输入。
通常,分割深度图包括识别场景中没有连接到身体的背景物体,并在 找出轮廓之前从场景中去除该背景物体。
在一些实施例中,处理l^廓包括估计轮廓内的区域的厚度,根据该 厚度将区域的第 一部分识别为躯干,并将与躯干连接的区域的第二部分识 别为肢体中的至少一个。在一个实施例中,估计厚度包括在深度图中识 别出身体的轴;沿着垂直于该轴的多个第一线计算轮廓的横向厚度;沿着 平行于该轴的多条第二线计算轮廓的纵向厚度;以及将轮廓内由第一和第 二线限定的区域的部分指定为躯干,其中沿着第一和第二直线,横向厚度 和纵向厚度分别不小于特定的横向阈值和纵向阈值。另夕卜,可选择地,识 别所述区域的第二部分包括基于深度图确定躯干距参考位置的代表距 离,并将与躯干重叠的、像素的距离小于代^J巨离的区域识别为对象的手臂。
在公开的实施例中,分析布置包括通it^Ul体中的至少 一个肢体中迭 代地去除像素来找出一个或多个肢体的一个或多个各自的中间轴。通常, 中间轴是弯曲的,且分析布置包括通过找出与中间轴拟合的直线段来导出 一个或多个肢体的棍图表示。
通常, 一个或多个肢体包括对象的手臂,且处理器用来通it^躯干上 识别肩膀点,在手臂上识别手掌点,并识别分别穿过肩膀点和手掌点并在 手臂的肘部相遇的两条直线段来导出手臂的棍图表示。
根据本发明实施例,还提供了用于处理数据的装置,该装置包括
成像设备,用来捕获包含人形对象的身体的场景的图像;以及
处理器,用来处理图像以便生成深度图,深度图包括像素矩阵,每个 像素与其在场景中的位置相对应并具有其像素值,像素值表示从参考位置
到该像素位置的距离;用来分割深度图以便找出身体的轮廓;处理轮廓以 便识别对象的躯干和一个或多个肢体;并用来通过分析深度图中的至少一 个被识别出的肢体的布置,产生输入来控制计算机上运行的应用程序。
根据本发明实施例,也提供一种计算^:件产品,该产品包括存储有 程序指令的计算机可读介质,在由计算机读取时,指令使计算机获取包含
人形对象的身体的场景的深度图,深度图包括像素矩阵,每个像素与其在 场景中的位置相对应并具有其像素值,像素值表示从参考位置到该像素位 置的距离;且指^H吏计算机分割深度图以便找出身体的轮廓;处理轮廓以 便识别对象的躯干和一个或多个肢体;并且通过分析深度图中的至少一个 被识别出的肢体的布置,产生输入来控制计算机上运行的应用程序。
根据下面结合附图对本发明实施例的详细说明,将更完全地理解本发 明,在附图中


图1示意性图示了根据本发明实施例的用于获取和处理深度图的系
统;
图2是根据本发明实施例的深度图的示意表示;
图3是示意性示出根据本发明实施例的用于基于深度图对人体对象 ii行建模的方法的流禾呈图;图4A和图4B是才艮据本发明实施例的去掉背景物体之前和之后的深 度图的示意表示;
图5是示意性示出根据本发明实施例的用于在深度图中识别身体各 部分的方法细节的流程图6是根据本发明实施例的识别出了体轴的下采样深度图的示意性
表示;
图7A是根据本发明实施例的在深度图中找出的身体轮廓的示意性表
示,示出了轮廓的纵向厚度超过阈值的区域;
图7B是根据本发明实施例的图7A的轮廓的示意性表示,示出了轮 廓的横向厚度超过阈值的区域;
图7C是根据本发明实施例的图7A的4^廓的示意性表示,示出了由 图7A和图7B中所示的厚度确定的身体躯干区域;
图7D是根据本发明实施例的图7A的轮廓的示意性表示,示出了基 于图7C的躯干所识别出的头部和四肢;
图8是根据本发明实施例的在深度图中找出的身体轮廓的示意性表 示,示出了与躯干重叠的手臂部分的识别;
图9是根据本发明实施例的在深度图中找出的身体轮廓的示意性表 示,示出了手臂中间轴的识别;
图10是根据本发明实施例的在深度图中找出的身体轮廓的示意性表 示,示出了从深度图中导出的手臂的棍图模型。
具体实施例方式
图1示意性图示出根据本发明实施例的用于绘制深度图并建模的系 统20。系统20包括成傳3殳备22,该设备捕获包^^人形对象28的场景的 图像。图像处理器24处理由设备22产生的图像数据,以便生成对象28 的深度图并基于该深度图生成该对象的模型26,如后文详细说明的。该 模型通常包括与对象四肢中的一个或多个的布置有关的3D信息。下面所 描述的方法能够使处理器24以实时帧速率(至少25帧/秒)从单个深度 图中找到对象四肢的布置,而不依赖于前面的帧。另夕卜,处理器也可以在 对象随时间改变其位置时提供运动信息。图像处理器24可以包括用软件进行编程以执行下述功能的通用计算 机处理器。所述软件可以通过例如网络以电子形式下载到处理器24,或 者也可以设置在有形介质(诸如光、磁或电存储器介质)上。另外,可选 择地,图像处理器的部分或全部功能可以在专用硬件中实现,专用硬件诸 如定制或半定制集成电路或可编程数字信号处理器(DSP)。尽管在图1 中以例子的方式将处理器24显示为与成像设备22分开的单元,但处理器 24的部分或全部处理功能可以由成像设备壳内或与成像设^^目关的合适 的处理器或其它专用电路来执行。
下面所述的建模原理可以用于由任何类型的绘图装置生成的对象28 的任何合适种类的深度图。然而,为了简单且成本低,成像设备22包括 包含单个图像传感器的单个固定设备是有好处的。在一个这种实施例中, 例如,设备22产生无关联的斑点图案并将之投射到对象28上,并捕获在 对象上出现的斑点图案的图像。所述图案在下述意义上是无关联的,即, 作为横向位移的函数的图案中斑点位置的自相关对于任何大于斑点尺寸 的位移来说是可忽略的。随机图案,诸如由来自相干光源的初级斑点 (primaryspeckle)生成的那些图案,在这个意义上就是无关联的。
上述PCT国际7〉布WO 2007/043036 Al描述了这种基于斑点的成寸象 和绘图设备,以及用于基于这种设备的深度绘图方法。在2007年3月8 日提交的PCT专利申请PCT/IL2007/000306中描述了使用投射激光斑点 进行深度绘图的其它方面,该专利申请转让给了本专利申请的受让人,并 通过引用包含于此。正如在这些文献中所说明的,图像处理器对图案中的 斑点相对于已知参考图案的横向位移进行检测。给定斑点的位移是斑点从 所述设备到所投射到的表面之间的距离的函数。
由系统20确定的对象28的四肢的布置和运动可以用作输入来控制处 理器24或另一个计算机(未示出)上所运行的应用程序。例如,处理器 可以识别由对象进行的运动(诸如姿势),并将这些运动用于该对象和计 算机游戏之间的互动界面中。作为选择,由系统20所识别的对象的姿态 和/或运动可以用于控制其它种类的应用,以及用于图像处理和动画的其 它领域中。
上面只是通过例子的方式描述了在系统20中从斑点 像得出深度 图,以便说明获得并使用深度图的一种典型环境。下面所述本发明的原理 和方法的应用绝不限于这种系统或获得深度图的这种方法。相反,这些原 理和方法可以用于使用现有技术中已知的任何合适的方法和技术所获得的基本上任何类型的深度图。
图2是根据本发明实施例的深度图30的示意性表示。深度图包括像 素32的二维矩阵,每个像素与其在场景中的位置相对应。每个像素的值 (由该图中的灰度值指示)指示其在场景中的位置与参考位置之间的距 离。例如,像素值可以指示对象28身体上的点到设备22的图像平面的距 离(即,深度)。
在实际应用中,当对象28被允许自由移动以更远离背景时,不是所 有的深度图的像素都会包含有效的深度数据。相反,假设设备22用来获 取某个距离范围内(对象28通常位于该范围内)的深度信息,则与深度 出了这个范围的区域相对应的像素就可能包含预定的零值,指明对于这些 像素来说,找不到深度。其它像素可能具有将它们归为阴影区的值,这意 味着,在与像素相对应的位置处有一个在所i^巨离范围内的物体表面,但 该像素的深度值不能确定。在下述方法中,也将这些阴影像素的值处理为 零值,尽管在可选实施例中,可以对阴影像素进行不同的处理。
图3是示意性示出根据本发明实施例的用于基于深度图对人体对象 进行建模的方法的流程图。在深度图获取步骤40,处理器24获取深度图。 可以使用如图1所示的系统20来获取深度图,或可以可选地使用现有技 术中已知的任何其它合适类型的深度图绘制系统。对象建模中的关键步骤 是分割深度图以便限定对象的身体的各部分。然而,在准M割身体时, 首先让处理器在背景去除步骤42中从场景中去除背景物体是有用的。如 果在场景中有两个或多个人形,则在对每个进行分割之前将各自身体分开 也是有用的。
在步骤42中,可以4吏用许多不同的背景去除方法。这些方法中的一 些方法依赖于在深度图中初步确定一个斑块(blob,即,具有相似值的寸象 素的连接组)作为对象的身体,然后从该斑块中去除具有明显不同深度值 的其它斑块。以这种方式初步确定的斑块通常必须具有某个最小尺寸。然 而,为此,斑块边缘处的像素坐标之间的简单的欧几里德距离不给出该尺 寸的准确测量。该不准确的原因是,与具有给定实际尺寸的物体相对应的 斑块的尺寸(以像素为单位)随着该物体与设备22的距离的变化而增加 或减小(参见图1)。
因此,为了确定物体的实际尺寸,首先使用下面的公式将物体的(x, y,深度)坐标变换为"现实世界"坐标(xr,yr,深度)xF(x-fovx/2)M象素尺寸"果JL/参考深度 yr-(y-fovy/2)M象素尺寸"果JL/参考深度
这里,fovx和fovy为x和y方向上的深度图的视野(以4象素为单位)。 像素尺寸为,在离绘图设备给定距离(参考深度)处像素所对着的长度。 然后,斑块的尺寸可以通过求该斑块边缘的现实世界坐标之间的欧几里德 距离来实际确定。
处理器24可以通过识别具有所要求的最小尺寸的斑块来执行步骤 42,其中,该斑块在场景中的各斑块中间具有最小平均深度值。可以假设, 离设备22最近的这个斑块就是对象的身体28。深度比该平均深度值大了 至少某个阈值的所有像素都被假定属于背景物体,因此处理器将这些4象素 的深度重置为零值。所述阁值可以试,确定,以便在没有假象的建模(不 受背景物体的干扰)和灵活性(就允许对象移动的深度范围而言)之间达 成最佳折衷。另外,可选择地,也可以相似地将具有明显小于所述斑块的 平均深度值的深JL值的各《象素置零。
另夕卜可选择地,可以通it^工作软件中设定合适的M来预定系统 20的最大深度。对处理器24进行编程,4吏其忽略超过该预i殳最大深度的 物体。当对象28启动了系统20的操作时,他可以在连接到处理器24的 显示器上看到实际的深度图(或由此得到的模型26),从而可以调整自身 位置使得只有他处于场景中并以合适的尺寸由系统捕获到。
作为另一种选择,可以通过首先捕获没有对象28的场景的初始深度 图来生成静态深度过滤器。可以在距离设备22最近的背景物体上识别(可 以由用户交互地识别也可以由处理器24自动地识别)某个〗象素或〗象素组。 处理器24记录该像素或像素组的深度值,随后在步骤42中,将深度图中 比该记录的值大的所有像素的深度值都置零。
可选择地,处理器24可以动态地确定深度值,超过该深度值的话, 物体就从深度图中去除。为此,假设场景中的物体正在移动。因此,在某 最小数目个帧中深度没有变化的任何像素都被假iR背景物体。深度值大 于该静态深度值的像素被认为是属于背景物体的,因此都被置零。开始, 场景中的所有《象素可以都被定义为静态,或者场景中的所有^象素可以都被 定义为非静态的。在这两种情形中, 一旦对象开始运动,就可以动态生成 实际的深度过滤器。
进一步可选择地,也可以使用现有技术中已知的其它方法来在步骤42中除去背景物体。
图4A和图4B是根据本发明实施例的去除背景物体之前和之后的深 度图44的示意性表示。在图4A中,深度图44包括与人形对象的身体相 对应的斑块46以及与背景物体相对应的其它斑块48。深度图44中的其 余像素值为零。处理器24可以以上述方式判断出斑块48所处的深度比斑 块46的深度至少大了某个阈值。因此,从深度图中除去斑块48,只留下 斑块46来进行分割和建模。
现在返回图3, 一旦成功地除去了背景,处理器24就通it^深度图 中找出相连的深度部分来分割深度图中的人形。在步骤50中,找出每个 相连像素部分的轮廓。如果在深度图中有两个或更多个人形彼此相邻(例 如,通过握手或彼此接触而相连),则一般需要处理器首先将各人形彼此 分开。在一些情形中,可以使用形态操作或其它图像分析技术来进行这种 分离。在下面的描述中,假设深度图只包含一个人形对象,或者可选择地, 如果需要,假设相连人形的分离已经完成,使得每个人形可以用清晰的斑 块表示。
为了在步骤50中找出对象的身体的轮廓,处理器24可以使用现有技 术中已知的边#测方法,经过合适的修^J^在深度图上进行操作。这样, 处理器不仅可以找出身体的外部轮廓,也可以找出身体的两部分之间(例 如,手臂和躯干之间)的轮廓。在一个实施例中,处理器使用两步阁值化 机制(thresholding mechanism)来达成此目的
1. 首先,处理器遍历与人形相对应的斑块中的所有像素,并且如果任何 给定^象素具有有效深JL值,并且如果该像素与其四个相连的邻近〗象素(右、 左、上和下)中的至少一个4象素之间的深度值之差大于第一阈值,则将其 标记为轮廓位置。(为此,有效深度值和零值之间的差被认为是无穷大)
2. 在完成了第一步之后,处理器再次遍历该斑块,并且如果在任何像素 (该像素还没有被标记为轮廓位置)的八个相连的邻近像素之中有轮廓像
素,并且如果当前像素和剩下的相连邻近位置中的至少一个4象素之间的深 度值之差大于第二阈值(低于所述第一阈值),则将其标记为轮廓位置。
在找出身体的外轮廓之后,处理器24在子分割步骤52中识别身体的 各部分。该步骤的目的是将身体分割成头、躯干和四肢,其中,四肢包括 手臂和腿(假设它们包含在深度图的区域中)。
图5是根据本发明实施例示意性示出子分割步骤52的细节的流程图。作为达成此目的的预备步骤,处理器24识别身体的纵轴,然后在转动步 骤54中旋转深度图,使得身体轮廓处于竖直位置。该转动的目的是为了 通过将身体的纵轴与Y坐标(垂直)轴对齐来简化下述步骤中的计算。 可选择地,下述计算可以相对于身体的纵轴来执行,而不需要进行该转动, 如本领域技术人员所了解的。
用来在步骤54中找出身体的3D轴的一种方法如下
1. 处理器24将原始深度图下采样(down-sample)为节点栅格,其中, 在X方向和Y方向上隔n个^象素取一个节点。处理器基于以节点为中心 的nxn方块中的深度值来计算每个节点的深度值。如果所述方块中多于
半数像素具有零值,则处理器将相应节点设置为零值。否则,将该节点设 置为所述n x n方块中的有效深度值的平均值。
2. 当前述步骤完成时,处理器可以基于邻近节点的值来进一步"清理" 该下采样的深度图如果给定节点的大部分相邻节点具有零值,则将该节 点也设置为零值(即使在前述步骤之后它具有有效的深度值)。
3. 处理器找出下采样的图中所剩节点的纵轴。为此,处理器可以进行线 性最小二乘拟合来找出最拟合各节点的线。可选择地,处理器可以拟合围 绕各节点的一个椭圆并找出其主轴。
图6是根据本发明实施例的人形对象的身体的下采样深度图56的示 意性表示,其中识别出了身体的纵向3D轴60。如上所述,图56中的节 点58具有通过对原始深度图进行下采样(如果需要,则在去掉背景物体 之后)确定的值。图6所示的节点是具有非零深度值的节点。轴60是通 过对这些节点拟合一条线找出的。处理器24找出该轴和垂直(Y)轴之 间的角,并转动原始深度图,^吏轴60与垂直轴对齐。
现在返回图5,在旋转深度图之后,处理器24在躯干识别步骤62中 通过在平行和垂直于纵轴60的方向上测量身体轮廓的厚度来识别身体的 躯干。为此,处理器可以在身体轮廓(在步骤50中被识别出并在步骤54 中进行了旋转)的周围限定约束框,然后可以对该框中的像素值进行二值 化将具有零深度值的像素设为0,而将具有非零深度值的像素设为1。 然后,通过沿着相应的垂直线对二进制像素值进行相加,处理器对框内的 每个X值计算纵向厚度值,并通过沿着相应的7JC平线对二进制像素值进 行加和,对每个Y值计算横向厚度值。处理器对所得到的值应用阈值, 以便识别沿着哪些条垂直线和水平线轮廓相对厚。例的在深度图中所找出的身体轮廓64 的示意性表示,其中显示出了轮廓的纵向厚度和横向厚度超过确定阈值的 区域。在图7A中,7jC平区域66包含这样的X值,在这些X值处,沿着 相应的线的二进制像素值的和超过了 X阈值。对于这些X值来说,轮廓 在纵向上相对厚。相似地,在图7B中,垂直区域68包含这样的Y值, 在这些Y值处,沿着相应的线的二进制像素值的和超过了 Y阈值。X阈 值和Y阈值可以是不同的,且可以通过对沿着各自的线所得到的二进制 值之和的直方图进行分析来适当地确定。
图7C 3:才艮据本发明实施例的轮、雍64的示意性表示,示出了由图7A 和图7B所示的厚度所确定的与身体躯干70相对应的区域。在该实施例 中,处理器24通过求出前述图所示的区域66和68的交集来筒单地找出 躯干。
现在返回图5, 一旦找出了躯干70,处理器24—般可以在头部和四 肢识别步骤72中基于几何考虑来识别身体的头部和四肢。手臂是连接到 躯干区域的左侧和右侧的区域;头部是躯干区域上方的连接区域;腿部是 躯干区域下方的连接区域。
另夕卜,处理器可以将躯干区域的左上角和右上角初步识别为肩膀。如 果对象的手覆在了 一个或两个肩膀上,则这些初步的识别可能是不正确 的。下面描述用于处理这种重叠的方法。
图7D是根据本发明实施例的轮廓64的示意性表示,示出了步骤72 的结果。该轮廓此时被分割成了躯干70、头部74、右臂76和左臂78、 右腿80和左腿82。该结果只是基于由原始深度图提供的深度值而获得的, 不借助于颜色或亮度信息。
再次返回图5,在找出中心的步骤84中,处理器24可选择地确定身 体每个区域的"质心"。在本文中,区域的质心指该区域的代表深度。为 此,例如,处理器可以生成区域内深度值的直方图,并将具有最高频率的 深度值(或具有最高频率的两个或多个深度值的平均值)设为该区域的质 心。
不同区域各自的质心对于在重叠识别步骤86中区分和找出深度图中 重叠区域之间的轮廓是特别有用的。例如,当手臂区落在躯干的前方时, 在步骤72中识别出的手臂区是不完整的,并且躯干可能扭曲。为了完整 得到手臂形状,处理器在躯干70的区域中找出这样的像素,这些像素的深度值与质心相差很大,并且这些像素形成了与手臂段之一邻接的连接部 分。处理器将该连接部分,连同连接到新识别出的手臂部分的手臂和躯干 之间的任何剩余轮廓点,都添加到手臂。
现在参考图8,图8是根据本发明实施例的身体轮廓卯的示意性表 示,举例说明了步骤86的操作。处理器24确定连接部分100中的像素是 手臂94的一部分,并将该部分与手臂94连接来完成手臂的界定。
一旦处理器找出了躯干的质心,它就可以找出肩膀102,即使肩膀被
对象的手臂或手所覆盖。为此,处理器将躯干建模为质心深度处的矩形。 肩膀位于该矩形的右上角和左上角。
现在返回图3,在识别出躯干和四肢后,处理器24产生对象身体的 "棍图"模型。许多不同的方法可以用于此目的。在本实施例中,在识别 轴的步骤104,处理器由找出四肢的中间轴开始。为了找出深度图的某部 分(诸如手臂)的中间轴,处理器将该部分的周围置零,然后迭代M该 部分去除像素。在一个实施例中,处理器通过连续的形态侵蚀步骤去除像 素,直到所述部分两侧的轮廓点相遇为止。在侵蚀过程的每次迭代中,处 理器将轮廓点设定为零深度值,从而就在前一个轮廓内生成新的、更窄的 轮廓。当轮廓点有两个以上的邻点也是轮廓点时,这些轮廓点就被认为是 相遇了。当两个轮廓点以这种方式相遇时,就用最终的中间轴点来替代它 们。在另一个实施例中(该实施例在计算上效率更高),所述深度部分的 轮JM象素被连续剥去,直到所述部分两侧的两个轮廓〗象素相遇为止。
处理器通常就这样继续下去,直到确定了整个中间轴。可选择地,在 经过一定次数的迭代之后就停止侵蚀或剥离操作。另外,可选择地,可以 在进行了一定次数的迭代之后就将各点定义为"中间轴点",以避免生成 虚假的中间轴点。这些点尤其可能出现在深度图中手臂的相对边缘在开始 时就彼此接近的那些部分中。
图9是根据本发明实施例所述的在深度图中找出的身体轮廓106的示 意性表示,其中示出了在步骤104中识别出的手臂110的中间轴108。处 理器可以使用上述方法相似地找出躯干112和头部114以;sji部(本图中 未示出)的中间轴。尽管在图中轴108^示为图平面中的二维曲线,但 处理器24实际上将手臂110的中间轴108 (以及身体其它部分的中间轴) 建模为空间中的三维曲线。换言之,中间轴上的每个点都有x、 y和深度 坐标。再参考图3,在识别出中间轴上的点之后,处理器24在线段建模步 骤114中,将这些无序的点转换为"解剖学上的"棍图线段,以便将对象 的姿态和运动建模为棍图。因此,每个手臂用两个棍图线段来表示,第一 个线段从肩膀到肘部,第二个线段从肘部到手掌。为此,处理器可以例如 首先产生一组长直的线段,然后4吏用这些线段来生成棍图模型。
为了产生所述长线段,处理器24选择中间轴上的第一个点(通常是 端点),从所述第一个点起在预定半径处找出中间轴上的第二个点,然后 将该半径内的所有其它点标记为"完毕(doiie)"。处理器在所述第二个点 处重复该过程,以在第二个点的另一侧在预定半径处找出中间轴上的第三 个点。如果连接第 一和第二个点的线和连接第 一和第三个点的线具有相似 的斜率,则处理器将第二个点标记为完毕,并用单一直线段来替代第一和 第三个点之间的整个范围。另一方面,如果这些线的斜率的差异超出预定 的容限,则第一和第二个点之间的线段关闭,处理器开始在第二个点处找 新线。
继续该过程,直到处理器考察了中间轴上的所有点,并将这些点合并 在与步骤104中所找出的中间轴相对接近的各长直线段中。同样,处理器 在三维(x, y,深度)空间中限定这些线段。为了完成将身体重建为棍图, 处理器24然后用与肢体实际的#^分相对应的两个长的三维定向"解 剖"线段来替代这些线段, 一个线M肩膀到肘部,第二个线段从肘部到 手掌'
图10是根据本发明实施例的处理器24在步骤114中从轮廓106导出 的棍图模型的一部分的示意性表示。在该例子中,处理器用两个长线段替 代每个手臂110:从手掌到肘部的小臂线段116和从肘部到肩膀的大臂线 段118。
为了找出肘部,从而在给定的手臂中形成两个长的棍图线段,处理器 24使用两个点(肩膀和手掌)、两个长度(大臂和小臂)以及上述长线段 之一。肩膀和手掌可能在前面已经找出了,或者在该步骤过程中被识别出 了。前面描述了肩膀的定位方法。可以将中间轴上与肩膀相对的一端识别 为手掌,或者将沿中间轴离身体中心最远并且可能具有最低深度值的中间 轴上的点识别为手掌。可以给定或可以通过学习来获得小臂和大臂的长 度。例如,处理器可以基于与手臂相对应的长线段的长度和取向来进行这 些长度的初始估计。
利用上面的信息,处理器24定义两个球面,这两个球面的中心分别位于肩膀点和手掌点处,其半径分别等于大臂和小臂的长度。这两个球面
的交集形成3D空间中的圆C。然后,处理器24从所讨论的手臂区域中 的所有长直线段中选#^始线段。通常,起始线M与手掌或与肩膀邻近 并且穿过手掌或肩膀的最长线段。
处理器24通it^所选端点(手掌或肩膀)朝着交集圆C延伸起始线 段来确定肘部的位置。距离该延伸的线段与穿过圆C的平面之间的交点 最近的圆C上的点被识别为肘部。处理器从肘部延伸第二条线到中间轴 的另 一个端点。如果中间轴上有足够多的点落入以这种方式所找出的线段 116和118的预定范围内,则处理器断定对手臂做出了准确的建模。否则, 处理器断定所建模的部分不是对象的手臂。
可选择地,处理器可以使用其它方法从所述部分的轮廓中导出棍图线 段。为此,处理器通常尝试识别朝着肩膀或手掌方向延伸的长线段。例如, 可以通过将上述步骤应用到整个连接部分,而不只是应用到中间轴点,来 导出与手臂相对应的长线段。处理器使用具有更大半径的圆并保留长的线 段。处理器使用较长的线段来替代斜率变化很快的短线段。只有当斜率发 生了很大的变化时,较长的线段才终止。处理器有效地剪除所述部分的点 以构建长线段。同样,使用肩膀点和手掌点、大臂长度和小臂长度以及当 前形成的这一个长线段来形成棍图(线段116和118),如上所述。
生成一个长线段(将与肩膀点和手掌点以及所述两个长度一起使用) 的另一种方法从手臂斑块(blob)中的初始点开始着手,该点或在肩膀处 (或在手臂部分中距离肩膀点最近的点处),或在手掌点处。然后绕着所 选择的点形成两个具有不同半径的圆。这些圆在中心点附近穿过所述部分 两次,因此,以圆的中心点为公共点,在两个交点之间形成了角。有两个 角,每个圆一个。将各角平分,对于每个圆,保留平分线和圆的交点。将 这两个点连接起来,该线就是所述部分的表示。该线段的长度为两个半径 之间的差,并且该线段总是指向肩膀或手掌的方向。结合了肩膀点和手掌 点以及大臂和小臂长度的该线段可以用来形成棍图线段116和118,如上 所述。
尽管上面为了清SA见参考手臂110描述了步骤104和114,但也可 以执行类似的步骤来找出模拟腿部、躯干和头的棍图线段。然后,就可以 将具有预定运动学特性的总的棍图拟合到该模型,以完成对象的姿态、姿 势和其它运动的分析。可以使用最优化技术来进行该拟合,以使运动学棍 图模型的可能位置与从深度图导出的模型的线段之间的距离最小。 一旦处理器在初始帧中找出了好的拟合,它就可以使用运动学模型的可能运动来 在每个相继的帧中对找出线段的过程进行初始化。然后,使用在每个帧中 所找出的实际的线段位置来更新运动学模型的位置。
处理器可以使用棍图的运动作为计算机应用程序的控制输入。例如, 可以使用棍图的姿势来与出现在计算机屏幕上或虚拟现实显示中的用户 控制进行交互。作为另一个例子,在游戏或其它互动应用中,棍图的运动
可以反映在角色的3D化身(avatar )或虚拟3D身体的运动中。
总之,如上所述,处理器24使用深度图来形成具有物理和运动行为 并具有几何约束的棍图。 一旦开始了棍图,棍图就可以在随后的帧中通过 识别身体部分的深度表面来帮助随后的人体分割。
应该了解,上述实施例是通过举例的方式来说明的,但本发明不限于 上面所具体显示和描述的内容。相反,本发明的范围包括上述各种特性的 组合和子组合及其变化和变型,本领域的技术人员通过阅读前面的描述可 以实现,并且这些都是现有技术中没有公开的。
2权利要求
1.一种用于处理数据的计算机实现的方法,包括接收包含人形对象的身体的场景的深度图,所述深度图包括像素矩阵,每个像素与其在所述场景中的位置相对应并具有其像素值,所述像素值表示从参考位置到所述像素的位置的距离;分割所述深度图以便找出所述身体的轮廓;处理所述轮廓以便识别所述对象的躯干和一个或多个肢体;以及通过分析所述深度图中被识别出的肢体中的至少一个的布置,产生输入来控制计算机上运行的应用程序。
2. 根据权利要求1 ,,述的方法,其中,接收所述深度图包括在不给 所述身体附任何专用标记的情况下获取所述深度图。
3. 根据权利要求1所述的方法,其中,接收所述深度图包括使用单 一固定成像设备来获取所述深度图。
4. 根据权利要求3所述的方法,其中,获取所述深度图包括将无 关联的斑点图案投射到所述对象上,使用所述成像设备捕获所投射的图案 的图像,以及处理所述图像以便产生所述深度图。
5. 根据权利要求4所述的方法,其中,投射所述无关联的斑点图案 包括4吏用相干光源形成初级斑点图案。
6. 根据权利要求1所述的方法,其中,接收所述深度图包括以至少 25帧/秒的帧速率获取深度图序列,并且产生所述控制输入包括以至少等 于所述帧速率的更新速率响应所述深度图序列更新所述控制输入。
7. 根据权利要求1所述的方法,其中,分割所述深度图包括识别所 述场景中没有连接到所述身体的背景物体,并在找出所述轮廓之前从所述 场景中去除所述背景物体。
8. 根据权利要求l-7中任一个所述的方法,其中,处理所述4^廓包 括估计所述轮廓内的区域的厚度,响应于所述厚度将所述区域的第一部 分识别为躯干,并将连接到所述躯干的所述区域的第二部分识别为所i^Jt 体中的至少一个。
9. 根据权利要求8所述的方法,其中,估计所述厚度包括 在所述深度图中识别所述身体的轴;沿着垂直于所述轴的多个第一线计算所述轮廓的横向厚度;沿着平行于所述轴的多个第二线计算所述轮廓的纵向厚度;以及 将所述轮廓内由所述第一和第二线限定的所述区域的部分指定为所 述躯干,其中沿着所述第一和第二线,所述横向厚度和纵向厚度分别不小 于特定的横向阈值和纵向阈值。
10. 根据权利要求8所述的方法,其中,识别所述区域的第二部分包 括基于所述深度图确定所述躯干距所述参考位置的代^J巨离,并将重叠 在所述躯干上的、像素的距离小于所述代^J巨离的区域识别为所述对象的 手臂。
11. 根据权利要求1-7中任一个所述的方法,其中,分析所述布置包 括找出所述一个或多个肢体的一个或多个各自的中间轴。
12. 根据权利要求11所述的方法,其中,找出所述一个或多个各自 的中间轴包括迭代地从所i^L体的至少一个中去除像素。
13. 根据权利要求11所述的方法,其中,所述中间轴是弯曲的,且 分析所述布置包括通过找出与所述中间轴拟合的直线段来导出所述一个 或多个肢体的棍图表示。
14. 根据权利要求1-7中任一个所述的方法,其中,所述一个或多个 肢体包括所述对象的手臂,其中,分析所述布置包括通过在所述躯干上 识别肩膀点,在所述手臂上识别手掌点,并识别分别穿过所述肩膀点和手 掌点并在所述手臂的肘部相遇的两个直线段来导出所述手臂的棍图表示。
15. 用于处理数据的装置,包括成像设备,用来捕获包含人形对象的身体的场景的图像;以及处理器,用来处理所述图〗象以^更生成深度图,所述深度图包括〗象素矩 P车,每个像素与其在所述场景中的位置相对应并具有其像素值,所述像素 值表示从参考位置到所述像素的位置的距离;用来分割所述深度图以便找 出所述身体的轮廓;处理所述轮廓以便识别所述对象的躯干和一个或多个 肢体;以及通过分析所述深度图中被识别出的肢体中的至少一个的布置, 产生输入来控制计算机上运行的应用程序。
16. 根据权利要求15所述的装置,其中,所述处理器用来在没有附 到身体的任何专用标记的情况下生成所述深度图。
17. 根 权利要求15所述的装置,其中,所述处理器用来使用单一固定成傳j殳备来生成所述深度图。
18. 根据权利要求17所述的装置,其中,所述成像设备用来将无关 联的斑点图案投射到所^f象上,并捕获所投射的图案的图像。
19. 根据权利要求18所述的装置,其中,所述无关联的斑点图案包 括由相干光源形成的初级斑点图案。
20. 根据权利要求15所述的装置,其中,所述处理器用来响应于由 所述成像设备捕获的图像以至少25帧/秒的帧速率产生深度图序列,并以 至少等于所述帧速率的更新速率响应所述深度图序列更新所述控制输入。
21. 根据权利要求15所述的装置,其中,所述处理器用来识别所述 场景中没有连接到所述身体的背景物体,并在找出所述轮廓之前从所述场 景中除去所述背景物体。
22. 根据权利要求15-21中的任一个所述的装置,其中,所述处理器 用来估计所述轮廓内的区域的厚度,响应所^度将所述区域的第 一部分 识别为躯干,并将连接到所述躯干的所述区域的第二部分识别为所i^l体 中的至少一个。
23. 根据权利要求22所述的装置,其中,所述处理器通过下面的步 骤来估计所述厚度在所述深度图中识别所述身体的轴;沿着垂直于所述 轴的多个第一线计算所述轮廓的横向厚度;沿着平行于所述轴的多个第二 线计算所述轮廓的纵向厚度;以及将所述轮廓内由所述第一和第二线限定 的所述区域的部分指定为所述躯干,其中沿着所述第一和第二线,所述横 向厚度和纵向厚度分别不小于特定的横向阈值和纵向阈值。
24. 根据权利要求22所述的装置,其中,所述处理器用来基于所述 深度图确定所述躯干距所述参考位置的代表距离,并将与所述躯千重叠 的、像素的距离小于所述代彭巨离的区域识别为所述对象的手臂。
25. 根据权利要求15-21中任一个所述的装置,其中,所述处理器用 来分析所述轮廓以便找出所述一个或多个肢体的一个或多个各自的中间 轴。
26. 根据权利要求25所述的装置,其中,所述处理器用来通过迭代 地侵蚀围绕着所述肢体中的至少 一个肢体的轮廓来找出所述一个或多个 各自的中间轴。
27. 根据权利要求25所述的装置,其中,所述中间轴是弯曲的,且所述处理器用来通过找出与所述中间轴拟合的直线段来导出所述一个或 多个肢体的棍图表示。
28. 根据权利要求15-21中任一个所述的装置,其中,所述一个或多 个肢体包括所述对象的手臂,并且其中,所述处理器用来通过下面的步骤 导出所述手臂的棍图表示在所述躯干上识别肩膀点,在所述手臂上识别 手掌点,并识别分别穿过所述肩膀点和手掌点并在所述手臂的肘部相遇的 两个直线段。
29. —种计算M件产品,包括存储有程序指令的计算机可读介质, 在由计算机读取时,所述指令使计算机获取包含人形对象的身体的场景的 深度图,所述深度图包括像素矩阵,每个像素与其在所述场景中的位置相 对应并具有其像素值,所述像素值表示从参考位置到所述像素值位置的距 离;且所述指令使计算机分割所述深度图以便找出所述身体的轮廓;处理 所述轮廓以^更识别所述对象的躯干和一个或多个肢体;并且通过分析所述 深度图中被识别出的肢体中的至少一个的布置,产生输入来控制计算机上 运行的应用程序。
30. 根据权利要求29所述的产品,其中,所述指令使计算;Wt没有 附到身体的任何专用标记的情况下生成所述深度图。
31. 根据权利要求29所述的产品,其中,所述指4^f吏计算机使用单 一固定成傳4史备来生成所述深度图。
32. 根据权利要求31所述的产品,其中,将无关联的斑点图案損:射 到所述对象上,且所述指令使计算机通过处理投射图案的图像来生成所述 深度图。
33. 根据权利要求32所述的产品,其中,所述无关联的斑点图案包 括由相干光源形成的初级斑点图案。
34. 根据权利要求29所述的产品,其中,所述指4^吏计算机以至少 25帧/秒的帧速率产生深度图序列,并以至少等于所述帧速率的更新速率 响应于所述深度图序列更新所述控制输入。
35. 根据权利要求29所述的产品,其中,所述指令使计算机识别所 述场景中没有连接到所述身体的背景物体,并在找出所述轮廓之前从所述 场景中去除所述背景物体。
36. 根据权利要求29-35中任一个所述的产品,其中,所述指令使计 算机估计所述轮廓内的区域的厚度,根据所述厚度将所述区域的第一部分识别为躯千,并将连接到所述躯干的所述区域的第二部分识别为所^L体 中的至少一个。
37. 根据权利要求36所述的产品,其中,所述指4^f吏计算机通过下 面的步骤来估计所述厚度在所述深度图中识别所述身体的轴;沿着垂直 于所述轴的多个第一线计算所述轮廓的横向厚度;沿着平行于所述轴的多 个第二线计算所述轮廓的纵向厚度;以及将所述轮廓内由所述第一和第二 线限定的所述区域的部分指定为所述躯干,其中沿着所述第 一和第二线, 所述横向厚度和纵向厚度分别不小于特定的横向阁值和纵向阈值。
38. 根据权利要求37所述的产品,其中,所述指4^吏计算机基于所 述深度图确定所述躯干距所述参考位置的代^巨离,并将与所述躯干重叠 的、像素的距离小于所述代彭巨离的区域识别为所述对象的手臂。
39. 根据权利要求29-35中任一个所述的产品,其中,所述指^H吏计 算机分析所述轮廓以便找出所述一个或多个肢体的一个或多个各自的中 间轴。
40. 根据权利要求39所述的产品,其中,所述指4^吏计算fet过迭 代地侵蚀围绕着所述肢体中的至少 一个肢体的轮廓来找出所述一个或多 个各自的中间轴。
41. 根据权利要求39所述的产品,其中,所述中间轴是弯曲的,且 所述指令使计算机通过找出与所述中间轴拟合的直线段来导出所述一个 或多个肢体的棍图表示。
42. 根据权利要求29-35中任一个所述的产品,其中,所述一个或多 个肢体包括所述对象的手臂,且所述指4^吏计算机通过下面的步骤导出所 述手臂的棍图表示在所述躯干上识别肩膀点,在所述手臂上识别手掌点, 并识别分别穿过所述肩膀点和手掌点并在所述手臂的肘部相遇的两条直 线段。
全文摘要
一种计算机实现的方法包括接收包含人形对象的身体(28)的场景的深度图(30)。所述深度图包括像素(32)矩阵,每个像素与其在所述场景中的位置相对应并具有其像素值,该像素值表示从参考位置到其位置的距离。分割所述深度图以便找出身体的轮廓(64)。处理该轮廓以便识别所述对象的躯干(70)和一个或多个肢体(76、78、80、82)。通过分析所述深度图中的至少一个被识别出的肢体的布置,产生输入来控制计算机上运行的应用程序。
文档编号G06K9/00GK101657825SQ200780013930
公开日2010年2月24日 申请日期2007年5月10日 优先权日2006年5月11日
发明者亚历山大·什蓬特, 塔米尔·贝利纳, 奥伦·莫尔, 德米特里·赖斯, 日瓦·亨德尔, 杰弗里·达诺维茨, 米歇尔·施皮格尔马赫 申请人:普莱姆传感有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1