著录项信息
专利名称 | 生成反映玩家外观的化身 |
申请号 | CN201280027693.2 | 申请日期 | 2012-06-04 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-02-19 | 公开/公告号 | CN103597518A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06T13/40 | IPC分类号 | G;0;6;T;1;3;/;4;0;;;G;0;6;F;1;9;/;0;0查看分类表>
|
申请人 | 微软公司 | 申请人地址 | 美国华盛顿州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 微软技术许可有限责任公司 | 当前权利人 | 微软技术许可有限责任公司 |
发明人 | J·J·埃弗特;J·A·克拉克;Z·T·米德顿;M·J·普尔斯;M·T·米赫利趣;D·奥斯本;A·R·坎贝尔;C·E·马汀;D·M·希尔 |
代理机构 | 上海专利商标事务所有限公司 | 代理人 | 罗婷婷 |
摘要
用于生成反映玩家的当前外观的化身的系统、方法和计算机介质。接收描述该玩家的当前外观的数据。该数据包括玩家的可见频谱图、包括玩家和当前背景两者的深度图、和玩家的骨架数据。骨架数据指示玩家骨架的轮廓。至少部分地基于接收到的数据,捕捉以下各项中的一个或多个玩家的面部外观、玩家的头发外观、玩家的衣服外观;和玩家的肤色。通过将捕捉到的面部外观、头发外观、衣服外观、和/或肤色与预定的化身特征组合来生成类似于玩家的3D化身。
1.一种生成反映玩家的当前外观的化身的方法,所述方法包括:
接收描述所述玩家的当前外观的数据,所述数据包括:所述玩家的可见频谱图、包括所述玩家和当前背景两者的深度图、以及所述玩家的骨架数据,所述骨架数据指示所述玩家的骨架的轮廓;
至少部分地基于接收到的数据,通过以下方式来捕捉所述玩家的面部外观:
标识所述玩家的脸,
标识所述玩家的脸的面部特征,以及
基于标识出的面部特征将接收到的可见频谱图的包括所述玩家的脸的一部分变形成脸部纹理图,其中所述脸部纹理图是接收到的可见频谱图的包括所述玩家的脸的一部分的UV空间图;
至少部分地基于接收到的数据,通过以下方式来捕捉所述玩家的头发外观:
标识所述玩家的头发的范围,
使标识出的所述玩家的头发的范围与预定的发型模板匹配,以及
标识所述玩家的头发的颜色;以及
通过将所述脸部纹理图、匹配标识出的所述玩家的头发的范围的发型模板、及标识出的玩家头发颜色与预定的化身特征组合来生成反映捕捉到的所述玩家的面部外观和头发外观的3D化身,使得所述3D化身类似于所述玩家。
2.如权利要求1所述的方法,其特征在于,标识所述玩家的脸包括:
通过分析接收到的所述玩家的骨架数据来标识所述玩家的头,
标识接收到的可见频谱图中与所述玩家的头相对应的头部分,以及
将脸部检测算法应用于接收到的可见频谱图的所述头部分。
3.如权利要求1所述的方法,其特征在于,标识所述玩家的头发的范围包括:
使用接收到的包括所述玩家和所述当前背景的深度图,通过将所述背景的深度与所述玩家的头发的深度相区分来确定头发外边界,以及
使用接收到的所述玩家的可见频谱图,通过将所述玩家的皮肤与所述玩家的头发相区分来确定头发内边界。
4.如权利要求1所述的方法,其特征在于,还包括至少部分地基于接收到的数据,通过以下方式来捕捉所述玩家的衣服外观:
使用接收到的包括所述玩家和所述当前背景两者的深度图以及接收到的所述玩家的可见频谱图,使用边缘检测来确定衣服外边界,
使用接收到的所述玩家的可见频谱图,通过基于所确定的颜色梯度将衣服与皮肤相区分来确定至少一个衣服内边界,以及
将玩家衣服标识成至少部分地由所述衣服外边界和所述至少一个衣服内边界界定的区域;以及
其中,所生成的3D化身具有类似于标识出的玩家衣服的衣服。
5.如权利要求1所述的方法,其特征在于,还包括至少部分地基于接收到的数据,通过以下方式来捕捉所述玩家的肤色:
对接收到的可见频谱图中处于与所述玩家的脸相对应的区域中的一个或多个区域的颜色进行采样;以及
混合所采样的所述一个或多个区域的颜色,以确定玩家肤色;以及
其中,所生成的3D化身具有反映所确定的玩家肤色的肤色。
6.一种用于提供依赖于查询的音频和视频剪辑预览的系统,所述系统包括:
数据获取组件,所述数据获取组件接收描述玩家的当前外观的数据,所述数据包括:所述玩家的可见频谱图、包括所述玩家和当前背景两者的深度图、以及所述玩家的骨架数据,所述骨架数据指示所述玩家的骨架的轮廓;
脸部捕捉组件,所述脸部捕捉组件至少部分地基于接收到的数据来捕捉所述玩家的面部外观,其中捕捉所述玩家的面部外观包括将接收到的可见频谱图的包括所述玩家的脸的一部分变形成脸部纹理图,其中所述脸部纹理图是接收到的可见频谱图的包括所述玩家的脸的一部分的UV空间图;
头发捕捉组件,所述头发捕捉组件至少部分地基于接收到的数据来捕捉所述玩家的头发外观;
衣服捕捉组件,所述衣服捕捉组件至少部分地基于接收到的数据来捕捉所述玩家的衣服外观;
化身生成组件,所述化身生成组件通过将捕捉到的面部外观、头发外观、及衣服外观与预定的化身特征组合来生成类似于所述玩家的3D化身。
7.如权利要求6所述的系统,其特征在于,还包括:
袖子检测组件,所述袖子检测组件至少部分地基于接收到的数据来标识以下各项中的至少一个:(1)衬衫袖子,(2)裤子或短裤的裤脚,(3)裙子或衣服的摺边;
肤色捕捉组件,所述肤色捕捉组件至少部分地基于接收到的数据来标识所述玩家的肤色;以及
其中,所述化身生成组件将标识出的以下各项中的至少一个组合:(1)衬衫袖子,(2)裤子或短裤的裤脚,和(3)裙子或衣服的摺边以及标识出的肤色,以生成类似于所述玩家的所述3D化身。
8.一种用于生成反映玩家的当前外观的化身的计算机实现的方法,所述方法包括:
接收描述所述玩家的当前外观的数据,所述数据包括:所述玩家的可见频谱图、包括所述玩家和当前背景两者的深度图、以及所述玩家的骨架数据,所述骨架数据指示所述玩家的骨架的轮廓;
至少部分地基于接收到的数据,通过以下方式来捕捉所述玩家的面部外观:
标识所述玩家的脸;
标识所述玩家的脸的面部特征,以及
基于标识出的面部特征将接收到的可见频谱图的包括所述玩家的脸的一部分变形成脸部纹理图,其中所述脸部纹理图是接收到的可见频谱图的包括所述玩家的脸的一部分的UV空间图;
至少部分地基于接收到的数据,通过以下方式来捕捉所述玩家的头发外观:
标识所述玩家的头发的范围,
使标识出的所述玩家的头发的范围与预定的发型模板匹配;以及
标识所述玩家的头发的颜色;
至少部分地基于接收到的数据,通过以下方式来捕捉所述玩家的衣服外观:
使用接收到的包括所述玩家和所述当前背景两者的深度图以及接收到的所述玩家的可见频谱图,使用边缘检测来确定衣服外边界;
使用接收到的所述玩家的可见频谱图,通过基于所确定的颜色梯度将衣服与皮肤相区分来确定至少一个衣服内边界,以及
将玩家衣服标识成至少部分地由所述衣服外边界和所述至少一个衣服内边界界定的区域;
至少部分地基于接收到的数据,通过以下方式来捕捉所述玩家的肤色:
对接收到的可见频谱图的处于与所述玩家的脸相对应的各区域中的一个或多个区域的颜色进行采样;以及
混合所采样的所述一个或多个区域的颜色,以确定玩家肤色;以及
使用计算设备的处理器,通过将所述脸部纹理图、匹配标识出的所述玩家的头发的范围的发型模板、以及标识出的玩家头发颜色与预定的化身特征组合来生成反映捕捉到的所述玩家的面部外观、头发外观、衣服外观和肤色的3D化身,使得所述3D化身类似于所述玩家。
9.如权利要求8所述的方法,其特征在于,捕捉所述玩家的所述衣服外观进一步包括:
使用接收到的骨架数据,标识与所述玩家的手臂和腿相对应的区域,以及沿着标识出的与所述玩家的手臂和腿相对应的区域来分析接收到的所述玩家的可见频谱图的颜色梯度,以检测以下各项中的至少一个:(1)衬衫袖子,(2)裤子或短裤的裤脚,以及(3)裙子或衣服的摺边。
10.如权利要求8所述的方法,其特征在于,标识所述玩家的头发的范围包括:
使用接收到的包括所述玩家和所述当前背景两者的深度图,通过将所述背景的深度与所述玩家的头发的深度相区分来确定头发外边界,
使用接收到的所述玩家的可见频谱图,通过将所述玩家的皮肤与所述玩家的头发以及所述玩家所穿的衣服相区分来确定头发内边界,
使用在捕捉所述玩家的面部外观时标识出的面部特征,确定所述玩家的前额的范围;
以及
其中,使标识出的所述玩家的头发的范围与预定的发型模板匹配包括:
将所述玩家的头发标识为至少部分地由头发外边界和头发内边界界定的区域,标识所述玩家的头发的多个头发属性,所述多个头发属性中的每一个头发属性描述所述玩家的头发的部分或特性,以及
将标识出的多个头发属性与预定的发型模板库进行比较。
生成反映玩家外观的化身\n[0001] 背景\n[0002] 视频游戏在最近几年中发展迅猛。处理能力、图像处理、和图形、以及其他领域中的进步已允许游戏具有日益增加的概念和图形复杂度。常规地,玩家选择默认角色,或选择一组简单的预定义角色中的一个角色。由于视频游戏已进化了,使用玩家化身而非简单角色已变得日益普通。某些游戏允许玩家在一组预定义化身之中进行选择,或定制化身的各个特征。玩家可尝试通过手动定制诸如头发颜色、性别、高度、眼镜之类的特征来创建类似于他自身的化身。这样的手动定制是耗时的,并且仍没有导致实际上类似于该玩家的外观的化身。\n[0003] 概述\n[0004] 本发明的各实施例涉及用于生成反映玩家的当前外观的化身的系统、方法和计算机介质。描述该玩家的当前外观的数据被接收。该数据包括玩家的可见频谱图、包括玩家和当前背景两者的深度图、和玩家的骨架数据。骨架数据指示玩家骨架的轮廓。至少部分地基于接收到的数据,捕捉以下各项中的一个或多个:玩家的面部外观、玩家的头发外观、玩家的衣服外观;以及玩家的肤色。衬衫袖子、裤子或短裤的裤脚、或者裙子或衣服的摺边也可被检测到。类似于玩家的3D化身通过将捕捉到的面部外观、头发外观、衣服外观、肤色、和/或检测到的衬衫袖子、裤子或短裤的裤脚、或者裙子或衣服的摺边与预定的化身特征组合而被生成。\n[0005] 提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的选择的概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。\n[0006] 附图简述\n[0007] 下面参考附图详细描述本发明,其中:\n[0008] 图1是适用于实现本发明的各实施例的示例性计算环境的框图;\n[0009] 图2是根据本发明的各实施例的玩家的头的可见频谱图的透视图;\n[0010] 图3是根据本发明的各实施例的玩家的可见频谱图的透视图;\n[0011] 图4是根据本发明的各实施例的类似于图2和图3中的玩家的3D化身的透视图;\n[0012] 图5是根据本发明的一实施例的用于生成反映玩家的当前外观的化身的示例性方法的流程图;\n[0013] 图6是根据本发明的一实施例的示例性化身生成系统;\n[0014] 图7是根据本发明的一实施例的用于生成反映玩家的当前外观的化身的示例性方法的流程图,其中示出了用于面部外观捕捉、头发外观捕捉、衣服捕捉、和肤色捕捉的子步骤。\n[0015] 图8是根据本发明的各实施例的玩家的可见频谱图的透视图;\n[0016] 图9是根据本发明的各实施例的玩家的头的可见频谱图的透视图;\n[0017] 图10是根据本发明的各实施例的玩家的头的可见频谱图的部分透视图,该频谱图示出了头的面部和其他部分。\n[0018] 图11是根据本发明的各实施例的示有对齐点的图10的图像。\n[0019] 图12是根据本发明的各实施例的具有目的地点的模板纹理图;\n[0020] 图13是由通过使各对齐点与图12中的目的地点匹配来变形图11中的图像而导致的面部纹理图;\n[0021] 图14是反映出图8-11和图13中的图像中的玩家的当前外观的3D化身;\n[0022] 图15是根据本发明的各实施例的玩家的可见频谱图的透视图;以及\n[0023] 图16是其中已标识出简化骨架的图15中示出的玩家的深度图。\n[0024] 详细描述\n[0025] 此处用细节来描述本发明的各实施方式以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人已设想所要求保护的主题还可结合其它当前或未来技术以其它方式来实施,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”或“模块”等可在此处用于指示所采用的方法或系统的不同组件,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。\n[0026] 本发明的各实施例涉及用于生成反映玩家的当前外观的化身的系统、方法和计算机介质。根据本发明的各实施例,化身是从描述玩家的当前外观的数据生成的。基于该数据捕捉玩家外观的各个方面,并将玩家外观的各个方面与预定的化身特征组合,以生成类似于该玩家的3D化身。\n[0027] 如上所述,玩家可尝试通过手动定制某些特征来创建类似于他自身的化身,但得到的化身实际上仍没有反映出该玩家的外观。\n[0028] 然而,各种传感器可用于收集描述玩家的当前外观的数据。这些传感器提供包含描述玩家外观的细节信息的可见频谱图、深度图、和骨架数据以及其他数据,并可用于生成准确地反映该玩家的外观的化身。可见频谱数据、深度数据和骨架数据的组合允许捕捉之前不可能捕捉到的玩家外观的细节方面。此外,获取了传感器数据后,可自动生成类似于玩家的化身,而无需玩家选择各种特征。\n[0029] 在本发明的一个实施例中,接收描述玩家的当前外观的数据。该数据包括:玩家的可见频谱图、包括玩家和当前背景两者的深度图、以及玩家的骨架数据。骨架数据指示玩家的骨架的轮廓。至少部分地基于该接收到的数据来捕捉玩家的面部外观。通过以下方式来捕捉面部外观:标识出玩家的脸;标识出玩家的脸的面部特征;以及,基于标识出的面部特征将接收到的可见频谱图中包括玩家的脸的一部分变形成脸部纹理图。至少部分地基于该接收到的数据来捕捉玩家的头发外观。通过以下方式来捕捉头发外观:标识出玩家头发的范围;使标识出的玩家头发的范围与预定的发型模板匹配;以及,标识出玩家头发的颜色。\n生成反映玩家的捕捉到的面部外观和头发外观的3D化身,使得该3D化身类似于该玩家。通过将脸部纹理图、匹配标识出的玩家头发的范围的发型模板、及标识出的玩家头发颜色与预定的化身特征组合来生成3D化身。\n[0030] 在另一实施例中,数据获取组件接收描述玩家的当前外观的数据。该数据包括:玩家的可见频谱图、包括玩家和当前背景两者的深度图、以及玩家的骨架数据。骨架数据指示玩家骨架的轮廓。脸部捕捉组件至少部分地基于该接收到的数据来捕捉玩家的面部外观。\n头发捕捉组件至少部分地基于该接收到的数据来捕捉玩家的头发外观。衣服捕捉组件至少部分地基于该接收到的数据来捕捉玩家的衣服外观。化身生成组件通过将捕捉到的面部外观、头发外观、及衣服外观与预定的化身特征组合来生成类似于玩家的3D化身。\n[0031] 在又一实施例中,接收描述该玩家的当前外观的数据。该数据包括:玩家的可见频谱图、包括玩家和当前背景两者的深度图、以及玩家的骨架数据。骨架数据指示玩家骨架的轮廓。至少部分地基于该接收到的数据来捕捉玩家的面部外观。通过以下方式来捕捉面部外观:标识玩家的脸;标识玩家的脸的面部特征;以及,基于标识出的面部特征将接收到的可见频谱图中包括玩家的脸的一部分变形成脸部纹理图。至少部分地基于该接收到的数据来捕捉玩家的头发外观。通过以下方式来捕捉头发外观:标识出玩家头发的范围;使标识出的玩家头发的范围与预定的发型模板匹配;以及,标识出玩家头发的颜色。\n[0032] 至少部分地基于该接收到的数据来捕捉玩家的衣服外观。使用接收到的包括玩家和当前背景两者的深度图以及接收到的玩家的可见频谱图,使用边缘检测确定衣服外边界来捕捉衣服外观。也可通过以下方式来捕捉衣服外观:使用接收到的玩家的可见频谱图,通过基于确定的颜色梯度将衣服与皮肤相区分来确定至少一个衣服内边界。还可通过以下方式来捕捉衣服外观:将玩家衣服标识为至少部分地由衣服外边界和至少一个衣服内边界界定的区域。\n[0033] 至少部分地基于该接收到的数据来捕捉玩家的肤色。通过以下方式来捕捉肤色:\n对接收到的可见频谱图的处于与玩家的脸相对应的各区域中的一个或多个区域的颜色进行采样,并混合采样到的一个或多个区域的颜色以确定玩家肤色。计算设备的处理器被用于生成反映所捕捉到的玩家的面部外观、头发外观、衣服外观和肤色的3D化身,使得该3D化身类似于该玩家。通过将脸部纹理图、匹配标识出的玩家头发的范围的发型模板、及标识出的玩家头发颜色与预定的化身特征组合来生成3D化身。\n[0034] 在简要描述了本发明的某些实施方式的概览之后,以下描述其中可实现本发明的各实施方式的示例性操作环境,以便为本发明各方面提供通用上下文。首先具体参考图1,示出了用于实现本发明的各实施方式的示例性操作环境,并将其概括地指定为计算设备\n100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的各实施例的使用范围或功能提出任何限制。也不应该将计算设备100解释为对所示出的任一组件或其组合有任何依赖性或要求。\n[0035] 本发明的各实施例可以在由计算机或诸如个人数据助理或其它手持式设备之类的其它机器执行的计算机代码或机器可使用指令的一般上下文中描述,该机器可使用指令包括诸如程序模块之类的计算机可执行指令。一般而言,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本发明的各实施例可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。\n[0036] 参考图1,计算设备100包括直接或间接耦合以下设备的总线110:存储器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出(I/O)端口118、输入/输出(I/O)组件120、和说明性电源122。总线110表示可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。虽然为了清楚起见利用线条示出了图1的各框,但是实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O组件。而且,处理器具有存储器。可以认识到,这是本领域的特性,并且重申,图1的图示只是例示可结合本发明的一个或多个实施方式来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,它们全部都被认为是在图1的范围之内的并且被称为“计算设备”。\n[0037] 计算设备100通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备100访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或能用于存储所需信息且可以由计算设备100访问的任何其他介质。\n[0038] 通信介质通常将计算机可读指令、数据结构、程序模块或者其它数据包含在已调制数据信号中,如载波。术语“已调制数据信号”指的是传播信号,其一个或多个特性被设置或改变以在该信号中编码信息。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外、无线电、微波、扩展频谱和其它无线介质。以上介质的组合被包括在计算机可读介质的范围内。\n[0039] 存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的、不可移动的、或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O组件120等各种实体读取数据的一个或多个处理器。呈现组件116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。\n[0040] I/O端口118允许计算设备100逻辑上耦合至包括I/O组件120的其他设备,其中某些设备可以是内置的。说明性组件包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、打印机、无线设备等等。\n[0041] 如先前所讨论的,本发明的各实施例涉及用于生成类似于玩家的当前外观的化身的系统、方法以及计算机介质。本发明的各实施例将参考图2-16讨论。\n[0042] 图2-4示出了本发明的一实施例的用于获取描述玩家的数据并生成类似于该玩家的当前外观的化身的实现。图2示出了玩家201的可见频谱图200。图像200包括玩家201的脸\n202、头发204、和衣服206。在一个实施例中,玩家200根据便于捕捉图像201的向导标记208将她自身定位在相机的前面。图3示出了玩家201的另一可见频谱图300。玩家201的基本上整个身体被包括在图像300中。图3还包括便于捕捉图像300的向导标记308。\n[0043] 除了可见频谱图200和300外,传感器还收集玩家201的一个或多个深度图。深度图指示图像中的每一像素的深度,其允许将图像的背景与该图像中的人或对象区分开,并且还允许基于该深度而标识出人的各个身体特征,诸如面部特征。人可被识别为包括图像的前景中具有类似深度的像素,而背景则被确定为具有较大深度的像素。\n[0044] 如本领域所公知的,深度数据还允许创建骨架数据。在一个实施例中,可使用深度信息将图像的表示人的部分与该图像的背景区分开。随后,可将图像的表示人的部分与姿势数据库进行比较以标识与所标识出的人的姿势的匹配。一旦标识出了匹配,就可标识出与该匹配相对应的简化骨架结构。简化骨架结构可指示玩家骨架的轮廓,并可包括表示关节的点以及连接这些点的线,以表示附肢或其他身体特征。还可预想用于从深度数据标识出简化玩家骨架的其他方法。\n[0045] 将可见频谱图200和300以及骨架数据和深度图与预定的化身特征组合以生成图4中示出的类似于玩家201的化身400。在某些实施例中,所生成的化身具有某些预定的比例(诸如高度和宽度)以及某些预定的特征(诸如,手、脚、眼睛、手臂和腿宽或其他特征)。化身\n400反映了玩家201的脸202、头发204和衣服206,从而获得了与手动选择各种特征所能实现的相比,准确地多的表示玩家201的化身。\n[0046] 图5示出了生成反映玩家的当前外观的化身的方法。在步骤502,接收描述玩家的当前外观的数据。该数据包括:玩家的可见频谱图、包括玩家和当前背景两者的深度图、以及玩家的骨架数据。骨架数据指示玩家骨架的轮廓。在步骤504,至少部分地基于该接收到的数据来捕捉玩家的面部外观。同样至少部分地基于该接收到的数据:在步骤506和508中捕捉头发外观和衣服外观;在步骤510中检测袖子、裤腿、或摺边;以及在步骤512,捕捉肤色。在步骤514,通过将捕捉到的面部外观、头发外观、衣服外观、袖子/裤腿/摺边、和肤色与预定的化身特征组合来生成类似于玩家的3D化身。\n[0047] 图6示出了根据本发明的一实施例的系统600。数据获取组件602从传感器604接收描述玩家的当前外观的数据。该数据包括:玩家的可见频谱图、包括玩家和当前背景两者的深度图、以及玩家的骨架数据。骨架数据指示玩家骨架的轮廓。传感器604可包括RGB相机、以及红外或其他深度传感器。在一个实施例中,玩家站在各个偏好位置中的传感器604的路径中,以便于传感器数据的获取。数据获取组件602将接收到的数据提供给脸部捕捉组件\n606、头发捕捉组件608、衣服捕捉组件610、袖子检测组件612和肤色捕捉组件614。组件606、\n608、610、612和614捕捉或检测信息,并将该信息提供给化身生成组件616,化身生成组件\n616使用该信息来生成类似于玩家的3D化身。\n[0048] 在各个实施例中,包括组件606、608、610、612和614的任何组合。脸部捕捉组件606至少部分地基于接收到的数据来捕捉玩家的面部外观。头发捕捉组件608至少部分地基于接收到的数据来捕捉玩家的头发外观。衣服捕捉组件610至少部分地基于接收到的数据来捕捉玩家的衣服外观。袖子检测组件612至少部分地基于接收到的数据来标识以下各项中的至少一个:(1)衬衫袖子,(2)裤子或短裤的裤脚,(3)裙子或衣服的摺边。肤色捕捉组件\n614至少部分地基于接收到的数据来标识玩家的肤色。化身生成组件616通过将捕捉到的面部外观、头发外观、及衣服外观与预定的化身特征组合来生成类似于玩家的3D化身。可预想,组件602、606、608、610、612、614和616的功能可驻留在分开的物理组件或设备上,或者可以被实现在一起。\n[0049] 图7示出了生成反映玩家的当前外观的化身的方法700。方法700的各步骤可以由图6的系统600的各组件来实现。在步骤702,接收描述玩家的当前外观的数据。该数据包括至少一幅玩家的可见频谱图702A、至少一幅包括玩家和当前背景两者的深度图702B、和玩家的骨骼数据702C。骨架数据702C指示玩家的骨架的轮廓,并可从至少一幅深度图702B中导出。\n[0050] 在步骤704,至少部分地基于接收到的数据来捕捉玩家的面部外观。步骤704可以用步骤704A-704C来实现。在子步骤704A,标识出玩家的脸。在子步骤704B,标识出玩家的脸的面部特征。在子步骤704C,基于标识出的面部特征将接收到的可见频谱图的包括玩家的脸的一部分变形成脸部纹理图。脸部纹理图是标识如何将各2D图像点映射成3D模型的UV空间图。\n[0051] 在步骤706,至少部分地基于接收到的数据来捕捉玩家的头发外观。步骤706可以用子步骤706A-704C来实现。在子步骤706A,标识出玩家头发的范围。在子步骤706B,使标识出的玩家头发的范围与预定的发型模板匹配。在子步骤706C,标识出玩家头发的颜色。\n[0052] 在步骤708,至少部分地基于接收到的数据来捕捉玩家的衣服外观。步骤708可以用子步骤708A-708C来实现。在子步骤708A,使用接收到的包括玩家和当前背景两者的深度图以及接收到的玩家的可见频谱图,使用边缘检测来确定衣服外边界。在子步骤708B,使用接收到的玩家的可见频谱图,通过基于所确定的颜色梯度将衣服与皮肤相区分来确定至少一个衣服内边界。在子步骤708C,将玩家衣服标识成至少部分地由衣服外边界和至少一个衣服内边界界定的区域。\n[0053] 在步骤710,捕捉玩家的肤色,该捕捉至少部分地基于接收到的数据。步骤710可以用子步骤710A-710B来实现。在子步骤710A,对接收到的可见频谱图的处于与玩家的脸相对应的各区域中的一个或多个区域的颜色进行采样。在子步骤710B,混合采样到的一个或多个区域的颜色以确定玩家肤色。\n[0054] 在步骤712,通过将脸部纹理图、匹配标识出的玩家头发的范围的发型模板、及标识出的玩家头发颜色与预定的化身特征组合来生成反映捕捉到的玩家的面部外观、头发外观、衣服外观和肤色的3D化身,使得该3D化身类似于玩家。\n[0055] 现将参考图5-7更详细的讨论面部外观捕捉、头发外观捕捉、衣服外观捕捉、及袖子/裤腿/摺边检测。\n[0056] 面部外观捕捉\n[0057] 如上所述,可见频谱图、深度图、骨架数据可被用于捕捉玩家的面部外观。随后,捕捉到的面部外观可被合并到3D化身中。在一个实施例中,可以通过分析接收到的玩家的骨架数据来标识出玩家的头。随后,可标识出接收到的可见频谱图中对应于玩家的头的头部分。因此,可首先用骨架数据标识出玩家的头和脸的大概位置,还可分析可见频谱图中对应于该位置的那部分。在一个实施例中,脸部检测算法可被应用于接收到的可见频谱图的头部分。在一个特定算法中,使用将该脸与已知脸的数据库进行比较的机器学习技术。\n[0058] 可从标识出的脸中标识出各种面部特征。在某些实施例中,确定与标识出的面部特征相对应的脸部对齐点。使标识出的脸部对齐点与模板纹理图上的目的地点匹配。将接收到的可见频谱图的包括玩家的脸的部分变形成脸部纹理图,使得该脸部纹理图包括已映射到模板纹理图的目的地点的、与标识出的玩家的脸的面部特征相对应的脸部对齐点。通过这么做,玩家的脸的图像为了适合于目的地模板而略微失真。本申请中使用的纹理图处于UV空间,并包含允许将它们映射成3D模型的信息。因此,通过标识出面部特征及相应的对齐点,并将这些对齐点映射到模板纹理图的目的地点,现在可以创建玩家的脸的3D模型。\n[0059] 这在图8-13中示出。图8示出了玩家802的可见频谱图800。图9示出了玩家802的第二可见频谱图900。图8和图9中示出的向导标记被示出以促进特征检测—如果玩家802将他的身体定位在系统预期的位置,则特征检测变得更准确。图10示出了玩家802的脸1000。脸\n1000在此与头发以及玩家的衣服的一部分一起被示出。图11示出了与标识出的面部特征相对应的示例性脸部对齐点1102。面部特征可包括眼睛、下巴、耳朵、鼻子、嘴巴、眉毛、颌和其他特征。在一个实施例中,99个脸部对齐点被如下使用:0-7用于左眼、8-15用于右眼、16-25用于左眉、26-35用于右眉、36-47用于鼻子、48-59用于嘴巴外部、60-67用于嘴巴内部、68-\n86用于颌线、87用于左眼中心、88用于右眼中心、89用于鼻子中心、且90-99用于眉毛上部。\n[0060] 图12示出了定义目的地点1202和3D模型之间的关系的模板纹理图1200。UV空间中的纹理图是本领域公知的。脸部对齐点1102用作到目的地点1202的来源点。模板纹理图\n1200可以是艺术家创建的图,以映射到特定的样式化3D头部模型。可以使用各种模板纹理图。在某些实施例中,并非所有对齐点都需要与目的地点对齐。例如,眼睛和嘴巴对齐点可以不被匹配以更好的保留玩家的表情。图13示出了得到的脸部纹理图1300。与图10的图像\n1000相比,脸部纹理图1300略微失真。可以将脸部纹理图1300变形成基于表示玩家802的头的3D头部模型,该3D头部模型被包括为反映玩家802的当前外观的3D化身的一部分。图14示出了类似于玩家802的具有脸和头1402的化身1400。\n[0061] 在某些实施例中,仅接收针对玩家的前面的、描述玩家的当前外观的数据。针对玩家的侧面和背面的数据被推理出。在其他实施例中,接收来自多个角度或多侧的玩家图像,并针对玩家的头和身体的每一侧执行特征识别。\n[0062] 还可以经历各种过滤和处理步骤。在一个实施例中,以下过滤器和值被应用:RGB图像的双向过滤器(核半径为3个像素、边缘阈值(0-225)为20);色噪减少(双向过滤器、HSV色彩空间),核半径为5个像素、边缘阈值(0-255)为42;自动对比度调整(HSV空间),重设中心值(0-1)为0.54,重设标准偏差值(0-1)为0.15,且与原图的混合程度(0-1)为0.5;调整亮度曲线(HSV空间),曲线点1为0.6,1.0,与原图的混合程度(0-1)为0.5。\n[0063] 在某些实施例中,在将脸部纹理图变形成3D头部模型之前,分析各对齐点,并计算出相应面部特征的大小。基于该脸部纹理图以及多个标识出面部特征的计算出的大小,多个预定的头部模型被组合以创建经变形的3D头部模型。\n[0064] 在一个实施例中,这些测量被规范化,以考虑玩家的头在可见频谱图中的实际大小,以说明该图像是靠近的还是遥远的头。随后通过将经规范化的值与平均值和标准偏差值进行比较来确定每一特征的变形配置。这有效地提供了有关特定特征与平均数相比有多大/多小/多宽/多窄等的信息。存在各种艺术家创建的3D头部模型,并且来自各个模型的合适特征根据该变形配置被组合。因此,经规范化的脸部大小被转换成变形配置,并且变形配置指定了如何混合各个头部模型以反映玩家的特征。\n[0065] 在一个特定实施例中,变形配置被如下分类:宽、窄、长、短的颌/下巴;以及窄、宽、短、长的鼻子;宽间隔、窄间隔、位置较高和位置较低的眼睛区。\n[0066] 头发外观捕捉\n[0067] 除了捕捉玩家的脸外,玩家的头发外观也可被捕捉。头发外观包括头发颜色以及大致发型。在一个实施例中,玩家的头发的各个方面(诸如,留海、顶部的量、每一侧的量、下巴上方的量、前额覆盖区等)被分析并组合,以匹配预定义的发型模版。\n[0068] 在一个实施例中,通过确定头发内边界和头发外边界来标识出玩家头发的范围。\n使用接收到的包括玩家和当前背景两者的深度图,头发外边界通过将背景的深度与玩家头发的深度相区分来确定。使用接收到的玩家的可见频谱图,头发内边界通过将玩家的皮肤和/或衣服与玩家的头发相区分来确定。在一个实施例中,头发内边界通过以下方式来确定:将外界的头发与玩家所穿的衣服区分开,并使用在捕捉玩家的面部外观时标识出的面部特征来确定玩家前额的范围。知道玩家前额的位置帮助缩小要分析头发的可见频谱图的位置。\n[0069] 玩家的头发被标识为至少部分地由头发外边界和头发内边界界定的区域。在某些实施例中,玩家头发的多个头发属性被标识出,所述多个头发属性中的每一个描述玩家头发的部分或特性。头发属性包括但不限于留海、顶部的量、每一侧的量、下巴上方的量、前额覆盖区等。随后,可将标识出的多个头发属性与预定发型模板库进行比较以找到最佳匹配。\n在某些实施例中,该库包含10和20个之间的预定发型。在其他实施例中,距玩家的头的距离会影响特定像素被归类为头发与否的可能性——与玩家的头越接近,该像素越可能被认为是头发。头发外观捕捉的细节可以用各种方式来实现。以下呈现头发外观捕捉的各个方面的若干特定示例。使用深度通知背景移除、前额估计和脸部移除来将头发从颜色可见频谱图中分割出来。深度通知背景移除可以通过以下方式来实现:判定背景阈值(例如,为脸部距离+20cm);初始化颜色图到整个背景(具有特殊颜色或阿尔法的标签);当所有深度像素都具有值>背景或值=0(孔深)时,将这些像素标记为背景;将其邻接邻居先前被标记为背景(但没有从新的邻居处延伸)的所有深度像素标记为背景——这使得向内侵蚀(erode)深度边缘;将颜色像素映射成深度像素;将与非背景深度像素相对应的所有源颜色像素复制到目标颜色图中;以及,使用范围受限的泛色填充沿着背景边缘向外回填颜色图——对于与背景像素毗接的任何给定非背景颜色像素,从该边缘向外移动,并将来自源图像的像素复制到目标图像中,直到行进了特定距离或者源图像像素颜色与原始边缘像素颜色偏离过多。\n[0070] 前额估计可以通过以下方式来实现:使用脸部检测边界来对中央脸部颜色参考进行采样,并播种(seed)以该颜色为平均值的颜色;跨正好在双眉上方开始的前额区域的宽度进行采样并向上走查前额,以保持该颜色的移动平均值;当一行采样颜色与该平均值明显不同时,重置移动平均值,并记录过渡点;以及,当仅背景像素被采样时停止向上走查,并记录过渡点。所记录的第一个过渡点可能是发际线级,而最后一个过渡点是头发的顶部。眉毛级是前额的底部。\n[0071] 脸部移除可以通过以下方式来实现:计算脸部检测特征点中给出下部的脸而非前额的较好轮廓的2D凸包;使下颌轮廓点的一些反映在经过双眼的线上,并通过使用前额发际线估计以避免将所反映的点放置在发际线上来将那些点添加在凸包上;将凸包内的所有颜色像素标记为背景;以及,将在嘴和双眼之间(耳朵除外)的垂直区域内的所有颜色像素标记为背景。\n[0072] 在另一实施例中,通过以下方式来对头发颜色进行采样:使采样受限于围绕脸部的矩形,该矩形高到足以容纳高耸式头发,低到足以容纳披肩长发;对未被标记为背景的所有颜色像素进行采样以得到总平均值;以及,再次对所有非背景颜色像素进行采样,以将自定义尺度的HCV颜色空间中与平均色明显不同的任何像素排除。如果发型估计完成了,则可相对于从顶部收集的颜色,加强从玩家头部的各侧收集的颜色,因为这些侧趋于更少受到照明条件的影响。\n[0073] 在一个实施例中,发型是通过将头发采样区域划分成以下五个区域来估计:顶部中央、左上/右上和左下和右下。顶部和左上/右上之间的水平界限在双眉的边缘处,而上方和下方之间的界限为脸部的中间(其应该由于移除了双耳而成为空白)。头发颜色分类用于对每一区域中的头发像素数进行采样,并且前额估计用于测量前额高度和发顶高度。现在以获得以下五个值:前额高度、发顶高度、发顶区域、上侧区域、下侧区域。发顶高度值和发顶区域值可被混合成单个值,从而得到四个值。基于脸部检测将这些值规范化成以像素为单位的估计脸部尺寸。随后,可将每一值分类到诸如“没有”、“一些”和“许多”之类的箱中,其中各阈值是通过人类或机器学习而根据经验获得的。相对于资产矩阵来匹配经装箱的值,以选择视觉发型,以显示为特定玩家的反馈。\n[0074] 可以使用色调色度值(HCV)颜色空间来进行感性的颜色差异比较。该颜色空间是锥体的,其中黑色为底部的单个点,白色为顶部的单个点,并且饱和的颜色在顶部形成该锥体的最宽部分。HSV使几乎为黑的色彩跨圆柱体的底部宽范围延伸,这在图像噪音可以引发色调和饱和度中的较宽波动时引起问题。两个值之间的距离是通过使用HC平面上的极坐标距离,并添加针对V的欧几里得距离来测量。该锥体的半径和高度可以被缩放以强调颜色的不同特征。颜色空间距离阈值是要操控的另一变量,但这三个变量中的一个变量可被固定。\n一不同的缩放方法将该锥体的顶部保持在为1的固定半径,而非通过使色度和饱和度混合来将该锥体的底部点向外拉伸成具有距离阈值/2的半径的圆盘。该方法确保了所有暗色处于彼此的阈值距离内,而不会影响在处于伪锥体顶部的饱和色。在一个实施例中,头发的特定调整值包括:距离阈值=0.1;H’=H;C’=lerp(S,C,距离阈值/2)[阈值=0产生纯HCV);并且V’=V*0.5\n[0075] 衣服外观捕捉\n[0076] 衣服外观也可以从描述玩家的当前外观的所接收到的数据中捕捉。所生成的3D化身随后可包括类似于玩家正穿着的衣服的衣服。\n[0077] 在一个实施例中,衣服外观可通过以下方式来捕捉:使用玩家的包括玩家和当前背景两者的接收到的深度图以及接收到的可见频谱图,使用边缘检测来确定衣服外边界;\n使用玩家的接收到的可见频谱图,通过基于颜色分析将衣服与皮肤相区分来确定至少一个衣服内边界;以及,将玩家衣服标识为至少部分地由衣服外边界和至少一个衣服内边界界定的区域。在另一实施例中,边缘检测将接收到的深度图中的背景的深度与玩家的深度区分开,并将接收到的可见频谱图中的衣服的颜色和背景的颜色区分开。\n[0078] 在某些实施例中,使用接收到的骨架数据来标识出玩家的身体特征。通过分析与通常穿有衣服、标识出的玩家的身体特征相对应的接收到的可见频谱图的区域和接收到的深度图中的区域来确定衣服外边界和至少一个衣服内边界。例如,可以从骨架数据中标识出手腕、肘、肩、膝、髋等,从而向系统提供用于识别衣服的缩小的分析区域。\n[0079] 在其他实施例中,捕捉玩家的衣服外观还包括:将玩家的骨架数据重新缩放成预定骨架大小,以形成经缩放的玩家骨架;将经缩放的玩家骨架重置为预定姿势;以及,基于经重置、经缩放的骨架和所标识出的玩家服装来创建衣服纹理图。从该衣服纹理图生成的\n3D身体模型随后在生成3D化身时被使用。\n[0080] 在某些实施例中,标识并捕捉特定衣服制品。在其他实施例中,执行全身衣服捕捉。在又一些实施例中,当衣服外观捕捉对于最小阈值无法检测到特定衣服时,则默认使用短袖衬衫和裤子或短裤。类似地,如果在玩家的躯干上没有检测到任何衣服,则短袖衬衫可被包括在化身中。\n[0081] 在一个实施例中,执行对在所跟踪的骨架上的所提供的捕捉到的深度图位置的蒙皮。随后,生成网格。随后通过检测皮肤像素并在可能不与皮肤配准但附属于皮肤像素的那些区域中进行智能填充来执行皮肤移除。使用Canny边缘检测并通过检测可见频谱图中与被标识为玩家的区域的边缘接近的边缘来侵蚀玩家蒙板来移除背景。随后执行骨骼缩放计算,以尝试在长度范围和宽度范围上拉伸该骨骼,以填充该蒙板。骨架数据用于将该骨架重置在所提供的2D骨架位置中。随后,使用新近重新定向的网格将可见频谱图应用于蒙板。每像素拉伸和/或简单的RGB泛色填充被用于填充蒙板的剩余白色空间。\n[0082] 袖子/裤腿/摺边检测\n[0083] 对衬衫袖子、裤子或短裤的裤腿、或裙子或衣服的摺边的检测可被认为是分开的功能,或被认为是衣服外观捕捉的一部分。在一个实施例中,使用接收到的骨架数据来标识出与玩家的手臂和腿相对应的区域。随后,沿着标识出的与玩家的手臂和腿相对应的区域来分析接收到的玩家的可见频谱图的颜色,以检测以下各项中的至少一个(:1)衬衫袖子,(2)裤子或短裤的裤脚,(3)裙子或衣服的摺边。该分析可以是例如颜色分类或梯度分析。在一个实施例中,骨架数据可用于标识沿着其来分析可见频谱图的颜色的路径。例如,由于骨架的手臂部分是已知的,因此可分析从肩部向下移动手臂的各像素的颜色,以查看袖子出现在何处。\n[0084] 在另一实施例中,裙子或衣服的摺边可被检测。使用接收到的骨架数据,与玩家的双腿相对应的区域被标识出。使用接收到的包括玩家和当前背景两者的深度图,在标识出的与玩家的双腿相对应的区域之间的区域被分析,以通过将背景深度与玩家深度区分开并标识出将背景深度与玩家深度隔开的基本上水平的边缘来检测裙子或衣服边缘。\n[0085] 已在以上公开的各个点处讨论了骨架数据。图15示出了玩家1502的可见频谱图\n1500,且图16示出了玩家1502的相应深度图1600。测量从传感器到被感测对象并返回的飞行时间的红外传感器可产生的深度图1600示出处于第一深度的背景部分1604和处于更接近于前面的第二深度的玩家部分1602。可基于玩家部分1602的姿势来确定简化骨架1606。\n在一个实施例中,将玩家部分1602与数据库中的各个玩家姿势进行比较,并在标识出匹配后,确定骨架1606是数据库中的匹配姿势的骨架。\n[0086] 参考各具体实施例描述了本发明,各具体实施例在所有方面都旨在是说明性的而非限制性的。不偏离本发明范围的情况下,各替换实施例对于本发明所属领域的技术人员将变得显而易见。\n[0087] 从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的和目标,并且具有对于该系统和方法是显而易见且固有的其他优点。可以理解,某些特征和子组合是有用的,并且可以在不参考其他特征和子组合的情况下使用。这由权利要求所构想的,并在权利要求的范围内。
法律信息
- 2016-10-26
- 2015-08-12
专利申请权的转移
登记生效日: 2015.07.24
申请人由微软公司变更为微软技术许可有限责任公司
地址由美国华盛顿州变更为美国华盛顿州
- 2014-03-19
实质审查的生效
IPC(主分类): G06T 13/40
专利申请号: 201280027693.2
申请日: 2012.06.04
- 2014-02-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |