CN111652978B - 一种网格的生成方法、装置、电子设备和存储介质 - Google Patents

一种网格的生成方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN111652978B
CN111652978B CN201910563076.8A CN201910563076A CN111652978B CN 111652978 B CN111652978 B CN 111652978B CN 201910563076 A CN201910563076 A CN 201910563076A CN 111652978 B CN111652978 B CN 111652978B
Authority
CN
China
Prior art keywords
key points
point
face
image data
grid
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
CN201910563076.8A
Other languages
English (en)
Other versions
CN111652978A (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.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya 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 Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN201910563076.8A priority Critical patent/CN111652978B/zh
Publication of CN111652978A publication Critical patent/CN111652978A/zh
Application granted granted Critical
Publication of CN111652978B publication Critical patent/CN111652978B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例公开了一种网格的生成方法、装置、电子设备和存储介质,该方法包括:获取图像数据;识别所述图像数据中的人脸关键点;确定位置相邻的人脸关键点,作为第一目标关键点;在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。一方面,在对人脸关键点进行调整时,可连同调整网格,网格内的像素点的调整较为均匀,使得人脸的调整更加平滑,减少变形的情况,避免人脸失真,另一方面,网格可同时用于人脸调整、渲染操作,复用划分网格的操作,可降低运算量,并且,网格的绘制及其调整相比于神经网络等深度学习更为简单,可提高处理速度、减少处理时间,适用于直播等对实时性要求较高的场景。

Description

一种网格的生成方法、装置、电子设备和存储介质
技术领域
本发明实施例涉及图像处理的技术,尤其涉及一种网格的生成方法、装置、电子设备和存储介质。
背景技术
随着社会的发展,诸如手机、平板电脑等电子设备已经广泛应用在学习、娱乐、工作等方面,扮演着越来越重要的角色。
在很多电子设备中配置有摄像头,可用于拍照、录像、直播等操作。
若图像数据包含人脸,用户经常会对该人脸进行调整,如美颜、变脸等。
目前,通常使用如下两种调整方式:
第一种,识别人脸的人脸关键点,直接对人脸关键点进行调整,从而实现调整眼睛大小、调整脸部大小等效果。
但是,直接对人脸关键点进行调整,也会对位于该人脸关键点周围的人脸数据进行调整,这些人脸数据调整较为粗糙,容易出现变形,导致人脸失真。
第二种,使用神经网络等深度学习调整人脸。
但是,深度学习复杂度高,处理速度慢,处理时间较长,导致图像数据显示存在较为明显的延时,在直播等对实时性要求较高的场景中,性能存在瓶颈。
发明内容
本发明实施例提供一种网格的生成方法、装置、电子设备和存储介质,以解决兼顾人脸调整的质量与效率的问题。
第一方面,本发明实施例提供了一种网格的生成方法,包括:
获取图像数据;
识别所述图像数据中的人脸关键点;
确定位置相邻的人脸关键点,作为第一目标关键点;
在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
第二方面,本发明实施例还提供了一种网格的生成装置,包括:
图像数据获取模块,用于获取图像数据;
人脸关键点识别模块,用于识别所述图像数据中的人脸关键点;
第一目标关键点确定模块,用于确定位置相邻的人脸关键点,作为第一目标关键点;
第一连接模块,用于在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面所述的网格的生成方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现第一方面所述的网格的生成方法。
在本发明实施例中,识别图像数据中的人脸关键点,确定位置相邻的人脸关键点,作为第一目标关键点,在图像数据中以第一目标关键点作为顶点、连接第一目标关键点,获得网格,一方面,在对人脸关键点进行调整时,可连同调整网格,网格内的像素点的调整较为均匀,使得人脸的调整更加平滑,减少变形的情况,避免人脸失真,另一方面,网格可同时用于人脸调整、渲染操作,复用划分网格的操作,可降低运算量,并且,网格的绘制及其调整相比于神经网络等深度学习更为简单,可提高处理速度、减少处理时间,适用于直播等对实时性要求较高的场景。
附图说明
图1为本发明实施例一提供的一种网格的生成方法的流程图;
图2A至图2D为本发明实施例提供的一种人脸关键点的示例图;
图3A至图3C为本发明实施例提供的一种网格顺序的示例图;
图4为本发明实施例提供的一种相邻人脸关键点的示例图;
图5A至图5B为本发明实施例提供的一种维诺图的示例图;
图6A至图6B为本发明实施例提供的一种网格的示例图;
图7是本发明实施例二提供的一种网格的生成方法的流程图;
图8是本发明实施例三提供的一种网格的生成方法的流程图;
图9为本发明实施例提供的一种新增人脸关键点的示例图;
图10为本发明实施例四提供的一种网格的生成装置的结构示意图;
图11为本发明实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种网格的生成方法的流程图,本实施例可适用于基于人脸关键点构建网格的情况,该方法可以由网格的生成装置来执行,该装置可以由软件和/或硬件实现,可配置在电子设备中,可以包括手机、平板、PDA(personal digitalassistant,个人数字助理)、智能穿戴设备(如智能眼镜、智能手表)等移动终端,也可以包括服务器、工作站、智能电视、个人电脑等非移动终端,该方法具体包括如下步骤:
S101、获取图像数据。
在具体实现中,电子设备的操作系统可以包括Android(安卓)、IOS、Windows等等。
在这些操作系统中支持运行可进行图像处理的应用,如直播应用、图像编辑应用、相机应用、即时通讯工具、图库应用,等等。
诸如图像编辑应用、即时通讯工具、图库应用等应用,其UI(User Interface,用户界面)可提供导入的控件,用户可通过触控或鼠标等外设操作该导入的控件,选择本地存储的图像数据(以缩略图或路径表示),也可以选择网络存储的图像数据(以URL(UniformResource Locators,统一资源定位器)表示),使得应用获取该图像数据。
诸如直播应用、图像编辑应用、相机应用、即时通讯工具等应用,其UI可提供拍照、录像的控件,用户可通过触控或鼠标等外设操作该拍照、录像的控件,通知应用调用摄像头采集图像数据。
S102、识别所述图像数据中的人脸关键点。
图像数据中具有人脸数据,所谓人脸数据,可以指图像数据中用于表示人脸的像素点。
在本发明实施例中,应用对该图像数据进行人脸检测,识别该图像数据中包含的人脸关键点。
其中,人脸检测也称为人脸关键点检测、定位或者人脸对齐,是指给定人脸数据,定位出人脸面部的关键区域位置,包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等等。
需要说明的是,人脸关键点的数量,可以由本领域技术人员根据实际情况设置,对于静态的图像处理,实时性要求较低,可以检测较为稠密的人脸关键点,如1000个,除了能定位人脸重要特征点之外,还能准确的描述出五官的轮廓;对于直播等,实时性要求较高,可以检测较为稀疏的人脸关键点,如68、81、106个,定位人脸上比较明显且重要的特征点(如眼睛关键点、眉毛关键点、鼻子关键点、嘴巴关键点、轮廓关键点等),以降低处理量、减少处理时间,等等,本发明实施例对此不加以限制。
为使本领域技术人员更好地理解本发明实施例,在本发明实施例中,以较为稀疏的人脸关键点作为一种示例进行说明。
例如,对图2A所示的图像数据进行人脸检测,可以输出如图2B的68个人脸关键点,也可以输出如图2C所示的106个人脸关键点。
S103、确定位置相邻的人脸关键点,作为第一目标关键点。
S104、在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
网格(Mesh),代表单个的可绘制实体,其顶点至少包括人脸关键点,即以人脸关键点作为网格的至少部分顶点,将图像数据进行网格化,划分为多个(两个及两个以上)网格。
所谓网格化,是将凹多边形或有边相交的多边形划分成凸多边形,如三角形,以便被OpenGL等API或渲染引擎渲染。
需要说明的是,网格之间是有序的,从而形成网格序列,使得符合OpenGL等API或渲染引擎的渲染规范。
例如,对于OpenGL,一般情况下有三种绘制一系列三角形(网格):
1、GL_TRIANGLES
每三个点一组画一个三角形,三角形之间是独立的。
如图3A所示,第一个三角形使用顶点v0、v1、v2,第二个三角形使用顶点v3、v4、v5,以此类推。
2、GL_TRIANGLE_STRIP
从第三个点开始,每点与前面的两个点组合画一个三角形,即线性连续三角形串:
如图3B所示,第一个三角形,顶点排列顺序是v0,v1,v2;第二个三角形,顶点排列顺序是v2,v1,v3;第三个三角形,顶点排列顺序是v2,v3,v4;第四个三角形,顶点排列顺序是v4,v3,v8
这个顺序是为了保证三角形按照相同的方向绘制的,使这个三角形的序列能够正确形成表面的一部分。
3、GL_TRIANGLE_FAN。
从第三个点开始,每点与前一个点和第一个点组合画一个三角形,即扇形连续三角形。
如图3C所示,第一个三角形的顶点排列顺序是v2,v1,v0,第二个三角形的顶点排列顺序是v3,v2,v0,第一个三角形的顶点排列顺序是v4,v3,v0
在本发明实施例中,对于位置相邻的两个人脸关键点,可作为一对第一目标关键点,依次以第一目标关键点作为网格的顶点、连接该对第一目标关键点,则可以生成网格。
在一种检测位置相邻的方式中,可通过定义法(Intersect of Halfplanes)、增量(incremental)算法、分治法、plane sweep算法等方式,将包含人脸关键点的图像数据转换为维诺图(Voronoi图)。
维诺图,又称泰森多边形或Dirichlet图,它包括一组由连接两邻点直线的垂直平分线组成的连续多边形(又称单元cell)。
在维诺图中,任意两个人脸关键点p和q之间的欧氏距离,记作dist(p,q)。
设P={p1,p2,…,pn}为平面上任意n个互异的人脸关键点,这些人脸关键点也就是基点。所谓P对应的Voronoi图,就是平面的一个子区域划分——整个平面因此被划分为n个单元,它们具有这样的性质:
任一人脸关键q位于人脸关键pi所对应的单元中,当且仅当对于任何的pj∈Pj,j≠i,都有dist(q,pi)<dist(q,pj)。此时,将与P对应的Voronoi图记作Vor(P)。
“Vor(P)”或者“Voronoi图”所指示是组成该子区域划分的边和顶点。在Vor(P)中,与基点pi相对应的单元记作V(pi)——称作与pi相对应的Voronoi单元。
在本发明实施例中,维诺图包括多个单元,每个单元包含一个人脸关键点,该单元具有多条边,此时,可确定位于同一条边两侧的人脸关键点位置相邻,将位于同一条边两侧的人脸关键点连接,则可生成网格。
例如,参见图4,将图像数据中转换为维诺图,图4显示了部分人脸关键点(黑点)和部分单元的边(实线)。
其中,在单元400中,边401两侧的人脸关键点411与人脸关键点412相邻,可连接人脸关键点411与人脸关键点412,同理,连接人脸关键点411与人脸关键点413,以及,连接人脸关键点413与人脸关键点412,从而生成网格(虚线边)420。
进一步地,图2B所示的图像数据,包含68个人脸关键点,可转换为如图5A所示的维诺图,从而确定位置相邻的人脸关键点,按照既定的顺序连接位置相邻的人脸关键点,可获得如图6A所示的网格;图2C所示的图像数据,包含106个人脸关键点,可转换为如图5B所示的维诺图,从而确定位置相邻的人脸关键点,按照既定的顺序连接位置相邻的人脸关键点,可获得如图6B所示的网格。
进一步而言,电子设备中用于渲染2D矢量图形的应用程序编程接口(API)或渲染引擎包括OpenGL(Open Graphics Library,开放图形库)、OpenGL ES(OpenGL forEmbedded Systems,用于嵌入式系统的OpenGL)、Metal、Valkan、U3D、UE4等等。
调用这些API或渲染引擎,可按照顺序绘制每个网格,从而在屏幕显示该图像数据。
以OpenGL ES作为示例讲解绘制网格的流程,此流程为可编程管线,具体包括如下操作:
1、VBO/VAO(Vertex Buffer/Arrays Objects,顶点缓冲区对象或顶点数组对象)
VBO/VAO是CPU提供给GPU的顶点信息,包括了顶点坐标、颜色(只是顶点的颜色,和纹理的颜色无关)、纹理坐标(用于纹理贴图)等。
2、VertexShader(顶点着色器)
顶点着色器是处理VBO/VAO提供的顶点信息的程序。VBO/VAO提供的每个顶点都执行一遍顶点着色器。Uniforms(一种变量类型)在每个顶点保持一致,Attribute每个顶点都不同(可以理解为输入顶点属性)。执行一次VertexShader输出一个Varying(可变变量)和gl_positon。
其中,顶点着色器的输入包括:
2.1、着色器程序:描述顶点上执行操作的顶点着色器程序源代码或者可执行文件
2.2、顶点着色器输入(或者属性):用顶点数组提供的每个顶点的数据
2.3、统一变量(uniform):顶点/片段着色器使用的不变数据
2.4、采样器(Samplers):代表顶点着色器使用纹理的特殊统一变量类型
其中,VertexShader就是顶点着色器编程可以操作的阶段,用于控制顶点坐标的转换过程,片段着色器控制着每个像素颜色的计算过程。
3、Primitive Assembly(图元装配):
顶点着色器下一个阶段是图元装配,图元(prmitive)是三角形、直线或者点等几何对象。这个阶段,把顶点着色器输出的顶点组合成图元。
将顶点数据根据Primitive(原始链接关系)还原出网格结构,网格由顶点和索引组成,在此阶段根据索引将顶点链接在一起,组成点、线、面三种不同的图元,之后就是对超出屏幕的三角形进行剪裁。
例如,某个三角形(网格)三个顶点其中一个点在屏幕的外面,另外两个点在屏幕里面,其实屏幕上看到的应该是个四边形,则可以将这个四边形切成2个小的三角形(网格)。
简而言之,将顶点着色器计算之后得到的点根据链接关系组成点、线、面(三角形)。
4、rasterization(光栅化)
光栅化是将图元转化为一组二维片段的过程,然后,这些片段由片段着色器处理(片段着色器的输入)。这些二维片段代表着可在屏幕上绘制的像素,用于从分配给每个图元顶点的顶点着色器输出生成每个片段值的机制称作插值。
图元装配后顶点可以理解成变为图形,光栅化时可以根据图形的形状,插值出那个图形区域的像素(纹理坐标v_texCoord、颜色等信息)。注意,此时的像素并不是屏幕上的像素,是不带有颜色的。接下来的片段着色器完成上色的工作。
5、FragmentShader(片段着色器)
片段着色器为片段(像素)上的操作实现了通用的可编程方法,光栅化输出的每个片段都执行一遍片段着色器,对光栅化阶段生成每个片段执行这个着色器,生成一个或多个(多重渲染)颜色值作为输出。
6、Per-Fragment Operations(逐片段操作)
在该阶段,每个片段都会执行下面的5个操作:
6.1、pixelOwnershipTest(像素归属测试)
确定帧缓冲区中位置(x,y)的像素是不是归当前上下文所有。
例如,如果一个显示帧缓冲区窗口被另一个窗口所遮蔽,则窗口系统可以确定被遮蔽的像素不属于此OpenGL的上下文,从而不显示这些像素。
6.2、ScissorTest(剪裁测试):
如果该片段位于剪裁区域外,则被抛弃。
6.3、StencilTest and DepthTest(模板和深度测试):
若片段着色器返回的形状不是模板中的形状,则舍弃。
若片段着色器返回的深度小于缓冲区中的深度,则舍弃。
6.4、Blending(混合):
将新生成的片段颜色值与保存在帧缓冲区的颜色值组合起来,产生新的RGBA(Red(红色)、Green(绿色)、Blue(蓝色)和Alpha的色彩空间)。
6.5、dithering(抖动):
在逐片段操作阶段的最后,片段要么被拒绝,要么在帧缓冲区(x,y)的某个位置写入片段的颜色,深度或者模板值。写入片段颜色,深度和模板值取决于弃用的相应写入掩码。写入掩码可以更精确的控制写入相关缓冲区的颜色、深度和模板值。例如:可以设置颜色缓冲区的写入掩码,使得任何红色值都不能被写入颜色缓冲区。
最后把产生的片段放到帧缓冲区(前缓冲区或后缓冲区或FBO(Frame BufferObject,帧缓冲对象))中,若不是FBO,则屏幕绘制缓冲区中的片段,产生屏幕上的像素。
在本发明实施例中,识别图像数据中的人脸关键点,确定位置相邻的人脸关键点,作为第一目标关键点,在图像数据中以第一目标关键点作为顶点、连接第一目标关键点,获得网格,一方面,在对人脸关键点进行调整时,可连同调整网格,网格内的像素点的调整较为均匀,使得人脸的调整更加平滑,减少变形的情况,避免人脸失真,另一方面,网格可同时用于人脸调整、渲染操作,复用划分网格的操作,可降低运算量,并且,网格的绘制及其调整相比于神经网络等深度学习更为简单,可提高处理速度、减少处理时间,适用于直播等对实时性要求较高的场景。
实施例二
图7为本发明实施例二提供的一种网格的生成方法的流程图,本实施例以前述实施例为基础,进一步增加以边缘点作为顶点划分网格、生成网格变量的操作,该方法具体包括如下步骤:
S701、获取图像数据。
S702、识别所述图像数据中的人脸关键点。
S703、确定位置相邻的人脸关键点,作为第一目标关键点。
S704、在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
S705、确定位于所述图像数据边缘上的点,作为边缘点。
S706、确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点。
S707、在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格。
人脸关键点组成的网格一般不能完全覆盖图像数据,此时,可在图像数据边缘上选取一些点,作为边缘点。
需要说明的是,为了方便运算,选取的边缘点对称。
例如,如图6A与图6B所示,选择图像数据的四个顶点、以及、每两个顶点之间的中点作为边缘点。
将边缘点及其相邻的人脸关键点作为一对第二目标关键点,依次以第二目标关键点作为网格的顶点、按照顺序连接该对第二目标关键点,则可以生成网格。
需要说明的是,边缘点与人脸关键点位置相邻的关系,可由本领域技术人员根据实际情况进行设置,本发明实施例对此不加以限制。
一般而言,人脸关键点中的眉毛关键点、轮廓关键点与边缘点相邻,边缘点的数量少于与其位置相邻的人脸关键点的数量。
例如,图2B所示的图像数据,包含68个人脸关键点、8个边缘点,25个人脸关键点与8个边缘点位置相邻,按照既定的顺序连接位置相邻的人脸关键点、边缘点,可获得如图6A所示的网格;图2C所示的图像数据,包含106个人脸关键点、8个边缘点,41个人脸关键点与8个边缘点位置相邻,按照既定的顺序连接位置相邻的人脸关键点、边缘点,可获得如图6B所示的网格。
需要说明的是,网格的顶点可同时包括人脸关键点、边缘点,与每个人脸关键点、每个边缘点位置相邻的点(可以是人脸关键点,也可以是边缘点)均已确定,此时,可既定的顺序连接各人脸关键点、边缘点,从而生成网格。
S708、按照顺序记录所述网格中各个顶点的编号,以将所述网格转换为网格变量。
在本发明实施例中,网格的顶点可以包括人脸关键点、也可以包括位于图像数据边缘上的边缘点。
对于每个网格中的各个顶点,可以按照一定的方式配置编号。
其中,边缘点的编号是预设的,人脸关键点的编号是在人脸检测时生成的,或者,基于人脸检测时生成的编号映射获得,并且、边缘点的编号与人脸关键点的编号互不重复。
例如,如图2D所示,人脸关键点共68个,情况如下:
轮廓关键点共17个,编号分别为1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17。
眉毛关键点共10个,编号分别为18、19、20、21、22、23、24、25、26、27。
鼻子关键点共9个,编号分别为28、29、30、31、32、33、34、35、36。
眼睛关键点共12个,编号分别为37、38、39、40、41、42、43、44、45、46、47、48。
嘴巴关键点共20个,编号分别为49、50、51、52、53、54、55、56、57、58、59、60、61、62、63、64、65、66、67、68。
边缘点共8个,编号分别为69、70、71、72、73、74、75、76。
因为人脸检测的方法是预先设定的,其输出的人脸关键点一般是固定的,并且,边缘点也一般是固定的,使得与每个人脸关键点、每个边缘点位置相邻的点(可以是人脸关键点,也可以是边缘点)均是固定的,即每个网格中顶点的顺序是固定的。
因此,可在首次(离线)将某帧图像数据按照某一方式划分为多个网格时,按照顺序记录每个网格中每个顶点(可以是人脸关键点,也可以是边缘点)的编号,此时,每个网格保留顶点的编号,作为网格变量。
对于其他(实时)图像数据,若按照相同的方式划分为网格,则可以将其点(可以是人脸关键点,也可以是边缘点)的编号与网格变量的编号进行匹配,若两者相同,则可以按照网格变量中限定的顺序连接该编号所表示的点(可以是人脸关键点,也可以是边缘点),从而将该图像数据划分为多个网格。
例如,如图2D所示,网格变量可以表示为(1,76,2)、(2,76,3)、(3,76,4)、(4,76,5),等等。
对于图2B所示的图像数据,编号为1、2的人脸关键点以及编号为76的边缘点,与其中一个网格变量中顶点的编号匹配成功,则可以按照其顺序连接人脸关键点、边缘点,从而组成一个网格(1,76,2)
在本发明实施例中,按照顺序记录网格中各个顶点的编号,以将网格转换为网格变量,后续在确定人脸关键点、边缘点的编号之后,则可以直接按照该编号在网格变量中的顺序连接,从而将图像数据划分为网格,无需重复确定位置相邻关系,大大提高了划分网格的速度,降低划分网格的耗时。
实施例三
图8为本发明实施例三提供的一种网格的生成方法的流程图,本实施例以前述实施例为基础,进一步增加以边缘点作为顶点划分网格、生成网格变量的操作,该方法具体包括如下步骤:
S801、获取图像数据。
S802、调用预置的人脸检测组件检测所述图像数据中的人脸关键点,作为原关键点。
在本发明实施例中,人脸关键点包括原关键点。
在具体实现中,人脸检测通常使用如下方法:
1、利用人工提取特征,如haar特征,使用特征训练分类器,使用分类器进行人脸检测。
2、从通用的目标检测算法中继承人脸检测,例如,利用Faster R-CNN来检测人脸。
3、使用级联结构的卷积神经网络,例如,Cascade CNN(级联卷积神经网络),MTCNN(Multi-task Cascaded Convolutional Networks,多任务卷积神经网络)。
这些实现人脸检测的方法可以集成在一个独立的人脸检测组件中,例如,SDK(Software Development Kit,软件开发工具包),该人脸检测组件作为应用的组装数据,应用可请求人脸检测组件对图像数据进行人脸检测,人脸检测组件检测到图像数据中的人脸关键点,并将人脸关键点返回应用,应用从而获得原关键点。
S803、确定位置相邻的人脸关键点,作为第一目标关键点。
S804、在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
S805、确定位于所述图像数据边缘上的点,作为边缘点。
S806、确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点。
S807、在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格。
在本发明实施例中,人脸关键点包括原关键点,可以确定与每个原关键点、每个边缘点相邻的点(可以是原关键点,也可以是边缘点),按照既定的顺序连接各原关键点、边缘点,从而生成网格。
S808、在所述图像数据中,基于所述原关键点新增人脸关键点,作为新关键点。
在某些业务场景中,如美颜,使用的人脸关键点超出了原关键点的范畴,为了避免对人脸检测组件进行修改,导致人脸检测组件不稳定,可以以原关键点作为基准,新增人脸关键点,新增的人脸关键点即为新关键点。
在一种新增人脸关键点的方式中,原关键点包括眼睛关键点(如2D所示的、编号为37-46的人脸关键点)、眉毛关键点(如2D所示的、编号为18-27的人脸关键点),新关键点包括额头关键点,即用于表示额头的人脸关键点。
一方面,可确定第一基准点,第一基准点位于两侧眉毛关键点之间,即该第一基准点可用于表示眉心。
另一方面,可确定第二基准点,第二基准点位于同侧眼睛关键点之间,即该第二基准点可用于表示瞳孔。
将第二基准点沿第一基准点映射,从而映射至人脸数据的额头处,获得额头关键点,作为新关键点。
一般情况下,额头关键点与第二基准点关于第一基准点对称,额头关键点到第一基准点的距离、与第二基准点到第一基准点的距离相等。
当然,在映射时,可进行衰减、偏移等处理,使得额头关键点与第二基准点并非关于第一基准点对称也可,本发明实施例对此不加以限制。
进一步地,额头关键点可能较为稀疏,可对额头关键点进行插值处理,在额头关键点之间(如中点位置)插入一个或多个新的额头关键点,作为新关键点。
例如,如图9所示,在两侧眉毛关键点之间的眉心,标定一个点,作为第一基准点901。
在每个眼睛的眼睛关键点之间的瞳孔,标定一个点,作为第二基准点902,共获得两个第二基准点902。
将两个第二基准点902沿第一基准点901映射,可在人脸数据的额头处获得额头关键点903。
在额头关键点903之间的中点位置插入一个新的额头关键点904。
当然,上述新增人脸关键点的方式只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他新增人脸关键点的方式,例如,在鼻子关键点与轮廓关键点之间增加脸颊关键点(即用于表示脸颊的人脸关键点),在嘴唇关键点与轮廓关键点之间增加下巴关键点(即用于表示下巴的人脸关键点),等等,本发明实施例对此不加以限制。另外,除了上述新增人脸关键点的方式外,本领域技术人员还可以根据实际需要采用其它新增人脸关键点的方式,本发明实施例对此也不加以限制。
S809、确定位置相邻的人脸关键点,作为第一目标关键点。
S810、在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
S811、确定位于所述图像数据边缘上的点,作为边缘点。
S812、确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点。
S813、在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格。
在本发明实施例中,人脸关键点包括原关键点、新关键点,可以确定与每个原关键点、新关键点、每个边缘点相邻的点(可以是原关键点、新关键点,也可以是边缘点),按照既定的顺序连接各原关键点、新关键点、边缘点,从而生成网格。
S814、按照顺序记录所述网格中各个顶点的编号,以将所述网格转换为网格变量。
在本发明实施例中,网格的顶点可以包括原关键点、新关键点、也可以包括位于图像数据边缘上的边缘点。
对于每个网格中的各个顶点,可以按照一定的方式配置编号。
因为人脸检测的方法、新增人脸关键点的方式是预先设定的,其输出的原关键点、新关键点一般是固定的,并且,边缘点也一般是固定的,使得与每个原关键点、每个新关键点、每个边缘点位置相邻的点(可以是原关键点、新关键点,也可以是边缘点)均是固定的,即每个网格中顶点的顺序是固定的。
因此,可在首次(离线)将某帧图像数据按照某一方式划分为多个网格时,按照顺序记录每个网格中每个顶点(可以是原关键点、新关键点,也可以是边缘点)的编号,此时,每个网格保留顶点的编号,作为网格变量。
对于其他(实时)图像数据,若按照相同的方式划分为网格,则可以将其点(可以是原关键点、新关键点,也可以是边缘点)的编号与网格变量的编号进行匹配,若两者相同,则可以按照网格变量中限定的顺序连接该编号所表示的点(可以是原关键点、新关键点,也可以是边缘点),从而将该图像数据划分为多个网格。
在本发明实施例中,人脸检测组件检测图像数据中的人脸关键点,作为原关键点,基于原关键点新增人脸关键点,作为新关键点,针对不同的业务可以灵活新增人脸关键点,从而执行相应的业务操作,避免对人脸检测组件进行修改、开发,降低了成本。
实施例四
图10为本发明实施例三提供的一种网格的生成装置的结构示意图,该装置具体可以包括如下模块:
图像数据获取模块1001,用于获取图像数据;
人脸关键点识别模块1002,用于识别所述图像数据中的人脸关键点;
第一目标关键点确定模块1003,用于确定位置相邻的人脸关键点,作为第一目标关键点;
第一连接模块1004,用于在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
在本发明的一个实施例中,所述第一目标关键点确定模块1003包括:
维诺图转换子模块,用于将所述图像数据转换为维诺图,所述维诺图包括多个单元,每个所述单元包含一个人脸关键点,所述单元具有多条边;
位置相邻确定子模块,用于确定位于同一条边两侧的人脸关键点位置相邻。
在本发明的一个实施例中,还包括:
边缘点确定模块,用于确定位于所述图像数据边缘上的点,作为边缘点;
第二目标关键点确定模块,用于确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点;
第二连接模块,用于在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格。
在本发明的一个实施例中,所述人脸关键点包括原关键点;
所述人脸关键点识别模块1002还用于:
调用预置的人脸检测组件检测所述图像数据中的人脸关键点,作为原关键点。
在本发明的一个实施例中,所述人脸关键点还包括新关键点;
所述装置还包括:
人脸关键点新增模块,用于在所述图像数据中,基于所述原关键点新增人脸关键点,作为新关键点,返回调用所述第一目标关键点确定模块1003,以及,所述第一连接模块1004。
在本发明实施例的一个示例中,所述原关键点包括眼睛关键点、眉毛关键点,所述新关键点包括额头关键点;
所述人脸关键点新增模块包括:
第一基准点确定子模块,用于确定第一基准点,所述第一基准点位于两侧所述眉毛关键点之间;
第二基准点确定子模块,用于确定第二基准点,所述第二基准点位于同侧所述眼睛关键点之间;
映射子模块,用于将所述第二基准点沿所述第一基准点映射,获得额头关键点,作为新关键点。
在本发明实施例的一个示例中,所述人脸关键点新增模块还包括:
插值子模块,用于在所述额头关键点之间插入新的额头关键点,作为新关键点。
在本发明的一个实施例中,还包括:
网格变量转换模块,用于按照顺序记录所述网格中各个顶点的编号,以将所述网格转换为网格变量。
本发明实施例所提供的网格的生成装置可执行本发明任意实施例所提供的网格的生成方法,具备执行方法相应的功能模块和有益效果。
实施例五
图11为本发明实施例五提供的一种电子设备的结构示意图。如图11所示,该电子设备包括处理器1100、存储器1101、通信模块1102、输入装置1103和输出装置1104;电子设备中处理器1100的数量可以是一个或多个,图11中以一个处理器1100为例;电子设备中的处理器1100、存储器1101、通信模块1102、输入装置1103和输出装置1104可以通过总线或其他方式连接,图11中以通过总线连接为例。
存储器1101作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本实施例中的一种网格的生成方法对应的模块(例如,如图10所示的一种网格的生成装置中的图像数据获取模块1001、人脸关键点识别模块1002、第一目标关键点确定模块1003和第一连接模块1004)。处理器1100通过运行存储在存储器1101中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的一种连接方法。
存储器1101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器1101可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器1101可进一步包括相对于处理器1100远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块1102,用于与显示屏建立连接,并实现与显示屏的数据交互。输入装置1103可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。
本实施例提供的一种电子设备,可执行本发明任一实施例提供的网格的生成方法,具体相应的功能和有益效果。
实施例六
本发明实施例六还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种网格的生成方法,该方法包括:
获取图像数据;
识别所述图像数据中的人脸关键点;
确定位置相邻的人脸关键点,作为第一目标关键点;
在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
当然,本发明实施例所提供的计算机可读存储介质,其计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的网格的生成方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述网格的生成装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种网格的生成方法,其特征在于,包括:
获取图像数据;
识别所述图像数据中的人脸关键点;
确定位置相邻的人脸关键点,作为第一目标关键点;
在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格;
所述方法,还包括:
确定位于所述图像数据边缘上的点,作为边缘点;
确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点;
在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格;
在所述识别所述图像数据中的人脸关键点后,还包括:对人脸关键点进行调整的同时连同调整网格。
2.根据权利要求1所述的方法,其特征在于,所述确定位置相邻的人脸关键点,作为第一目标关键点,包括:
将所述图像数据转换为维诺图,所述维诺图包括多个单元,每个所述单元包含一个人脸关键点,所述单元具有多条边;
确定位于同一条边两侧的人脸关键点位置相邻。
3.根据权利要求1所述的方法,其特征在于,所述人脸关键点包括原关键点;
所述识别所述图像数据中的人脸关键点,包括:
调用预置的人脸检测组件检测所述图像数据中的人脸关键点,作为原关键点。
4.根据权利要求3所述的方法,其特征在于,所述人脸关键点还包括新关键点;
所述方法还包括:
在所述图像数据中,基于所述原关键点新增人脸关键点,作为新关键点,返回执行所述确定位置相邻的人脸关键点,作为第一目标关键点,以及,所述在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
5.根据权利要求4所述的方法,其特征在于,所述原关键点包括眼睛关键点、眉毛关键点,所述新关键点包括额头关键点;
所述在所述图像数据中,基于所述原关键点新增人脸关键点,作为新关键点,包括:
确定第一基准点,所述第一基准点位于两侧所述眉毛关键点之间;
确定第二基准点,所述第二基准点位于同侧所述眼睛关键点之间;
将所述第二基准点沿所述第一基准点映射,获得额头关键点,作为新关键点。
6.根据权利要求5项所述的方法,其特征在于,所述在所述图像数据中,基于所述原关键点新增人脸关键点,作为新关键点,还包括:
在所述额头关键点之间插入新的额头关键点,作为新关键点。
7.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
按照顺序记录所述网格中各个顶点的编号,以将所述网格转换为网格变量。
8.一种网格的生成装置,其特征在于,包括:
图像数据获取模块,用于获取图像数据;
人脸关键点识别模块,用于识别所述图像数据中的人脸关键点;
第一目标关键点确定模块,用于确定位置相邻的人脸关键点,作为第一目标关键点;
第一连接模块,用于在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格;
所述装置还包括:
边缘点确定模块,用于确定位于所述图像数据边缘上的点,作为边缘点;
第二目标关键点确定模块,用于确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点;
第二连接模块,用于在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格;
在所述识别图像数据中的人脸关键点后,对人脸关键点进行调整的同时连同调整网格。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的网格的生成方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的网格的生成方法。
CN201910563076.8A 2019-06-26 2019-06-26 一种网格的生成方法、装置、电子设备和存储介质 Active CN111652978B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910563076.8A CN111652978B (zh) 2019-06-26 2019-06-26 一种网格的生成方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910563076.8A CN111652978B (zh) 2019-06-26 2019-06-26 一种网格的生成方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN111652978A CN111652978A (zh) 2020-09-11
CN111652978B true CN111652978B (zh) 2024-03-05

Family

ID=72347990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910563076.8A Active CN111652978B (zh) 2019-06-26 2019-06-26 一种网格的生成方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN111652978B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116580445B (zh) * 2023-07-14 2024-01-09 江西脑控科技有限公司 一种大语言模型人脸特征分析方法、系统及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012022403A (ja) * 2010-07-12 2012-02-02 Nippon Hoso Kyokai <Nhk> 画像処理装置およびコンピュータプログラム
CN102999929A (zh) * 2012-11-08 2013-03-27 大连理工大学 一种基于三角网格化的人物图像瘦脸处理方法
CN108961149A (zh) * 2017-05-27 2018-12-07 北京旷视科技有限公司 图像处理方法、装置和系统及存储介质
CN109583370A (zh) * 2018-11-29 2019-04-05 北京达佳互联信息技术有限公司 人脸结构网格模型建立方法、装置、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012022403A (ja) * 2010-07-12 2012-02-02 Nippon Hoso Kyokai <Nhk> 画像処理装置およびコンピュータプログラム
CN102999929A (zh) * 2012-11-08 2013-03-27 大连理工大学 一种基于三角网格化的人物图像瘦脸处理方法
CN108961149A (zh) * 2017-05-27 2018-12-07 北京旷视科技有限公司 图像处理方法、装置和系统及存储介质
CN109583370A (zh) * 2018-11-29 2019-04-05 北京达佳互联信息技术有限公司 人脸结构网格模型建立方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111652978A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN107771336B (zh) 基于颜色分布的图像中的特征检测和掩模
CN111652791B (zh) 人脸的替换显示、直播方法、装置、电子设备和存储介质
WO2022156640A1 (zh) 一种图像的视线矫正方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN114187633B (zh) 图像处理方法及装置、图像生成模型的训练方法及装置
CN111462205B (zh) 图像数据的变形、直播方法、装置、电子设备和存储介质
CN108985132B (zh) 一种人脸图像处理方法、装置、计算设备及存储介质
US11557086B2 (en) Three-dimensional (3D) shape modeling based on two-dimensional (2D) warping
CN111652794B (zh) 一种面部的调整、直播方法、装置、电子设备和存储介质
Onizuka et al. Landmark-guided deformation transfer of template facial expressions for automatic generation of avatar blendshapes
CN111652022B (zh) 图像数据的显示、直播方法、装置、电子设备和存储介质
CN111652978B (zh) 一种网格的生成方法、装置、电子设备和存储介质
CN113658035B (zh) 脸部变换方法、装置、设备、存储介质以及产品
CN111652795A (zh) 脸型的调整、直播方法、装置、电子设备和存储介质
CN110619670A (zh) 人脸互换方法、装置、计算机设备及存储介质
CN111652025B (zh) 一种人脸的处理、直播方法、装置、电子设备和存储介质
CN111651033B (zh) 一种人脸的驱动显示方法、装置、电子设备和存储介质
CN111652024B (zh) 一种人脸的显示、直播方法、装置、电子设备和存储介质
CN111652792B (zh) 图像的局部处理、直播方法、装置、设备和存储介质
CN111652807B (zh) 眼部的调整、直播方法、装置、电子设备和存储介质
CN115797661A (zh) 图像处理方法及装置、电子设备及存储介质
CN116977539A (zh) 图像处理方法、装置、计算机设备、存储介质和程序产品
CN107730577B (zh) 一种勾线渲染方法、装置、设备及介质
CN115578495A (zh) 特效图像绘制方法、装置、设备及介质
CN115965735A (zh) 纹理贴图的生成方法和装置
CN111652023B (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