CN111899159B - 用于变换发型的方法、装置、设备以及存储介质 - Google Patents

用于变换发型的方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN111899159B
CN111899159B CN202010758598.6A CN202010758598A CN111899159B CN 111899159 B CN111899159 B CN 111899159B CN 202010758598 A CN202010758598 A CN 202010758598A CN 111899159 B CN111899159 B CN 111899159B
Authority
CN
China
Prior art keywords
hairstyle
target
grid
deflection axis
face
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
Application number
CN202010758598.6A
Other languages
English (en)
Other versions
CN111899159A (zh
Inventor
彭昊天
赵晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010758598.6A priority Critical patent/CN111899159B/zh
Publication of CN111899159A publication Critical patent/CN111899159A/zh
Priority to US17/202,893 priority patent/US11631154B2/en
Priority to EP21163243.5A priority patent/EP3855386B1/en
Priority to JP2021044705A priority patent/JP7418370B2/ja
Priority to KR1020210037178A priority patent/KR102488517B1/ko
Application granted granted Critical
Publication of CN111899159B publication Critical patent/CN111899159B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • G06T3/02
    • G06T3/18
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • G06T3/147
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/149Segmentation; Edge detection involving deformable models, e.g. active contour models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/165Detection; Localisation; Normalisation using facial parts and geometric relationships
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • G06V40/171Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20096Interactive definition of curve of interest
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20121Active appearance model [AAM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20124Active shape model [ASM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Geometry (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开公开了一种用于变换发型的方法、装置、设备以及存储介质,涉及图像处理技术、增强现实技术和深度学习技术领域。具体实现方案为:根据获取的人脸图像的人脸关键点信息,确定人脸包围盒;根据人脸包围盒构建网格;采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线;根据变形后的网格曲线,确定人脸图像中变形后的发型。本公开采用了目标发型函数对网格中包括发型的至少部分网格的边线进行变形,无需对人脸图像整体进行变换且输出准确,使得人脸图像中变形后的发型不失真。

Description

用于变换发型的方法、装置、设备以及存储介质
技术领域
本公开涉及计算机技术领域,具体涉及图像处理技术、增强现实技术和深度学习技术领域,尤其涉及用于变换发型的方法、装置、设备以及存储介质。
背景技术
发型可以表达用户的个性,自信心和态度。因此,发型是个人外表的一个重要方面。
目前,用户通过以下方式更换发型:(1)将待变形的发型进行仿射变换,得到更换后的发型。(2)对生成对抗网络(CycleGAN)的训练数据集进行大批量修改,例如,采用手工的方式对CycleGAN的训练数据集进行大批量修改,得到修改后的CycleGAN的训练数据集,然后基于修改后的CycleGAN的训练数据集进行训练,得到更换后的发型。
发明内容
本公开提供了一种用于变换发型的方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种用于变换发型的方法,该用于变换发型的方法包括:根据获取的人脸图像的人脸关键点信息,确定人脸包围盒;根据人脸包围盒构建网格;采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线;采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线。
根据本公开的另一方面,提供了一种用于变换发型的装置,该变换发型的装置包括:第一确定模块,被配置为根据获取的人脸图像的人脸关键点信息,确定人脸包围盒;网格构建模块,被配置为根据人脸包围盒构建网格;网格变形模块,被配置为采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线;第二确定模块,被配置为根据变形后的网格曲线,确定人脸图像中变形后的发型。
根据本公开的第三方面,提供了一种电子设备,其特征在于,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面所述的方法。
本公开上述实施例的用于变换发型的方法和装置,首先根据获取的人脸图像的人脸关键点信息,确定人脸包围盒;之后,根据人脸包围盒构建网格;之后,采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线;最后,采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线。这一过程中,与背景技术中对待变换发型进行仿射变换的处理或采用人工的方式对CycleGAN的训练数据集进行大批量修改的处理导致变换后的发型失真相比,由于采用了目标发型函数对网格中包括发型的至少部分网格的边线进行变形,该方法可以针对网格中的发型的至少部分的网格的边线进行变形,无需对人脸图像整体进行变换且输出准确,使得人脸图像中变形后的发型不失真。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本公开可以应用于其中的示例性系统架构;
图2是根据本公开的用于变换发型的方法的一个实施例的流程图;
图3是人脸关键点和人脸框的示意图;
图4是二维凸包的示意图;
图5是网格的一个示意图;
图6(a)~图6(c)是确定目标发型函数的示意图;
图7(a)和图7(b)是像素变形的一个示意图;
图8(a)和图8(b)是网格的一个示意图;
图9是根据本公开的用于变换发型的方法的另一个实施例的流程图;
图10是根据本公开的用于变换发型的装置的一个实施例的示意图;
图11是用来实现本公开实施例的用于变换发型的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本公开的用于变换发型的方法或用于变换发型的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种应用,例如图像采集应用、变换发型应用、多方交互应用、人工智能应用等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是支持文档处理应用的各种电子设备,包括但不限于智能终端、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103提供支持的后台服务器。后台服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
在实践中,本公开实施例所提供的用于变换发型的方法可以由终端设备101、102、103或服务器105执行,用于变换发型的装置也可以设置于终端设备101、102、103或服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
现有技术针对生成顺滑发型的技术方案,采用的是将待变形的发型进行仿射变换;或者,对生成对抗网络(CycleGAN)的训练数据集进行大批量修改,例如采用人工的方式进行修改。其中,将待变形的发型进行仿射变换,可能会对发型所在的图像整个进行仿射变换;此时,对该图像中除发型之外的区域(例如面部五官)也进行了仿射变换,最终会导致变换后的图像失真,起不到变换发型的目的;再者对CycleGAN的训练数据集进行大批量修改,无疑会增加计算量、且计算耗费时间、耗费内存空间,且发型越复杂,对应的训练数据集也相应复杂,进一步提高了训练难度;尤其是,采用手工的方式对CycleGAN的训练数据集进行大批量修改时,一方面,人力成本较高,效率低;另一方面,最终的生成的训练数据集会受到人为因素的原因,导致输出的发型不稳定,发型失真,对CycleGAN的后续训练也会造成困扰。综上,上述两种方式,都会使得变形后的发型失真。
请参考图2,图2示出了根据本公开的用于变换发型的方法的一个实施例的流程200。该用于变换发型的方法包括以下步骤:
步骤201:根据获取的人脸图像的人脸关键点信息,确定人脸包围盒。
在本实施例中,用于变换发型的方法的执行主体(例如图1所示的终端设备或服务器)可以根据获取的人脸图像的人脸关键点信息,确定人脸包围盒。
根据获取的人脸图像的人脸关键点信息确定人脸包围盒的方法,可以为现有技术或未来发展的技术中根据人脸关键点信息确定人脸包围盒的方法,本公开对此不做限定。例如,根据人脸关键点信息确定人脸包围盒的方法可以采用图像识别的方法和图像处理方法来实现。
在本公开的一个示例中,人脸关键点信息包括人脸关键点和人脸框;其中,根据获取的人脸图像的人脸关键点信息,确定人脸包围盒,可以包括以下步骤:对人脸图像进行识别,确定人脸图像的人脸关键点和人脸框;基于人脸关键点和人脸框,确定人脸包围盒。
对应地,在该示例中,获取的人脸图像可以包括:获取存储在终端设备(例如图1所示的终端设备103)中存储的人脸照片;或者,通过该终端设备的摄像模块拍摄的人脸图像。
对应地,在该示例中,对人脸图像进行识别,确定人脸图像的人脸关键点和人脸框,包括:通过人脸关键点检测对人脸图像中的人脸关键点进行检测,定位或者人脸对齐;最终定位出人脸关键点信息的关键区域位置;其中,人脸关键点信息包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等(如图3所示)。人脸关键点检测方法可以包括:基于模型的ASM(ActiveShape Model)、AAM(Active Appearnce Model)、基于级联形状回归CPR(Cascaded poseregression),或者基于深度学习的方法。
对应地,在该示例中,人脸包围盒的大小由凸包的大小确定;其中,凸包,是指将给定点包围在内部的、面积最小的凸多边形。或者说,给定平面上的一些点,找出一个最小点集连成一个凸多边形,使得这若干个给定点皆在此多边形内或多边形上,这个凸多边形就是给定点的二维凸包。
在本公开实施例,还可以通过Andrew算法、Graham算法、Melkman算法等方法生成二维凸包;上述算法的选取,可以根据具体的实际需要而定,在此不再赘述。在一个具体示例中,如图4所示,该二维凸包可以是一个包含六条边的凸多边形。对应地,在该示例中,在基于人脸关键点信息确定人脸包围盒时,通常可构造出多个包围盒,针对这多个包围盒,可从中选出一个,作为最终所需的包围盒。例如,可从构造出的包围盒中选出面积最小的一个,将选出的包围盒作为最终所需的人脸包围盒。
步骤202:根据人脸包围盒构建网格。
在本实施例中,上述执行主体可以将人脸包围盒划分为多个凸多面体,每个凸多面体就是一个格子,且将落入同个格子的人脸包围盒的顶点合并为用一个代表点表示,由所有的代表点连线组合在一起,进而创建了网格。网格的每一个小单元(cell)就是一个格子,只有跨度跨越三个单元的三角形才被保留在简化结果中,得到网格。
根据人脸包围盒构建网格的方法,可以为现有技术或未来发展的技术中根据人脸包围盒构建网格的方法,本公开对此不做限定。例如,人脸包围盒构建网格的方法可以采用空间聚类算法或人脸网格模型的方法来实现。
步骤203:采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线。
在本实施例中,上述执行主体可以基于以下几种方式,确定网格中包括发型的至少部分网格的边线:
(1)可以由预先训练的确定网格中包括发型的至少部分网格的边线的模型进行选定,或者,根据预先设定的规则从网格中确定包括发型的至少部分网格的边线。
(2)由用户自行设置,例如用户根据自己的喜好确定网格中包括发型的至少部分网格的边线,即由用户确定网格中需要变形的网格边线。
在确定网格中需要变形的网格边线之后,可以采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,以得到变形后的网格曲线。
在本公开的针对步骤203的一些可选实现方式中,步骤203可以包括:将目标网格边线上点的坐标输入目标发型函数中,得到变形后的目标网格边线;其中,点的坐标是与偏转轴线平行的坐标轴对应的坐标。
本公开上述实施例的用于变换发型的方法和装置,通过将网格中包括发型的至少部分的网格的边线中点的坐标输入目标发型函数中,得到变形后的网格曲线,然后根据变形后的网格曲线,确定人脸图像中变形后的发型,进而针对网格中的发型的至少部分的网格的边线进行变形,无需对人脸图像整体进行变换且输出准确,使得人脸图像中变形后的发型不失真。
步骤204:根据变形后的网格曲线,确定人脸图像中变形后的发型;
在本实施例中,上述执行主体可以在步骤203中采用目标发型函数对网格中包括发型的至少部分网格的边线进行变形后,对位于变形前的网格中的发型曲线,进行与变形后的网格曲线相适应的变形。
具体地,可以构建变形前的网格中的发型曲线与变形前的网格的边线之间的关联关系,之后,根据该关联关系和变形后的网格曲线,来确定变形后的发型曲线。例如,可以建立变形前的网格中的发型曲线位于其左右两侧变形前的网格的边线中间的约束关系,从而根据变形后的网格曲线,使得变形后的网格中的发型曲线位于其左右两侧变形后的网格曲线中间,从而得到人脸图像中变形后的发型。
本公开上述实施例的用于变换发型的方法和装置,首先根据获取的人脸图像的人脸关键点信息,确定人脸包围盒;之后,根据人脸包围盒构建网格;之后,采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线;最后,采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线。这一过程中,与背景技术中对待变换发型进行仿射变换的处理或采用人工的方式对CycleGAN的训练数据集进行大批量修改的处理导致变换后的发型失真相比,由于采用了目标发型函数对网格中包括发型的至少部分网格的边线进行变形,该方法可以针对网格中的发型的至少部分的网格的边线进行变形,无需对人脸图像整体进行变换且输出准确,使得人脸图像中变形后的发型不失真。
在本公开针对步骤203的一些可选实现方式中,步骤203可以包括:将目标网格边线上点的坐标输入目标发型函数中,得到变形后的目标网格边线;其中,点的坐标是与偏转轴线平行的坐标轴对应的坐标;基于变形后的目标网格边线,确定变形后的网格曲线。
在一个具体的示例中,如图5所示,将目标网格边线501上点的坐标输入目标发型函数,可以得到变形后的目标网格边线502;然后再基于变形后的目标网格边线502,确定变形后的网格曲线504(即所有的变形后的目标网格边线)。
在本实现方式中,可以构建以网格中最右侧的网格边线为X轴,以发型的至少部分网格的边线中最上侧的网格边线为Y轴的坐标系。之后,获取目标网格边线上点的坐标。然后将目标网格边线上点的坐标输入目标发型函数中,从而将目标网格边线上点的坐标逐一映射为变形后的目标网格边线上点的坐标。
应当理解,上述的构建坐标系的方式,仅为构建坐标系的一个示例,并不是对坐标系的限定。例如,本领域技术人员还可以将网格中最左侧的网格边线作为X轴,将发型的至少部分网格的边线中最上侧的网格边线作为Y轴,以构建坐标系。或者,也可以采用其它构建坐标系的方式来构建坐标系,从而得到目标网格边线上点的坐标。
在本公开的一些可选实现方式中,目标发型函数可以通过以下步骤确定:获取目标发型曲线;对目标发型曲线进行均匀采样;对采样点进行拟合,得到目标发型函数。
在本实现方式中,拟合的方式可以为插值法、磨光法和最小二乘法。只要最终能实现拟合目标发型函数的目的,都可以纳入本公开的保护范围内。
在本实现方式中,采用目标发型曲线来模拟了真实的发型曲线;因此基于该目标发型曲线得到的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,以使确定的人脸图像中变形后的发型更符合用户真实的发型,提高了用户体验。
在上述实施例的一些可选实现方式中,在对目标发型曲线进行均匀采样之后,可以采用三次B样条对采样后的目标发型曲线进行拟合,以得到目标发型函数。
在本实现方式中,对采样点进行拟合,得到目标发型函数,包括:对多个采样点,根据三次B样条进行拟合,得到目标发型函数。
在一个具体的示例中,如图6(a)所示,先绘制目标发型曲线图;接着,如图6(b)所示,对该目标发型曲线图进行均匀采样,得到采样点;最后,如图6(c)所示,根据三次B样条完成曲线拟合,得到目标发型曲线的目标发型函数。
在本公开中,基于三次B样条完成拟合,使得拟合的发型函数对应的发型更顺滑,更与目标发型曲线图相符合,从而提高拟合后的函数的表达的准确性。
可以理解的是,上述实施例仅为对于用于变换发型的方法的示例性实施例,并不代表对用于变换发型的方法的限定。例如,上述用于变换发型的方法还可以包括:同时显示一张或多张人脸图像中变形后的发型。另外,本公开中涉及的换发型,不仅限于不同性别之间的发型的更换,还可以不限于同性之间发型的更换,在此不再赘述。
继续请参考图9,图9示出了根据本公开的用于变换发型的方法的另一个实施例的流程900。该用于变换发型的方法包括以下步骤:
步骤901:根据获取的人脸图像的人脸关键点信息,确定包围盒。
本实施例的步骤901与前述实施例的步骤201一致,步骤901的具体实现方式可以分别参考前述实施例中步骤201的描述,此处不再赘述。
步骤902:根据人脸包围盒构建网格;其中,人脸包围盒包括偏转轴线。
在本实施例中,人脸包围盒可以包括偏转轴线,该偏转轴线为人脸关键点信息中两只眼睛的中心到鼻尖的连线所对应的网格边线,用于指示人脸相对于正面人脸的偏转方向。人脸包围盒的方向可以根据偏转轴线的方向确定。例如,若偏转轴线近似于竖直方向(也即偏转轴线与竖直方向的夹角小于预定阈值),则采用径向包围盒;若偏转轴线近似于水平方向(也即偏转轴线与水平方向的夹角小于预定阈值),则采用轴向包围盒。
其中,以径向包围盒为例,在偏转轴线位于竖直方向时,无需对人脸图像进行调整;在偏转轴线不位于竖直方向时,可将人脸图像进行调整,以使调整后的人脸图像中的人脸的偏转轴线为竖直方向。此时,标准线(如图5中的“503”)为人脸图像中的人脸为正面人脸时人脸关键点信息中两只眼睛的中心到鼻尖的连线所对应的竖直方向的网格边线。
此外,本实施例的步骤902还包括前述实施例的步骤202所描述的操作和特征,此处不再赘述。
步骤903:检测偏转轴线与标准线之间的距离是否不为零。
在本实施例中,检测偏转轴线与标准线之间的距离是否不为零的方法,可以为现有技术或未来发展的技术中检测偏转轴线与标准线之间的距离是否不为零的方法,本公开对此不做限定。例如,检测偏转轴线与标准线之间的距离是否不为零的方法可以采用图像识别方法和距离检测方法。在一个具体的示例中,例如图8(a)中,检测偏转轴线的坐标和标准线的坐标,然后计算出偏转轴线的坐标和标准线的坐标差,再基于坐标差判断该坐标差是否不为0。
步骤904:若距离不为零,则将目标网格边线中与偏转轴线平行、处于偏转轴线左侧且距离偏转轴线最远的目标网格边线,确定为左基准网格边线,采用目标发型函数对左基准网格边线进行变形,得到左基准发型线。
在本实施例中,在步骤903中得出偏转轴线与标准线之间的距离不为0时,可以将网格左侧中距离与偏转轴线平行,且距离偏转轴线最远的目标网格边线,确定为左基准网格边线。
在一个具体的示例中,如图8(a)所示,网格最左侧的网格边线801a为左基准网格边线。
步骤905:将左基准网格边线与偏转轴线的距离和左基准发型线与偏转轴线的距离的比值,作为左侧变形系数,采用左侧变形系数,对位于偏转轴线左侧的、与偏转轴线平行的目标网格边线进行变形,得到人脸左侧的发型线,对位于偏转轴线左侧的、与目标网格边线对应的网格中的像素点进行采样,得到与人脸左侧的发型线对应的变形后的网格中的像素点。
在本实施例中,在步骤904中确定左基准网格边线之后,可以采用左基准网格边线与偏转轴线的距离和左基准发型线与偏转轴线的距离的比值,对位于偏转轴线左侧的、与偏转轴线平行的目标网格边线进行相适应变形。
在确定左基准网格边线之后,根据左基准网格边线与偏转轴线的距离和左基准发型线与偏转轴线的距离的比值,确定左侧变形系数。在一个具体的例子中,如图8(a)所示,先根据获取的左基准网格边线801a和偏转轴线802a的坐标,得到左基准网格边线与偏转轴线的距离;之后,根据获取的左基准发型线803a与偏转轴线802a的坐标,得到左基准发型线与偏转轴线的距离;最后,基于左基准网格边线801a与偏转轴线802a的距离和左基准发型线803a与偏转轴线802a的距离的比值,确定左侧变形系数。
在确定左基准网格边线之后,可以采用获取的目标发型函数对左基准网格边线进行变形,以得到左基准发型线。在一个具体的示例中,如图7(a)所示,将基于左基准网格边线与偏转轴线的距离(K1)和左基准发型线与偏转轴线的距离(K2)的比值,即K1/K2为像素变形比值;然后,如图7(b)所示,根据K1/K2=L1/L2,对左基准网格边线进行变形,以得到左基准发型线;其中,L1为左基准网格边线上点的像素值,L2为左基准发型线上点的像素值。
在将左基准网格边线与偏转轴线的距离和左基准发型线与偏转轴线的距离的比值作为左侧变形系数之后,可以采用左侧变形系数,对位于偏转轴线左侧的、与偏转轴线平行的目标网格边线进行变形,以得到人脸左侧的发型线;对位于偏转轴线左侧的、与目标网格边线对应的网格中的像素点进行采样,得到与人脸左侧的发型线对应的变形后的网格中的像素点。
在一个具体的示例中,如图8(a)所示,以网格中最右侧的网格边线为X轴,以发型的至少部分网格的边线中最上侧的网格边线为Y轴;其中,偏转轴线为Y=1的网格线;接着以“两眼中心到鼻尖”这条线段为偏转轴线;然后,确定图8(a)中偏转轴线与标准线之间的距离;其中,标准线为与偏转轴线平行的人脸图像的网格边线的中心对称轴,此时人脸为正面人脸;在图8(a)中偏转轴线与标准线之间的距离不为0时,将网格中最左的一条网格边线(即,左基准网格边线801a)变形至目标发型函数位置;此时,该最左的一条网格边线的内部像素按照图7(a)~图7(b)所述的左侧变形系数进行变形,得到人脸左侧的发型线;其中,从上到下的纵轴视为从X=0到X=1,以该偏转轴线所在轴视为Y=0,以偏转轴线所在的轴视为Y=1。
需要说明的是,也可以以网格中最左侧的网格边线为X轴,以发型的至少部分网格的边线中最上侧的网格边线为Y轴;其中,偏转轴线为Y=1的网格边线。
步骤906:若距离不为零,则将目标网格边线中与偏转轴线平行、处于偏转轴线右侧且距离偏转轴线最远的目标网格边线,确定为右基准网格边线,采用目标发型函数对右基准网格边线进行变形,得到右基准发型线。
在本实施例中,在步骤903中得出偏转轴线与标准线之间的距离不为0时,可以将网格右侧中距离与偏转轴线平行,且距离偏转轴线最远的目标网格边线,确定为右基准网格边线。在一个具体的示例中,如图8(b)所示,网格最右侧的网格边线为右基准网格边线。
在确定右基准网格边线之后,可以采用获取的目标发型函数对右基准网格边线进行变形,以得到右基准发型线。在一个具体的示例中,如图8(b)所示,将右基准网格边线801b上点的坐标输入目标发型函数,得到变形后的右基准网格边线802b;然后再基于变形后的右基准网格边线802b,确定变形后的网格曲线。
步骤907:将右基准网格边线与偏转轴线的距离和右基准发型线与偏转轴线的距离的比值,作为右侧变形系数,采用右侧变形系数,对位于偏转轴线右侧的、与偏转轴线平行的目标网格边线进行变形,得到人脸右侧的发型线,对位于偏转轴线右侧的、与目标网格边线对应的网格中的像素点进行采样,得到与人脸右侧的发型线对应的变形后的网格中的像素点。
在本实施例中,在步骤906中确定右基准网格边线之后,可以采用右基准网格边线与偏转轴线的距离和右基准发型线与偏转轴线的距离的比值,对位于偏转轴线右侧的、与偏转轴线平行的目标网格边线进行相适应变形。
在确定右基准网格边线之后,可以根据右基准网格边线与偏转轴线的距离和右基准发型线与偏转轴线的距离的比值,确定右侧变形系数。在确定右基准网格边线之后,可以采用获取的目标发型函数对右基准网格边线进行变形,以得到右基准发型线。之后,可以采用右侧变形系数,对位于偏转轴线右侧的、与偏转轴线平行的目标网格边线进行变形,得到人脸右侧的发型线;对位于偏转轴线右侧的、与目标网格边线对应的网格中的像素点进行采样,得到与人脸右侧的发型线对应的变形后的网格中的像素点。
可以理解的是,对于偏转轴线右侧的发型线的处理过程,与采用左侧变形系数,对位于偏转轴线左侧的、与偏转轴线平行的目标网格边线进行变形,得到人脸左侧的发型线的过程类似,在此不再赘述。
在本公开的实施例中,图8(a)和图8(b)中的网格只是示意,并不能理解为该网格的数量就如图8(a)和图8(b)中的网格的数量一样,在实际使用中,网格的数量可以达到0~255之间,具体可以根据发型变形的精度进行确定,在此不再赘述。
需要说明的是,步骤901~步骤907的执行顺序可以为:执行步骤901、步骤902、步骤903、步骤904和步骤905,以及同时执行步骤906和步骤907,得到用于变换发型的方案。或者是,先执行步骤901、步骤902、步骤903、步骤906和步骤907,之后执行步骤904和步骤905,以得到用于变换发型的方案。或者是,执行步骤901、步骤902、步骤903、步骤904和步骤905,同时右侧不做变动或采用如图2所示的实施例的方法进行变动,从而得到用于变换发型的方案;或者,执行步骤901、步骤902、步骤903、步骤906和步骤907,同时左侧不做变动或采用如图2所示的实施例的方法进行变动,从而得到用于变换发型的方案,都可以纳入本公开的技术方案。本公开对此不做限定。
在本公开的实施例中,在对网格的边线进行变形之后,采用左侧变形系数(即,左基准网格边线与偏转轴线的距离和左基准发型线与偏转轴线的距离的比值)以实现对位于偏转轴线左侧的、与偏转轴线平行的目标网格边线进行变形;对位于偏转轴线左侧的、与目标网格边线对应的网格中的像素点进行采样,得到与人脸左侧的发型线对应的变形后的网格中的像素点;以及采用右侧变形系数(即,右基准网格边线与偏转轴线的距离和右基准发型线与偏转轴线的距离的比值)以实现对位于偏转轴线右侧的、与偏转轴线平行的目标网格边线进行变形;对位于偏转轴线右侧的、与目标网格边线对应的网格中的像素点进行采样,得到与人脸右侧的发型线对应的变形后的网格中的像素点,从而能够在网格线变形的基础上,协调点的像素的变形,保证网格的边线和网格的边线上点的像素同步变形,进而使得后续确定的人脸图像中变形后的发型不失真。
本领域技术人员可以理解的是,相对于现有技术中基于男变女视频特效玩法由CycleGAN图像翻译架构生成,网络架构为保证稳定的发型输出,使用完全一致、鲁棒的发型输入做训练,导致最终生产的女性脸发型形状单一、过于简单且无法操作无法修改的问题,采用上述实施例中用于变换发型的方法,所生成的人脸发型丰富多样,还可以解决增强现实人脸性别转变应用中由于训练样本过少所导致的男变女效果中变形后女性发型单一、过简、不可控问题。具体地,本公开提供的技术方案,可以采用后处理方式对CycleGAN生成的图像进行加工,从而根据事先定制的发型形状,实时稳定的将CycleGAN生成的图像变形为目标发型图像。
如图10所示,本实施例的用于变换发型的装置1000可以包括:第一确定模块1001、网格构建模块1002、网格变形模块1003和第二确定模块1004。其中,第一确定模块,被配置为根据获取的人脸图像的人脸关键点信息,确定人脸包围盒;网格构建模块1002,被配置为根据所述人脸包围盒构建网格;网格变形模块1003,被配置为采用获取的目标发型函数对所述网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线;第二确定模块1004,被配置为根据所述变形后的网格曲线,确定所述人脸图像中变形后的发型。
在本实施例中,用于变换发型的装置1000中:第一确定模块1001、网格构建模块1002、网格变形模块1003和第二确定模块1004的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-204的相关说明,在此不再赘述。其中,第一确定模块1001和第二确定模块1012可以为同一模块,或者不同的两个模块。
在本实施例的一些可选的实现方式中,人脸包围盒包括偏转轴线,发型的至少部分网格的边线包括与偏转轴线平行的目标网格边线,网格变形模块1003进一步被配置为:将目标网格边线上点的坐标输入目标发型函数中,得到变形后的目标网格边线;其中,点的坐标是与偏转轴线平行的坐标轴对应的坐标;基于变形后的目标网格边线,确定变形后的网格曲线。
在本实施例的一些可选的实现方式中,网格变形模块1003进一步被配置为:检测偏转轴线与标准线之间的距离是否不为零;偏转轴线为人脸关键点信息中两只眼睛的中心到鼻尖的连线所对应的网格边线;标准线为人脸图像中的人脸为正面人脸时人脸关键点信息中两只眼睛的中心到鼻尖的连线所对应的网格边线;若距离不为零,则将目标网格边线中与偏转轴线平行、处于偏转轴线左侧且距离偏转轴线最远的目标网格边线,确定为左基准网格边线;采用目标发型函数对左基准网格边线进行变形,得到左基准发型线;第二确定模块1004,进一步被配置为将左基准网格边线与偏转轴线的距离和左基准发型线与偏转轴线的距离的比值,作为左侧变形系数;采用左侧变形系数,对位于偏转轴线左侧的、与偏转轴线平行的目标网格边线进行变形,得到人脸左侧的发型线;对位于偏转轴线左侧的、与目标网格边线对应的网格中的像素点进行采样,得到与人脸左侧的发型线对应的变形后的网格中的像素点。
在本实施例的一些可选的实现方式中,该网格变形模块1003进一步被配置为:若距离不为零,则将目标网格边线中与偏转轴线平行、处于偏转轴线右侧且距离偏转轴线最远的目标网格边线,确定为右基准网格边线;采用目标发型函数对右基准网格边线进行变形,得到右基准发型线;第二确定模块1004,进一步被配置为:将右基准网格边线与偏转轴线的距离和右基准发型线与偏转轴线的距离的比值,作为右侧变形系数;采用右侧变形系数,对位于偏转轴线右侧的、与偏转轴线平行的目标网格边线进行变形,得到人脸右侧的发型线;对位于偏转轴线右侧的、与目标网格边线对应的网格中的像素点进行采样,得到与人脸右侧的发型线对应的变形后的网格中的像素点。
在本实施例的一些可选的实现方式中,该用于变换发型的装置还包括:
发型获取模块(图中未示出),被配置为获取目标发型曲线;
发型采样模块(图中未示出),被配置为对目标发型曲线进行采样,得到多个采样点;
函数拟合模块(图中未示出),被配置为对多个采样点进行拟合,得到目标发型函数。
在本实施例的一些可选的实现方式中,函数拟合,进一步被配置为:对多个采样点,根据三次B样条进行拟合,得到目标发型函数。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图11所示,是根据本公开实施例的用于变换发型的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图11所示,该电子设备包括:一个或多个处理器1101、存储器1102,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图11中以一个处理器1101为例。
存储器1102即为本公开所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本公开所提供的用于变换发型的方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的用于变换发型的方法。
存储器1102作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本公开实施例中的用于变换发型的方法对应的程序指令/模块(例如,附图10所示的确定模块1001、构建模块1002和处理模块1003)。处理器1101通过运行存储在存储器1102中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于变换发型的方法。
存储器1102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据图像处理的电子设备的使用所创建的数据等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1102可选包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至图像处理的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于变换发型的方法的电子设备还可以包括:输入装置1103和输出装置1104。处理器1101、存储器1102、输入装置1103和输出装置1104可以通过总线或者其他方式连接,图11中以通过总线连接为例。
输入装置1103可接收输入的数字或字符信息,以及产生与图像处理的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置Y04可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。
本公开上述实施例的用于变换发型的方法和装置,首先根据获取的人脸图像的人脸关键点信息,确定人脸包围盒;之后,根据人脸包围盒构建网格;之后,采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线;最后,采用获取的目标发型函数对网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线。这一过程中,与背景技术中对待变换发型进行仿射变换的处理或采用人工的方式对CycleGAN的训练数据集进行大批量修改的处理导致变换后的发型失真相比,由于采用了目标发型函数对网格中包括发型的至少部分网格的边线进行变形,该方法可以针对网格中的发型的至少部分的网格的边线进行变形,无需对人脸图像整体进行变换且输出准确,使得人脸图像中变形后的发型不失真。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (10)

1.一种用于变换发型的方法,包括:
根据获取的人脸图像的人脸关键点信息,确定人脸包围盒,其中,所述人脸包围盒包括偏转轴线;
根据所述人脸包围盒构建网格;
采用获取的目标发型函数对所述网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线,包括:检测所述偏转轴线与标准线之间的距离是否不为零;所述偏转轴线为所述人脸关键点信息中两只眼睛的中心到鼻尖的连线所对应的网格边线;所述标准线为人脸图像中的人脸为正面人脸时人脸关键点信息中两只眼睛的中心到鼻尖的连线所对应的网格边线,所述发型的至少部分网格的边线包括与所述偏转轴线平行的目标网格边线;若所述距离不为零,则执行将所述目标网格边线中与所述偏转轴线平行、处于所述偏转轴线目标侧且距离所述偏转轴线最远的目标网格边线,确定为目标侧基准网格边线,采用所述目标发型函数对目标侧基准网格边线进行变形,得到目标侧基准发型线,其中,目标侧为左侧和/或右侧;
将所述目标侧基准网格边线与所述偏转轴线的距离和所述目标侧基准发型线与所述偏转轴线的距离的比值,作为目标侧变形系数,采用所述目标侧变形系数,对位于所述偏转轴线目标侧的、与所述偏转轴线平行的目标网格边线进行变形,得到所述人脸目标侧的发型线,对位于所述偏转轴线目标侧的、与所述目标网格边线对应的网格中的像素点进行采样,得到与所述人脸目标侧的发型线对应的变形后的网格中的像素点。
2.根据权利要求1所述的方法,其中,所述采用获取的目标发型函数对所述网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线,包括:
将所述目标网格边线上点的坐标输入所述目标发型函数中,得到变形后的目标网格边线;其中,点的坐标是与所述偏转轴线平行的坐标轴对应的坐标;
基于所述变形后的目标网格边线,确定所述变形后的网格曲线。
3.根据权利要求1所述的方法,其中,所述目标发型函数基于以下步骤确定:
获取目标发型曲线;
对所述目标发型曲线进行采样,得到多个采样点;
对所述多个采样点进行拟合,得到所述目标发型函数。
4.根据权利要求3所述的方法,其中,所述对所述多个采样点进行拟合,得到所述目标发型函数,包括:
对所述多个采样点,根据三次B样条进行拟合,得到所述目标发型函数。
5.一种用于变换发型的装置,包括:
第一确定模块,被配置为根据获取的人脸图像的人脸关键点信息,确定人脸包围盒,其中,所述人脸包围盒包括偏转轴线;
网格构建模块,被配置为根据所述人脸包围盒构建网格;
网格变形模块,被配置为采用获取的目标发型函数对所述网格中包括发型的至少部分网格的边线进行变形,得到变形后的网格曲线,进一步被配置成:检测所述偏转轴线与标准线之间的距离是否不为零;所述偏转轴线为所述人脸关键点信息中两只眼睛的中心到鼻尖的连线所对应的网格边线;所述标准线为人脸图像中的人脸为正面人脸时人脸关键点信息中两只眼睛的中心到鼻尖的连线所对应的网格边线,所述发型的至少部分网格的边线包括与所述偏转轴线平行的目标网格边线;若所述距离不为零,则执行将所述目标网格边线中与所述偏转轴线平行、处于所述偏转轴线目标侧且距离所述偏转轴线最远的目标网格边线,确定为目标侧基准网格边线,采用所述目标发型函数对目标侧基准网格边线进行变形,得到目标侧基准发型线,其中,目标侧为左侧和/或右侧;
第二确定模块,被配置为将所述目标侧基准网格边线与所述偏转轴线的距离和所述目标侧基准发型线与所述偏转轴线的距离的比值,作为目标侧变形系数,采用所述目标侧变形系数,对位于所述偏转轴线目标侧的、与所述偏转轴线平行的目标网格边线进行变形,得到所述人脸目标侧的发型线,对位于所述偏转轴线目标侧的、与所述目标网格边线对应的网格中的像素点进行采样,得到与所述人脸目标侧的发型线对应的变形后的网格中的像素点。
6.根据权利要求5所述的装置,其中,
所述网格变形模块进一步被配置为:
将所述目标网格边线上点的坐标输入所述目标发型函数中,得到变形后的目标网格边线;其中,点的坐标是与所述偏转轴线平行的坐标轴对应的坐标;
基于所述变形后的目标网格边线,确定所述变形后的网格曲线。
7.根据权利要求5所述的装置,其中,所述装置还包括:
发型获取模块,被配置为获取目标发型曲线;
发型采样模块,被配置为对所述目标发型曲线进行采样,得到多个采样点;
函数拟合模块,被配置为对所述多个采样点进行拟合,得到所述目标发型函数。
8.根据权利要求7所述的装置,其中,所述函数拟合模块,进一步被配置为:
对所述多个采样点,根据三次B样条进行拟合,得到所述目标发型函数。
9. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的方法。
CN202010758598.6A 2020-07-31 2020-07-31 用于变换发型的方法、装置、设备以及存储介质 Active CN111899159B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202010758598.6A CN111899159B (zh) 2020-07-31 2020-07-31 用于变换发型的方法、装置、设备以及存储介质
US17/202,893 US11631154B2 (en) 2020-07-31 2021-03-16 Method, apparatus, device and storage medium for transforming hairstyle
EP21163243.5A EP3855386B1 (en) 2020-07-31 2021-03-17 Method, apparatus, device and storage medium for transforming hairstyle and computer program product
JP2021044705A JP7418370B2 (ja) 2020-07-31 2021-03-18 髪型を変換するための方法、装置、デバイス及び記憶媒体
KR1020210037178A KR102488517B1 (ko) 2020-07-31 2021-03-23 헤어스타일 변환 방법, 장치, 기기 및 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010758598.6A CN111899159B (zh) 2020-07-31 2020-07-31 用于变换发型的方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN111899159A CN111899159A (zh) 2020-11-06
CN111899159B true CN111899159B (zh) 2023-12-22

Family

ID=73184103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010758598.6A Active CN111899159B (zh) 2020-07-31 2020-07-31 用于变换发型的方法、装置、设备以及存储介质

Country Status (5)

Country Link
US (1) US11631154B2 (zh)
EP (1) EP3855386B1 (zh)
JP (1) JP7418370B2 (zh)
KR (1) KR102488517B1 (zh)
CN (1) CN111899159B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112446821B (zh) * 2020-11-24 2023-01-24 北京达佳互联信息技术有限公司 一种图像处理方法、装置及电子设备
CN112819921B (zh) * 2020-11-30 2023-09-26 北京百度网讯科技有限公司 用于改变人物的发型的方法、装置、设备和存储介质
CN114373057A (zh) * 2021-12-22 2022-04-19 聚好看科技股份有限公司 一种头发与头部模型的匹配方法及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014117447A1 (zh) * 2013-02-02 2014-08-07 浙江大学 一种图像与视频的虚拟发型建模方法
CN104915981A (zh) * 2015-05-08 2015-09-16 寇懿 基于体感传感器的三维立体发型设计方法
CN107274493A (zh) * 2017-06-28 2017-10-20 河海大学常州校区 一种基于移动平台的三维虚拟试发型人脸重建方法
WO2018084241A1 (ja) * 2016-11-07 2018-05-11 らしさ・ドット・コム株式会社 ヘアスタイルシミュレーション装置、ヘアスタイルシミュレーション方法、及びコンピュータプログラム
CN109410315A (zh) * 2018-08-31 2019-03-01 南昌理工学院 发型设计方法、装置、可读存储介质及智能终端
KR20190043925A (ko) * 2017-10-19 2019-04-29 주식회사 버츄어라이브 헤어 스타일 시뮬레이션 서비스를 제공하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060171A (en) * 1989-07-27 1991-10-22 Clearpoint Research Corporation A system and method for superimposing images
JP2002083318A (ja) 2000-09-07 2002-03-22 Sony Corp 画像処理装置および方法、並びに記録媒体
JP5656603B2 (ja) 2010-12-14 2015-01-21 キヤノン株式会社 情報処理装置、情報処理方法、およびそのプログラム
JP5422033B1 (ja) 2012-11-02 2014-02-19 株式会社 資生堂 ヘアシミュレーション装置、ヘアシミュレーション方法、及びヘアシミュレーションプログラム
US10796480B2 (en) * 2015-08-14 2020-10-06 Metail Limited Methods of generating personalized 3D head models or 3D body models
US10922716B2 (en) * 2017-03-09 2021-02-16 Adobe Inc. Creating targeted content based on detected characteristics of an augmented reality scene
KR20230065365A (ko) 2018-05-07 2023-05-11 구글 엘엘씨 얼굴의 PD(perspective distortion) 보정

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014117447A1 (zh) * 2013-02-02 2014-08-07 浙江大学 一种图像与视频的虚拟发型建模方法
CN104915981A (zh) * 2015-05-08 2015-09-16 寇懿 基于体感传感器的三维立体发型设计方法
WO2018084241A1 (ja) * 2016-11-07 2018-05-11 らしさ・ドット・コム株式会社 ヘアスタイルシミュレーション装置、ヘアスタイルシミュレーション方法、及びコンピュータプログラム
CN107274493A (zh) * 2017-06-28 2017-10-20 河海大学常州校区 一种基于移动平台的三维虚拟试发型人脸重建方法
KR20190043925A (ko) * 2017-10-19 2019-04-29 주식회사 버츄어라이브 헤어 스타일 시뮬레이션 서비스를 제공하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
CN109410315A (zh) * 2018-08-31 2019-03-01 南昌理工学院 发型设计方法、装置、可读存储介质及智能终端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
发带头发模型的快速渲染及发型控制;周一飞 等;计算机工程与应用;第49卷(第20期);全文 *

Also Published As

Publication number Publication date
US11631154B2 (en) 2023-04-18
US20210201441A1 (en) 2021-07-01
JP7418370B2 (ja) 2024-01-19
CN111899159A (zh) 2020-11-06
EP3855386B1 (en) 2023-09-20
KR20210039996A (ko) 2021-04-12
EP3855386A2 (en) 2021-07-28
KR102488517B1 (ko) 2023-01-13
EP3855386A3 (en) 2021-09-08
JP2022003505A (ja) 2022-01-11

Similar Documents

Publication Publication Date Title
JP7227292B2 (ja) 仮想アバター生成方法および装置、電子機器、記憶媒体並びにコンピュータプログラム
US11587300B2 (en) Method and apparatus for generating three-dimensional virtual image, and storage medium
US11748934B2 (en) Three-dimensional expression base generation method and apparatus, speech interaction method and apparatus, and medium
CN111899159B (zh) 用于变换发型的方法、装置、设备以及存储介质
KR20210103435A (ko) 가상 객체 이미지 합성 방법, 장치, 전자 기기 및 저장 매체
WO2017193906A1 (zh) 一种图像处理方法及处理系统
CN111860167B (zh) 人脸融合模型获取及人脸融合方法、装置及存储介质
EP3992919B1 (en) Three-dimensional facial model generation method and apparatus, device, and medium
CN111739167B (zh) 3d人头重建方法、装置、设备和介质
CN111294665B (zh) 视频的生成方法、装置、电子设备及可读存储介质
EP4002290A1 (en) Three-dimensional facial model generation method and apparatus, computer device and storage medium
CN112614213A (zh) 人脸表情确定方法、表情参数确定模型、介质及设备
CN111968203B (zh) 动画驱动方法、装置、电子设备及存储介质
CN111754431B (zh) 一种图像区域替换方法、装置、设备及存储介质
CN116051729B (zh) 三维内容生成方法、装置和电子设备
CN111599002A (zh) 用于生成图像的方法和装置
CN114998433A (zh) 位姿计算方法、装置、存储介质以及电子设备
CN113658035B (zh) 脸部变换方法、装置、设备、存储介质以及产品
CN111523467B (zh) 人脸跟踪方法和装置
CN116309983B (zh) 虚拟人物模型的训练方法、生成方法、装置和电子设备
CN115775300A (zh) 人体模型的重建方法、人体重建模型的训练方法及装置
CN113658307A (zh) 图像处理方法及装置
Peng et al. Geometrical consistency modeling on b-spline parameter domain for 3d face reconstruction from limited number of wild images
CN116385643B (zh) 虚拟形象生成、模型的训练方法、装置及电子设备
CN117422831A (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
GR01 Patent grant