用于生成虚拟情境的系统和方法与流程

文档序号:11333832阅读:261来源:国知局
用于生成虚拟情境的系统和方法与流程

相关申请的交叉引用

本申请要求2014年12月22日提交的美国申请号14/580,072的优先权,其全部内容通过引用并入本文。

本申请总体涉及计算机建模图像处理的技术领域,并且在某些示例性实施例中,涉及在在线购物环境中生成用于可穿戴物品图像的虚拟情境。



背景技术:

在实体店购买服装可能是一项艰巨的任务,并且由于交通和停车,可能非常耗时。随着在线购物的到来,消费者可以通过计算机或任何连接到互联网的电子设备在家中购买服装。另外,与在商店购买服装相比,在线购买服装可能会有所不同。一个区别是缺少实体试衣间来看看一件服装是否适合特定的消费者。

本公开中描述的系统和方法尝试提供上述问题的解决方案。

附图说明

图1示出了根据某些示例实施例的用于生成虚拟情境的示例系统。

图2示出了根据某些示例实施例的用于生成虚拟情境的系统的方面。

图3示出了根据某些示例实施例的用于生成虚拟情境的方法。

图4a示出了根据某些示例实施例的生成虚拟情境的方面。

图4b示出了根据某些示例实施例的生成虚拟情境的方面。

图4c示出了根据某些示例实施例的生成虚拟情境的方面。

图4d示出了根据某些示例实施例的生成虚拟情境的方面。

图5示出了根据某些示例实施例的用于生成虚拟情境的方法。

图6示出了根据某些示例实施例的用于生成与虚拟情境一起使用的身体模型的界面。

图7示出了根据某些示例实施例的可以与虚拟情境一起使用的虚拟试衣间的方面。

图8示出了根据某些示例实施例的可以与虚拟情境一起使用的可穿戴物品模型的方面。

图9示出了根据某些示例实施例的可以与虚拟情境一起使用的可穿戴物品图像生成的方面。

图10a示出了根据某些示例实施例的可以与虚拟情境一起使用的虚拟试衣间的方面。

图10b示出了根据某些示例实施例的利用虚拟情境生成的内容图像的方面。

图10c示出了根据某些示例实施例的利用虚拟情境生成的内容图像的方面。

图10d示出了根据某些示例实施例的利用虚拟情境生成的内容图像的方面。

图10e示出了根据某些示例实施例的利用虚拟情境生成的内容图像的方面。

图10f示出了根据某些示例实施例的利用虚拟情境生成的内容图像的方面。

图11是示出根据一些示例实施例的能够从机器可读介质读取指令并且执行本文所讨论的任何一个或多个方法的计算设备的组件的框图。

具体实施方式

描述了用于图像处理的示例系统和方法,包括用于使用附加的可选虚拟情境来生成和显示物品图像的系统和方法。在某些实施例中,这样的情境图像可以被实现为在线店面、商业门户或发布网络中的虚拟试衣间的一部分。

这样的系统可以提供产品的情境展示,作为一种增强用户体验的方式。在不同环境情境下观看一件服装、鞋类、服装配饰或珠宝,可以显著提升购物体验。某些在线购物体验可能无法直接体验物品,但是提供处理成多个不同情境的模特图像可能会抵消通过网络远程购物的这种缺陷,并还可能提供购物者以前无法获得的新体验。

例如,顾客可能正在寻找一件和朋友晚上约会的服装。顾客使用联网计算设备访问在线商店,在线商店提供具有可选背景情境的虚拟试衣间。当顾客已经选择了多件服装作为购买选项时,顾客还可以从多个不同选项中选择一个商店提供的背景图像,例如正式晚宴环境、公园环境、海滩环境、家庭环境和其他这类环境等。在顾客选择之前,对与环境相关联的图像进行预处理,以识别图像内适合叠加服装图像的一个或多个放置区域。服装图像可以从照片生成,或者可以利用通过人的三维模型处理过的服装的三维模型来生成,以从计算机模型生成物品图像。当系统同时具有包括所识别的放置区域的环境图像和可穿戴物品的图像时,系统可以基于该放置区域将可穿戴物品的图像叠加在背景图像上。然后可以对合成图像执行图像滤波,以在环境情境中生成物品的清晰表示。顾客设备上的用户界面可以使得客户能够针对所选择的每件服装执行相同的处理,以在所选择的环境中在用户选择的每件服装的表示之间来回切换。类似地,用户可以针对同一件服装在不同环境之间切换,以便在不同的情境中查看服装。

在其他示例实施例中,用户可以提供来自用户拍摄的照片的情境信息和环境图像。例如,用户可以使用移动设备拍摄照片,并且将照片处理成如上所述的具有关联的放置区域的环境图像。然后,可以使用上述针对系统提供的环境图像的相同处理,将服装图像添加到用户的环境图像。在某些实施例中,如果系统可以在环境图像内提供放置物品的初始放置区域以及环境图像中的其它预计算的放置区域,则可以使用用户界面将可穿戴物品图像移动到环境图像内的不同放置区域。

各种这样的实施例可以提高在用户选择的情境中提供物品建模的高效的网络使用,可以基于图像处理优化来产生高效的处理器使用,并且可以增强在线购物体验。当综合考虑这些影响时,本文所描述的一种或多种方法可以消除原本在不同情境中呈现图像可能会涉及的某些努力和资源的需要,并且优化了分布式资源使用。通过本文描述的一种或多种方法,可以减少用户生成3-d模型所花费的努力。可以类似地减少或优化一个或多个机器、数据库或设备(例如,在系统100的不同元素内)使用的计算资源。这样的计算资源的示例包括处理器周期、网络流量、存储器使用、数据存储容量、功耗以及冷却能力。

图1是示出根据示例实施例的系统100的框图。系统100包括经由网络34(例如互联网)连接到计算设备202的联网设备10。计算设备202通常包括一个或多个处理单元(cpu)222,其用于执行存储在存储器236中的模块、程序或指令从而执行处理操作;一个或多个通信接口220;存储器236;和用于互连这些组件的一个或多个通信总线230。通信总线230可选地包括互连系统组件并控制系统组件之间的通信的电路(例如,芯片组)。计算设备202还可选地包括电源224和耦接到大容量存储装置214的控制器212。系统100可选地包括:包括显示设备226和键盘228的用户接口232。

存储器236包括诸如动态随机存取存储器(dram)、静态随机存取存储器(sram)、双数据速率随机存取存储器(ddrram)等高速随机存取存储器,或其它随机存取固态存储设备;并且可以包括诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备等非易失性存储器或其他非易失性固态存储设备。存储器236可以可选地包括远离cpu222的一个或多个存储设备。存储器236或者备选地存储器236内的非易失性存储设备包括非暂时性计算机可读存储介质。在一些示例性实施例中,存储器236或存储器236的计算机可读存储介质存储以下程序、模块和数据结构或其子集:操作系统240;文件系统242;访问模块244;服装仿真模块246;成像模块248;和显示模块250。

操作系统240可以包括用于处理各种基本系统服务和执行硬件相关任务的过程。文件系统242可以存储和组织各种程序所使用的各种文件。访问模块244可以经由一个或多个通信接口220(例如有线、无线)、网络34、其他广域网、局域网、城域网等与设备10进行通信。此外,访问模块244可以经由一个或多个通信总线230访问存储器236的信息。

仿真模块246可以分割二维图像以识别二维图像内的对象和表面。仿真模块246还可以处理环境的这种二维图像,以识别环境中可以放置物品或穿戴物品的身体的空间。下面将具体参考图2-4讨论这种分割和放置处理的附加细节。

除了处理环境和可穿戴物品的图像之外,仿真模块246还可以额外地使用身体模型,该身体模型可以基于用户或其他人来表示在情境图像中正穿戴物品的身体。因此,仿真模块246可以基于人的身体测量、人的照片或与人关联的其他信息来生成三维身体模型。此外,服装仿真模块246可以将身体模型定位在服装模型内。而且,服装仿真模块可以基于身体模型在服装模型内的定位来计算作用于与服装模型相关联的服装点上的仿真力。这种建模可以生成由身体模型穿戴的可穿戴物品的精确表示,然后可以在环境图像中使用。

仿真模块246可以进行包括物品图像和环境图像在内的个体元素以及穿戴物品的身体的处理,而成像模块248执行将这些元素合并到单个物品情境图像中的处理。成像模块248可以使用叠加和图像滤波处理来生成物品的图像,以将可穿戴物品与环境合并,并且对合并的图像进行滤波以生成一致而且没有在情境环境内减损可穿戴物品的呈现的尖锐边缘的图像。下面还讨论诸如仿真模块248的仿真模块的附加细节。

显示模块250可以被配置为使得所生成的图像在设备的显示器上呈现。例如,显示模块可以呈现供用户选择的可穿戴物品的集合,供用户选择的环境的集合,以及将用户选择的物品和环境合并的物品情境图像。用户界面可以使得用户能够使用显示模块250来控制图像输出,以便在同一情境内显示不同的可穿戴物品,或者在不同的情境中显示某个物品。

