脸部图像处理方法、设备、图像处理设备、介质与流程

文档序号:17843378发布日期:2019-06-11 21:28阅读:247来源:国知局
脸部图像处理方法、设备、图像处理设备、介质与流程

本发明涉及图像处理技术,尤其涉及脸部图像处理方法、设备、图像处理设备、介质。



背景技术:

基于人工智能的移动端视频处理应用得到了越来越广泛的使用,其吸引用户的一个重要功能点就是基于人脸检测和关键点定位结果对脸部进行调整和处理以实现整形变美的效果。

传统上,这样的整形变美的效果是依据人脸关键点实时地执行变形计算来获得的。而为了达到较为自然的效果,需要对图片上的每一点都进行计算,从而需要耗费大量的处理和计算资源,导致响应速度慢,用户体验不够好。

因此,亟需一种减少使用处理和计算资源、从而能够提高响应速度的脸部图像处理方案。



技术实现要素:

为了解决以上问题之一,本发明提供了一种脸部图像处理方法、设备、图像处理设备、介质。

根据本发明的一个实施例,提供一种脸部图像处理方法,包括:存储预先计算的标准正脸的脸部变形数据,该脸部变形数据包括标准正脸上的特定点进行特定变形所需的在水平方向与竖直方向的偏移量;计算一个脸部图像中的待变形人脸相对于标准正脸的变换参数;以及将计算出的变换参数结合存储的标准正脸的所述脸部变形数据,应用于所述待变形人脸,作为对该变形人脸的变形处理,以得到变形的脸部图像。

可选地,上述变换参数包括所述待变形人脸相对于标准正脸的旋转角度、尺度变化和平移量中的至少一个。

可选地,采用图像的rgba这4个通道中的两个通道来存储标准正脸上特定点进行特定变形所需的偏移量,其中一个通道存储所述特定点进行特定变形所需的在x方向的偏移量,另一个通道存储所述特定点进行特定变形所需的在y方向的偏移量。

可选地,在计算脸部变形数据和/或计算变换参数时,通过左眼、右眼、左嘴角、右嘴角的位置数据来确定脸部中心点。

可选地,除了标准正脸的脸部上特定点的偏移量之外,所述脸部变形数据还包括标准正脸的相应颈部上的特定点的偏移量。

可选地,在存储时,通过采用图像的两个通道来存储标准正脸上的特定点进行特定变形所需的在水平方向与竖直方向的偏移量时,用比特数来表示所述特定点中的每个点的一个通道上的偏移量,以将特定范围的变形量映射到一个更大的数据空间。

可选地,对上述的脸部变形数据进行高斯模糊处理以使得相邻点之间的变形数据更加平滑。

可选地,所述计算一个脸部图像中的待变形人脸相对于标准正脸的变换参数包括:在所述待变形人脸的特定位置的坐标与标准正脸的相应位置的坐标之间进行坐标变换,得到所述待变形人脸相对于标准正脸的包括旋转角度、尺度变化和平移量的变换参数。

可选地,所述将计算出的变换参数结合存储的标准正脸的所述脸部变形数据,来应用于所述待变形人脸包括:基于所述变换参数,对所述待变形人脸中的每个像素点的作为变换前坐标的坐标,进行到标准正脸的相应位置的所述坐标变换,得到所述待变形人脸的该像素点的变换后坐标,依据所述待变形人脸的该像素点的变换后坐标,从标准正脸的脸部变形数据中查找与该变换后坐标相对应的变形数据;将与该变换后坐标相对应的变形数据中的在水平和竖直方向上的偏移量,结合或不结合所述旋转角度,施加于该像素点的作为变换前坐标的坐标,进行待变形人脸的变形处理。

根据本发明的另一个实施例,提供一种脸部图像处理设备,包括:存储装置,被配置用于存储预先计算的标准正脸的脸部变形数据,该脸部变形数据包括标准正脸上的特定点进行特定变形所需的在水平方向与竖直方向的偏移量;变换参数计算装置,被配置用于计算一个脸部图像中的待变形人脸相对于标准正脸的变换参数;以及变形执行装置,被配置用于将计算出的变换参数结合存储的标准正脸的所述脸部变形数据,来应用于所述待变形人脸,作为对该变形人脸的变形处理,以得到变形的脸部图像。

