CN113850904A - 发丝模型的确定方法、装置、电子设备及可读存储介质 - Google Patents
发丝模型的确定方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113850904A CN113850904A CN202111136666.6A CN202111136666A CN113850904A CN 113850904 A CN113850904 A CN 113850904A CN 202111136666 A CN202111136666 A CN 202111136666A CN 113850904 A CN113850904 A CN 113850904A
- Authority
- CN
- China
- Prior art keywords
- hair
- model
- hairline
- node
- initial
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- 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)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供了发丝模型的确定方法、装置、电子设备及可读存储介质,涉及图像处理技术领域,尤其涉及人工智能或者增强现实技术领域。具体实现方案为:获取初始发丝模型,初始发丝模型是根据相邻发丝节点之间的位置关联信息构建的;基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型。基于本方案,能够根据目标节点的位置对初始发丝模型中的位置关联信息进行迭代更新,使得初始发丝模型中的发丝节点进行迭代偏移,从而得到目标发丝模型,基于该目标发丝模型提供的虚发型具有较好的效果,有助于保证三维虚拟形象的整体效果。
Description
技术领域
本公开涉及图像处理技术领域,尤其涉及人工智能或者增强现实技术领域,技术领域,具体而言,本公开涉及一种发丝模型的确定方法、装置、电子设备及可读存储介质。
背景技术
随着虚拟现实技术的发展,三维虚拟形象被越来越广泛的应用,为用户带来了更多的趣味性。
作为三维虚拟形象的重要的组成部分,虚拟发型对三维虚拟形象的整体效果有着重要的影响,如何为三维虚拟形象提供的效果良好的虚拟发型,以保证三维虚拟形象的整体效果,成为了虚拟现实领域的一个重要技术问题。
发明内容
本公开为了解决上述缺陷中的至少一项,提供了一种发丝模型的确定方法、装置、电子设备及可读存储介质。
根据本公开的第一方面,提供了一种发丝模型的确定方法,该方法包括:
获取初始发丝模型,初始发丝模型是根据相邻发丝节点之间的位置关联信息构建的;
基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型。
根据本公开的第二方面,提供了一种发丝模型的确定装置,该装置包括:
初始发丝模型获取模块,用于获取初始发丝模型,初始发丝模型是根据相邻发丝节点之间的位置关联信息构建的;
目标发丝模型确定模块,用于基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型。
根据本公开的第三方面,提供了一种电子设备,该电子设备包括:
至少一个处理器;以及
与上述至少一个处理器通信连接的存储器;其中,
存储器存储有可被上述至少一个处理器执行的指令,指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行上述发丝模型的确定方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使计算机执行上述发丝模型的确定方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述发丝模型的确定方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据相关技术中的一种发丝构建方式所构建的发丝的结构示意图;
图2a、2b、2c是根据相关技术中的另一种发丝构建方式所构建的发丝的结构示意图;
图3是本公开实施例提供的一种发丝模型的确定方法的流程示意图;
图4是根据本公开提供的一个发丝模型的结构示意图;
图5是本公开实施例提供的由初始发丝模型迭代得到目标发丝模型的流程示意图;
图6是本公开实施例提供的一种发丝模型的结构示意图;
图7是本公开实施例中通过旋转变化量以及长度变化量对位置关联信息进行更新的流程示意图;
图8是本公开实施例中提供的插值结果的结构示意图;
图9是本公开实施例提供的一种发丝模型的确定装置的结构示意图;
图10是用来实现本公开实施例的发丝模型的确定方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
相关技术中,构建虚拟发型中的发丝的一种方式是提供一系列的发丝节点,顺序连接这些发丝节点。如图1中示出了这种方式所构建发丝的结构示意图,图1中,a’为发丝节点。这种方式中构建的发丝无法体现真实发丝的曲线特征,并且各发丝节点之间不存在关联,其中一个发丝节点的位置变化不会影响其余发丝节点的位置,不符合真实发丝的物理特性。
相关技术中,构建虚拟发型中的发丝的另一种方式是通过样条曲线将一系列的发丝节点进行平滑连接,如图2a、图2b、图2c中分别示出了这种方式所构建发丝的结构示意图,图2a中,b’为发丝节点,图2b中,c’为发丝节点,图2c中,d’为发丝节点。这种方式中也存在各发丝节点之间不存在关联的问题,不符合真实发丝的物理特性。另外,发丝的样条曲线对应的函数公式可能为双曲螺旋线或者三次曲线,这使得曲线的形状被限定,不符合真实发丝的形状。
本申请实施例提供的发丝模型的确定方法、装置、电子设备及可读存储介质,旨在解决现有技术的如上技术问题中的至少一个。
图3示出了本公开实施例提供的一种发丝模型的确定方法的流程示意图,如图3中所示,该方法主要可以包括:
步骤S310:获取初始发丝模型,初始发丝模型是根据相邻发丝节点之间的位置关联信息构建的;
步骤S320:基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型。
本公开实施例中,虚拟发型中的发丝可以通过构建发丝模型的方式进行表示。发丝模型中可以包括多个发丝节点,可以将发丝模型中位于起始位置的发丝节点记做首端发丝节点,将位于发丝模型末端的发丝节点记做末端发丝节点。
作为一个示例,图4中示出了本公开实施例提供的一个发丝模型的结构示意图,其中,X、Y以及Z为空间坐标系中的各坐标轴,M为发丝模型,P0为发丝模型中的首端发丝节点,Pj为发丝模型中的末端发丝节点。
位置关联信息可以表示相邻发丝节点之间位置关系,使得在已知首端发丝节点的位置的情况下,能够根据该位置关联关系,依次推导得到其余各发丝节点的位置。
由于各发丝节点是根据位置关联信息依次推导出的,使得构成发丝模型的各发丝节点彼此之间相互关联,其中任意发丝节点的位置变化会带动其余发丝节点的位置也发生变化,符合真实发丝的物理特性,为后续对初始发丝模型中各发丝节点的进行迭代偏移得到目标发丝模型提供了基础。
在实际使用中,可以由一个发丝模型表示一条完整发丝,也可以由多个发丝模型共同构成一条完整发丝。
初始发丝模型为默认的发丝模型,目标节点可以为预指定的虚拟发丝的末端位置。一般情况下,初始发丝模型中末端发丝节点与目标节点存在较大的位置差异,由于各发丝节点的位置是相关联的,根据该末端发丝节点与目标节点的位置差异,能够驱动初始发丝模型中的各发丝节点进行至少一次偏移,即对相邻发丝节点之间的位置关联信息进行至少一次更新,使得初始发丝模型中的末端发丝节点与目标节点的位置差异不断减小,直至得到目标发丝模型。
本公开实施例提供的方法,通过获取根据相邻发丝节点之间的位置关联信息构建的初始发丝模型,而后基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型。基于本方案,能够根据目标节点的位置对初始发丝模型中的位置关联信息进行迭代更新,使得初始发丝模型中的发丝节点进行迭代偏移,从而得到目标发丝模型,基于该目标发丝模型提供的虚发型具有较好的效果,有助于保证三维虚拟形象的整体效果。
本公开的一种可选实施方式中,基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型,包括:
基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行更新,并构建第一发丝模型;
确定第一发丝模型是否满足预设的停止条件;
若满足,则将第一发丝模型确定为目标发丝模型;
若不满足,则将第一发丝模型作为初始发丝模型,重复执行基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行更新,并构建第一发丝模型的步骤,直至第一发丝模型满足预设的停止条件。
本公开实施例中,在迭代过程中,首先可以基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对初始发丝模型中相邻发丝节点之间的位置关联信息进行更新,而后根据更新后的位置关联信息构建第一发丝模型。
在得到第一发丝模型后,可以确定第一发丝模型是否满足停止条件,若满足,则可以停止迭代,并将第一发丝模型确定为目标发丝模型。若不满足,则可以根据第一发丝模型末端发丝节点与预指定的目标节点之间的位置差异,对第一发丝模型中相邻发丝节点之间的位置关联信息进行更新,而后根据更新后的位置关联信息构建第二发丝模型。
在得到第二发丝模型后,可以确定第二发丝模型是否满足停止条件,若满足,则可以停止迭代,并将第二发丝模型确定为目标发丝模型。若不满足,则可以迭代上述对位置关联信息进行更新,而后根据更新后的位置关联信息构建发丝模型以及确定新构建的发丝模型是否满足停止条件的过程,直至得到目标发丝模型。
作为一个示例,图5示出了本公开实施例提供的由初始发丝模型迭代得到目标发丝模型的流程示意图。
如图5中所示,Epoch 0、即为第0次迭代后的发丝,即初始发丝模型对应的发丝。Epoch 1、Epoch 2、Epoch 3、Epoch 4、Epoch 5、Epoch 6、Epoch 7、Epoch 8、Epoch 9、Epoch10……Epoch 15,即为第1、2、3、4、5、6、7、8、9、10……15次迭代后的发丝模型对应的发丝,b为目标点,图5中第15次迭代后的发丝模型即目标发丝模型。
本公开的一种可选实施方式中,位置关联信息包括相邻发丝节点的节点切线方向的旋转信息,以及相邻发丝节点之间的连线的长度信息,基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行更新,包括:
确定初始发丝模型中末端发丝节点与预指定的目标节点之间的位置变化量;
基于位置变化量确定各旋转信息的旋转变化量以及各长度信息的长度变化量;
基于旋转变化量更新旋转信息,并基于长度变化量更新长度信息。
本公开实施例中,节点切线方向可以为发丝节点处的切线方向,可以通过切线向量进行标识。旋转信息为相邻发丝节点切线方向的旋转量。长度信息可以为相邻节点之间的连线长度。根据位置关联信息包括的旋转信息以及长度信息,能够实现通过前一个发丝节点推导出后一个发丝节点。
本公开实施例中,末端发丝节点与目标节点的之间的位置变化量,可以采用末端发丝节点与目标节点之间的空间距离表示,即将末端发丝节点移动至目标节点位置时的位置变化量。
通过位置变化量能够确定出旋转变化量以及长度变化量,从而根据旋转变化量更新旋转信息,根据长度变化量更新长度信息,实现对位置关联信息的更新。
本公开的一种可选实施方式中,基于位置变化量确定各旋转信息的旋转变化量以及各长度信息的长度变化量,包括:
基于位置变化量,通过链式法则求导的方式,确定各旋转信息的旋转变化量以及各长度信息的长度变化量。
本公开实施例中,由于可以根据各相邻发丝节点之间的位置关联信息依次推导得到各发丝节点,即根据首端发丝节点的位置依次推导
其余各发丝节点的位置,直至推导出末端发丝节点的位置。末端发丝节点的位置可以通过坐标的形式表示,末端发丝节点的坐标可以被推导为一个复合函数,该复合函数中以除末端发丝节点之外所有的发丝节点的旋转信息以及长度信息作为变量。
位置变化量可以通过计算末端发丝节点与目标节点之间空间距离的方式获得,因此,位置变化量也可以被表示为以除末端发丝节点之外所有的发丝节点的旋转信息以及长度信息作为变量的一个复合函数。因此可以通过链式法则求导的方式对该复合函数求导,得到各旋转信息的旋转变化量以及各长度信息的长度变化量。
本公开的一种可选实施方式中,旋转信息通过四元数的形式表示。
相关技术中,一般可以采用欧拉角、旋转矩阵的形式来表示旋转信息。但是,如果采用欧拉角的形式表示旋转信息,可能会存在万向节死锁的问题,导致切线向量的旋转方向不唯一。如果采用过旋转矩阵的方式,虽然能够唯一性的确定旋转方向以及旋转角度,但是在后续在更新旋转信息的过程中,矩阵可能会发生畸变,使得矩阵不再正交,也就无法作为旋转矩阵。
本公开实施例中,采用四元数的形式表示旋转信息,以便对连线方向具体的旋转方向以及旋转角度进行唯一性的指定,并且能够支持对旋转信息的更新。
本公开的一种可选实施方式中,位置关联信息包括相邻发丝节点的节点切线方向的旋转信息,以及相邻发丝节点之间的连线的长度信息,基于相邻发丝节点之间的位置关联信息构建初始发丝模型,包括:
基于预指定的初始位置以及预指定的初始节点切线方向,并基于旋转信息以及长度信息,依次确定除首端发丝节点之外的各发丝节点的位置,以构建初始发丝模型,其中,初始位置为首端发丝节点的位置。
本公开实施例中,可以将相邻的发丝节点中由前一个发丝节点与后一个发丝节点之间连线的方向作为后一个发丝节点的节点切线方向,例如,将首端发丝节点与首端发丝节点的后一个发丝节点之间连线的方向作为首端发丝节点的后一个发丝节点的节点切线方向。
首端发丝节点的节点切线方向可以由初始节点切线方向确定,具体而言,可以由初始节点切线方向根据首端发丝节点的旋转信息进行旋转,得到首端发丝节点的节点切线方向。
发丝模型中的首端发丝节点的位置可以被预先指定,记做初始位置。
根据初始位置、首端发丝节点的节点切线方向,并根据首端发丝节点与其后一个发丝节点之间长度信息,以及该后一个节点的旋转信息能够推导出该后一个发丝节点的位置,而后可以依次推导出其余各发丝节点的位置。
作为一个示例,图6中示出了本公开实施例中提供的一种发丝模型的结构示意图。如图6中所示,将首端发丝节点记为第0号发丝节点,之后的发丝节点依次记为第1号发丝节点、第2号发丝节点,第3号发丝节点以及第4号发丝节点。P0为第0号发丝节点的坐标,Q0为第0号发丝节点处节点切向方向的旋转信息,L0为第0号发丝节点与第1号发丝节点的之间连线的长度信息,P1为第1号发丝节点的坐标,Q1为第1号发丝节点处节点切向方向的旋转信息,L1为第1号发丝节点与第2号发丝节点的之间连线的长度信息,P2为第2号发丝节点的坐标,Q2为第2号发丝节点处节点切向方向的旋转信息,L2为第2号发丝节点与第3号发丝节点的之间连线的长度信息,P3为第3号发丝节点的坐标,Q3为第3号发丝节点处节点切向方向的旋转信息,L3为第3号发丝节点与第4号发丝节点的之间连线的长度信息,P4为第4号发丝节点的坐标。
记初始的位置为Proot,则P0=Proot。
第i+1号发丝节点的位置可以根据如下的公式一计算:
Pi+1=ti×Li+Pi 公式一
其中,Pi为第i号发丝节点的坐标,ti为第i号发丝节点的节点切线向量,Li为第i号发丝节点与第i+1号发丝节点之间的连线长度,Pi+1第i+1号发丝节点的坐标。
第i号发丝节点的切线向量可以根据如下的公式二计算:
ti=Qi×ti-1×Qi -1 公式二
其中,ti为第i号发丝节点的切线向量,Qi为第i号发丝节点与第i+1号发丝节点的旋转信息的四元数。
记初始节点切线方向对应的向量为tdefault。作为一个示例,tdefault可以为(0,1,0)。
根据上述的公式一与公式二,可以推导出各发丝节点的推导公式。
第0号发丝节点的位置P0=Proot。
第1号发丝节点的位置可以根据如下的公式三计算:
P1=(Q0×tdefault×Q0 -1)×L0+Proot 公式三
第2号发丝节点的位置可以根据如下的公式四计算:
P2=(Q1×(Q0×tdefault×Q0 -1)×Q1 -1)×L1+(Q0×tdefault×Q0 -1)×L0+Proot公式四
依据上述的节点位置的推导方式,可以依次推导出各发丝节点的位置,直至推导出末端发丝节点的位置。
记目标节点的坐标为Pt,末端发丝节点的坐标为Pj,末端发丝节点与目标节点之间的位置变化量可以采用欧式距离,该位置变化量记为ΔP。
如将Pj坐标视为复合函数,根据上述发丝节点的推导过程可知,该复合函数中的变量为Q0、Q1、Q2……Qj-1,以及L0、L1、L2……Lj-1。相应的,如将ΔP也视为复合函数,其中的变量也为Q0、Q1、Q2……Qj-1,以及L0、L1、L2……Lj-1。
通过链式法则对ΔP求导,能够得到各旋转变化量:ΔQ0、ΔQ1、ΔQ2……ΔQj-1,以及得到各长度变化量:ΔL0ΔL1、ΔL2……ΔLj-1。
根据各旋转变化量对各旋转信息进行更新,得到更新后的各旋转信息,记为Q0’、Q1’、Q2’……Qj-1。其中,Q0’=Q0+ΔQ0;Q1’=Q1+ΔQ1;Q2’=Q2+ΔQ2;……Qj-1’=Qj-1+ΔQj-1。
根据各长度变化量对各长度信息进行更新,得到更新后的各长度信息,记为L0’、L1’、L2’……Lj-1。其中,L0’=L0+ΔL0;L1’=L1+ΔL1;L2’=L2+ΔL2;……Lj-1’=Lj-1+ΔLj-1。
图7中示出了通过旋转变化量以及长度变化量对位置关联信息进行的流程示意图。如图7中所示,通过旋转变化量以及长度变化量更新位置关联信息,相当于由末端发丝节点的位置变化量依次回传至其余的各发丝节点。
本公开的一种可选方式中,停止条件包括以下任一项:
第一发丝模型中位置关联信息的更新次数不小于预设次数;
第一发丝模型中末端发丝节点与目标节点的位置差异满足预设情况。
本公开实施例中,停止条件可以设置为第一发丝模型中位置关联信息的更新次数不小于预设次数,即迭代次数达到的预设次数,这时可以认为迭代次数较多,使得第一发丝模型的末端节点与目标节点的位置差异较小,可以停止迭代。
停止条件也可以设置为第一发丝模型中末端发丝节点与目标节点的位置差异满足预设情况,该预设情况可以为末端发丝节点与目标节点的空间距离小于预设值,这时可以认为第一发丝模型的末端节点与目标节点的位置差异较小,可以停止迭代。
本公开的一种可选实施方式中,上述方法还包括:
基于预设发丝模型与目标发丝模型进行插值处理,得到至少一个第一插值发丝模型。
本公开实施例中,可能会需要对目标发丝模型进行优化,预设发丝模型可以为预配置的用于对目标发丝进行优化的发丝模型,预设发丝模型对发丝具有较好的表达效果,因此通过基于预设发丝模型与目标发丝模型进行插值处理,得到的第一插值发丝模型也会具有较好的表达效果,能够实现对目标发丝模型的优化。
本公开实施例提供的发丝模型中,各发丝节点均可以通过位置以及位置关联信息进行表示,作为一个示例,各节点均可以通过坐标,旋转信息以及长度信息表示。
作为一个示例,两个发丝模型的其插值结果可以通过如下的公式五、公式六以及公式七计算:
L(c,i)=L(a,i)×k+L(b,i)×(1-k) 公式五
Q(c,i)=Q(a,i)×k+Q(b,i)×(1-k) 公式六
其中,k为插值系数,L(a,i)为发丝模型a中第i个发丝节点的长度信息,k的取值范围为[0,1]。L(b,i)为发丝模型b中第i个发丝节点的长度信息,L(c,i)为插值处理后得到的发丝模型c中第i个发丝节点的长度信息。Q(a,i)为发丝模型a中第i个发丝节点的旋转信息,Q(b,i)为发丝模型b中第i个发丝节点的旋转信息,Q(c,i)为插值处理后得到的发丝模型c中第i个发丝节点的旋转信息。P(a,i)为发丝模型a中第i个发丝节点的坐标,P(b,i)为发丝模型b中第i个发丝节点的坐标,P(c,i)为插值处理后得到的发丝模型c中第i个发丝节点的坐标。
作为一个示例,图8中示出了本公开实施例中提供插值结果的结构示意图。如图8中所示,发丝A与发丝B即为用于插值处理的两个发丝模型。0%、10%、20%、30%、40%、50%、60%、70%、80%、90%、100%分别为插值系数的不同取值。发丝A与发丝B之前的多条曲线即插值系数在不同取值下得到的插值结果。
本公开的一种可选实施方式中,上述方法还包括:
获取两个目标发丝模型;
基于两个目标发丝模型进行插值处理,得到至少一个第二插值发丝模型。
本公开实施例中,对发丝模型的插值处理还可以应用于构建新的发丝模型,如得到两条目标发丝模型之后,通过对两个目标发丝模型进行插值处理,得到至少一个第二插值发丝模型。
在实际使用中,可以构建出多个第二插值发丝模型,使得多个第二插值发丝模型对应的发丝曲线能够构成面,用以生成虚拟发型。
基于与图3中所示的方法相同的原理,图9示出了本公开实施例提供的一种发丝模型的确定装置的结构示意图,如图9所示,该发丝模型的确定装置90可以包括:
初始发丝模型获取模块910,用于获取初始发丝模型,初始发丝模型是根据相邻发丝节点之间的位置关联信息构建的;
目标发丝模型确定模块920,用于基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型。
本公开实施例提供的装置,通过获取根据相邻发丝节点之间的位置关联信息构建的初始发丝模型,而后基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型。基于本方案,能够根据目标节点的位置对初始发丝模型中的位置关联信息进行迭代更新,使得初始发丝模型中的发丝节点进行迭代偏移,从而得到目标发丝模型,基于该目标发丝模型提供的虚发型具有较好的效果,有助于保证三维虚拟形象的整体效果。
可选地,目标发丝模型确定模块具体用于:
基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行更新,并构建第一发丝模型;
确定第一发丝模型是否满足预设的停止条件;
若满足,则将第一发丝模型确定为目标发丝模型;
若不满足,则将第一发丝模型作为初始发丝模型,重复执行基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行更新,并构建第一发丝模型的步骤,直至第一发丝模型满足预设的停止条件。
可选地,位置关联信息包括相邻发丝节点的节点切线方向的旋转信息,以及相邻发丝节点之间的连线的长度信息,目标发丝模型确定模块在基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行更新时,具体用于:
确定初始发丝模型中末端发丝节点与预指定的目标节点之间的位置变化量;
基于位置变化量确定各旋转信息的旋转变化量以及各长度信息的长度变化量;
基于旋转变化量更新旋转信息,并基于长度变化量更新长度信息。
可选地,目标发丝模型确定模块在基于位置变化量确定各旋转信息的旋转变化量以及各长度信息的长度变化量时,具体用于:
基于位置变化量,通过链式法则求导的方式,确定各旋转信息的旋转变化量以及各长度信息的长度变化量。
可选地,旋转信息通过四元数的形式表示。
可选地,位置关联信息包括相邻发丝节点的节点切线方向的旋转信息,以及相邻发丝节点之间的连线的长度信息,初始发丝模型获取模块在基于相邻发丝节点之间的位置关联信息构建初始发丝模型时,具体用于:
基于预指定的初始位置以及预指定的初始节点切线方向,并基于旋转信息以及长度信息,依次确定除首端发丝节点之外的各发丝节点的位置,以构建初始发丝模型,其中,初始位置为首端发丝节点的位置。
可选地,停止条件包括以下任一项:
第一发丝模型中位置关联信息的更新次数不小于预设次数;
第一发丝模型中末端发丝节点与目标节点的位置差异满足预设情况。
可选地,上述装置还包括:
第一插值处理模块,用于基于预设发丝模型与目标发丝模型进行插值处理,得到至少一个第一插值发丝模型。
可选地,上述装置还包括第二插值处理模块,第二插值处理模块用于:
获取两个目标发丝模型;
基于两个目标发丝模型进行插值处理,得到至少一个第二插值发丝模型。
可以理解的是,本公开实施例中的发丝模型的确定装置的上述各模块具有实现图3中所示的实施例中的发丝模型的确定方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述发丝模型的确定装置的各模块的功能描述具体可以参见图3中所示实施例中的发丝模型的确定方法的对应描述,在此不再赘述。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如本公开实施例提供的发丝模型的确定方法。
该电子设备与现有技术相比,通过获取根据相邻发丝节点之间的位置关联信息构建的初始发丝模型,而后基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型。基于本方案,能够根据目标节点的位置对初始发丝模型中的位置关联信息进行迭代更新,使得初始发丝模型中的发丝节点进行迭代偏移,从而得到目标发丝模型,基于该目标发丝模型提供的虚发型具有较好的效果,有助于保证三维虚拟形象的整体效果。
该可读存储介质为存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行如本公开实施例提供的发丝模型的确定方法。
该可读存储介质与现有技术相比,通过获取根据相邻发丝节点之间的位置关联信息构建的初始发丝模型,而后基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型。基于本方案,能够根据目标节点的位置对初始发丝模型中的位置关联信息进行迭代更新,使得初始发丝模型中的发丝节点进行迭代偏移,从而得到目标发丝模型,基于该目标发丝模型提供的虚发型具有较好的效果,有助于保证三维虚拟形象的整体效果。
该计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如本公开实施例提供的发丝模型的确定方法。
该计算机程序产品与现有技术相比,通过获取根据相邻发丝节点之间的位置关联信息构建的初始发丝模型,而后基于初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对位置关联信息进行至少一次更新,得到目标发丝模型。基于本方案,能够根据目标节点的位置对初始发丝模型中的位置关联信息进行迭代更新,使得初始发丝模型中的发丝节点进行迭代偏移,从而得到目标发丝模型,基于该目标发丝模型提供的虚发型具有较好的效果,有助于保证三维虚拟形象的整体效果。
图10示出了可以用来实施本公开的实施例的示例电子设备2000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,设备2000包括计算单元2010,其可以根据存储在只读存储器(ROM)2020中的计算机程序或者从存储单元2080加载到随机访问存储器(RAM)2030中的计算机程序,来执行各种适当的动作和处理。在RAM 2030中,还可存储设备2000操作所需的各种程序和数据。计算单元2010、ROM 2020以及RAM 2030通过总线2040彼此相连。输入/输出(I/O)接口2050也连接至总线2040。
设备2000中的多个部件连接至I/O接口2050,包括:输入单元2060,例如键盘、鼠标等;输出单元2070,例如各种类型的显示器、扬声器等;存储单元2080,例如磁盘、光盘等;以及通信单元2090,例如网卡、调制解调器、无线通信收发机等。通信单元2090允许设备2000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元2010可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元2010的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元2010执行本公开实施例中所提供的发丝模型的确定方法。例如,在一些实施例中,执行本公开实施例中所提供的发丝模型的确定方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元2080。在一些实施例中,计算机程序的部分或者全部可以经由ROM 2020和/或通信单元2090而被载入和/或安装到设备2000上。当计算机程序加载到RAM 2030并由计算单元2010执行时,可以执行本公开实施例中所提供的发丝模型的确定方法的一个或多个步骤。备选地,在其他实施例中,计算单元2010可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开实施例中所提供的发丝模型的确定方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (21)
1.一种发丝模型的确定方法,包括:
获取初始发丝模型,所述初始发丝模型是根据相邻发丝节点之间的位置关联信息构建的;
基于所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对所述位置关联信息进行至少一次更新,得到目标发丝模型。
2.根据权利要求1所述的方法,其中,所述基于所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对所述位置关联信息进行至少一次更新,得到目标发丝模型,包括:
基于所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对所述位置关联信息进行更新,并构建第一发丝模型;
确定所述第一发丝模型是否满足预设的停止条件;
若满足,则将所述第一发丝模型确定为目标发丝模型;
若不满足,则将所述第一发丝模型作为所述初始发丝模型,重复执行所述基于所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对所述位置关联信息进行更新,并构建第一发丝模型的步骤,直至所述第一发丝模型满足预设的停止条件。
3.根据权利要求2所述的方法,其中,所述位置关联信息包括相邻发丝节点的节点切线方向的旋转信息,以及相邻发丝节点之间的连线的长度信息,所述基于所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对所述位置关联信息进行更新,包括:
确定所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置变化量;
基于所述位置变化量确定各所述旋转信息的旋转变化量以及各所述长度信息的长度变化量;
基于所述旋转变化量更新所述旋转信息,并基于所述长度变化量更新所述长度信息。
4.根据权利要求3所述的方法,其中,所述基于所述位置变化量确定各所述旋转信息的旋转变化量以及各所述长度信息的长度变化量,包括:
基于所述位置变化量,通过链式法则求导的方式,确定各所述旋转信息的旋转变化量以及各所述长度信息的长度变化量。
5.根据权利要求3或4所述的方法,其中,所述旋转信息通过四元数的形式表示。
6.根据权利要求1-5所述的方法,其中,所述位置关联信息包括相邻发丝节点的节点切线方向的旋转信息,以及相邻发丝节点之间的连线的长度信息,基于相邻发丝节点之间的位置关联信息构建所述初始发丝模型,包括:
基于预指定的初始位置以及预指定的初始节点切线方向,并基于所述旋转信息以及所述长度信息,依次确定除首端发丝节点之外的各发丝节点的位置,以构建所述初始发丝模型,其中,所述初始位置为所述首端发丝节点的位置。
7.根据权利要求2-5中任一项所述的方法,其中,所述停止条件包括以下任一项:
所述第一发丝模型中位置关联信息的更新次数不小于预设次数;
所述第一发丝模型中末端发丝节点与所述目标节点的位置差异满足预设情况。
8.根据权利要求1-7中任一项所述的方法,还包括:
基于预设发丝模型与所述目标发丝模型进行插值处理,得到至少一个第一插值发丝模型。
9.根据权利要求1-7中任一项所述的方法,还包括:
获取两个所述目标发丝模型;
基于两个所述目标发丝模型进行插值处理,得到至少一个第二插值发丝模型。
10.一种发丝模型的确定装置,包括:
初始发丝模型获取模块,用于获取初始发丝模型,所述初始发丝模型是根据相邻发丝节点之间的位置关联信息构建的;
目标发丝模型确定模块,用于基于所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对所述位置关联信息进行至少一次更新,得到目标发丝模型。
11.根据权利要求10所述的装置,其中,所述目标发丝模型确定模块具体用于:
基于所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对所述位置关联信息进行更新,并构建第一发丝模型;
确定所述第一发丝模型是否满足预设的停止条件;
若满足,则将所述第一发丝模型确定为目标发丝模型;
若不满足,则将所述第一发丝模型作为所述初始发丝模型,重复执行所述基于所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对所述位置关联信息进行更新,并构建第一发丝模型的步骤,直至所述第一发丝模型满足预设的停止条件。
12.根据权利要求11所述的装置,其中,所述位置关联信息包括相邻发丝节点的节点切线方向的旋转信息,以及相邻发丝节点之间的连线的长度信息,所述目标发丝模型确定模块在基于所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置差异,对所述位置关联信息进行更新时,具体用于:
确定所述初始发丝模型中末端发丝节点与预指定的目标节点之间的位置变化量;
基于所述位置变化量确定各所述旋转信息的旋转变化量以及各所述长度信息的长度变化量;
基于所述旋转变化量更新所述旋转信息,并基于所述长度变化量更新所述长度信息。
13.根据权利要求12所述的装置,其中,所述目标发丝模型确定模块在基于所述位置变化量确定各所述旋转信息的旋转变化量以及各所述长度信息的长度变化量时,具体用于:
基于所述位置变化量,通过链式法则求导的方式,确定各所述旋转信息的旋转变化量以及各所述长度信息的长度变化量。
14.根据权利要求12或13所述的装置,其中,所述旋转信息通过四元数的形式表示。
15.根据权利要求10-14中任一项所述的装置,其中,所述位置关联信息包括相邻发丝节点的节点切线方向的旋转信息,以及相邻发丝节点之间的连线的长度信息,初始发丝模型获取模块在基于相邻发丝节点之间的位置关联信息构建所述初始发丝模型时,具体用于:
基于预指定的初始位置以及预指定的初始节点切线方向,并基于所述旋转信息以及所述长度信息,依次确定除首端发丝节点之外的各发丝节点的位置,以构建所述初始发丝模型,其中,所述初始位置为所述首端发丝节点的位置。
16.根据权利要求11-15中任一项所述的装置,其中,所述停止条件包括以下任一项:
所述第一发丝模型中位置关联信息的更新次数不小于预设次数;
所述第一发丝模型中末端发丝节点与所述目标节点的位置差异满足预设情况。
17.根据权利要求10-16中任一项所述的装置,还包括:
第一插值处理模块,用于基于预设发丝模型与所述目标发丝模型进行插值处理,得到至少一个第一插值发丝模型。
18.根据权利要求10-16中任一项所述的装置,还包括第二插值处理模块,所述第二插值处理模块用于:
获取两个所述目标发丝模型;
基于两个所述目标发丝模型进行插值处理,得到至少一个第二插值发丝模型。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111136666.6A CN113850904A (zh) | 2021-09-27 | 2021-09-27 | 发丝模型的确定方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111136666.6A CN113850904A (zh) | 2021-09-27 | 2021-09-27 | 发丝模型的确定方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113850904A true CN113850904A (zh) | 2021-12-28 |
Family
ID=78980107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111136666.6A Pending CN113850904A (zh) | 2021-09-27 | 2021-09-27 | 发丝模型的确定方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113850904A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114758391A (zh) * | 2022-04-08 | 2022-07-15 | 北京百度网讯科技有限公司 | 发型图像确定方法、装置、电子设备、存储介质及产品 |
CN115018992A (zh) * | 2022-06-29 | 2022-09-06 | 北京百度网讯科技有限公司 | 发型模型的生成方法、装置、电子设备及存储介质 |
CN116894917A (zh) * | 2023-06-20 | 2023-10-17 | 北京百度网讯科技有限公司 | 虚拟形象的三维发丝模型的生成方法、装置、设备和介质 |
-
2021
- 2021-09-27 CN CN202111136666.6A patent/CN113850904A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114758391A (zh) * | 2022-04-08 | 2022-07-15 | 北京百度网讯科技有限公司 | 发型图像确定方法、装置、电子设备、存储介质及产品 |
CN114758391B (zh) * | 2022-04-08 | 2023-09-12 | 北京百度网讯科技有限公司 | 发型图像确定方法、装置、电子设备、存储介质及产品 |
CN115018992A (zh) * | 2022-06-29 | 2022-09-06 | 北京百度网讯科技有限公司 | 发型模型的生成方法、装置、电子设备及存储介质 |
CN116894917A (zh) * | 2023-06-20 | 2023-10-17 | 北京百度网讯科技有限公司 | 虚拟形象的三维发丝模型的生成方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113850904A (zh) | 发丝模型的确定方法、装置、电子设备及可读存储介质 | |
CN112819971B (zh) | 虚拟形象的生成方法、装置、设备和介质 | |
US20200410733A1 (en) | Method for skinning character model, device for skinning character model, storage medium and electronic device | |
CN112862933B (zh) | 用于优化模型的方法、装置、设备以及存储介质 | |
CN112562069B (zh) | 三维模型的构造方法、装置、设备和存储介质 | |
EP2817783A1 (en) | Method and apparatus for mesh simplification | |
CN111868738B (zh) | 跨设备监控计算机视觉系统 | |
CN112581573B (zh) | 虚拟形象驱动方法、装置、设备、介质和程序产品 | |
CN115147523A (zh) | 虚拟形象驱动方法及装置、设备、介质和程序产品 | |
CN112927328A (zh) | 表情迁移方法、装置、电子设备及存储介质 | |
CN115018992A (zh) | 发型模型的生成方法、装置、电子设备及存储介质 | |
CN114677572B (zh) | 对象描述参数的生成方法、深度学习模型的训练方法 | |
CN113965313B (zh) | 基于同态加密的模型训练方法、装置、设备以及存储介质 | |
CN114202597B (zh) | 图像处理方法及装置、设备、介质和产品 | |
CN114998433A (zh) | 位姿计算方法、装置、存储介质以及电子设备 | |
CN115906987A (zh) | 深度学习模型的训练方法、虚拟形象驱动方法和装置 | |
CN114078184B (zh) | 数据处理方法、装置、电子设备和介质 | |
CN113313261B (zh) | 函数处理方法、装置及电子设备 | |
JPH11306238A (ja) | 確率積分システム | |
WO2022236802A1 (zh) | 一种物体模型的重建方法、装置、终端设备和存储介质 | |
CN108921950B (zh) | 三维裂缝模拟的方法以及相关装置 | |
CN116206035B (zh) | 人脸重建方法、装置、电子设备以及存储介质 | |
CN113610992B (zh) | 骨骼驱动系数确定方法、装置、电子设备及可读存储介质 | |
CN114820908B (zh) | 虚拟形象生成方法、装置、电子设备和存储介质 | |
CN113608615B (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 |