网络34可以是使得能够在机器、数据库和设备(例如计算设备202和客户端设备10-1)之间或之中进行通信的任何网络。因此,网络34可以是有线网络、无线网络(例如移动或蜂窝网络),或其任意合适组合。网络34可以包括构成私有网络、公共网络(例如,互联网)或其任意合适组合的一个或多个部分。因此,网络34可以包括以下一个或多个部分,包括:局域网(lan)、广域网(wan)、互联网、移动电话网(例如蜂窝网络)、有线电话网(例如普通老式电话系统(pots)网络)、无线数据网(例如wi-fi网络或wimax网络)或其任何合适的组合。网络34的任意一个或多个部分可以经由传输介质来传送信息。

计算设备202和联网设备10(例如,商户设备10-1、客户端设备10-2、网络服务器设备10-3)可以分别在计算机系统中全部或部分地实现,如下面所描述。图1中所示的任意机器、数据库或设备可以在通过软件(例如一个或多个软件模块)修改(配置或编程)为专用目的计算机的通用目的计算机中实现,以执行本文针对该机器、数据库或设备描述的功能中的一个或多个。例如,以下将参考下面详细描述的示例性计算设备的图来讨论能够实现本文所描述的任何一种或多种方法的计算机系统。如本文所使用的,“数据库”是数据存储资源并可以存储结构化为文本文件、表格、电子表格、关系数据库(例如,对象关系数据库)、三元组存储、分层数据存储或它们的任意合适组合的数据。此外,图1中示出的机器、数据库或设备的任意两个或更多个可以组合到单个机器中,并且本文针对任意单个机器、数据库或设备描述的功能可以细分到多个机器、数据库或设备中。

然后,图2示出了根据某些实施例的访问模块、仿真模块和成像模块(诸如访问模块244、仿真模块246和成像模块248之类)的一种可能实施方式的某些细节。

访问模块244包括图像模块102、技术封装模块104、计算机辅助绘图(cad)文件模块106和网络接口模块108。访问模块244被配置为接收情境数据的集合,所述情境数据包括描绘第一环境的第一环境图像。仿真模块246包括数字化模块110、建模模块120、分割模块130和自动化模块140。仿真模块246耦接到访问模块248,并且被配置为将环境的第一环境图像分割成第一多个区段,从第一多个区段中识别第一地面区段,并且基于地面区段和与第一多个区段相关联的第一放置提示集合确定第一环境图像内的至少第一放置区域。成像模块248包括情境放置模块150、滤波模块160、推荐模块170和虚拟试衣间模块180。成像模块248被配置为将可穿戴物品图像叠加在第一环境图像上以生成第一物品情境基础图像,其中可穿戴物品图像放置在第一放置区域内。成像模块248还被配置为识别第一物品情境基础图像中的第一侵蚀区域,第一侵蚀区域包括第一环境图像和可穿戴物品图像之间的边界的至少一部分;并且被配置为对侵蚀区域执行图像滤波处理以生成包括可穿戴物品图像的至少一部分和第一环境图像的一部分的第一情境图像。

在其它实施例中,这些模块中的每一个可以单独地或以任何可能的组合一起实现。以下参考图3和图4进一步详细描述这些模块中的每一个。

图3示出了根据本文所述的实施例的一个示例方法300。尽管参考图1和图2的元素描述了方法300,也可以使用不同实施例中的替代的设备和模块来实现方法300。

操作310涉及在设备的访问模块244处访问情境数据集合,所述设备包括至少一个处理器和耦接到所述至少一个处理器的存储器。该情境数据集合至少包括描绘第一环境的第一环境图像。在各种实施例中,该情境数据集合可以包括任何数量的环境图像,所述环境图像可以在单个连续数据流中被接收,或者在分开的通信中被接收,每个通信包含环境图像的单个图像的全部或一部分。可以从许多不同的来源访问这样的环境图像。图像模块102可以包括存储在包括访问模块244的设备的存储器中的环境图像。技术封装模块104可以包括各种类型的环境模型和环境数据,包括三维环境信息,所述三维环境信息可以用于生成环境的三维模型以及环境的二维图像作为环境图像。技术封装模块104还可以包括在某些实施例中可用于生成环境图像的,包括关于照明、风、身体模型、织物模型信息或关于环境的其他数据。cad文件模块106可以包括描述环境的cad文件。在某些实施例中,cad文件模块106和技术封装模块104可一起用于根据作为一个情境的环境的三维计算机模型来渲染环境图像。另外,在某些实施例中,环境图像的上述任何来源的位置可以远离设备,并且网络接口模块108可以与数据库设备或其他计算设备进行通信,以检索该情境数据集合的任何部分。

除了访问该情境数据集合之外,访问模块244可以访问可穿戴物品数据集合。这可以是如上所述的图像,或者可以是作为技术封装模块104的一部分的包括模型细节的模型信息,例如要用于生成可穿戴物品图像的织物模型的织物值。该可穿戴物品数据集合可以是由cad文件模块106存储的cad数据。在其他实施例中,这可以是扫描的图像集合或要用于生成物品模型(其随后将用于生成可穿戴物品图像)的其他数据。

然后,操作320涉及通过通信耦接到访问模块的仿真模块246将环境的第一环境图像分割成第一多个区段。仿真模块246和访问模块244之间的耦接可以是跨越网络的远程连接或由设备的一个或多个处理器实现的操作通信。可以使用分割模块130来执行环境图像的分割以处理环境图像。这种分割可以使用任何图像处理和机器视觉技术来识别环境图像中的表面和物品。分割模块130使用的无监督图像分割算法可以处理环境图像,并且在使用期间而无需操作者反馈。可以由分割模块130使用的方法的示例包括:频谱聚类分割变型、平均移位分割、基于图的聚类分割以及任何其他这样的分割方法。在放置区域基于无遮挡地面和背景区段的识别的某些实施例中,可以使用简化的分割方法来将这种无遮挡地面和背景区域与其他区域区分开,而不试图进一步分割图像中的复杂的遮挡区域。在执行复杂遮挡物的进一步分割的实施例中,这还可以涉及关于以下各项信息:来自建模模块120的对象标识,以及由建模模型120生成并由分割模块130使用以识别环境图像的区段的对象的模型。

操作330然后涉及基于地面区段和与第一多个区段相关联的第一放置提示集合来确定第一环境图像内的至少第一放置区域。在最简单的实施例中,放置区域可以由环境图像内的矩形区域来标识,该环境图像中,仅地表面和一个或多个背景壁表面是可见的。在某些实施例中,放置提示可以包括与可能要覆盖或挡住将叠加在放置区域中的物品的对象的接近度。在某些实施例中,放置提示可以是对象的大小细节和对象复杂性细节,所述对象可以是背景对象或环境中部的对象。在某些实施例中,还可以根据包括部分或全部放置提示的提示来确定地面区段。例如,由图像识别算法识别的某些线性线条可以外推到消失点并用于确定房间的墙壁、地板、天花板或其他方面。在其他实施例中,可以使用预期或识别的物品(诸如面部、平面上的对象、静水或其他这样的物品)的方位来定向图像并确定图像情境中的向下或重力方向,并且地面区段可以被识别为一定高度处的平坦表面,所述平坦表面在情境中被确定为地面,以便将地面区段与桌子区段区分开。家具、地面植物、地毯表面或其他元素的放置可以用作识别地面区段并将地面区段与其他平坦表面(例如桌子和吧台表面)区分开的提示。

在某些实施例中,操作330可以涉及多个放置区域的识别。例如,在一个实施例中,确定至少第一放置区域包括如下操作:识别第一地面区段的多个无遮挡部分,以及针对第一地面区段的多个无遮挡部分中的每一个,确定从无阻碍部分朝向天花板区段的无阻碍距离。上方没有足够的无遮挡区域的地面无遮挡部分可能被拒绝作为与放置区域相关联的候选者。后续操作可以随后涉及根据第一地面区段的多个无遮挡部分和每个无遮挡部分到天花板、天空或上部图像区段的相关联的无遮挡距离来识别包括第一放置区域的多个放置区域。换句话说,每个放置区域将与环境图像中不同的地面无遮挡部分相关联。每个地面无遮挡部分也将具有在地面部分上方一定距离的开放空间,并且从环境图像的角度看,对地面之上的该部分的视角不会被阻挡。在这样的实施例中,仿真模块246随后将至少部分地基于放置区域与遮挡物区段集合和多个区段的相关情境区段的集合的接近度,从多个放置区域中选择第一放置区域。

满足放置特性的阈值集合的所有放置区域可以作为放置信息传递到成像系统,其中,用户具有用户界面输入以将物品移动到环境图像内的不同放置位置。在其他实施例中,可以基于环境提示给予每个放置位置一个放置分数。这种环境提示可以从环境图像内具有情境值的区段导出。例如,图像中具有更高或更不规则的特殊频率内容的复杂部分中的放置区域可以得到较低的分数。可以选择具有较高分数的放置区域作为唯一的放置区域,或者可以选择具有较高分数的选定数量的放置区域。在某些实施例中,可以为系统操作者提供用户接口以与仿真模块246对接,从而向系统操作者提供由仿真模块246处理的对环境图像中的放置区域进行选择的选择选项。在其他实施例中,这种选择可以由自动化模块140使用上述任何标准自动进行。

然后,操作330涉及通过成像模块248将可穿戴物品图像叠加在第一环境图像上以生成第一物品情境基础图像,其中可穿戴物品图像被放置在第一放置区域内,并且其中可穿戴物品图像包括可穿戴物品的图像。

