CN114445601A - 一种图像处理方法、装置、设备和存储介质 - Google Patents
一种图像处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114445601A CN114445601A CN202210366241.2A CN202210366241A CN114445601A CN 114445601 A CN114445601 A CN 114445601A CN 202210366241 A CN202210366241 A CN 202210366241A CN 114445601 A CN114445601 A CN 114445601A
- Authority
- CN
- China
- Prior art keywords
- model
- body part
- information
- user
- leg
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0641—Shopping interfaces
- G06Q30/0643—Graphical representation of items or shoppers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Architecture (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提出一种图像处理方法、装置、设备和存储介质。所述方法可以包括:获取用户身体部位图像、待渲染的穿戴效果模型以及预设的身体部位模型;其中,所述穿戴效果模型具有预设的第一位姿信息,所述身体部位模型具有预设的第二位姿信息;根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息;根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系;根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。由此可以提升虚拟穿戴效果。
Description
技术领域
本申请涉及计算机技术,具体涉及一种图像处理方法、装置、设备和存储介质。
背景技术
虚拟穿戴是指在增强现实(Augmented Reality,AR)场景中穿戴虚拟产品的技术。通过该技术足不出户即可完成产品穿戴,方便省时,促进消费。目前虚拟穿戴类的需求越来越多。尤其是虚拟试鞋。
目前,由于存在用户身体部位以及身体部位覆盖的服装等对象对待试穿产品的影响,导致虚拟穿戴效果不佳。
发明内容
有鉴于此,本申请至少公开一种图像处理方法。所述方法可以包括:获取用户身体部位图像、待渲染的穿戴效果模型以及预设的身体部位模型;其中,所述穿戴效果模型具有预设的第一位姿信息,所述身体部位模型具有预设的第二位姿信息;根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息;根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系;根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。
在一些实施例中,在获取用户身体部位图像之后,所述方法还包括:对所述用户身体部位图像中的用户身体部位进行分割,得到身体部位分割图;所述身体部位分割图指示所述用户身体部位的区域形状;在根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系之前,所述方法还包括:利用所述身体部位分割图,对所述身体部位模型进行调整,得到与所述用户身体部位匹配的身体部位模型。
在一些实施例中,所述利用所述身体部位分割图,对所述身体部位模型进行调整,得到与所述用户身体部位匹配的身体部位模型,包括:对所述身体部位模型进行三维到二维的投影方法,得到身体部位的二维模型;根据身体部位分割图,将所述二维模型中处于所述身体部位分割图以外的像素点删除,得到修正之后的二维模型;对所述二维模型进行二维到三维的映射,得到与所述用户身体部位匹配的身体部位模型。
在一些实施例中,所述根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息,包括:提取所述用户身体部位图像中用户身体部位对应的第一关键点;根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,调整所述第一位姿信息与所述第二位姿信息。
在一些实施例中,所述根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,调整所述第一位姿信息与所述第二位姿信息,包括:根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,确定所述身体部位模型对应的位姿调整信息;根据所述位姿调整信息,分别调整所述第一位姿信息与所述第二位姿信息。
在一些实施例中,所述根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,确定所述身体部位模型对应的位姿调整信息,包括:获取所述第一关键点的第一位置信息以及所述第二关键点的第二位置信息;基于所述第一位置信息与所述第二位置信息,以及预设的位置映射关系,得到所述位姿调整信息。
在一些实施例中,所述用户身体部位图像为视频流中的图像;在基于所述第一位置信息与所述第二位置信息,以及预设的位置映射关系,得到所述位姿调整信息之前,所述方法还包括:获取所述视频流中位于所述用户身体部位图像之前的N帧图像中的第一关键点的历史位置信息;根据所述历史位置信息,对所述第一位置信息进行滤波,得到滤波后的第一位置信息。
在一些实施例中,所述根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,包括:根据调整后的第一位姿信息,确定所述穿戴效果模型对应的第一深度信息,以及根据调整后的所述第二位姿信息,确定所述身体部位模型的第二深度信息;根据所述第一深度信息与所述第二深度信息之间的比较结果,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系。
在一些实施例中,所述根据调整后的第一位姿信息,确定所述穿戴效果模型对应的第一深度信息,以及根据调整后的所述第二位姿信息,确定所述身体部位的第二深度信息,包括:根据调整后的第一位姿信息对所述穿戴效果模型的初始深度值进行调整,得到所述第一深度信息,以及,根据调整后的第二位姿信息对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息。
在一些实施例中,所述用户身体部位模型腿部模型,所述在获取用户身体部位图像之后,所述方法还包括:对所述用户身体部位图像中的用户腿部进行分割,得到腿部分割图;所述腿部分割图指示所述用户腿部的区域形状;所述根据调整后的第二位姿信息对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息,包括:根据调整后的第二位姿信息和所述腿部分割图,对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息。
在一些实施例中,所述根据调整后的第二位姿信息和所述腿部分割图,对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息,包括:根据调整后的第二位姿信息对所述腿部模型的初始深度值进行调整,得到所述腿部模型的当前深度值;根据所述当前深度值,确定所述用户身体部位图像中与所述用户腿部模型对应的用户腿部区域内像素点的深度;利用所述腿部分割图,将处于所述腿部区域内并且处于所述身体分割图指示的腿部区域内的像素点的深度,确定为所述第二深度信息。
在一些实施例中,所述遮挡关系指示所述穿戴效果模型与所述身体部位模型之间的重合区域的遮挡关系;所述根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像,包括:在所述遮挡关系指示所述穿戴效果模型遮挡所述身体部位模型的情形下,将所述穿戴效果模型在所述用户身体部位图像对应像素点的像素值,设置为所述穿戴效果模型具备的颜色值;在所述遮挡关系指示所述身体部位模型遮挡所述穿戴效果模型的情形下,保留所述穿戴效果模型在所述用户身体部位图像对应像素点的原有像素值。
在一些实施例中,所述穿戴效果模型包括鞋子模型,所述用户身体部位模型包括脚部模型和/或腿部模型。
在一些实施例中,所述根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,包括:根据调整后的第一位姿信息,确定所述鞋子模型对应的第一深度信息,以及根据调整后的所述第二位姿信息,确定所述脚部模型和/或所述腿部模型的第二深度信息;根据所述第一深度信息与所述第二深度信息之间的比较结果,确定所述鞋子模型与所述脚部模型和/或所述腿部模型之间的遮挡关系。
在一些实施例中,在所述鞋子模型的类型为第一类型的情形下,所述鞋子模型中处于第一预设区域内的顶点的初始深度值小于所述脚部模型和/或所述腿部模型在所述第一预设区域内的顶点的初始深度值,以使所述鞋子模型在所述第一预设区域遮挡所述脚部模型和/或所述腿部模型;在所述鞋子模型的类型为第二类型的情形下,所述鞋子模型中处于第二预设区域内的顶点的初始深度值大于所述脚部模型和/或所述腿部模型在所述第二预设区域内的顶点的初始深度值,以使所述脚部模型和/或所述腿部模型在所述第二预设区域遮挡所述鞋子模型。
本申请还提出一种图像处理装置,包括:获取模块,用于获取用户身体部位图像、待渲染的穿戴效果模型以及预设的身体部位模型;其中,所述穿戴效果模型具有预设的第一位姿信息,所述身体部位模型具有预设的第二位姿信息;第一调整模块,用于根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息; 确定模块,用于根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系;渲染模块,用于根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。
本申请还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如前述任一实施例示出的图像处理方法。
本申请还提出一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于使处理器执行如前述任一实施例示出的图像处理方法。
前述方案中,可以根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息,达到将所述穿戴效果模型与所述身体部位模型调整到与所述用户身体部位图像指示的用户身体部位位姿相一致的效果;
然后再根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,即可通过确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,指示所述穿戴效果模型与所述图像中示意的用户身体部位之间的遮挡关系。
最后,根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。即可根据所述穿戴效果模型与所述用户身体部位之间的正确的遮挡关系,完成图像渲染,提升虚拟穿戴效果。
应当理解的是,以上所述的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例示出的一种图像处理方法的方法流程示意图;
图2为本申请实施例示出的一种确定遮挡关系的方法流程示意图;
图3为本申请实施例示出的一种虚拟试鞋方法的流程示意图;
图4为本申请实施例示出的一种腿部分割图示意图;
图5为本申请实施例示出的一种3D鞋子示意图;
图6为本申请实施例示出的一种确定用户腿部的深度的方法的流程示意图;
图7为本申请实施例示出的一种确定身体部位的深度的方法的流程示意图;
图8为本申请实施例示出的一种虚拟试鞋方法的流程示意图;
图9为本申请实施例示出的一种现场图像示意图;
图10为本申请实施例示出的一种将目标鞋子渲染至现场图像中的效果示意图;
图11为本申请实施例示出的一种图像处理装置的结构示意图;
图12为本申请实施例示出的一种电子设备的硬件结构示意图。
具体实施方式
下面将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的设备和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在可以包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。还应当理解,本文中所使用的词语“如果”,取决于语境,可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请涉及增强现实领域,通过获取现实环境中的目标对象的图像信息,进而借助各类视觉相关算法实现对目标对象的相关特征、状态及属性进行检测或识别处理,从而得到与具体应用匹配的虚拟与现实相结合的AR效果。示例性的,目标对象可涉及与人体相关的脸部、肢体、手势、动作等,或者与物体相关的标识物、标志物,或者与场馆或场所相关的沙盘、展示区域或展示物品等。视觉相关算法可涉及视觉定位、SLAM、三维重建、图像注册、背景分割、对象的关键点提取及跟踪、对象的位姿或深度检测等。具体应用不仅可以涉及跟真实场景或物品相关的导览、导航、讲解、重建、虚拟效果叠加展示等交互场景,还可以涉及与人相关的特效处理,比如妆容美化、肢体美化、特效展示、虚拟模型展示等交互场景。可通过卷积神经网络,实现对目标对象的相关特征、状态及属性进行检测或识别处理。前述卷积神经网络是基于深度学习框架进行模型训练而得到的网络模型。
本申请提出一种图像处理方法,可以根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息,达到将所述穿戴效果模型与所述身体部位模型调整到与所述用户身体部位图像指示的用户身体部位位姿相一致的效果;然后再根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,即可通过确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,指示所述穿戴效果模型与所述图像中示意的用户身体部位之间的遮挡关系。最后,根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。即可根据所述穿戴效果模型与所述用户身体部位之间的正确的遮挡关系,完成图像渲染,提升虚拟穿戴效果。
以下结合附图进行实施例说明。
请参见图1,图1为本申请实施例示出的一种图像处理方法的方法流程示意图。
图1示出的图像处理方法可以应用于电子设备中。其中,所述电子设备可以通过搭载与所述图像处理方法对应的软件逻辑执行所述处理方法。所述电子设备的类型可以是笔记本电脑,计算机,服务器,手机,掌上电脑(Personal Digital Assistant,PDA)等。在本申请中不特别限定所述电子设备的类型。所述电子设备也可以是客户端设备或服务端设备,在此不作特别限定。
如图1所示,所述方法可以包括S102-S108。除特别说明外,本申请不特别限定这些步骤的执行顺序。
S102,获取用户身体部位图像、待渲染的穿戴效果模型以及预设的身体部位模型。
所述用户身体部位图像是指针对用户身体部位采集的图像。比如在虚拟试鞋场景中,所述用户身体部位图像可以是通过手机终端搭载的摄像头对用户脚部和/或腿部采集的图像。通过所述摄像头可以采集包括用户脚部和/或腿部的视频流,该视频流中的图像则可以作为所述用户身体部位图像。
再比如,所述用户身体部位图像可以是终端设备中存储的针对用户脚部和/或腿部的图像,在虚拟穿戴场景中,可以从所述终端设备中选取这类图像进行虚拟穿戴。
所述穿戴效果模型是指是在三维空间中预设的穿戴产品三维模型。比如在虚拟试鞋场景中,所述穿戴效果模型为在所述三维空间中预设的鞋子三维模型。
所述身体部位模型,是指在三维空间中预设的身体部位三维模型。比如在虚拟试鞋场景中,所述身体部位模型可以包括在所述三维空间中预设的脚部三维模型和/或腿部三维模型。
所述穿戴效果模型与所述身体部位模型在三维空间中会具有一定的初始位姿信息。其中,所述穿戴效果模型具有预设的第一位姿信息,所述身体部位模型具有预设的第二位姿信息。
所述初始位姿信息指示模型当前位置与初始位置相比的旋转量与平移量。示例性的,在初始状态下,所述第一位姿信息与第二位姿信息包括的旋转量与平移量均为0。
S104,根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息。
在一些实施例中,可以提取所述用户身体部位图像中用户身体部位对应的第一关键点;然后根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,调整所述第一位姿信息与所述第二位姿信息。
所述第一关键点为根据需求在用户身体部位中的预设区域预先定义好的关键点。例如,所述用户身体部位包括脚部,所述预设区域可以包括脚部大拇指区域。所述第一关键点则可以为所述脚部大拇指区域内的关键点。比如可以是脚部大拇指的指尖点。再例如,所述预设区域可以包括脚踝区域。所述第一关键点则可以是所述脚踝区域内的关键点。比如可以是脚踝外侧关键点。对于用户身体部位的关键点的定义方法可根据实际需求来确定,本申请并不限定。
在一些方式中,可以利用关键点检测模型提取所述第一关键点。所述关键点检测模型可以是基于多个标注了用户身体部位关键点的位置信息的图像样本训练得到的神经网络模型。
所述用户身体部位模型中预先设置了第二关键点。所述第二关键点与希望检测的所述第一关键点在用户身体部位的位置相匹配。比如,所述第一关键点为脚部大拇指的指尖点,则第二关键点为脚部模型的脚部大拇指指尖点。再比如,所述第一关键点为脚踝外侧关键点,则第二关键点为脚部模型的脚踝外侧关键点。
所述位置映射关系,可以是指所述第一关键点在图像坐标系中的位置,与所述第二关键点在世界坐标系的位置之间的映射关系。示例性的,所述图像坐标系是指以所述用户身体部位图像左上角像素点为坐标系原点,沿着用户身体部位图像上边缘与左侧边缘形成的坐标系。所述世界坐标系是指在所述三维空间中预设的三维坐标系。通过所述位置映射关系,可以完成用户身体部位模型的位姿信息的调整。
在一些方式中所述位置映射关系一般通过映射函数来表述。即第一关键点的位置与第二关键点的位置满足一定的映射函数关系。根据所述位置映射函数可以得到预设的用户身体模型从初始位置移动到与图像中的用户身体部位相同位姿的位姿调整信息。
在一些方式中,可以根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,确定所述身体部位模型对应的位姿调整信息;然后根据所述位姿调整信息,分别调整所述第一位姿信息与所述第二位姿信息。
所述位姿调整信息可以用于将用户身体模型从初始位置移动到与图像中的用户身体部位相同位姿。
在一些实施例中,可以获取所述第一关键点的第一位置信息以及所述第二关键点的第二位置信息;基于所述第一位置信息与所述第二位置信息,以及预设的位置映射关系,得到所述位姿调整信息。
所述位置映射关系可以包括PnP(Perspective-n-Point,多点投射成像)函数。在一些方式中,利用所述第一关键点和所述第二关键点的位置信息以及PnP(Perspective-n-Point,多点投射成像)函数,可以求解所述位姿调整信息。具体求解过程可以在后面的实施例中有示例性说明,在此不做详述。
得到所述位姿调整信息之后,可以根据位姿调整信息分别调整所述第一位姿信息与所述第二位姿信息。在一些方式中,可以将位姿调整信息可以包括平移量与旋转量信息,根据所述平移量与旋转量信息即可得到所述第一位姿信息与所述第二位姿信息。
在一些实施例中,所述用户身体部位图像为视频流中的图像。在基于所述第一位置信息与所述第二位置信息,以及预设的位置映射关系,得到所述位姿调整信息之前,还可以根据第一关键点的历史位置信息对第一位置信息进行滤波,降低所述第一位置信息的抖动,提升位姿调整过程的稳定性。
具体地,可以获取所述视频流中位于所述用户身体部位图像之前的N帧图像中的第一关键点的历史位置信息。
在一些方式中,所述视频流中的每一帧图像执行S102-S108,可以得到每一帧图像中第一关键点的位置信息。这些位置信息可以被存储起来。本步骤中即可从存储的这些位置信息中,获取所述N帧图像中的第一关键点的历史位置信息。
得到所述历史位置信息后,可以根据所述历史位置信息,对所述第一位置信息进行滤波,得到滤波后的第一位置信息。
在一些方式中可以采用双边滤波的方法,为所述历史位置信息分配第一权重,为所述第一位置信息分配第二权重,然后通过加权求和的方式对所述第一位置信息进行滤波,滤波后的第一位置信息更接近于历史位置信息,降低了第一位置信息的抖动,提升了位姿调整过程的稳定性。
S106,根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系。
所述遮挡关系是指所述穿戴效果模型与所述身体部位模型之间的重合区域的遮挡关系。在一些实施例中,可以根据所述穿戴效果模型与所述身体部位模型的深度信息确定所述遮挡关系。
请参见图2,图2为本申请实施例示出的一种确定遮挡关系的方法流程示意图。如图2所示,所述方法可以包括S202-S204。
S202,根据调整后的第一位姿信息,确定所述穿戴效果模型对应的第一深度信息,以及根据调整后的所述第二位姿信息,确定所述身体部位模型的第二深度信息。
所述第一深度信息是指所述穿戴效果模型的顶点的深度(即顶点的z坐标值)。所述第二深度信息是指所述身体部位模型的顶点的深度。
在三维空间中,顶点的坐标包括X、Y、Z三个方向的坐标值。其中,Z值是指该顶点到XY平面的距离。这个距离可以被称为该顶点对应的深度。通过深度可以比较X和Y值相同的两个顶点之间的遮挡关系。比如,鞋子上的A点的坐标为(X1,Y1,Z1),脚部上的B点的坐标为(X2,Y2,Z2)其中,X1=X2,Y1=Y2,Z1小于Z2,即鞋子在A点处遮挡到了脚部上的B点。
在一些实施例中,可以根据调整后的第一位姿信息对所述穿戴效果模型的初始深度值进行调整,得到所述第一深度信息,以及,根据调整后的第二位姿信息对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息。
所述初始深度值是指在设计模型(比如包括穿戴效果模型和身体部位模型)的时候为模型的顶点预设的z坐标值。所述位姿信息(包括第一位姿信息和第二位姿信息)可以指示对模型进行旋转的旋转量和平移的平移量,一般以位姿矩阵的形式出现。在一些方式中,将所述位姿矩阵与由模型顶点的三维坐标构成的坐标矩阵相乘,得到调整位姿之后的模型的顶点坐标。此刻模型顶点坐标中的z坐标值即为完成位姿调整后的模型的顶点的深度信息(包括第一深度信息与第二深度信息)。
在一些实施例中,身体部位模型包括脚部模型和/或腿部模型。所述穿戴效果模型包括鞋子模型。S106中,可以根据调整后的第一位姿信息,确定所述鞋子模型对应的第一深度信息,以及根据调整后的所述第二位姿信息,确定所述脚部模型和/或所述腿部模型的第二深度信息;然后根据所述第一深度信息与所述第二深度信息之间的比较结果,确定所述鞋子模型与所述脚部模型和/或所述腿部模型之间的遮挡关系。由此可以得到鞋子与脚部和/或腿部之间的遮挡关系。
S204,根据所述第一深度信息与所述第二深度信息之间的比较结果,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系。
其中,在所述第一深度信息小于所述第二深度信息的情形下, 所述穿戴效果模型遮挡了所述身体部位模型;在所述第一深度信息大于所述第二深度信息的情形下, 所述身体部位模型遮挡了所述穿戴效果模型。
通过S202-S204即可根据所述穿戴效果模型与所述身体部位模型的深度信息,准确确定二者之间的遮挡关系。
S108,根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。
所述遮挡关系指示所述穿戴效果模型与所述身体部位模型之间的重合区域的遮挡关系。
在进行渲染的时候,在所述遮挡关系指示所述穿戴效果模型遮挡所述身体部位模型的情形下,将所述穿戴效果模型在所述用户身体部位图像对应像素点的像素值,设置为所述穿戴效果模型具备的颜色值;
在所述遮挡关系指示所述身体部位模型遮挡所述穿戴效果模型的情形下,保留所述穿戴效果模型在所述用户身体部位图像对应像素点的原有像素值。
由此可以基于所述遮挡关系将所述穿戴效果模型渲染至所述用户身体部位图像,得到穿戴效果图像。
通过S102-S108记载的方案,可以根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息,达到将所述穿戴效果模型与所述身体部位模型调整到与所述用户身体部位图像指示的用户身体部位位姿相一致的效果;
然后再根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,即可通过确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,指示所述穿戴效果模型与所述图像中示意的用户身体部位之间的遮挡关系。
最后,根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。即可根据所述穿戴效果模型与所述用户身体部位之间的正确的遮挡关系,完成图像渲染,提升虚拟穿戴效果。
在一些实施例中,还可以利用对用户身体部位图像进行图像分割得到的分割结果,来对预设的身体部位模型进行调整,使得调整后的身体部位模型映射在二维平面中的二维模型与用户身体部位图像中的用户身体部位区域形状相同,由此S106得到的所述穿戴效果模型与所述身体部位模型之间的遮挡关系,更能准确地反映穿戴效果模型与用户身体部位之间的遮挡关系,从而提升虚拟穿戴效果。
在一些方式中,在获取用户身体部位图像之后,可以先对所述用户身体部位图像中的用户身体部位进行分割,得到身体部位分割图。
在一些方式中,可以利用身体部位分割模型,对所述用户身体部位图像进行身体部位分割,得到身体部位分割图。所述身体部位分割模型可以是基于多个标注了所述身体部位的图像样本训练得到的神经网络模型。所述身体部位分割图可以指示所述用户身体部位的区域形状。
在一些方式中,在根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系之前,还可以利用所述身体部位分割图,对所述身体部位模型进行调整,得到与所述用户身体部位匹配的身体部位模型。
在一些方式中,可以将所述身体部位模型通过三维到二维的投影方法,得到身体部位的二维模型。例如,通过透视投影的方法,将所述身体部位模型的三维坐标与预设的透视变换矩阵相乘,即可得到所述身体部位模型的二维坐标,即得到了所述二维模型。所述透视变换记载可以将身体部位模型映射至与身体部位分割图相同的平面上。
然后可以根据身体部位分割图,将所述二维模型中处于分割图以外的像素点删除,只保留处于分割图以内的像素点,得到修正之后的二维模型。
之后再对所述二维模型进行二维到三维的映射,得到与所述用户身体部位匹配的身体部位模型。在一些方式中,可以利用所述透视变换矩阵,对所述二维模型进行三维映射,得到与所述用户身体部位匹配的身体部位模型。
所述用户身体部位匹配的身体部位模型是指所述身体部位模型在平面上的二维模型与所述用户身体部位的区域形状和位置均相同。
由此S106得到的所述穿戴效果模型与所述身体部位模型之间的遮挡关系,更能准确地反映穿戴效果模型与用户身体部位之间的遮挡关系,从而提升虚拟穿戴效果。
为更好的理解本公开实施例的实施,以下结合虚拟试鞋的场景进行实施例说明。需要说明的是,以下虚拟试鞋场景为本公开实施例列举的一种应用场景下的具体实施方式,还可以应用于虚拟穿戴的其它应用场景,例如虚拟试戴各类服饰、虚拟试戴各类手势等,在不同的应用场景下,其采用的穿戴效果模型、身份部位模型有所不同。该虚拟试鞋的场景下,穿戴效果模型为虚拟鞋子模型,身份部位模型可包括腿部和/或脚部模型。
为了实现虚拟试鞋的效果,需要将虚拟鞋子模型渲染到图像中。在所述渲染的过程中,需要关注鞋子与用户脚部和腿部(包括腿部服装等)的遮挡关系。
针对单遮挡模型(单遮挡模型只考虑模型包括的各顶点之间的遮挡关系,不需要考虑模型与其它物体的遮挡关系),可以根据模型顶点的深度信息(顶点深度是指顶点到由X轴和Y轴组成的平面的距离,即顶点的z坐标值),即可确定模型顶点之间的遮挡关系。但是将这种确定遮挡关系的方案运用到虚拟试鞋中,可能会由于鞋子与用户脚部和腿部(包括腿部服装等)之间的遮挡情况比较复杂,而不能得到正确的遮挡关系。
请参见图3,图3为本申请实施例示出的一种虚拟试鞋方法的流程示意图。图3示意的步骤为对S102-S108的详细说明。如图3所示,所述方法可以包括S302-S310。除特别说明外,本申请不限定这些步骤的执行顺序。
S302,获取待处理图像中用户脚部对应的第一脚部关键点以及用户腿部对应的腿部分割图。
所述待处理图像是指针对用户身体部位采集的图像。
所述待处理图像是指针对用户脚部和腿部采集的图像。比如在虚拟试鞋场景中,所述待处理图像可以是通过手机终端搭载的摄像头对用户脚部采集的图像。通过所述摄像头可以采集针对用户脚部和腿部的视频流,该视频流中的图像则可以作为所述待处理图像。
所述待处理图像中可以包括用户脚部和用户腿部。其中,在用户腿部身穿服装的情形下,所述用户腿部还包括所述服装。所述服装可以是裤子,裙子等等。所述待处理图像中可以展示出与所述用户腿部对应的腿部区域。
所述第一脚部关键点为根据需求在预设脚部区域中预先指定的点。例如,所述预设脚部区域可以是脚部大拇指区域。所述第一脚部关键点则可以为所述脚部大拇指区域内的任意点。比如可以是脚部大拇指的指尖点。再例如,所述预设脚部区域可以是脚踝区域。所述第一脚部关键点则可以是所述脚踝区域内的任意点。比如可以是脚踝外侧关键点。
所述第一脚部关键点的数量和位置可以根据需求预先进行设定。在一些实施例中,所述第一脚部关键点可以包括脚部轮廓上的多个关键点。可以理解的是,在三维空间中具备不同位姿(位置和姿态)的三维模型,映射在二维图像中位置和形状也会不同,不同的形状会对应不同的轮廓。由此可以根据所述第一脚部关键点,准确地表征脚部的轮廓,从而准确体现出所述用户脚部在所述待处理图像中展现出的位姿。
在一些实施例中,所述第一脚部关键点包括以下区域中至少一个区域的关键点:
大脚趾脚尖部;前脚掌内侧关节;脚内侧足弓;后脚掌内侧;脚后跟后方;后脚掌外侧;前脚掌外侧关节;前脚面和腿部连接处;脚踝内侧关节;后脚筋;脚踝外侧关节。
由此可以利用脚部轮廓上突出区域和/或内凹区域内的点作为第一脚部关键点,提升对脚部轮廓表征的准确性,从而更加准确体现出所述用户脚部在所述待处理图像中展现出的位姿。
在一些实施例中,S302可以针对用户左右脚部分别检测第一脚部关键点。以下示意的检测方法适用于用户左右脚部。
在一些实施例中,可以利用脚部关键点检测模型,对所述待处理图像进行关键点检测,得到所述用户脚部对应的第一脚部关键点。
所述脚部关键点检测模型可以是基于多个标注了图像中脚部的脚部关键点的位置信息的图像样本训练得到的神经网络模型。
在训练所述脚部关键点检测模型的过程中,可以先标注出所述图像样本中的脚部关键点,以及脚部关键点的位置信息(所述位置信息可以是脚部关键点在所述图像样本中的坐标信息),得到标注信息。然后通过进行多轮有监督训练,使得所述检测模型具备检测图像中脚部的脚部关键点及其位置的能力。
其中在一轮训练中,可以将图像样本输入所述检测模型进行前向传播,得到针对图像样本中脚部的脚部关键点的预测结果。然后利用预设的损失函数(比如交叉熵损失函数)可以得到所述标注信息和所述预测结果之间的损失信息。之后利用所述损失信息即可完成所述检测模型的参数调整。
在S302中,将所述待处理图像输入完成训练的所述脚部关键点检测模型,即可得到待处理图像中用户脚部对应的第一脚部关键点及其位置信息。
以第一脚部关键点为M个区域中的点为例。在构建图像样本时候,可以标注出图像样本中的M个所述第一脚部关键点,以及对应的坐标。然后可以通过多轮有监督训练,使得所述检测模型具备检测出M个所述第一脚部关键点及其坐标的能力。所述M根据需求进行设定。
将所述待处理图像输入完成训练的所述检测模型,即可得到用户脚部对应的M个所述第一脚部关键点及其位置坐标。
在S302中,将所述待处理图像输入完成训练的所述腿部区域分割模型,即可得到腿部分割图。
即便用户腿部由于服装的存在可能导致形状很复杂,但是通过腿部分割图仍能很好的得到用户腿部形状信息,便于后续判断遮挡情况时确定用户腿部区域。
所述腿部分割图,是指对所述待处理图像进行图像分割得到的图。所述腿部分割图中的像素点的像素值指示所述像素点是否处于腿部区域,由此使得所述腿部分割图可以指示所述用户腿部的腿部区域形状。
请参见图4,图4为本申请实施例示出的一种腿部分割图示意图。如图4所示,黑色区域为所述腿部区域,白色区域别为非腿部区域。白色区域和黑色区域之间的边界线即为用户腿部的轮廓线。通过轮廓线和黑色区域可以体现出腿部区域形状。
在一些实施例中,可以利用腿部区域分割模型,对所述待处理图像进行腿部区域分割,得到腿部分割图。
所述腿部区域分割模型可以是基于多个标注了所述腿部区域的图像样本训练得到的神经网络模型。
在训练所述腿部区域分割模型的过程中,可以先标注出所述图像样本中的腿部区域,得到标注信息。比如可以将图像样本中处于腿部区域内的像素点的像素值置为第一像素值,将非腿部区域内的像素点的像素值置为第二像素值,从而可以得到标注信息。然后通过进行多轮有监督训练,使得所述分割模型具备分割腿部区域的能力。
其中在一轮训练中,可以将图像样本输入所述分割模型进行前向传播,得到针对腿部区域的预测结果。然后利用预设的损失函数(比如交叉熵损失函数)可以得到所述标注信息和所述预测结果之间的损失信息。之后利用所述损失信息即可完成所述分割模型的参数调整。
S304,根据所述第一脚部关键点,和预设的脚部模型中与所述第一脚部关键点对应的第二脚部关键点之间的位置映射关系,调整所述脚部模型、预设的鞋子模型和预设的腿部模型的位姿。
所述预设的脚部模型(以下也被称为3D脚部)可以是在三维空间中预设的脚部立体模型。
所述3D脚部包括很多顶点。这些顶点可以具有预设的位置信息和颜色值信息。所述位置信息可以是顶点在所述三维空间中的坐标。通过这些顶点的坐标可以指示出所述3D脚部在三维空间中的位姿,通过这些顶点的颜色值可以指示所述3D脚部的颜色。
所述位姿可以包括模型从初始位置和姿态移动到当前位置和姿态的平移量和旋转量。模型当前时刻的位置和姿态与模型当前时刻的位姿相关,所以会用当前时刻的位姿指示模型当前时刻的位置和姿态。3D脚部在三维空间中都会具有一定的位姿。
在三维空间中,顶点的坐标包括X、Y、Z三个方向的坐标值。其中,Z值是指该顶点到XY平面的距离。这个距离可以被称为该顶点对应的深度。通过深度可以比较X和Y值相同的两个顶点之间的遮挡关系。比如,鞋子上的A点的坐标为(X1,Y1,Z1),脚部上的B点的坐标为(X2,Y2,Z2)其中,X1=X2,Y1=Y2,Z1小于Z2,即鞋子在A点处遮挡到了脚部上的B点。
所述预设的腿部模型(以下也被称为3D腿部)可以是在所述三维空间中预设的腿部立体模型。
所述3D腿部包括很多顶点。这些顶点可以具有预设的位置信息和颜色值信息。所述位置信息可以是顶点在所述三维空间中的坐标。通过这些顶点的坐标可以指示出所述3D腿部在三维空间中的位姿,通过这些顶点的颜色值可以指示所述3D腿部的颜色。所述3D腿部的顶点的Z坐标值可以指示所述顶点的深度。
在一些实施例中,所述3D腿部的尺寸可以设置为大于预设尺寸。即该3D腿部包括的顶点中对应的最大X值与最小X值之间的差值达到第一预设值,最大Y值和最小Y值之间的差值达到第二预设值,最大Z值和最小Z值之间的差值达到第三预设值。由此可以保证3D腿部示意的腿部区域可以大于S302得到的腿部分割图所示意的用户腿部区域,使得在S306利用腿部分割图对所述3D腿部进行调整得到腿部3D子模型的时候,不会由于3D腿部尺寸太小,导致腿部3D子模型无法准确指示用户腿部区域信息,从而造成遮挡关系确认错误。
所述预设的鞋子模型(以下也被称为3D鞋子)可以是在所述三维空间中预设的鞋子立体模型。
所述3D鞋子包括很多顶点。这些顶点可以具有预设的位置信息和颜色值信息。所述位置信息可以是顶点在所述三维空间中的坐标。通过这些顶点的坐标可以指示出所述3D鞋子在三维空间中的位姿,通过这些顶点的颜色值可以指示所述3D鞋子的颜色。所述3D鞋子的顶点的Z坐标值可以指示所述顶点的深度。
请参见图5,图5为本申请实施例示出的一种3D鞋子示意图。图5所示的所述3D鞋子是由多个具备颜色值和坐标值的鞋子顶点组成的。该3D鞋子在三维空间中具备初始位姿。
其中,在预设3D鞋子模型的时候可以根据鞋子的类型确定鞋子的深度。
在一些实施例中,在所述鞋子模型的类型为第一类型的情形下,所述鞋子模型中处于第一预设区域内的顶点的初始深度值小于所述脚部模型和/或所述腿部模型在所述第一预设区域内的顶点的初始深度值,以使所述鞋子模型在所述第一预设区域遮挡所述脚部模型和/或所述腿部模型;
在所述鞋子模型的类型为第二类型的情形下,所述鞋子模型中处于第二预设区域内的顶点的初始深度值大于所述脚部模型和/或所述腿部模型在所述第二预设区域内的顶点的初始深度值,以使所述脚部模型和/或所述腿部模型在所述第二预设区域遮挡所述鞋子模型。
比如,假设所述第一类型是高帮鞋,所述预设区域为鞋帮区域,那么该鞋子的鞋帮位置需要遮挡到腿部的裤子。所以在设计3D鞋子模型的时候,可以将其鞋帮区域的顶点的Z坐标值,设置为小于所述3D腿部与鞋帮区域重叠的顶点的Z坐标值,由此可以使高帮鞋的鞋帮可以遮挡到腿部的裤子。
再比如,假设所述第二类型是低帮鞋,所述预设区域为鞋帮区域,那么该鞋子的鞋帮位置会被腿部的裤子遮挡。所以在设计3D鞋子模型的时候,可以将其鞋帮区域的顶点的Z坐标值,设置为大于所述3D腿部与鞋帮位置区域的顶点的Z坐标值,由此可以使低帮鞋的鞋帮被腿部的裤子遮挡到。
所述脚部模型中预先设置了与前述第一脚部关键点对应的第二脚部关键点。所述第二脚部关键点与所述第一脚部关键点在脚部所处的位置相匹配。比如,所述第一脚部关键点为脚部大拇指的指尖点,则第二脚部关键点为3D脚部的脚部大拇指指尖点。再比如,所述第一脚部关键点为脚踝外侧关键点,则第二脚部关键点为3D脚部的脚踝外侧关键点。
在一些实施例中,所述第一脚部关键点为M个区域中的点,则所述第二关键点为所述3D脚部的前述M个区域中的点。
发明人发现所述待处理图像是二维图像。从待处理图像中无法获取用户脚部和用户腿部的深度信息(深度信息是三维信息)。
如果可以将预设的身体模型(包括脚部模型和腿部模型)调整的和图像中身体(包括脚部和腿部)在三维空间中位姿(位置和姿态)相一致,这样身体模型的顶点深度即可被赋予到图像中身体上,使得平面图像中的身体具备了深度信息,由此即可根据深度信息与鞋子模型做遮挡关系的判断。
以用户脚部为例。在三维空间中,会存在一个与用户脚部对应的3D模型,该3D模型的位姿与所述用户脚部在所述待处理图像中展现出的位姿相同。将预设3D脚部的位姿调整到与该3D模型的位姿相同(即前述相匹配)之后,即可根据预设3D脚部顶点的深度,得到用户脚部像素点的深度,相当于赋予了用户脚部深度信息。
基于前述发现,本申请中可以根据所述第一脚部关键点,和预设的脚部模型中与所述第一脚部关键点对应的第二脚部关键点之间的位置映射关系,调整所述脚部模型、预设的鞋子模型和预设的腿部模型的位姿,以使所述3D脚部和所述3D鞋子的位姿,与所述用户脚部在三维空间中的3D模型的位姿相一致,使所述3D腿部的位姿和所述用户腿部在三维空间中的3D模型的位姿相一致。
所述位置映射关系,可以是指所述第一脚部关键点在图像坐标系中的位置,与所述第二脚部关键点在世界坐标系的位置之间的映射关系。其中,所述图像坐标系是指以所述待处理图像左上角像素点为坐标系原点,沿着待处理图像上边缘与左侧边缘形成的坐标系。所述世界坐标系是指在所述三维空间中预设的三维坐标系。通过所述位置映射关系,可以完成模型位置的调整。
在一些实施例中,可以先根据所述位置映射关系,确定所述脚部模型对应的位姿调整信息;然后可以根据所述位姿调整信息,分别调整所述脚部模型,预设的鞋子模型,预设的腿部模型的位姿。
所述位姿调整信息包括旋转和平移信息。所述平移用于移动3D模型的位置,所述旋转用于改变3D模型的姿态。通过所述位姿调整信息即可进行3D模型的位姿调整。后续实施例中会介绍根据位置映射关系计算位姿调整信息的方法。
由于用户脚部和用户腿部有左右之分,在S304中需要得到完成位姿调整的左右脚部模型,左右腿部模型和左右脚鞋子模型。
在一些实施例中,可以分别预设左脚鞋子模型和右脚鞋子模型,左脚部模型和右脚部模型,以及左腿部模型和右腿部模型。
这种情形下,可以针对左脚部模型和右脚部模型,分别计算左脚部模型对应的位姿调整信息和右脚部模型对应的位姿调整信息,然后分别针对左脚鞋子模型、左脚部模型和左腿部模型、右脚鞋子模型、右脚部模型和右腿部模型进行位姿调整,得到完成位姿调整的左右脚部模型,左右腿部模型和左右脚鞋子模型。
在一些实施例中,可以利用左右脚部、左右腿部和左右脚鞋子互为镜像的原理,仅设置左边3D模型(包含左脚部模型、左脚鞋子模型和左腿部模型)或右边3D模型(包含右脚鞋子模型、右脚部模型和右腿部模型)来完成位姿调整,得到完成位姿调整的左右脚部模型,左右腿部模型和左右脚鞋子模型,从而节省工作量,节省运算量,提升遮挡关系确定效率。在一些方式中,所述镜像是指沿中心轴对称。
以预设右边3D模型,即预设右脚部模型,右脚鞋子模型,右腿部模型为例进行说明。
在根据位置映射关系确定位姿调整信息的过程中,可以响应于所述用户脚部为用户右脚部,根据所述第一脚部关键点,和所述右脚部模型中与所述第一脚部关键点对应的第二脚部关键点之间的位置映射关系,确定所述脚部模型对应的第一位姿调整信息;
响应于所述用户脚部为用户左脚部,对所述右脚部模型中与所述第一脚部关键点对应的第二脚部关键点进行镜像处理,得到第三脚部关键点,并根据所述第一脚部关键点,和所述第三脚部关键点之间的位置映射关系,确定所述脚部模型对应的第二位姿调整信息。
比如,可以预先设置第一镜像矩阵。该第一镜像矩阵用于对右脚部模型进行镜像变换,得到沿中心轴对称的左脚部模型。
在确定左脚部模型对应的第二位姿调整信息的时候,可以利用所述第一镜像矩阵,与右脚部模型上的第二脚部关键点的坐标相乘,得到左脚部模型上的第三脚部关键点的坐标,然后基于用户左脚部上的第一脚部关键点在待处理图像中的坐标,和所述第三脚部关键点的坐标,得到第二位姿调整矩阵(即前述第二位姿调整信息,包括旋转矩阵与平移矩阵)。
得到位姿调整信息之后,可以响应于所述用户脚部为用户右脚部,根据所述第一位姿调整信息,分别调整所述右脚部模型,所述右脚鞋子模型,所述右腿部模型的位姿;
响应于所述用户脚部为用户左脚部,分别对所述右脚部模型,所述右脚鞋子模型,所述右腿部模型进行镜像处理,得到左脚部模型,左脚鞋子模型,左腿部模型;
根据所述第二位姿调整信息,分别调整所述左脚部模型,所述左脚鞋子模型,所述左腿部模型的位姿。
比如,可以预先设置第二镜像矩阵与第三镜像矩阵。该第二镜像矩阵用于对右脚鞋子模型进行镜像变换,得到沿中心轴对称的左脚鞋子模型。该第三镜像矩阵用于对右腿部模型进行镜像变换,得到沿中心轴对称的左腿部模型。
可以先利用所述第二镜像矩阵与右脚鞋子模型包含的各顶点的坐标相乘,得到左脚鞋子模型包含的各顶点的坐标,然后利用第二位姿调整矩阵(包括旋转矩阵与平移矩阵)与左脚鞋子模型包含的各顶点的坐标相乘,得到完成姿态调整的左脚鞋子模型。同理利用第三镜像矩阵可以得到左腿部模型,利用第二位姿调整矩阵可以得到完成位姿调整的左腿部模型。同理利用第一镜像矩阵可以得到左脚部模型,利用第二位姿调整矩阵可以得到完成位姿调整的左脚部模型。
通过前述步骤,可以利用左右脚部、左右腿部和左右脚鞋子互为镜像的原理,仅设置右边3D模型来完成位姿调整得到完成位姿调整的左右脚部模型,左右腿部模型和左右脚鞋子模型,从而节省工作量,节省运算量,提升遮挡关系确定效率。
接下来介绍在一些实施例中,根据位置映射关系确定位姿调整信息的方法。
其中,可以获取所述两种关键点中的第一种关键点的第一位置信息,以及第二种关键点的第二位置信息;所述第一种关键点为所述第一脚部关键点,所述第二种关键点为所述第二脚部关键点或所述第三脚部关键点;然后基于所述第一位置信息与所述第二位置信息,以及预设的位置映射函数,得到所述位姿调整信息;所述位置映射函数中的已知量包括所述第一位置信息与所述第二位置信息,未知量包括所述位姿调整信息。
由此可以利用PnP(Perspective-n-Point,多点投射成像)方法准确得到第一位姿调整信息和第二位姿调整信息。
所述PnP方法,是指根据n个点在世界坐标系下的坐标P1、P2、…、Pn,所述n个点在图像坐标系下的坐标p1、p2、…、pn,图像采集设备的内参矩阵K,求解位置映射函数得到3D模型对应的位姿调整信息。其中所述内参矩阵K为已知量。在一些方式中,可以根据采集所述待处理图像的图像采集设备的型号,查询所述型号对应的内参矩阵,来确定所述内参矩阵K。
所述预设位置映射函数中的已知量为所述内参矩阵K,所述P1、P2、…、Pn和p1、p2、…、pn,未知量为位姿调整信息。通过求解所述位置映射函数即可得到所述位姿调整信息。
所述PnP方法包括DLT(Direct Linear Transform,直接线性变换法)、P3P(Perspective-3-Point,3点投射成像)、BA(Bundle Adjustment,Bundle Adjustment)等方法。以上四种算法使用的位置映射函数有区别。以下以DLT为例进行说明。
基于前述原理,本申请可以获取多对第一脚部关键点和第二脚部关键点的坐标组合,然后将获取的坐标组合输入前述位置映射函数,即可得到位姿调整信息(包括旋转信息和平移信息)。
以第一脚部关键点为M个区域中的点为例。则可以获取M个第一关键点的第一坐标,以及M个第二关键点的第二坐标,形成M对坐标组合。然后将M对坐标组合输入前述公式1即可得到第一位姿调整信息。同理也可得到第二位姿调整信息。
得到位姿调整信息后,可以根据位姿调整公式完成位姿调整的左右脚部模型,左右腿部模型和左右脚鞋子模型。
在得到位姿调整信息后,即可基于前述公式2,完成位姿调整。
在一些实施例中,所述待处理图像为视频流中的图像。在基于所述第一位置信息与所述第二位置信息,以及预设的位置映射函数,得到所述位姿调整信息之前,还可以根据第一脚部关键点的历史位置信息对第一位置信息进行滤波,降低所述第一位置信息的抖动,提升算法稳定性。
具体地,可以获取所述视频流中位于所述待处理图像之前的N帧图像中的第一脚部关键点的历史位置信息。
在一些方式中,所述视频流中的每一帧图像均会执行S102-S108,因此可以得到每一帧图像中第一脚部关键点的位置信息。这些位置信息可以被存储起来。本步骤中即可从存储的这些位置信息中,获取所述N帧图像中的第一脚部关键点的历史位置信息。
得到所述历史位置信息后,可以根据所述历史位置信息,对所述第一位置信息进行滤波,得到滤波后的第一位置信息。
在一些方式中可以采用双边滤波的方法,为所述历史位置信息分配第一权重,为所述第一位置信息分配第二权重,然后通过加权求和的方式对所述第一位置信息进行滤波,滤波后的第一位置信息更接近于历史位置信息,降低了第一位置信息的抖动,提升了算法稳定性。
S306,利用完成位姿调整的所述脚部模型的深度,确定所述用户脚部的深度,以及利用所述腿部分割图和完成位姿调整的所述腿部模型的深度,确定所述腿部区域指示的用户腿部的深度。
所述用户腿部的深度即为前述用户腿部的第二深度信息。
发明人发现完成位姿调整后,所述脚部模型与所述用户脚部在三维空间中的3D模型的位姿相一致,所述腿部模型的位姿和所述用户腿部在三维空间中的3D模型的位姿相一致,即通过身体部位模型(包括腿部模型和脚部模型)的位置信息,可以确定出所述待处理图像中相应位置的用户身体部位,然后即可根据身体部位3D模型深度,确定相应位置的用户身体部分的深度信息。
发明人还发现所述腿部模型是预设的模型,并不包含待处理图像中用户腿部的形状信息,但是所述腿部分割图中包含用户腿部区域信息,涵盖了所述形状信息,将二者结合即可得到所述用户腿部的深度,从而可以确定鞋子与用户腿部正确的遮挡关系。需要说明的是,S306中需要确定用户左右脚部和用户左右腿部的深度。以下示意的深度确定方法适用于用户左右脚部和用户左右腿部。
请参见图6,图6为本申请实施例示出的一种确定用户腿部的深度的方法的流程示意图。图6示意的步骤为对S306的补充说明。如图6所示,所述方法可以包括S602-S604。除特别说明外,本申请不限定前述步骤的执行顺序。
S602,利用所述腿部模型的深度,确定所述待处理图像中与所述腿部模型对应的腿部区域内像素点的深度。
关于该步骤的实施细节在后续实施例,此处不进行详述。
S604,利用所述腿部分割图,将处于所述腿部区域内并且处于所述腿部分割图指示的腿部区域内的像素点的深度,确定为所述用户腿部的深度。
所述用户腿部的深度即为前述用户腿部的第二深度信息。
假设所述腿部分割图中处于腿部区域内的像素点的像素值为第一像素值,处于非腿部区域内的像素点的像素值为第二像素值。
S604中,可以将所述腿部区域内的每一像素点分别作为第三像素点,然后在腿部分割图中找到坐标相同的第四像素点,如果所述第四像素点的像素值为第一像素值,则可以确定所述第三像素点处于腿部区域内,如果所述第四像素点的像素值为第二像素值,则可以确定所述第三像素点处于腿部区域以外。
在所述第三像素点处于所述腿部区域以内的情形下,可以保留所述第三像素点的深度;在所述第三像素点处于所述腿部区域以外的情形下,可以删除所述第三像素点的深度。
由此在根据腿部模型的深度确定用户腿部的深度信息的时候,可以利用腿部分割图,将腿部模型对应的二维腿部区域中的各像素点中,处于所述腿部分割图指示的腿部区域内的像素点的像素值,确定为所述用户腿部的深度,由此可以准确的对待处理图像中的用户腿部赋予深度值,从而可以根据用户腿部的深度值,准确的确定用户腿部与鞋子模型之间的遮挡关系。
在一些实施例中,可以预先分配与所述待处理图像对应的深度缓存区。所述深度缓存区存储了所述待处理图像内每一像素点的初始深度值。所述初始深度值远大于3D鞋子的深度,目的在于将所述腿部区域以外的像素点作为背景,被鞋子遮挡住,符合实际遮挡情形。
S604中,在确定所述腿部区域内的像素点的深度之后,可以基于确定的所述深度更新所述深度缓存区中已存储的所述腿部区域内的像素点的深度,由此在后续依据深度信息确定遮挡关系时,可以提升深度信息的读取速度。
以下介绍如何利用身体模型的深度,确定身体部位的深度。
其中,在所述身体部位模型为完成位姿调整的所述脚部模型的情形下,所述用户身体部位为所述用户脚部;在所述身体部位模型为所述腿部模型的情形下,所述用户身体部位为与所述腿部模型对应的2D腿部;
需要说明的是,所述2D腿部与待处理图像中的用户腿部形状不同,该2D腿部可以理解为利用预设的3D腿部投影得到;待处理图像中的用户腿部可以理解为利用腿部分割图对2D腿部进行切分得到。
所述身体模型包括多个由预设数量的身体部位顶点组成的身体部位网格。
所述预设数量为经验值。比如所述预设数量为3或4。
在创建身体模型时,一般会确定身体模型的哪些身体部位顶点可以组成一个身体部位网格,从而得到多个身体部位网格。在本申请中以身体部位网格为单位进行图像渲染或确定遮挡关系。
请参见图7,图7为本申请实施例示出的一种确定身体部位的深度的方法的流程示意图。图7示意的步骤为针对某一身体部位网格确定对应身体部位的身体的说明。可以理解的是,身体部位模型包括的每一身体部位网格均需执行S702-S706。除特别说明外,本申请不限定前述步骤的执行顺序。
S702,获取所述身体部位网格内包含的身体部位顶点的顶点坐标。
在创建身体部位模型时即确定了身体部位网格与身体部位顶点的对应关系,S702中可以根据所述对应关系,获取所述身体部位网格内包含的身体部位顶点的顶点坐标。
S704,根据获取的所述顶点坐标,确定所述待处理图像中与所述身体部位网格对应的第一像素点;所述第一像素点为所述身体部位上的像素点。
在一些方式中,可以采用LEE(Linear Expression Evaluation,线性表达式评估)和Scan line(扫描线)算法,确定所述第一像素点。关于前述算法的相关说明可以参照相关技术。
以Scan line为例。可以先基于成像原理,根据内参矩阵,将所述顶点坐标映射为二维坐标。然后根据所述二维坐标可以确定出处于所述身体部位网格内部的像素点的坐标。之后根据确定的该坐标即可确定所述第一像素点。
S706,根据所述身体部位网格内包含的身体部位顶点的深度,确定所述第一像素点的深度。
可以采用重心插值法确定所述第一像素点的深度。
其中,在重心插值法中,可以假设所述第一像素点为所述身体部位网格内重心,然后可以确定所述身体部位顶点的深度(即Z坐标值)对应的权重,之后采用加权求和的方法即可完成插值,得到所述第一像素点的深度。
在一些方式中,还可以根据所述身体部位顶点的深度,确定平均值,最大值或最小值,并将所述平均值,最大值或最小值确定为所述第一像素点的深度。
针对每一身体部位网格完成S702-S706即可根据身体部位模型的深度确定用户身体部位的深度。
S308,根据完成位姿调整的所述鞋子模型,分别与所述用户脚部和所述用户腿部的深度比较结果,确定所述鞋子分别与所述用户脚部和所述用户腿部之间的遮挡关系。
需要说明的是,S308中需要确定左脚鞋子,与用户左脚部和用户左腿部的遮挡关系,以及右脚鞋子,与用户右脚部和用户右腿部的遮挡关系。以下示意的遮挡关系的确定方法适用于两个遮挡关系的确定。
可以理解的是,所述鞋子模型包括多个由预设数量的鞋子顶点组成的鞋子网格。
在一些方式中,可以针对每一所述鞋子网格:
根据所述鞋子网格内的鞋子顶点的坐标,确定所述待处理图像中与所述鞋子网格对应的第二像素点。得到第二像素点之后,可以根据所述鞋子网格内的鞋子顶点的深度,确定所述鞋子网格的第一深度。其中确定第二像素点的方法可以参照前述确定第一像素点的方法,确定所述第一深度的方法可以参照确定第一像素点的深度的方法。
得到所述第一深度之后,将所述第一深度与所述第二像素点对应的第二深度进行比较。
在一些方式中,待处理图像中像素点的深度存储在深度缓存区中。本步骤中可以从所述深度缓存区读取所述第二深度。然后将所述第一深度与所述第二深度进行比较。
在所述第一深度小于所述第二深度的情形下,确定所述鞋子网格遮挡所述第二像素点,以及,在所述第一深度大于等于所述第二深度的情形下,确定所述鞋子网格被所述第二像素点遮挡。
在S302-S308记载的方案中,一方面,可以根据腿部分割图与预设的腿部模型确定用户腿部区域内像素点的深度,使得不论用户腿部的腿部区域形状如何,本申请均能得到所述腿部区域指示的用户腿部的深度,即可准确的根据深度确定鞋子与用户腿部(包含腿部服装)之间的遮挡关系。
另一方面,可以根据用户脚步的第一脚部关键点与脚部模型对应的第二脚部关键点,调整脚部模型,鞋子模型和腿部模型的位姿,使其与用户脚部在图像中展现出的位姿相一致。然后可以根据鞋子模型和腿部模型的顶点深度,确定用户脚部区域和用户腿部区域内像素点的深度,相当于赋予用户脚部与用户腿部准确的深度信息,即可准确的根据深度确定鞋子与用户脚部和腿部(包含腿部服装)之间的遮挡关系。
综上,与相关技术相比,在鞋子与用户脚部和腿部遮挡情况比较复杂的情形下,通过本申请记载的方法仍然可以准确确定遮挡关系。
在一些实施例中,在确定3D鞋子上的鞋子网格与用户身体部位上的第二像素点的遮挡关系之后,可以S310,根据所述遮挡关系确定是否更新待处理图像中与所述第二顶点对应的第二像素点的像素值,以完成鞋子渲染。
具体地,在确定所述鞋子网格遮挡所述第二像素点的情形下,还包括:
获取为所述鞋子网格内的鞋子顶点预设的顶点颜色值;
根据获取的所述顶点颜色值,确定所述鞋子网格的颜色值;其中,确定鞋子网格的颜色值的方法可以采用插值,求平均值,最大值,最小值等方法,具体可以参照关于确定第一像素点的深度时的相关说明。
将所述第二像素点对应的像素值更新为所述鞋子网格的颜色值,以完成所述鞋子在所述鞋子网格处的渲染。
在确定所述鞋子网格被所述第二像素点遮挡的情形下,可以保留所述第二像素点原先的像素值。
在一些方式中,可以预先为所述待处理图像分配对应的颜色缓冲区。所述颜色缓冲区存储了所述待处理图像中的每个像素点的像素值。
在以上渲染步骤中,在确定所述鞋子网格遮挡所述第二像素点的情形下,可以更新颜色缓存区缓存的所述第二像素点的像素值为所述鞋子网格的颜色值,由此相当于在所述第二像素点处展示了鞋子的颜色。在确定所述鞋子网格被所述第二像素点遮挡的情形下,可以保留颜色缓存区缓存的所述第二像素点的像素值,由此相当于保留了待处理图像中所述第二像素点的原始颜色。比如,假设所述第二像素点为腿部区域内的像素点,则相当于保留了腿部区域的颜色。
之后可以根据所述颜色缓存区存储的每一像素点的像素值,得到结合鞋子与用户身体部位之间的正确遮挡关系的渲染图。
以下结合虚拟试鞋场景进行实施例说明。
该场景中,用户需要通过虚拟试鞋客户端(以下简称客户端)选择需要试穿的目标鞋子。所述客户端可以响应于用户选择了试穿的目标鞋子,开启摄像头采集视频流。需要说明的是用户需要将所述摄像头对准用户脚部和腿部。即所述视频流中的现场图像包含用户脚部与腿部。该场景中需要将所述目标鞋子渲染到所述视频流中的每一现场图像。以下针对其中一张现场图像进行鞋子渲染的过程进行说明。假设选取的目标鞋子为如图5示意的3D鞋子。
请参见图8,图8为本申请实施例示出的一种虚拟试鞋方法的流程示意图。如图8所示,所述方法可以包括S801-S811。除特别说明外,本申请不限定这些步骤的执行顺序。
S801,获取现场图像。
本步骤中可以从摄像头采集的视频流中获取所述现场图像。请参见图9,图9为本申请实施例示出的一种现场图像示意图。图9示意的现场图像中包括身着长裤的用户腿部和穿着鞋子的用户脚部。此时用户穿着的鞋子是自己的鞋子,不是所述目标鞋子。
S802,利用预先完成训练的脚部关键点检测模型,检测所述现场图像中的M个第一脚部关键点,以及M个第一脚部关键点在所述现场图像中的第一坐标。
本步骤需要检测出用户左右脚部分别对应的M个第一脚部关键点及其坐标。所述M可以根据需求进行设定。
S803,利用预先完成训练的腿部区域分割模型对所述现场图像进行图像分割,得到所述现场图像中腿部分割图。
请参见图4,图4为针对图9示意的现场图像进行图像分割得到腿部分割图。其中,黑色区域为腿部区域,白色区域为非腿部区域。假设腿部区域内的像素点的像素值为0,所述腿部区域以外的像素点的像素值为1。
S804,根据所述用户右脚部对应的M个第一脚部关键点及其坐标,以及预设右脚部模型中与所述M个第一脚部关键点位置相同的M个第二脚部关键点的坐标,确定与所述右脚部模型对应的第一位姿调整矩阵。
本步骤中基于前述DLT方法确定所述第一位姿调整矩阵,在此不做详述。
S805,根据预设的第一镜像矩阵,对M个所述第二脚部关键点的坐标进行镜像,得到M个第三脚部关键点及其坐标,然后根据所述M个第一脚部关键点及其坐标与M个所述第三脚部关键点及其坐标,确定与左脚部模型对应的第二位姿调整矩阵。
S806,根据所述第一位置调整矩阵调整所述右脚部模型,针对所述目标鞋子预设的右脚鞋子模型,预设右腿部模型进行位姿调整。
S807,利用预设的第一镜像矩阵对右脚部模型进行镜像得到左脚部模型,利用第二镜像矩阵对右脚鞋子模型进行镜像得到左脚鞋子模型,利用第三镜像矩阵对右腿部模型进行镜像得到左腿部模型,利用所述第二位姿调整矩阵,对所述左脚鞋子模型、左腿部模型和左脚部模型进行位姿调整。
S808,根据完成位姿调整的左右脚部模型的顶点信息,分别确定用户左右脚部对应像素点的深度,以及根据左右腿部子模型的顶点信息和所述腿部分割图,分别确定用户左右腿部对应像素点的深度,并将确定的像素点的深度存储至深度缓存区。
所述深度缓存区存储了所述现场图像的每一像素点的深度。
本步骤中确定深度的方法可以参照前述实施例,在此不做详述。
针对左右脚鞋子模型的每一鞋子网格,S809,确定所述现场图像中与所述鞋子网格对应的目标像素点,从所述深度缓存区获取所述目标像素点的目标深度,并与所述鞋子网格的网格深度进行比较。
S810,如果所述网格深度小于所述目标深度,确定所述鞋子网格遮挡到所述目标像素点,获取颜色缓存区,并将所述颜色缓存区中存储的所述目标像素点的像素值更新为所述鞋子网格对应的颜色值,以在所述目标像素点处展示鞋子的颜色。
S811,如果所述网格深度大于所述目标深度,确定所述鞋子网格被所述目标像素点遮挡,则保留所述颜色缓存区中存储的所述目标像素点的像素值,以在所述目标像素点出展示该点在现场图像中的颜色。
针对左右脚鞋子模型的每一鞋子网格顶点完成S809-S811,则可以将目标鞋子渲染至现场图像,完成虚拟试鞋。请参见图10,图10为本申请实施例示出的一种将目标鞋子渲染至现场图像中的效果示意图。完成渲染后,可以根据所述颜色缓存区存储的每一像素点的像素值,得到结合鞋子与用户身体部位之间的正确遮挡关系的渲染图。
在前述方案中,一方面,不论由于裤子的存在导致用户腿部形状多复杂,均可以通过图像分割与腿部模型的深度,得到腿部区域指示的用户腿部的深度,然后根据该用户腿部和鞋子模型的深度的比较结果,可以准确确定鞋子与用户腿部之间的遮挡关系,进而得到正确的渲染效果。
另一方面,不论用户身体部位(包含脚部与腿部)姿态如何,均可以通过调整预设身体模型(包括腿部模型与脚部模型)的位姿,得到与用户身体部位匹配的位姿,以将身体模型的深度赋予用户身体部位,从而可以根据鞋子模型与所述用户身体部位的深度比较结果,确定所述鞋子和所述用户身体部位之间的遮挡关系,进而得到正确的渲染效果。
与所述任一实施例相对应的,本申请还提出一种图像处理装置。
请参见图11,图11为本申请实施例示出的一种图像处理装置的结构示意图。如图11所示的图像处理装置1100可以包括:
获取模块1110,用于获取用户身体部位图像、待渲染的穿戴效果模型以及预设的身体部位模型;其中,所述穿戴效果模型具有预设的第一位姿信息,所述身体部位模型具有预设的第二位姿信息;
第一调整模块1120,用于根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息;
确定模块1130,用于根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系;
渲染模块1140,用于根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。
在一些实施例中,所述装置1100还包括:
分割模块,用于在获取用户身体部位图像之后,对所述用户身体部位图像中的用户身体部位进行分割,得到身体部位分割图;所述身体部位分割图指示所述用户身体部位的区域形状;
第二调整模块,在根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系之前,利用所述身体部位分割图,对所述身体部位模型进行调整,得到与所述用户身体部位匹配的身体部位模型。
在一些实施例中,所述第二调整模块,进一步:
对所述身体部位模型进行三维到二维的投影方法,得到身体部位的二维模型;
根据身体部位分割图,将所述二维模型中处于所述身体部位分割图以外的像素点删除,得到修正之后的二维模型;
对所述二维模型进行二维到三维的映射,得到与所述用户身体部位匹配的身体部位模型。
在一些实施例中,所述第一调整模块1120,进一步用于:
提取所述用户身体部位图像中用户身体部位对应的第一关键点;
根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,调整所述第一位姿信息与所述第二位姿信息。
在一些实施例中,所述第一调整模块1120,进一步用于:
根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,确定所述身体部位模型对应的位姿调整信息;
根据所述位姿调整信息,分别调整所述第一位姿信息与所述第二位姿信息。
在一些实施例中,所述第一调整模块1120,进一步用于:
获取所述第一关键点的第一位置信息以及所述第二关键点的第二位置信息;
基于所述第一位置信息与所述第二位置信息,以及预设的位置映射关系,得到所述位姿调整信息。
在一些实施例中,所述用户身体部位图像为视频流中的图像;所述装置1100还包括:
滤波模块,用于在基于所述第一位置信息与所述第二位置信息,以及预设的位置映射关系,得到所述位姿调整信息之前,获取所述视频流中位于所述用户身体部位图像之前的N帧图像中的第一关键点的历史位置信息;
根据所述历史位置信息,对所述第一位置信息进行滤波,得到滤波后的第一位置信息。
在一些实施例中,所述确定模块1130,进一步用于:
根据调整后的第一位姿信息,确定所述穿戴效果模型对应的第一深度信息,以及根据调整后的所述第二位姿信息,确定所述身体部位模型的第二深度信息;
根据所述第一深度信息与所述第二深度信息之间的比较结果,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系。
在一些实施例中,所述确定模块1130,进一步用于:
根据调整后的第一位姿信息对所述穿戴效果模型的初始深度值进行调整,得到所述第一深度信息,以及,
根据调整后的第二位姿信息对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息。
在一些实施例中,所述用户身体部位模型腿部模型,所述装置还包括:
分割模块,用于对所述用户身体部位图像中的用户腿部进行分割,得到腿部分割图;所述腿部分割图指示所述用户腿部的区域形状。
第三调整模块,根据调整后的第二位姿信息和所述腿部分割图,对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息。
在一些实施例中,所述第三调整模块,进一步用于:
根据调整后的第二位姿信息对所述腿部模型的初始深度值进行调整,得到所述腿部模型的当前深度值;
根据所述当前深度值,确定所述用户身体部位图像中与所述用户腿部模型对应的用户腿部区域内像素点的深度;
利用所述腿部分割图,将处于所述腿部区域内并且处于所述身体分割图指示的腿部区域内的像素点的深度,确定为所述第二深度信息。
在一些实施例中,所述遮挡关系指示所述穿戴效果模型与所述身体部位模型之间的重合区域的遮挡关系;所述渲染模块1140,进一步用于:
在所述遮挡关系指示所述穿戴效果模型遮挡所述身体部位模型的情形下,将所述穿戴效果模型在所述用户身体部位图像对应像素点的像素值,设置为所述穿戴效果模型具备的颜色值;
在所述遮挡关系指示所述身体部位模型遮挡所述穿戴效果模型的情形下,保留所述穿戴效果模型在所述用户身体部位图像对应像素点的原有像素值。
在一些实施例中,所述穿戴效果模型包括鞋子模型,所述用户身体部位模型包括脚部模型和/或腿部模型。
在一些实施例中,所述确定模块1130,进一步用于:
根据调整后的第一位姿信息,确定所述鞋子模型对应的第一深度信息,以及根据调整后的所述第二位姿信息,确定所述脚部模型和/或所述腿部模型的第二深度信息;
根据所述第一深度信息与所述第二深度信息之间的比较结果,确定所述鞋子模型与所述脚部模型和/或所述腿部模型之间的遮挡关系。
在一些实施例中,在所述鞋子模型的类型为第一类型的情形下,所述鞋子模型中处于第一预设区域内的顶点的初始深度值小于所述脚部模型和/或所述腿部模型在所述第一预设区域内的顶点的初始深度值,以使所述鞋子模型在所述第一预设区域遮挡所述脚部模型和/或所述腿部模型;
在所述鞋子模型的类型为第二类型的情形下,所述鞋子模型中处于第二预设区域内的顶点的初始深度值大于所述脚部模型和/或所述腿部模型在所述第二预设区域内的顶点的初始深度值,以使所述脚部模型和/或所述腿部模型在所述第二预设区域遮挡所述鞋子模型。
前述方案中,可以根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息,达到将所述穿戴效果模型与所述身体部位模型调整到与所述用户身体部位图像指示的用户身体部位位姿相一致的效果;
然后再根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,即可通过确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,指示所述穿戴效果模型与所述图像中示意的用户身体部位之间的遮挡关系。
最后,根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。即可根据所述穿戴效果模型与所述用户身体部位之间的正确的遮挡关系,完成图像渲染,提升虚拟穿戴效果。
本申请示出的图像处理装置的实施例可以应用于电子设备上。相应地,本申请公开了一种电子设备,该设备可以包括:处理器。
用于存储处理器可执行指令的存储器。
其中,所述处理器被配置为调用所述存储器中存储的可执行指令,实现前述任一实施例示出的图像处理方法。
请参见图12,图12为本申请实施例示出的一种电子设备的硬件结构示意图。
如图12所示,该电子设备可以包括用于执行指令的处理器,用于进行网络连接的网络接口,用于为处理器存储运行数据的内存,以及用于存储图像处理装置对应指令的非易失性存储器。
其中,所述图像处理装置的实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图12所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
可以理解的是,为了提升处理速度,所述图像处理装置对应指令也可以直接存储于内存中,在此不作限定。
本申请提出一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可以用于使处理器执行前述任一实施例示出的图像处理方法。
本领域技术人员应明白,本申请一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本申请一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请中的“和/或”表示至少具有两者中的其中一个,例如,“A和/或B”可以包括三种方案:A、B、以及“A和B”。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、可以包括本申请中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本申请中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本申请中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机可以包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件可以包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将可以包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质可以包括所有形式的非易失性存储器、媒介和存储器设备,例如可以包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本申请包含许多具体实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的具体实施例的特征。本申请内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,所述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上仅为本申请一个或多个实施例的较佳实施例而已,并不用以限制本申请一个或多个实施例,凡在本申请一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请一个或多个实施例保护的范围之内。
Claims (18)
1.一种图像处理方法,其特征在于,包括:
获取用户身体部位图像、待渲染的穿戴效果模型以及预设的身体部位模型;其中,所述穿戴效果模型具有预设的第一位姿信息,所述身体部位模型具有预设的第二位姿信息;
根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息;
根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系;
根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。
2.根据权利要求1所述的方法,其特征在于,在获取用户身体部位图像之后,所述方法还包括:
对所述用户身体部位图像中的用户身体部位进行分割,得到身体部位分割图;所述身体部位分割图指示所述用户身体部位的区域形状;
在根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系之前,所述方法还包括:
利用所述身体部位分割图,对所述身体部位模型进行调整,得到与所述用户身体部位匹配的身体部位模型。
3.根据权利要求2所述的方法,其特征在于,所述利用所述身体部位分割图,对所述身体部位模型进行调整,得到与所述用户身体部位匹配的身体部位模型,包括:
对所述身体部位模型进行三维到二维的投影方法,得到身体部位的二维模型;
根据身体部位分割图,将所述二维模型中处于所述身体部位分割图以外的像素点删除,得到修正之后的二维模型;
对所述二维模型进行二维到三维的映射,得到与所述用户身体部位匹配的身体部位模型。
4.根据权利要求1-3任一所述的方法,其特征在于,所述根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息,包括:
提取所述用户身体部位图像中用户身体部位对应的第一关键点;
根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,调整所述第一位姿信息与所述第二位姿信息。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,调整所述第一位姿信息与所述第二位姿信息,包括:
根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,确定所述身体部位模型对应的位姿调整信息;
根据所述位姿调整信息,分别调整所述第一位姿信息与所述第二位姿信息。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一关键点,和所述身体部位模型中的第二关键点之间的位置映射关系,确定所述身体部位模型对应的位姿调整信息,包括:
获取所述第一关键点的第一位置信息以及所述第二关键点的第二位置信息;
基于所述第一位置信息与所述第二位置信息,以及预设的位置映射关系,得到所述位姿调整信息。
7.根据权利要求6所述的方法,其特征在于,所述用户身体部位图像为视频流中的图像;在基于所述第一位置信息与所述第二位置信息,以及预设的位置映射关系,得到所述位姿调整信息之前,所述方法还包括:
获取所述视频流中位于所述用户身体部位图像之前的N帧图像中的第一关键点的历史位置信息;
根据所述历史位置信息,对所述第一位置信息进行滤波,得到滤波后的第一位置信息。
8.根据权利要求1所述的方法,其特征在于,所述根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,包括:
根据调整后的第一位姿信息,确定所述穿戴效果模型对应的第一深度信息,以及根据调整后的所述第二位姿信息,确定所述身体部位模型的第二深度信息;
根据所述第一深度信息与所述第二深度信息之间的比较结果,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系。
9.根据权利要求8所述的方法,其特征在于,所述根据调整后的第一位姿信息,确定所述穿戴效果模型对应的第一深度信息,以及根据调整后的所述第二位姿信息,确定所述身体部位的第二深度信息,包括:
根据调整后的第一位姿信息对所述穿戴效果模型的初始深度值进行调整,得到所述第一深度信息,以及,
根据调整后的第二位姿信息对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息。
10.根据权利要求9所述的方法,其特征在于,所述用户身体部位模型腿部模型,所述在获取用户身体部位图像之后,所述方法还包括:
对所述用户身体部位图像中的用户腿部进行分割,得到腿部分割图;所述腿部分割图指示所述用户腿部的区域形状;
所述根据调整后的第二位姿信息对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息,包括:
根据调整后的第二位姿信息和所述腿部分割图,对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息。
11.根据权利要求10所述的方法,其特征在于,所述根据调整后的第二位姿信息和所述腿部分割图,对所述身体部位模型的初始深度值进行调整,得到所述第二深度信息,包括:
根据调整后的第二位姿信息对所述腿部模型的初始深度值进行调整,得到所述腿部模型的当前深度值;
根据所述当前深度值,确定所述用户身体部位图像中与所述用户腿部模型对应的用户腿部区域内像素点的深度;
利用所述腿部分割图,将处于所述腿部区域内并且处于所述身体分割图指示的腿部区域内的像素点的深度,确定为所述第二深度信息。
12.根据权利要求1所述的方法,其特征在于,所述遮挡关系指示所述穿戴效果模型与所述身体部位模型之间的重合区域的遮挡关系;所述根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像,包括:
在所述遮挡关系指示所述穿戴效果模型遮挡所述身体部位模型的情形下,将所述穿戴效果模型在所述用户身体部位图像对应像素点的像素值,设置为所述穿戴效果模型具备的颜色值;
在所述遮挡关系指示所述身体部位模型遮挡所述穿戴效果模型的情形下,保留所述穿戴效果模型在所述用户身体部位图像对应像素点的原有像素值。
13.根据权利要求1所述的方法,其特征在于,所述穿戴效果模型包括鞋子模型,所述用户身体部位模型包括脚部模型和/或腿部模型。
14.根据权利要求13所述的方法,其特征在于,所述根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系,包括:
根据调整后的第一位姿信息,确定所述鞋子模型对应的第一深度信息,以及根据调整后的所述第二位姿信息,确定所述脚部模型和/或所述腿部模型的第二深度信息;
根据所述第一深度信息与所述第二深度信息之间的比较结果,确定所述鞋子模型与所述脚部模型和/或所述腿部模型之间的遮挡关系。
15.根据权利要求14所述的方法,其特征在于,在所述鞋子模型的类型为第一类型的情形下,所述鞋子模型中处于第一预设区域内的顶点的初始深度值小于所述脚部模型和/或所述腿部模型在所述第一预设区域内的顶点的初始深度值,以使所述鞋子模型在所述第一预设区域遮挡所述脚部模型和/或所述腿部模型;
在所述鞋子模型的类型为第二类型的情形下,所述鞋子模型中处于第二预设区域内的顶点的初始深度值大于所述脚部模型和/或所述腿部模型在所述第二预设区域内的顶点的初始深度值,以使所述脚部模型和/或所述腿部模型在所述第二预设区域遮挡所述鞋子模型。
16.一种图像处理装置,其特征在于,包括:
获取模块,用于获取用户身体部位图像、待渲染的穿戴效果模型以及预设的身体部位模型;其中,所述穿戴效果模型具有预设的第一位姿信息,所述身体部位模型具有预设的第二位姿信息;
第一调整模块,用于根据所述用户身体部位图像,调整所述穿戴效果模型的第一位姿信息以及所述身体部位模型的第二位姿信息;
确定模块,用于根据调整后的第一位姿信息与调整后的第二位姿信息,确定所述穿戴效果模型与所述身体部位模型之间的遮挡关系;
渲染模块,用于根据所述遮挡关系及所述穿戴效果模型,对所述用户身体部位图像进行渲染处理,得到穿戴效果图像。
17.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-15任一所述的图像处理方法。
18.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于使处理器执行如权利要求1-15任一所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210366241.2A CN114445601A (zh) | 2022-04-08 | 2022-04-08 | 一种图像处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210366241.2A CN114445601A (zh) | 2022-04-08 | 2022-04-08 | 一种图像处理方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114445601A true CN114445601A (zh) | 2022-05-06 |
Family
ID=81358775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210366241.2A Pending CN114445601A (zh) | 2022-04-08 | 2022-04-08 | 一种图像处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114445601A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174985A (zh) * | 2022-08-05 | 2022-10-11 | 北京字跳网络技术有限公司 | 特效展示方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982581A (zh) * | 2011-09-05 | 2013-03-20 | 北京三星通信技术研究有限公司 | 基于图像的虚拟试穿系统和方法 |
CN103049852A (zh) * | 2012-12-19 | 2013-04-17 | 武汉世纪炎龙网络科技有限公司 | 虚拟试衣系统 |
CN104021590A (zh) * | 2013-02-28 | 2014-09-03 | 北京三星通信技术研究有限公司 | 虚拟试穿试戴系统和虚拟试穿试戴方法 |
US20200065991A1 (en) * | 2018-08-21 | 2020-02-27 | National Tsing Hua University | Method and system of virtual footwear try-on with improved occlusion |
CN111369686A (zh) * | 2020-03-03 | 2020-07-03 | 足购科技(杭州)有限公司 | 能够处理局部遮挡物的ar成像虚拟试鞋方法及装置 |
CN112634316A (zh) * | 2020-12-30 | 2021-04-09 | 河北工程大学 | 目标跟踪方法、装置、设备和存储介质 |
-
2022
- 2022-04-08 CN CN202210366241.2A patent/CN114445601A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982581A (zh) * | 2011-09-05 | 2013-03-20 | 北京三星通信技术研究有限公司 | 基于图像的虚拟试穿系统和方法 |
CN103049852A (zh) * | 2012-12-19 | 2013-04-17 | 武汉世纪炎龙网络科技有限公司 | 虚拟试衣系统 |
CN104021590A (zh) * | 2013-02-28 | 2014-09-03 | 北京三星通信技术研究有限公司 | 虚拟试穿试戴系统和虚拟试穿试戴方法 |
US20200065991A1 (en) * | 2018-08-21 | 2020-02-27 | National Tsing Hua University | Method and system of virtual footwear try-on with improved occlusion |
CN111369686A (zh) * | 2020-03-03 | 2020-07-03 | 足购科技(杭州)有限公司 | 能够处理局部遮挡物的ar成像虚拟试鞋方法及装置 |
CN112634316A (zh) * | 2020-12-30 | 2021-04-09 | 河北工程大学 | 目标跟踪方法、装置、设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174985A (zh) * | 2022-08-05 | 2022-10-11 | 北京字跳网络技术有限公司 | 特效展示方法、装置、设备及存储介质 |
CN115174985B (zh) * | 2022-08-05 | 2024-01-30 | 北京字跳网络技术有限公司 | 特效展示方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xu et al. | Monoperfcap: Human performance capture from monocular video | |
Alldieck et al. | Detailed human avatars from monocular video | |
US9855496B2 (en) | Stereo video for gaming | |
JP6295645B2 (ja) | 物体検出方法及び物体検出装置 | |
US8781161B2 (en) | Image processing method and apparatus for generating a 3D model of a target object | |
US9489743B2 (en) | Determining dimension of target object in an image using reference object | |
US11721114B2 (en) | Method, system, and device of generating a reduced-size volumetric dataset | |
US9684928B2 (en) | Foot tracking | |
EP2751777B1 (en) | Method for estimating a camera motion and for determining a three-dimensional model of a real environment | |
JP7403534B2 (ja) | 人間の3d再構成を生成するための方法とシステム | |
Shen et al. | Virtual mirror rendering with stationary rgb-d cameras and stored 3-d background | |
JP6985897B2 (ja) | 情報処理装置およびその制御方法、プログラム | |
JP2014026429A (ja) | 姿勢推定装置、姿勢推定方法、および姿勢推定プログラム | |
Gall et al. | Drift-free tracking of rigid and articulated objects | |
CN110490131B (zh) | 一种拍摄设备的定位方法、装置、电子设备及存储介质 | |
GB2509783A (en) | System and method for foot tracking | |
CN114445601A (zh) | 一种图像处理方法、装置、设备和存储介质 | |
WO2023020327A1 (zh) | 图像处理 | |
Robertini et al. | Illumination-invariant robust multiview 3d human motion capture | |
JP7024876B2 (ja) | 検出装置、処理装置、検出方法、及び処理プログラム | |
Yang et al. | Virtual try-on of footwear in augmented reality using rgb-d cameras | |
Jung et al. | A new interface using image-based foot tracking for motion sensing devices | |
Poddar et al. | Feature based dense disparity estimation | |
Vaghani | Real-Time Human Body Tracking in Public Spaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220506 |