CN113869968A - 三维模型处理方法、装置、设备及存储介质 - Google Patents
三维模型处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113869968A CN113869968A CN202111020336.0A CN202111020336A CN113869968A CN 113869968 A CN113869968 A CN 113869968A CN 202111020336 A CN202111020336 A CN 202111020336A CN 113869968 A CN113869968 A CN 113869968A
- Authority
- CN
- China
- Prior art keywords
- key points
- dimensional model
- point
- points
- key
- 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
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开涉及一种三维模型处理方法、装置、设备及存储介质,所述方法包括:获取试穿对象对应的三维模型;确定所述三维模型中目标位置处的多个关键点;根据所述多个关键点,在所述目标位置处生成辅助模型,所述辅助模型用于在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系。本公开提供的三维模型处理方法可实现对试穿对象的三维模型与试穿用户的虚拟试穿部位之间的遮挡关系进行调整,从而获得更逼真的虚拟试穿效果。
Description
技术领域
本公开涉及信息技术领域,尤其涉及一种三维模型处理方法、装置、设备及存储介质。
背景技术
随着增强现实技术的不断发展,试穿用户可应用电子设备例如终端上的应用程序实现虚拟试穿的效果。例如,试穿鞋子、衣服、首饰等,从而使得试穿用户可以足不出户即可选择出自己满意的产品。
但是,本申请的发明人发现,在试穿用户进行虚拟试穿的过程中,画面中显示的试穿对象与试穿用户的试穿部位之间的遮挡关系存在一定的问题,导致试穿效果不够真实。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种三维模型处理方法、装置、设备及存储介质,可实现对试穿对象的三维模型与试穿用户的虚拟试穿部位之间的遮挡关系进行调整,从而获得更逼真的虚拟试穿效果。
第一方面,本公开实施例提供一种三维模型处理方法,包括:
获取试穿对象对应的三维模型;
确定所述三维模型中目标位置处的多个关键点;
根据所述多个关键点,在所述目标位置处生成辅助模型,所述辅助模型用于在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系。
第二方面,本公开实施例提供一种三维模型处理装置,包括:
获取模块,用于获取试穿对象对应的三维模型;
确定模块,用于确定所述三维模型中目标位置处的多个关键点;
生成模块,用于根据所述多个关键点,在所述目标位置处生成辅助模型,所述辅助模型用于在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系。
第三方面,本公开实施例提供一种电子设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。
本公开实施例提供的三维模型处理方法、装置、设备及存储介质,通过确定试穿对象对应的三维模型中目标位置处的多个关键点,根据该多个关键点在所述目标位置处生成辅助模型,辅助模型用于在在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系,实现了对试穿对象的三维模型与试穿用户的虚拟试穿部位之间遮挡关系的调整,从而可获得较为逼真的虚拟试穿效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种AR试穿的页面示意图;
图2为本公开实施例提供的一种三维模型处理方法流程图;
图3为本公开实施例提供的一种辅助模型的示意图;
图4为本公另一开实施例提供的一种三维模型处理方法流程图;
图5为本公开一实施例提供的一种参考平面的示意图;
图6为本公开一实施例提供的一种部分节点的示意图;
图7为本公开另一实施例提供的一种三维模型处理方法流程图;
图8为本公开一实施例提供的一种生成辅助模型的示意图;
图9为本公开另一实施例提供的三维模型处理方法流程图;
图10为本公开实施例提供的多个节点的示意图;
图11为本公开实施例提供的一组节点的示意图;
图12为本公开另一实施例提供的三维模型处理方法流程图;
图13为本公开实施例提供的三维模型处理装置的结构示意图;
图14为本公开实施例提供的电子设备实施例的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
随着AR(Augmented Reality,增强现实)技术的不断发展,试穿用户(也可以称为“用户”)可应用电子设备例如终端上的应用程序实现AR试穿的效果。例如,试穿鞋子、衣服、首饰等,从而使得试穿用户可以足不出户即可选择出自己满意的产品。
以鞋子为例,AR试鞋的情景是:试穿用户通过触发网上商城鞋子详情页上的AR试穿图标进入AR试穿,设备自动打开摄像头,试穿用户将摄像头对准自己的脚部,在拍摄页会显示实时拍摄到的试穿用户的脚部,安装在设备上的应用程序识别拍摄页中显示的脚部的位置和姿态,根据脚部的位置和姿态调整当前待试穿的鞋子的三维模型,并渲染出要试穿的鞋子图像,从试穿画面中看就好像是试穿用户穿上了打算购买的新鞋子,如图1所示的一种AR试穿的页面示意图。另外,由于是通过摄像头实时地对试穿用户的脚部进行拍摄的,因此如果试穿用户的脚部发生移动,试穿画面中显示的脚部也会实时移动,此时应用程序同步调整穿在所述脚部的三维模型的位置和/或姿态,并实时渲染,从而实现鞋子的三维模型可以跟踪试穿用户的脚部的效果。
可以理解的,AR试穿毕竟是虚拟试穿,而不是真实的物理试穿,因此目前的AR试穿技术存在鞋子的三维模型与用户的脚部之间相互遮挡不合适的问题。例如鞋子的三维模型,在鞋口处会显露鞋子内部的鞋底,即鞋子内部的鞋底会呈现在试穿画面中用户的脚踝处,即试穿过程中,鞋子内部的鞋底显示在试穿画面中,导致试穿效果的逼真度下降。针对该问题,本公开实施例提供了一种三维模型的处理方法,旨在调整试穿对象的三维模型与试穿部位之间的遮挡关系,达到提升试穿效果的目的。下面结合具体的实施例对该方法进行介绍。
图2为本公开实施例提供的三维模型处理方法流程图。本实施例可适用于客户端中进行AR试穿的场景,该方法可以由三维模型处理装置执行,该装置可以采用软件和/或硬件的方式实现,该装置可配置于电子设备中,例如终端,具体包括但不限于智能手机、掌上电脑、平板电脑、带显示屏以及摄像头的可穿戴设备、智能家居设备等。或者,本实施例可适用于服务端,该方法可以由三维模型处理装置执行,该装置可以采用软件和/或硬件的方式实现,该装置可配置于电子设备中,例如服务器。下面以终端为例介绍该三维模型处理方法。如图2所示,该方法具体步骤如下:
S201、获取试穿对象对应的三维模型。
其中,试穿对象可以是衣服、饰品或者鞋子等用于穿戴的物品。试穿对象对应的三维模型通常是预先制作好并被存储的,例如可以将试穿对象对应的三维模型存储在终端本地,也可以存储在服务器。在安装于终端的应用程序需要获取试穿对象对应的三维模型时可按照指定的存储路径获取预先制作好的三维模型。
S202、确定所述三维模型中目标位置处的多个关键点。
其中,三维模型的目标位置通常是在试穿时与用户的试穿部位之间存在不恰当遮挡关系的位置。例如鞋子的三维模型,在鞋口处会显露鞋子内部的鞋底,即鞋子内部的鞋底会呈现在试穿画面中用户的脚踝处,即试穿过程中,鞋子内部的鞋底显示在试穿画面中,导致试穿效果的逼真度下降,因此需要调整鞋子的三维模型在鞋口处与试穿部位(用户的脚踝)之间的遮挡关系,防止鞋子内部的鞋底显露在用户的脚踝处,以提升试穿效果,在该应用场景中,鞋口即为所述三维模型中的目标位置。
S203、根据所述多个关键点,在所述目标位置处生成辅助模型,所述辅助模型用于在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系。
以鞋子的三维模型为例,在鞋口的位置生成贴合鞋口的遮挡体,该遮挡体即为所述辅助模型,用于在AR试鞋时与虚拟试穿部位建立正确的遮挡关系,防止三维模型中鞋子内部的鞋底显露在试穿画面中显示的用户的虚拟脚踝处。
示例性的,可以参考如图3所示的一种辅助模型的示意图,其中包括鞋子的三维模型310和与鞋口贴合的辅助模型320,辅助模型320用于在AR试鞋时与虚拟试穿部位(用户的脚部和脚踝相关位置)建立正确的遮挡关系,防止鞋子内部的鞋底显露在试穿画面。
在一种实施方式中,生成所述辅助模型的方式可以是,先确定位于三维模型的鞋口位置处的多个点,位于鞋口位置处的多个点即为所述多个关键点,然后根据多个关键点确定鞋口所在的平面,在该平面上的点即可构成与鞋口贴合的辅助模型。
在另一种实施方式中,生成所述辅助模型的方式还可以是,先确定与三维模型的鞋口所在平面平行的参考平面,然后基于参考平面确定位于三维模型的鞋口位置处的多个关键点,再根据所述多个关键点确定贴合鞋口的辅助模型。
本公开实施例通过确定试穿对象对应的三维模型中目标位置处的多个关键点,根据该多个关键点在所述目标位置处生成辅助模型,辅助模型用于在在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系,实现了对试穿对象的三维模型与试穿用户的虚拟试穿部位之间遮挡关系的调整,从而可获得较为逼真的试穿效果。
图4为本公开另一实施例提供的三维模型处理方法流程图。在本实施例中,针对上述步骤S202“确定所述三维模型中目标位置处的多个关键点”给出了一种可选实施方式,达到了准确确定位于三维模型的目标位置处的多个关键点的目的。如图4所示,该方法具体步骤如下:
S401、获取试穿对象对应的三维模型。
S402、确定相对于所述三维模型的位置为预设位置的参考平面。
以鞋子的三维模型为例,由于在AR试穿时与试穿部位存在不恰当遮挡关系的位置包括鞋口位置,因此需要在鞋口位置生成辅助模型,对应的用于生成辅助模型的关键点是位于鞋口位置的点。如何找到三维模型中位于鞋口位置的多个关键点是本实施例要解决的问题之一。
在一种实施方式中,可优先确定三维模型中鞋口位置上方的一个平面,将该平面作为参考平面,如图5所示的一种参考平面的示意图,其中包括鞋子的三维模型510以及鞋口511上方的参考平面520。确定参考平面520的目的是为了基于鞋口位置处511的点与参考平面之间的关系从三维模型的数据中确定属于鞋口位置处511的关键点对应的数据。
S403、根据所述参考平面,确定所述三维模型中目标位置处的多个关键点,所述多个关键点中每个关键点与所述参考平面之间的距离之和小于或等于预设阈值。
其中,所述多个关键点中每个关键点与所述参考平面之间的距离之和小于或等于预设阈值的含义为:假设所述三维模型中目标位置处的多个关键点的数量为3,即有3个所述关键点,分别是关键点a、关键点b和关键点c,关键点a与所述参考平面之间的距离为la,关键点b与所述参考平面之间的距离为lb,关键点c与所述参考平面之间的距离为lc,则la+lb+lc≤L,L为所述预设阈值。
以鞋子的三维模型为例,所述目标位置为鞋口位置,根据鞋口位置的特征可以确定位于鞋口位置处的多个关键节点需满足的约束条件。所述约束条件例如为:所述多个关键点中每相邻的两个关键点之间相连,所述多个关键点中不相邻的两个关键点之间不相连;所述多个关键点中的第一个关键点和最后一个关键点相连;所述多个关键点中的任一关键点与第一集合中的节点不相连,所述第一集合是从第二集合中去除掉所述多个关键点之后的集合,所述第二集合是所述多个关键点中每个关键点的相邻节点构成的集合。
概括性的,所述多个关键点满足如下至少一个约束条件:所述多个关键点是所述三维模型中的点;所述多个关键点中每相邻的两个关键点之间相连,所述多个关键点中不相邻的两个关键点之间不相连;所述多个关键点中的第一个关键点和最后一个关键点相连;所述多个关键点中的任一关键点与第一集合中的节点不相连,所述第一集合是从第二集合中去除掉所述多个关键点之后的集合,所述第二集合是所述多个关键点中每个关键点的相邻节点构成的集合;所述多个关键点中包括已知点。
因此,可以基于上述约束条件从三维模型的所有节点中确定一组满足上述约束条件的关键点,该组关键点即为所述目标位置处的多个关键点。
为了求解上述三维模型中目标位置处的多个关键点,在一种实施方式中,将求解所述多个关键点的问题转换为优化方程求解问题。具体的,优化方程包括目标函数和约束条件,所求得的解在满足约束条件的基础上,实现目标函数。满足约束条件的解可能有多个,通过设置目标函数可从多个解中确定一个最优解,从而确定出一组上述多个关键点。
三维模型的常见结构是网格Mesh,三维模型的表面通常由多个彼此相连的三角面构成,每个三角面由三个节点和三条边组成,因此,三维模型可以理解为是由节点和边构成的,构成三维模型的节点以及边的集合即为Mesh。三维模型对应的数据结构是无向图,无向图用于存储构成三维模型的节点的坐标以及不同节点之间边的连接关系。构成三维模型的节点的坐标为三维坐标,例如节点si的三维坐标可以表示为以鞋子的三维模型为例,所述目标位置为鞋口位置,所述多个关键点为位于鞋口位置处的点。对应的优化方程的目标函数为其中,s1…sn表示位于三维模型中鞋口位置的多个关键点,即为求解的最优解,si表示s1…sn中的第i个节点。Ax+By+Cz+D=0表示位于鞋口上面的所述参考平面,表示节点si到所述参考平面的距离,表示s1…sn这n个节点中每个节点分别到所述参考面的距离的累加和。
上述目标函数的数学含义为:根据s1…sn这n个节点计算出的目标函数的值最小。上述目标函数的物理含义为:优化方程的最优解是每个节点分别到所述参考面的距离的累加和为最小值的一组点。
对应的优化方程的约束条件为:
其中,G表示三维模型中所有节点的集合,或者,换言之,G表示三维模型。约束条件(1)的含义为多个关键点s1…sn中的任意一个si属于三维模型中的点,或者说多个关键点s1…sn为三维模型中点的一部分,例如三维模型包括1万个节点,所述多个关键点s1…sn为1万个节点中的一部分节点。当G表示三维模型时,G可以表示为G[s,e],s表示节点,e表示节点之间的边。
上述约束条件(2)的含义为:节点si与节点sj之间是否有边相连,如果节点si与节点sj是相邻的两个节点,即j=i+1时,节点si与节点sj之间有边相连,例如s1和s2之间有边相连,s2和s3之间有边相连,以此类推,sn-1和sn之间有边相连。即相邻的两个节点之间相连,不相邻的两个节点之间不相连。需要说明的是,上述约束条件(2)中的i的取值范围为从1到n-1,对应的j的取值范围为从2到n。约束条件(2)是根据鞋口的特征确定的,鞋口的边缘理论上是由首尾依次相连的节点组成的闭环。
上述约束条件(3)的含义为:所述多个关键点中的第一个关键点s1和最后一个关键点sn之间有边相连,并且第一个关键点s1和最后一个关键点sn之间只有一条边相连。
针对上述约束条件(4),其中,S表示s1…sn这n个节点构成的集合,即S={s1,s2,…,sn}。sp表示从s1…sn这n个节点中任选的一个节点。neighbor(s1)表示节点s1的邻居节点,即与节点s1相邻的节点,例如节点s2和节点s3,neighbor(s2)表示节点s2的邻居节点,以此类推,neighbor(sn)表示节点sn的邻居节点。例如,将[{neighbor(s1)+neighbor(s2)+....+neighbor(sn)}-S]记为第一集合,即第一集合是s1…sn这n个节点分别对应的邻居节点构成的第二集合(即{neighbor(s1)+neighbor(s2)+....+neighbor(sn)})减去S集合后剩下的集合。sq表示第一集合中任意的一个节点,Npq=0表示节点sp和节点sq之间没有边相连。如图6所示,假设节点s1、节点s2、节点s3和节点s4是求解出的位于鞋口位置的n个关键点,节点s5、节点s6、节点s2和节点s4均是节点s1的邻居节点,节点s5与节点s1之间有边相连,节点s6与节点s1之间有边相连,节点s2与节点s1之间有边相连,节点s4与节点s1之间有边相连,即neighbor(s1)={s5,s6,s2,s4}。类似的,节点s1和节点s3均是节点s2的邻居节点,即neighbor(s2)={s1,s3};节点s2和节点s4均是节点s3的邻居节点,即neighbor(s3)={s2,s4};节点s1和节点s3均是节点s4的邻居节点,即neighbor(s4)={s1,s3}。则{neighbor(s1)+neighbor(s2)+neighbor(s3)+neighbor(s4)}={s5,s6,s2,s4,s1,s3},S={s1,s2,s3,s4},第一集合[{neighbor(s1)+neighbor(s2)+....+neighbor(sn)}-S]={s5,s6}。即第一集合中包括节点s5和节点s6,由于节点s5和节点s6不属于集合S,因此需要断开节点s5和节点s1之间的边,以及断开节点s6和节点s1之间的边,从而防止在节点s1、节点s2、节点s3和节点s4构成闭环之外再与其它节点构成其它的闭环。即所述多个关键点中的任一关键点与第一集合中的节点不相连,所述第一集合是从第二集合中去除掉所述多个关键点之后的集合,所述第二集合是所述多个关键点中每个关键点的相邻节点构成的集合。
上述约束条件(5)的含义是:集合S中包括已知节点,即求解出的n个关键点中包括已知节点。通过加入已知节点可降低求解时的计算量,提高求解速度,可较快地求解出优化方程的最优解。其中,获得已知节点的方式可以是:将三维模型分成多个部分,从每个部分中确定出一个已知节点,从而可以得到多个已知节点,然后再从多个已知节点中确定其中的一个。具体的,分别计算从每个部分中确定出的已知节点到参考面之间的距离,将到参考面的距离最小的节点确定为最终的已知节点sk。
S404、根据所述多个关键点,在所述目标位置处生成辅助模型,所述辅助模型用于在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系。
具体的,S401和S201的实现方式和具体原理一致,S404和S203的实现方式和具体原理一致,此处不再赘述。
本实施例针对上述步骤S202“确定所述三维模型中目标位置处的多个关键点”给出了可选实施方式,具体是将确定多个关键点的问题转化为求解优化方程的最优解的问题,具体是从三维模型中确定满足优化方程的所有约束条件的多组解,然后根据目标函数从多组解中确定最优解,最优解对应的多个节点即为所求的位于鞋口位置的多个关键点,达到了准确确定位于三维模型的目标位置处的多个关键点的目的。
图7为本公开另一实施例提供的三维模型处理方法流程图。在本实施例中,针对上述步骤S203“根据所述多个关键点,在所述目标位置处生成辅助模型”给出了可选实施方式。如图7所示,该方法具体步骤如下:
S701、获取试穿对象对应的三维模型。
S702、确定所述三维模型中目标位置处的多个关键点。
S703、根据所述多个关键点,得到第三集合和第四集合,所述第三集合中的点为所述多个关键点的复制点,所述第四集合中的点为所述多个关键点的复制点。
S704、将所述第四集合相对于所述第三集合移动预设距离,根据移动后的第四集合中的每个点、以及所述第三集合中的每个点,在所述目标位置处生成辅助模型。
其中,辅助模型不能与试穿对象的三维模型相交,因此不能直接利用位于三维模型的目标位置处的多个关键点生成辅助模型。在一种实施方式中,对确定的所述多个关键点进行两次复制,将两次的复制点分别确定为第三集合和第四集合。然后将第四集合相对于所述第三集合移动预设距离,第三集合保留在目标位置的处,根据移动后的第四集合中的每个点、以及所述第三集合中的每个点,在所述目标位置处生成辅助模型。
示例性的,参考如图8所示的一种生成辅助模型的示意图,根据移动后的第四集合中的每个点、以及所述第三集合中的每个点,在所述目标位置处生成辅助模型,包括:根据移动后的第四集合中的每个点(假设第四集合包括3个点,分别标记为810a、810b和810c),生成第一平面811;根据所述第三集合中的每个点(对应的,第四集合包括3个点,分别标记为820a、820b和820c),生成第二平面821;将移动后的第四集合中的每个点(810a、810b和810c)与其在所述第三集合中对应的点进行连接(第四集合中的点810a与第三集合中的点820a对应连接,第四集合中的点810b与第三集合中的点820b对应连接,第四集合中的点810c与第三集合中的点820c对应连接),得到侧面830,所述辅助模型由所述第一平面811、所述第二平面821和所述侧面830构成。需要说明的是,由于每个点均是三维模型中的点,因此带有三维坐标,对一个点进行复制并不改变该点在三维坐标系中的坐标,因此第三集合以及第四集合中的每个点与初始的多个关键点中的每个点是重合的,而移动后的第四集合中的每个点相对于初始的多个关键点中的每个点或者说是相对于第三集合中的每个点只是Z方向的坐标发生了改变,如图8所示,第四集合中的点810a相对于第三集合中的点820a,只是z方向的坐标发生了变化,而在x方向和y方向的坐标没有发生变化。
概括性,辅助模型的生成过程可以分为:复制-分离-生成。具体的,复制:辅助模型不能与三维模型相交,因此不能利用求出的多个关键点直接生成辅助模型,故将求出的多个关键点进行复制,具体的,将求出的多个关键点标记为原节点,对原节点进行第一次复制,获得第一组复制节点,对原节点进行第二次复制,获得第二组复制节点,复制后原节点、第一组复制节点以及第二组复制节点是重合在一起的。分离:假设三维模型位于三维坐标中,沿着三维坐标的Z轴方向将第二组复制节点向上移动一定距离,使得第二组复制节点和第一组复制节点相互分离,而第一组复制节点保留在原节点的位置处,即第一组复制节点与原节点重合。生成:根据第一组复制节点形成的平面和第二组复制节点形成的平面生成侧面,具体的,可以将第一组复制节点中的节点与其在第二组复制节点中的节点进行对应连接,从而形成侧面。
具体的,步骤S701和步骤S201的实现方式和具体原理一致,步骤S702与步骤S402以及步骤S403的实现方式和具体原理一致,此处不再赘述。
本实施例针对上述步骤S203“根据所述多个关键点,在所述目标位置处生成辅助模型”给出了可选实施方式,具体是对确定的多个关键节点进行两次复制,然后再将两次复制的节点进行分离,由分离后的两组复制点生成辅助模型。
图9为本公开另一实施例提供的三维模型处理方法流程图。在本实施例中,针对上述步骤S203“根据所述多个关键点,在所述目标位置处生成辅助模型”给出了可选实施方式。如图9所示,该方法具体步骤如下:
S901、获取试穿对象对应的三维模型。
S902、确定所述三维模型中目标位置处的多个关键点。
其中,确定所述三维模型中目标位置处的多个关键点包括:
确定相对于所述三维模型的位置为预设位置的参考平面。根据所述参考平面,确定所述三维模型中目标位置处的多个关键点,所述多个关键点中每个关键点与所述参考平面之间的距离之和小于或等于预设阈值。
其中,所述多个关键点满足如下至少一个约束条件:(1)所述多个关键点是所述三维模型中的点;(2)所述多个关键点中每相邻的两个关键点之间相连,所述多个关键点中不相邻的两个关键点之间不相连;(3)所述多个关键点中的第一个关键点和最后一个关键点相连;(4)所述多个关键点中的任一关键点与第一集合中的节点不相连,所述第一集合是从第二集合中去除掉所述多个关键点之后的集合,所述第二集合是所述多个关键点中每个关键点的相邻节点构成的集合;(5)所述多个关键点中包括已知点。S903、对所述多个关键点进行处理,得到处理后的多个关键点;根据处理后的多个关键点,得到第三集合和第四集合,所述第三集合中的点为所述处理后的多个关键点的复制点,所述第四集合中的点为所述处理后的多个关键点的复制点。
其中,所述关键点也称为节点,所述多个关键点称为一组节点。
由于优化方程(目标函数+约束条件)是通用性方程,而在实际应用过程中,可能无法找到同时满足上述5个约束条件的一组节点s1…sn,即所述多个关键点,那么可以选择同时满足上述5个约束条件中的任意4个的一组节点s1…sn,该组节点s1…sn中的部分节点不满足剩余的1个约束条件,但该组节点s1…sn中除所述部分节点之外的其它节点满足所述剩余的1个约束条件,此时可对不满足所述剩余的1个约束条件的节点进行处理,以使处理后的一组节点同时满足上述5个约束条件,将处理后的一组节点确定为优化方程的解。
示例性的,对所述多个关键点进行处理,得到处理后的多个关键点,包括:
对所述多个关键点中不满足预设约束条件的部分关键点进行剪枝处理,得到处理后的多个关键点;或者,若所述多个关键点不能构成闭环,则将所述多个关键点中度小于2的关键点进行连接处理,得到处理后的多个关键点。
例如上述的约束条件(2)要求多个关键点s1…sn(多个关键点s1…sn即为一组节点)中每相邻的两个关键点之间相连,多个关键点s1…sn中不相邻的两个节点之间不相连,换言之,多个关键点s1…sn中每个节点的度不能大于2,即多个关键点s1…sn中每个节点对应有两个分支,或者说每个节点只有两个邻居。但是,在一些情况下,多个关键点s1…sn可能同时满足除约束条件(2)之外的其它约束条件,即多个关键点s1…sn同时满足上述约束条件(1)、(3)、(4)和(5),多个关键点s1…sn中有部分节点不满足约束条件(2)。示例性的,参考如图10所示的多个节点的示意图,节点s2除了与相邻的节点s1和节点s3相连之外,还与节点s4和节点s5分别相连,导致节点s2有四个分支,节点s2的度大于2,因此,节点s2不满足上述的约束条件(2)。针对此,可根据最短路径确定要删除的节点,以及与其之间的边,例如保留距离节点s2较近的邻居节点,删除距离节点s2较远的邻居节点以及与其之间的边,如图10所示,可以是删除节点s4、节点s5、节点s2与节点s4之间的连线以及节点s2与节点s5之间的连线,以使通过删除处理后的节点s2满足上述约束条件(2),该删除处理过程即为上述剪枝处理的过程。
删除节点s4、节点s5、节点s2与节点s4之间的连线以及节点s2与节点s5之间的连线后的多个关键点s1…sn为处理后的多个关键点。根据处理后的多个关键点,得到第三集合和第四集合的实现方式与上述实施例中根据处理前的多个关键点得到第三集合和第四集合的实现方式类似,本实施例不再具体说明。
根据上述的约束条件(2)“所述多个关键点中每相邻的两个关键点之间相连,所述多个关键点中不相邻的两个关键点之间不相连”以及约束条件(3)“所述多个关键点中的第一个关键点和最后一个关键点相连”可以确定所述多个关键点形成闭环,但是在一些情况下求解出的多个关键点并没有形成闭环,此时需要对求解出的多个关键点进行一定的处理,以使处理后的多个关键点形成闭环,具体可以是确定度小于2的节点,例如图11所示的一组节点的示意图,假设图11所示的四个节点是搜索到的一组节点,即所述多个关键点,从图11可以看出,其中节点s3和节点s1的度均小于2,此时,可以根据节点s3和节点s1之间的距离关系建立节点s3和节点s1之间的连线,从而使得图11中的四个节点形成闭环。
S904、将所述第四集合相对于所述第三集合移动预设距离;根据移动后的第四集合中的每个点、以及所述第三集合中的每个点,在所述目标位置处生成辅助模型。
在本实施例中,针对上述步骤S203“根据所述多个关键点,在所述目标位置处生成辅助模型”给出了可选实施方式,具体是当确定的一组节点无法同时满足上述5个约束条件时,对其中不满足约束条件的节点进行适当处理,以使处理后的节点满足约束条件,从而实现对多个关键点的确定,为生成辅助模型提供数据基础。
概括性的,参考如图12所示的三维模型的处理方法的流程示意图,以三维模型是鞋子的三维模型为例,首先获取鞋子的三维模型,然后确定位于鞋子鞋口位置处的关键点,具体是先获取一组关键点,然后通过剪枝模块对获取的关键点进行剪枝处理,通过闭环模块对剪枝处理后的关键点进行处理,获得位于鞋口位置处的关键点,然后对鞋口关键点进行第一次复制,将第一次复制获得的鞋口关键点与三维模型中鞋口位置的点进行分离,生成辅助模型的底面,然后对鞋口关键点进行第二次复制,并将第二复制的点向上移动一段距离,用于生成辅助模型的上面,所述底面和所述上面生成辅助模型的侧面,从而获得与三维模型的鞋口贴合的辅助模型,也可以称为是遮挡体三维模型。
图13为本公开实施例提供的三维模型处理装置的结构示意图。本公开实施例提供的三维模型处理装置可以执行三维模型处理方法实施例提供的处理流程,如图13所示,三维模型处理装置1300包括:获取模块1310、确定模块1320和生成模块1330。
其中,获取模块1310,用于获取试穿对象对应的三维模型;确定模块1320,用于确定所述三维模型中目标位置处的多个关键点;生成模块1330,用于根据所述多个关键点,在所述目标位置处生成辅助模型,所述辅助模型用于在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系。
可选的,确定模块1320包括:
第一确定单元,用于确定相对于所述三维模型的位置为预设位置的参考平面;第二确定单元,用于根据所述参考平面,确定所述三维模型中目标位置处的多个关键点,所述多个关键点中每个关键点与所述参考平面之间的距离之和小于或等于预设阈值。
可选的,所述多个关键点满足如下至少一个约束条件:所述多个关键点是所述三维模型中的点;所述多个关键点中每相邻的两个关键点之间相连,所述多个关键点中不相邻的两个关键点之间不相连;所述多个关键点中的第一个关键点和最后一个关键点相连;所述多个关键点中的任一关键点与第一集合中的节点不相连,所述第一集合是从第二集合中去除掉所述多个关键点之后的集合,所述第二集合是所述多个关键点中每个关键点的相邻节点构成的集合;所述多个关键点中包括已知点。
可选的,生成模块1330包括:第一复制单元,用于根据所述多个关键点,得到第三集合和第四集合,所述第三集合中的点为所述多个关键点的复制点,所述第四集合中的点为所述多个关键点的复制点;第一移动单元,用于将所述第四集合相对于所述第三集合移动预设距离;第一生成单元,用于根据移动后的第四集合中的每个点、以及所述第三集合中的每个点,在所述目标位置处生成辅助模型。
可选的,生成模块1330包括:处理单元,用于对所述多个关键点进行处理,得到处理后的多个关键点;第二复制单元用于:根据处理后的多个关键点,得到第三集合和第四集合,所述第三集合中的点为所述处理后的多个关键点的复制点,所述第四集合中的点为所述处理后的多个关键点的复制点;第二移动单元,用于将所述第四集合相对于所述第三集合移动预设距离;第二生成单元,用于根据移动后的第四集合中的每个点、以及所述第三集合中的每个点,在所述目标位置处生成辅助模型。
可选的,所述处理单元包括:剪枝处理子单元,用于对所述多个关键点中不满足预设约束条件的部分关键点进行剪枝处理,得到处理后的多个关键点;或者连接处理子单元,用于若所述多个关键点不能构成闭环,则将所述多个关键点中度小于2的关键点进行连接处理,得到处理后的多个关键点。
可选的,所述第一生成单元和所述第二生成单元包括:第一生成子单元,用于根据移动后的第四集合中的每个点,生成第一平面;第二生成子单元,用于根据所述第三集合中的每个点,生成第二平面;连接子单元,用于将移动后的第四集合中的每个点与其在所述第三集合中对应的点进行连接,得到侧面,所述辅助模型由所述第一平面、所述第二平面和所述侧面构成。
本公开实施例所述的三维模型处理装置,通过确定试穿对象对应的三维模型中目标位置处的多个关键点,根据该多个关键点在所述目标位置处生成辅助模型,辅助模型用于在在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系,实现了对试穿对象的三维模型与试穿用户的虚拟试穿部位之间遮挡关系的调整,从而可获得较为逼真的虚拟试穿效果。
图13所示实施例的三维模型处理装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
以上描述了三维模型处理装置的内部功能和结构,该装置可实现为一种电子设备。图14为本公开实施例提供的电子设备实施例的结构示意图。如图14所示,该电子设备包括存储器151和处理器152。
存储器151,用于存储程序。除上述程序之外,存储器151还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器151可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器152,与存储器151耦合,执行存储器151所存储的程序,以用于:
获取试穿对象对应的三维模型;确定所述三维模型中目标位置处的多个关键点;根据所述多个关键点,在所述目标位置处生成辅助模型,所述辅助模型用于在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系。
进一步,如图14所示,电子设备还可以包括:通信组件153、电源组件154、音频组件155、显示器156等其它组件。图14中仅示意性给出部分组件,并不意味着电子设备只包括图14所示组件。
通信组件153被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件153经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件153还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件154,为电子设备的各种组件提供电力。电源组件154可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件155被配置为输出和/或输入音频信号。例如,音频组件155包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器151或经由通信组件153发送。在一些实施例中,音频组件155还包括一个扬声器,用于输出音频信号。
显示器156包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的三维模型处理方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种三维模型处理方法,其中,所述方法包括:
获取试穿对象对应的三维模型;
确定所述三维模型中目标位置处的多个关键点;
根据所述多个关键点,在所述目标位置处生成辅助模型,所述辅助模型用于在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系。
2.根据权利要求1所述的方法,其中,确定所述三维模型中目标位置处的多个关键点,包括:
确定相对于所述三维模型的位置为预设位置的参考平面;
根据所述参考平面,确定所述三维模型中目标位置处的多个关键点,所述多个关键点中每个关键点与所述参考平面之间的距离之和小于或等于预设阈值。
3.根据权利要求2所述的方法,其中,所述多个关键点满足如下至少一个约束条件:
所述多个关键点是所述三维模型中的点;
所述多个关键点中每相邻的两个关键点之间相连,所述多个关键点中不相邻的两个关键点之间不相连;
所述多个关键点中的第一个关键点和最后一个关键点相连;
所述多个关键点中的任一关键点与第一集合中的节点不相连,所述第一集合是从第二集合中去除掉所述多个关键点之后的集合,所述第二集合是所述多个关键点中每个关键点的相邻节点构成的集合;
所述多个关键点中包括已知点。
4.根据权利要求1所述的方法,其中,根据所述多个关键点,在所述目标位置处生成辅助模型,包括:
根据所述多个关键点,得到第三集合和第四集合,所述第三集合中的点为所述多个关键点的复制点,所述第四集合中的点为所述多个关键点的复制点;
将所述第四集合相对于所述第三集合移动预设距离;
根据移动后的第四集合中的每个点、以及所述第三集合中的每个点,在所述目标位置处生成辅助模型。
5.根据权利要求1所述的方法,其中,根据所述多个关键点,在所述目标位置处生成辅助模型,包括:
对所述多个关键点进行处理,得到处理后的多个关键点;
根据处理后的多个关键点,得到第三集合和第四集合,所述第三集合中的点为所述处理后的多个关键点的复制点,所述第四集合中的点为所述处理后的多个关键点的复制点;
将所述第四集合相对于所述第三集合移动预设距离;
根据移动后的第四集合中的每个点、以及所述第三集合中的每个点,在所述目标位置处生成辅助模型。
6.根据权利要求5所述的方法,其中,对所述多个关键点进行处理,得到处理后的多个关键点,包括:
对所述多个关键点中不满足预设约束条件的部分关键点进行剪枝处理,得到处理后的多个关键点;或者
若所述多个关键点不能构成闭环,则将所述多个关键点中度小于2的关键点进行连接处理,得到处理后的多个关键点。
7.根据权利要求4或5所述的方法,其中,根据移动后的第四集合中的每个点、以及所述第三集合中的每个点,在所述目标位置处生成辅助模型,包括:
根据移动后的第四集合中的每个点,生成第一平面;
根据所述第三集合中的每个点,生成第二平面;
将移动后的第四集合中的每个点与其在所述第三集合中对应的点进行连接,得到侧面,所述辅助模型由所述第一平面、所述第二平面和所述侧面构成。
8.一种三维模型处理装置,其中,包括:
获取模块,用于获取试穿对象对应的三维模型;
确定模块,用于确定所述三维模型中目标位置处的多个关键点;
生成模块,用于根据所述多个关键点,在所述目标位置处生成辅助模型,所述辅助模型用于在三维渲染过程中调整渲染生成的虚拟试穿对象与试穿用户的虚拟试穿部位之间的遮挡关系。
9.一种电子设备,其中,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111020336.0A CN113869968A (zh) | 2021-09-01 | 2021-09-01 | 三维模型处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111020336.0A CN113869968A (zh) | 2021-09-01 | 2021-09-01 | 三维模型处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113869968A true CN113869968A (zh) | 2021-12-31 |
Family
ID=78989248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111020336.0A Pending CN113869968A (zh) | 2021-09-01 | 2021-09-01 | 三维模型处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113869968A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116524088A (zh) * | 2023-07-03 | 2023-08-01 | 深圳星坊科技有限公司 | 珠宝虚拟试戴方法、装置、计算机设备和存储介质 |
-
2021
- 2021-09-01 CN CN202111020336.0A patent/CN113869968A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116524088A (zh) * | 2023-07-03 | 2023-08-01 | 深圳星坊科技有限公司 | 珠宝虚拟试戴方法、装置、计算机设备和存储介质 |
CN116524088B (zh) * | 2023-07-03 | 2023-09-19 | 深圳星坊科技有限公司 | 珠宝虚拟试戴方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109219835A (zh) | 三维打印的定制可穿戴物件的生成 | |
US11532124B2 (en) | Cross reality system with WIFI/GPS based map merge | |
JP6602889B2 (ja) | 移動体装置ローカリゼーションのためのエリア記述ファイルのクラウドソーシングによる作成および更新 | |
CN109064390B (zh) | 一种图像处理方法、图像处理装置及移动终端 | |
CN108986016B (zh) | 图像美化方法、装置及电子设备 | |
CN104952106A (zh) | 用于提供虚拟整形手术社交网络服务的方法和装置 | |
CN108304075A (zh) | 一种在增强现实设备进行人机交互的方法与设备 | |
US11250572B2 (en) | Systems and methods of generating photorealistic garment transference in images | |
JP2016535353A (ja) | オブジェクト検出及び分割の方法,装置,コンピュータプログラム製品 | |
CN111290948B (zh) | 测试数据获取方法、装置、计算机设备及可读存储介质 | |
CN107977885B (zh) | 虚拟试穿的方法及装置 | |
CN110930503B (zh) | 一种服装三维模型建立方法、系统、存储介质及电子设备 | |
JP2022545598A (ja) | 仮想対象の調整方法、装置、電子機器、コンピュータ記憶媒体及びプログラム | |
US10147240B2 (en) | Product image processing method, and apparatus and system thereof | |
CN109840939A (zh) | 三维重建方法、装置、电子设备及存储介质 | |
WO2023015903A1 (zh) | 三维姿态调整的方法、装置、电子设备及存储介质 | |
CN111710035A (zh) | 人脸重建方法、装置、计算机设备及存储介质 | |
CN113869968A (zh) | 三维模型处理方法、装置、设备及存储介质 | |
JPWO2020161816A1 (ja) | 複合現実表示装置および複合現実表示方法 | |
JP2023133394A (ja) | マッピングのためのシステムおよび方法 | |
CN113965773A (zh) | 直播展示方法和装置、存储介质及电子设备 | |
CN110728621A (zh) | 一种面部图像的换脸方法、装置、电子设备及存储介质 | |
CN114341919B (zh) | 3d数据系统、服务器以及处理3d数据的方法 | |
CN113744384A (zh) | 三维人脸重建方法、装置、电子设备及存储介质 | |
CN110349269A (zh) | 一种目标穿戴物试戴方法及系统 |
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 |