初始叠加可以简单地涉及在放置区域中用可穿戴物品图像的像素来代替环境图像的像素。在某些实施例中,这可能涉及更复杂的过程。例如,在一个实施例中,可穿戴物品图像和环境图像可以具有不同的分辨率和缩放比例。因此,叠加可能涉及对可穿戴物品图像的物品尺寸进行缩放以匹配第一放置区域的放置尺寸并将物品比例与环境比例相匹配的操作。可以根据在图像分割期间识别的各个区段或细节来使用与放置提示类似的提示。这种尺寸提示也可以由成像模块248独立地导出。这可以包括分析环境图像中的身体、椅子、门或其他标准对象的大小,以确定环境图像的比例。然后,可穿戴物品图像可以被缩放以匹配环境的比例。在某些实施例中,可以将比例提供为与环境和可穿戴物品之一或两者相关联的元数据或模型数据。然后可以使用下采样和/或像素插值来匹配缩放的可穿戴物品图像中的像素间隔。

经缩放的采样调整的可穿戴物品图像的像素可以用于覆盖第一环境图像的第一放置区域的至少一部分。可穿戴物品图像可能不能覆盖整个放置区域,并且在某些实施例中,可以超出放置区域一个系统设置确定的量。在其他实施例中,放置区域是对用于覆盖环境像素的可穿戴物品图像的像素的放置的固定限制。可穿戴物品可以是可穿戴物品图像中遮盖在身体上的衣物、首饰或服装配饰。在其他实施例中,身体可以是环境图像的一部分,并且当身体区段被识别为放置区域时,可穿戴物品图像可以被放置在环境中的身体区段上。在某些实施例中,可以以与接收到上述环境图像相同的方式来接收可穿戴物品图像。然而,在其他实施例中,数字化模块110可以用于收集关于可穿戴物品的实际物理实施例的信息。这可以包括可穿戴物品的多个图像以及关于可穿戴物品的任何其它传感器数据。然后可以使用数字化模块110来生成可穿戴物品的计算机模型,并且可以根据数字化模块110创建的可穿戴物品模型来生成可穿戴物品图像。以下描述关于这种可穿戴物品模型的附加细节。

操作350然后涉及识别第一物品情境基础图像中的第一侵蚀区域。第一侵蚀区域包括基本情境图像中的第一环境图像和可穿戴物品图像之间的边界的至少一部分,其中基本情境图像包括叠加在环境图像上的可穿戴物品图像。在一个实施例中,通过识别边界像素来确定第一环境图像和可穿戴物品图像之间的边界。通过识别第一物品情境基础图像中的来自可穿戴物品图像并且与来自第一环境图像的至少一个像素相邻的叠加像素的每个像素来识别边界像素。

一旦识别出边界,可以以各种方式确定第一侵蚀区域。在一个实施例中,确定侵蚀距离,并且距边界在侵蚀距离内的每个像素都在侵蚀区域内。例如,距边界像素在七个像素内的每个像素可以是侵蚀区域的一部分。在其他实施例中,侵蚀距离可以被确定为情境基础图像的特征函数。这可以包括情境基础图像的尺寸和分辨率,其中通过使用更大像素数量的侵蚀距离,情境基础图像具有更多的像素。

在一个实施例中,侵蚀距离基于可穿戴物品图像尺寸与环境图像尺寸的比率。在这样的实施例中,附加的操作可以是识别第一侵蚀区域的一部分。该操作可以包括:确定可穿戴物品图像的尺寸与第一环境图像的尺寸的比率,基于该比率从侵蚀距离表中选择侵蚀距离,以及选择距边界像素在侵蚀距离内的每个像素作为包括第一侵蚀区域的侵蚀像素集合。侵蚀距离表可以由系统操作者基于要合并的图像的多个不同特征来生成,其包括尺寸比、颜色对比度、亮度对比度或要合并成情境图像的环境图像和可穿戴物品图像之间的其它特征的变化。在其他实施例中,可以使用公式,并将不同特征值代入函数以确定侵蚀距离的值。

在另外的实施例中,可以使用边界区域附近的颜色和图案之间的差异和变化来修改侵蚀距离。例如,如果在侵蚀区域内发现阈值空间频率,则侵蚀距离可以增加预设值。

操作360然后涉及对侵蚀区域执行图像滤波处理,以生成包括环境的一部分和穿衣身体模型的图像的第一情境图像。在某些实施例中,与可穿戴物品图像(可以包括穿衣身体模型图像)与环境图像的合并相似,可以通过将特定可穿戴物品图像与身体模型图像合并来生成穿衣身体模型。在其他实施例中,可穿戴物品的三维计算机模型可以与身体的三维模型合并,以生成遮盖在可穿戴物品中的穿衣身体模型的图像。下面描述关于生成包括可穿戴物品模型的穿衣身体模型的附加细节。在某些实施例中,这种图像滤波处理可以是用于滤除在侵蚀区域内发现的高特殊频率的低通滤波器。例如,这可以是使用高斯滤波器对边界区域内的侵蚀像素集合的每个像素进行变换而进行的平滑处理。在其他实施例中,该平滑处理可以使用作为高斯滤波器的有效近似的各向同性块式滤波器。在各种其他实施例中,可以使用在情境图像内生成一致的呈现并且从所生成的具有背景环境作为情境的可穿戴物品的图像的呈现中滤除可视边界的任何滤波操作。

图4a-4d示出了根据某些示例实施例的对物品情境基础图像400中的侵蚀区域进行的滤波。物品情境基础图像400包括叠加在环境图像430上的可穿戴物品图像420。区域410是图4b-4d中详细示出的区域。图4b示出了区域的基础未滤波图像410,其包括可穿戴物品图像420的像素和环境图像430的像素。穿戴物品图像420与环境图像430之间的边界440是尖锐边缘。如果环境图像430和可穿戴物品图像420的这些区域具有任何差异,则当在设备的输出显示器上显示物品情境基础图像400时,边界440将是明显可见的。图4c随后示出了边界区域450,其包括在边界440两侧的像素,使得边界区域450最窄距离处的宽度是侵蚀距离的两倍,所述侵蚀距离即到侵蚀区域所包围的边界的距离。在图4d中,物品情境图像490的一部分具有可穿戴物品图像420的像素和环境图像430的像素,但包括已经用如上所述的图像滤波处理进行滤波的侵蚀区域中的侵蚀像素460。这降低了物品情境基础图像400中的边界450的锐度,以在物品情境图像490的部分中呈现更清晰、更小的锯齿和突变。

以下可以说明上述方法300的替代实施例,其中对环境图像执行预处理,并且响应于用户选择在运行时执行环境和可穿戴物品图像的叠加。集合g表示用户感兴趣在不同场景中试穿的外衣、鞋类或其他可穿戴物品的图像集合。在运行时将集合g作为输入提供给算法。g也可以由渲染的或合成的素材(asset)组成,例如下面进一步描述的所渲染的虚拟服装。

c表示由情境数据表示的情境集合。这可以包括例如鸡尾酒吧场景、海滩、商务会议、工作环境等。访问集合c来进行预处理,以便可以准备好运行时处理。情境数据集合{c1,c2,...cn}表示n个环境图像,其中每个环境图像与不同的情境场景相关联。

o表示情境物品图像的输出集合,其也可以表示为cxg。cxg是与所有服装或可穿戴物品图像合并的所有情境或环境图像的集合。三个服装和五个情境的集合将具有包括十五个合并情境图像的集合。对于所选择的环境或情境cj和可穿戴物品或服装图像gk,输出是通过以下方式形成的图像:以视觉允许的方式即时叠加来创建显示在用户设备上的输出图像ojk。在某些情况下,cj可能会传递到用户设备,用于在用户设备上执行cxg。在其他情况下,gk可能会被上传到处理集群,并将适当分辨率的输出图像ojk传递回用户设备。

对于给定的环境图像cj,wjxhj表示环境图像的宽度和高度(以像素为单位),输出物品情境图像o是可以粘贴服装的可叠加区域(wrjxhrj)的边界框。

首先,cj被分割成不同的区域,如背景、前景、地面、天花板、固定物以及其他这类区域。接下来,识别图像内可以叠加服装的一个或多个矩形区域。这样的区域可以被识别为从地面开始并从地面向天花板向上延伸到与地面一定距离的放置区域。在一些情况下,例如在室外环境或具有许多其他物体的场景中,环境图像可以被标记为复杂以便操作员查看,或者交给另外的分析模块以供进一步的自动处理。在复杂区段集合的某些实施例中,初始分析可以识别最佳位置区域的集合,并且可以向用户呈现每个区域作为选项,使得用户可以循环通过各位置,并且在每个循环期间进行叠加和侵蚀区域的滤波。

一旦通过每个情境图像cj的预处理来识别一个或多个放置区域,则系统存储将在运行时间期间叠加服装图像gk的放置区域(wrjxhrj)的坐标。

gk表示服装,而wgkxhgk表示所讨论的服装的边框。一旦用户已经选择了由服装图像gk表示的服装和由gk表示的环境或情境图像,则系统针对gk和cj计算不透明度图tk。tk的每个像素存储1或0,其中1表示该像素属于服装的事实,而0表示像素属于gk的背景的事实。可以使用标准不透明度确定,根据对应的图像来计算该不透明度图像tk。