可选地,上述变换参数包括所述待变形人脸相对于标准正脸的旋转角度、尺度变化和平移量中的至少一个。

可选地,上述存储装置在存储时,采用图像的rgba这4个通道中的两个通道来存储标准正脸上特定点进行特定变形所需的偏移量,其中一个通道存储所述特定点进行特定变形所需的在x方向的偏移量,另一个通道存储所述特定点进行特定变形所需的在y方向的偏移量。

可选地,上述脸部图像处理设备还包括:中心点确定装置,被配置用于在计算脸部变形数据和/或计算变换参数时,通过左眼、右眼、左嘴角、右嘴角的位置数据来确定脸部中心点。

可选地,除了标准正脸的脸部上特定点的偏移量之外,所述脸部变形数据还包括标准正脸的相应颈部上的特定点的偏移量。

可选地,上述存储装置通过采用图像的两个通道来存储标准正脸上的特定点进行特定变形所需的在水平方向与竖直方向的偏移量时,用比特数来表示所述特定点中的每个点的一个通道上的偏移量,以将特定范围的变形量映射到一个更大的数据空间。

可选地,上述脸部图像处理设备还包括:变形数据处理装置,被配置用于对所述脸部变形数据进行高斯模糊处理以使得相邻点之间的变形数据更加平滑。

可选地,所述变换参数计算装置进一步被配置用于:在所述待变形人脸的特定位置的坐标与标准正脸的相应位置的坐标之间进行坐标变换,得到所述待变形人脸相对于标准正脸的包括旋转角度、尺度变化和平移量的变换参数。

可选地,所述变形执行装置进一步被配置用于:基于由所述变换参数计算装置得到的所述变换参数,对所述待变形人脸中的每个像素点的作为变换前坐标的坐标,进行到标准正脸的相应位置的所述坐标变换,得到所述待变形人脸的该像素点的变换后坐标;依据所述待变形人脸的该像素点的变换后坐标,从标准正脸的脸部变形数据中查找与该变换后坐标相对应的变形数据;将与该变换后坐标相对应的变形数据中的在水平和竖直方向上的偏移量,结合或不结合所述旋转角度,施加于该像素点的作为变换前坐标的坐标,进行待变形人脸的变形处理。

根据本发明的又一个实施例,提供一种图像处理设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行上述方法之一。

根据本发明的再一个实施例,提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被处理器执行时,使所述处理器执行执行上述方法之一。

通过存储预先计算的脸部变形数据,并结合待变形人脸相对于标准正脸的变换参数来对待变形人脸作变形处理,能够减少处理和计算资源的使用,提高响应速度,而且能够得到较好的变形效果。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的附图标记通常代表相同部件。

图1给出了根据本发明的一个示例性实施例的脸部图像处理方法的流程图。

图2给出了一种人脸标定方法的图示。

图3给出了根据本发明的另一个示例性实施例的脸部图像处理方法的流程图。

图4给出了根据本发明的一个示例性实施例的脸部图像处理设备的框图。

图5给出了根据本发明的另一个示例性实施例的脸部图像处理设备的框图。

图6给出了根据本发明的一个示例性实施例的数据处理设备的示意性框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。这里需要说明的是,本申请中的数字、序号以及附图标记仅是为了方便描述而出现的,对于本发明的步骤、顺序等等均不构成任何限制,除非在说明书中明确指出了步骤的执行有特定的先后顺序。

本发明针对传统的脸部图像处理方法会消耗大量处理和计算资源的缺陷,提出了一种预先计算变形数据并存储于图像的纹理中从而减少计算量的方案。另外,本发明还针对非正脸姿态进行了一些特殊处理,保证了良好的瘦脸效果。

为了便于描述和理解,下面将以在opengl着色程序shader(一种着色器)中应用本发明为例来介绍本发明。

