快速3D模型适配和人体测量的制作方法

文档序号:11450913阅读:219来源:国知局
快速3D模型适配和人体测量的制造方法与工艺
相关申请本国际申请要求于2015年10月14日递交的并且标题为“fast3dmodelfittingandanthropometrics,”的美国专利申请no.14/883,419的优先权,并且还要求于2014年10月17日递交的标题为“fast3dmodelfittingandanthropometricsusingsyntheticdata,”的美国临时申请no.62/065,163的优先权,通过引用的方式将这两者的全文并入本文。本文公开的主题内容一般地涉及使用传感器数据来选择表示感测对象的三维(3d)模型。具体地,本公开涉及与生成3d模型的集合相关并且基于传感器数据将感测对象与该集合中的一个或多个模型进行匹配的系统和方法。
背景技术
:电子市场为用户提供以电子方式购买和出售包括衣服在内的物品的能力。不同的衣服制造商使用不同的尺寸标准。因此,当用户订购衣服时,它们可能合身或不合身。用户可以退回订购的物品并进行交换,这会带来麻烦或费用。3d拍摄系统可以通过使用多个相机或通过拍摄顺序图像并且在照片之间移动个体或相机来从多个角度拍摄个体的图像。基于图像,可以生成个体的3d模型。生成图像包括一定的泄露个人隐私的风险。附图说明在附图中以示例而非限制的方式示出了一些实施例。图1是示出了根据一些示例实施例的适用于使用合成数据的快速3d模型适配和人体测量的网络环境的网络图。图2是示出了根据一些示例实施例的适用于使用合成数据的快速3d模型适配和人体测量的模型适配服务器的组件的框图。图3是示出了根据一些示例实施例的适用于使用合成数据的快速3d模型适配和人体测量的设备的组件的框图。图4是示出了根据一些示例实施例的用于使用合成数据的快速3d模型适配和人体测量的方法的操作的框图。图5是示出了根据一些示例实施例的用于使用合成数据的快速3d模型适配和人体测量的人体模型中的关节位置的代表图。图6是示出了根据一些示例实施例的用于使用合成数据的快速3d模型适配和人体测量的方法的操作的框图。图7是图示说明了根据一些示例实施例的用于使用合成数据的快速3d模型适配和人体测量的方法的流程图。图8是示出了根据一些示例实施例的用于使用合成数据的快速3d模型适配和人体测量的方法的结果的表格。图9是示出了根据一些示例实施例的用于使用合成数据的快速3d模型适配和人体测量的数据库结构的框图。图10是示出了根据一些示例实施例的机器的组件的框图,该机器能够从机器可读介质中读取指令并且执行本文讨论的任何一种或多种方法。具体实施方式下面的说明包括涉及使用合成数据的快速3d模型适配和人体测量的体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机程序。在以下描述中,出于解释的目的,对多个具体细节进行阐述,以提供对示例实施例的透彻理解。然而,本领域技术人员将显而易见的是,本发明主题的实施例可以在没有这些具体细节的情况下实施。一般地,不必详细示出众所周知的指令实例、协议、结构和技术。最近,消费级深度相机已被证明是实用的并迅速进入市场。这些传感器的成本约为200美元并可以在客厅方便地使用。深度传感器也可以集成到诸如平板电脑、手机和可穿戴设备的移动设备中。因此,可以从一般用户获得深度数据,并且可以估计精确的测量。然而,产生高质量的3d人体模型是挑战性的,原因在于这种传感器仅提供具有高噪声电平的低分辨率深度图(通常为320×240像素)。通过使用真实世界身体尺寸分布创建大型合成3d人体模型数据集来解决这一挑战。模型数据集可以遵循真实世界身体参数分布。例如,与体形的分布相比,对各年龄组的男性和女性的身高分布和体重分布了解得更为准确。通过在与实际群体相同的频率分布中生成具有与已知身高和体重相对应的各种体形的模型,与随机模型分布相比提高了潜在匹配的质量。使用关节位置信息从深度图中提取用户的身体测量。关节位置可以与实际关节(例如,踝关节、腕关节和肘关节)或其他重要的身体位置(例如,头关节处和躯干关节处)相对应。可以使用单个正面视图深度图,或者可以使用多个视图。从不同方向拍摄的用户的附加深度图可以提高对用户模型的估计的准确性。在一个示例实施例中,来自opennaturalinteraction组的openni用于报告关节位置信息。身体测量的估计与关节位置周围的局部几何特征组合以形成鲁棒的多维特征向量。使用用户的特征向量和合成模型的特征向量来执行快速最近邻搜索,以标识最接近的匹配。获取的3d模型可以被完全参数化和操纵(rig),这使得能够生成例如标准全身测量、标记的身体部位等的数据。操纵包括例如关节层级和自由度以及关节限制等信息。通过使用操纵数据,模型可以以逼真的方式呈现姿态和动作。通过将模型的骨架映射到关节(例如,由microsoftkinecttm或其他来源提供的关节),可以使获取的3d模型动起来。基于描述身体的形状和姿势参数,服装可以适配至具有逼真皱纹的模型(例如,如lij.等人,fitting3dgarmentmodelsontoindividualhumanmodels,computersandgraphics,2010年12月中所描述的)。在一些示例实施例中,根据输入数据计算用户身体的相对简单的特征,其与精确的全身映射相比的计算量较低。因此,预渲染3d模型的选择与全身映射解决方案相比节省时间和计算。所获取的模型可以用于各种应用,例如购买衣服、虚拟现实、在线游戏以及其他应用。图1是示出了根据一些示例实施例的适用于使用合成数据的快速3d模型适配和人体测量的网络环境100的网络图。网络环境100包括电子商务服务器120和140、模型适配服务器130以及全部经由网络170彼此通信耦接的设备150a、150b和150c。设备150a、150b和150c可以被共同称为“设备150”,或者被统称为“设备150”。电子商务服务器120和140和模型适配服务器130可以是基于网络的系统110的一部分。备选地,设备150可以直接连接到模型适配服务器130,或者通过不同于网络170的本地网络连接到模型适配服务器130,其中,网络170用于连接到电子商务服务器120或140。如以下参照图8所描述的,电子商务服务器120和140、模型适配服务器130以及设备150可以均整体地或部分地实现在计算机系统中。电子商务服务器120和140经由网络170将电子商务应用提供给其他机器(例如,用户设备150)。电子商务服务器120和140还可以直接连接到模型管理服务器130,或者与模型管理服务器130集成。在一些示例实施例中,一个电子商务服务器120和模型适配服务器130是基于网络的系统110的部分,而另一电子商务服务器(例如,电子商务服务器140)与基于网络的系统110分离。电子商务应用可以向用户提供以下方式:彼此直接购买和出售物品、从电子商务应用提供商购买物品并将物品出售给电子商务应用提供商或者以上二者。模型适配服务器130访问预先生成的合成模型。例如,预先生成的合成模型可以存储在模型适配服务器130的存储设备上、存储在由模型适配服务器130可访问的网络存储设备上、或存储在可通过网络170访问的远程服务器上。合成模型可以由模型适配服务器130或另一机器生成。模型适配服务器130可以经由网络170或另一网络将数据提供给其他机器(例如,电子商务服务器120和140或设备150)。模型适配服务器130可以经由网络170或另一网络从其他机器(例如,电子商务服务器120和140或设备150)接收数据。图1中还示出了用户160。用户160可以是人类用户(例如,人类)、机器用户(例如,通过软件程序配置的与设备150和模型适配服务器130交互的计算机)或者它们的任意合适组合(例如,机器辅助的人或者人监管的机器)。用户160不是网络环境100的部分,但与设备150相关联并且可以是设备150的用户。例如,设备150可以属于用户160并且是传感器、台式计算机、车载计算机、平板计算机、导航设备、便携媒体设备、游戏设备、智能电话或能够对用户160成像的传感器的任意其他设备。在一些示例实施例中,模型适配服务器130接收关于用户的数据。例如,附接至设备150a的深度相机可以拍摄用户160的深度图像,并通过网络170将深度图像发送给模型适配服务器130。模型适配服务器130执行用户160的深度图像与预先生成的合成模型的深度轮廓之间的最接近适配匹配。基于最接近适配匹配选择模型。可以将关于模型的模型或信息发送给电子商务服务器120或140、发送给设备150a或其任意合适组合。匹配模型可用于适配、虚拟现实或其他应用。图1中的所示的任意机器、数据库或设备可以用通过软件修改(例如,配置或编程)为专用目的计算机以执行本文针对该机器、数据库或设备描述的功能的通用目的计算机来实现。例如,以下参照图8论述能够实现本文描述的方法的任意一个或多个的计算机系统。此外,图1中示出的机器、数据库或设备的任意两个或多个可以组合到单个机器中,并且本文针对任意单个机器、数据库或设备描述的功能可以再划分到多个机器、数据库或设备中。如本文所使用的,“数据库”是数据存储资源并可以存储结构化为文本文件、表格、电子表格、关系数据库(例如,对象关系数据库)、三元组存储、分层数据存储或它们的任意合适组合。网络170可以是支持机器、数据库和设备(例如,模型适配服务器130和设备150)之间的通信的任意网络。因此,网络170可以是有线网络、无线网络(例如,移动或蜂窝网络)、或其任意合适组合。网络170可以包括构成私有网络、公共网络(例如,互联网)或其任意合适组合的一个或多个部分。图2是示出了根据一些示例实施例的模型适配服务器130的组件的框图。模型适配服务器130被示出为包括全都被配置为彼此通信(例如,经由总线、共享存储器或交换机)的通信模块210、生成模块220、图像处理模块230、匹配模块240和存储模块250。本文描述的任何一个或多个模块可以使用硬件(例如专用硬件组件)或硬件与软件的组合(例如,由软件配置的)来实现。此外,这些模块中的任何两个或多个模块可被合并为单一模块,且本文中针对单一模块描述的功能可以再划分到多个模块中。此外,根据各种示例实施例,本文描述为在单个机器、数据库或设备中实施的模块可以分布在多个机器、数据库或设备中。通信模块210被配置为发送和接收数据。例如,通信模块210可以通过网络170接收传感器数据,并将接收到的数据发送给图像处理模块230。作为另一示例,匹配模块240可以标识要用于用户的模型,并且可以由通信模块210通过网络170将关于模型的信息发送给电子商务服务器120。生成模块220被配置为生成合成模型。例如,群体的身高和体重分布可用于生成用于模型创建的参数。这些参数可以与模型生成工具一起使用,以生成具有与群体的实际身高和体重分布相对应的分布的体形的合成模型群体。在一些示例实施例中,使用包括从身体的激光扫描生成的模型的数据集,例如来自sae国际的美国和欧洲平民表面人体测量资源项目数据集。然而,当激光扫描遭受闭塞、噪声或配准误差时,生成的模型是不完整的,这可能会妨碍系统的性能。通过从不同方向和用不同姿态仔细扫描,可以生成更高质量的模型,例如在faust:datasetandevaluationfor3dmeshregistration,bogo等人,proceedingsieeeconf.计算机视觉与模式标识(2014年6月)中讨论的faust数据集中的高质量的模型。然而,执行扫描所需的附加关注往往限制可以有效地生成的模型的数量。图像处理模块230被配置为接收和处理图像数据。图像数据中的每个图像可以是二维图像、三维图像、深度图像、红外图像、双目图像或其任意合适的组合。例如,可以从相机接收图像。图像处理模块230可以处理图像数据以生成图像中的人或物体的深度图。匹配模块240被配置为使图像处理模块230标识的参数与生成模块220生成的合成模型相匹配。例如,如果用户报告他们的身高和体重,并且用户的图像显示相对于身高的肩宽和臀宽,则存在可用于选择用户的三维模型的实质信息。存储模块250被配置为存储和获取由生成模块220、图像处理模块230和匹配模块240生成和使用的数据。例如,由生成模块220生成的模型可以由存储模块250存储以供匹配模块240获取。由匹配模块240生成的关于匹配的信息也可以由存储模块250存储。电子商务服务器120或140可以向用户请求模型(例如,通过提供用户标识符),其可以由存储模块250从存储器获取并且使用通信模块210通过网络170发送。图3是示出了根据一些示例实施例的设备150的组件的框图。设备150被示出为包括全都被配置为(例如,经由总线、共享存储器或交换机)彼此通信的输入模块310、相机模块320和通信模块330。本文描述的任何一个或多个模块可以使用硬件(例如机器的处理器)或硬件与软件的组合来实现。例如,本文描述的任何模块可以将处理器配置为执行本文中针对该模块描述的操作。此外,这些模块中的任何两个或多个模块可被合并为单一模块,且本文中针对单一模块描述的功能可以再划分到多个模块中。此外,根据各种示例实施例,本文描述为在单个机器、数据库或设备中实施的模块可以分布在多个机器、数据库或设备中。输入模块310被配置为经由用户接口从用户接收输入。例如,用户可以将他们的身高、体重和性别输入到输入模块中,配置相机,选择将要适配到模型的项目等。在一些示例实施例中,基于用户的图像自动确定而不是由用户明确输入身高、体重和性别。相机模块320被配置为捕获图像数据。例如,可以从相机接收图像,可以从红外相机接收深度图像,或者可以从双目相机接收一对图像。通信模块330被配置为将由输入模块310或相机模块320接收的数据传送给模型适配服务器130。例如,输入模块310可以接收包含用户身高和体重的输入,并且通信模块330可以将关于用户的信息发送给模型适配机器130以存储在可由条件模块240访问的数据库中。图4是示出了根据一些示例实施例的模型适配服务器130和设备150来执行生成合成模型的处理400的操作的流程图。在操作410中,访问要建模的群体的年龄、性别、身高和体重分布。例如,可以从多个群体获得的在线人口普查数据中获取数据。在一些示例实施例中,访问更多或更少的分布。例如,可以考虑强壮度和种族。可以使用下表中显示的分布。每个单元格中显示的值是均值(例如,18-24岁的男性的均值身高是176.7厘米),随后在括号中显示标准差。例如,30岁(年龄在25-44岁之间)身高163.5厘米的女性比均值高一个标准差。在操作420中,基于一个或多个所访问的分布来生成模型。也就是说,可以生成模型的群体,以具有与人类群体中的分布属性相似的分布属性。因此,将生成更多具有与均值接近的值的模型,并将生成更少具有较少共同值的模型。可以使用makehuman生成模型,这是一个设计用于逼真的3d人体模型进行原型的开源python框架。makehuman包含标准的操纵(rigged)人类网格,并且可以基于特定虚拟角色的规范化属性生成逼真的人物角色。合成模型可以由wavefront.obj文件(3d网格)、.skel骨架文件(关节位置)、biovisionhierarchy.bvh(操纵骨架数据)文件和包含年龄、性别、身高、体重、肌肉和人种的属性的文本文件来表示。在一些示例实施例中,使用该系统用与根据实际群体生成模型相比较少的时间生成了大量具有真实世界年龄、身高、体重和性别分布的逼真的合成模型。图5是示出了根据一些示例实施例的用于使用合成数据的快速3d模型适配和人体测量的人体模型中的关节位置的代表图。如图5所示,人体模型500包括15个关节,如下所示:关节标签身体位置he头ne颈部to躯干ls左肩le左肘la左手rs右肩re右肘ra右手lh左髋lk左膝lf左脚rh右臀rk右膝rf右脚图6是示出了根据一些示例实施例的模型适配服务器130和设备150来执行生成合成模型的处理600的操作的流程图。在操作610中,通过图像处理模块230访问深度传感器数据。例如,图像处理模块230可以从相机模块320捕获的kinecttmrgb-d帧(包含红色、绿色、蓝色和深度数据)中提取人物剪影并将其转换为3d点云。图像处理模块230可以通过使用提供人的二进制分割掩模的openni以及与不同身体关节相对应的骨骼关键点来在操作620中获得关节位置。如图5所示,在openni中,在3d真实世界坐标系中共有15个关节位置。关节的3d位置可以通过投影转换为成像平面上的2d坐标。在操作630中定义用户的主轴。主轴可以被定义为{u,v,w},其中也就是说,u是从颈关节到躯干关节处的向量,通过该向量的长度归一化,v是从左肩到右肩的向量,通过该向量的长度归一化,w是u和v的叉积。因此,对于直立且直接面对相机的用户,u向量将指向下,v向量将从用户身体的左侧指向用户身体的右侧,并且w向量将从用户指向相机。在一些示例实施例中,进行检查,确认用户几乎是直立的。例如,以下等式可用于测量u向量与从躯干关节处到直接位于两个肩关节之间的点所绘制的线平行的程度。如果方程式左侧的值超过阈值ε1,则可以提示用户再次摆姿势。1在一些示例实施例中,ε1使用值0.1。在操作640中,对身高进行估计。例如,可以通过对深度图设置阈值并将其投影到由u和v定义的二维平面上来提取用户的分割二维剪影的轮廓。然后,选择满足以下条件的轮廓上的点:pc是轮廓上的任意点,并且ε2是阈值(例如,0.1)。所得到的点位于轮廓内并大致在u上。这些点是垂直排列的,并找到顶点和底点。顶点和底点可以转换回3d真实世界坐标,并且估计的高度计算为两点之间的欧几里德距离。在操作650中估计袖长和腿长。例如,使用3d真实世界坐标,袖长可以计算为平均值类似地,腿长可以估计为平均值在操作660中,估计颈(neck)围、肩(shoulder)围、胸(chest)围、腰(waist)围和臀(hip)围。为了得到颈围、肩围、胸围、腰和臀围的估计,图像处理模块230首先定义3d点x,然后计算3d点云与穿过x并垂直于u的平面之间的交线。由于openni跟踪的关节被设计为对交互式游戏有帮助,而不是解剖学上精确,对openni报告的原始关节位置作出一些调整,使其更接近实际的解剖位置。可以根据下面的等式来定义新的关节位置。xwaist=to当使用单个图像的单个深度通道时,只有用户的正面视图可用。为了生成3d视图,椭圆拟合于一个或多个横截面上的点以获得全身测量。当多幅图像可用时也可以使用椭圆拟合。每个椭圆的点可以定义为点云中的点p的集合,其中点与x的垂直距离小于阈值。或者用数学项:阈值ε3是小的正分数(例如,0.1)。在一些示例实施例中,实时对测量进行估计。在操作670中,匹配模块240获取与用户数据最匹配的模型。可以使用特征向量来执行用户数据和模型集合(例如,在操作420中生成的模型集合)之间的比较。例如,特征向量可以被分成具有不同体重的三组特征:全身体形、性别和局部体形。全身体形特征可包括身高、袖长、腿长和肩宽。这些特征反映出人体较长的维度。性别特征可以包括两个比例,如下。比例1是胸部周围的3d表面距离与左肩关节和右肩关节之间的欧几里德距离的比例。在所有其他方面相同的情况下,比例2趋向于对于女性较大、对于男性较小。比例2是三维地或二维地获得的臀部与腰围之间的比例。在所有其他方面相同的情况下,比例2也趋向于对于女性较大、对于男性较小。局部体形特征组针对每个局部计算点包括一个元素。例如,fastpointfeaturehistograms(fpfh)for3dregistration,rusuetal.,roboticsandautomation3212-3217(may2009)中描述的快速点特征直方图(fpfh)可以在每个15个关节的搜索半径为20厘米。在该示例中,495个特征存在于局部体形特征组中。一旦创建了特征向量,匹配模块230可以执行最近邻搜索,以找出合成数据集中最接近适配匹配。在一个示例实施例中,用于50,000个合成模型的特征向量数据集的大小大约为25mb,并且在2.26ghzintelxeone5507机器上完成单个查询大约需要800ms。匹配模型可用于各种目的中的任意一种。例如,可以访问尺寸适配图,其指示哪个具体身体测量或身体测量的集合与一件衣服的特定尺寸相对应。通过从模型中读取适当的身体尺寸,可以确定用户衣服的正确尺寸。作为另一示例,如果衣服的测量是已知的,则可以生成并在匹配模型的顶部用正确的比例呈现的衣服的模型,从而允许用户看到衣服有多合身。作为另一示例,匹配模型可以被放置在游戏或虚拟现实环境中以表示用户。图7是图示说明了根据一些示例实施例的用于使用合成数据的快速3d模型适配和人体测量的方法的流程图。图像710描绘了用户设置图像捕获系统,例如设备150。图像捕获系统捕获包括如图像720所示的深度数据的用户的图像。在所示的示例图像中,由于用户更靠近相机,因此用户以比背景中的更浅的灰色呈现。基于深度数据,标识匹配模型(例如重建的3d模型730)。使用模型数据和服装的尺寸数据,将服装适配在身体上并进行建模,从而形成了穿着衣服的模型740。图8是示出了根据一些示例实施例的适用于使用合成数据的快速3d模型适配和人体测量的方法的结果的表格800。表800的每一行显示输入深度图、根据输入深度图生成的法线深度图、基于归一化深度图从预先生成的合成模型的集合中选择的所选3d模型、以及基于所选的3d模型和所显示的服装的尺寸信息的穿衣服的模型。法线深度图是其中根据色码表示每个像素的表面法线(即,相对于相机表示的对象的方向)的深度图的表示。根据各种示例实施例,本文描述的一个或多个方法可以便于确定用户的3d模型。此外,本文描述的一种或多种方法可以有助于在不动态生成3d模型的情况下确定用户的3d模型。此外,本文描述的一种或多种方法可以有助于更快速地选择用户的3d模型,并且与以前的方法相比较使用较少的计算能力。当总体来考虑这些效果时,本文描述的一个或多个方法可以消除针对某些工作量或资源的需求,该某些工作量或资源在其他情况下将在生成或选择表示用户的模型中涉及。通过本文描述的一个或多个方法,还可以减少用户在订购感兴趣物品时所付出的努力。例如,从预生成集合中准确地选择模型可以使用户能够比使用专门为用户生成的模型更快地、并且与用户猜测尺寸而没有模型辅助相比更精确地看到项目的实际适配。可以类似地减少由(例如在网络环境100中的)一个或多个机器、数据库或设备使用的计算资源。这样的计算资源的示例包括处理器循环、网络流量、存储器使用状况、数据存储容量、功耗以及冷却能力。类似地,存在用于提供对应于用户的3d模型的机器,并且本文呈现的系统和方法是对用于提供与用户对应的3d模型的技术的改进。图9是示出了根据一些示例实施例的用于使用合成数据的快速3d模型适配和人体测量的数据库结构的框图。数据库900包括用户表910、模型表920和物品表930。在一些示例实施例中,可以在表910-930的每一个中使用附加元素的或更少的元素。用户表910包括唯一地标识每个用户的用户标识符(“id”),以及用户的身高、体重和性别。如上面参考图6-8所示,关于用户的信息可用于标识用户的3d模型。可以在用户的模型id字段中存储对于3d模型的模型表920的参考。在一些示例实施例中,例如身高、体重和性别的用户信息被用于确定模型id,但之后被丢弃并且不存储在用户表910中。在一些示例实施例中,存储与用户的身体相关的附加用户数据字段,例如周长和宽度测量(例如胸部宽度和胸围)以及用户的一个或多个身体测量比例。在一些示例实施例中,存储附加用户数据,例如姓名、地址、电子邮件地址和偏好。模型表920包括唯一地标识每个模型的模型id以及该模型的高度、体重和性别。模型表920还包括每个模型的3d模型数据。例如,模型的网格的数据表示可以直接存储在模型表920中,或者可以存储包含数据的文件名。在一些示例实施例中,用于生成模型的附加数据被存储在模型表920中,例如模型的周长和宽度值以及身体测量比例。项目表930包括唯一地标识每个项目(例如,衣服物品)的项目id以及该项目的图像、该项目的描述以及该项目的3d模型数据。在某些示例实施例中,在商品表930中存储更少的字段。例如,当存在3d模型数据时,可以根据3d模型数据动态生成物品的图像。作为另一示例,可以存在测量信息,允许根据测量信息和项目的图像动态地生成3d模型数据。图10是示出了根据一些示例实施例的能够从机器可读介质(例如机器可读存储介质、计算机可读存储介质或其任意适当组合)读取指令并完全或部分执行此处讨论的方法中的任意一个或多个的机器1000的组件。机器1000可以用于实现电子商务服务器120和140、模型适配服务器130和设备150。具体地,图10示出了计算机系统示例形式的机器1000的示意表示,其中,可以完全或部分执行用于使机器1000执行此处讨论的方法中的任意一个或多个的指令1024(例如软件、程序、应用、小程序、app或其他可执行代码)。在备选实施例中,机器1000作为独立设备操作或者可以连接至(例如联网直)其他机器。在联网部署中,机器800可以以服务器-客户端网络环境中的服务器机器或客户端机器的资格操作,或者作为分布式(例如对等)网络环境中的对等机器操作。机器1000可以是服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、智能电话、web设备或者能够顺序地或以其他方式执行指令1024的任何机器,所述指令1524指定该机器要采取的动作。此外,虽然仅示出了单个机器,术语“机器”还应视为包括独立或关节执行指令1024以执行此处讨论的方法中的任意一个或多个的全部或部分的机器的集合。机器1000包括被配置为彼此经由总线1008通信的处理器1002(例如中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、或其任意适当组合)、主存储器1004和静态存储器1006。机器1000还可以包括图形显示器1010(例如等离子显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt)。机器1000还可以包括字母数字输入设备1012(例如键盘)、光标控制设备1014(例如鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定位仪器)、存储单元1016、信号生成设备1018(例如,扬声器)和网络接口设备1020。存储单元1016包括其上存储有指令1024的机器可读介质1022,所述指令1524实现此处描述的方法或功能中的任意一个或多个。指令1024还可以在机器1000执行期间完全或至少部分驻留在主存储器1004内、处理器1002内(例如处理器的高速缓存内)或两者内。因此,主存储器1004和处理器1002可以被视为机器可读介质。指令1024可以通过网络1026(例如,网络170)经由网络接口设备1020发送或接收。如本文所使用的,术语“存储器”指能够临时或永久地存储数据的机器可读介质,并且可看作包括但不限随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存以及高速缓存存储器。尽管机器可读介质1022在示例实施例中被示为单个介质,术语“机器可读介质”应看作包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还应看作包括任何能够存储指令的介质或多个介质的组合,所述指令供机器(例如,机器1000)执行,使得当指令被机器的一个或多个处理器(例如处理器1002)执行时使机器执行此处描述的方法中的任意一个或多个。因此,“机器可读介质”指单个存储装置或设备、以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。因此,术语“机器可读机制”应看作包括但不限于采取固态存储器、光学介质、磁介质或其任意适当组合的形式的一个或多个数据仓库。此外,机器可读介质可以是瞬时的,体现在其实现传播信号。在该说明书中,复数实例可以实现被描述为单数实例的组件、操作或结构。虽然一个或多个方法的各个操作被示意和描述为分离的操作,但是各个操作中的一个或多个可以同时执行,并且无需按所示顺序执行操作。在示例配置中被示为分离组件的结构和功能可以被实现为组合结构或组件。类似地,被示为单个组件的结构和功能可以被实现为分离的组件。这些和其他变型、修改、添加和改进落入本主题的范围内。某些实施例在本文中被描述为包括逻辑或多个组件、模块或机制。模块可以构成硬件模块。“硬件模块”是能够执行某些操作的有形单元,并且可以按照某种物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如独立的计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或多个硬件模块(例如处理器或处理器组)可由元件(例如应用或应用部分)配置为操作为执行本文描述的特定操作的硬件模块。在一些实施例中,硬件模块可以按照机械方式、电子方式或其任意适当组合来实现。例如,硬件模块可以包括永久地被配置为执行特定操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,如现场可编程门阵列(fpga)或asic。硬件模块还可以包括由软件临时配置为执行特定操作的可编程逻辑或电路。例如,硬件模块可以包括通用处理器或其他可编程处理器中包含的软件。应理解:以机械方式、以专用和永久配置的电路或以临时配置的电路(例如由软件配置)实现硬件模块的决定可出于成本和时间的考虑。因此,短语“硬件模块”应理解为涵盖有形实体,是在物理上构造、永久配置(例如硬线连接)或临时配置(例如编程)为以特定方式操作或执行本文描述的特定操作的实体。如本文所使用的,“硬件实现的模块”指硬件模块。考虑临时配置(例如编程)硬件模块的实施例,无需在任一时刻配置或实例化硬件模块中的每一个。例如,如果硬件模块包括被软件配置成为专用处理器的通用处理器,则通用处理器可以在不同时刻被配置为分别不同的专用处理器(例如包括不同的硬件模块)。因此,软件可以将处理器例如配置为在一个时刻构成特定硬件模块并在另一时刻构成不同的硬件模块。硬件模块可以向其他硬件模块提供信息并从其他硬件模块接收信息。因此,所描述的硬件模块可以被看作通信地耦接。如果同时存在多个硬件模块,则可以通过两个或多个硬件模块之间的信号传输(例如通过适当的电路和总线)实现通信。在多个硬件模块在不同时间配置或实例化的实施例中,可以例如通过存储并获取多个硬件模块可访问的存储器结构中的信息来实现这样的硬件模块之间的通信。例如,一个硬件模块可以执行操作并在与其通信耦接的存储设备中存储该操作的输出。另一硬件模块接着可以稍后访问存储器设备,以获取并处理所存储的输出。硬件模块还可以发起与输入或输出设备的通信,并且能够对资源(例如信息的集合)进行操作。此处描述的示例方法的各种操作可以至少部分地由临时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器执行。无论临时还是永久配置,这样的处理器可以构成操作为执行本文描述的一个或多个操作或功能的处理器实现的模块。如本文所使用的,“处理器实现的模块”指使用一个或多个处理器实现的硬件模块。类似地,本文描述的方法可以至少部分是处理器实现的,处理器是硬件的示例。例如,方法的至少一些操作可由一个或多个处理器或处理器实现的模块执行。此外,一个或多个处理器还可操作以支持在“云计算”环境中或作为“软件即服务”(saas)执行有关操作。例如,操作中的至少一些可由计算机(作为包括处理器的机器的示例)组执行,这些操作可经由网络(例如互联网)并经由一个或多个适当接口(例如应用程序接口(api))来访问。某些操作的执行可以分布在一个或多个处理器中,并不只驻留在单个机器中,而是布置在多个机器中。在一些示例实施例中,一个或多个处理器或处理器实现的模块可以位于单个地理位置(例如在家庭环境、办公室环境或服务器群中)。在其他示例实施例中,一个或多个处理器或处理器实现的模块可以分布在多个地理位置。本文讨论的主题的一些部分可以用算法或对数据的操作的符号表示来呈现,所述数据存储为机器存储器(例如计算机存储器)内的比特或二进制数字信号。这样的算法或符号表示是数据处理
技术领域
普通技术人员用来向本领域其他技术人员传达他们工作实质的技术的示例。如本文所使用的,“算法”是操作的自洽序列或导致期望结果的类似处理。在该上下文中,算法和操作涉及对物理量的物理操作。通常但非必要地,这样的量可以采取能够由机器存储、访问、传输、组合、比较或以其他方式操纵的电气、磁或光学信号的形式。有时,主要由于常见用法的原因,使用例如“数据”、“内容”、“比特”、“值”、“元素”、“符号”、“字符”、“项”、“数”、“数字”等词语来指代这样的信号是方便的。然而,这些词语仅仅是方便的标记,并且应与适当的物理量相关联。除非另行具体说明,本文使用例如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”等词语的讨论可以指操纵或变换被表示为一个或多个存储器(例如易失性存储器、非易失性存储器或其任意组合)、寄存器或接收、存储、发送或显示信息的其他机器组件内的物理(例如电子、磁或光学)量的数据的机器(例如计算机)的动作或过程。此外,除非另行具体说明,如专利文献中常见的,本文中的术语“一”或“一个”用于包括一个或多于一个实例。最后,如本文所使用的,除非特别说明,连词“或”指非排他的“或”。以下列举的示例定义了本文讨论的方法,机器可读介质和系统(例如,装置)的各种示例实施例:示例1.一种方法,包括:访问用户的图像;由机器的处理器基于所述用户的图像,确定所述用户的身体属性;基于用户的身体属性和模型的相应属性之间的匹配从模型的集合中选择模型;以及使得在显示设备上呈现所选模型。示例2.根据示例1所述的方法,还包括基于属性的群体分布来合成所述模型的集合。示例3.根据示例1或示例2所述的方法,其中所述属性的群体分布包括每种性别的属性的均值和标准差。示例4.根据示例1至3种任意合适的一个所述的方法,其中,作为所述用户的特征向量与所述模型的特征向量的比较的一部分,找到所述用户的身体属性与所述模型的相应属性之间的匹配,特征向量中的每一个包括身高值、体重值和性别值。示例5.根据示例4所述的方法,其中所述特征向量中的每一个进一步包括颈围值、肩围值、胸围值、腰围值和臀围值。示例6.根据示例1至5中任意合适的一个所述的方法,其中:所述用户的图像包括深度图;以及对所述用户的身体属性的确定基于所述深度图。示例7.根据示例1至6中任意合适的一个所述的方法,其中,对所述用户的身体属性的确定包括确定所述用户的主轴。示例8.根据示例1-7中的任意合适的一个所述的方法,还包括:从所述用户接收对衣服物品的选择;基于所选模型确定衣服物品的尺寸;以及其中,所述使得在显示设备上呈现所选模型包括在所述显示设备上呈现穿着所述衣服物品的所选模型的表示。示例9.根据示例1-8中的任意合适的一个所述的方法,还包括:基于衣服物品的尺寸,生成穿着所述衣服物品的模型的表示。示例10.一种系统,包括:一个或多个处理器,被配置为执行包括以下步骤的操作:访问用户的图像;基于所述用户的图像,确定所述用户的身体属性;基于用户的身体属性和模型的相应属性之间的匹配从模型的集合中选择模型;以及使得在显示设备上呈现所选模型。示例11.根据示例10所述的系统,其中,所述操作还包括:基于属性的群体分布来合成所述模型的集合。示例12.根据示例11所述的系统,其中所述属性的群体分布包括每种性别的属性的均值和标准差。示例13.根据示例10至12种任意合适的一个所述的系统,其中,作为所述用户的特征向量与所述模型的特征向量的比较的一部分,找到所述用户的身体属性与所述模型的相应属性之间的匹配,特征向量中的每一个包括身高值、体重值和性别值。示例14.根据示例13所述的系统,其中所述特征向量中的每一个进一步包括颈围值、肩围值、胸围值、腰围值和臀围值。示例15.根据示例10至14中任意合适的一个所述的系统,其中:所述用户的图像包括深度图;以及对所述用户的身体属性的确定基于所述深度图。示例16.根据示例10至15中任意合适的一个所述的系统,其中,对所述用户的身体属性的确定包括确定所述用户的主轴。示例17.根据示例10至16中任意合适的一个所述的系统,其中,所述操作还包括:从所述用户接收对衣服物品的选择;基于所选模型确定衣服物品的尺寸;以及其中使得在显示设备上呈现所选模型包括在所述显示设备上呈现穿着所述衣服物品的所选模型的表示。示例18.根据示例17所述的系统,其中,所述操作还包括:基于衣服物品的尺寸,生成穿着所述衣服物品的模型的表示。示例19.一种机器可读介质,承载指令以执行根据示例1至9中任一个所述的方法。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1