然后将gk缩放以匹配cj。这涉及将gk从wgkxhgk缩放到wrjxhrj。缩放后的图像被称为gk′,并且伴随的不透明度图tk也被缩放以生成具有与gk′相同分辨率的tk′。

系统提取gk’中不透明像素的边界,并且侵蚀在像素中侵蚀距离在边界框对角线长度的2%内的像素,其中最小侵蚀距离为两个像素。这意味着距边界在侵蚀距离内的像素被标记为侵蚀像素。这是为了实现cj和gk的平滑混合而执行的。

然后如下创建输出图像ojk。因此,将wrjxhrj以外的像素从cj复制到ojk。复制像素包括将rgb颜色值从源复制到目标图像。对于tk==0的wrjxhrj内的像素,将像素值从源复制到目标。对于tk==1并且不是侵蚀像素的一部分的像素,通过从gk’中的适当位置进行复制来填充输出像素。

对于tk==1并且是侵蚀像素的一部分的像素,系统识别距边界在侵蚀距离内的所有像素。仅包括在输出图像cjk中已经分配了值的像素,而忽略其余像素。然后计算在上述步骤中被识别的每个像素的平均值或滤波值,并且根据在侵蚀区域中使用的图像处理的类型,将每个像素值分配给平均值或滤波值。

在这些操作之后,所有像素都被分配了值,并且生成具有wjxhj像素的输出图像ojk。对于具有wj=1920,hj=1080,wrj=300和hrj=700的测试图像,识别的边界框中约95,000个像素具有tk=1,并且侵蚀距离的平均值为15。对于在台式机处理器上的计算,这导致1到10毫秒的处理时间。对于在智能手机上的计算,计算时间约为50-200毫秒。

图5随后描述了客户端设备510访问作为在线购物交易的一部分的商户服务器系统502的实施方式。在操作550中,商户服务器系统502在预处理操作中处理情境数据以访问环境图像并识别环境区域内的放置区域。在某些实施例中,这可以由类似于访问模块244的访问模块和类似于仿真模块246的仿真模块来执行,两者都在商户服务器系统502上操作。在操作552中,商户服务器系统502为具有包括情境的虚拟试衣间的在线商店提供服务。在操作554中,客户端设备510访问在线商店。

作为虚拟试衣间交互的一部分,客户端设备510的用户在操作555中选择身体模型。这可以涉及使用默认模型而不需要特定输入下的用户选择,或者可以涉及将用户测量结果传送给商户服务器系统502。作为操作556的一部分,客户端设备510选择的身体模型数据被传送到客户端设备510,并且如果选择了定制身体模型,则定制身体模型被传送到商户服务器系统502的建模模块。身体模型数据可以包括通用模型的测量。身体模型数据可以包括身体体形和尺寸的cad文件。身体模型数据可以包括根据二维图像生成的三维模型。身体模型数据可以包括根据被识别为合身的用户选择的服装来估计的身体模型尺寸和形状。下面描述这种建模的附加细节。在操作558中,浏览在线商店的用户在操作558中选择一个或多个可穿戴商品,并且在操作557中从商户服务器系统502接收商品数据通信。在操作560中,客户端设备510的用户选择情境,并且在操作562中,商户服务器系统502将具有放置区域信息的环境图像传送给客户端设备510。客户端设备510随后使用环境图像和包括可穿戴物品图像的物品数据来生成作为虚拟试衣间交互的一部分显示在客户端设备510的输出显示器上的物品情境图像。在某些实施例中,通过类似于在客户端设备510上操作的成像模块248的成像模块来生成物品情境图像。在操作566中,客户端设备510的用户使用客户端设备510的接口来选择附加的备选情境或可穿戴物品。响应于该选择,接收更新的物品数据或情境数据,并且用于在客户端设备510处重复生成物品情境图像的处理。该过程继续进行,直到客户端设备退出虚拟试衣间。这可以在使用商户服务器系统502执行了支付处理或者在客户端设备510终止与商户服务器系统502的连接而不完成购买的情况下发生。

在各种不同的实施例中,图1、图2、图11、图12中描述的系统的模块以及本文描述的任何其他模块可以以各种不同的方式分布在系统中。在一个实施例中,诸如商户服务器系统502的商户计算机可以包括诸如访问模块244的访问模块和诸如仿真模块246的仿真模块,其中诸如客户端设备510的用户设备248包括诸如成像模块248的成像模块。任何数据库元素可以存储在任一设备或联网设备中。商户服务器系统中的访问模块和仿真模块可以通过商户服务器系统和客户端设备之间的网络来传送诸如可穿戴物品图像的物品数据、诸如环境图像的情境数据、以及诸如与环境图像相关联的放置区域信息的任何其他数据。

在另一实施例中,访问模块、仿真模块和成像模块可以都在单个设备上。例如,诸如智能电话、平板电脑或膝上型计算机的移动设备可以包括这些模块中的每一个,并且可以与数据库或商户服务器计算机通信以检索系统所需的任何信息。在另外的实施例中,本文描述的任何访问模块、仿真模块或成像模块操作都可以由服务器计算机和移动设备两者执行,其中该分布式模块的操作位置取决于移动设备的处理器周期、存储器存储区域、网络资源、电池电量或其他计算资源的可用性。

如上所述,某些实施例可以涉及在虚拟试衣间的界面中呈现可穿戴物品。这可以包括访问来自用户的尺寸或身体模型信息,如上述操作555所描述的。下面,图6详细说明可以作为系统一部分来实施的尺寸或身体模型信息的方面。虚拟试衣间还可以涉及用户从商户在线商店中选择服装或其他物品,如操作558中所述。图7-9详细说明根据各种实施例的可以用于生成可穿戴物品图像的服装选择和服装模型创建的方面。虚拟试衣间还可以涉及用于比较和选择情境以便与如步骤560中描述的所选择的可穿戴物品相关联的物品图像的呈现。图10a-f示出了示例性实施例中的情境选择的方面。

图6示出了收集身体测量信息的系统的方面,所述信息可以用于身体模型并且还用于识别服装数据以选择或生成可穿戴物品图像。在一些实施例中,用户的身体测量可以是用户输入620,例如腰、体重、胸、身高或其他身体测量。在某些实施例中,仿真模块246的服装部分可以基于身体测量生成不同的三维身体模型。该身体模型可以是用户或抽象人的形状的三维表示。在某些实施例中,该身体模型可以包括表示可以与服装模型一起使用的身体的cad数据或三维结构。然后可以将该身体模型与服装模型一起使用以生成遮盖在用户身上的可穿戴物品的三维模型,并且该模型可以用于渲染可由访问模块访问以用于生成物品情境图像的可穿戴物品图像。

在其他情况下,可以使用校准对象640从照片630接收用户的身体测量。校准可以给每个像素分配x、y、z位置值。如果服装布置在平面表面上,则系统100可能需要三个点的相对位置来计算校准(或从图像到对象空间的投影映射)。例如,通过使用校准对象640,系统可以提取四个角点,并且如果具有校准对象640的尺寸,则系统100有足够的信息来计算校准。基于校准,系统100可以在虚拟形象650上呈现服装,并显示与服装相关联的属性660(例如,档长测量,裤内档长测量,臀围测量,大腿围测量,小腿围测量)。类似地,使用网格纸作为校准对象,系统可以使用三个点的相对位置来计算该校准。另外,身体模型可以根据购买历史和反馈来生成。反馈可以包括购买的退回和接受,并且可以使用与保持的购买相关联的测量或服装模型来自动生成身体模型。

图7示出了在移动设备700的用户界面输出显示器上示出的虚拟试衣间示例。在虚拟试衣间的示例中,客户可以将虚拟店内的服装(例如,衬衫710和裤子720)进行混合和搭配,并且在身体模型730上对库存物进行试穿以生成可穿戴物品图像750。用户界面740可以用于生成身体模型730和所选择的可穿戴物品衬衫710和裤子720的可穿戴物品图像。另外,如图所示,在某些实施例中,可穿戴物品图像可以包括第一可穿戴物品、第二可穿戴物品和身体模型。在多个可穿戴物品叠加在单个环境上的实施例中,侵蚀区域不仅可以包括距每个物品与环境之间的边界在侵蚀距离内的区域内的像素,而且还包括距第一物品的像素和第二物品的像素之间的物品边界在侵蚀距离内的区域。

除了使用界面来接收来自用户的身体模型信息以生成可用于生成可穿戴物品图像的身体模型之外,根据示例实施例,系统还可以访问用于三维数字可穿戴物品仿真的信息。该操作可能涉及确定服装的尺寸和用于将服装遮盖在身体模型上的操作。

在该实施例中,诸如访问模块244的访问模块可以从数据库访问服装的三维服装模型,该三维服装模型包括表示服装表面的服装点。所访问的服装的三维服装模型可以存储在存储设备的服装模型文件中。

例如,所访问的三维服装模型可以是拼贴的三维服装模型。拼贴的三维服装模型可以包括与服装表面上的点相关联的顶点组。可以使用通信接口220经由网络34来接收服装的拼贴的3-d服装模型。

服装点可以通过拼贴模块的拼贴技术生成。拼贴可以将服装铺成许多拼贴的几何形状,以生成带有服装点的拼贴服装。拼贴的几何形状可以存储在存储设备的提取几何文件中。可选地,当在操作410从所访问的信息中获得纹理信息时,可以将纹理信息存储在存储设备的提取纹理文件中。