在本发明中,为了解决上述背景技术中描述的技术问题,存储预先计算好的标准正脸的脸部变形数据,并计算拍摄图像中待变形人脸相对标准正脸的变换参数;之后,在顶点shader(vertexshader,用于处理图像边角上的4个顶点)中根据变换参数计算顶点对应的纹理坐标,在片元shader(fragmentshader,用于处理图像的4个顶点之外的每个像素点)中,再依据纹理坐标从瘦脸查找表中获取变形向量并应用于待变形人脸,从而使得本发明能够以较少的计算量在移动端视频场景中实时进行人脸变形,并且能够获得比较自然和谐的变形效果。

另外,在本发明中,还针对弯头、转头、仰头等特殊角度进行了特殊处理,在非正脸状态下也能实现比较自然的变形效果。

图1给出了根据本发明的一个示例性实施例的脸部图像处理方法的流程图。

在步骤s110,存储预先计算的标准正脸的脸部变形数据,该脸部变形数据包括标准正脸上的特定点进行特定变形所需的在水平方向与竖直方向的偏移量。

这里,该脸部变形数据是针对标准正脸上的特定点进行特定变形所需的变形数据,这样的变形数据可以包括分别在水平方向与竖直方向这两个方向上的偏移量。

也就是说,对于一个标准正脸来说,如果要进行变形例如瘦脸,再具体来说,如果要进行特定变形(比如将标准正脸变成瓜子脸型),那么该标准正脸上的特定点为了实现这样的特定变形,它们就需要进行一定的位置偏移,该位置偏移通常不也是单纯一个方向上的位置偏移,而是通常需要水平和竖直方向都需要进行一定的偏移,才能达到所需的变形效果。

