对象数字化的制作方法

文档序号:7990427阅读:271来源:国知局
对象数字化的制作方法
【专利摘要】在此描述了对图片中的对象进行数字化。用户将对象呈现给相机,相机捕捉该对象的前面和背面的包括颜色和深度数据的图像。对于前面和背面图像这两者,通过分析深度数据来确定最接近相机的点。从这些最接近的点中,可以通过标注深度数据中的大的差异来找到该对象的边缘。深度数据也被用于构建该对象的前面和背面的点云构造。将各种技术应用于推断边缘、移除接缝、智能扩展颜色、过滤噪声、将骨架结构应用于该对象以及进一步优化数字化。最后,将数字表示呈现给用户并在不同的应用(例如游戏、Web等)中潜在使用。
【专利说明】对象数字化
[0001]背景
[0002]现代游戏和因特网技术与过去的那些技术相比以更加个人的方式来与用户交互。现今的游戏系统可读取站立在相机前面的玩家的移动或玩家通过无线控制器采取的行动(例如如同棒球棒那样挥动控制器)以取代在连接到游戏控制台的控制器上简单地敲击按键。这种个人交互开拓出一个完全崭新的游戏领域。
[0003]概述
[0004]提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征。本概述也不是意在帮助确定所要求的主题的范围。
[0005]一个方面旨在创建图像中对象的数字表示(“数字化”)。用户将对象呈现给相机,相机捕捉该对象的前面和背面的包括颜色和深度数据的图像。对于前面和背面图像这两者,通过分析深度数据来确定最接近相机的点。从这些最接近的点中,可以通过标注深度数据中的大的差异来找到该对象的边缘。深度数据也被用于构建该对象的前面和背面的点云构造。将各种技术应用于推断边缘、移除接缝、智能扩展颜色、过滤噪声、将骨架结构应用于该对象以及进一步优化数字化。最后,将数字表示呈现给用户并在不同的应用(例如游戏、Web等)中潜在使用。
【专利附图】

