用于从三维模型生成虚拟内容的系统和方法与流程

文档序号:11333829阅读:348来源:国知局
用于从三维模型生成虚拟内容的系统和方法与流程

相关申请的交叉引用

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

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



背景技术:

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

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

附图说明

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

具体实施方式

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

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

例如,顾客可能正在寻找一件和朋友晚上约会的服装。顾客使用联网计算设备访问在线商店,在线商店提供具有可选背景情境的虚拟试衣间。当顾客已经选择了多件服装作为购买选项时,顾客还可以从多个不同选项中选择商店提供的环境模型,例如正式晚宴环境、公园环境、海滩环境、家庭环境和其他这类环境等。在顾客选择之前,对与环境相关联的模型进行预处理,以识别环境模型内适合将身体模型放置在衣服模型内的一个或多个放置空间。衣服模型可以从衣服的照片生成,可以从计算机辅助设计(cad)文件或从供应商或制造数据生成。当系统具有可穿戴物品模型和包括识别的放置空间的环境模型时,系统可以将穿戴该物品的身体模型放置在放置空间中以创建情境模型。可以设置和调整与照明、阴影和其他这些渲染变量相关的各种渲染值,作为从情境模型渲染图像的一部分。然后可以在屏幕上显示在用户选择的情境中的衣服图像。顾客设备上的用户界面可以使得顾客能够针对所选择的多件服装执行相同的处理,以在所选择的环境中在用户选择的每件服装的表示之间来回切换。类似地,用户可以针对同一件服装在不同环境之间切换,以便在不同的情境中查看服装。每个选择可以生成新的情境模型,其中,响应于用户选择,从生成的情境模型来渲染图像。

在其他示例实施例中,用户可以提供来自用户拍摄的照片的环境图像。系统可以分析图像以识别或修改现有的环境模型。然后,该环境模型可以与穿衣的身体模型组合以生成情境模型,并且可以向用户呈现来自情境模型的图像。例如,用户可以使用移动设备拍摄照片,并且将照片处理成环境图像,以识别或生成上述具有相关联的放置空间的环境模型。然后,可以将遮盖在身体模型上的衣服模型添加到从用户照片识别的环境模型中。在某些实施例中,在系统可以提供初始放置空间和图像视角的情况下,可以提供选项以选择其它预先计算的放置空间和/或视角。可以使用用户界面将可穿戴物品模型移动到环境模型中的不同放置空间,其中可以从更新后的情境模型来渲染新的情境图像。

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

另外,在线购物与实体店购物的一个主要区别在于顾客可以感知到的细节数量。这种差异构成了数字商务效能的主要障碍。本文描述的实施例为购物者提供了关于潜在购买的附加细节,并且该技术帮助顾客克服实体与数字之间屏障,因此可以增强使用本文所述实施例的在线商务渠道的效力。

图1是示出根据示例实施例的系统100的框图。系统100包括经由网络34(例如互联网)连接到计算设备202的联网设备10。计算设备202通常包括用于执行存储在存储器236中的模块、程序或指令以执行处理操作的一个或多个处理单元(cpu)222;一个或多个通信接口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涉及可用于生成情境模型的元素的处理,但是其也涉及将这些元素合并到单个情境模型中。仿真模块246可以使用物品模型,通过对可穿戴物品模型内的身体模型的放置进行建模,或者通过将可穿戴物品模型贴附到身体模型,来生成穿衣身体模型。一旦身体模型和可穿戴物品模型合并而产生穿衣身体模型,则穿衣身体模型可以与环境模型合并以产生情境模型。可以通过例如切换身体模型、可穿戴物品模型或环境模型来改变任何模型以生成新的情境模型。下面还讨论诸如仿真模块248的仿真模块的附加细节。

渲染模块248然后获取由仿真模块246生成的情境模型,并且渲染可以作为情境图像显示给用户的二维图像。渲染模块248可用于调整与阴影、照明、图像透视或其它这样的渲染特征相关的渲染值。

然后,渲染模块248所渲染的图像可以被传递到显示模块250以在输出设备上显示。显示模块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被配置为从仿真模块246创建的情境模型生成情境图像。在其它实施例中,这些模块中的每一个可以单独地或以任何可能的组合一起实现。以下参考图3和图4进一步详细描述这些模块中的每一个。