另外,关于上述的“标准正脸上的特定点”,图2给出了一种68点人脸标定方法(例如通过采用开源数据集ibug-300w数据集(参见https://ibug.doc.ic.ac.uk/resources/300-w/)中的68点人脸标定方法)。在该68点人脸标定方法中,先从人脸图像,得到所需的脸部68个点(即,1-68号脸形点,如图2所示的那样),其中,由1-17号脸形点构成脸部轮廓,即通过1-17号脸形点,可以标定脸部的位置、大小,然后再由18-68号脸形点标定脸部其他部位,例如两只眼睛、鼻子、嘴巴的位置和大小等。

请注意,图2只是给出了人脸标定方法的一种示例,也可以按照其它方式来进行人脸标定,本发明对此不作任何限制。

如背景技术中所述,在现有技术中,每次都对脸部图片上的每一点进行计算,这样的计算会耗费大量的处理和计算资源。而在本发明的本步骤,通过将预先计算的脸部变形数据存储起来,不需要每次都对脸部图片上的每一点进行计算,因此,能够减少处理和计算资源的耗费,从而能够提高响应时间。

进一步地,在本发明中存储脸部变形数据时,可以考虑采用图像通道来存储预先计算的标准正脸的脸部变形数据。具体地,本发明在存储方式上采用例如图像的四个通道rgba(r:红色,g:绿色,b:蓝色,a:透明)中的两个通道(例如,利用r和g通道)分别存储水平方向与竖直方向的变形信息。在使用时,这两个方向的变形信息可以组合成偏移向量,来表示所在点的调整方向与大小。

在本发明中,可以采用图像的rgba这4个通道中的两个通道(例如,利用r和g通道)来存储位移,在这两个通道中,其中一个通道存储的是x方向的位移,另一个通道存储的是y方向的位移。

在步骤s120,计算一个脸部图像中的待变形人脸相对于标准正脸的变换参数。

在本步骤,需要将拍摄的脸部图像中的待变形人脸的特定点的位置相对于上述的标准正脸的特定点的位置进行一定的变换计算,算出例如旋转(角度)、尺度(缩放大小)、平移量(例如,与中心点的偏移)等参数的数值,以便由此在后续得到要对该待变形人脸进行特定变形时所需的位置变化。

例如,在进行变换参数的计算时,可以在待变形人脸的特定位置(例如人脸图像的眼睛、鼻子、嘴巴部位)的坐标与标准正脸的相应位置(例如标准正脸的眼睛、鼻子、嘴巴部位)的坐标之间进行坐标变换,得到所述待变形人脸相对于标准正脸的变换参数。这里,该变换参数可以包括旋转角度、尺度大小、平移量等信息。

这里,作为例子,在本步骤计算出的待变形人脸相对于标准正脸的例如旋转(角度)、尺度(缩放大小)、平移量(例如,与中心点的偏移)等变换参数,可以理解为,如果将该待变形人脸变成标准正脸,需要经过相应的旋转、尺度和平移量的变化。

在步骤s130,将计算出的变换参数结合存储的标准正脸的所述脸部变形数据,应用于所述待变形人脸,作为对该变形人脸的变形处理,以得到变形的脸部图像。

如前所述,作为例子,在步骤s120计算出的待变形人脸相对于标准正脸的例如旋转(角度)、尺度(缩放大小)、平移量(例如,与中心点的偏移)等变换参数,可以理解为,如果将该待变形人脸变成标准正脸,需要经过相应的旋转、尺度和平移量的变化。

相应地,在本步骤,根据该变换,为待变形人脸图像中的每个像素点查找对应的偏移量。

从而,作为例子,基于待变形人脸图像中的每个像素点经过上述的变换之后得到的坐标数据,从标准正脸的脸部变形数据中寻找相应的变形数据,则可以得到待变形人脸要进行变形所需的变形数据,再将该所需的变形数据作用于待变形人脸的特定点,即进行变形处理,则可以得到变形的脸部图像。

例如,可以基于得到的上述变换参数,对于待变形人脸中的每个像素点的坐标(可称为“变换前坐标”),进行到标准正脸的相应位置的坐标变换,得到待变形人脸的该像素点的变换后坐标;然后,依据待变形人脸的该像素点的变换后坐标,从标准正脸的脸部变形数据中查找与该变换后坐标相对应的变形数据(例如,一个像素点的变换前坐标为(10,20),经过相应的变换处理,得到该像素点的变换后坐标为(15,27));然后,将与该变换后坐标相对应的变形数据中的在水平和竖直方向上的偏移量施加于该像素点的坐标,进行待变形人脸的变形处理(例如,与标准正脸的坐标点(15,27)相对应的偏移数据为(+2,-1),则该像素点的变换前坐标加上偏移数据,即该像素点的变形处理为(10+2,20-1))。依次对于待变形人脸的每个像素点进行上述的变形处理,得到变形的人脸。

上面在进行变形处理时,没有考虑变换参数中的旋转角度,也可以进一步结合旋转角度进行变形处理,即,可以对变换前坐标进行角度的旋转,在此不再赘述。

请注意,上述的在步骤s120和s130中所作的变换参数的计算和变形处理都仅是一种例子,实际上要计算变换参数和进行变形处理的方法不限于该例子,因此,不应将其作为对本发明的限制。相反,本发明不应仅限于这一种方式,而是任何合适的变换参数的计算和利用变换参数与脸部变形数据进行变形处理的方式的都是可以的。

通过存储预先计算的脸部变形数据,并结合待变形人脸相对于标准正脸的变换参数来对待变形人脸作变形处理,能够减少处理和计算资源的使用,提高响应速度,而且能够得到较好的变形效果,有效提升用户体验。

为了使得本发明更清楚和容易理解,以下将再进一步具体描述根据本发明的另一个示例性实施例的脸部图像处理方法。

图3给出了根据本发明的另一个示例性实施例的脸部图像处理方法的流程图。

在步骤s201,对于一个待变形脸部图像,在存储脸部变形数据的步骤s110之前,先计算该脸部图像上的待变形人脸的脸部中心点。

例如,为了更好地避免非正脸图像(例如侧脸或抬头等)或者由于人脸转动所带来的计算偏差,根据待变形人脸上的左眼、右眼、左嘴角、右嘴角这些脸部关键点(即,眼睛和嘴巴)的位置来计算脸部中心点,而不是采用通常的鼻子点来作为脸部中心点。

另外,还可以在本步骤也采用同样的方式来计算标准正脸的脸部中心点(即不采用鼻子点作为脸部中心点,而是通过左眼、右眼、左嘴角、右嘴角这些脸部关键点的位置来计算),由此使得在后续存储的查找表(脸部变形数据)不以鼻子为脸部中心,而是以在此所计算得到的该脸部中心点为中心。

另外,还可以将计算的待变形人脸的脸部中心点与待变形人脸上的鼻子点求差,所得到的差值数据将作为上述瘦脸查找表中的待变形人脸上特定点相对于标准正脸的相应点的、在水平方向上的补偿量,从而使得变形效果更加自然。

具体而言,这里作为例子,变换矩阵是以5个标记点计算得出的(本领域技术人员应当明白,本发明不限于仅使用这5个标记点,而是可以使用任何合适数量的标记点),当待变形人脸出现侧脸情况时,标记点也会集体偏向某侧,使得变换矩阵也偏向某侧,而此时正确的瘦脸应该是以面部中心为中心,向中间变形。所以,可以根据这5个标记点中鼻子之外的4个标记点的中心点与鼻子点作对比,并进行补偿,以便使得效果更加自然。

在步骤s202,预先计算标准正脸的脸部变形数据。

在本发明中,标准正脸的脸部变形数据(也可以称为瘦脸查找表)用于表示标准正脸的脸部特定点要进行特定的变形所需的变形数据。其中,瘦脸查找表中的变形数据可以包括水平方向与竖直方向的偏移。这些偏移量可以通过例如由论文gustafssona.interactiveimagewarping[j].helsinkiuniversityoftechnologymay,1993.中提出的局部平移变形方法计算得到,本发明对此不再赘述。

请注意,计算标准正脸的脸部变形数据的方法不仅限于上面举出的这一种方式,而是任何能够计算标准正脸的脸部变形数据的方法都可以应用于本发明,因此,本发明对此不作任何限制。

另外,可选地,对于上面提及的脸部的轮廓点,本发明除了选用图2中所示的1~17号脸形点外,还可以考虑增加颈部的点对(例如增加3-8个颈部点对,即增加6-16个点),以便实现瘦脸的同时颈部也可以得到相应的变化(避免仅瘦脸而脖子没有相应变瘦的缺点),使得最终效果更加自然。

即,在本发明中,可选地,除了脸部上特定点的偏移量之外,脸部变形数据还包括颈部上特定点的偏移量。

另外,可选地,在本发明中,图像中每个点的单通道可以用比特数据来表示,例如可以表示为8个比特、16个比特等等,由此变形信息的偏移向量中的数据的取值范围可以有效增大,例如8个比特的话,取值范围增大为[0,255]。由此,本发明通过将一定范围的变形量(例如较为合理的[-0.5,0.5]等)映射到该由水平方向和竖直方向的变形信息构成的信息空间(例如8比特的数据表示,取值范围为[0,255])中,由此提高了数据精度。

在步骤s203,可以对标准正脸的脸部变形数据进行平滑处理。

具体地,在本发明中,可以对瘦脸查找表进行例如高斯模糊处理的平滑处理,以使得相邻点之间的变形数据更加平滑,避免最终瘦脸图像出现不均匀变形的问题。

然后,在步骤s210,存储预先计算的标准正脸的脸部变形数据,该脸部变形数据包括标准正脸上的特定点进行特定变形所需的在水平方向与竖直方向的偏移信息(例如偏移量)。本步骤与前面所述的步骤s110类似,在此不再赘述。

在步骤s220,计算一个脸部图像中的待变形人脸相对于标准正脸的变换参数。

本步骤与前面描述的步骤s120类似。

另外,再进一步地,对于变换参数的计算,以下将进行更详细的解释和描述。

由于上述的瘦脸查找表(即,脸部变形数据)是以标准正脸(也可以称为“平均脸”)为模板来生成的,因此,当需要对带有一定偏转角度的人脸变形时,瘦脸查找表也应该先进行相应变换再采样使用。

传统的方法一般采用仿射变换或单应变换来描述这类图像的人脸变换,但是,这类方法对侧脸、转头、弯头的支持存在一些问题。

针对上述这样的问题,本发明定义了一种特殊的变换方式,不仅考虑了二维平面的平移、旋转、尺度等因素,还考虑了如何使正脸模板的查找表更好地适用于非正脸的变形问题中。

以下将举例来更详细地介绍本发明的变换参数。

首先,假设可以定义一个脸部的关键点集合s为:s={s0,s1,s2,s3,s4}。即,一个脸部的关键点集合s可由5个点s0,s1,s2,s3,s4组成,这5个点可以分别对应于人脸的特征部位,即左眼、右眼、鼻子、左嘴角、右嘴角。

这里,可以假设标准正脸的关键点集合为s0(将标准正脸假设成是0时刻的脸部姿态),其中集合s0中的第i个点可以定义为另外,将t时刻的待变形人脸的关键点集合假设为st,其中集合st中的第i个点可以定义为

另外,一个脸部的关键点集合s对应的眼间距可以定义为

deye=||d0-d1||/2,(1)

即,眼间距可以定义为两眼的中心位置。

另外,再将由该集合s中的两个点si与sj确定的中心点定义为

mij=(si+sj)/2(2)。

相应地,将由该集合s中的三个点si、sj、sk这三个点确定的中心点定义为mijk,

mijk=(si+sj+sk)/3(3)。

下面,将先介绍变换参数中的尺度变化参数。

所谓尺度变化参数可以认为是用来描述图像的放大缩小尺度的参数,例如,一个拍摄的人脸图像与标准正脸的大小可能不同,那么该人脸图像的大小要变成标准正脸的话,需要进行一定程度的缩小或放大,此时就可以采用尺度变化参数来进行描述这样的缩小或放大。

在本发明中,作为一个例子,可以例如由下式计算得出待变形人脸到标准正脸的尺度变化参数scale,

由式(4)可以看出,作为一个例子,本发明的尺度变化参数可以为以下这两个参数之中的最小值:1)标准正脸的两眼中心点与鼻子(通常为鼻尖)的距离与待变形人脸的该距离之比;以及2)标准正脸与待变形人脸的眼间距之比。

