一种视频中人脸特征点的稳定检测方法与流程

文档序号:12272153阅读:673来源:国知局

本发明属于视频检测领域,涉及一种视频中人脸特征点的稳定检测方法。



背景技术:

对视频图像进行人脸识别,先通过人脸检测算法检测出人脸所在区域,再在人脸区域通过人脸特征点检测算法确定人脸部的细节特征点,计算出的特征点可以对人脸区域做一个很好的分割,方便进行后面的光照转移和人脸变形。因此,人脸检测与特征点检测作为视频换脸的第一步是十分必要的。

现有的人脸特征点检测算法都是对视频中单张图像逐一计算特征点的。

存在的技术缺陷:检测特征点的稳定性较低。



技术实现要素:

为了克服已有的人脸特征点的检测方法在视频中处理时稳定性较低的不足,本发明提供了一种稳定性较高的视频中人脸特征点的检测方法。

本发明解决其技术问题所采用的技术方案是:

一种视频中人脸特征点的稳定检测方法,包括如下步骤:

1)采用形状回归方法以级联的方式预测脸部形状S,从一个初始的形状S0,S通过一级一级估计形状增量进阶式改善,在一个通用形式下,一个形状增量ΔSt在t级回归为:

ΔSt=WtΦt(I,St-1), (1)

其中I是输入图像,St-1是来自于上一级的形状,Фt是特征映射函数,Wt是线性回归矩阵;Φt依赖于I和St-1;通过将ΔSt加入到St-1,将回归带入到下一级;

2)学习局部二值特征Φt

特征映射函数由一系列局部特征映射函数组成, 学习每一个映射函数,学习的回归目标是形状的偏移量ΔSt

其中i表示迭代所有的训练样本,运算πl从向量ΔSi选出两个元素 表示第i个训练样本中第l个特征点的实际值;

用标准的随机森林学习每一个局部映射函数每棵树的分裂节点通过特征的像素差训练;训练之后,每一个叶节点存储了一个所有训练样本的平均向量;

在测试时,样本将会遍历一棵树直到它到达某一个叶节点,随机森林的输出是每一个叶节点值的总和,假设所有叶节点的输出值是D,那么输出写作:

其中是一个2*D的矩阵,其中每一列是一个存储在叶节点的二维向量,是一个D维二值向量,对于里面的每一维,如果测试样本到达该叶节点,那么它就是1,否则就是0;因此,是一个非常稀疏的二值向量;

3)学习全局线性回归Wt

通过下式获得:

其中第一项是回归目标,第二项是一个Wt上的L2正则化项,λ控制正则化强度;

4)基于视频的人脸特征点稳定处理

在检测到特征点以后,将该特征点与上一帧检测到的特征点做一个分析,如果两帧图像的特征点平均移动值小于某一个值,假设该帧图像的脸没有移动,那么将特征点位置设置为与上一帧相同:

其中,n为特征点个数,xi1表示第i个特征点在前一帧图像中的坐标的x值,xi2表示第i个特征点在后一帧图像中的坐标的x值,yi1表示第i个特征点在前一帧图像中的坐标的y值,yi2表示第i个特征点在后一帧图像中的坐标的y值。

进一步,所述步骤4)中,把特征点分成多份,每一份分别检测平均位移。可以是2份,也可以是3份等,根据需要进行划分。

本发明的有益效果主要表现在:检测准确度较高。

具体实施方式

下面对本发明作进一步描述。

一种视频中人脸特征点的稳定检测方法,包括如下步骤:

1)采用形状回归方法以级联的方式预测脸部形状S,从一个初始的形状S0,S通过一级一级估计形状增量进阶式改善,在一个通用形式下,一个形状增量ΔSt在t级回归为:

ΔSt=WtΦt(I,St-1), (1)

其中I是输入图像,St-1是来自于上一级的形状,Фt是特征映射函数,Wt是线性回归矩阵;Фt依赖于I和St-1,在这种方式下学到的特征是指的是作为一个“形状编码”特征;通过将ΔSt加入到St-1,将 回归带入到下一级;

这个特征映射函数Фt在形状回归中是必须的

2)学习局部二值特征Фt

特征映射函数由一系列局部特征映射函数组成, 学习每一个映射函数,学习的回归目标是形状的偏移量ΔSt