图3示出了根据本文所述的实施例的一个示例方法300。尽管参考图1和图2的元素描述了方法300,也可以使用不同实施例中的替代的设备和模块来实现方法300。方法300从操作310开始,其包括访问情境数据集合,所述情境数据集合包括第一环境的第一环境模型。这还包括访问可穿戴物品的三维可穿戴物品模型和访问三维身体模型,其中,所述三维可穿戴物品模型包括表示可穿戴物品的表面的可穿戴物品点,所述三维身体模型包括身体的三维数字表示。在各种实施方式中,可以一起或分开地访问该数据。根据用户对情境、物品和身体模型的选择,对不同类型数据的访问可能还会在系统操作期间重新出现。

情境数据集合至少包括描绘第一环境的第一环境模型。在各种实施例中,情境数据集合可以包括任何数量的环境图像、环境模型、要添加到环境模型的对象或其他这样的元素。该数据可以在单个连续的数据流中被接收,或者在分离的通信中被接收,其中每个通信包含为将要向物品提供情境的单个环境元素的全部或一部分。可以从多个不同的来源访问这样的环境模型和模型元素。图像模块102可以包括存储在包括访问模块244的设备的存储器中的环境图像或用于创建环境或环境中的各个对象的图像。技术封装模块104可以包括各种类型的环境模型和环境数据,包括三维环境信息,所述三维环境信息可以用于生成环境的三维模型以及生成环境的二维图像作为环境图像,所述三维模型和二维图像可以是提供给用户以便选择不同情境的环境的可选择界面的一部分。这可以通过使用环境模型渲染任何二维图像来完成。在某些实施例中,如本文所述,可以使用计算出的作为放置空间的优选视角的视点来执行渲染。技术封装模块104还可以包括关于照明、风、身体模型、织物模型信息或关于环境的其他数据,这些信息或数据在某些实施例中可用于生成环境模型。cad文件模块106可以包括描述环境、对象或身体的cad文件。在某些实施例中,cad文件模块106和技术封装模块104可一起用于根据作为一个情境的环境的三维计算机模型来渲染环境图像。另外,在某些实施例中,环境图像的上述任何来源的位置可以远离设备,并且网络接口模块108可以与数据库设备或其他计算设备进行通信,以检索该情境数据集合的任何部分。

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

然后,操作320涉及基于第一放置提示集合确定至少第一放置空间和第一放置空间在第一环境模型内的第一视角。该确定的一部分可能涉及确定环境的各个元素以识别放置提示或环境提示。该提示可以被提供为在环境中使用的环境模型或对象的一部分。在其他实施例中,由于用户为不同的环境模型选择不同的属性,因此可以根据来自多个用户的用户交互集合来推断提示。在某些实施例中,第一环境模型内的第一放置空间可以基于地板区段和地板区段附近的对象的放置特征。在最简单的实施例中,放置空间可以被识别为环境模型内的矩形空间,其中,在所述空间和优选视角之间没有遮挡物,并且放置空间的视图不会被位于所述空间和视点处的观察空间之间的物品所遮挡。在某些实施例中,可以通过从视角可见的背景物体以及与模型中的对象相关联的情境提示或特征提示来确定优选视角。在一个可能的实施例中,系统包括默认视角下的默认仰角。仰角是指由从视点到放置空间的地面区域中的点的直线、以及从放置空间的地面区域中的点到视点正下方的地面中的点的直线形成的角度。系统处理围绕放置空间的一整圈中的放置点集合。对于每个放置点,得分可能与从每个视角可见的背景物体相关联。另外,仰角高于和低于默认仰角的一定数量的视角也可能具有计算的得分。遮挡物和过多数量的背景对象可能会降低得分。相关背景物体的均衡放置可能会增加得分。可以选择具有最高分数的点作为优选视角。在某些实施例中,放置提示可以包括与可能作为前景的或挡住将包括在放置空间中的物品的对象的接近度。在某些实施例中,放置提示可以是对象的大小细节和对象复杂性细节,所述对象可以是背景对象或环境中部的对象。

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

