发明内容
本发明的目的是为了解决现有技术中无法做到实时人脸替换的缺陷,提供一种基于局部仿射和颜色迁移技术的视频实时人脸替换方法及其系统来解决上述问题。
为了实现上述目的,本发明的技术方案如下:
基于局部仿射和颜色迁移技术的视频实时人脸替换方法,包括以下步骤:
视频采集,通过摄像头获取目标人脸视频,并截取当前帧图像;
进行人脸及其特征点检测,对获取到的目标人脸图像,使用强分类器来检测人脸,在已经构建的形状模型的基础上对人脸库中的样本进行训练,将目标人脸特征点和人脸库中的样本特征点进行匹配,做出相应的变换,并对检测到的目标人脸进行特征点搜索、位置标记;
进行人脸变换,利用仿射变换参数,将人脸库中的样本脸仿射变换到视频中的目标人脸上,进行人脸的替换;
进行人脸融合处理,将变换前的目标人脸的颜色迁移到变换后的目标人脸上,采用拉普拉斯高斯金字塔进行融合处理,并对融合处理后的目标人脸图像的边缘采用高斯滤波器进行平滑处理后显示到摄像头获取到的图像中;
检查摄像头是否关闭,若关闭,则结束人脸替换;若未关闭,则继续进行视频采集并获取当前帧图像,继续进行人脸检测、人脸变换和人脸融合步骤。
所述的进行人脸及其特征点检测包括以下步骤:
读取人脸库中的样本数据,构造出若干个分类器,并将若干个分类器级联成一个强分类器;
读取当前视频帧图像,使用强分类器对当前视频帧图像进行人脸检测;
构建形状模型并进行训练;
构造人脸特征点,得到仿射变换参数。
所述的进行人脸变换包括以下步骤:
对目标人脸和人脸库中样本的特征点计算出每个特征点的坐标,并将相邻的任意三个点进行特征点三角化;
利用仿射变换参数,将人脸库中三角化后的特征点分别映射到目标人脸上,变换为目标人脸的形状,其构造的仿射变换具体步骤如下:
对于特征点三角化后的目标人脸和人脸库中的样本,找出人脸库中每个三角形和对应的目标人脸的三角形的位置;
保持人脸库中每个特征点的位置关系不变,将人脸库中的每个特征点三角形映射到目标人脸特征点三角形所在的位置。
所述的进行人脸融合处理包括以下步骤:
在lαβ空间上将变换前的目标人脸的颜色迁移到变换后的目标人脸上,其中l表示非彩色的亮度通道,α表示彩色黄蓝通道,β表示红绿通道;
采用拉普拉斯高斯金字塔的方法对迁移后的目标人脸的不同尺度、不同分解层的图像进行融合处理;
对融合处理后的目标人脸图像寻找边缘区域,采用高斯滤波器进行平滑处理。
所述的构造出若干个分类器包括以下步骤:
均匀分布人脸库中的每个样本,通过训练得到初始分类器H0;
分类判断,对于分类正确的,降低其分布概率;分类错误的,提高其分布概率,得到一个新的训练集S1;
获得分类器,使用训练集S1进行训练,得到分类器H1;
迭代进行分类判断和获得分类器步骤共T次,得到{H1,H2,…,HT}共T个分类器。
所述的构建形状模型并进行训练包括以下步骤:
搜集400个人脸训练样本,并标记出样本中的每个脸部特征点;
将训练集中特征点的坐标串成特征向量;
对形状特征进行归一化和对齐处理;
对对齐后的形状特征做主成分分析处理,主成分分析的构造具体步骤如下:
输入x,x=[x1x2…xm]T是m元向量变量,计算x的样本矩阵,其计算公式如下:
其中j=1,2,…,n是变量xi,i=1,2,…,m的离散采样;
计算样本矩阵X的第i行的平均值μi,其计算公式如下:
计算样本矩阵X的第i行的中心矩其计算公式如下:
其中
计算样本矩阵X的中心矩其计算公式如下:
计算中心距的协方差矩阵Ω,其计算公式如下:
其中φ=[φ1φ2…φm]是m×m的正交向量矩阵,Λ=diag{λ1,λ2,…,λm},λ1≥λ2≥…≥λm是对角特征值矩阵;
计算正交转换矩阵P,其计算公式如下:
P=φT;
将正交转换矩阵关联到得到主成分分析
为每个样本的脸部特征点构建局部特征。
所述的构造人脸特征点包括以下步骤:
特征点位置计算,计算目标人脸特征点的位置,并做尺度和旋转变化;
将目标人脸的特征点和人脸库中的样本的每个局部特征点进行匹配,计算出每个局部特征点对应到目标人脸上的新的位置;
迭代进行上述步骤,得到仿射变换参数。
所述的利用拉普拉斯高斯金字塔的方法对迁移后的目标人脸的不同尺度、不同分解层的图像进行融合处理包括以下步骤:
对于颜色迁移后的目标人脸采用高斯金字塔获取多幅不同空间层上、多尺度的下采样图像,构建出图像金字塔,构造的高斯金字塔具体步骤如下:
输入颜色迁移后的目标人脸图像G0,以G0作为高斯金字塔的第0层;
对原始输入图像G0进行高斯低通滤波和隔行隔列的下采样,得到高斯金字塔的第一层图像G1;
对第一层图像G1进行高斯低通滤波和隔行隔列的下采样,得到高斯金字塔的第二层图像G2;
对第l-1层图像Gl-1进行高斯低通滤波和隔行隔列的下采样,得到高斯金字塔的第l(1≤l≤N)层图像Gl,
其中N为高斯金字塔的最大层数,Rl和Cl分别为高斯金字塔的第l层的行数和列数,是一个二维可分离的5×5的窗口函数,
重复以上过程,构成最终的高斯金字塔;
对不同的分解层的不同频带上的金字塔图像采用拉普拉斯金字塔从金字塔顶层图像中向上采样来重建出上层图像,构造的拉普拉斯金字塔具体步骤如下:
对得到的高斯金字塔的顶层图像GN使用内插法得到放大图像GN *,其中N为高斯金字塔的最大层数;
对第N-1层图像GN-1使用内插法得到放大图像
将高斯金字塔的第l层图像Gl使用内插法得到放大图像Gl *,其计算公式如下:
其中N为高斯金字塔的最大层数,Rl和Cl分别为高斯金字塔的第l层的行数和列数,是一个二维可分离的5×5的窗口函数,
计算
计算其中N为拉普莱斯金字塔的最大层数,LPl是拉普拉斯金字塔分解的第l层图像;
重复高斯金字塔层各层的计算,得到拉普拉斯金字塔LP0,LP1,…,LPl,…,LPN;
对重建后的图像进行合并、融合处理。
基于局部仿射和颜色迁移技术的视频实时人脸替换系统,包括:
视频采集模块,用于从摄像头下获取的视频中采集每一帧的人脸图像;
分类器构造模块,用于对获取到的视频中的图像进行人脸检测;
形状模型训练模块,用于为每个人脸特征点构建局部特征,建立出每个特征点的位置约束;
主成分分析模块,用于通过形状模型构造模块来对形状特征做特征提取处理;
人脸特征点搜索模块,用于搜索人脸特征点并计算出特征点所在的位置;
人脸仿射变换模块,用于将人脸库中的样本映射到目标人脸的相应位置上;
基于拉普拉斯高斯金字塔图像融合模块,用于将颜色迁移后的目标人脸进行相应的融合处理;
所述的视频采集输入模块与分类器构造模型相连,所述的分类器构造模块的输出端分别与形状模型训练模块和主成分分析模块相连,形状模型训练模块和主成分分析模块分别与人脸特征点搜索模块的输入端相连,人脸特征点搜索模块的输出端与人脸仿射变换模块相连,人脸仿射变换模块的输出端与基于拉普拉斯高斯金字塔图像融合模块相连。
有益效果
本发明的基于局部仿射和颜色迁移技术的视频实时人脸替换方法及其系统,与现有技术相比提高了人脸替换的质量、速度和效率,能够用于视频中进行实时替换。利用强分类器可以准确的检测人脸;利用构造的形状模型、主成分分析和人脸特征点搜索的应用可以快速的检测出人脸的特征点;利用局部仿射变换可以将人脸库中的样本准确的映射到目标人脸上;利用拉普拉斯高斯金字塔的图像融合技术,可以将颜色迁移后的目标人脸进行分解、重建,进而准确的融合处理。整个人脸替换过程是在摄像头下实时的、准确的、快速的进行的,突破了现有技术进行人脸替换时时间耗费高、无法满足视频实时性的需求,同时替换后的图像有色差、运算量大的缺陷。
具体实施方式
为使对本发明的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:
如图1所示,本发明所述的基于局部仿射和颜色迁移技术的视频实时人脸替换方法,包括以下步骤:
第一步,视频采集,读取当前摄像头下的视频,通过摄像头获取目标人脸视频,并截取当前帧图像,为后期处理做准备。
第二步,进行人脸及其特征点检测。对获取到的目标人脸图像,使用强分类器来检测人脸,在已经构建的形状模型的基础上对人脸库中的样本进行训练,将目标人脸特征点和人脸库中的样本特征点进行匹配,做出相应的变换,并对检测到的目标人脸进行特征点搜索、位置标记。此处特征点检测是为了后期人脸替换做准备,如果人脸特征点能够检测精准,则后期实时处理的效率就会更高,否则,就会一直检测人脸及其特征点,直到特征点检测到为止,因此在这里特征点检测非常关键,关系着能否进行实时的人脸替换。其具体步骤如下:
(1)读取人脸库中的样本数据,构造出若干个分类器,并将若干个分类器级联成一个强分类器。构造出若干个分类器包括以下步骤:
A、均匀分布人脸库中的每个样本,人脸库为保存众多人脸信息的数据库,通过训练得到初始分类器H0。
B、分类判断,对于分类正确的,降低其分布概率;分类错误的,提高其分布概率,得到一个新的训练集S1。
C、获得新分类器,使用训练集S1进行训练,得到新分类器H1。
D、迭代进行分类判断和获得分类器步骤共T次,得到{H1,H2,…,HT}共T个分类器。将T个个分类器级联成一个强分类器,并运用该强分类器来对获得的当前帧图像进行人脸检测。
(2)读取当前视频帧图像,使用强分类器对当前视频帧图像进行人脸检测。
(3)构建形状模型并进行训练,其具体包括以下步骤:
A、搜集400个人脸训练样本,人脸训练样本数量可以进行相应的调整,样本库多则更好,但同时训练样本的时间会更多。手动标记出样本中的每个脸部特征点。如果库里的明星脸的脸部特征点都用软件来标记,可能会出现误标记的情况,那么后期再检测人脸并替换就会出现误差。因此样本库的采集为人为采集方式,然后人为标记,在训练时人为标记,后期进行识别目标人脸时软件才会自动标记到目标人脸上。这里的样本库是明星脸库,在实际应用中,要先建立好库,再建立好模板。
B、将训练集中特征点的坐标串成特征向量。
C、对形状特征进行归一化和对齐处理,形状特征指手动标记出样本中的脸部特征点,如眼睛、颧骨等。
D、对对齐后的形状特征做主成分分析处理,主成分分析的构造具体步骤如下:
a、输入x,x=[x1x2…xm]T是m元向量变量,计算x的样本矩阵,其计算公式如下:
其中j=1,2,…,n是变量xi,i=1,2,…,m的离散采样;
b、计算样本矩阵X的第i行的平均值μi,其计算公式如下:
c、计算样本矩阵X的第i行的中心矩其计算公式如下:
其中
d、计算样本矩阵X的中心矩其计算公式如下:
e、计算中心距的协方差矩阵Ω,其计算公式如下:
其中φ=[φ1φ2…φm]是m×m的正交向量矩阵,Λ=diag{λ1,λ2,…,λm},λ1≥λ2≥…≥λm是对角特征值矩阵;
f、计算正交转换矩阵P,其计算公式如下:
P=φT;
g、将正交转换矩阵关联到得到主成分分析
h、为每个样本的脸部特征点构建局部特征。
(4)构造人脸特征点,得到仿射变换参数。其具体步骤如下:
A、特征点位置计算。计算目标人脸特征点的位置,并做简单尺度和旋转变化。由于明星脸库的脸部大小和目标人脸的大小不同,这样特征点的位置肯定就不一样,比方说,明星脸库明星的脸大,而目标人脸是小脸,那就需要做尺度和旋转变化了。
B、将目标人脸的特征点和人脸库中的样本的每个局部特征点进行匹配,计算出每个局部特征点对应到目标人脸上的新的位置;
C、迭代进行上述步骤,得到仿射变换参数。仿射变换参数是目标人脸的特征点与人脸库中的样本的局部特征点匹配过程中所产生的转换矩阵,比如说目标人脸上某一个点到样本上的某个点上,我们需要从一个点到另一个点,那就需要变换,比如加或者减法,或者除法等等,这是点对点的变换,那如果是所有的目标人脸的特征点对应到样本上所有特征点上,那就是矩阵了,我们称为变换矩阵。
第三步,进行人脸变换。利用仿射变换参数,将人脸库中的样本脸仿射变换到视频中的目标人脸上,进行人脸的替换。局部仿射目的是让明星脸的形状与目标脸的形状对应一致,在人脸替换过程中显得更加真实。简单来说,仿射方法做的事情就是将一个图形映射到另一个位置,在映射过程中图形本身的大小,形状可能发生变化,但仍然保留着图形内部点与点之间的位置关系。仿射基础是三角定位方法,所以要进行仿射变换必须计算三点坐标也就是特征点三角化。将整幅变换图像分为各个子区域,对各个子区域进行仿射变换,基于局部仿射变换的图像比基于全局变换的图像的效果更接近于目标图像。其具体步骤如下:
(1)对目标人脸和人脸库中样本的特征点计算出每个特征点的坐标,并将相邻的任意三个点进行特征点三角化。
(2)利用仿射变换参数,将人脸库中三角化后的特征点分别映射到目标人脸上,变换为目标人脸的形状,其构造的仿射变换具体步骤如下:
A、对于特征点三角化后的目标人脸和人脸库中的样本,找出人脸库中每个三角形和对应的目标人脸的三角形的位置。
B、保持人脸库中每个特征点的位置关系不变,将人脸库中的每个特征点三角形映射到目标人脸特征点三角形所在的位置。
第四步,进行人脸融合处理。将变换前的目标人脸的颜色迁移到变换后的目标人脸上,采用拉普拉斯高斯金字塔进行融合处理,并对融合处理后的目标人脸图像的边缘采用高斯滤波器进行平滑处理后显示到摄像头获取到的图像中。由于明星脸肤色与现实中目标脸的肤色存在差异,为了更有效的避免融合后产生的缝隙,引入了颜色迁移方法。以上的局部仿射方法和颜色迁移方法耗时都比较小,所以将两种方法综合运用,放在视频中可以产生比现有技术更高效的方法。同时为了进一步提高人脸融合后的效果,在此利用拉普拉斯图像融合方法,将颜色迁移后的图像融合到目标人脸中,效果要远好于现有技术方法。其具体步骤如下:
(1)在lαβ空间上将变换前的目标人脸的颜色迁移到变换后的目标人脸上,其中l表示非彩色的亮度通道,α表示彩色黄蓝通道,β表示红绿通道。lαβ空间是在LMS空间的基础上建立起来的,由于LMS空间三个通道间有较大的相关性,给图像处理过程带来一定的困难。针对这种情况,提出了基于lαβ颜色空间,其中,l表示非彩色的亮度通道,α表示彩色的黄蓝通道,β表示红绿通道,与其他颜色体系不同,lαβ空间更适合人类视觉感知系统。对自然场景,1Op三通道近似正交,通道间的相关性会降到最小。
(2)采用拉普拉斯高斯金字塔的方法对迁移后的目标人脸的不同尺度、不同分解层的图像进行融合处理。拉普拉斯金字塔是一种多尺度、多分辨率的方法。基于金字塔分解的图像融合算法的融合过程是在不同尺度、不同空间分辨率和不同分解层上分别进行的,与简单图像融合算法相比能够获得更好的融合效果,同时能够在更广泛的场合使用。其包括以下步骤:
A、对于颜色迁移后的目标人脸采用高斯金字塔获取多幅不同空间层上、多尺度的下采样图像,构建出图像金字塔。构造的高斯金字塔具体步骤如下:
a、输入颜色迁移后的目标人脸图像G0,以G0作为高斯金字塔的第0层;
b、对原始输入图像G0进行高斯低通滤波和隔行隔列的下采样,得到高斯金字塔的第一层图像G1;
c、对第一层图像G1进行高斯低通滤波和隔行隔列的下采样,得到高斯金字塔的第二层图像G2;
d、对第l-1层图像Gl-1进行高斯低通滤波和隔行隔列的下采样,得到高斯金字塔的第l(1≤l≤N)层图像Gl,
其中N为高斯金字塔的最大层数,Rl和Cl分别为高斯金字塔的第l层的行数和列数,是一个二维可分离的5×5的窗口函数,
e、重复以上过程,构成最终的高斯金字塔。
B、对不同的分解层的不同频带上的金字塔图像采用拉普拉斯金字塔从金字塔顶层图像中向上采样来重建出上层图像,构造的拉普拉斯金字塔具体步骤如下:
a、对得到的高斯金字塔的顶层图像GN使用内插法得到放大图像GN *,其中N为高斯金字塔的最大层数;
b、对第N-1层图像GN-1使用内插法得到放大图像
c、将高斯金字塔的第l层图像Gl使用内插法得到放大图像Gl *,其计算公式如下:
其中N为高斯金字塔的最大层数,Rl和Cl分别为高斯金字塔的第l层的行数和列数,是一个二维可分离的5×5的窗口函数,
d、计算
e、计算其中N为拉普莱斯金字塔的最大层数,LPl是拉普拉斯金字塔分解的第l层图像;
f、重复高斯金字塔层各层的计算,得到拉普拉斯金字塔LP0,LP1,…,LPl,…,LPN。
C、对重建后的图像进行合并、融合处理。
(3)对融合处理后的目标人脸图像寻找边缘区域,采用高斯滤波器进行平滑处理。通过高斯边缘滤波方法将融合的人脸放到摄像头图像帧时边缘平滑过渡。
第五步,检查摄像头是否关闭,若关闭,则结束人脸替换;若未关闭,则继续进行视频采集并获取当前帧图像,继续进行人脸检测、人脸变换和人脸融合步骤。
如图2所示,基于局部仿射和颜色迁移技术的视频实时人脸替换系统,包括:
视频采集模块,用于从摄像头下获取的视频中采集每一帧的人脸图像;
分类器构造模块,用于对获取到的视频中的图像进行人脸检测;
形状模型训练模块,用于为每个人脸特征点构建局部特征,建立出每个特征点的位置约束;
主成分分析模块,用于通过形状模型构造模块来对形状特征做特征提取处理;
人脸特征点搜索模块,用于搜索人脸特征点并计算出特征点所在的位置;
人脸仿射变换模块,用于将人脸库中的样本映射到目标人脸的相应位置上;
基于拉普拉斯高斯金字塔图像融合模块,用于将颜色迁移后的目标人脸进行相应的融合处理;
所述的视频采集输入模块与分类器构造模型相连,所述的分类器构造模块的输出端分别与形状模型训练模块和主成分分析模块相连,形状模型训练模块和主成分分析模块分别与人脸特征点搜索模块的输入端相连,人脸特征点搜索模块的输出端与人脸仿射变换模块相连,人脸仿射变换模块的输出端与基于拉普拉斯高斯金字塔图像融合模块相连。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。