【附图说明】
[0006]下面将参考附图详细描述本发明的说明性实施例,在附图中:
[0007]图1描绘了适用于实现在此讨论的各实施例的示例性计算环境的框图。
[0008]图2是根据一个实施例的呈现用于数字化的对象的用户的图示。
[0009]图3是根据一个实施例的用于将对象进行数字化的工作流程的图示。
[0010]图4A和4B是根据一个实施例的呈现用于数字化的对象的用户的相机观看视角的图示。
[0011]图5是根据一个实施例的可用于对对象进行数字化的分割深度图像的图示。
[0012]图6是根据一个实施例的深度对颜色的偏移的图示。
[0013]图7是根据一个实施例的可用于对对象进行数字化的源色彩图像的图示。
[0014]图8是根据一个实施例的所捕捉的对象的色彩分割的图示。
[0015]图9和10是根据一个实施例的用于保持要被数字化的对象的用户界面(UI)指导的图示。
[0016]图11是根据一个实施例的对象的三维(3D)点云构造的图示。
[0017]图12是根据一个实施例的对齐的点片(point sheets)的两个视图的图示。
[0018]图13是根据一个实施例的最终的点云构造的图示。
[0019]图14是根据一个实施例的显示经数字化的对象的确认图像的n的图示,所述经数字化的对象被显示给用户。
[0020]图15是根据一个实施例的所捕捉的对象的网格输出的图示。[0021]图16是根据一个实施例的经平滑和处理的对象的图像的图示。
[0022]图17是根据一个实施例的具有UV坐标的图像的图示。
[0023]图18是根据一个实施例的将面朝前的三角边缘绘制到最终的纹理图的截面的图
/Jn o
[0024]图19A-19E是根据一个实施例的示出要添加到所生成的骨架结构的不同骨头处的加权的图示。
[0025]图20A和20B是根据一个实施例的示出在亮度/色度处理之前和之后的图示。
[0026]图21A和21B是根据一个实施例的示出在对边缘进行滤波之后的源和输出图像的图示。
[0027]图22A和22B是根据一个实施例的示出在其中所述边缘修复滤波器查找到背景颜色和目标对象颜色的图像的图示。
[0028]图23A和23B是根据一个实施例的示出从边缘到争议区域的距离以及所计算的背景似然值的图像的图示。
[0029]图24是根据一个实施例的最终的合成纹理图的图示。
[0030]图25A和25B是根据一个实施例的屏蔽值和重度模糊化的顶点色彩的图示。
[0031]图26A和26B是根据一个实施例的仅具有纹理和具有混合了屏蔽值的顶点色彩的纹理的不同的网格的图示。
[0032]图27是根据一个实施例的经数字化的对象的最终呈现的图示。
[0033]图28是根据一个实施例的用于详细描述将对象进行数字化的工作流程的流程图。
[0034]图29是根据一个实施例的用于详细描述将对象数字化的工作流程的流程图。
[0035]详细描述
[0036]本文中用细节来描述本发明各实施例的主题以满足法定要求。然而,该描述本身并非旨在必定限制权利要求的范围。相反,所要求保护的主题可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。术语不应被解释为暗示本文所公开的各步骤之中或之间的任何特定次序,除非且除了在明确描述个别步骤的次序的时候。
[0037]在此所述的实施例通常涉及由相机捕捉的对象的数字表示。在一个实施例中,在相机前面用户持有对象,相机捕捉对象的图像,并且一个设备将所捕捉的对象数字化成3D呈现,所述3D呈现可以被数字化地显示一例如,作为视频游戏中的实体显示。
[0038]为了说明,考虑以下示例。用户向装备有相机的游戏设备举起玩具章鱼。使用相机,游戏设备拍摄了所述对象的前面和背面的图片,捕捉每个面的色彩和深度数据。根据深度数据,构建章鱼的3D呈现,并且,随后将色彩数据加入到3D呈现中以创建章鱼的数字化呈现(在此称为“数字化”)。随后可以将所述数字化用于在其中所述章鱼的显示是有用的游戏或任意其它软件或Web应用中。
[0039]至少一个实施例针对将对象进行数字化。用户将对象呈现给计算设备(例如游戏控制台)上的相机。设备可以指令用户定位要显示的对象以一例如通过在屏幕上放置反映由相机所看见的图像的轮廓并指示用户应该将所述对象移动到轮廓中,来优化所捕捉的图像。最终,设备捕捉对象的一个或多个图像。随后,可以指令用户将对象的背侧呈现给相机以进行捕捉。随后,设备捕捉对象的背侧的一个或多个图像。处理所捕捉的前面和背面图像以构建对象的3D数字化。
[0040]在一个实施例中,处理使用由相机捕捉的图像的深度数据。深度数据以每个像素或其它空间表示形式描述了在图像中所捕捉的事物的接近度。使用所述深度数据,可以定位图像中的对象的最接近点。这个实施例假设图像的最接近的对象是用户正期望捕捉的对象一例如,朝相机紧握章鱼的用户很可能意味着这个章鱼相对于相机而言是最接近的事物。
[0041]在已经简要描述了本发明的概述后,现在描述可以在其中实现本发明的各个方面的示例性操作环境。概括地参考附图,并首先具体参考图1,示出了用于实现本发明的各实施例的示例性操作环境,并将其概括地指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应该将计算设备100解释为对所示出的任一组件或其组合有任何依赖性或要求。
[0042]本发明的各实施例可以在由计算机或诸如个人数据助理或其它手持式设备之类的其它机器执行的计算机代码或机器可使用指令(包括诸如程序模块之类的计算机可执行指令)的一般上下文中描述。一般而言,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本发明的实施例可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、更专用计算设备等等。本发明的各实施例也可以在任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。
[0043]继续参考图1,计算设备100包括直接或间接耦合以下设备的总线101:存储器102、一个或多个处理器103、一个或多个呈现组件104、输入/输出(I/O)端口 105、I/O组件106、和说明性电源107。总线101表示可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。虽然为了清楚起见利用线条示出了图1的各框,但是实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O组件。另外,许多处理器具有存储器。发明人关于此点认识到这是本领域的特性,并重申,图1的图示只是可以结合本发明的一个或多个实施例来使用的示例性计算设备的例示。诸如“工作站”、“服务器”、“膝上型计算机”、“游戏控制台”、“手持式设备”等分类之间没有区别,它们全部都被认为是在图1的范围之内的并且被称为“计算设备”。
[0044]计算设备100通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备100访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它全息存储器、磁带盒、磁带、磁盘存储或其它磁性存储设备或可用于编码所需信息且可以由计算设备100访问的任何其它介质。
[0045]存储器102包括易失性和/或非易失性存储器形式的计算机存储介质。存储器102可以是可移动的、不可移动的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器102或I/O组件106等各种实体读取数据的一个或多个处理器。呈现组件104向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。
[0046]I/O组件106可以包括能够拍摄静态图片或视频的相机。在一个实施例中,当拍摄图片时,所述相机捕捉色彩数据(例如红、绿、蓝)和深度数据。深度数据(在一个实施例中在每个像素的基础上)指示由相机所捕捉的对象与相机本身的接近度。可以以许多方式来捕捉深度数据,像使用红外(IR)相机来读取发射出的红外线,读取发射出的激光等等。深度数据可以以每厘米、每米或其它空间表示的形式被存储。例如,IR点可被发射出并由IR相机读取,生成详细描述在相机前面的区域中以每米定位方式所测量的图像的深度的输出文件。另外,深度数据还可以通过对在其中测量深度的屏幕区域的像素进行记录来指示所捕捉的对象的特定部位的朝向。因为彩色相机和深度相机可以位于彼此分开的位置,可以做出变换以将所检索的色彩数据映射到对应的深度数据。
[0047]I/O端口 118允许计算设备100逻辑上耦合至包括I/O组件120的其它设备,其中某些可以是内置的。说明性I/O组件120包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、打印机、无线设备等等。
[0048]如在前所述,一些实施例针对创建虚拟环境中的对象的数字呈现。图2是根据一个实施例的用于用户204的创建对象206的数字表示的环境200的图示。应当理解,此处所描述的这一和其他安排仅作为示例来阐明。附加于或替代于所示的安排和元素,可使用其他安排和元素(例如机器、接口、功能、次序、以及功能聚集等),并且可完全省略某些元素。此外,本文所描述的许多元素是可以实现为分立或分布式组件或结合其他组件的、以及以任何合适的组合和在任何合适的位置的功能实体。此处被描述为由一个或多个实体执行的各种功能可由硬件、固件和/或软件来执行。例如,各种功能可由执行存储在存储器中的指令的处理器来执行。
[0049]关注图2,环境200示出将对象206 (如所示为章鱼塑像)呈现给计算设备202的用户204,该计算设备装备有两个相机:彩色相机208和深度相机210。在环境200中,计算设备202是游戏控制台,例如由微软公司创造的微软Kinect?。计算设备202上的相机捕捉包括对象206的一个或多个图像。彩色相机208捕捉图像的色彩数据,而深度相机210捕捉深度数据。在替换实施例中,计算设备202可以仅具有一个相机,该相机同时捕捉色彩和深度数据。
[0050]虽然被示为是单独的设备,计算设备202也可以被集成到或通信连接到其它的计算设备(例如游戏控制台、服务器等)。计算系统200的组件可以经由网络彼此通信,网络包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。应该理解一些实施例可以包括附加的计算设备202。其每个都可以包括单个设备/接口或在分布式环境中协作的多个设备/接口。
[0051]在某些实施例中,所示的一个或多个数字化技术可以由独立的应用来实现。或者,可以由跨诸如因特网的网络的不同的计算设备或由游戏系统内部的模块来实现一个或多个数字化技术。本领域的普通技术人员可以理解,图2所示的组件/模块本质和数量上是示例性的,并且不应被解释为限制。可采用任何数量的组件/模块来实现此处的实施例的范围内的所需功能。此外,组件/模块可位于任何数量的服务器或客户计算设备上。[0052]虽然用户204在图2中被示为将对象206的前侧呈现给计算设备202,但用户204可以将对象206的背侧呈现给计算设备202,以便捕捉对象206的背侧图像。随后,可以将背侧图像与对象206的前侧图像结合起来以生成对象206的3D呈现。每个所捕捉的图像可以包括色彩和深度数据,这两者都允许计算设备202精确创建对象206的3D呈现。
[0053]在不同的实施例中还可以使用附加的对象106的图像视图以帮助数字化。可以从任意不同的角度来拍摄和录制对象106。例如,除了前面和背面视图之外或替代前面和背面视图,可以从图像106的右边、左边、底部、顶部来拍摄几张图像,以便生成更加稳健的3D数字化。例如,可以在将对象106的特定侧面进行数字化时使用几张侧面视图。至少在实施例中,使用的对象106的视图越多,3D呈现就越完整或精确。
[0054]图3是根据一个实施例的用于将对象进行数字化的工作流程300的图示。最初,用户将对象呈现给计算设备上的相机以拍摄图像,如在302所示。在一些实施例中,计算设备可以指令用户移动对象到特定区域以便捕捉图像的优化图像一例如要求在显示屏上提供轮廓、示出用户和对象的实时图像,并随后指令用户将对象移动到轮廓中。一旦拍摄了初始图像,计算设备可以指令该用户呈现对象的背侧以进行捕捉,如在304所示。同样可以由计算设备提供捕捉背侧的指导。对于每个捕捉的图像,存储色彩和深度数据并将其用于将正被呈现的对象进行数字化。而且,可以从对象的前侧和背侧视角捕捉多张图像。例如,计算设备可以被配置为捕捉10张前面图像和10张背面图像,并且可能将所述10张前面图像和10张背面图像合并在一起一或使用所有20张图像来对图像进行数字化。虽然10张图像已经被示出为是将一个对象进行数字化的理想图像数量,但其它实施例可以使用不同数量的已捕捉图像。
[0055]一旦由相机捕捉了对象的前面图像和背面图像,一个实施例开始通过一使用图像的深度数据一搜索图像中最接近相机的点来将对象数字化,如在306中所示。用户可能将要数字化的对象保持在用户的前面,这样,该对象应该比任何其它事物更接近相机。转回到图2 —会,可以注意到用户204将对象206保持在他的前面,这样它更靠近计算设备202。可以使用与该图像相关联的深度数据来实现定位图像中的最接近对象,并且一些实施例在前侧和背侧图像两者上都执行该过程以标识这两者中的最接近对象。
[0056]如在308处所示,随后搜索图像中所标识的最接近对象以查找边缘以标识何处该对象结束。再次使用深度数据以定位图像中的对象的边缘。边缘搜索可以从最接近的点向外开始,查找在点的深度之间的剧烈差异。例如,图2中的章鱼的边缘可以具有比表示用户204的肩膀的邻近点更近差不多半米的一个点。这种剧烈差异表示了一个所述邻近点并不是对象的一部分且不应该被包括在进一步的数字化步骤中的可读信号。通过这种方式定位对象的所有边缘允许了计算设备标识出图像中的该对象。
[0057]—旦确定了对象,一个实施例关闭与图像的剩余部分(即图像的没有被标识为对象的部分)相关联的色彩数据。在一些实施例中,可能必需捕捉多个图像(例如对象的10个前面和10个背面的图像),因此,需要一种平滑技术以混合帧之间的所找到的边缘,如在310所示。例如,对象在帧I和帧4之间可能已经移动,因而平滑帧之间的边缘是取得对象的精确表示所必需的。另外,在深度到色彩记录(registration)中的噪声、低分辨率和瑕疵也可能需要附加的边缘平滑和/或滤波。
[0058]在一个实施例中,所得的经平滑和/或经滤波的对象被呈现给用户用于确认,如在312所示。随后,用户可以接受或拒绝所得的对象。如果接受,随后附加处理行进到将对象进行数字化。如果拒绝,实施例可以要求用户通过拍摄对象的新图片来开始处理或仅仅重新平滑或重新滤波所述对象。
[0059]最终,前面和背面的图像被用于在生成在3D中的对象的点云构造。如在图11中详细描述的“点云构造”是通过被标识的对象的每个点或像素的深度将对象的前面和/或背面的图像映射到3D空间。点云构造可以被用在对象的进一步的数字化中。但是,替换的实施例可以使用深度和色彩数据的其它表示或空间聚合来从不同的图像中创建对象的构造或其它类型的表示。
[0060]图4-26示出了在数字化处理中的各种步骤的图像,并且将在下面进一步详细讨论以说明由不同的实施例使用的处理。特别地,图4A和4B是根据一个实施例的呈现用于数字化的对象的用户的相机观看视角的图示。在所示的实施例中,捕捉对象的两个视图。彩色相机在框的中央缩放以在目标对象周围获得640x480彩色的窗口,并且随后将彩色窗口的四角变换成深度帧坐标(假设所述角位于目标对象的前面)。随后从深度帧中抓取一个匹配的160x120的窗口。在没有这种每帧窗口调整(取决于目标对象到相机的距离)的情况下,深度和彩色窗口不会充分重叠。而且,可以在不执行深度到色彩或色彩到深度的记录的情况下捕捉原始色彩和深度。所述分辨率数目和窗口仅供说明的目的,因为可以替换地使用各种其它的分辨率。
[0061]在一个实施例中,深度图像对目标对象进行分割。为了这么做,搜索并找到到相机的最接近的深度像素,假设这样的一个点在目标对象上。随后,该实施例从所找到的最接近的点开始向外泛色填充,直到碰到深度边缘(即深度离开对象的前面太远或我们不具有深度数据)。另外,可以移除在陡坡区域周围的且具有太少的邻居的点。所述结果是在目标对象上的深度像素(在此称为“被分割的深度像素”)的屏蔽,如图5所示。被分割的深度图像被存储在深度图像的环形缓冲区(装有大小为10的环形缓冲区的BAB/G0E),覆盖最旧的深度帧并将所有帧一起取平均以获得最终的深度图像。在一个实施例中,仅有已分割的深度像素对最终平均做出贡献。结果,平滑了噪声,导致更加稳定的对象边缘,并改善了在其中由于噪声或弱IR反射材料引起对象的部分的分割闪烁的情形。
[0062]图6是根据一个实施例的深度对颜色的偏移的图示。如所示,一个实施例建立了一个深度对颜色偏移表,具有绿色(在右上角中示出)、红色(在左下角中示出)以及在这之间的两种颜色的混合。每个像素的深度和色彩空间坐标之间的偏移被存储在用于在色彩分割和网格处理期间的快速查找的表中,并且有助于仅使用这两种已捕捉的色彩图像完美地再现输出网格,而不考虑特定相机的校准设置。通过在分割的边缘处向外复制偏移可以填充在对象分割外面的表的区域。在边缘处复制的偏移可以随后用于处理当在输出的网格中投射到深度图像中的顶点落在深度分割的边界之外时的情况。
[0063]图7是源色彩图像的图示,而图8是根据一个实施例的所捕捉的对象的色彩分割的图示。从在深度空间中分割开始,一个实施例使用类似星形的纵板图案(star-likesplat pattern)将每个分割的深度像素放入320x240色彩分割缓冲区。随后可以对所得的图案“上采样”到640x480,并且,随后为每个分割的色彩像素计算一个“离理想的距离”值,该值描述了源深度像素离开“理想”距离有多远。理想距离表示在不与深度相机的前面剪切平面相交的情况下,用户应该持有目标对象离相机有多近,以便获得尽可能多的色彩/深度数据。这些值可以被作为给用户的反馈在捕捉过程期间呈现。距离理想更远的像素可以被模糊化,并且与离理想更近的像素相比更加重地着色。离理想的距离的值最终被复制到色彩图像的alpha通道中用于实时预览。
[0064]图9和10是根据一个实施例的用于保持要被数字化的对象的用户界面(UI)指导的图示。图9示出了所示的实施例分析所分割的像素的数目、到相机的距离、离开相机视图的中心的距离、像素稳定性以及对象大小,并给出如何最佳安置对象的用户可视的和文本反馈。所述反馈可以是以在屏幕上的轮廓的形式。图10示出使用如上所述相同的过程的目标对象的背面图像的色彩和深度数据。一个实施例使用所分割的前面捕捉的轮廓来指导用户正确确定对象的方位。所述用户不需要精确匹配轮廓,因为随后可以自动对齐前面和背面的捕捉。
[0065]图11示出根据一个实施例的点云构造。此时,两个色彩和深度数据图像已经针对目标对象进行分割。使用这些图像,可以构建在目标对象的表面上的点的点云构造,并且随后用于重新构建三角网格。在前面深度图像中的所分割的像素可以变换成3D点的“薄片(sheet)”。在一个实施例中,位置没有从深度图像空间投射到模型空间,并且原点在薄片的背面中心。通过加入附加的点以形成对象的侧面,薄片的边缘被向后挤压(extrude)。为了猜测对象有多“深”,在BAB/G0E中,可以使用固定的挤压距离值。
[0066]类似地,使用前面捕捉的背面中心作为原点来从背面深度图像中创建3D点的薄片。图12是根据一个实施例的对齐的点薄片的两个视图的图示。为了对齐薄片,计算初始变换以围绕上轴旋转该薄片180度,以便其形成点云的背面。在一个实施例中,计算另一个变换,其中将前面和背面薄片的边缘尽可能靠近对齐。对齐处理可以将背面薄片转变为背面薄片的质心与前面薄片的质心匹配。随后在转变和旋转范围上使用强力迭代以最小化“对齐错误”值,该值是作为从每个前面边缘点到其最接近的背面边缘点的距离的总和来计算的。可以以多次通过的方式来完成迭代(每个通过试图一次一个地计算每个转变和旋转轴的最佳值),并且为了效率使用两层层次结构方案来完成跨每个轴的搜索。使用3D单元格空间分隔来加速最接近的点的查找。一个实施例也实现了一种用于快速细粒度对齐的迭代最接近点(“ICP”)算法,或者替换地,对于更好控制的需求可以指示仅使用强力方法迭代。
[0067]来自前面薄片的在背面薄片中不具有对应点的点可以被挑选出以从每个前面的点向后搜索以查找最接近的背面的点。类似地,可以挑选出来自背面薄片的在前面薄片中不具有对应点的点。这移除了薄片的在前面和背面捕捉中不一致的点,这种情况在如果用户的手在所述捕捉中但在捕捉之间改变了位置时,或者在如果对象在前面和背面捕捉之间改变了形状时会出现。
[0068]在一个实施例中,将剩余的点一起合成为最终的点云,并且使用由每个点和其右下的邻居形成的平面来计算这些点的法线(normal)。图13示出根据一个实施例的最终的点云构造。
[0069]随后,将确认图像呈现给用户,如图14所示。确认图像合并了薄片对齐和点挑选的结果,允许用户检测捕捉、对齐或挑选严重失败的情况,并且在不必须经历构造过程的剩余部分的情况下重新捕捉。通过将最终的点云中的点投射并放入前面和背面色彩图像的alpha通道、基于对齐变换来旋转背面图像以及做出某些附加的图像清除,来创建所述图像。
[0070]表面重新构造步骤采用最终的点云并生成三角网格。图15示出通过表面重新构造的网格输出的图示。一个实施例使用了由在MSR-北京的通信小组中的Minmin Gong所开发的泊松(Poisson)表面重构算法的混合CPU/GPU实现,所述实现在由KazhdaruBolitho和Hoppe的“泊松表面重构”以及Zhou、Gong、Huang和Guo的“高度并行表面重构”中有详细描述。这可能是数字化中在存储器和时间这两方面中最计算上密集的部分,在某些实施例中,对于大约20,000个点的典型点云数据来说花费10-20秒。在重构期间可以限制洞填充的数量以保持存储器的使用率受到控制,但是,如果在点云中存在大量的洞,这样的限制可以导致非水密的网格。
[0071]图16是根据一个实施例的经平滑和处理的对象的图像的图示。构建顶点邻接列表,并且计算面和顶点法线。随后,一个实施例使用拉普拉斯算子算法来平滑某些约束。结果,对象的所述侧面变得完美,噪声被移除,并且在其中点的薄片没有完美排列起来的区域
被清理。
[0072]依据点云的质量,表面重构可以创建小的几何“岛”以取代单个大的网格。一个实施例使用所连接的组件的标记来查找岛、计算它们的体积、并移除那些明显小于最大的岛的岛。
[0073]对于每个顶点,一个实施例查找在该顶点的法线和前面及背面捕捉视图方向之间的点积。前面视图方向可以沿模型空间的负Z轴,而背面视图方向可以取决于薄片对齐处理的结果而不是沿正Z轴。结果,一些顶点对于前面和背面捕捉视图两者都是可见的,而一些顶点可以对于这两个视图都不可见。如果一些顶点的法线面向前面超过背面,则它们可以被分类为“前面”,反之亦然。这也允许定位“接合”顶点(即横跨对象的前面和背面视图的顶点)。
[0074]为了创建纹理图并应用到最终的网格,一个实施例将来自所述前面捕捉的色彩图像放置在纹理的顶部,而将来自所述背面捕捉的色彩图像直接放置在前面捕捉之下。随后,将来自纹理的顶部部分的纹理像素(Texel)映射到主面向前面的三角形,并且对于主面向背面的三角形来说反之亦然。可以在正好沿前面-背面接缝的前面和背面三角形之间初始地共享顶点,并且随后,复制这些被共享的顶点以便将纹理的不同部分映射到前面对背面的三角形。
[0075]图17示出了具有UV坐标的图像的图示,而图18示出根据一个实施例将面向前面的三角形边缘绘制到最终的纹理图的一个部分中的图示。为了计算UV坐标,面向前面的三角形被映射到纹理的顶部部分,在该部分中放置有前面捕捉色彩图像,并且对于底部来说也是一样的。顶点位置在深度相机的空间中,而色彩图像位于颜色相机的空间中,因此,在将顶点投射到前面/背面深度图像上之后,一个实施例使用深度到色彩偏差表来将坐标变换到颜色相机空间。
[0076]在一个实施例中,网格参照上轴被重新居中、镜像,并且缩放以增强最大宽/高t匕。所捕捉的色彩和深度图像对比于实际的物理对象被镜像,因此,另一个镜像被用于将其倒转。对于较高而不是较宽的对象,可以优化骨架并且加入动画,这样,宽/高比限制在由动画不与某个骨架匹配的宽对象所引起的伪影上设置了一个限制范围。
[0077]在一个实施例中,单个骨架被用于所有动画骨架。该骨架可以具有给出良好运动范围(走路、跳跃、爬行、跳舞、看左看右等),而不是要求目标对象具有更多外形。
[0078]为了将皮肤应用到经数字化的图像,重新缩放并定位网格,这样,骨架在其内部合适,因为顶部骨头定位在离对象的顶部某个百分比(例如大约90%)(将其粗略地放置在对象的“头”内),而底部骨头在对象的底部范围。通过沿上轴查找与每个顶点最接近的骨头并使用压降曲线来对它们进行加权,可以计算骨头的索引并为骨架加入权重。图19A-19E是根据一个实施例的示出要添加到所生成的骨架结构的不同骨头处的加权的图示。
[0079]处理色彩和/或深度图像以减少噪声并改善质量。在一个实施例中独自在前面和背面图像上完成处理,并且将结果合并入最终纹理图,这可能需要附加处理。依照来自艺术家的某些实验和反馈,发现下述步骤是最佳的:将sRGB色彩转换成线性空间、应用“灰度世界”自动白平衡、修复边缘伪影、计算亮度和色度值、应用双向过滤器、直方图均衡以及对亮度锐化、对色度应用中值滤波器、转换回sRGB,并且最终,将色彩边缘向外延伸到图像的去分割区域。在不同的实施例中,可以加入其它步骤,或者删除上述某些步骤。
[0080]图20A和20B是根据一个实施例的示出在亮度/色度处理之前和之后的图像。独立处理亮度/色度允许更加强力地过滤色度同时保留亮度图像中的细节,这对去除图像噪声是有利的。可以轻度应用直方图均衡以补偿曝光欠佳的图像。
[0081]图21A和21B是根据一个实施例的示出在对边缘滤波之后的源和输出图像。在一个实施例中,“边缘修复滤波器”试图替换在目标对象边缘处的色彩,这些色彩实际来自背景而非对象自身。由于相对低的分辨率和深度图像的高噪声以及有缺陷的深度到色彩记录使得坏色彩可能蔓延。边缘修复滤波器在对象边缘周围的像素“争议区域”上直接工作。假设争议区域内的像素是目标对象的确定部分,而更外面的像素是背景部分,则计算每个争议区域像素的“背景似然值”,并将其用于向内部颜色混合高似然度背景像素。
[0082]图22A和22B是根据一个实施例的示出在其中所述边缘修复滤波器查找背景颜色和目标颜色的图像。从外面将目标颜色外插入争议区域中。
[0083]图23A和23B是示出根据一个实施例的从边缘到争议区域的距离以及计算的背景似然值的图像。而且,图24示出根据本发明的通过在非最终图像的塔(tope)上纹理化后的图像的最终合成的纹理图。
[0084]从将前面和背面图放置在一起所导致的接缝可能需要被修复。网格处理的最后一位被用于改善在前面-背面接缝附近的以及在捕捉期间对颜色相机不可见的区域中的对象的外观。首先,计算每个顶点的屏蔽值,该值表示了纹理色彩将在该顶点处有多“坏”的。该值是到接缝(其中前面和背面图像接触但通常不是排列得很好)的距离的乘积,以及一个顶点相对于任意所捕捉的图像是如何面向背面的(其中由于表面没有面对相机视野并且不足的纹理像素密度,纹理色彩分解了)。这些值可以被存储在顶点的色彩alpha通道。接着,计算表面色彩的模糊版本,并存储到顶点色彩RGB通道。这些色彩在质量上是相当好的(虽然是低细节)。需要修复的负面伪影被相对地定位,且是较高频率的,然而所述模糊化给出了更加全局、低频率的色彩。
[0085]图25A和25B是根据一个实施例的屏蔽值和重度模糊化的顶点色彩。在一个实施例中,在运行时的屏蔽值被用于在源纹理和经模糊化的顶点色彩之间混合。图26A和26B是根据一个实施例的仅具有纹理(26A)和具有由屏蔽值(26B)所混合的顶点色彩的纹理的不同的网格。[0086]图27是根据一个实施例的用于经数字化的对象的最终呈现。在一个实施例中,一旦最终的网格和纹理是完整的,就创建并渲染虚幻引擎3网格,连同环境及轮廓照明、自屏蔽和动画。GOE应用还允许用户通过将Nui骨架映射到所述骨架上来将所述对象进行数字化。
[0087]上述步骤平衡了可用性、CPU/GPU/存储器限制、输出质量、艺术关注、传感器精度以及开发时间。做出了可能不是专用于每个场景的折衷。这样,可以加入不同的步骤或删除上述某些步骤以改善速度或最终数字化的质量。
[0088]图28是根据一个实施例的用于将对象进行数字化的工作流程2800。接收图像的色彩和深度数据,如在2802处所示。分析所述深度数据,通过基于假设用户最可能将对象呈现给用于捕捉的相机来标识离该相机的最近的图像的点,以找到感兴趣的对象。可以替换地或附加地使用确定感兴趣的对象的替换方法。可以使用不同的图像识别或算法匹配技术来定位图像中的对象,因此实施例并不是要限制于任意专门类型的用于定位图像中的对象的装置。而且,除了深度数据之外或作为深度数据的替换,实施例还可以使用图像的色彩数据来定位对象。例如,可口可乐的罐子可以包括红色的商标颜色,当试图定位图片中的罐子时,可以使得色彩数据特别相关。这样,可以以许多不同的方式来查找感兴趣的对象。
[0089]一旦定位了感兴趣的对象,就标识对象的边缘,如在2806所示。可以通过分析图像中在对象周围的色彩、深度或对比度差异来做出这样的确定。一旦定位了边缘,可以使用图像的色彩和深度数据执行对象的点云构造,如在2808处所示。为了将对象在3D中进行数字化,可以基于多个图像(例如背面、前面、顶面、底面等)的色彩和深度数据来构建对象的不同侧面的多个点云构造。一旦创建了多个点云构造,可以将它们聚合以创建对象的最终数字化,如在2810处所示。
[0090]图29是根据一个实施例的用于将对象进行数字化的工作流程2900。一旦接收到对象的图像,如在2902处所示,标识图像的最接近点,如在2904处所示。标识对象的侧面(例如左面、右面、北面、南面、顶面、底面等),如在2906处所示。创建图像的点云构造,如在2908处所示,并将其合并成单个呈现,如在2910处所示。随后,可以保存所得的呈现,如在2912处所示,并在显示设备上将其显示。
[0091]所描绘的各组件以及未示出的组件的许多不同的安排都是可能的,而不背离所附权利要求书的精神和范围。已带着说明而非限制的意图描述了本技术的各实施例。在阅读本发明之后或由于阅读了本发明,替换实施例将变得对本发明的读者显而易见。可完成实现上述的替换装置而不脱离所附权利要求书的范围。某些特征和子组合是有用的,并且可以使用而无需参考其他特征和子组合并且被认为是在权利要求书的范围之内的。
【权利要求】
1.在其上包含有计算机可执行指令的一个或多个计算机存储介质,当所述指令被执行时,对由相机捕捉的对象进行数字化,所述方法包括: 接收与图像相关联的色彩和深度数据; 标识所述图像中到所述相机最接近的点; 从所述最接近的点中标识出在所述图像中的对象的边缘; 使用所述深度数据来生成所述对象的点云构造;以及 使用所述点云构造来生成所述对象的数字化。
2.如权利要求1所述的一个或多个计算机存储介质,其特征在于,标识所述图像中到所述相机最接近的点进一步包括: 计算在所述相机的光圈和所述图像中的多个点之间的距离;以及 从所述距离中选择最短的距离。
3.如权利要求2所述的一个或多个计算机存储介质,其特征在于,还包括: 标识以所述最短距离连接到对象的一个特征;以及 存储表示所述对象到所述相机的最接近的部分的所述特征的指示。
4.如权利要求1所述的一个或多个计算机存储介质,其特征在于,还包括: 接收所述对象的第二图像的色彩和深度数据; 确定在所述第二图像中的第二最接近的点; 标识在所述第二最接近的点处的所述对象;以及 生成如在所述第二图像中取向的所述对象的第二点云构造。
5.如权利要求4所述的一个或多个计算机存储介质,其特征在于,还包括: 标识在所述点云构造和第二点云构造之间的接缝; 确定要填充所述接缝部分的填充器颜色; 用所述填充器颜色来填充所述接缝部分,以创建在所述点云构造和第二点云构造之间没有接缝的3D呈现;以及存储所述3D呈现。
6.如权利要求1所述的一个或多个计算机存储介质,其特征在于,所述标识所述对象还包括: 在所述图像中的最接近的点的周围的空间区域中执行图像分析; 基于所述图像分析确定在所述空间区域中的两个区域之间的色彩差异; 指派所述区域之一与所述对象相关联;以及 移除具有与所述区域之一不同颜色的另一个区域。
7.如权利要求1所述的一个或多个计算机存储介质,其特征在于,还包括移除区域周围的所述图像的一个或多个点,所述区域具有少于阈值数目的与所述对象相关联的邻居点,导致所述对象的深度像素的屏蔽。
8.如权利要求7所述的一个或多个计算机存储介质,其特征在于,还包括以下述方式将深度像素的屏蔽存储在深度帧的环形缓冲区中:覆盖至少一个深度帧并将多个帧一起平均以产生最终的深度图像。
9.一种显示对象的数字表示的方法,包括: 接收从不同视角捕捉的所述对象的图像;在两个单独的图像中,使用各自的深度数据来标识在所述图像中到一个或多个相机最接近的点; 从所述最接近的点中标识所述对象的至少两个不同的侧面; 创建捕捉所述对象的所述至少两个不同的侧面的构造; 将所述构造合并到所述对象的一个呈现中;以及 存储所述对象的所述呈现。
10.如权利要求9所述的方法,其特征在于,还包括: 确定所述构造之一的连接到另一个构造的点;以及 在所述点对齐所述构造。
11.如权利要求10所述的方法,其特征在于,至少一个所述图像从服务器接收。
12.如权利要求9所述的方法,其特征在于,还包括: 对于每个图像,标识所述对象的边界;以及 当合并所述构造时,用颜色填充在两个边界之间的至少一个缝隙以减少所述构造之间的接缝部分。
13.如权利要求9所述的方法,其特征在于,所述图像包括色彩和深度数据。
14.一种计算设备,包括: 能够捕捉或接收图像的相机,每个图像包括色彩和深度数据; 存储至少一个图像的所述色彩数据和所述深度数据的一个或多个计算机存储介质;以及 一个或多个处理器,被配置成: (1)标识所述至少一个图像中的对象, (2)创建在所述至少一个图像中的所述对象的数字表示,以及 (3)通过将所述数字表示与从第二图像创建的所述对象的第二数字表示进行组合,来创建所述对象的3D呈现;以及 配置为显示所述3D呈现的显示设备。
15.如权利要求14所述的一个或多个计算机存储介质,其特征在于,所述一个或多个处理器根据移动所述对象的肢体的一组规则来在所述显示设备上移动所述对象。
【文档编号】H04N13/00GK103703489SQ201280027694
【公开日】2014年4月2日 申请日期:2012年6月5日 优先权日:2011年6月6日
【发明者】J·J·埃弗特, J·A·克拉克, C·H·维罗毕, M·斯卡维泽, J·蒂亚奎罗, R·马尔科维奇, J·索拉, D·哈利 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1