请注意,上面的尺度变换参数的这个例子仅是示意性的,本发明绝不仅限于这一种方式,而是能够用来表示待变形人脸与标准正脸之间的缩放关系的尺度变换参数都可以用在本发明中。

接下来将介绍变换参数中的旋转参数。

作为一个例子,可以将待变形人脸与标准正脸之间的旋转角度θ定义为两个向量夹角

这里,可以将旋转角度θ理解为待变形人脸的两眼中心点与鼻子(通常为鼻尖)的距离与向量(0.0,1.0)(代表标准正脸)之间的夹角。

这里,将由旋转角度θ确定的二维平面旋转矩阵定义为rotate(θ),该参数矩阵将在后续的平移量参数计算中使用。

请注意,上面的旋转参数的这个例子仅是示意性的,本发明绝不仅限于这一种方式,而是能够用来表示待变形人脸与标准正脸之间的角度变换关系的旋转参数都可以用在本发明中。

接下来将继续介绍变换参数中的平移量参数。

这里,作为例子,可以将用于表示正脸图像与待变形图像的对准的平移量参数translation定义为

这里,上述的平移量参数的计算式可以认为是为了使得标准正脸的中心点与待变形人脸的中心点进行对准而需要进行的位置变换。

对于式(6)而言,这样的中心点是左眼、右眼、鼻子这三者的中心。如前所述,脸部中心点也可以直接是鼻子,或者是由其它方式来限定的中心点,例如由左眼、右眼、左嘴角、右嘴角这四者限定的中心点,或者也可以是通过由其它的一些点(例如,68点标定法中的一些特定点)来限定的中心点。