在某些实施例中,满足放置特征的阈值集合的所有放置空间可以作为放置信息来存储,其中,用户具有用户界面输入以将可穿戴物品模型移动到环境模型内的不同放置位置。在其他实施例中,可以基于环境提示给予每个放置位置一个放置分数。这种环境提示可以从环境图像内具有情境值的区段导出。可以选择具有较高分数的放置空间作为唯一的放置空间,或者可以选择具有最高分数的选定数量的放置空间。在某些实施例中,可以为系统操作者提供用户接口以与仿真模块246对接,从而向系统操作者提供由仿真模块246处理的针对环境模型中的放置空间的选择选项。在其他实施例中,这种选择可以由自动化模块140使用上述任何标准自动进行。

在某些实施例中,放置空间的识别可以作为预处理步骤执行,而不与用户进行任何交互。然后,可以将该放置空间数据作为情境信息与仿真模型所使用的环境模型一起发送,以生成情境模型。在其他实施例中,可以响应于用户对环境或特定可穿戴物品或身体模型的选择来执行放置数据,其中,放置空间是基于身体模型或所选择的可穿戴物品模型的特征来选择的。

在另一实施例中,环境模型由具有地板和其他感兴趣物体(如使用3d对象集合建模的桌子、椅子或其他可合成的环境元素)的三维(3d)场景组成。选择可以放置穿衣身体模型的3d空间或边框。除了3d边框的位置之外,还计算视点集合。以被遮盖的身体模型或可穿戴物品模型完全可见且不被阻挡的方式来计算视点。在某些实施例中,这可以通过将视点均匀地放置在整个场景内,并且利用每个视点进行预渲染来完成。可以针对每个视点来计算服装的可见像素/被遮挡像素的数量,并且可以基于可见像素的数量来选择视点。如上所述,终端用户可以被给予从某些视点集合中选择视点的选项。

然后,操作330涉及将生成的三维身体模型的至少一部分定位在可穿戴物品点内以产生穿衣身体模型。如上所述,用户可以选择不同的身体模型和可穿戴物品模型,并且仿真模块可以通过将衣服模型“遮盖”到身体模型上来合并这些模型,以生成逼真的穿衣身体模型。以下参考图8-9来描述关于产生这种穿衣身体模型的附加细节。

操作340涉及将穿衣身体模型定位在环境模型的第一放置空间内以生成第一情境模型。所生成的情境模型还可以具有可以作为选项提供给用户的附加场景增强器,例如照明、阴影强度、可着色物品皮肤或其他渲染值元素。所有这些元素都可以在最终情境模型中使用。

然后,操作350涉及使用第一情境模型和与第一放置空间相关联的第一视角来生成第一情境图像。在各种实施例中,然后,使用物理精确渲染处理(例如路径跟踪)来渲染从所选择的透视视点看的情境模型的场景,以产生具有期望的终端设备分辨率的情境图像作为最终图像。然后,该图像可以被压缩并发送到输出设备或显示元件。

图4a和4b然后示出了从情境模型的第一视角生成的情境图像401的第一示例。用于生成情境图像401的情境模型包括环境模型420。对象模型420是环境模型420的一部分。还包括穿衣身体模型440。

图4b示出了对图4a所示的包括被遮盖的身体模型440、环境模型420和对象模型450的同一个情境模型,但从不同的视角或视点进行渲染的第二情境图像402,这从环境模型420的元素的不同角度可以看出。图4b还示出了放置空间441和442。可以如上所述,或者使用用于识别被遮盖的身体模型的适当放置空间的任一方法来确定这样的放置空间。在某些实施例中,可以将被遮盖的身体模型定向成面向视点。在其他实施例中,被遮盖的身体模型可以具有用户可针对每个放置空间和每个视点来选择的取向。对于被遮盖的身体模型440的每个新的取向和放置空间定位,可以通过调整环境模型420内被遮盖的身体模型440的放置来生成新的情境模型。此外,用户可以选择同一个情境模型的不同视点或视角,而不改变被遮盖的身体模型440的任何放置。在该实施例中,可以从不同的视角渲染新的图像,而不产生新的情境模型。

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

