CN118521699B - 一种虚拟人三维头发丝发型的生成方法及系统 - Google Patents
一种虚拟人三维头发丝发型的生成方法及系统 Download PDFInfo
- Publication number
- CN118521699B CN118521699B CN202410992818.XA CN202410992818A CN118521699B CN 118521699 B CN118521699 B CN 118521699B CN 202410992818 A CN202410992818 A CN 202410992818A CN 118521699 B CN118521699 B CN 118521699B
- Authority
- CN
- China
- Prior art keywords
- image
- hair
- target
- dimensional
- hairline
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 210000004209 hair Anatomy 0.000 claims abstract description 222
- 210000003128 head Anatomy 0.000 claims abstract description 57
- 230000011218 segmentation Effects 0.000 claims abstract description 52
- 210000004761 scalp Anatomy 0.000 claims abstract description 39
- 238000005070 sampling Methods 0.000 claims abstract description 27
- 230000000007 visual effect Effects 0.000 claims abstract description 27
- 238000009877 rendering Methods 0.000 claims description 32
- 238000013528 artificial neural network Methods 0.000 claims description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 21
- 230000003779 hair growth Effects 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 13
- 238000009826 distribution Methods 0.000 claims description 12
- 230000000977 initiatory effect Effects 0.000 claims description 12
- 239000011159 matrix material Substances 0.000 claims description 12
- 239000013598 vector Substances 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 claims description 8
- 210000005036 nerve Anatomy 0.000 claims description 8
- 230000001537 neural effect Effects 0.000 claims description 8
- 238000012549 training Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 239000011521 glass Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000008485 antagonism Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 101001022170 Homo sapiens FYN-binding protein 2 Proteins 0.000 description 2
- 101000990990 Homo sapiens Midkine Proteins 0.000 description 2
- 102100030335 Midkine Human genes 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000003042 antagnostic effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0475—Generative networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/094—Adversarial learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- 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/005—Tree description, e.g. octree, quadtree
-
- 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
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/44—Morphing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供了一种虚拟人三维头发丝发型的生成方法及系统,所述方法包括:获取待处理图像,所述待处理图像中包括单视角的虚拟人头像;确定所述虚拟人头像的拍摄相机内外参数,并根据所述待处理图像和所述拍摄相机内外参数,生成所述虚拟人头像的多视角图像;对所述多视角图像进行头发分割处理,得到多视角头发分割图像;根据所述多视角头发分割图像,生成所述虚拟人头像的头发的目标三维方向占用场;将所述目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场;在所述目标三维方向占用场内随机采样多个发丝初始点,根据所述多个发丝初始点获取切线方向迭代预测发丝其余所有点,生成所述虚拟人头像的发丝发型。
Description
技术领域
本公开涉及图像处理技术领域,尤其涉及一种虚拟人三维头发丝发型的生成方法及系统。
背景技术
随着计算机视觉和图形学技术快速发展,虚拟人生成相关算法技术逐步深入应用到各个领域,如影视、视频会议、智能客服、虚拟主播等。输入单视角人脸照片生成头发丝版本的三维发型,作为其中的一项应用,技术上仍然面临许多严峻的挑战。
目前,发丝版本的三维发型模型生成通常有两种方法。一种方法是通过3D建模软件人工制作三维发型模型,但制作一个与输入的单视角照片非常相似且高质量的发型往往需要耗费大量的人力成本。另一种方法则是利用深度学习技术从单视角照片中提取头发信息,其中在使用滤波器对照片中头发提取头发丝生长方向的过程中,存在噪声较多、精度不高的问题;且仅通过单视角照片生成发丝发型,由于存在头发信息不足的问题,导致看不到的部分(特别是背面)会有明显瑕疵。
发明内容
本公开提供了一种虚拟人三维头发丝发型的生成方法及系统,以至少解决现有技术中存在的以上技术问题。
根据本公开的第一方面,提供了一种虚拟人三维头发丝发型的生成方法,其特征在于,所述方法包括:
获取待处理图像,所述待处理图像中包括单视角的虚拟人头像;
确定所述虚拟人头像的拍摄相机内外参数,并根据所述待处理图像和所述拍摄相机内外参数,生成所述虚拟人头像的多视角图像;
对所述多视角图像进行头发分割处理,得到多视角头发分割图像;
根据所述多视角头发分割图像,生成所述虚拟人头像的头发的目标三维方向占用场;
将所述目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场;
在所述目标三维方向占用场内随机采样多个发丝初始点,根据所述多个发丝初始点获取切线方向迭代预测发丝其余所有点,生成所述虚拟人头像的发丝发型。
在一种可实施方式中,所述确定所述虚拟人头像的拍摄相机内外参数,并根据所述待处理图像和所述拍摄相机内外参数,生成所述虚拟人头像的多视角图像,包括:
采用相机参数拟合算法,从所述待处理图像中提取所述虚拟人头像的拍摄相机内外参数;
对所述待处理图像进行高斯分布随机采样,得到第一潜在编码;
将所述拍摄相机内外参数和第一潜在编码输入生成对抗网络模型,生成目标渲染图像;
计算所述目标渲染图像和待处理图像对应的真实图像之间的第一损失值,并根据所述第一损失值对所述第一潜在编码进行优化,得到第二潜在编码;
将所述第二潜在编码和目标视角的拍摄相机内外参数输入所述生成对抗网络模型中,神经渲染生成目标视角图像;获取所有目标视角对应的目标视角图像,得到所述虚拟人头像的多视角图像。
在一种可实施方式中,获取所述生成对抗网络模型,包括:
获取样本数据集,所述样本数据集中包括多视角人脸的样本图像;
构建所述生成对抗网络模型,所述生成对抗网络模型包括生成器、判别器、神经渲染器和映射网络;
对所述样本图像进行高斯分布随机采样,得到第一样本潜在编码;
将所述样本图像的样本拍摄相机内外参数和第一样本潜在编码输入所述映射网络中,得到第二样本潜在编码;
将所述第二样本潜在编码输入所述生成器得到生成图像;
将所述生成图像和渲染相机参数输入所述神经渲染器中,得到样本渲染图像;
利用判别器判断生成图像与样本图像对应的真实图像之间的第二损失值,并计算所述生成器的第三损失值;
根据所述第二损失值和第三损失值,对所述生成器和判别器的参数进行迭代优化,直至模型收敛,得到生成对抗网络模型。
在一种可实施方式中,获取所述样本图像的样本拍摄相机内外参数,包括:
对样本数据集中的每张样本图像执行人脸检测,得到对应的人脸区域;
将所有检测到人脸的样本图像中的人脸区域缩放到目标大小,并将所述样本图像的人脸区域进行二阶段对齐处理;
对人脸区域对齐后,采用相机参数拟合算法对所述样本图像中的人脸区域进行姿态估计,得到样本拍摄相机内外参数。
在一种可实施方式中,对所述多视角图像进行头发分割处理,得到多视角头发分割图像,包括:
利用图像分割网络,对所述多视角图像中虚拟人头像的头发区域进行分割,得到所述多视角头发分割图像。
在一种可实施方式中,所述根据所述多视角头发分割图像,生成所述虚拟人头像的头发的目标三维方向占用场,包括:
采用光线追踪技术渲染头发模型获得多视角头发分割数据;
将所述头发模型转换为初始三维方向占用场,利用所述多视角头发分割数据及初始三维方向占用场对三维方向占用场神经网络进行训练;
将所述多视角头发分割图像输入完成训练的三维方向占用场神经网络中,得到所述目标三维方向占用场;
所述目标三维方向占用场由所述头发模型的每个点通过网格分割成的体素构成,每个被发丝占用的体素中包含所述发丝上每个点的切线方向向量信息。
在一种可实施方式中,所述将所述目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场,包括:
将所述目标三维方向占用场中所有被发丝占用的体素转换为初始头发面片网格;
通过变换矩阵,将初始头发面片网格与头发模型中的头皮网格进行初始对齐;
在所述头皮网格的顶点上构建KD树,并利用所述KD树,在初始头发面片网格上为所述头皮网格的每个顶点匹配最近的目标顶点;
采用面片变形算法,将所述目标顶点作为可变形顶点,向所述头皮网格的顶点进行变形;
固定初始头发面片网格中除目标顶点以外的所有顶点,得到目标头发面片网格;
根据目标头发面片网格,得到变形后的目标三维方向占用场。
在一种可实施方式中,所述在所述目标三维方向占用场内随机采样多个发丝初始点,根据所述多个发丝初始点获取切线方向迭代预测发丝其余所有点,生成所述虚拟人头像的发丝发型,包括:
在所述目标三维方向占用场的被发丝占用的体素中随机采样多个发丝初始点;
对所述发丝进行B样条采样,使得每个发丝上相邻点之间的间距在预设长度范围内;
将所述目标三维方向占用场划分为多个体素块,每个体素块包含多个体素,且相邻的体素块之间存在重叠的体素区域;
根据覆盖所述发丝初始点的多个体素块,利用发丝生长神经网络预测发丝生长路径,生成所述虚拟人头像的发丝发型。
在一种可实施方式中,所述根据覆盖所述发丝初始点的多个体素块,利用发丝生长神经网络预测发丝生长路径,生成所述虚拟人头像的发丝发型,包括:
确定覆盖所述发丝初始点的多个体素块,并利用发丝生长神经网络提取所述体素块的方向场信息;
根据所述体素块和所述方向场信息预测所述发丝初始点的下一个目标点;
将所述目标点作为新的发丝初始点,利用发丝生长神经网络继续预测下一个目标点,直至生成满足预设长度的发丝。
根据本公开的第二方面,提供了一种虚拟人三维头发丝发型的生成系统,其特征在于,所述系统包括:
获取模块,用于获取待处理图像,所述待处理图像中包括单视角的虚拟人头像;
图像生成模块,用于确定所述虚拟人头像的拍摄相机内外参数,并根据所述待处理图像和所述拍摄相机内外参数,生成所述虚拟人头像的多视角图像;
图像生成模块,用于对所述多视角图像进行头发分割处理,得到多视角头发分割图像;
三维方向占用场生成模块,用于根据所述多视角头发分割图像,生成所述虚拟人头像的头发的目标三维方向占用场;
三维方向占用场生成模块,还用于将所述目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场;
发丝生长模块,用于在所述目标三维方向占用场内随机采样多个发丝初始点,根据所述多个发丝初始点获取切线方向迭代预测发丝其余所有点,生成所述虚拟人头像的发丝发型。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法。
本公开的虚拟人三维头发丝发型的生成方法,获取单视角的虚拟人头像的待处理图像,确定虚拟人头像的拍摄相机内外参数,并根据待处理图像和拍摄相机内外参数,得到虚拟人头像的多视角图像以及进一步得到多视角头发分割图像;根据多视角头发分割图像,生成虚拟人头像的目标三维方向占用场;将目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场;在目标三维方向占用场内随机采样多个发丝初始点,根据多个发丝初始点获取切线方向迭代预测发丝其余所有点,生成虚拟人头像的发丝发型。本公开的方案相比与传统的人工3D建模方法,本公开的方法实现了从单视角照片到三维发丝发型的全自动化生成,大大节省了人力成本和时间。并且生成单视角虚拟人头像的多视角图像,以及三维方向占用场的构建,充分利用输入图像中的头发信息,减少因单视角照片信息不足导致的瑕疵。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了本公开实施例虚拟人三维头发丝发型的生成方法的实现流程示意图;
图2示出了本公开实施例虚拟人三维头发丝发型的生成系统的示意图;
图3示出了本公开实施例一种电子设备的组成结构示意图。
具体实施方式
为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提供了一种虚拟人三维头发丝发型的生成方法,如图1所示,该方法包括:
步骤101:获取待处理图像,待处理图像中包括单视角的虚拟人头像。
在本示例中,待处理图像为一张单视角的较为正面的虚拟人头像图片作为输入。待处理图像中应包含足够的信息以识别并重建出三维头发模型。
步骤102:确定虚拟人头像的拍摄相机内外参数,并根据待处理图像和拍摄相机内外参数,生成虚拟人头像的多视角图像。
在本示例中,分析待处理图像中的虚拟人头像,并估计其头部姿态,确定待处理图像中虚拟人头像的拍摄相机内外参数。拍摄相机内外参数则是指拍摄虚拟人头像的相机在三维空间中的位置和方向信息。
根据待处理图像和虚拟人头像的拍摄相机内外参数输入,利用深度学习技术,通过模拟真实世界中的光照、阴影和视角变化,生成虚拟人头像的多视角图像。其中,多视角图像为该虚拟人头像的正面、侧面、背面等多个视角维度的图像。
步骤103:对多视角图像进行头发分割处理,得到多视角头发分割图像。
在本示例中,根据虚拟人头像的头发的纹理和颜色特征,对多视角图像中虚拟人头像进行头发分割处理,得到每个视角下的头发分割图像,即多视角头发分割图像。
步骤104:根据多视角头发分割图像,生成虚拟人头像的头发的目标三维方向占用场。
在本示例中,三维方向占用场(3D Orientation Occupancy Field,3D OOF)是一个三维空间中的体素场,其记录了在该三维空间中每个点的头发占用情况和发丝的生长方向。
具体的,通过将多视角头发分割图像进行融合并映射在三维空间中,以形成一个综合的三维图像。在融合后的三维空间中,划分出体素网格(或称为体素场),用于表示虚拟人的头发区域。每个体素代表三维空间中的一个小立方体,并存储头发占用情况的信息和发丝的生长方向。
步骤105:将目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场。
在本示例中,由于可能存在目标三维方向占用场形成的头发面片与头发模型中的头皮网格不匹配的情况,因此,在生成目标三维方向占用场之后,对目标三维方向占用场进行变形处理,以使其能和头皮网格匹配,并进一步得到变形后的目标三维方向占用场。
步骤106:在目标三维方向占用场内随机采样多个发丝初始点,根据多个发丝初始点获取切线方向迭代预测发丝其余所有点,生成虚拟人头像的发丝发型。
在本示例中,对于在目标三维方向占用场内被头发占据的体素,需要估计其虚拟人头像的头发丝的生长方向,即发丝生长路径。在此之前,需要从目标三维方向占用场中随机采样多个发丝初始点,发丝初始点的数量大于三维方向占用场中被占据体素的数量。根据多个发丝初始点获取切线方向迭代预测发丝其余所有点,得到发丝初始点为起点的发丝的生长路径。
获取发丝生长路径的数据信息,包括每个发丝生长路径的发丝初始点、发丝终点以及发丝生长路径上的关键点和方向控制点(切线方向)。根据解析得到的数据信息,在三维空间中的模型头像上绘制细长的几何体(如圆柱体或曲线),并使其沿着发丝生长路径进行排列和弯曲,生成虚拟人头像的发丝发型。
此外,为了增加发丝的真实感,还会为这些几何体增加材质和着色效果,以模拟真实头发的光泽度、颜色渐变、反射和折射等特性。
本公开提供了一种虚拟人三维头发丝发型的生成方法,获取单视角的虚拟人头像的待处理图像,确定虚拟人头像的拍摄相机内外参数,并根据待处理图像和拍摄相机内外参数,得到虚拟人头像的多视角图像以及进一步得到多视角头发分割图像;根据多视角头发分割图像,生成虚拟人头像的目标三维方向占用场;将目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场;在目标三维方向占用场内随机采样多个发丝初始点,根据多个发丝初始点获取切线方向迭代预测发丝其余所有点,生成虚拟人头像的发丝发型。本公开的方案相比与传统的人工3D建模方法,本公开的方法实现了从单视角照片到三维发丝发型的全自动化生成,大大节省了人力成本和时间。并且生成单视角虚拟人头像的多视角图像,以及三维方向占用场的构建,充分利用输入图像中的头发信息,减少因单视角照片信息不足导致的瑕疵。
在一个示例中,确定虚拟人头像的拍摄相机内外参数,并根据待处理图像和拍摄相机内外参数,生成虚拟人头像的多视角图像的实现过程,包括:
步骤201:采用相机参数拟合算法,从待处理图像中提取虚拟人头像的拍摄相机内外参数。
在本示例中,采用相机参数拟合算法,从待处理图像中提取拍摄相机内外参数为相机参数矩阵,包括位置、旋转、放缩组成的矩阵参数,以及可以将相机空间的点投影到图像空间的相机内参矩阵。在一个具体示例中,本示例中的拍摄相机内外参数是大小为1×25相机参数矩阵,其中前16个4×4矩阵参数,后9个为3×3的相机内参矩阵。
步骤202:对待处理图像进行高斯分布随机采样,得到第一潜在编码。
在本示例中,利用变分自编码器将待处理图像映射在潜在空间,从该潜在空间的高斯分布中进行随机采用,得到待处理图像对应的第一潜在编码。
步骤203:将拍摄相机内外参数和第一潜在编码输入生成对抗网络模型,生成目标渲染图像。
在本示例中,生成对抗网络模型包括生成器、判别器、神经渲染器和映射网络。在输入拍摄相机内外参数和第一潜在编码之前,对生成器、判别器、神经渲染器和映射网络进行的权重参数进行固定,以防止在图像生成过程中发生意外的更新,从而确保生成的图像质量的一致性。将拍摄相机内外参数和第一潜在编码输入生成对抗网络模型,按照网络模型的结构和权重进行前向传播(即在每一层,都会根据前一层的输出和当前层的权重计算出当前层的输出,直到到达输出层),在生成器的输出层,会得到待处理图像的目标渲染图像。
步骤204:计算目标渲染图像和待处理图像对应的真实图像之间的第一损失值,并根据第一损失值对第一潜在编码进行优化,得到第二潜在编码。
在本示例中,分别将目标渲染图像和待处理图像的真实图像输入使用预训练好的VGG16网络。VGG16网络是一个在大型图像数据集(如ImageNet)上训练的卷积神经网络,用于提取目标渲染图像和真实图像中的人脸感知特征。
计算目标渲染图像和真实图像中的人脸感知特征之间的欧几里得距离(L2Loss),得到第一损失值。L2 Loss衡量了两个人脸感知特征之间的差异程度,较低的L2Loss意味着两个特征向量更相似,从而生成的目标渲染图像在感知上与真实照片更接近。
将L2 Loss作为损失函数,通过反向传播算法来优化生成器接收的第一潜在编码。通过梯度下降等优化算法来更新第一潜在编码的值,以最小化L2 Loss。经过多次迭代优化后,将第一损失值最小值对应的第一潜在编码作为第二潜在编码。
步骤205:将第二潜在编码和目标视角的拍摄相机内外参数输入生成对抗网络模型中,神经渲染生成目标视角图像;获取所有目标视角对应的目标视角图像,得到虚拟人头像的多视角图像。
在本示例中,将优化后的第二潜在编码和目标视角的拍摄相机内外参数输入到生成对抗网络的生成器中。通过前向传播,生成器输出目标视角下的渲染图像。对每一个目标视角的拍摄相机内外参数,重复步骤205,生成多个目标视角下对应的目标视角图像,这些目标视角图像共同构成了虚拟人头像的多视角图像。
在一个示例中,获取生成对抗网络模型,包括:
步骤301:获取样本数据集,样本数据集中包括多视角人脸的样本图像。
在本示例中,收集包含多个视角人脸图像的样本数据集,这些样本图像应涵盖不同角度、光照条件、表情和身份的人脸,以确保训练出的模型具有泛化能力。
步骤302:构建生成对抗网络模型,生成对抗网络模型包括生成器、判别器、神经渲染器和映射网络。
在本示例中,构建的生成对抗网络模型包括四个主要组件:生成器、判别器、神经渲染器和映射网络。将潜在编码和拍摄相机内外参数输入生成对抗网络模型中,经过四个组件的处理后得到渲染后的图像。
步骤303:对样本图像进行高斯分布随机采样,得到第一样本潜在编码。
在本示例中,与上述步骤202中获取第一潜在编码的方法相同,对样本图像进行高斯分布随机采样,得到第一样本潜在编码。
步骤304:将样本图像的样本拍摄相机内外参数和第一样本潜在编码输入映射网络中,得到第二样本潜在编码。
在本示例中,将每张样本图像的样本拍摄相机内外参数(如位置、旋转、缩放等)和第一样本潜在编码输入到映射网络中。映射网络的作用是将这些输入映射到一个更适合生成器使用的中间编码(第二样本潜在编码),以便生成器能够生成与输入拍摄相机内外参数相对应的生成图像。
步骤305:将第二样本潜在编码输入生成器得到生成图像。
在本示例中,将映射网络输出的第二样本潜在编码输入到生成器中,以使得生成器利用第二样本潜在编码生成对应的3D网格特征,即生成图像。3D网格特征描述了样本图像中人脸的几何形状和外观信息。
步骤306:将生成图像和渲染相机参数输入神经渲染器中,得到样本渲染图像。
在本示例中,将生成图像和渲染相机参数输入到神经渲染器中。其中,渲染相机参数为预设的拍摄相机内外参数,相较于从图像中获取的拍摄相机内外参数,渲染相机内外参数能更好地进行渲染,得到渲染效果更好的样本渲染图像。神经渲染器利用生成图像和渲染相机内外参数,通过多层感知机(Multilayer Perceptron,MLP)等神经网络结构,合成出具有真实感的样本渲染图像。
步骤307:利用判别器判断生成图像与样本图像对应的真实图像之间的第二损失值,并计算生成器的第三损失值。
在本示例中,基于样本图像对应的真实图像,判别器对生成图像进行判别,并输出一个表示图像真实性的概率值。然后,根据这个概率值和真实图像标签,计算判别器的损失值(第二损失值)。同时,计算生成器的损失值(第三损失值),该损失值通常包括两部分:一是判别器对生成图像的判断结果,二是样本拍摄相机内外参数偏差。
步骤308:根据第二损失值和第三损失值,对生成器和判别器的参数进行迭代优化,直至模型收敛,得到生成对抗网络模型。
在本示例中,根据判别器和生成器的损失值,使用反向传播算法更新判别器和生成器的参数。通过不断迭代,直到模型达到收敛状态,即损失值不再显著降低,此时得到生成对抗网络模型。
在一个示例中,获取样本图像的样本拍摄相机内外参数的实现过程,包括:
步骤401:对样本数据集中的每张样本图像执行人脸检测,得到对应的人脸区域。
在本示例中,对样本数据集中的每张样本图像执行人脸检测,以从样本数据集中的每一张样本图像中识别出人脸区域。具体的,通过使用人脸检测算法来实现人脸检测,如InsightFace等。InsightFace是一种高效且准确的人脸识别算法,它能够快速定位图像中的人脸位置,并给出人脸的包围盒(bounding box),即人脸在图像中的大致位置和大小。
总部402:将所有检测到人脸的样本图像中的人脸区域缩放到目标大小,并将样本图像的人脸区域进行二阶段对齐处理。
在本示例中,在从样本图像中检测到人脸并获取其包围盒后,需要将人脸区域缩放到一个统一的目标大小。这是为了确保后续处理(如姿态估计)的输入数据具有一致性,避免因人脸大小不同而导致的误差。
对大小统一的样本图像进行二阶段对齐处理,二阶段对齐处理包括:
第一阶段粗略对齐:使用面部姿态估计器(如3DDFA)和/或头部姿态估计器(如WHENet)对人脸区域进行初步的对齐。对于具有可检测到的面部标志的样本图像,3DDFA可以通过这些标志点来估计人脸区域的三维形状和姿态,从而实现头部中心的对齐。对于大角度姿势的样本图像,WHENet可以提供粗略的相机姿态估计,同时结合YOLO等人类检测器来定位头部中心,并调整边界框以匹配头部大小。通过结合使用这些方法,可以在很大程度上实现样本图像的一致对齐。
第二阶段自适应对齐:由于发型、头部姿态等因素可能导致第一阶段对齐的不完全准确,因此需要进行第二阶段的自适应对齐。这一阶段通常利用3D感知GAN(生成对抗网络)来实现。GAN通过学习图像与潜在编码之间的映射关系,可以合成具有特定相机姿态的头部图像。然而,由于特定相机姿态可能与实际图像内容不完全对齐,因此需要引入映射网络来学习从<潜在编码,特定相机姿态>映射到相机参数偏差,以弥补特定相机姿态的误差。其中,相机参数偏差的大小受L2范数规范化。通过对抗训练,映射网络能够动态地调整相机姿态,以实现更精确的自适应对齐。
步骤403:对人脸区域对齐后,采用相机参数拟合算法对样本图像中的人脸区域进行姿态估计,得到样本拍摄相机内外参数。
在本示例中,在人脸经过二阶段对齐处理后,使用相机参数拟合算法对人脸进行姿态估计。姿态估计的目的是获取人脸的样本拍摄相机内外参数,这些参数通常包括俯仰角、偏航角和滚转角,以及可能的相机位置(平移)和朝向(旋转)信息。在本公开中,样本拍摄相机内外参数与待处理图像的拍摄相机内外参数相同,包括位置、旋转、放缩组成的矩阵参数,以及可以将相机空间的点投影到图像空间的相机内参矩阵。
在一个示例中,利用判别器判断样本渲染图像与样本图像对应的真实图像之间的第二损失值,并计算生成器的第三损失值,包括:
在本示例中,训练生成对抗网络模型时,对样本数据集中每张样本图像,获取对应的潜在编码和特定相机姿态,并输入到生成对抗网络模型。
利用以下计算公式计算生成器的第三损失值:
其中,为样本拍摄相机内外参数偏差;z是样本图像的潜在编码;为生成器输出的生成图像;为判别器对生成图像的真实性判别结果,通过最小化生成图像和真实图像的差别使得接近1;为潜在编码的高斯分布;为判别器判断生成图像的真实性的期望,生成图像越真实,期望越小;R为神经渲染器的正则化项,正则化项可以防止过拟合。
利用以下计算公式计算判别器的第二损失值:
其中,x为样本图像对应的真实图像;为判别器对真实图像的判别结果,输出接近1;为真实图像的高斯分布;为判别器判断真实图像的真实性的期望。
该损失函数可以优化判别器,使判别器接收到生成器的生成图像后尽可能输出接近0的判别结果,使判别器接收到真实图像后输出接近1的判别结果,使得判别器鉴别真实性的能力最大化。
在一个示例中,对多视角图像进行头发分割,得到多视角头发分割图像,包括:利用图像分割网络,对多视角图像中虚拟人头像的头发区域进行分割处理,得到多视角头发分割图像。
在本示例中,利用Hour-Glass神经网络,对多视角图像中虚拟人头像的头发区域进行分割处理,得到多视角头发分割图像。
Hour-Glass网络包括编码器和解码器。
具体的,多视角图像输入Hour-Glass网络的编码器部分。编码器由多个卷积层和池化层组成,逐层提取多视角图像的特征。在下采样的过程中,图像的空间分辨率逐渐降低,但特征图的通道数(即特征深度)逐渐增加,从而捕获到更高级别的语义信息。编码器中的每个沙漏模块(Hour-Glass block)都包含多个卷积层和残差连接,用于进一步提取和整合特征。在编码器的最低层,特征图的空间分辨率达到最小,但包含了最丰富的语义信息,随后,将这些特征图进行中间处理层后输入解码器。
解码器通过逐层上采样特征图,逐步恢复图像的空间分辨率。在上采样的过程中,解码器会利用跳跃连接将编码器对应层级的特征图与解码器当前层级的特征图进行融合,以保留更多的细节信息。解码器中的每个沙漏模块也包含多个卷积层和可能的残差连接,用于进一步细化分割结果。最终,解码器输出一个与多视角图像相同空间分辨率的多视角头发分割图像。在多视角头发分割图像中的每个像素值代表该像素属于头发区域的概率。
在一个示例中,根据多视角头发分割图像,生成虚拟人头像的目标三维方向占用场,包括:
步骤501:采用光线追踪技术渲染头发模型获得多视角头发分割数据。
在本示例中,采用光线追踪技术渲染头发模型获取逼真的多视角头发分割图像的多视角头发分割数据(例如,完全正面、90度侧脸及180度完全背面的头发分割图),并作为训练数据。光线追踪是一种图形渲染技术,能够模拟光线在场景中的传播路径,包括反射、折射、散射等光学现象,从而生成高度逼真的图像。通过光线追踪技术,将头发模型渲染成与多视角分割图像相匹配的3D图像。
步骤502:将头发模型转换为初始三维方向占用场,利用多视角头发分割数据及初始三维方向占用场对三维方向占用场神经网络进行训练。
在本示例中,体素(Voxel)是三维空间中的一个立方体单元,类似于二维图像中的像素。将头发模型所在的三维空间划分为的体素网格,例如256(上下)×256(左右)×128(前后),从而得到虚拟人头像的初始三维方向占用场。
得到初始三维方向占用场之后,将图像分割网络输出的多视角头发分割图像输入三维方向占用场神经网络中,利用多视角头发分割数据及初始三维方向占用场对三维方向占用场神经网络进行训练,得到目标三维方向占用场。
其中,目标三维方向占用场由头发模型的每个点通过网格分割成的体素构成,每个被发丝占用的体素中包含发丝上每个点的切线方向向量信息。
三维方向占用场中的每个体素可能包含头发模型的部分或全部发丝,或者不包含头发。通过遍历每个体素,并根据多视角分割图像中的头发分割结果,判断该体素是否被头发占据。如果某个体素在多个视角的分割图像中都被标记为头发区域,则认为该体素被头发占据,并将头发分割结果映射到三维空间中的相应位置。对于每个被发丝占用的体素,计算其中发丝上每个点的切线方向向量,切线方向向量描述了发丝在该点的局部方向。
在一个示例中,将目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场,包括:
步骤601:将目标三维方向占用场中所有被发丝占用的体素转换为初始头发面片网格。
在本示例中,通过Marching Cubes算法将目标三维方向占用场中所有被发丝占用的体素转换为头发面片网格(mesh)。具体的,Marching Cubes算法会遍历目标三维方向占用场,根据体素的被占用信息生成一个连续的、平滑的初始头发面片网格,初始头发面片网格能够近似地表示头发的外形。
步骤602:通过变换矩阵,将初始头发面片网格与头发模型中的头皮网格进行初始对齐。
在本示例中,在得到初始的头发面片网格后,需要将其与头皮网格进行对齐。具体是通过应用一个4×4的变换矩阵(包括旋转、平移和缩放)来实现的。这个变换矩阵的目的是将头发面片网格大致移动到头皮网格的位置,使得两者在空间位置上接近。
步骤603:在头皮网格的顶点上构建KD树,并利用KD树,在初始头发面片网格上为头皮网格的每个顶点匹配最近的目标顶点。
在本示例中,为了更精确地调整初始头发面片网格以贴合头皮网格,首先需要在头皮网格的顶点上构建一个KD树(K-Dimensional Tree)。KD树是一种空间划分数据结构,用于快速检索最近邻点。然后,利用这个KD树,为头皮网格上的每个顶点在初始头发面片网格上找到最近的顶点,这些最近的顶点将作为后续变形的目标顶点。
步骤604:采用面片变形算法,将目标顶点作为可变形顶点,向头皮网格的顶点进行变形。
在本示例中,采用面片变形算法(如ARAP,即As-Rigid-As-Possible算法)来调整初始头发面片网格的形状。ARAP算法旨在保持网格的局部刚性,同时允许全局变形。在这里,将步骤603中找到的目标顶点作为可变形顶点,将它们向头皮网格的对应顶点移动,从而使头发面片网格逐渐贴合头皮网格。
步骤605:固定初始头发面片网格中除目标顶点以外的所有顶点,得到目标头发面片网格。
在本示例中,在变形过程中,除了目标顶点(即那些被选为向头皮网格移动的顶点)之外,初始头发面片网格中的其他所有顶点都被固定不动。这样做是为了保持初始头发面片网格的整体结构稳定性,同时允许必要的局部变形以贴合头皮网格。在变形完成后,得到的网格即为目标头发面片网格。
步骤606:根据目标头发面片网格,得到变形后的目标三维方向占用场。
在本示例中,根据变形后的目标头发面片网格来构建新的目标三维方向占用场。这个新的占用场不仅包含了头发的占据信息(即哪些体素被头发占据),还包含了头发的切线方向向量信息。对于在变形前就已经被占用的体素,可以直接使用其原有的切线方向向量信息;而对于新被占用的体素(即由于变形而新增的被占据体素),则需要通过插值计算来得到切线方向向量信息。
在一个示例中,在目标三维方向占用场内随机采样多个发丝初始点,根据多个发丝初始点获取切线方向迭代预测发丝其余所有点,生成虚拟人头像的发丝发型,包括:
步骤701:在目标三维方向占用场的被发丝占用的体素中随机采样多个发丝初始点。
在本示例中,在目标三维方向占用场的被发丝占用的体素中随机选择多个发丝初始点作为发丝的初始生长点。发丝初始点位于被标记为发丝占用的体素内部,以确保生成的发丝是合理且符合头发分布规律的。通过随机采样,可以模拟自然头发在不同位置的随机初始点,增加生成发型的多样性和真实性。优选的,发丝初始点的数量大于12000个。
步骤702:对发丝进行B样条采样,使得每个发丝上相邻点之间的间距在预设长度范围内。
在本示例中,B样条(B-spline)是一种计算机图形学和数值分析的平滑曲线,具有局部控制、平滑性和参数化的特点。采样B样条曲线意味着在给定的参数范围内生成一系列的发丝点,这些点可以用来绘制发丝曲线。
使用B样条曲线对头发模型中的发丝进行采样,可以确保采样后的发丝点之间的间距大致相等,并且接近预设长度范围内(例如体素边长的0.005±0.001m)。
步骤703:将目标三维方向占用场划分为多个体素块,每个体素块包含多个体素,且相邻的体素块之间存在重叠的体素区域。
在本示例中,为了处理大规模的三维方向占用场数据,同时充分利用局部和全局的占用信息,将目标三维方向占用场划分为多个的体素块(patch块)。每个体素块包含一定数量的体素,这些体素共同描述了局部空间的占用情况。
相邻的体素块之间存在重叠的体素区域,这是为了在进行发丝生长预测时能够聚合更多的上下文信息,提高预测的准确性和鲁棒性。通过划分体素块并引入重叠区域,算法能够更高效地处理大规模数据,并更好地捕捉发丝生长的复杂性和连续性。
例如,将256×256×192的三维方向占用场分成63×63×47个patch块,每个patch块里包含8×8×8个体素,每两个patch块有4×4×4个体素重叠,分patch块是为了聚合体素信息,重叠也是为了聚合其他的信息,使得信息最大化。
步骤704:根据覆盖发丝初始点的多个体素块,利用发丝生长神经网络预测发丝生长路径,生成虚拟人头像的发丝发型。
在本示例中,基于覆盖发丝初始点的多个体素块,将利用训练好的发丝生长神经网络来预测发丝生长路径,生成虚拟人头像的发丝发型。具体的生成过程在后续实施例中具体说明。
在一个示例中,根据覆盖发丝初始点的多个体素块,利用发丝生长神经网络预测发丝生长路径,生成虚拟人头像的发丝发型,包括:
步骤801:确定覆盖发丝初始点的多个体素块,并利用发丝生长神经网络提取体素块的方向场信息;
在本示例中,由于每个体素块都包含了一定数量的体素,并且相邻的体素块之间存在重叠,因此可能会有多个体素块包含或紧邻发丝初始点。确定覆盖发丝初始点的多个体素块,选取这些体素块作为发丝生长神经网络的输入,从中提取出体素块的方向场信息。方向场信息是指体素块中每个体素所指示的局部发丝方向或趋势。
步骤802:根据体素块和方向场信息预测发丝初始点的下一个目标点。
在本示例中,将体素块和方向场信息输入到发丝生长神经网络的编码器模块中。编码器模块会对体素块进行编码,以获取其高层次的特征表示。然后,这些编码表示会与发丝初始点的位置信息一起被拼合,并输入到解码器模块中。解码器模块会根据输入的信息(包括体素块的编码和发丝初始点的位置)来预测发丝的生长方向,并确定发丝初始点的下一个目标点。这个目标点是沿着预测的生长方向移动一定距离后得到的,代表了发丝在三维方向占用场中的下一个位置。
步骤803:将目标点作为新的发丝初始点,利用发丝生长神经网络继续预测下一个目标点,直至生成满足预设长度的发丝。
在本示例中,在得到了发丝初始点的下一个目标点之后,将其视为新的发丝初始点,并重复步骤801和802的过程。即,目标点会再次确定覆盖新发丝初始点的体素块,提取方向场信息,并利用发丝生长神经网络预测下一个目标点。
这个过程会不断迭代进行,每次迭代都会生成发丝路径上的一个新点,直到满足预设的发丝长度或达到其他停止条件为止。通过这种方式逐步生成完整的发丝路径,并最终形成虚拟人头像的发丝发型。
本公开还提供了一种虚拟人三维头发丝发型的生成系统,如图2所示,系统包括:
获取模块901,用于获取待处理图像,待处理图像中包括单视角的虚拟人头像;
图像生成模块902,用于确定虚拟人头像的拍摄相机内外参数,并根据待处理图像和拍摄相机内外参数,生成虚拟人头像的多视角图像;
图像生成模块902,还用于对多视角图像进行头发分割处理,得到多视角头发分割图像;
三维方向占用场生成模块903,用于根据多视角头发分割图像,生成虚拟人头像的头发的目标三维方向占用场;
三维方向占用场生成模块903,还用于将目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场;
发丝生长模块904,用于在目标三维方向占用场内随机采样多个发丝初始点,根据多个发丝初始点获取切线方向迭代预测发丝其余所有点,生成虚拟人头像的发丝发型。
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。
图3示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图3所示,电子设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如虚拟人三维头发丝发型的生成方法。例如,在一些实施例中,虚拟人三维头发丝发型的生成方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的虚拟人三维头发丝发型的生成方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行虚拟人三维头发丝发型的生成方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种虚拟人三维头发丝发型的生成方法,其特征在于,所述方法包括:
获取待处理图像,所述待处理图像中包括单视角的虚拟人头像;
确定所述虚拟人头像的拍摄相机内外参数,并根据所述待处理图像和所述拍摄相机内外参数,生成所述虚拟人头像的多视角图像,包括:
采用相机参数拟合算法,从所述待处理图像中提取所述虚拟人头像的拍摄相机内外参数;
对所述待处理图像进行高斯分布随机采样,得到第一潜在编码;
将所述拍摄相机内外参数和第一潜在编码输入生成对抗网络模型,生成目标渲染图像;
计算所述目标渲染图像和待处理图像对应的真实图像之间的第一损失值,并根据所述第一损失值对所述第一潜在编码进行优化,得到第二潜在编码;
将所述第二潜在编码和目标视角的拍摄相机内外参数输入所述生成对抗网络模型中,神经渲染生成目标视角图像;获取所有目标视角对应的目标视角图像,得到所述虚拟人头像的多视角图像;
对所述多视角图像进行头发分割处理,得到多视角头发分割图像;
根据所述多视角头发分割图像,生成所述虚拟人头像的头发的目标三维方向占用场;
将所述目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场;
在所述目标三维方向占用场内随机采样多个发丝初始点,根据所述多个发丝初始点获取切线方向迭代预测发丝其余所有点,利用发丝生长神经网络生成所述虚拟人头像的发丝发型。
2.根据权利要求1所述的方法,其特征在于,获取所述生成对抗网络模型,包括:
获取样本数据集,所述样本数据集中包括多视角人脸的样本图像;
构建所述生成对抗网络模型,所述生成对抗网络模型包括生成器、判别器、神经渲染器和映射网络;
对所述样本图像进行高斯分布随机采样,得到第一样本潜在编码;
将所述样本图像的样本拍摄相机内外参数和第一样本潜在编码输入所述映射网络中,得到第二样本潜在编码;
将所述第二样本潜在编码输入所述生成器得到生成图像;
将所述生成图像和渲染相机参数输入所述神经渲染器中,得到样本渲染图像;
利用判别器判断生成图像与样本图像对应的真实图像之间的第二损失值,并计算所述生成器的第三损失值;
根据所述第二损失值和第三损失值,对所述生成器和判别器的参数进行迭代优化,直至模型收敛,得到生成对抗网络模型。
3.根据权利要求2所述的方法,其特征在于,获取所述样本图像的样本拍摄相机内外参数,包括:
对样本数据集中的每张样本图像执行人脸检测,得到对应的人脸区域;
将所有检测到人脸的样本图像中的人脸区域缩放到目标大小,并将所述样本图像的人脸区域进行二阶段对齐处理;
对人脸区域对齐后,采用相机参数拟合算法对所述样本图像中的人脸区域进行姿态估计,得到样本拍摄相机内外参数。
4.根据权利要求1所述的方法,其特征在于,对所述多视角图像进行头发分割处理,得到多视角头发分割图像,包括:
利用图像分割网络,对所述多视角图像中虚拟人头像的头发区域进行分割,得到所述多视角头发分割图像。
5.根据权利要求1所述的方法,其特征在于,所述根据所述多视角头发分割图像,生成所述虚拟人头像的头发的目标三维方向占用场,包括:
采用光线追踪技术渲染头发模型获得多视角头发分割数据;
将所述头发模型转换为初始三维方向占用场,利用所述多视角头发分割数据及初始三维方向占用场对三维方向占用场神经网络进行训练;
将所述多视角头发分割图像输入完成训练的三维方向占用场神经网络中,得到所述目标三维方向占用场;
所述目标三维方向占用场由所述头发模型的每个点通过网格分割成的体素构成,每个被发丝占用的体素中包含所述发丝上每个点的切线方向向量信息。
6.根据权利要求1所述的方法,其特征在于,所述将所述目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场,包括:
将所述目标三维方向占用场中所有被发丝占用的体素转换为初始头发面片网格;
通过变换矩阵,将初始头发面片网格与头发模型中的头皮网格进行初始对齐;
在所述头皮网格的顶点上构建KD树,并利用所述KD树,在初始头发面片网格上为所述头皮网格的每个顶点匹配最近的目标顶点;
采用面片变形算法,将所述目标顶点作为可变形顶点,向所述头皮网格的顶点进行变形;
固定初始头发面片网格中除目标顶点以外的所有顶点,得到目标头发面片网格;
根据目标头发面片网格,得到变形后的目标三维方向占用场。
7.根据权利要求1所述的方法,其特征在于,所述在所述目标三维方向占用场内随机采样多个发丝初始点,根据所述多个发丝初始点获取切线方向迭代预测发丝其余所有点,生成所述虚拟人头像的发丝发型,包括:
在所述目标三维方向占用场的被发丝占用的体素中随机采样多个发丝初始点;
对所述发丝进行B样条采样,使得每个发丝上相邻点之间的间距在预设长度范围内;
将所述目标三维方向占用场划分为多个体素块,每个体素块包含多个体素,且相邻的体素块之间存在重叠的体素区域;
根据覆盖所述发丝初始点的多个体素块,利用发丝生长神经网络预测发丝生长路径,生成所述虚拟人头像的发丝发型。
8.根据权利要求7所述的方法,其特征在于,所述根据覆盖所述发丝初始点的多个体素块,利用发丝生长神经网络预测发丝生长路径,生成所述虚拟人头像的发丝发型,包括:
确定覆盖所述发丝初始点的多个体素块,并利用发丝生长神经网络提取所述体素块的方向场信息;
根据所述体素块和所述方向场信息预测所述发丝初始点的下一个目标点;
将所述目标点作为新的发丝初始点,利用发丝生长神经网络继续预测下一个目标点,直至生成满足预设长度的发丝。
9.一种虚拟人三维头发丝发型的生成系统,其特征在于,所述系统包括:
获取模块,用于获取待处理图像,所述待处理图像中包括单视角的虚拟人头像;
图像生成模块,用于确定所述虚拟人头像的拍摄相机内外参数,并根据所述待处理图像和所述拍摄相机内外参数,生成所述虚拟人头像的多视角图像,包括:采用相机参数拟合算法,从所述待处理图像中提取所述虚拟人头像的拍摄相机内外参数;对所述待处理图像进行高斯分布随机采样,得到第一潜在编码;将所述拍摄相机内外参数和第一潜在编码输入生成对抗网络模型,生成目标渲染图像;计算所述目标渲染图像和待处理图像对应的真实图像之间的第一损失值,并根据所述第一损失值对所述第一潜在编码进行优化,得到第二潜在编码;将所述第二潜在编码和目标视角的拍摄相机内外参数输入所述生成对抗网络模型中,神经渲染生成目标视角图像;获取所有目标视角对应的目标视角图像,得到所述虚拟人头像的多视角图像;
图像生成模块,用于对所述多视角图像进行头发分割处理,得到多视角头发分割图像;
三维方向占用场生成模块,用于根据所述多视角头发分割图像,生成所述虚拟人头像的头发的目标三维方向占用场;
三维方向占用场生成模块,还用于将所述目标三维方向占用场变形附着到头皮网格上,得到变形后的目标三维方向占用场;
发丝生长模块,用于在所述目标三维方向占用场内随机采样多个发丝初始点,根据所述多个发丝初始点获取切线方向迭代预测发丝其余所有点,利用发丝生长神经网络生成所述虚拟人头像的发丝发型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410992818.XA CN118521699B (zh) | 2024-07-23 | 2024-07-23 | 一种虚拟人三维头发丝发型的生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410992818.XA CN118521699B (zh) | 2024-07-23 | 2024-07-23 | 一种虚拟人三维头发丝发型的生成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118521699A CN118521699A (zh) | 2024-08-20 |
CN118521699B true CN118521699B (zh) | 2024-10-29 |
Family
ID=92274347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410992818.XA Active CN118521699B (zh) | 2024-07-23 | 2024-07-23 | 一种虚拟人三维头发丝发型的生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118521699B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116030185A (zh) * | 2022-12-02 | 2023-04-28 | 北京百度网讯科技有限公司 | 三维发丝生成方法和模型的训练方法 |
CN116416376A (zh) * | 2023-03-02 | 2023-07-11 | 南京大学 | 一种三维头发的重建方法、系统、电子设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11074751B2 (en) * | 2018-12-04 | 2021-07-27 | University Of Southern California | 3D hair synthesis using volumetric variational autoencoders |
WO2021140510A2 (en) * | 2020-01-09 | 2021-07-15 | Datagen Technologies, Ltd. | Large-scale generation of photorealistic 3d models |
CN116091686A (zh) * | 2021-11-04 | 2023-05-09 | 索尼集团公司 | 用于三维重建的方法、系统和存储介质 |
WO2023085624A1 (en) * | 2021-11-15 | 2023-05-19 | Samsung Electronics Co., Ltd. | Method and apparatus for three-dimensional reconstruction of a human head for rendering a human image |
CN115375839A (zh) * | 2022-08-02 | 2022-11-22 | 浙江大学 | 一种基于深度学习的多视角头发建模方法及系统 |
CN115346018A (zh) * | 2022-08-10 | 2022-11-15 | 中国电信股份有限公司 | 三维模型重建方法及装置、电子设备 |
CN116152439A (zh) * | 2023-03-02 | 2023-05-23 | 南京大学 | 一种基于多视角人体图像的人体三维姿态重建方法及系统 |
CN117218300B (zh) * | 2023-11-08 | 2024-03-01 | 腾讯科技(深圳)有限公司 | 三维模型的构建方法、三维构建模型的训练方法及装置 |
CN118037952A (zh) * | 2024-01-22 | 2024-05-14 | 北京邮电大学 | 一种三维人体重建方法及系统 |
-
2024
- 2024-07-23 CN CN202410992818.XA patent/CN118521699B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116030185A (zh) * | 2022-12-02 | 2023-04-28 | 北京百度网讯科技有限公司 | 三维发丝生成方法和模型的训练方法 |
CN116416376A (zh) * | 2023-03-02 | 2023-07-11 | 南京大学 | 一种三维头发的重建方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN118521699A (zh) | 2024-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kato et al. | Neural 3d mesh renderer | |
CN109255831B (zh) | 基于多任务学习的单视图人脸三维重建及纹理生成的方法 | |
CN110458939B (zh) | 基于视角生成的室内场景建模方法 | |
CN115100339B (zh) | 图像生成方法、装置、电子设备和存储介质 | |
CN115082639B (zh) | 图像生成方法、装置、电子设备和存储介质 | |
CN108921926B (zh) | 一种基于单张图像的端到端三维人脸重建方法 | |
CN109844818B (zh) | 用于建立元素的可变形3d模型的方法和相关联系统 | |
US20230419610A1 (en) | Image rendering method, electronic device, and storage medium | |
CN113822993B (zh) | 一种基于3d模型匹配的数字孪生方法和系统 | |
JP7129529B2 (ja) | 人工知能の使用による3dオブジェクトへのuvマッピング | |
CN116977522A (zh) | 三维模型的渲染方法、装置、计算机设备和存储介质 | |
CN116416376A (zh) | 一种三维头发的重建方法、系统、电子设备及存储介质 | |
CN113822965A (zh) | 图像渲染处理方法、装置和设备及计算机存储介质 | |
Kang et al. | Competitive learning of facial fitting and synthesis using uv energy | |
CN117333637B (zh) | 三维场景的建模及渲染方法、装置及设备 | |
CN116385667B (zh) | 三维模型的重建方法、纹理重构模型的训练方法以及装置 | |
Jung et al. | Learning free-form deformation for 3D face reconstruction from in-the-wild images | |
CN118196306A (zh) | 基于点云信息和高斯云团的3d建模重建系统、方法及装置 | |
CN116664422A (zh) | 图像高光处理方法、装置、电子设备及可读存储介质 | |
CN116958362A (zh) | 图像渲染方法、装置、设备和存储介质 | |
Gong | Application and Practice of Artificial Intelligence Technology in Interior Design | |
CN118521699B (zh) | 一种虚拟人三维头发丝发型的生成方法及系统 | |
CN118154770A (zh) | 基于神经辐射场的单幅树木图像三维重建方法和装置 | |
US20240037829A1 (en) | Computing images of controllable dynamic scenes | |
CN113034675B (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 | ||
GR01 | Patent grant |