另外,在式(6)中定义的平移量考虑了尺度、旋转和平移三种因素,即,还采用了尺度变换参数和旋转参数来限定平移量。即,可以先对一个待变形人脸上的点(可以是该脸上的特定点,例如68点标定法中的68个点或者其一部分等等)进行尺度变换,再对其进行旋转变换,最后对其进行平移量变换,以对该待变形人脸应用这些变换参数,得到与标准正脸进行了这些变换操作的一个已变换人脸,以便后续基于该已变换人脸的脸部数据的坐标,从标准正脸的脸部变形数据中查找该坐标的变形数据,从而基于找到的变形数据,对该已变形人脸进行变形处理,得到变形的脸部图像。

请注意,对于待变形人脸的变换参数的计算而言,不需要限制尺度变换、旋转、对准等这些操作之间的先后顺序及其实际的计算方法,而是只要能够按照本发明的实质,在待变形人脸与标准正脸之间建立良好的变换关系,或者更准确地说建立映射关系即可。

总之,本发明对于平移量参数的计算方式不进行任何限制,而是只要是能够表示正脸图像与待变形图像之间的对准的平移量参数都可以用在本发明中。

由上可知,本发明的变换参数中包括当前时刻的脸部图像(即,待变形人脸)上的特定点相对于标准正脸上的特定点的旋转角度、尺度变化和平移量等因素。通过在变换参数中包括这些因素,可以使得通过变换参数来变形后的人脸的变形效果更加自然。