例如,如图8的衬衫810所示,衬衫可以用三角形来拼贴(例如,当三角形边长约1厘米时约20000个三角形),并且三角形的顶点可以是三维服装模型的服装点。服装点可以包括位置信息,例如x、y和z位置值。此外,位置信息可以独立于服装的颜色和设计。然后,访问模块244可以访问人的身体测量。在一些情况下,访问模块244可以访问多个身体测量。可以通过用户输入来接收人的身体测量。例如,身体测量可以包括颈部尺寸、臂长、胸部尺寸、腰部尺寸、腿长等。女性的参数列表可以包括体重、身高、胸围、腰围和臀围。可以根据身体参数生成不同的女性身体。另外,也可以通过在两个特定测量身体之间插值来创建不同的身体。参数列表只是用于表示,而非穷尽。类似地,在某些情况下,列表可以包括列出的参数的子集。仿真模块246然后可以基于所访问的身体测量来生成三维身体模型。

一旦身体测量被访问,系统可以针对虚拟试衣间创建三维人形身体模型的集合(例如静态、动画、动态)。仿真模块246可以将所生成的三维身体模型的至少一部分定位在服装点内。在一些情况下,定位可以包括将服装定位在身体上或四周,假定在一些实施例中身体可以是固定的。在这些情况下,服装可以基于仿真而拉伸和变形。仿真模块246可以配置一个或多个处理器(例如,cpu222)中的至少一个处理器将身体模型定位在服装模型内。

通过仿真每个男性和女性身体模型上的服装模型,应用可以生成逼真的虚拟试衣间体验,以从物品模型生成逼真的可穿戴物品图像。在一些情况下,服装的仿真可以包括将服装围绕身体放置在适当的位置,并且基于计算运行仿真。仿真可以基于不同的标准(例如,物理学规律、服装材料特性、身体-服装的相互作用)来推算服装顶点的位置和其他相关变量。结果是服装仿真模块246可以以迭代的方式来求解的大型等式组(例如,每个力分量一个变量)。仿真可以在仿真变得稳定时完成。例如,当服装达到净力为零的稳态时,仿真可以变稳定。

在一些布置中,仿真力可以包括重力、弹力、摩擦力或空气动力。此外,服装仿真模块还可以基于服装的材料特性来计算作用在服装点的子集上的一个或多个仿真力。例如,一个或多个仿真力可以包括重力和弹力,并且服装的材料特性表示服装弹性度。服装的材料特性可以包括但不限于透明度(sheerness)值、线性刚度值或弯曲刚度值。

然后可以通过存储在存储器236中的特定模块(例如,仿真模块266)来实现各种实施例。下面描述了实施方式和等式的一些示例。例如,下面是与操作450一起使用的等式组,其用于三个顶点(即,顶点852、顶点854和顶点856)的样本三角形550的三弹簧实施方式的操作,所述样本三角形与如图8所示的衬衫810的拼贴服装模型相关联。

(等式1)

(等式2)

(等式3)

其中k_s是弹性弹簧常数,k_d是阻尼弹簧常数,每个顶点具有位置(x)和速度(v)。

在上面的等式中,当分母是静止长度值时,零长度弹簧可以使用非零值。另外,当分母不是静止长度值时,等式可以使用视觉静止长度值,其在零长度弹簧的情况下为0。这允许系统处理零长度的弹簧,而不需要除以0。

为了进一步解释上述等式,描述了等式的推演。仿真模块可以保持的状态是表示服装的所有点的位置和速度。当仿真器随着时间向前移动时,仿真器可以通过计算每个时间点处每个点上的净力来随时间更新点的位置。然后,基于粒子的质量,仿真器可以使用基于运动定律f=ma的等式来计算加速度。加速度决定速度的变化,其可用于更新每个点的速度。同样地,速度决定了位置的变化,其可用于更新位置。因此,在仿真的每个点,仿真器可以计算每个粒子上的净力。施加在每个粒子上的力可以基于重力、弹簧力或其他力(例如,实现期望造型的拉力)。重力等式为f=mg,弹簧力如上所述。

弹簧力f具有两个分量,弹性分量(例如,等式中乘以k_s的部分)和阻尼分量(例如,等式中乘以k_d的部分)。弹性分量与弹簧的振荡有关。弹力的强度与弹簧从静止长度值拉伸的量成比例,其可以由x2-x1(例如,弹簧的当前长度减去静止长度值)来确定。例如,弹簧被压缩或拉伸越多,推动弹簧恢复到其静止状态的力越大。另外,k_s是弹簧常数,其允许基于弹簧的强度来放大/缩小力,然后将其乘以弹簧方向(例如,沿弹簧的方向),以赋予该力一个方向。

阻尼分量计算阻尼效应(例如,由弹簧移动、拉动所生成的热量)。阻尼可以是拉力,其中速度越高,拉力/阻尼力越大。因此,阻尼可以与速度成比例。在弹簧的情况下,可能有两个粒子在移动,所以仿真器计算两个端点之间的相对速度而不是单个速度。例如,相对速度越大,这两个点分开或靠近得越快,因此阻尼力越大(例如,阻尼与相对速度成比例)。另外,k_d是用于将阻尼力放大/缩小的阻尼弹簧常数,其可以乘以弹簧方向,以赋予该力一个方向。

在各种示例性实施例中,可针对nm或nw身体中的每一个来运行单独的仿真。所得到的输出可以存储或显示给用户。在某些情况下,对于每个身体,系统可以在仿真结束时捕获顶点的位置,并将该信息存储在数据库中。对于具有k个顶点的网格,总共存储3k个数字(每个顶点的x,y和z位置)。这些构成了任何给定身体上给定服装的外观。

在各种示例性实施例中,在每个仿真的稳态下,系统还可以计算施加在网格的弹簧(例如,边)上的力。例如,对于两个顶点(例如v_1和v_2)之间的边,作用在v1(以及相应地v2)上的合力等于:(等式4)

f(v_1)=k(v_1,v_2)*delta(v_1v_2),其中

k(v_1,v_2)是连接v_1和v_2的弹簧的弹簧常数(例如,服装的材料特性函数);和delta(v_1_v_2)是速度相关的力函数,其基于v_1、v_2的位置向量相比于其原始静止状态的变化。

然后可以针对每个顶点累加这些力以计算合力。

在各种示例实施例中,对于每个身体,系统100可以存储存储每个顶点上的合力。每个顶点上的合力可用作服装不同区域的紧度(例如,对于大的力量)或松度的量度。计算出的合力可以被解释为服装上的应力、压力或压缩。该信息可以被虚拟试衣间使用以生成准确的可穿戴物品图像。

成像模块248可以基于计算出的一个或多个仿真力,根据遮盖在三维身体模型上的三维服装模型生成二维可穿戴物品图像。例如,成像模块248可以使用遮盖模块265和仿真模块266,根据3d身体模型上的拼贴的3-d服装模型生成可穿戴物品图像。拼贴的三维服装模型基于仿真力来呈现。该呈现可以通过将拼贴三维服装模型数字地遮盖到三维身体模型上来完成。在各种示例性实施例中,可以通过组合用于相关模型的身体和服装数据、并将该信息输入到服装仿真引擎中来执行仿真。

然后,显示模块250可以在设备的显示器上呈现所生成的图像。显示模块250可以配置用户界面232以便呈现。仿真模块250可以配置一个或多个处理器(例如,cpu222)中的至少一个处理器在移动设备的显示器上呈现所生成的图像。

例如,如图9所示,通过使用身体模型和服装模型,服装仿真模块可以生成对应于一条牛仔裤910的前部的第一部分形状和对应于牛仔裤920的后部的第二部分形状。然后,通过将生成的部分形状与服装模板数据库255中的牛仔服装模板进行比较,数字服装制作模块可以确定所接收的图像是一条牛仔裤的图像。此外,基于确定服装是一条牛仔裤,数字服装制作模块可以连接该部分形状以生成一条3d数字牛仔裤930。如本文将进一步描述,3d数字牛仔裤930可以是拼贴的。此外,访问模块244可以随身体模型信息一起接收技术封装104处的拼贴服装模型。仿真模块246可以使用该信息来生成遮盖在身体模型上的服装模型,并且可以根据渲染遮盖在身体模型上的服装模型来生成可穿戴物品图像。

仿真模块266可以将拼贴和材料特性作为输入,并且可以输出遮盖在身体模型上的可穿戴物品的图像,作为可穿戴物品图像。此外,仿真模块246可以生成环境的模型,并且使用诸如分割模块130的各种模块来处理环境并生成具有放置区域数据的环境图像。仿真模块266可以使用数字化1610、建模1620、仿真1630和自动化1640技术来生成可穿戴物品和情境两者的三维仿真。如果每个可用的情境都与每个可用的可穿戴物品一起使用,则由于情境图像的预生成需要大量的图像,因此这些都是单独生成的。此外,这使得可以使用根据特定用户定制的身体模型来单独生成可穿戴物品图像。此外,这使得可以实现模块化系统,其中,例如通过使用移动电话相机拍摄可以发送到访问模块244并由仿真模块246来处理的场景图片,用户可以向系统提供其自己的情境数据。