其中i表示迭代所有的训练样本,运算πl从向量ΔSi选出两个元素 表示第i个训练样本中第l个特征点的实际值;

用标准的随机森林学习每一个局部映射函数每棵树的分裂节点通过特征的像素差训练;训练过程是选取500个随机样本的特征值进行测试,训练分裂节点。实验发现测试更多数量的样本特征对实验结果并没有较大改善;训练之后,每一个叶节点存储了一个所有训练样本的平均向量;

在测试时,样本将会遍历一棵树直到它到达某一个叶节点,随机森林的输出是每一个叶节点值的总和,假设所有叶节点的输出值是D,那么输出写作:

其中是一个2*D的矩阵,其中每一列是一个存储在叶节点的二维向量,是一个D维二值向量。对于里面的每一维,如果测试样本到达该叶节点,那么它就是1,否则就是0;因此,是一个非常稀疏的二值向量。所以里面的非零元素的个数与随机森林里面树的个数是一样的,而这个值远小于D。这个叫做“局部二值特征”。

3)学习全局线性回归Wt

经过局部随机森林学习之后,不仅获得了二值特征还有局部回归输出但是还要关注的是全局特征映射函数的二值特征和全局线性函数通过下式获得:

其中第一项是回归目标,第二项是一个Wt上的L2正则化项,λ控制正则化强度,因为特征的维数很高,所以正则化是必须的;如果用68个特征点,那么Φt的维数可以达到十万以上,如果不加正则化项,函数将会过拟合,因为二值特征非常稀疏,需要使用双坐标下降法来处理这种大型稀疏线性系统,由于目标函数是关于Wt的二次函数,这样通常可以获得全局最优解。

4)基于视频的人脸特征点稳定处理

由于该系统需要的特征点检测算法是针对视频的,在实际算法使用中,如果不对前后关联帧的视频特征点做一个稳定操作,那么前后特征点很可能出现跳动不稳定的情况。这些区别在对于单张图像的特征点使用中可能不会存在较大问题,但是对于视频图像换脸而言,两帧图像之间会出现较明显的跳跃现象。针对这个问题,采用一种基于视频的人脸特征点稳定检测算法,在检测到特征点以后,将该特征点与上一帧检测到的特征点做一个分析,如果两帧图像的特征点平均移动值小于某一个值,假设该帧图像的脸没有移动,那么将特征点位置设置为与上一帧相同:

其中,n为特征点个数,xi1表示第i个特征点在前一帧图像中的坐标的x值,xi2表示第i个特征点在后一帧图像中的坐标的x值,yi1表示第i个特 征点在前一帧图像中的坐标的y值,yi2表示第i个特征点在后一帧图像中的坐标的y值。

所述步骤4)中,把特征点分成多份,每一份分别检测平均位移。以两份为例进行说明,将脸部轮廓以嘴巴为界限分为上半部分(嘴巴以上部分轮廓)和下半部分(嘴巴及嘴巴下部分轮廓);在检测到上半部分特征点以后,将该特征点与上一帧检测到的特征点做一个分析,先计算出两帧图像的部分特征点的平均移动值Δd1

其中xi1表示第i个特征点在前一帧图像中的坐标的x值,xi2表示第i个特征点在后一帧图像中的坐标的x值,yi1表示第i个特征点在前一帧图像中的坐标的y值,yi2表示第i个特征点在后一帧图像中的坐标的y值。这里的27个特征点分别表示脸部轮廓左右两侧各4个点,鼻子的9个点和眉毛的10个点。若Δd1大于某一个值m1(该值通常为经验值,一般不大于3),表示脸部移动较大,则直接使用当前帧检测到的特征点。反之若Δd1小于该值,便假设该帧图像的脸部位置基本没有移动,那么将该部分27个特征点位置设置为与上一帧相同。

在确定Δd1小于该值的基础上,再检测嘴巴及嘴巴下部分轮廓的特征点Δd2

这里的29个特征点分别表示脸部轮廓下半部分的9个特征点和嘴巴的20个特征点。若Δd2小于某个特定值m2,则表示嘴巴部分也基本没有移动,那么该29个点也保持与前一帧结果一致。这样计算得出的结果既能检测出人脸的移动,又能在一定程度上保持特征点的稳定性。

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