作为虚拟试衣间交互的一部分,客户端设备510的用户在操作555中选择身体模型。这可以涉及使用默认模型而不需要特定输入下的用户选择,或者可以涉及将用户测量结果传送给商户服务器系统502。作为操作556的一部分,客户端设备510选择的身体模型数据被传送到客户端设备510,并且如果选择了定制身体模型,则身体模型数据可以被传送到商户服务器系统502的身体建模模块。身体模型数据可以包括通用模型的测量。身体模型数据可以包括身体体形和尺寸的cad文件。身体模型数据可以包括根据二维图像生成的三维模型。身体模型数据可以包括根据被识别为合身的用户选择的服装来估计的身体模型尺寸和形状。以下参考图6描述与身体模型选择相关联的附加细节和示例。

在操作558中,浏览在线商店的用户在操作558中选择一个或多个可穿戴商品,并且在操作557中从商户服务器系统502接收商品数据通信。在操作560中,客户端设备510的用户选择情境,并且在操作562中,商户服务器系统502使用该选择来识别或生成环境模型。然后,在操作562中,商户服务器系统502具有生成情境模型所需的全部身体模型、可穿戴物品模型和环境模型信息,并且在操作562中生成情境模型。

然后,渲染模块在操作564中生成情境图像,并将该情境图像传送到客户端设备510。客户端设备510然后在客户端设备510的输出显示器上显示情境图像,作为虚拟试衣间界面的一部分。在操作566中可以使用用户界面来更新身体模型选择、可穿戴物品选择或情境选择。如果使用用户界面来更新这些选择中的任何一个或其他可能的选择,例如放置空间或被遮盖的身体模型取向,则系统处理该选择,并在操作562的重复实例中生成新的情境模型。

操作564还可以涉及选择不需要创建新的情境模型的渲染值。这些值可以包括视角或视点选择以及其它渲染选择,例如照明值、阴影值或在渲染中使用的其他这类变量,而不需要对渲染模型进行调整。可以从客户端设备510向商家服务器系统502发送这些选择,以便在操作568中被接收,并且使用先前创建的情境模型而直接用于渲染新的图像,作为操作564的重复实例的一部分。

在某些替代实施例中,不是在商家服务器系统502上渲染情境图像,而是可以将情境模型传送到客户端设备510,并且可以通过客户端设备510的渲染模块来渲染情境图像。这允许客户端设备510选择和处理不同的视点,而不必在对视点或颜色进行微小改变时与商务服务器系统502进行往返通信。

然后,该处理可以重复多次,重复操作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上的可穿戴物品的情境图像。可穿戴物品的示例包括在身体模型730上显示的所选择的可穿戴物品衬衫710和裤子720。另外,如图所示,在某些实施例中,一个被遮盖或穿衣的身体模型可以包括遮盖在单个身体模型上的多个可穿戴物品模型,从而可以从第一可穿戴物品模型、第二可穿戴物品模型和身体模型生成被遮盖的身体模型。在选择视点以提供可穿戴物品的最大显示的同时允许身体模型的一部分被遮挡的实施例中,可以对多个可穿戴物品模型一起进行处理,以确定与可穿戴物品模型相关联的可见像素的数量。在其他实施例中,只有与所选择的可穿戴物品相关联的像素可用于该计算,而不考虑与默认服装相关联的像素。例如,这可能发生在例如用户正在比较衬衫类型而不考虑身体模型上显示的裤子,或者用户正在考虑衣服而不考虑鞋子的情况下。在某些实施例中,用户可选择将某些可穿戴物品(例如鞋)有意遮蔽,以使用户能够比较另一种可穿戴物品类型(例如衣服),而不被不搭配的鞋子所分心的情境模型中的视点。

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

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

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

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

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

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

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

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

下面描述了实施方式和等式的一些示例。例如,以下是用于三个顶点(即,顶点852、顶点854和顶点856)的样本三角形550的三弹簧实施方式的等式组,所述样本三角形与如图8所示的衬衫810的拼贴服装模型相关联。

(等式1)

(等式2)

(等式3)

其中ks是弹性弹簧常数,kd是阻尼弹簧常数,每个顶点具有位置(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_1v_2)是速度相关的力函数,其基于v_1、v_2的位置向量相比于其原始静止状态的变化。

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

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

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

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

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

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

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