在上面的例子中,本发明的变换参数考虑了尺度、旋转和平移三种因素,但是本领域技术人员应该明白,本发明不应当仅限于这三种变换要素,因此它们不应当构成对本发明的任何限制。

在步骤s230,将计算出的变换参数结合存储的标准正脸的所述脸部变形数据,应用于所述待变形人脸,作为对该变形人脸的变形处理,以得到变形的脸部图像。本步骤与前面描述的步骤s130类似。

为了更清楚和容易理解起见,以下将再对于步骤s230中的操作进行举例说明。

首先在例如用于处理4个顶点的顶点shader中传入变换参数(例如上面描述的尺度变化、旋转角度、平移量等等),并计算图像的4个顶点中的各个顶点的相应的瘦脸查找表(脸部变形数据)的坐标。

之后,在用于处理4个顶点之外的图像点的片元shader中根据从顶点shader传递过来的瘦脸查找表坐标来从存储装置110或210(分别参见图5和图6)获取与该坐标对应的脸部变形信息。

在片元shader中,从瘦脸查找表中获取的变形向量是基于正脸模板的,而实际的待变形人脸可能有一定的角度,因此,需要依据变换参数计算中的旋转角度进行计算以得到最终变形向量。

也就是说,可以通过opengl着色程序(例如shader),将变换参数应用于待变形人脸,得到整形美化后的人脸。

图4给出了根据本发明的一个示例性实施例的脸部图像处理设备的框图。

如图4所示,根据本发明的一个示例性实施例的脸部图像处理设备100可以包括存储装置110、变换参数计算装置120、变形执行装置130。

其中,存储装置110可以被配置用于存储预先计算的标准正脸的脸部变形数据,该脸部变形数据包括标准正脸上的特定点进行特定变形所需的在水平方向与竖直方向的偏移信息。

变换参数计算装置120可以被配置用于计算计算一个脸部图像中的待变形人脸相对于标准正脸的变换参数。

变形执行装置130可以被配置用于将计算出的变换参数结合存储的标准正脸的所述脸部变形数据,应用于所述待变形人脸,作为对该变形人脸的变形处理,以得到变形的脸部图像。

另外,可选地,上述变换参数包括待变形人脸相对于标准正脸的旋转角度、尺度变化和平移量等参数。

另外,可选地,在上述存储装置110中,采用图像的rgba这4个通道中的两个通道来存储标准正脸上特定点进行特定变形所需的偏移信息,其中一个通道存储所述特定点进行特定变形所需的在x方向的偏移信息,另一个通道存储所述特定点进行特定变形所需的在y方向的偏移信息。