对于可穿戴物品,仿真模块266可以基于仿真力(例如,摩擦力、缝合力)来移动点以适应3-d身体模型。另外,基于这种建模,这些点通过弹簧连接,并且可以基于仿真力(例如,重力、服装的材料特性)来拉伸。假定等式都是内在关联的,则仿真模块266可以求解等式组。在一个示例中,等式组可以基于每个顶点上的弹簧力。

随后,图10a-f示出了与示例用户界面上的物品情境图像中显示的身体模型和可穿戴物品信息集成的情境的方面。

图10a示出了移动设备1000,其可以类似于设备202、设备10、计算设备1200或本文所描述的任何其他设备。移动设备1000包括用作输出显示和用户界面的触摸屏显示器1001。触摸屏显示器1001显示多个可穿戴物品1030的图像,其可以包括用于选择可穿戴物品作为虚拟试衣间的一部分的界面。在某些实施例中,从触摸屏显示器1001选择可穿戴物品130可以是上面针对操作558所述的可穿戴物品的选择的一部分。

触摸屏显示器1001还显示多个环境图像的选择按钮,每个选择按钮与不同的情境相关联。这些选择按钮被显示为与情境a相关联的选择按钮1020i、与情境b相关联的选择按钮1024i以及与情境n相关联的选择按钮1028i。虚拟试衣间区域1050输出用户选择的图像。在图10a中,虚拟试衣间区域1050显示无情境的可穿戴物品图像1040。在某些实施例中,虚拟试衣间区域1050的中心区域可以与使用户能够平移或旋转在虚拟试衣间区域1050中输出的图像的用户界面相关联。这可以特别地与使用三维模型来生成可穿戴物品图像的实施例相关联。在这样的实施例中,物品选择界面区域1012可以是用于滚动物品选项的界面。

在物品选择界面区域1012上进行的滑动交互可以用于选择队列中的下一个可穿戴物品。当接收到这样的用户输入时,设备可以接收新选择的物品的可穿戴物品图像,并且执行用于生成情境图像的叠加处理。

类似地,情境选择界面区域1014可以使得滑动界面能够从情境的顺序列表中选择下一个或前一个的情境。在移动设备1014的情境选择界面区域1014处接收这样的输入可以使移动设备1014访问包括环境图像和预生成的放置区域信息的情境数据,并且将情境数据与先前选择的物品的物品数据一起使用,以生成情境图像。

然后,图10b示出了虚拟试衣间区域1050,其显示使用可穿戴物品图像1040和与情境a相关联的环境图像1020而生成的情境图像。第一放置区域1041与第二放置区域1043一起示出。在某些实施例中,如上所述,可以使用用户输入来生成具有相同环境图像和可穿戴物品图像、但使用不同放置区域的第二情境图像。在某些实施例中,用户可以使用显示器1001的界面来输入用户生成的放置区域。这也可以用于基于用户生成的放置区域来生成新的情境图像。

然后,图10c示出了虚拟试衣间区域1050,其显示根据可穿戴物品图像1040和与情境b相关联的环境图像1024而生成的情境图像。然后,图10d示出了虚拟试衣问区域1050,其显示根据可穿戴物品图像1040和与情境n相关联的环境图像1028而生成的情境图像。这种不同的情境图像可以由诸如成像模块248的成像模块响应于用户选择并且如上所述来生成。

另外,用户可以提供信息来生成或修改某些情境信息。图10e和10f两者示出了根据可穿戴物品图像1040和同一个情境生成的情境图像,但是在环境图像1029a中,第一区段具有第一颜色,并且在环境图像1029b中,所述情境的同一第一区段具有不同于第一颜色的第二颜色。因此可以使用用户输入来调整环境图像。当发生这样的调整时,可穿戴物品图像与环境图像之间的边界的细节可能改变,因此将可穿戴物品图像叠加在环境上的过程可能改变。因为边界和侵蚀区域将相同,所以在某些实施例中,仅当环境区段的颜色响应于改变环境区段颜色的用户输入而改变时,才可以执行图像滤波处理以生成新的合成图像。

在各种实施例中,本文描述的模块可以存储在计算设备202的存储器236中,如图1中最初描述的。附加文件和模块可以包括在各种实施例中,以用于生成在设备上输出的情境图像。文件系统242可以包括以下文件中的一个或多个:服装模型文件;提取几何文件;提取纹理文件;缝合信息文件;服装模板数据库;遮盖参数文件;仿真参数文件;和仿真结果几何文件。附加的这样的模块可以包括边界提取模块;纹理映射模块;拼贴模块;缝合模块;遮盖模块;和仿真模块,以上全部配置为彼此通信(例如,经由总线、共享存储器或交换机)。本文描述的任何一个或多个模块可以使用硬件(例如机器的一个或多个处理器)或硬件与软件的组合来实现。例如,本文描述的任意模块可以将处理器(机器的一个或多个处理器中的处理器)配置为执行本文针对该模块描述的操作。此外,这些模块中的任何两个或更多个模块可被合并为单一模块,且本文中针对单一模块描述的功能可以再划分到多个模块中。此外,根据各种示例实施例,本文描述为在单个机器、数据库或设备中实施的模块可以分布在多个机器、数据库或设备中。

上述每个元素可以存储在前述存储设备中的一个或多个中,并且对应于用于执行上述功能的指令集。上述模块或程序(例如,指令集)不需要被实现为单独的软件程序、程序或模块,并且因此这些模块的各种子集可以在各种示例实施例中组合或以其他方式重新布置。在一些示例实施例中,存储器236可以存储上述模块和数据结构的子集。此外,存储器236可以存储上面没有描述的附加模块和数据结构。

用于实现仿真模块246的实际服务器数量以及如何在其中分配功能,不同实施方式之间将不同,并且可以部分地取决于系统100在高峰使用时段期间以及在平均使用时段期间所处理的数据业务量。

图11是示出了根据一些示例实施例的能够从机器可读介质1122(例如非暂时性机器可读介质、机器可读存储介质、计算机可读存储介质或其任意适当组合)读取指令1124,并完全或部分执行此处讨论的方法中的任意一种或多种的计算设备1100的组件。具体地,图11示出了计算机系统(例如,计算机)的示例形式的计算设备1100,在该计算机系统中,可以完全或部分执行用于使计算设备1100执行本文讨论的方法中的任意一种或更多种的指令1124(例如,软件、程序、应用、小程序、app或其他可执行代码)。计算设备202、商户服务器系统502和客户端设备510可以全部使用至少一个计算设备1100或下面描述的计算设备1100的不同元素来实现。

在替代实施例中,计算设备1100作为独立设备操作或者可以连接(例如,联网)到其他机器。在联网部署中,计算设备1100可以以服务器-客户端网络环境中的服务器机器或客户端机器的资格操作,或者作为分布式(例如对等)网络环境中的对等机器操作。计算设备1100可以是服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、蜂窝电话、智能电话、机顶盒(stb)、个人数字助理(pda)、web设备、网络路由器、网络交换机、网桥或者能够顺序地或以其他方式执行指令1124的任何机器,所述指令指定了该机器要采取的动作。此外,虽然仅示出了单个机器,但术语“机器”还应视为包括独立或联合执行指令1124以执行本文讨论的方法中的任意一种或更多种的全部或部分的机器的任意集合。

计算设备1100包括被配置为彼此经由总线1108通信的处理器1102(例如中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp、,专用集成电路(asic)、射频集成电路(rfic)、或其任意适当组合)、主存储器1104和静态存储器1106。处理器1102可以包含由一些或所有指令1124可暂时或永久地配置的微电路,使得处理器1102可配置为全部或部分地执行本文所描述的方法中的任意一种或多种。例如,处理器1102的一个或更多个微电路的集合可配置为执行本文描述的一个或更多个模块(例如软件模块)。

计算设备1100还可以包括图形显示器1110(例如等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪、阴极射线管(crt)或能够显示图形或视频的任何其他显示器)。计算设备1100还可以包括字母数字输入设备1112(例如键盘或键区)、光标控制设备1114(例如鼠标、触摸板、轨迹球、操纵杆、运动传感器、眼动跟踪设备或其他指向仪器)、存储单元1116、音频生成设备1118(例如声卡、放大器、扬声器、耳机插座或其任意适当组合)以及网络接口设备1120。

存储单元1116包括其中存储有指令1124的机器可读介质1122(例如有形且非瞬态机器可读存储介质),所述指令824实现本文描述的方法或功能中的任意一个或多个。在计算设备1100执行之前或期间,指令1124还可以完全地或至少部分地驻留在主存储器1104内、处理器1102内(例如,在处理器的高速缓存存储器内)或两者。因此,主存储器1104和处理器1102可以视为机器可读介质(例如有形和非瞬态机器可读介质)。可以通过网络34经由网络接口设备1120发送或接收指令1124。例如,网络接口设备1120可以使用任何一个或更多个传输协议(例如,超文本传输协议(http))来传送指令1124。

机器可读介质1122可以包括磁盘或光盘存储设备,诸如闪速存储器的固态存储设备或一种或多种其它非易失性存储设备。存储在计算机可读存储介质上的计算机可读指令是由一个或多个处理器解释的源代码、汇编语言代码、目标代码或另一指令格式。

