本发明涉及图像处理领域,更具体地涉及一种图像融合的方法、装置及计算机存储介质。
背景技术
在图像处理的过程中,某些场景下需要对图像中的人脸进行替换,例如影视作品后期处理等。对人脸进行替换,即图片换脸,是指将一张图片中的人脸替换另一图片中的人脸。由于不同图片之间的差别等,该替换过程可能出现人脸变形甚至扭曲、替换后的人脸图像失真等情形,导致图像处理的效果不佳。
技术实现要素:
考虑到上述问题而提出了本发明。本发明提供了一种图像融合的方法、装置及计算机存储介质,能够将第一原始图像中的第一人脸替换为第二人脸,且保证融合后的图像效果。
根据本发明的一方面,提供了一种图像融合的方法,所述方法包括:
确定第一原始图像中的第一人脸区域以及所述第一人脸区域的第一边界,确定第二原始图像中的第二人脸区域以及所述第二人脸区域的第二边界;
根据所述第一边界与所述第二边界,确定仿射变换后的第二人脸区域,其中,所述仿射变换后的第二人脸区域表示将所述第二人脸区域从所述第二原始图像的坐标中仿射至所述第一原始图像的坐标中;
将所述仿射变换后的第二人脸区域与所述第一原始图像进行融合,得到融合图像,所述融合图像表示将所述第一原始图像中的第一人脸区域替换为所述第二人脸区域之后的结果图像。
在本发明的一个实施例中,在根据所述第一边界与所述第二边界,确定仿射变换后的第二人脸区域之前,还包括:
通过调整所述第一边界得到边界内缩的第一人脸区域,通过调整所述第二边界得到边界内缩的第二人脸区域。其中,所述仿射变换后的第二人脸区域表示将所述边界内缩的第二人脸区域从所述第二原始图像的坐标中仿射至所述第一原始图像的坐标中。
在本发明的一个实施例中,还包括:基于所述边界内缩的第一人脸区域,对所述边界内缩的第二人脸区域进行颜色调整,得到调色后的第二人脸区域。其中,所述仿射变换后的第二人脸区域表示将所述调色后的第二人脸区域从所述第二原始图像的坐标中仿射至所述第一原始图像的坐标中。
在本发明的一个实施例中,所述根据所述第一边界与所述第二边界,确定仿射变换后的第二人脸区域,包括:
根据所述第一边界与所述第二边界确定仿射变换矩阵;
根据所述仿射变换矩阵对所述调色后的第二人脸区域进行变换,得到所述仿射变换后的第二人脸区域。
在本发明的一个实施例中,所述根据所述第一边界与所述第二边界确定仿射变换矩阵,包括:
根据所述第一边界上的关键点的坐标确定第一矩阵,根据所述第二边界上的关键点的坐标确定第二矩阵;
根据所述第一矩阵和所述第二矩阵确定所述仿射变换矩阵。
在本发明的一个实施例中,将所述第一矩阵表示为q,将所述第二矩阵表示为p,将所述仿射变换矩阵表示为h,则满足:h=qp-1,其中,p-1表示第二矩阵p的伪逆矩阵。
在本发明的一个实施例中,所述根据所述第一边界上的关键点的坐标确定第一矩阵,根据所述第二边界上的关键点的坐标确定第二矩阵,包括:
确定所述第一矩阵q和所述第二矩阵p分别表示为:
其中,(uj,vj)表示所述第一边界上的第j个关键点的坐标,(xi,yi)表示所述第二边界上的第i个关键点的坐标,0≤j<n,0≤i<n,n表示所述第一边界和所述第二边界上的关键点的数量。
在本发明的一个实施例中,所述通过调整所述第一边界得到边界内缩的第一人脸区域,通过调整所述第二边界得到边界内缩的第二人脸区域,包括:
将所述第一边界上的左脸颊的关键点向内移动第一预定距离,将所述第一边界上的右脸颊的关键点向内移动第二预定距离,将所述第一边界上的位于下巴处的关键点向内移动第三预定距离,得到所述边界内缩的第一人脸区域;
将所述第二边界上的左脸颊的关键点向内移动第四预定距离,将所述第二边界上的右脸颊的关键点向内移动第五预定距离,将所述第二边界上的位于下巴处的关键点向内移动第六预定距离,得到所述边界内缩的第二人脸区域。
在本发明的一个实施例中,所述第一人脸区域中的左眼外眼角处的关键点与左侧太阳穴处的关键点之间具有第一距离,所述第一人脸区域中的右眼外眼角处的关键点与右侧太阳穴处的关键点之间具有第二距离,所述第一预设距离等于所述第一距离的三分之一,所述第二预设距离等于所述第二距离的三分之一,所述第三预设距离等于所述第一预设距离与所述第二预设距离的平均值;
所述第二人脸区域中的左眼外眼角处的关键点与左侧太阳穴处的关键点之间具有第三距离,所述第二人脸区域中的右眼外眼角处的关键点与右侧太阳穴处的关键点之间具有第四距离,所述第四预设距离等于所述第三距离的三分之一,所述第五预设距离等于所述第四距离的三分之一,所述第六预设距离等于所述第四预设距离与所述第五预设距离的平均值。
在本发明的一个实施例中,所述基于所述边界内缩的第一人脸区域,对所述边界内缩的第二人脸区域进行颜色调整,得到调色后的第二人脸区域,包括:
将所述边界内缩的第一人脸区域转换为第一yuv图像,将所述边界内缩的第二人脸区域转换为第二yuv图像;
分别计算所述第一yuv图像的y通道值、u通道值和v通道值,分别计算所述第二yuv图像的y通道值、u通道值和v通道值;
根据所述第一yuv图像的y通道值与所述第二yuv图像的y通道值,确定所述调色后的第二人脸区域中像素的y通道值;
根据所述第一yuv图像的u通道值与所述第二yuv图像的u通道值,确定所述调色后的第二人脸区域中像素的u通道值;
根据所述第一yuv图像的v通道值与所述第二yuv图像的v通道值,确定所述调色后的第二人脸区域中像素的v通道值。
在本发明的一个实施例中,所述根据所述第一yuv图像的y通道值与所述第二yuv图像的y通道值,确定所述调色后的第二人脸区域中像素的y通道值,包括:
通过下式计算所述调色后的第二人脸区域中像素(x,y)的y通道值:
其中,m′(x,y)表示所述调色后的第二人脸区域中像素(x,y)的y通道值,m(x,y)表示所述第二yuv图像中像素(x,y)的y通道值,devib表示所述第一yuv图像的y通道的标准差,devim表示所述第二yuv图像的y通道的标准差。
在本发明的一个实施例中,所述根据所述第一yuv图像的u通道值与所述第二yuv图像的u通道值,确定所述调色后的第二人脸区域中像素的u通道值,包括:
通过下式计算所述调色后的第二人脸区域中像素(x,y)的u通道值:
其中,m′(x,y)表示所述调色后的第二人脸区域中像素(x,y)的u通道值,m(x,y)表示所述第二yuv图像中像素(x,y)的u通道值,devib表示所述第一yuv图像的u通道的标准差,devim表示所述第二yuv图像的u通道的标准差,maxb表示所述第一yuv图像的u通道的最大值,maxm表示所述第二yuv图像的u通道的最大值,minb表示所述第一yuv图像的u通道的最小值,minm表示所述第二yuv图像的u通道的最小值,avgb表示所述第一yuv图像的u通道的平均值,avgm表示所述第二yuv图像的u通道的平均值,
其中,所述条件1为:
所述条件2为:
所述条件3为:
所述条件4为:
在本发明的一个实施例中,所述将所述仿射变换后的第二人脸区域与所述第一原始图像进行融合,得到融合图像,包括:
计算所述仿射变换后的第二人脸区域的散度矩阵;
计算所述仿射变换后的第二人脸区域的边界的1至m阶近邻;
循环执行m次泊松融合的迭代,得到泊松融合后的结果;
将所述泊松融合后的结果使用融合掩码进行阿尔法融合,以得到所述融合图像。
在本发明的一个实施例中,所述融合掩码通过以下方法得到:
根据所述边界内缩的第二人脸区域的边界,确定第一掩码;
将所述第一掩码向内侵蚀预定像素值,得到第二掩码;
将所述第一掩码向外扩张所述预定像素值,得到第三掩码;
根据所述第一掩码、第二掩码和所述第三掩码,确定所述融合掩码。
在本发明的一个实施例中,所述根据所述第一掩码、第二掩码和所述第三掩码,确定所述融合掩码,包括:
将fmask(x,y)组成的图像确定为所述融合掩码,其中,
mask2表示所述第二掩码,mask4表示所述第二掩码与所述第三掩码之间的区域的掩码,e表示所述预定像素值,fmask1(x,y)表示所述第一掩码的掩码图像,
在本发明的一个实施例中,所述整数集合上的函数表示为:
其中,t为可调节数值。
在本发明的一个实施例中,所述确定第一原始图像中的第一人脸区域,包括:
获取与所述第二原始图像所关联的第一原始图像中的至少一个坐标值;
根据所述至少一个坐标值,确定所述第一原始图像中的所述第一人脸区域。
根据本发明另一方面,提供了一种图像融合的装置,所述装置用于实现前述方面及其各种示例的图像融合的方法,所述装置包括:
确定模块,用于确定第一原始图像中的第一人脸区域以及所述第一人脸区域的第一边界,确定第二原始图像中的第二人脸区域以及所述第二人脸区域的第二边界;
变换模块,用于根据所述第一边界与所述第二边界,确定仿射变换后的第二人脸区域,其中,所述仿射变换后的第二人脸区域表示将所述第二人脸区域从所述第二原始图像的坐标中仿射至所述第一原始图像的坐标中;
融合模块,用于将所述仿射变换后的第二人脸区域与所述第一原始图像进行融合,得到融合图像,所述融合图像表示将所述第一原始图像中的第一人脸区域替换为所述第二人脸区域之后的结果图像。
根据本发明的又一方面,提供了一种图像融合的装置,包括存储器、处理器及存储在所述存储器上且在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述方面及各个示例所述的图像融合的方法的步骤。
根据本发明的再一方面,提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述方面及各个示例所述的图像融合的方法的步骤。
由此可见,本发明实施例基于第一原始图像与第二原始图像的人脸区域的边界之间的关系,能够将第一原始图像中的人脸替换为第二原始图像中的人脸,实现了图像的换脸。该过程适用于各种场景的底图,耗时短,并且融合效果好,不会出现合成失真的情形。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本发明实施例的电子设备的一个示意性框图;
图2是本发明实施例的图像融合的方法的一个示意性流程图;
图3是本发明实施例的第一初始图像的一个示意图;
图4是本发明实施例的第二初始图像的一个示意图;
图5是本发明实施例的图像融合的方法的另一个示意性流程图;
图6是本发明实施例的第二人脸区域的第二边界进行内缩的示意图;
图7是本发明实施例的边界内缩的方向的示意图;
图8是本发明实施例的颜色调整的一个示意图;
图9是本发明实施例的边界近邻的一个示意图;
图10是本发明实施例的融合图像的一个示意图;
图11是本发明实施例的掩码的示意图;
图12是本发明实施例的整数集合上的函数的示意图;
图13是本发明实施例的融合掩码的示意图;
图14是本发明实施例的一个底图的示意图;
图15是本发明实施例的另一目标图的示意图;
图16是本发明实施例的针对图14的融合图像的示意图;
图17是本发明实施例的图像融合的装置的一个示意性框图。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
本发明实施例可以应用于电子设备,图1所示为本发明实施例的电子设备的一个示意性框图。图1所示的电子设备10包括一个或更多个处理器102、一个或更多个存储装置104、输入装置106、输出装置108、图像传感器110以及一个或更多个非图像传感器114,这些组件通过总线系统112和/或其它形式互连。应当注意,图1所示的电子设备10的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
所述处理器102可以包括cpu1021和gpu1022或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,例如现场可编程门阵列(field-programmablegatearray,fpga)或进阶精简指令集机器(advancedrisc(reducedinstructionsetcomputer)machine,arm)等,并且处理器102可以控制所述电子设备10中的其它组件以执行期望的功能。
所述存储装置104可以包括一个或更多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器1041和/或非易失性存储器1042。所述易失性存储器1041例如可以包括随机存取存储器(randomaccessmemory,ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器1042例如可以包括只读存储器(read-onlymemory,rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或更多个计算机程序指令,处理器102可以运行所述程序指令,以实现各种期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或更多个。
所述输出装置108可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或更多个。
所述图像传感器110可以拍摄用户期望的图像(例如照片、视频等),并且将所拍摄的图像存储在所述存储装置104中以供其它组件使用。
当注意,图1所示的电子设备10的组件和结构只是示例性的,尽管图1示出的电子设备10包括多个不同的装置,但是根据需要,其中的一些装置可以不是必须的,其中的一些装置的数量可以更多等等,本发明对此不限定。
图2是本发明实施例的图像融合的方法的一个示意性流程图。图2所示的方法包括:
s101,确定第一原始图像中的第一人脸区域以及所述第一人脸区域的第一边界,确定第二原始图像中的第二人脸区域以及所述第二人脸区域的第二边界;
s102,根据所述第一边界与所述第二边界,确定仿射变换后的第二人脸区域,其中,所述仿射变换后的第二人脸区域表示将所述第二人脸区域从所述第二原始图像的坐标中仿射至所述第一原始图像的坐标中;
s103,将所述仿射变换后的第二人脸区域与所述第一原始图像进行融合,得到融合图像,所述融合图像表示将所述第一原始图像中的第一人脸区域替换为所述第二人脸区域之后的结果图像。
具体地,所述仿射变换后的第二人脸区域表示将所述第二人脸区域从所述第二原始图像的坐标中仿射至所述第一原始图像的坐标中第一人脸区域的位置。
经过s102之后第二人脸区域整体被仿射变换到了第一原始图像中第一人脸区域的位置上,这样能够对五官形状差异较大的图像实现更好的合成效果。经过s103的融合处理之后,可以消除第二人脸区域边界处的不连续和不自然的现象。
示例性地,可以将第一原始图像称为底图,将第二原始图像称为目标图。图2所示的方法旨在将底图中的人脸替换为目标图中的人脸(即目标人脸),实现对底图中的人的换脸过程。为了更直观地理解本发明实施例中的方法,以图3所示的图为底图,以图4所示的图为目标图进行以下的阐述。
作为一种实现方式,在s101中,可以使用卷积神经网络(convolutionalneuralnetwork,cnn)分别对第一原始图像和第二原始图像进行人脸检测,以分别确定第一人脸区域和第二人脸区域。其中,第一人脸区域可以由多个(如83个)关键点进行标记(landmark),且所标记的第一人脸区域具有第一边界,该第一边界上可以由n个关键点进行标记。类似地,第二人脸区域也可以由多个(如83个)关键点进行标记,且所标记的第二人脸区域具有第二边界,该第二边界上可以由n个关键点进行标记。示例性地,可以将第一人脸区域表示为b,将第二人脸区域表示为m;可以将第一边界表示为l1,b,将第二边界表示为l1,m。作为图示,图4所示出的目标图中同时示出了83个关键点以及包括n个关键点的第二边界l1,m。其中,83个关键点可以按照0~82的顺序进行编号,为了简洁视图,图4中未显示出该编号。
作为一种实现方式,在s101之后且在s102之前,如图5所示,还可以包括:
s1011,通过调整所述第一边界得到边界内缩的第一人脸区域,通过调整所述第二边界得到边界内缩的第二人脸区域;
s1012,基于所述边界内缩的第一人脸区域,对所述边界内缩的第二人脸区域进行颜色调整,得到调色后的第二人脸区域。
相应地,在s102中,仿射变换后的第二人脸区域表示将调色后的第二人脸区域从第二原始图像的坐标中仿射至第一原始图像的坐标中第一人脸区域的位置。
通过分别调整底图和目标图中的人脸区域的边界,得到底图和目标图中边界内缩的人脸区域,有利于保证人脸边缘处不会影响图像的合成效果。
示例性地,s1011可以包括:将所述第一边界上的左脸颊的关键点向内移动第一预定距离,将所述第一边界上的右脸颊的关键点向内移动第二预定距离,将所述第一边界上的位于下巴处的关键点向内移动第三预定距离,得到所述边界内缩的第一人脸区域。将所述第二边界上的左脸颊的关键点向内移动第四预定距离,将所述第二边界上的右脸颊的关键点向内移动第五预定距离,将所述第二边界上的位于下巴处的关键点向内移动第六预定距离,得到所述边界内缩的第二人脸区域。
应注意,此处的左和右是相对的,例如,左可以是指人脸的实际左侧也可以是指从观察者的视角的左侧。作为一例,本发明后续实施例将在附图的平面图的左侧脸颊部分认为是左脸颊,相应地将在附图的平面图的右侧脸颊部分认为是右脸颊。
示例性地,第一预定距离至第六预定距离可以是预先确定的值,可以是与人脸的大小等相关的值,可以是其他值,本发明对此不限定。作为一种实现方式,所述第一人脸区域中的左眼外眼角处的关键点与左侧太阳穴处的关键点之间具有第一距离,所述第一人脸区域中的右眼外眼角处的关键点与右侧太阳穴处的关键点之间具有第二距离,所述第一预设距离等于所述第一距离的三分之一,所述第二预设距离等于所述第二距离的三分之一,所述第三预设距离等于所述第一预设距离与所述第二预设距离的平均值。所述第二人脸区域中的左眼外眼角处的关键点与左侧太阳穴处的关键点之间具有第三距离,所述第二人脸区域中的右眼外眼角处的关键点与右侧太阳穴处的关键点之间具有第四距离,所述第四预设距离等于所述第三距离的三分之一,所述第五预设距离等于所述第四距离的三分之一,所述第六预设距离等于所述第四预设距离与所述第五预设距离的平均值。
下面将参照第二人脸区域以及第二边界描述第四预设距离、第五预设距离和第六预设距离。参照图6,假设位于左侧太阳穴处的关键点的编号为0,位于左眼外眼角处的关键点的编号为27,将关键点0与关键点27之间的距离记为dist0,27。假设位于右侧太阳穴处的关键点的编号为18,位于右眼外眼角处的关键点的编号为69,将关键点18与关键点69之间的距离记为dist18,69。另外假设位于下巴处的关键点的编号为9,位于左脸颊的关键点的编号为0至9,位于右脸颊的关键点的编号为9至18。则可以将关键点0~8向内移动距离1/3dist0,27,将关键点9向内移动距离(dist0,27+dist18,69)/6,将关键点10~18向内移动距离1/3dist18,69。
其中,向内移动是指朝向鼻尖的方向移动,具体地,关键点0的移动方向可以沿着0与27之间的直线方向,关键点18的移动方向可以是沿着18与69之间的直线方向,关键点1~17的移动方向可以是被移动的点的相邻两点之间的内法线方向。为了描述的方便,以编号为6的关键点为例,参见图7,关键点6是被移动的点,其相邻两点是关键点5和关键点7,相邻两点之间的内法线方向是关键点5和关键点7的连续的垂直向内的方向,如图7中所示的箭头方向。这样根据移动的方向和移动的距离,便可以确定移动后的位置,从而可以确定内缩后的人脸区域。可理解,在s1011中,将部分边界上的关键点进行内缩,其他区域的关键点不移动,具体地,位于眼部、鼻部、唇部等的内部关键点以及位于眉毛等的边界关键点不移动。
以上结合图6和图7描述了将第二人脸区域内缩,从而得到边界内缩的第二人脸区域的过程。可理解,得到边界内缩的第一人脸区域的过程是类似的,为避免重复,这里不再赘述。示例性地,可以将边界内缩的第一人脸区域表示为b1,将第一边界上的关键点内缩后的集合表示为l2,b;将边界内缩的第二人脸区域表示为m1,将第二边界上的关键点内缩后的集合表示为l2,m。
在一些实施例中,还可以根据边界内缩后的第一边界(针对图4所示的83个关键点的情形,边界内缩后的第一边界即边界内缩后的第一人脸图像的边界)和边界内缩后的第二边界(针对图4所示的83个关键点的情形,边界内缩后的第二边界即边界内缩后的第二人脸图像的边界),确定仿射变换矩阵,本发明实施例对此不予限定。
示例性地,s1012可以包括:将所述边界内缩的第一人脸区域转换为第一yuv图像,将所述边界内缩的第二人脸区域转换为第二yuv图像;分别计算所述第一yuv图像的y通道值、u通道值和v通道值,分别计算所述第二yuv图像的y通道值、u通道值和v通道值;根据所述第一yuv图像的y通道值与所述第二yuv图像的y通道值,确定所述调色后的第二人脸区域中像素的y通道值;根据所述第一yuv图像的u通道值与所述第二yuv图像的u通道值,确定所述调色后的第二人脸区域中像素的u通道值;根据所述第一yuv图像的v通道值与所述第二yuv图像的v通道值,确定所述调色后的第二人脸区域中像素的v通道值。
yuv,亦称ycrcb,其中“y”表示明亮度(luminance或luma),也就是灰阶值;而“u”和“v”表示的则是色度(chrominance或chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
具体地,在s1012中,可以将m1和b1分别转换为yuv图像,再对转换后的yuv图像针对y、u、v三个通道分别进行统计,进一步将m1的yuv图像的色彩亮度进行调整,使之趋近于b1的yuv图像,从而得到调色后的第二人脸区域。其中,参照图8,可以按照比值(即b1的标准差/m1的标准差)进行调整,且取值范围在b1的最大值与最小值之间。
其中,可以针对第一yuv图像的三个通道分别统计其均值、最大值、最小值和标准差。针对第二yuv图像的三个通道分别统计其均值、最大值、最小值和标准差。
最后进行颜色调整时,可以通过下式计算调色后的第二人脸区域中像素(x,y)的y通道值:
可以通过下式计算调色后的第二人脸区域中像素(x,y)的u通道值或v通道值:
其中,所述条件1为:
所述条件2为:
所述条件3为:
所述条件4为:
在该调整过程中,计算y通道值时,m′(x,y)表示所述调色后的第二人脸区域中像素(x,y)的y通道值,m(x,y)表示所述第二yuv图像中像素(x,y)的y通道值,devib表示所述第一yuv图像的y通道的标准差,devim表示所述第二yuv图像的y通道的标准差。
在该调整过程中,计算u通道值时,m′(x,y)表示所述调色后的第二人脸区域中像素(x,y)的u通道值,m(x,y)表示所述第二yuv图像中像素(x,y)的u通道值,devib表示所述第一yuv图像的u通道的标准差,devim表示所述第二yuv图像的u通道的标准差,maxm表示所述第一yuv图像的u通道的最大值,maxm表示所述第二yuv图像的u通道的最大值,minb表示所述第一yuv图像的u通道的最小值,minm表示所述第二yuv图像的u通道的最小值,avgb表示所述第一yuv图像的u通道的平均值,avgm表示所述第二yuv图像的u通道的平均值。
在该调整过程中,计算v通道值时,m′(x,y)表示所述调色后的第二人脸区域中像素(x,y)的v通道值,m(x,y)表示所述第二yuv图像中像素(x,y)的v通道值,devib表示所述第一yuv图像的v通道的标准差,devim表示所述第二yuv图像的v通道的标准差,maxb表示所述第一yuv图像的v通道的最大值,maxm表示所述第二yuv图像的v通道的最大值,minb表示所述第一yuv图像的v通道的最小值,minm表示所述第二yuv图像的v通道的最小值,avgb表示所述第一yuv图像的v通道的平均值,avgm表示所述第二yuv图像的v通道的平均值。
进一步地,在该计算过程之后,确定所得到调色后的第二人脸区域的三通道值的取值范围。以y通道为例,假设b1的yuv图像的y通道的最大值为maxb,最小值为minb。如果计算得到的某像素(x',y')的y通道值m′(x',y')大于maxb,则可以设定m′(x',y')=maxb;如果计算得到的某像素(x',y')的y通道值m′(x',y')小于minb,则可以设定m′(x',y')=minb。这样,便可以将调色后的第二人脸区域的所有像素的y通道(u通道/v通道)值限定在取值范围minb与maxb之间。该过程也可以称为截断,示例性地,可以将该s1012的调色后的第二人脸区域表示为m2。
示例性地,s102可以包括:根据所述第一边界与所述第二边界之间的变换关系,确定仿射变换后的第二人脸区域。具体地,在s102中,可以根据所述第一边界与所述第二边界确定仿射变换矩阵;根据所述仿射变换矩阵对所述调色后的第二人脸区域进行变换,得到所述仿射变换后的第二人脸区域。
作为一种实现方式,可以根据所述第一边界上的关键点的坐标确定第一矩阵,根据所述第二边界上的关键点的坐标确定第二矩阵;根据所述第一矩阵和所述第二矩阵确定所述仿射变换矩阵。
具体地,所述第一矩阵表示为q,将所述第二矩阵表示为p,将所述仿射变换矩阵表示为h,则满足:h=qp-1,其中,p-1表示第二矩阵p的伪逆矩阵。
其中,第一矩阵q和第二矩阵p可以分别表示为:
其中,(uj,vj)表示所述第一边界上的第j个关键点的坐标,(xi,yi)表示所述第二边界上的第i个关键点的坐标,0≤j<n,0≤i<n,n表示所述第一边界和所述第二边界上的关键点的数量。参照图4或图6中所示的边界l1,m,n的值可以为29。
作为另一种实现方式,可以根据第一边界内缩后的关键点的坐标以及第二边界内缩后的关键点的坐标确定仿射变换矩阵,这里不再赘述。
这样,经过s102可以将位于第二初始图像的坐标系下的调色后的第二人脸区域(m2)仿射变换至位于第一初始图像的坐标系下。由此,便可以将目标人脸放置至最佳位置。并且,该过程对于张嘴闭嘴、五官形状等差异较大的图像也不会产生较大失真,保证了图像的处理效果。示例性地,可以将s102仿射变换后的第二人脸区域表示为m3。
作为另一种实现方式,在s101之后且在s102之前,还可以包括:基于所述第一人脸区域,对所述第二人脸区域进行颜色调整,得到调色后的第二人脸区域。相应地,在s102中,仿射变换后的第二人脸区域表示将调色后的第二人脸区域从第二原始图像的坐标中仿射至第一原始图像的坐标中第一人脸区域的位置。通过根据第一人脸区域对第二人脸区域进行颜色调整,可以使得合成后的图像更加自然,合成后的图像中人脸区域与其他区域的颜色相协调。可选地,还可以对该调色后的第二人脸区域进行边界内缩,这样有利于保证人脸边缘处不会影响图像的合成效果。即本发明实施例中还可以先进行颜色调整,然后再进行边界内缩。
作为一种实现方式,在s103中,可以使用单纯依据阿尔法(alpha,α)通道平滑过渡掩码的alpha融合,将m3与第一初始图像进行融合,以得到融合图像。这样,该融合过程的耗时更少,提高了处理效率。
作为另一种实现方式,在s103中,可以使用改进的快速迭代式泊松-alpha双重融合,将m3与第一初始图像进行融合,以得到融合图像。这样,该融合过程的效果更佳。具体地,可以计算所述仿射变换后的第二人脸区域的散度矩阵;计算所述仿射变换后的第二人脸区域的边界的1至m阶近邻(如图9所示),m为大于1的整数;循环执行m次泊松融合的迭代,得到泊松融合后的结果;将所述泊松融合后的结果使用融合掩码进行阿尔法融合,以得到所述融合图像。这样,便可以将图4中的目标图中的人脸替换图3中底图中的人脸,得到的融合图像可以如图10所示。
其中,相比于普通迭代式泊松融合(直接求解泊松方程),m的值可以减小至1/5甚至1/10;另外,考虑到第i次迭代时融合效果只能传播到i的深度,第i次迭代只对第1~i阶近邻进行计算;由此可以极大地减少计算量,减少耗时,提升计算效率,确保在较少时间内的处理效果,且可以适用于较大的图像。可见,该方法结合了泊松融合和alpha融合的优点,能够实现更好的处理效果,针对左右半脸光照差异较大的情形,该方法的效果更加显著。
示例性地,s103中的alpha融合所需的融合掩码可以通过下述方法得到:根据所述边界内缩的第二人脸区域的边界,确定第一掩码;将所述第一掩码向内侵蚀预定像素值,得到第二掩码;将所述第一掩码向外扩张所述预定像素值,得到第三掩码;根据所述第一掩码、第二掩码和所述第三掩码,确定所述融合掩码。该融合掩码可以用于alpha融合的alpha通道平滑过渡的掩码。
其中,预定像素值可以表示为e,其为正整数。也可以称为侵蚀/扩张量或侵蚀/扩张像素值等,其可以是预先定义的固定值,或者其可以根据s1011的结果来确定。作为一例,e可以取值为
可以将l2,m构成的封闭区域的掩码记为第一掩码mask1,将mask1向内侵蚀e个像素,记为第二掩码(表示为mask2);将mask1向外扩张e个像素,记为第三掩码(表示为mask3)。另外,将第二掩码与第三掩码之间的区域的掩码称为第四掩码,表示为mask4。如图11示出了第二掩码mask2(白色区域)和第四掩码mask4(灰色区域)的区域。
可以定义整数集合上的函数g(x)(
图12示出了该整数集合上的函数g(x),其中,t为可调节数值,例如t为15或其他数值,本发明对此不限定。
进一步地,可以将如下式计算的fmask(x,y)组成的图像确定为融合掩码(表示为mask,如图13所示):
其中,fmask1(x,y)表示所述第一掩码mask1的掩码图像。
由此,本发明实施例中,能够将底图(即第一原始图像)中的人脸替换为目标人脸(即第二原始图像中的人脸),实现了图像的换脸。该过程适用于各种场景的底图,耗时短,并且融合效果好,不会出现合成失真的情形。
另外,如果底图中存在多个人脸,在图2执行的过程中,需要指定将被替换的是多个人脸中的哪一个。可选地,可以通过位置坐标来进行指定。示例性地,在s101中,可以获取与所述第二原始图像所关联的第一原始图像中的至少一个坐标值;根据所述至少一个坐标值,确定所述第一原始图像中的所述第一人脸区域。例如,相关联的至少一个坐标值可以包括第一原始图像中的第一人脸区域的鼻尖处的坐标值。
举例来说,若以图14所示的图为底图,以图4和图15所示的图为目标图,分别替换底图中的两个人脸。可以指定与图4所示的目标图相关联的第一坐标值,假设为(x1,y1),则可以确定代替换的是图14中左侧的女士,进而可以参照前述的方法实现换脸。同样地,可以指定与图15中的目标图相关联的第二坐标值,假设为(x2,y2),则可以确定代替换的是图14中右侧的男士,进而可以参照前述的方法实现换脸。或者,也可以并行地将图4和图15中的人脸替换掉图14中的两个人脸,从而得到替换后的图像,如图16所示。
图17是本发明实施例的图像融合的装置的一个示意性框图。图17所示的装置20包括:确定模块210、变换模块220和融合模块230。
确定模块210用于确定第一原始图像中的第一人脸区域以及所述第一人脸区域的第一边界,确定第二原始图像中的第二人脸区域以及所述第二人脸区域的第二边界;
变换模块220用于根据所述第一边界与所述第二边界,确定仿射变换后的第二人脸区域,其中,所述仿射变换后的第二人脸区域表示将所述第二人脸区域从所述第二原始图像的坐标中仿射至所述第一原始图像的坐标中;
融合模块230用于将所述仿射变换后的第二人脸区域与所述第一原始图像进行融合,得到融合图像,所述融合图像表示将所述第一原始图像中的第一人脸区域替换为所述第二人脸区域之后的结果图像。
作为一种实现方式,装置20还可以包括边界内缩模块,可以用于通过调整所述第一边界得到边界内缩的第一人脸区域,通过调整所述第二边界得到边界内缩的第二人脸区域。
作为一种实现方式,装置20还可以包括颜色调整模块,可以用于基于所述边界内缩的第一人脸区域,对所述边界内缩的第二人脸区域进行颜色调整,得到调色后的第二人脸区域。
作为一种实现方式,变换模块220可以包括:确定子模块和变换子模块。确定子模块用于根据所述第一边界与所述第二边界确定仿射变换矩阵;变换子模块用于根据所述仿射变换矩阵对所述调色后的第二人脸区域进行变换,得到所述仿射变换后的第二人脸区域。
作为一种实现方式,确定子模块可以具体用于根据所述第一边界上的关键点的坐标确定第一矩阵,根据所述第二边界上的关键点的坐标确定第二矩阵;根据所述第一矩阵和所述第二矩阵确定所述仿射变换矩阵。
作为一种实现方式,将所述第一矩阵表示为q,将所述第二矩阵表示为p,将所述仿射变换矩阵表示为h,则满足:h=qp-1,其中,p-1表示第二矩阵p的伪逆矩阵。
作为一种实现方式,确定子模块可以具体用于确定所述第一矩阵q和所述第二矩阵p分别表示为:
其中,(uj,vj)表示所述第一边界上的第j个关键点的坐标,(xi,yi)表示所述第二边界上的第i个关键点的坐标,0≤j<n,0≤i<n,n表示所述第一边界和所述第二边界上的关键点的数量。
作为一种实现方式,边界内缩模块可以具体用于:将所述第一边界上的左脸颊的关键点向内移动第一预定距离,将所述第一边界上的右脸颊的关键点向内移动第二预定距离,将所述第一边界上的位于下巴处的关键点向内移动第三预定距离,得到所述边界内缩的第一人脸区域;将所述第二边界上的左脸颊的关键点向内移动第四预定距离,将所述第二边界上的右脸颊的关键点向内移动第五预定距离,将所述第二边界上的位于下巴处的关键点向内移动第六预定距离,得到所述边界内缩的第二人脸区域。
作为一种实现方式,所述第一人脸区域中的左眼外眼角处的关键点与左侧太阳穴处的关键点之间具有第一距离,所述第一人脸区域中的右眼外眼角处的关键点与右侧太阳穴处的关键点之间具有第二距离,所述第一预设距离等于所述第一距离的三分之一,所述第二预设距离等于所述第二距离的三分之一,所述第三预设距离等于所述第一预设距离与所述第二预设距离的平均值;
所述第二人脸区域中的左眼外眼角处的关键点与左侧太阳穴处的关键点之间具有第三距离,所述第二人脸区域中的右眼外眼角处的关键点与右侧太阳穴处的关键点之间具有第四距离,所述第四预设距离等于所述第三距离的三分之一,所述第五预设距离等于所述第四距离的三分之一,所述第六预设距离等于所述第四预设距离与所述第五预设距离的平均值。
作为一种实现方式,颜色调整模块可以具体用于:将所述边界内缩的第一人脸区域转换为第一yuv图像,将所述边界内缩的第二人脸区域转换为第二yuv图像;分别计算所述第一yuv图像的y通道值、u通道值和v通道值,分别计算所述第二yuv图像的y通道值、u通道值和v通道值;根据所述第一yuv图像的y通道值与所述第二yuv图像的y通道值,确定所述调色后的第二人脸区域中像素的y通道值;根据所述第一yuv图像的u通道值与所述第二yuv图像的u通道值,确定所述调色后的第二人脸区域中像素的u通道值;根据所述第一yuv图像的v通道值与所述第二yuv图像的v通道值,确定所述调色后的第二人脸区域中像素的v通道值。
作为一种实现方式,融合模块230可以具体用于:计算所述仿射变换后的第二人脸区域的散度矩阵;计算所述仿射变换后的第二人脸区域的边界的1至m阶近邻;循环执行m次泊松融合的迭代,得到泊松融合后的结果;将所述泊松融合后的结果使用融合掩码进行阿尔法融合,以得到所述融合图像。
作为一种实现方式,所述融合掩码通过以下方法得到:根据所述边界内缩的第二人脸区域的边界,确定第一掩码;将所述第一掩码向内侵蚀预定像素值,得到第二掩码;将所述第一掩码向外扩张所述预定像素值,得到第三掩码;根据所述第一掩码、第二掩码和所述第三掩码,确定所述融合掩码。
作为一种实现方式,确定模块210可以具体用于:获取与所述第二原始图像所关联的第一原始图像中的至少一个坐标值;根据所述至少一个坐标值,确定所述第一原始图像中的所述第一人脸区域。
图17所示的装置20能够实现前述图2至图16所示的图像融合的方法,为避免重复,这里不再赘述。
另外,本发明实施例还提供了另一种图像融合的装置,包括存储器、处理器及存储在所述存储器上且在所述处理器上运行的计算机程序,处理器执行所述程序时实现前述图2至图16所示的图像融合的方法的步骤。
另外,本发明实施例还提供了一种电子设备,该电子设备可以包括图17所示的装置20。该电子设备可以实现前述图2至图16所示的图像融合的方法。
另外,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序。当所述计算机程序由处理器执行时,可以实现前述图2至图16所示的图像融合的方法的步骤。例如,该计算机存储介质为计算机可读存储介质。
由此可见,本发明实施例基于第一原始图像与第二原始图像的人脸区域的边界之间的关系,能够将第一原始图像中的人脸替换为第二原始图像中的人脸,实现了图像的换脸。该过程适用于各种场景的底图,耗时短,并且融合效果好,不会出现合成失真的情形。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的物品分析设备中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。