图10a示出了移动设备1000,其可以类似于设备202、设备10、计算设备1200或本文所描述的任何其他设备。移动设备1000包括用作输出显示和用户界面的触摸屏显示器1001。触摸屏显示器1001显示多个可穿戴物品1030的图像,其可以包括用于选择可穿戴物品作为虚拟试衣间的一部分的界面。在某些实施例中,从触摸屏显示器1001选择可穿戴物品1030可以是上面针对操作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而生成的情境图像。在某些实施例中,如上所述,可以使用用户输入来生成具有相同环境图像和可穿戴物品图像、但使用不同放置空间的第二情境图像。在某些实施例中,用户可以使用显示器1001的界面来输入用户生成的放置空间。这也可以用于基于用户生成的放置空间来生成新的情境图像。

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

另外,用户可以提供信息来生成或修改某些情境信息。图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可以视为机器可读介质(例如有形和非瞬态机器可读介质)。可以经由网络接口设备1120在网络34上发送或接收指令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或示例2所述的系统,还包括:

服务器计算机,包括至少一个处理器和耦接到所述至少一个处理器的存储器,其中所述服务器计算机还包括访问模块、仿真模块和渲染模块;以及

移动设备,以通信方式耦接到所述服务器计算机,所述移动设备包括被配置为从所述服务器计算机接收所述第一情境图像并在所述移动设备的显示器上输出所述第一情境图像的显示模块。

4.根据示例1-3中任一项所述的系统,还包括:

移动设备,包括至少一个处理器和耦接到所述至少一个处理器的存储器,其中所述移动设备还包括访问模块、仿真模块和渲染模块。

5.根据示例4所述的系统,其中,所述移动设备还包括:

耦接到所述访问模块的相机模块,其中所述相机模块被配置为捕获第一环境图像,并且其中所述访问模块还被配置为基于对所述第一环境图像的分析来选择所述第一环境模型。

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

7.根据示例6所述的系统,其中,所述移动设备还包括用户界面模块,所述用户界面模块被配置为:

从所述用户界面模块的虚拟市场界面接收用于选择所述可穿戴物品的第一用户输入;和

从用户界面模块的虚拟市场界面接收用于选择第二可穿戴物品的第二用户输入。

8.根据示例7所述的系统,其中,所述移动设备还包括耦接到所述访问模块和所述至少一个处理器的天线;

其中所述访问模块还被配置为:

通过天线从网络接收所述三维可穿戴物品模型;以及

通过天线从网络接收第二可穿戴物品模型,其中第二可穿戴物品图像表示第二可穿戴物品,并且其中第二可穿戴物品与所述可穿戴物品不同。

9.根据示例8所述的系统,其中,所述仿真模块还被配置为响应于第二用户输入:

将生成的三维身体模型的至少一部分定位在第二可穿戴物品模型的第二可穿戴物品点内以产生第二穿衣身体模型;以及

将所述穿衣身体模型定位在环境模型的第一放置空间内以生成第二情境模型。

10.根据示例9所述的系统,其中,所述渲染模块还被配置为:响应于所述第二用户输入,使用所述第二情境模型和与所述第一放置空间相关联的所述第一视角来生成第二情境图像。

11.根据示例1-10中任一项所述的系统,还包括:

第一计算设备,包括渲染模块和显示模块,所述显示模块将所述第一情境图像输出到所述第一计算设备的显示器;

服务器计算机,通过网络以通信方式耦接到第一计算设备,所述服务器计算机包括访问模块和仿真模块;和

数据库,包括所述情境数据集合,其中所述访问模块从所述数据库接收所述情境数据集合。

12.根据示例11所述的系统,其中,所述情境数据集合还包括描绘与所述第一环境不同的第二环境的第二环境模型;

其中所述仿真模块还被配置为基于第一放置提示集合来确定至少第二放置空间和所述第二放置空间在所述第一环境模型内的第二视角。

13.根据示例12所述的系统,其中,所述第一计算设备还包括:

用户界面模块,被配置为:

接收选择所述第一环境的第一用户输入,其中响应于所述第一用户输入,生成所述第一情境图像并显示在所述显示器上;以及

在显示第一情境图像之后,接收选择第二环境的第二用户输入,其中响应于所述第二用户输入:

所述仿真模块被配置为将所述穿衣身体模型定位在所述第二环境模型的所述第二放置空间内以生成第二情境模型;以及

所述渲染模块被配置为根据第二环境模型和第二视角生成第二情境图像;以及

显示模块被配置为输出第二情境图像以替换显示器上的第一情境图像。