在一些示例性实施例中,计算设备1100可以是诸如智能电话或平板计算机的便携式计算设备,并且具有一个或多个附加输入组件1130(例如,传感器或仪表)。这样的输入组件1130的示例包括图像输入组件(例如一个或多个相机)、音频输入组件(例如麦克风)、方向输入组件(例如罗盘)、位置输入组件(例如全球定位系统gps接收机)、取向组件(例如陀螺仪)、运动检测组件(例如一个或多个加速计)、高度检测组件(例如高度计)、以及气体检测组件(例如气体传感器)。这些输入组件中的任意一个或多个获得的输入可访问和可用于被此处描述的任一模块使用。在某些实施例中,输入组件1130可以用于生成包括环境图像的情境数据,以及诸如原始可穿戴物品图像的可穿戴物品数据。原始可穿戴物品图像可以与身体模型一起被处理,以通过例如从原始可穿戴物品图像中消除背景信息来生成可由系统使用的可穿戴物品图像。

如本文所使用的,术语“存储器”指能够临时或永久地存储数据的机器可读介质,并且可认为包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存以及高速缓存存储器。虽然机器可读介质1122在示例实施例中被示为是单个介质,但是术语“机器可读介质”应当被认为包括能够存储指令1124的单个介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。术语“机器可读介质”还应被认为包括能够存储指令1124以供计算设备1100执行的任何介质或多个介质的组合,使得当由计算设备1100的一个或多个处理器(例如,处理器1102)执行指令1124时,使得计算设备1100全部或部分地执行本文所描述的方法中的任意一种或多种。因此,“机器可读介质”指单个存储装置或设备、以及基于云的存储系统或包括多个存储装置或设备的存储网络。因此,术语“机器可读机制”应看作包括但不限于固态存储器、光学介质、磁介质或其任意适当组合的一个或多个有形(例如非临时)数据仓库。术语“机器可读介质”也应被认为包括携带机器可读指令的瞬态信号,例如通过网络发送的信号。

为了说明的目的,前面的描述已经参考具体实施例进行了描述。然而,上面的说明性讨论并非旨在穷举或者将本公开限制于所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择和描述实施例以便最好地解释本公开的原理及其实际应用,从而使得本领域技术人员能够最佳地利用本公开和具有适合于预期的特定用途的各种修改的各种实施例。

在整个说明书中,复数实例可以实现被描述为单数实例的组件、操作或结构。虽然一个或更多个方法的各个操作被示意和描述为分离的操作,但是各个操作之一或更多个可以同时执行,并且无需按所示顺序执行操作。在示例配置中被示出为分离部件的结构和功能可以被实现为组合的结构或部件。类似地,被示为单个部件的结构和功能可以被实现为分离的部件。这些和其他变型、修改、添加和改进落入本主题的范围内。

某些实施例在本文中被描述为包括逻辑或多个组件、模块或机制。模块可以包括软件模块(例如,在机器可读介质上或传输介质中存储或实现的代码)、硬件模块或者其任意合适的组合。“硬件模块”是能够执行某些操作的有形(例如非临时)单元,并且可以某物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如独立的计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或多个硬件模块(例如处理器或处理器组)可由元件(例如应用或应用部分)配置为操作为执行本文描述的特定操作的硬件模块。

在一些实施例中,硬件模块可以按照机械方式、电子方式或其任意适当组合来实现。例如,硬件模块可以包括永久地被配置为执行特定操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,如现场可编程门阵列(fpga)或asic。硬件模块还可以包括由软件临时配置为执行特定操作的可编程逻辑或电路。例如,硬件模块可以包括通用处理器或其他可编程处理器中包含的软件。应理解:以机械方式、以专用和永久配置的电路或以临时配置的电路(例如由软件配置)实现硬件模块的决定可出于成本和时间的考虑。

因此,短语“硬件模块”应理解为涵盖有形实体,并且使得所述有形实体是在物理上构造、永久配置(例如硬线连接)或临时配置(例如编程)为以特定方式操作或执行此处描述的特定操作的实体。如本文所使用的,“硬件实现的模块”指硬件模块。考虑临时配置(例如编程)硬件模块的实施例,无需在任一时刻配置或实例化硬件模块中的每一个。例如,如果硬件模块包括被软件配置成为专用处理器的通用处理器,则通用处理器可以在不同时刻被配置为分别不同的专用处理器(例如包括不同的硬件模块)。因此,软件(例如软件模块)可以将一个或多个处理器例如配置为在一个时刻构成特定硬件模块并在另一时刻构成不同的硬件模块。

硬件模块可以向其他硬件模块提供信息并从其他硬件模块接收信息。因此,所描述的硬件模块可以被看作通信地耦接。如果同时存在多个硬件模块,则可以通过两个或更多个硬件模块之间的信号传输(例如通过适当的电路和总线)实现通信。在多个硬件模块在不同时间配置或实例化的实施例中,可以例如通过存储并获取多个硬件模块可访问的存储器结构中的信息来实现这样的硬件模块之间的通信。例如,一个硬件模块可以执行操作并在与其通信耦接的存储设备中存储该操作的输出。另一硬件模块接着可以稍后访问存储器设备,以取得并处理所存储的输出。硬件模块还可以发起与输入或输出设备的通信,并且能够对资源(例如信息的集合)进行操作。

此处描述的示例方法的各种操作可以至少部分地由临时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器执行。无论临时还是永久配置,这样的处理器可以构成操作为执行本文描述的一个或多个操作或功能的处理器实现的模块。如本文所使用的,“处理器实现的模块”指使用一个或多个处理器实现的硬件模块。

类似地,本文描述的方法可以至少部分是处理器实现的,处理器是硬件的示例。例如,方法的至少一些操作可由一个或多个处理器或处理器实现的模块执行。如此处使用的,“处理器实现的模块”指其中硬件包括处理器的硬件模块。此外,一个或多个处理器还可操作以支持在“云计算”环境中或作为“软件即服务”(saas)执行有关操作。例如,操作中的至少一些可由计算机(作为包括处理器的机器的示例)组执行,这些操作可经由网络(例如互联网)并经由一个或多个适当接口(例如应用程序接口(api))来访问。

特定操作的执行可以分布在一个或多个处理器之间,所述处理器不仅位于单个机器上,还跨多个机器部署。在一些示例实施例中,一个或多个处理器或处理器实现的模块可以位于单个地理位置(例如在家庭环境、办公室环境或服务器群中)。在其他示例实施例中,一个或多个处理器或处理器实现的模块可以分布在多个地理位置。

以下是示例实施例。

1.一种系统,包括:访问模块,被配置为:

访问情境数据集合,所述情境数据集合包括描绘第一环境的第一环境图像;仿真模块,耦接到所述访问模块并且被配置为:将环境的第一环境图像分割成第一多个区段;从所述第一多个区段中识别第一地面区段;和基于地面区段和与所述第一多个区段相关联的第一放置提示集合来确定第一环境图像内的至少第一放置区域;和成像模块,被配置为:将可穿戴物品图像叠加在第一环境图像上以生成第一物品情境基础图像,其中可穿戴物品图像被放置在第一放置区域内,并且其中可穿戴物品图像包括可穿戴物品的图像;识别第一物品情境基础图像中的第一侵蚀区域,所述第一侵蚀区域包括第一环境图像和可穿戴物品图像之间的边界的至少一部分;和对侵蚀区域执行图像滤波处理以生成包括可穿戴物品图像的至少一部分和第一环境图像的一部分的第一情境图像。

2.根据权利要求1所述的系统,其中,配置仿真模块以确定至少所述第一放置区域包括以下配置:识别所述第一地面区段的多个无遮挡部分;针对所述第一地面区段的所述多个无遮挡部分中的每一个,确定从所述无遮挡部分朝向天花板区段的无遮挡距离;根据所述第一地面区段的所述多个无遮挡部分和每个无遮挡部分朝向所述天花板区段的相关联的无遮挡距离,识别包括所述第一放置区域的多个放置区域;至少部分地基于所述放置区域与遮挡物区段集合和多个区段的相关情境区段的集合的接近度,从多个放置区域中选择所述第一放置区域。

3.根据权利要求1所述的系统,其中,将所述可穿戴物品图像叠加在所述第一环境图像上以生成所述第一物品情境基础图像的配置包括以下配置:缩放可穿戴物品图像的物品尺寸,以匹配第一放置区域的放置尺寸,并将物品比例与环境比例相匹配;对可穿戴物品图像进行重采样以将可穿戴物品图像像素分辨率与第一环境图像分辨率相匹配;和在第一环境图像的第一放置区域的至少一部分上叠加经缩放的下采样可穿戴物品图像。

4.根据权利要求1所述的系统,还包括:移动设备,包括至少一个处理器和耦接到所述至少一个处理器的存储器,其中所述移动设备还包括访问模块、仿真模块和成像模块。

5.根据权利要求4所述的系统,其中,所述移动设备还包括耦接到所述访问模块的相机模块,所述相机模块被配置为捕获所述第一环境图像。

6.根据权利要求5所述的系统,还包括耦接到所述成像模块的显示模块,其中所述显示模块被配置为在所述移动设备的显示器上输出第一情境图像。

7.根据权利要求6所述的系统,其中,所述移动设备还包括用户界面模块,所述用户界面模块被配置为:从所述用户界面模块的虚拟市场界面接收选择所述可穿戴物品的第一用户输入;和从用户界面模块的虚拟市场界面接收选择第二可穿戴物品的第二用户输入。

