CN111652025B - 一种人脸的处理、直播方法、装置、电子设备和存储介质 - Google Patents
一种人脸的处理、直播方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111652025B CN111652025B CN201910604814.9A CN201910604814A CN111652025B CN 111652025 B CN111652025 B CN 111652025B CN 201910604814 A CN201910604814 A CN 201910604814A CN 111652025 B CN111652025 B CN 111652025B
- Authority
- CN
- China
- Prior art keywords
- nose
- key points
- face
- point
- image data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
- G06V40/165—Detection; Localisation; Normalisation using facial parts and geometric relationships
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Oral & Maxillofacial Surgery (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例公开了一种人脸的处理、直播方法、装置、电子设备和存储介质。人脸的处理方法包括:获取图像数据,所述图像数据中具有人脸数据;将所述图像数据划分为多个网格,所述网格的顶点至少包括所述人脸数据的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;接收作用于所述鼻子的调整操作;响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;绘制调整之后的网格,以显示调整鼻子之后的图像数据。在对人脸关键点进行调整时,可连同调整网格,网格内的像素点的调整较为均匀,使得鼻子的调整更加平滑,减少变形的情况,避免人脸失真。
Description
技术领域
本发明实施例涉及图像处理的技术,尤其涉及一种人脸的处理、直播方法、装置、电子设备和存储介质。
背景技术
随着社会的发展,诸如手机、平板电脑等电子设备已经广泛应用在学习、娱乐、工作等方面,扮演着越来越重要的角色。
在很多电子设备中配置有摄像头,可用于拍照、录像、直播等操作。
若图像数据包含人脸,用户经常会对该人脸的鼻子进行调整。
目前,常见如下两种调整方式:
第一种,识别鼻子的人脸关键点,直接对鼻子的人脸关键点进行调整,从而实现调整鼻子。
但是,直接对鼻子的人脸关键点进行调整,也会对位于该鼻子的人脸关键点周围的人脸数据进行调整,这些人脸数据调整较为粗糙,容易出现变形,导致人脸失真。
第二种,使用神经网络等深度学习调整鼻子。
但是,深度学习复杂度高,处理速度慢,处理时间较长,导致图像数据显示存在较为明显的延时,在直播等对实时性要求较高的场景中,性能存在瓶颈。
发明内容
本发明实施例提供一种人脸的处理、直播方法、装置、电子设备和存储介质,以解决兼顾鼻子调整的质量与效率的问题。
第一方面,本发明实施例提供了一种人脸的处理方法,包括:
获取图像数据,所述图像数据中具有人脸数据;
将所述图像数据划分为多个网格,所述网格的顶点至少包括所述人脸数据的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
接收作用于所述鼻子的调整操作;
响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;
绘制调整之后的网格,以显示调整鼻子之后的图像数据。
第二方面,本发明实施例还提供了一种直播方法,包括:
采集视频数据,所述视频数据中包括图像数据,所述图像数据中具有主播用户;
将所述图像数据划分为多个网格,所述网格的顶点至少包括所述主播用户的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
接收作用于所述鼻子的调整操作;
响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;
绘制调整之后的网格,以显示所述视频数据中、调整鼻子之后的图像数据;
在一直播间发布调整鼻子之后的视频数据。
第三方面,本发明实施例还提供了一种人脸的处理装置,包括:
图像数据获取模块,用于获取图像数据,所述图像数据中具有人脸数据;
网格划分模块,用于将所述图像数据划分为多个网格,所述网格的顶点至少包括所述人脸数据的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
调整操作接收模块,用于接收作用于所述鼻子的调整操作;
鼻子调整模块,用于响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;
网格绘制模块,用于绘制调整之后的网格,以显示调整鼻子之后的图像数据。
第四方面,本发明实施例还提供了一种直播装置,包括:
视频数据采集模块,用于采集视频数据,所述视频数据中包括图像数据,所述图像数据中具有主播用户;
网格划分模块,用于将所述图像数据划分为多个网格,所述网格的顶点至少包括所述主播用户的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
调整操作接收模块,用于接收作用于所述鼻子的调整操作;
鼻子调整模块,用于响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;
网格绘制模块,用于绘制调整之后的网格,以显示所述视频数据中、调整鼻子之后的图像数据;
视频直播模块,用于在一直播间发布调整鼻子之后的视频数据。
第五方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的人脸的处理方法或者如第二方面所述的直播方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一方面所述的人脸的处理方法或者如第二方面所述的直播方法。
在本发明实施例中,图像数据中具有人脸数据,以人脸数据的人脸关键点作为顶点,将图像数据划分为多个网格,响应于调整操作,调整鼻子关键点所处的网格,以调整鼻子,绘制调整之后的网格,从而显示调整鼻子之后的图像数据,一方面,在对人脸关键点进行调整时,可连同调整网格,网格内的像素点的调整较为均匀,使得鼻子的调整更加平滑,减少变形的情况,避免人脸失真,另一方面,网格可同时用于人脸调整、渲染操作,复用划分网格的操作,可降低运算量,并且,网格的绘制及其调整相比于神经网络等深度学习更为简单,可提高处理速度、减少处理时间,从而减少显示时的延时,适用于直播等对实时性要求较高的场景。
附图说明
图1为本发明实施例一提供的一种人脸的处理方法的流程图;
图2A至图2C为本发明实施例一提供的一种人脸关键点的示例图;
图3A至图3C为本发明实施例一提供的一种网格顺序的示例图;
图4为本发明实施例一提供的一种相邻人脸关键点的示例图;
图5为本发明实施例一提供的一种维诺图的示例图;
图6为本发明实施例一提供的一种网格的示例图;
图7A至图7D为本发明实施例一提供的一种鼻子的调整示例图;
图8是本发明实施例二提供的一种直播方法的流程图;
图9为本发明实施例三提供的一种人脸的处理装置的结构示意图;
图10为本发明实施例四提供的一种直播装置的结构示意图;
图11为本发明实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种人脸的处理方法的流程图,本实施例可适用于基于人脸关键点构建网格、基于网格调整鼻子的情况,该方法可以由人脸的处理装置来执行,该装置可以由软件和/或硬件实现,可配置在电子设备中,可以包括手机、平板、PDA(personal digital assistant,个人数字助理)、智能穿戴设备(如智能眼镜、智能手表)等移动终端,也可以包括智能电视、个人电脑等非移动终端,这些电子设备包括CPU(CentralProcessing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)等处理器,以及配置有用于渲染2D矢量图形的应用程序编程接口(API)或渲染引擎,如OpenGL(OpenGraphics Library,开放图形库)、OpenGL ES(OpenGL for Embedded Systems,用于嵌入式系统的OpenGL)、Metal、Valkan、U3D、UE4等等,该方法具体包括如下步骤:
S101、获取图像数据。
在具体实现中,电子设备的操作系统可以包括Android(安卓)、IOS、Windows等等。
在这些操作系统中支持运行可进行图像处理的应用,如直播应用、图像编辑应用、相机应用、即时通讯工具、图库应用,等等。
诸如图像编辑应用、即时通讯工具、图库应用等应用,其UI(User Interface,用户界面)可提供导入的控件,用户可通过触控或鼠标等外设操作该导入的控件,选择本地存储的图像数据(以缩略图或路径表示),也可以选择网络存储的图像数据(以URL(UniformResource Locators,统一资源定位器)表示),使得应用获取该图像数据。
诸如直播应用、图像编辑应用、相机应用、即时通讯工具等应用,其UI可提供拍照、录像的控件,用户可通过触控或鼠标等外设操作该拍照、录像的控件,通知应用调用摄像头采集图像数据。
S102、将所述图像数据划分为多个网格。
图像数据中具有人脸数据,所谓人脸数据,可以指图像数据中用于表示人脸的像素点。
在本发明实施例中,应用对该图像数据进行人脸检测,识别该人脸数据中包含的人脸关键点。
其中,人脸检测也称为人脸关键点检测、定位或者人脸对齐,是指给定人脸数据,定位出人脸面部的关键区域位置,包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等等。
人脸检测通常使用如下方法:
1、利用人工提取特征,如haar特征,使用特征训练分类器,使用分类器进行人脸检测。
2、从通用的目标检测算法中继承人脸检测,例如,利用Faster R-CNN来检测人脸。
3、使用级联结构的卷积神经网络,例如,Cascade CNN(级联卷积神经网络),MTCNN(Multi-task Cascaded Convolutional Networks,多任务卷积神经网络)。
在具体实现中,这些实现人脸检测的方法可以集成在应用的模块中,应用可直接调用该模块检测图像数据中的人脸关键点,这些实现人脸检测的方法也可以集成在SDK(Software Development Kit,软件开发工具包),该SDK作为应用的组装数据,应用可请求SDK对图像数据进行人脸检测,SDK检测到图像数据中的人脸关键点,并将人脸关键点返回应用。
需要说明的是,人脸关键点的数量,可以由本领域技术人员根据实际情况设置,对于静态的图像处理,实时性要求较低,可以检测较为稠密的人脸关键点,如1000个,除了能定位人脸重要特征点之外,还能准确的描述出五官的轮廓;对于直播等,实时性要求较高,可以检测较为稀疏的人脸关键点,如68、81、106个,定位人脸上比较明显且重要的特征点(如眼睛关键点、眉毛关键点、鼻子关键点、嘴巴关键点、轮廓关键点等),以降低处理量、减少处理时间,等等,本发明实施例对此不加以限制。
为使本领域技术人员更好地理解本发明实施例,在本发明实施例中,以较为稀疏的人脸关键点作为一种示例进行说明。
例如,对图2A所示的图像数据进行人脸检测,可以输出如图2B的68个人脸关键点。
网格(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。
在本发明的一个实施例中,S102可以包括如下步骤:
S1021、确定位置相邻的人脸关键点,作为第一目标关键点。
S1022、在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
在本发明实施例中,对于位置相邻的两个人脸关键点,可作为一对第一目标关键点,依次以第一目标关键点作为网格的顶点、连接该对第一目标关键点,则可以生成网格。
在一种检测位置相邻的方式中,可通过定义法(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个人脸关键点,可转换为如图5所示的维诺图,从而确定位置相邻的人脸关键点,按照既定的顺序连接位置相邻的人脸关键点,可获得如图6所示的网格。
在本发明的另一个实施例中,S102可以包括如下步骤:
S1023、确定位于所述图像数据边缘上的点,作为边缘点。
S1024、确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点。
S1025、在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格。
人脸关键点组成的网格一般不能完全覆盖图像数据,此时,可在图像数据边缘上选取一些点,作为边缘点。
需要说明的是,为了方便运算,选取的边缘点对称。
例如,如图6所示,选择图像数据的四个顶点、以及、每两个顶点之间的中点作为边缘点。
将边缘点及其相邻的人脸关键点作为一对第二目标关键点,依次以第二目标关键点作为网格的顶点、按照顺序连接该对第二目标关键点,则可以生成网格。
需要说明的是,边缘点与人脸关键点位置相邻的关系,可由本领域技术人员根据实际情况进行设置,本发明实施例对此不加以限制。
一般而言,人脸关键点中的眉毛关键点、轮廓关键点与边缘点相邻,边缘点的数量少于与其位置相邻的人脸关键点的数量。
例如,图2B所示的图像数据,包含68个人脸关键点、8个边缘点,25个人脸关键点与8个边缘点位置相邻,按照既定的顺序连接位置相邻的人脸关键点、边缘点,可获得如图6所示的网格。
需要说明的是,网格的顶点可同时包括人脸关键点、边缘点,与每个人脸关键点、每个边缘点位置相邻的点(可以是人脸关键点,也可以是边缘点)均已确定,此时,可按照既定的顺序连接各人脸关键点、边缘点,从而生成网格。
在本发明的又一个实施例中,网格的顶点包括人脸关键点、位于图像数据边缘上的边缘点,边缘点与人脸关键点具有第一编号,其中,边缘点的第一编号是预设的,人脸关键点的第一编号是在人脸检测时生成的,或者,基于人脸检测时生成的编号映射获得,并且、边缘点的第一编号与人脸关键点的第一编号互不重复。
例如,如图2C所示,人脸关键点共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。
此时,S102可以包括如下步骤:
S1026、查询预设的、且具有顺序的网格变量。
其中,每个网格变量中的顶点标记有第二编号。
S1027、若所述第一编号与所述第二编号相同,则在所述图像数据中以所述第一编号所属的边缘点或人脸关键点作为顶点、连接所述第一编号所属的边缘点或人脸关键点,获得网格。
因为人脸检测的方法是预先设定的,其输出的人脸关键点一般是固定的,并且,边缘点也一般是固定的,使得与每个人脸关键点、每个边缘点位置相邻的点(可以是人脸关键点,也可以是边缘点)均是固定的,即每个网格中顶点的顺序是固定的。
因此,可在首次(离线)将某帧图像数据按照某一方式划分为多个网格时,按照顺序记录每个网格中每个顶点(可以是人脸关键点,也可以是边缘点)的编号,作为第二编号,此时,每个网格保留顶点的第二编号,作为网格变量。
对于其他(实时)图像数据,若按照相同的方式划分为网格,则可以将其点(可以是人脸关键点,也可以是边缘点)的第一编号与网格变量的第二编号进行匹配,若两者相同,则可以按照网格变量中限定的顺序连接第一编号所表示的点(可以是人脸关键点,也可以是边缘点),从而将该图像数据划分为多个网格。
例如,如图2C所示,网格变量可以表示为(1,76,2)、(2,76,3)、(3,76,4)、(4,76,5),等等。
对于图2B所示的图像数据,第一编号为1、2的人脸关键点以及第一编号为76的边缘点,与其中一个网格变量中的第二编号匹配成功,则可以按照其顺序连接人脸关键点、边缘点,从而组成一个网格(1,76,2)。
S103、接收作用于所述鼻子的调整操作。
在具体实现中,应用的UI(User Interface,用户界面)可提供美颜的控件,其中,该控件关联多个子控件,部分子控件可用于调整人脸的鼻子,用户可通过触控或鼠标等外设操作该子控件,从而触发调整操作。
例如,如图7A所示,应用的UI提供的部分子控件,其触发的调整操作可分别用于调整鼻子的大小、高度(提升)、鼻翼、鼻梁、鼻尖,其中,圆圈表示调整的幅度,用户可滑动该圆圈设置调整鼻子的大小、高度(提升)、鼻翼、鼻梁、鼻尖的幅度。
S104、响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子。
在本发明实施例中,网格的顶点包括人脸数据的人脸关键点,而人脸关键点包括用于表示鼻子的鼻子关键点,针对调整操作,可确定该调整操作所调整的人脸关键点及调整方式。
其中,调整方式包括调整类型、幅度。
例如,对于鼻子(以鼻子关键点表示),调整类型包括调整鼻子的大小、高度(提升)、鼻翼、鼻梁、鼻尖,等等。
按照该调整类型、幅度,对该鼻子关键点进行调整,在保持鼻子关键点作为网格的顶点的情况下,调整鼻子关键点,可连同调整网格,使得网格内的鼻子发生变化,从而实现调整鼻子的效果。
当然,部分人脸关键点并非调整操作所调整的人脸关键点,即部分人脸关键点并未调整,若网格的顶点(人脸关键点)并未调整,则该网格保持原有的状态。
在一种调整的类型中,调整操作包括第一操作,该第一操作可用于提升鼻子,鼻子关键点包括鼻翼的鼻翼关键点(如图2C所示的第一编号为32、36的人脸关键点)、鼻尖的鼻尖关键点(如图2C所示的第一编号为31的人脸关键点)。
在此调整的类型中,响应于第一操作,确定人脸数据的朝向。
进一步地,检测人脸数据的姿态角,则可以基于姿态角确定人脸数据的朝向。
当然,除了姿态角之外,还可以使用神经网络直接检测人脸数据的朝向,本发明实施例对此不加以限制。
基于该朝向可从鼻翼关键点中选择参考点,该参考点用于作为鼻子关键点的调整参考。
若朝向为朝左,则可以确定位于右侧的鼻翼关键点(如图2C所示的第一编号为32的人脸关键点)为参考点。
若朝向为朝右,则可以确定位于左侧的鼻翼关键点(如图2C所示的第一编号为36的人脸关键点)为参考点。
以参考点为目标移动鼻尖关键点,以调整鼻尖关键点所处的网格,从而在视觉上实现鼻子的高低调整。
进一步而言,可以通过如下方式移动鼻尖关键点:
Resultm=Dstn+A(y)·F(x)(Svcm-Dstn)
其中,Resultm为移动之后的鼻尖关键点,Dstn为移动之前的鼻尖关键点,为Svcm为参考点,A(y)为幅度,F(x)为移动函数。
例如,如图7B所示,在调整鼻尖关键点之后,位于中间的人脸数据的鼻子位于左侧的人脸数据的鼻子更高,位于右侧的人脸数据的鼻子位于中间的人脸数据的鼻子更高。
在另一种调整的类型中,调整操作包括第二操作,该第二操作可用于调整鼻子的大小,鼻子关键点包括鼻翼的鼻翼关键点(如图2C所示的第一编号为32、36的人脸关键点)、鼻尖的鼻尖关键点(如图2C所示的第一编号为31的人脸关键点)。
在此调整的类型中,响应于第二操作,基于鼻尖关键点确定参考点,参考点位于鼻尖关键点之下,用于作为鼻子关键点的调整参考。
在一个示例中,人脸关键点还包括人中的人中关键点(如图2C所示的第一编号为52的人脸关键点)。
在此示例中,可确定鼻尖关键点与人中关键点之间的点(如中点),作为参考点。
以参考点为目标移动鼻翼关键点,以调整鼻翼关键点所处的网格,从而在实现调整鼻子的大小。
进一步而言,可以通过如下方式移动鼻翼关键点:
Resultm=Dstn+A(y)·F(x)(Svcm-Dstn)
其中,Resultm为移动之后的鼻翼关键点,Dstn为移动之前的鼻翼关键点,为Svcm为参考点,A(y)为幅度,F(x)为移动函数。
需要说明的是,鼻翼关键点一般位于参考点两侧,因此,这两个鼻翼关键点同时以相反方向、朝向或远离参考点移动。
在缩小鼻子时,位于参考点左侧的鼻翼关键点朝右移动、位于参考点右侧的鼻翼关键点朝左移动。
在放大鼻子时,位于参考点左侧的鼻翼关键点朝左移动、位于参考点右侧的鼻翼关键点朝右移动。
例如,如图7C所示,在调整鼻翼关键点之后,位于中间的人脸数据的鼻子位于上方的人脸数据的鼻子更小,位于下方的人脸数据的鼻子位于中间的人脸数据的鼻子更小。
在又一种调整的类型中,调整操作包括第三操作,该第三操作可用于调整的鼻翼,鼻子关键点包括鼻翼的鼻翼关键点(如图2C所示的第一编号为32、36的人脸关键点)。
在此调整的类型中,响应于第三操作,基于鼻翼关键点确定参考点,参考点位于鼻尖关键点之间。
具体而言,确定位于左侧的鼻尖关键点与位于右侧的鼻尖关键点之间的点,,如中点,作为参考点。
以参考点为目标移动鼻翼关键点,以调整鼻翼关键点所处的网格。
进一步而言,可以通过如下方式移动鼻翼关键点:
Resultm=Dstn+A(y)·F(x)(Svcm-Dstn)
其中,Resultm为移动之后的鼻翼关键点,Dstn为移动之前的鼻翼关键点,为Svcm为参考点,A(y)为幅度,F(x)为移动函数。
需要说明的是,鼻翼关键点一般位于参考点两侧,因此,这两个鼻翼关键点同时以相反方向、朝向或远离参考点移动。
在收窄鼻翼时,位于参考点左侧的鼻翼关键点朝右移动、位于参考点右侧的鼻翼关键点朝左移动。
在加宽鼻翼时,位于参考点左侧的鼻翼关键点朝左移动、位于参考点右侧的鼻翼关键点朝右移动。
例如,如图7D所示,在调整鼻翼关键点之后,位于中间的人脸数据的鼻翼位于上方的人脸数据的鼻翼更窄,位于下方的人脸数据的鼻翼位于中间的人脸数据的鼻翼更窄。
当然,上述调整鼻子关键点的方式只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他调整鼻子关键点的方式,例如,调整鼻梁、调整鼻尖等等,本发明实施例对此不加以限制。另外,除了上述调整鼻子关键点的方式外,本领域技术人员还可以根据实际需要采用其它调整鼻子关键点的方式,本发明实施例对此也不加以限制。
S105、绘制调整之后的网格,以显示调整鼻子之后的图像数据。
在具体实现中,调用用于渲染2D矢量图形的API或渲染引擎,按照顺序绘制每个网格,从而在屏幕显示调整鼻子之后的图像数据。
进一步地,为了提高图像数据的显示速度,可以在GPU中绘制网格。
在本发明的一个实施例中,S105包括如下步骤:
S1051、对于调整之后的每个网格,确定位于所述网格中各个顶点的纹理坐标。
S1052、对于调整之后的每个网格,确定位于所述网格中各个顶点的顶点坐标。
S1053、按照所述纹理坐标与所述顶点坐标绘制所述网格,以显示所述图像数据。
在绘制纹理映射场景时,除了给每个顶点定义几何坐标(即顶点坐标),也要定义纹理坐标。经过多种变换后,几何坐标决定顶点在屏幕上绘制的位置,而纹理坐标决定纹理图像中的哪一个纹素赋予该顶点。
纹理图像是方形数组,纹理坐标通常可定义成一、二、三或四维形式,称为s,t,r和q坐标,一维纹理常用s坐标表示,二维纹理常用(s,t)坐标表示,目前忽略r坐标。q坐标像w一样,一般情况下其值为1,主要用于建立齐次坐标。OpenGL坐标定义的函数是:
void gltexCoord{1234}{sifd}[v](TYPE coords);
设置当前纹理坐标,此后调用glVertex*()所产生的顶点都赋予当前的纹理坐标。对于gltexCoord1*(),s坐标被设置成给定值,t和r设置为0,q设置为1;用gltexCoord2*()可以设置s和t坐标值,r设置为0,q设置为1;对于gltexCoord3*(),q设置为1,其它坐标按给定值设置;用gltexCoord4*()可以给定所有的坐标。
在本发明实施例中,以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,则屏幕绘制缓冲区中的片段,产生屏幕上的像素。
在本发明实施例中,图像数据中具有人脸数据,以人脸数据的人脸关键点作为顶点,将图像数据划分为多个网格,响应于调整操作,调整鼻子关键点所处的网格,以调整鼻子,绘制调整之后的网格,从而显示调整鼻子之后的图像数据,一方面,在对人脸关键点进行调整时,可连同调整网格,网格内的像素点的调整较为均匀,使得鼻子的调整更加平滑,减少变形的情况,避免人脸失真,另一方面,网格可同时用于人脸调整、渲染操作,复用划分网格的操作,可降低运算量,并且,网格的绘制及其调整相比于神经网络等深度学习更为简单,可提高处理速度、减少处理时间,从而减少显示时的延时,适用于直播等对实时性要求较高的场景。
实施例二
图8为本发明实施例二提供的一种直播方法的流程图,本实施例可适用于基于人脸关键点构建网格、从而调整鼻子进行直播的情况,该方法可以由直播装置来执行,该装置可以由软件和/或硬件实现,可配置在电子设备中,可以包括手机、平板、PDA、智能穿戴设备(如智能眼镜、智能手表)等移动终端,也可以包括智能电视、个人电脑等非移动终端,这些电子设备包括CPU、GPU等处理器,以及配置有用于渲染2D矢量图形的应用程序编程接口(API)或渲染引擎,OpenGL、OpenGL ES等等,该方法具体包括如下步骤:
S801、采集视频数据。
在具体实现中,电子设备的操作系统可以包括Android(安卓)、IOS、Windows等等。
在这些操作系统中支持运行直播应用,该直播应用可进行图像处理。
需要说明的是,该直播应用可以为独立的应用,也可以为其他应用(如社交应用、即时通讯工具等)中的一个组件,如SDK,本发明实施例对此不加以限制。
主播用户在直播应用中向直播平台登录用户账号,并向直播平台发送直播标题,以按照该直播标题对该用户账号生成直播间。
此后,该直播应用可调用电子设备的摄像头采集视频数据,该视频数据中包括多帧图像数据,至少部分图像数据中具有主播用户。
S802、将所述图像数据划分为多个网格。
其中,网格的顶点至少包括所述主播用户的人脸关键点,人脸关键点包括鼻子的鼻子关键点。
在一种情况中,S802包括:
确定位置相邻的人脸关键点,作为第一目标关键点;
在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
进一步地,所述确定位置相邻的人脸关键点,作为第一目标关键点,包括:
将所述图像数据转换为维诺图,所述维诺图包括多个单元,每个所述单元包含一个人脸关键点,所述单元具有多条边;
确定位于同一条边两侧的人脸关键点位置相邻。
在另一种情况中,S802包括:
确定位于所述图像数据边缘上的点,作为边缘点;
确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点;
在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格。
在实际应用中,所述网格的顶点还包括位于所述图像数据边缘上的边缘点,所述边缘点与所述人脸关键点具有第一编号;
S802包括:
查询预设的、且具有顺序的网格变量,每个所述网格变量中的顶点标记有第二编号;
若所述第一编号与所述第二编号相同,则在所述图像数据中以所述第一编号所属的边缘点或人脸关键点作为顶点、连接所述第一编号所属的边缘点或人脸关键点,获得网格。
在本发明实施例中,由于网格的划分方式与实施例一的应用基本相似,所以描述的比较简单,相关之处参见实施例一的部分说明即可,本发明实施例在此不加以详述。
S803、接收作用于所述鼻子的调整操作。
S804、响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子。
在一种调整的方式中,所述调整操作包括第一操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
所述S804包括:
响应于所述第一操作,确定所述人脸数据的朝向;
基于所述朝向从所述鼻翼关键点中选择参考点;
以所述参考点为目标移动所述鼻尖关键点,以调整所述鼻尖关键点所处的网格。
进一步地,所述确定所述人脸数据的朝向,包括:
检测所述人脸数据的姿态角;
基于所述姿态角确定所述人脸数据的朝向。
进一步地,所述基于所述朝向从所述鼻翼关键点中选择参考点,包括:
若所述朝向为朝左,则确定位于右侧的所述鼻翼关键点为参考点;
若所述朝向为朝右,则确定位于左侧的所述鼻翼关键点为参考点。
在另一种调整的方式中,所述调整操作包括第二操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
所述S804包括:
响应于所述第二操作,基于所述鼻尖关键点确定参考点,所述参考点位于所述鼻尖关键点之下;
以所述参考点为目标移动所述鼻翼关键点,以调整所述鼻翼关键点所处的网格。
进一步地,所述人脸关键点还包括人中的人中关键点;
所述基于所述鼻尖关键点确定参考点,包括:
确定所述鼻尖关键点与所述人中关键点之间的点,作为参考点。
在又一种调整的方式中,,所述调整操作包括第三操作,所述鼻子关键点包括鼻翼的鼻翼关键点;
所述S084包括:
响应于所述第三操作,基于所述鼻翼关键点确定参考点,所述参考点位于所述鼻尖关键点之间;
以所述参考点为目标移动所述鼻翼关键点,以调整所述鼻翼关键点所处的网格。
进一步地,所述基于所述鼻翼关键点确定参考点,包括:
确定位于左侧的所述鼻尖关键点与位于右侧的所述鼻尖关键点之间的点,作为参考点。
在本发明实施例中,由于鼻子的调整方式与实施例一的应用基本相似,所以描述的比较简单,相关之处参见实施例一的部分说明即可,本发明实施例在此不加以详述。
S805、绘制调整之后的网格,以显示所述视频数据中、调整鼻子之后的图像数据。
在实际应用中,调用OpenGL、OpenGL ES等API或渲染引擎,在播放视频数据时,按照顺序绘制每个网格(包含已调整的网格),从而屏幕显示调整主播用户的鼻子之后的图像数据,实现直播(视频数据)的本地回显,以供主播用户浏览当前的直播状态。
S806、在一直播间发布调整鼻子之后的视频数据。
直播应用可通过RTSP(Real Time Streaming Protocol,实时流传输协议)、RTMP(Real Time Messaging Protocol,实时消息传输协议)、HLS(HTTP Live Streaming,动态码率自适应技术)等协议,将视频数据发送至直播平台(直播服务器),直播平台(直播服务器)公开该直播间,使得观众用户可以在客户端中打开直播间,接收该视频数据并进行播放,显示调整主播用户的鼻子之后的图像数据。
在本发明实施例中,采集视频数据,视频数据中的图像数据中具有主播用户,将图像数据划分为多个网格,网格的顶点至少包括主播用户的人脸关键点,响应于调整操作,调整鼻子关键点所处的网格,以调整鼻子,绘制调整之后的网格,以显示视频数据中、调整鼻子之后的图像数据,并在直播间发布调整鼻子之后的视频数据,使得主播用户可在本地浏览直播的效果,在直播间发布视频数据,使得观众用户可观看该主播用户主持的直播节目,一方面,在对人脸关键点进行调整时,可连同调整网格,网格内的像素点的调整较为均匀,使得鼻子的调整更加平滑,减少变形,避免人脸失真,另一方面,网格可同时用于人脸调整、渲染操作,复用划分网格的操作,可降低运算量,并且,网格的绘制及其调整相比于神经网络等深度学习更为简单,可提高处理速度、减少处理时间,从而减少显示时的延时,可保证实时性,适用于直播。
实施例三
图9为本发明实施例三提供的一种人脸的处理装置的结构示意图,该装置具体可以包括如下模块:
图像数据获取模块901,用于获取图像数据,所述图像数据中具有人脸数据;
网格划分模块902,用于将所述图像数据划分为多个网格,所述网格的顶点至少包括所述人脸数据的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
调整操作接收模块903,用于接收作用于所述鼻子的调整操作;
鼻子调整模块904,用于响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;
网格绘制模块905,用于绘制调整之后的网格,以显示调整鼻子之后的图像数据。
在本发明的一个实施例中,所述调整操作包括第一操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
所述鼻子调整模块904包括:
朝向确定子模块,用于响应于所述第一操作,确定所述人脸数据的朝向;
第一参考点选择子模块,用于基于所述朝向从所述鼻翼关键点中选择参考点;
鼻尖关键点移动子模块,用于以所述参考点为目标移动所述鼻尖关键点,以调整所述鼻尖关键点所处的网格。
在本发明实施例的一个示例中,所述朝向确定子模块包括:
姿态角检测单元,用于检测所述人脸数据的姿态角;
姿态角确定单元,用于基于所述姿态角确定所述人脸数据的朝向。
在本发明实施例的一个示例中,所述第一参考点选择子模块包括:
右侧确定单元,用于若所述朝向为朝左,则确定位于右侧的所述鼻翼关键点为参考点;
左侧确定单元,用于若所述朝向为朝右,则确定位于左侧的所述鼻翼关键点为参考点。
在本发明的另一个实施例中,所述调整操作包括第二操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
所述鼻子调整模块904包括:
第二参考点选择子模块,用于响应于所述第二操作,基于所述鼻尖关键点确定参考点,所述参考点位于所述鼻尖关键点之下;
第一鼻翼关键点移动子模块,用于以所述参考点为目标移动所述鼻翼关键点,以调整所述鼻翼关键点所处的网格。
在本发明实施例的一个示例中,所述人脸关键点还包括人中的人中关键点;
所述第二参考点选择子模块包括:
人中关键点确定单元,用于确定所述鼻尖关键点与所述人中关键点之间的点,作为参考点。
在本发明的又一个实施例中,所述调整操作包括第三操作,所述鼻子关键点包括鼻翼的鼻翼关键点;
所述鼻子调整模块904包括:
第三参考点选择子模块,用于响应于所述第三操作,基于所述鼻翼关键点确定参考点,所述参考点位于所述鼻尖关键点之间;
第二鼻翼关键点移动子模块,用于以所述参考点为目标移动所述鼻翼关键点,以调整所述鼻翼关键点所处的网格。
在本发明实施例的一个示例中,所述第三参考点选择子模块包括:
中间点确定单元,用于确定位于左侧的所述鼻尖关键点与位于右侧的所述鼻尖关键点之间的点,作为参考点。
在本发明的一个实施例中,所述网格划分模块902包括:
第一目标关键点确定子模块,用于确定位置相邻的人脸关键点,作为第一目标关键点;
第一连接子模块,用于在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
在本发明的一个实施例中,所述第一目标关键点确定子模块包括:
维诺图转换单元,用于将所述图像数据转换为维诺图,所述维诺图包括多个单元,每个所述单元包含一个人脸关键点,所述单元具有多条边;
位置相邻确定单元,用于确定位于同一条边两侧的人脸关键点位置相邻。
在本发明的另一个实施例中,所述网格划分模块902包括:
边缘点确定子模块,用于确定位于所述图像数据边缘上的点,作为边缘点;
第二目标关键点确定子模块,用于确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点;
第二连接子模块,用于在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格。
在本发明的又一个实施例中,所述网格的顶点还包括位于所述图像数据边缘上的边缘点,所述边缘点与所述人脸关键点具有第一编号;
所述网格划分模块902包括:
网格变量查找子模块,用于查询预设的、且具有顺序的网格变量,每个所述网格变量中的顶点标记有第二编号;
第三连接子模块,用于若所述第一编号与所述第二编号相同,则在所述图像数据中以所述第一编号所属的边缘点或人脸关键点作为顶点、连接所述第一编号所属的边缘点或人脸关键点,获得网格。
在本发明的一个实施例中,所述网格绘制模块905包括:
纹理坐标确定子模块,用于对于调整之后的每个网格,确定位于所述网格中各个顶点的纹理坐标;
顶点坐标确定子模块,用于对于调整之后的每个网格,确定位于所述网格中各个顶点的顶点坐标;
坐标绘制子模块,用于按照所述纹理坐标与所述顶点坐标绘制所述网格,以显示所述图像数据。
本发明实施例所提供的人脸的处理装置可执行本发明任意实施例所提供的人脸的处理方法,具备执行方法相应的功能模块和有益效果。
实施例四
图10为本发明实施例四提供的直播装置的结构示意图,该装置具体可以包括如下模块:
视频数据采集模块1001,用于采集视频数据,所述视频数据中包括图像数据,所述图像数据中具有主播用户;
网格划分模块1002,用于将所述图像数据划分为多个网格,所述网格的顶点至少包括所述主播用户的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
调整操作接收模块1003,用于接收作用于所述鼻子的调整操作;
鼻子调整模块1004,用于响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;
网格绘制模块1005,用于绘制调整之后的网格,以显示所述视频数据中、调整鼻子之后的图像数据;
视频直播模块1006,用于在一直播间发布调整鼻子之后的视频数据。
在本发明的一个实施例中,所述调整操作包括第一操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
所述鼻子调整模块1004包括:
朝向确定子模块,用于响应于所述第一操作,确定所述人脸数据的朝向;
第一参考点选择子模块,用于基于所述朝向从所述鼻翼关键点中选择参考点;
鼻尖关键点移动子模块,用于以所述参考点为目标移动所述鼻尖关键点,以调整所述鼻尖关键点所处的网格。
在本发明实施例的一个示例中,所述朝向确定子模块包括:
姿态角检测单元,用于检测所述人脸数据的姿态角;
姿态角确定单元,用于基于所述姿态角确定所述人脸数据的朝向。
在本发明实施例的一个示例中,所述第一参考点选择子模块包括:
右侧确定单元,用于若所述朝向为朝左,则确定位于右侧的所述鼻翼关键点为参考点;
左侧确定单元,用于若所述朝向为朝右,则确定位于左侧的所述鼻翼关键点为参考点。
在本发明的另一个实施例中,所述调整操作包括第二操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
所述鼻子调整模块1004包括:
第二参考点选择子模块,用于响应于所述第二操作,基于所述鼻尖关键点确定参考点,所述参考点位于所述鼻尖关键点之下;
第一鼻翼关键点移动子模块,用于以所述参考点为目标移动所述鼻翼关键点,以调整所述鼻翼关键点所处的网格。
在本发明实施例的一个示例中,所述人脸关键点还包括人中的人中关键点;
所述第二参考点选择子模块包括:
人中关键点确定单元,用于确定所述鼻尖关键点与所述人中关键点之间的点,作为参考点。
在本发明的又一个实施例中,所述调整操作包括第三操作,所述鼻子关键点包括鼻翼的鼻翼关键点;
所述鼻子调整模块1004包括:
第三参考点选择子模块,用于响应于所述第三操作,基于所述鼻翼关键点确定参考点,所述参考点位于所述鼻尖关键点之间;
第二鼻翼关键点移动子模块,用于以所述参考点为目标移动所述鼻翼关键点,以调整所述鼻翼关键点所处的网格。
在本发明实施例的一个示例中,所述第三参考点选择子模块包括:
中间点确定单元,用于确定位于左侧的所述鼻尖关键点与位于右侧的所述鼻尖关键点之间的点,作为参考点。
在本发明的一个实施例中,所述网格划分模块1002包括:
第一目标关键点确定子模块,用于确定位置相邻的人脸关键点,作为第一目标关键点;
第一连接子模块,用于在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
在本发明的一个实施例中,所述第一目标关键点确定子模块包括:
维诺图转换单元,用于将所述图像数据转换为维诺图,所述维诺图包括多个单元,每个所述单元包含一个人脸关键点,所述单元具有多条边;
位置相邻确定单元,用于确定位于同一条边两侧的人脸关键点位置相邻。
在本发明的另一个实施例中,所述网格划分模块1002包括:
边缘点确定子模块,用于确定位于所述图像数据边缘上的点,作为边缘点;
第二目标关键点确定子模块,用于确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点;
第二连接子模块,用于在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格。
在本发明的又一个实施例中,所述网格的顶点还包括位于所述图像数据边缘上的边缘点,所述边缘点与所述人脸关键点具有第一编号;
所述网格划分模块1002包括:
网格变量查找子模块,用于查询预设的、且具有顺序的网格变量,每个所述网格变量中的顶点标记有第二编号;
第三连接子模块,用于若所述第一编号与所述第二编号相同,则在所述图像数据中以所述第一编号所属的边缘点或人脸关键点作为顶点、连接所述第一编号所属的边缘点或人脸关键点,获得网格。
在本发明的一个实施例中,所述网格绘制模块1005包括:
纹理坐标确定子模块,用于对于调整之后的每个网格,确定位于所述网格中各个顶点的纹理坐标;
顶点坐标确定子模块,用于对于调整之后的每个网格,确定位于所述网格中各个顶点的顶点坐标;
坐标绘制子模块,用于按照所述纹理坐标与所述顶点坐标绘制所述网格,以显示所述图像数据。
本发明实施例所提供的直播装置可执行本发明任意实施例所提供的直播方法,具备执行方法相应的功能模块和有益效果。
实施例五
图11为本发明实施例五提供的一种电子设备的结构示意图。如图11所示,该电子设备包括处理器1100、存储器1101、通信模块1102、输入装置1103和输出装置1104;电子设备中处理器1100的数量可以是一个或多个,图11中以一个处理器1100为例;电子设备中的处理器1100、存储器1101、通信模块1102、输入装置1103和输出装置1104可以通过总线或其他方式连接,图11中以通过总线连接为例。
存储器1101作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本实施例中的人脸的处理方法对应的模块(例如,如图9所示的人脸的处理装置中的图像数据获取模块901、网格划分模块902、调整操作接收模块903、鼻子调整模块904、网格绘制模块905),或者,直播方法对应的模块(例如,如图10所示的视频数据采集模块1001、网格划分模块1002、调整操作接收模块1003、鼻子调整模块1004、网格绘制模块1005、视频直播模块1006)。处理器1100通过运行存储在存储器1101中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的人脸的处理方法或直播方法。
存储器1101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器1101可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器1101可进一步包括相对于处理器1100远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块1102,用于与显示屏建立连接,并实现与显示屏的数据交互。输入装置1103可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。
本实施例提供的一种电子设备,可执行本发明任一实施例提供的人脸的处理方法或直播方法,具体相应的功能和有益效果。
实施例六
本发明实施例六还提供一种计算机可读存储介质,其上存储有计算机程序。
在一种情况中,该程序被处理器执行时实现一种人脸的处理方法,该方法包括:
获取图像数据,所述图像数据中具有人脸数据;
将所述图像数据划分为多个网格,所述网格的顶点至少包括所述人脸数据的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
接收作用于所述鼻子的调整操作;
响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;
绘制调整之后的网格,以显示调整鼻子之后的图像数据。
在另一种情况中,该程序被处理器执行时实现一种直播方法,该方法包括:
采集视频数据,所述视频数据中包括图像数据,所述图像数据中具有主播用户;
将所述图像数据划分为多个网格,所述网格的顶点至少包括所述主播用户的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
接收作用于所述鼻子的调整操作;
响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;
绘制调整之后的网格,以显示所述视频数据中、调整鼻子之后的图像数据;
在一直播间发布调整鼻子之后的视频数据。
当然,本发明实施例所提供的计算机可读存储介质,其计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的人脸的处理方法或直播方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述人脸的处理装置或直播装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (14)
1.一种人脸的处理方法,其特征在于,包括:
获取图像数据,所述图像数据中具有人脸数据;
将所述图像数据划分为多个网格,所述网格的顶点至少包括所述人脸数据的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
接收作用于所述鼻子的调整操作,所述调整操作用于调整鼻子的大小、高度,鼻翼、鼻梁以及鼻尖的幅度,所述调整操作包括第一操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;
绘制调整之后的网格,以显示调整鼻子之后的图像数据;
其中,所述响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子,包括:
响应于所述第一操作,确定所述人脸数据的朝向;
基于所述朝向从所述鼻翼关键点中选择参考点;
以所述参考点为目标移动所述鼻尖关键点,以调整所述鼻尖关键点所处的网格。
2.根据权利要求1所述的方法,其特征在于,所述确定所述人脸数据的朝向,包括:
检测所述人脸数据的姿态角;
基于所述姿态角确定所述人脸数据的朝向。
3.根据权利要求1所述的方法,其特征在于,所述基于所述朝向从所述鼻翼关键点中选择参考点,包括:
若所述朝向为朝左,则确定位于右侧的所述鼻翼关键点为参考点;
若所述朝向为朝右,则确定位于左侧的所述鼻翼关键点为参考点。
4.根据权利要求1所述的方法,其特征在于,所述调整操作包括第二操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
所述响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子,包括:
响应于所述第二操作,基于所述鼻尖关键点确定参考点,所述参考点位于所述鼻尖关键点之下;
以所述参考点为目标移动所述鼻翼关键点,以调整所述鼻翼关键点所处的网格。
5.根据权利要求4所述的方法,其特征在于,所述人脸关键点还包括人中的人中关键点;
所述基于所述鼻尖关键点确定参考点,包括:
确定所述鼻尖关键点与所述人中关键点之间的点,作为参考点。
6.根据权利要求1所述的方法,其特征在于,所述调整操作包括第三操作,所述鼻子关键点包括鼻翼的鼻翼关键点;
所述响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子,包括:
响应于所述第三操作,基于所述鼻翼关键点确定参考点,所述参考点位于所述鼻尖关键点之间;
以所述参考点为目标移动所述鼻翼关键点,以调整所述鼻翼关键点所处的网格。
7.根据权利要求6所述的方法,其特征在于,所述基于所述鼻翼关键点确定参考点,包括:
确定位于左侧的所述鼻尖关键点与位于右侧的所述鼻尖关键点之间的点,作为参考点。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述将所述图像数据划分为多个网格,包括:
确定位置相邻的人脸关键点,作为第一目标关键点;
在所述图像数据中以所述第一目标关键点作为顶点、连接所述第一目标关键点,获得网格。
9.根据权利要求1-7任一项所述的方法,其特征在于,所述将所述图像数据划分为多个网格,包括:
确定位于所述图像数据边缘上的点,作为边缘点;
确定与所述边缘点位置相邻的人脸关键点,作为第二目标关键点;
在所述图像数据中以所述边缘点、所述第二目标关键点作为顶点、连接所述边缘点与所述第二目标关键点,获得网格。
10.一种直播方法,其特征在于,包括:
采集视频数据,所述视频数据中包括图像数据,所述图像数据中具有主播用户;
将所述图像数据划分为多个网格,所述网格的顶点至少包括所述主播用户的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
接收作用于所述鼻子的调整操作,所述调整操作用于调整鼻子的大小、高度,鼻翼、鼻梁以及鼻尖的幅度,所述调整操作包括第一操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子;
绘制调整之后的网格,以显示所述视频数据中、调整鼻子之后的图像数据;
在一直播间发布调整鼻子之后的视频数据;
其中,所述响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子,包括:
响应于所述第一操作,确定人脸数据的朝向;
基于所述朝向从所述鼻翼关键点中选择参考点;
以所述参考点为目标移动所述鼻尖关键点,以调整所述鼻尖关键点所处的网格。
11.一种人脸的处理装置,其特征在于,包括:
图像数据获取模块,用于获取图像数据,所述图像数据中具有人脸数据;
网格划分模块,用于将所述图像数据划分为多个网格,所述网格的顶点至少包括所述人脸数据的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
调整操作接收模块,用于接收作用于所述鼻子的调整操作,所述调整操作用于调整鼻子的大小、高度,鼻翼、鼻梁以及鼻尖的幅度,所述调整操作包括第一操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
鼻子调整模块,用于响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子,包括:
朝向确定子模块,用于响应于所述第一操作,确定所述人脸数据的朝向;
第一参考点选择子模块,用于基于所述朝向从所述鼻翼关键点中选择参考点;
鼻尖关键点移动子模块,用于以所述参考点为目标移动所述鼻尖关键点,以调整所述鼻尖关键点所处的网格;
网格绘制模块,用于绘制调整之后的网格,以显示调整鼻子之后的图像数据。
12.一种直播装置,其特征在于,包括:
视频数据采集模块,用于采集视频数据,所述视频数据中包括图像数据,所述图像数据中具有主播用户;
网格划分模块,用于将所述图像数据划分为多个网格,所述网格的顶点至少包括所述主播用户的人脸关键点,所述人脸关键点包括鼻子的鼻子关键点;
调整操作接收模块,用于接收作用于所述鼻子的调整操作,所述调整操作用于调整鼻子的大小、高度,鼻翼、鼻梁以及鼻尖的幅度,所述调整操作包括第一操作,所述鼻子关键点包括鼻翼的鼻翼关键点、鼻尖的鼻尖关键点;
鼻子调整模块,用于响应于所述调整操作,调整所述鼻子关键点所处的网格,以调整所述鼻子,包括:
朝向确定子模块,用于响应于所述第一操作,确定人脸数据的朝向;
第一参考点选择子模块,用于基于所述朝向从所述鼻翼关键点中选择参考点;
鼻尖关键点移动子模块,用于以所述参考点为目标移动所述鼻尖关键点,以调整所述鼻尖关键点所处的网格;
网格绘制模块,用于绘制调整之后的网格,以显示所述视频数据中、调整鼻子之后的图像数据;
视频直播模块,用于在一直播间发布调整鼻子之后的视频数据。
13.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的人脸的处理方法或者如权利要求10所述的直播方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的人脸的处理方法或者如权利要求10所述的直播方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910604814.9A CN111652025B (zh) | 2019-07-05 | 2019-07-05 | 一种人脸的处理、直播方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910604814.9A CN111652025B (zh) | 2019-07-05 | 2019-07-05 | 一种人脸的处理、直播方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111652025A CN111652025A (zh) | 2020-09-11 |
CN111652025B true CN111652025B (zh) | 2023-09-01 |
Family
ID=72344480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910604814.9A Active CN111652025B (zh) | 2019-07-05 | 2019-07-05 | 一种人脸的处理、直播方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111652025B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113591562B (zh) * | 2021-06-23 | 2024-09-24 | 北京旷视科技有限公司 | 图像处理方法、装置、电子设备及计算机可读存储介质 |
CN116757919B (zh) * | 2023-06-13 | 2024-06-04 | 上海任意门科技有限公司 | 变形迁移的纠偏方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106296571A (zh) * | 2016-07-29 | 2017-01-04 | 厦门美图之家科技有限公司 | 一种基于人脸网格的缩小鼻翼方法、装置和计算设备 |
CN109242789A (zh) * | 2018-08-21 | 2019-01-18 | 成都旷视金智科技有限公司 | 图像处理方法、图像处理装置及存储介质 |
CN109389682A (zh) * | 2017-08-09 | 2019-02-26 | 上海影子智能科技有限公司 | 一种三维人脸模型自动调整方法 |
-
2019
- 2019-07-05 CN CN201910604814.9A patent/CN111652025B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106296571A (zh) * | 2016-07-29 | 2017-01-04 | 厦门美图之家科技有限公司 | 一种基于人脸网格的缩小鼻翼方法、装置和计算设备 |
CN109389682A (zh) * | 2017-08-09 | 2019-02-26 | 上海影子智能科技有限公司 | 一种三维人脸模型自动调整方法 |
CN109242789A (zh) * | 2018-08-21 | 2019-01-18 | 成都旷视金智科技有限公司 | 图像处理方法、图像处理装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111652025A (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111652791B (zh) | 人脸的替换显示、直播方法、装置、电子设备和存储介质 | |
CN110717494B (zh) | Android移动端室内场景三维重建及语义分割方法 | |
US20180276882A1 (en) | Systems and methods for augmented reality art creation | |
CN111652794B (zh) | 一种面部的调整、直播方法、装置、电子设备和存储介质 | |
KR20220167323A (ko) | 메시징 시스템 내의 3d 데이터를 포함하는 증강 현실 콘텐츠 생성기들 | |
CN109906600B (zh) | 模拟景深 | |
CN111462205B (zh) | 图像数据的变形、直播方法、装置、电子设备和存储介质 | |
CN113220251B (zh) | 物体显示方法、装置、电子设备及存储介质 | |
CN111652022B (zh) | 图像数据的显示、直播方法、装置、电子设备和存储介质 | |
CN111652795A (zh) | 脸型的调整、直播方法、装置、电子设备和存储介质 | |
US11557086B2 (en) | Three-dimensional (3D) shape modeling based on two-dimensional (2D) warping | |
CN111652025B (zh) | 一种人脸的处理、直播方法、装置、电子设备和存储介质 | |
CN111951368A (zh) | 一种点云、体素和多视图融合的深度学习方法 | |
WO2023030177A1 (zh) | 视频处理方法、装置、计算机可读存储介质及计算机设备 | |
CN115063518A (zh) | 轨迹渲染方法、装置、电子设备及存储介质 | |
CN111652807B (zh) | 眼部的调整、直播方法、装置、电子设备和存储介质 | |
CN110619670A (zh) | 人脸互换方法、装置、计算机设备及存储介质 | |
US11217002B2 (en) | Method for efficiently computing and specifying level sets for use in computer simulations, computer graphics and other purposes | |
CN111651033B (zh) | 一种人脸的驱动显示方法、装置、电子设备和存储介质 | |
CN111652024B (zh) | 一种人脸的显示、直播方法、装置、电子设备和存储介质 | |
CN111652978B (zh) | 一种网格的生成方法、装置、电子设备和存储介质 | |
CN111652792B (zh) | 图像的局部处理、直播方法、装置、设备和存储介质 | |
CN112465692A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN112528707A (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 |