14.一种方法,包括:

通过包括耦接到存储器的处理器的第一设备的访问模块,访问情境数据集合,所述情境数据集合包括第一环境的第一环境模型;

访问可穿戴物品的三维可穿戴物品模型,所述三维可穿戴物品模型包括表示所述可穿戴物品的表面的可穿戴物品点;以及

访问三维身体模型,所述三维身体模型包括身体的三维数字表示;

通过仿真模块,基于第一放置提示集合来确定至少第一放置空间和所述第一放置空间在所述第一环境模型内的第一视角;以及

将生成的三维身体模型的至少一部分定位在所述可穿戴物品点内以产生穿衣身体模型;以及

将所述穿衣身体模型定位在环境模型的第一放置空间内,以生成第一情境模型;以及

通过渲染模块,使用所述第一情境模型和与所述第一放置空间相关联的第一视角来生成第一情境图像。

15.根据示例14所述的方法,其中,确定至少所述第一放置空间包括:

识别所述第一环境模型中的第一地面区域的多个无遮挡部分;

针对所述第一地面区域的所述多个无遮挡部分的地面区域,确定从所述无遮挡部分朝向天花板区段的无遮挡距离;

根据第一地面区域的多个无遮挡部分和每个无遮挡部分朝向天花板区段的相关联的无遮挡距离,识别包括所述第一放置空间的多个放置空间;

至少部分地基于所述放置空间与遮挡对象集合和第一环境模型的相关情境对象的集合的接近度,从多个放置空间中选择所述第一放置空间。

16.根据示例15所述的方法,还包括:

至少部分地基于所述第二放置空间与第二遮挡对象集合和第一环境模型的第二相关情境对象集合的接近度,从多个放置空间中选择第二放置空间;

通过所述设备的用户输入接收放置选择输入;

响应于所述放置选择输入,将所述穿衣身体模型从所述第一放置空间重定位到所述环境模型的所述第二放置空间,以生成第二情境模型,并且使用所述第一情境模型和与所述第二放置空间相关联的第二视角来生成第二情境图像。

17.根据示例15或示例16所述的方法,还包括:

设置第一渲染值集合,其中使用所述第一渲染值集合从所述第一情境模型渲染所述第一情境图像;

从用户输入接收识别第二渲染值集合的渲染值选择;以及

响应于所述渲染值选择,使用所述第一情境模型、与所述第一放置空间相关联的第一视角以及所述第二渲染值集合来生成第二情境图像。

18.根据示例17所述的方法,其中,所述渲染值集合包括照明值和阴影强度值。

19.一种包括指令的非暂时性计算机可读介质,所述指令在被至少一个处理器执行时使得设备:

通过所述设备的访问模块访问情境数据集合,所述情境数据集合包括第一环境的第一环境模型;

访问可穿戴物品的三维可穿戴物品模型,所述三维可穿戴物品模型包括表示所述可穿戴物品的表面的可穿戴物品点;以及

访问三维身体模型,所述三维身体模型包括身体的三维数字表示;

通过仿真模块,基于第一放置提示集合来确定至少第一放置空间和所述第一放置空间在所述第一环境模型内的第一视角;以及

将生成的三维身体模型的至少一部分定位在所述可穿戴物品点内以产生穿衣身体模型;以及

将所述穿衣身体模型定位在环境模型的第一放置空间内,以生成第一情境模型;以及

通过渲染模块,使用所述第一情境模型和与所述第一放置空间相关联的第一视角来生成第一情境图像。

20.根据示例19所述的非暂时性计算机可读介质,其中,所述指令还使得所述设备:

在设备的触摸屏界面处接收用于选择第一商户虚拟商店的用户输入;

显示第一虚拟商店用户界面;以及

在访问所述情境数据集合之前,在所述触摸屏界面处接收对所述第一环境的第一环境选择和对所述第一可穿戴物品的第一可穿戴物品选择;

其中,在接收到所述用户输入之前,所述第一放置空间由所述仿真模块来确定,并且响应于所述用户输入,所述穿衣身体模型被定位在所述环境模型内,以生成所述第一情境模型。

21.一种承载计算机可读指令的计算机可读介质,所述计算机可读指令用于控制计算机执行示例14-18中任一项所述的方法。

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

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

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