8.根据权利要求7所述的系统,其中,所述移动设备还包括耦接到所述访问模块和所述至少一个处理器的天线;其中所述访问模块还被配置为:通过天线从网络接收所述可穿戴物品图像;和通过天线从网络接收第二可穿戴物品图像,其中第二可穿戴物品图像表示第二可穿戴物品,并且第二可穿戴物品与所述可穿戴物品不同。

9.根据权利要求8所述的系统,其中,所述成像模块还被配置为:将第二可穿戴物品图像叠加在第一环境图像上以生成第二物品情境基础图像,其中第二可穿戴物品图像被放置在第一放置区域内;识别所述第二物品情境基础图像中的第二侵蚀区域,所述第二侵蚀区域包括所述第一环境图像和所述第二可穿戴物品图像之间的边界的至少一部分;和对第二侵蚀区域执行图像滤波处理以生成包括所述第二可穿戴物品图像的至少一部分和所述第一环境图像的第二部分的第二情境图像。

10.根据权利要求1所述的系统,还包括:第一计算设备,包括成像模块和显示模块,所述显示模块将所述第一情境图像输出到所述第一计算设备的显示器;服务器计算机,通过网络通信地耦接到第一计算设备,所述服务器计算机包括访问模块和仿真模块;和数据库,包括所述情境数据集合,其中所述访问模块从所述数据库接收所述情境数据集合。

11.根据权利要求10所述的系统,其中,所述情境数据集合还包括描绘与所述第一环境不同的第二环境的第二环境图像;其中所述仿真模块还被配置为:将所述第二环境图像分割成第二多个区段;从所述第二多个区段中识别第二地面区段;和基于所述第二地面区段和与所述第二多个区段相关联的第二放置提示集合来确定所述第二环境图像内的至少第二放置区域。

12.根据权利要求11所述的系统,其中,所述第一计算设备还包括用户界面模块,所述用户界面模块被配置为:接收选择所述第一环境图像的第一用户输入,其中响应于所述第一用户输入,生成所述第一情境图像并显示在所述显示器上;和在显示第一情境图像之后,接收选择第二环境图像的第二用户输入,其中响应于所述第二用户输入,所述成像模块被配置为:将第二可穿戴物品图像叠加在第一环境图像上以生成第二物品情境基础图像,其中可穿戴物品图像被放置在第二放置区域内;识别所述第二物品情境基础图像中的第二侵蚀区域,所述第二侵蚀区域包括所述第二环境图像和所述可穿戴物品图像之间的边界的至少一部分;对第二侵蚀区域执行图像滤波处理以生成包括可穿戴物品图像的至少第二部分和第二环境图像的一部分的第二情境图像;和将第二情境图像传送到显示模块以替换显示器上的第一情境图像。

13.一种方法,包括:在包括至少一个处理器和耦接到所述至少一个处理器的存储器的设备的访问模块处访问情境数据集合,所述情境数据集合包括描绘第一环境的第一环境图像;通过通信耦接到访问模块的仿真模块将环境的第一环境图像分割成第一多个区段;从所述第一多个区段中识别第一地面区段;基于地面区段和与所述第一多个区段相关联的第一放置提示集合来确定第一环境图像内的至少第一放置区域;通过成像模块将可穿戴物品图像叠加在第一环境图像上以生成第一物品情境基础图像,其中可穿戴物品图像被放置在第一放置区域内,并且其中可穿戴物品图像包括可穿戴物品的图像;识别所述第一物品情境基础图像中的第一侵蚀区域,所述第一侵蚀区域包括所述第一物品情境基础图像中所述第一环境图像和所述可穿戴物品图像之间的边界的至少一部分;和对侵蚀区域执行图像滤波处理以生成包括穿衣身体模型和环境的一部分的图像的第一情境图像。

14.根据权利要求13所述的方法,其中,确定至少所述第一放置区域包括:识别所述第一地面区段的多个无遮挡部分;针对所述第一地面区段的所述多个无遮挡部分的每个放置区域,确定从所述无遮挡部分朝向天花板区段的无遮挡距离;根据所述第一地面区段的所述多个无遮挡部分和每个无遮挡部分朝向所述天花板区段的相关联的无遮挡距离,识别包括所述第一放置区域的多个放置区域;至少部分地基于所述放置区域与遮挡物区段集合和多个区段的相关情境区段的集合的接近度,从多个放置区域中选择所述第一放置区域。

15.根据权利要求1所述的方法,其中,将所述可穿戴物品图像叠加在所述第一环境图像上以生成第一物品情境基础图像包括:缩放可穿戴物品图像的物品尺寸,以匹配第一放置区域的放置尺寸,并将物品比例与环境比例相匹配;对可穿戴物品图像进行下采样以将可穿戴物品图像像素分辨率与第一环境图像分辨率相匹配;和在第一环境图像的第一放置区域的至少一部分上叠加经缩放的下采样可穿戴物品图像。

16.根据权利要求15所述的方法,其中,识别所述第一物品情境基础图像中的所述第一侵蚀区域包括:通过识别第一物品情境基础图像的每个像素来识别边界像素,所述边界像素是:来自可穿戴物品图像的叠加像素;并且与来自第一环境图像的至少一个像素相邻。

17.根据权利要求16所述的方法,其中,识别所述第一物品情境基础图像中的所述第一侵蚀区域还包括:确定所述可穿戴物品图像的尺寸与所述第一环境图像的尺寸的比率;基于所述比率从侵蚀距离表中选择侵蚀距离;选择距所述边界像素在所述侵蚀距离内的每个像素作为包括所述第一侵蚀区域的侵蚀像素集合。

18.根据权利要求17所述的方法,其中,所述图像滤波处理包括使用高斯滤波器对所述侵蚀像素集合中的每个像素进行变换的高斯平滑处理。

19.根据权利要求13所述的方法,还包括:从数据库访问服装的三维服装模型,所述三维服装模型包括表示服装表面的服装点;访问人的身体测量;使用处理器,基于身体测量来生成三维身体模型;将所生成的三维身体模型的至少一部分定位在服装点内;基于将所生成的三维身体模型定位在服装点内,计算作用在服装点的子集上的一个或多个仿真力;基于计算出的一个或多个仿真力,生成可穿戴物品图像作为遮盖在三维身体模型上的三维服装模型的第一图像。

20.一种包括指令的计算机可读介质,所述指令在被至少一个处理器执行时使得设备:访问情境数据集合,所述情境数据集合包括描绘第一环境的第一环境图像;将环境的第一环境图像分割成第一多个区段;从所述第一多个区段中识别第一地面区段;识别所述第一地面区段的多个无遮挡部分;针对第一地面区段的多个无遮挡部分的每个放置区域,确定从无遮挡部分朝向天花板区段的无遮挡距离;根据所述第一地面区段的所述多个无遮挡部分和每个无遮挡部分朝向所述天花板区段的相关联的无遮挡距离,识别包括第一放置区域的多个放置区域;至少部分地基于所述放置区域与遮挡物区段集合和多个区段的相关情境区段的集合的接近度,从多个放置区域中选择所述第一放置区域;缩放可穿戴物品图像的物品尺寸,以匹配第一放置区域的放置尺寸,并将物品比例与环境比例相匹配;对可穿戴物品图像进行下采样以将可穿戴物品图像像素分辨率与第一环境图像分辨率相匹配;在所述第一环境图像的所述第一放置区域的至少一部分上叠加经缩放的下采样可穿戴物品图像以生成第一物品情境基础图像;识别第一物品情境基础图像中的第一侵蚀区域,所述第一侵蚀区域包括第一环境图像和可穿戴物品图像之间的边界的至少一部分;和对侵蚀区域执行图像滤波处理以生成包括可穿戴物品图像的至少一部分和第一环境图像的一部分的第一情境图像。

21.一种携带机器可读指令的机器可读介质,所述机器可读指令在被机器的一个或多个处理器执行时,使所述机器执行根据权利要求13至19中任一项所述的方法。

本文讨论的主题的一些部分可以用算法或对数据的操作的符号表示来呈现,所述数据存储为机器存储器(例如计算机存储器)内的比特或二进制数字信号。这样的算法或符号表示是数据处理技术领域普通技术人员用来向本领域其他技术人员传达他们工作实质的技术的示例。如本文所使用的,“算法”是操作的自洽序列或导致期望结果的类似处理。在该上下文中,算法和操作涉及对物理量的物理操作。通常但非必要地,这样的量可以采取能够由机器存储、访问、传输、组合、比较或以其他方式操纵的电气、磁或光学信号的形式。有时,主要由于常见用法的原因,使用诸如“数据”、“内容”、“比特”、“值”、“元素”、“符号”、“字符”、“项”、“数”、“数字”等词语来指代这样的信号是方便的。然而,这些词语仅仅是方便的标记,并且应与适当的物理量相关联。

除非另行具体说明,本文使用例如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”等词语的讨论可以指操纵或变换被表示为一个或多个存储器(例如易失性存储器、非易失性存储器或其任意组合)、寄存器或接收、存储、发送或显示信息的其他机器组件内的物理(例如电子、磁或光学)量的数据的机器(例如计算机)的动作或过程。此外,除非另行具体说明,如专利文献中常见的,本文中的术语“一”或“一个”用于包括一个或多于一个实例。最后,如本文所使用的,除非特别说明,连词“或”指非排他的“或”。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1