图5给出了根据本发明的另一个示例性实施例的脸部图像处理设备的框图。

如图5所示,除了与上述的存储装置110、变换参数计算装置120、变形执行装置130类似的存储装置210、变换参数计算装置220、变形执行装置230之外,根据本发明的另一个示例性实施例的脸部图像处理设备200还可以包括脸部中心点确定装置201、脸部变形数据生成装置202、变形数据处理装置203。

其中,脸部中心点确定装置201可以被配置用于在计算脸部变形数据和/或计算变换参数时,通过左眼、右眼、左嘴角、右嘴角的位置数据或者这些数据中的一部分来确定脸部中心点。

脸部变形数据生成装置202可以被配置用于生成标准正脸的脸部变形数据。如前所述,标准正脸的脸部变形数据(也可以称为瘦脸查找表)用于表示标准正脸的脸部特定点要进行特定的变形所需的变形数据。其中,瘦脸查找表中的变形数据可以包括水平方向与竖直方向的偏移。这些偏移量可以通过例如由论文gustafssona.interactiveimagewarping[j].helsinkiuniversityoftechnologymay,1993.中提出的局部平移变形方法计算得到,本发明对此不再赘述。

变形数据处理装置203可以被配置用于对所述脸部变形数据进行高斯模糊处理以使得相邻点之间的变形数据更加平滑。

另外,可选地,除了标准正脸的脸部上特定点的偏移信息之外,所述脸部变形数据还包括标准正脸的相应颈部上的特定点的偏移信息。

另外,可选地,所述存储装置110通过采用图像的两个通道来存储标准正脸上的特定点进行特定变形所需的在水平方向与竖直方向的偏移信息时,用比特数来表示所述特定点中的每个点的一个通道上的偏移信息,以将特定范围的变形量映射到一个更大的数据空间,由此能够提高数据的精度。

在本发明中,通过采用图像存储预先计算好的脸部变形数据,并计算待变形人脸相对标准正脸的变换参数,并在顶点shader(vertexshader,用于处理图像边角上的4个顶点)中根据变换参数计算顶点对应的纹理坐标,在片元shader(fragmentshader,用于处理图像的4个顶点之外的每个像素点)中再依据纹理坐标从瘦脸查找表中获取变形向量并应用于待变形人脸,从而使得本发明能够以较少的计算量在移动端视频场景中实时进行人脸变形。

另外,在本发明中,还针对弯头、转头、仰头等特殊角度进行了特殊处理(例如通过旋转角度的变换参数的计算与运用),在非正脸状态下也能实现比较自然的变形效果。

请注意,虽然上面在描述存储脸部变形数据时,用的是“瘦脸查找表”或者“图像通道”等方式来存储,但是本领域技术人员应该理解,这样的描述是为了使得本发明更容易理解和描述,实际上存储脸部变形数据的方式不应该被仅仅限制于上面所描述的方式,而是任何适当的存储方式应该都是可以的,即,本发明不应该在存储方式上受到任何限制。例如,虽然着色器shader要求的输入是图像通道存储方式的,但是采用其他存储方式存储的数据可以变成图像通道的存储方式来作为shader的输入,不影响shader的使用。何况,另一方面,使用shader也只是本发明的一种例举的实施方式,实际上本发明在具体的实施方式不作任何限制。

图6给出了根据本发明的一个示例性实施例的数据处理设备的示意性框图。

参见图6,该数据处理设备1包括存储器10和处理器20。

在本发明中,图4和图5中示出的存储装置和图6的存储器可以是不同的部件,也可以是同一个部件,本发明对此不作任何限制。

处理器20可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器20可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器20可以使用定制的电路实现,例如特定用途集成电路(asic,applicationspecificintegratedcircuit)或者现场可编程逻辑门阵列(fpga,fieldprogrammablegatearrays)。

存储器10上存储有可执行代码,当所述可执行代码被所述处理器20执行时,使所述处理器20执行上面描述的数据迁移方法之一。其中,存储器10可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器20或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器10可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器10可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图等等显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1