基于卷积神经网络和条件随机场的人脸检测方法与流程

文档序号:11951819阅读:329来源:国知局
基于卷积神经网络和条件随机场的人脸检测方法与流程

本发明属于计算机机器学习领域,更具体地,涉及一种基于卷积神经网络和条件随机场的人脸检测方法。



背景技术:

人脸检测(Face Detection)技术是机器学习中的一个重要的分支,其核心思想是先对海量人脸数据样本进行训练,得到一个人脸的二类分类器,然后给定一张图片作为输入,通过一定的策略选取图片中的任意区域进行判别,框出是人脸的区域,直到该图片的所有区域都判别完毕。

目前,人脸检测方法主要包括级联分类器(Cascade)、区域特征检测方法DPM、以及卷积神经网络检测方法三种,其中卷积神经网络检测方法是近些年来广泛被采用的主流方法。

卷积神经网络的基本原理是通过各层网络的计算以及相关的激励函数和损失函数来训练一个人脸检测率较高的神经网络系统,该检测方法的关键在于采用有效的学习算法,例如目前所普遍采用的Boosting算法和SVM学习模型。这些算法在针对正脸时有不错的表现,但是仍然不足以处理偏脸、表情脸和遮挡脸,在处理不同角度、不同表情以及遮挡脸等情况下准确率低。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于卷积神经网络和条件随机场的人脸检测方法,其目的在于,通过计算卷积神经网络输出层同一张人脸对应多个窗口之间的关联关系,根据其紧密程度来进行窗口的取舍,再采取有效的合并策略进行窗口合并得到最终的人脸框,从而提高最终人脸框的精度,并解决现有卷积神经网络检测方法所采用的算法在处理不同角度、不同表情以及遮挡脸等情况下准确率低的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种基于卷积神经网络和条件随机场的人脸检测方法,包括以下步骤:

(1)从人脸数据库采集人脸图像,根据该人脸数据库中该人脸图像的标签信息从该人脸图像中提取人脸区域和非人脸区域,并将人脸图像缩放成神经网络结构规定的图像大小;

(2)采用反向传播算法对步骤(1)中缩放后的图像进行训练,以得到二分类器网络结构,并在二分类器网络结构的输出层利用公式x=1/(e-q+1)得到图像的置信分x,其中q表示输出层的值;

(3)获取输入图片,使用步骤(2)得到的二分类器网络结构、并采用随机滑动窗口的方式对该输入图片进行检测,以得到该输入图片中所有包含人脸的区域,并框选出所有包含人脸的区域;

(4)根据步骤(3)中随机滑动窗口的边界确定包含人脸区域的最远距离和人脸的中心点,根据随机滑动窗口偏离中心点的距离的大小标记这些随机滑动窗口,将偏离中心点距离少于窗口边长1/5的随机窗口标记为中心窗口,将偏离中心点距离大于等于窗口边长1/5的滑动窗口标记为边缘窗口;

(5)计算步骤(3)得到的每个包含人脸的区域所对应的所有随机滑动窗口的联合概率密度P,舍去与中心窗口联合概率密度小于0.5的边缘窗口;

(6)将步骤(5)之后剩下的随机滑动窗口进行合并,即将同一张人脸对应的多个滑动窗口合并成一个人脸窗口作为最终的人脸框。

优选地,步骤(3)是采用随机滑动窗口的办法对输入图片进行全方面的检测。即按步长和滑动窗口大小逐一探测图片中的区域,根据二分类器判断该区域是否为人脸,人脸区域置1做标记,非人脸区域置0做标记,直到整张图形探测完毕,最后就可以检测出该图片中所有的人脸区域。

优选地,随机滑动窗口的大小取决于输入图片的大小,其下限为输入图片大小的1/10到1/5之间,上限为输入图片大小的1/2到1之间,步长的大小为滑动窗口大小的1/15至1/5。

优选地,步骤(5)是采用以下公式:

<mrow> <mi>P</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>Z</mi> </mfrac> <mi>exp</mi> <mrow> <mo>(</mo> <msub> <mi>&Sigma;</mi> <mi>k</mi> </msub> <msub> <mi>&lambda;</mi> <mi>k</mi> </msub> <msub> <mi>F</mi> <mi>k</mi> </msub> <mo>(</mo> <mrow> <mi>y</mi> <mo>,</mo> <mi>x</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow>

其中y表示标记窗口对应的置信分,k表示人脸区域对应的随机滑动窗口的数量,λk表示随机滑动窗口待学习的权重参数,Z是归一化因子,Fk(y,x)表示状态转移函数。

优选地,步骤(6)中的合并滑动窗口分为同尺度窗口和不同尺度窗口合并:同尺度窗口合并是依次计算相邻两个滑动窗口交叉面积的大小,如果交集面积大小大于或等于两者的并集大小的一半,即可进行合并,否则不合并;不同尺度窗口合并是根据相邻大小窗口的重叠距离来考虑是否应该合并,并且以小窗口的边长为主要考虑因素,当同时满足l≥0.5*b和h≥0.5*b,就认为这两个窗口包含的人脸为同一张人脸,可以进行合并,否则不合并,其中a和b分别表示大窗口和小窗口的边长,l和h分别表示大小窗口之间的横向重叠距离和纵向重叠距离。

按照本发明的另一方面,提供了一种基于卷积神经网络和条件随机场的人脸检测系统,包括:

第一模块,用于从人脸数据库采集人脸图像,根据该人脸数据库中该人脸图像的标签信息从该人脸图像中提取人脸区域和非人脸区域,并将人脸图像缩放成神经网络结构规定的图像大小;

第二模块,用于采用反向传播算法对第一模块中缩放后的图像进行训练,以得到二分类器网络结构,并在二分类器网络结构的输出层利用公式x=1/(e-q+1)得到图像的置信分x,其中q表示输出层的值;

第三模块,用于获取输入图片,使用第二模块得到的二分类器网络结构、并采用随机滑动窗口的方式对该输入图片进行检测,以得到该输入图片中所有包含人脸的区域,并框选出所有包含人脸的区域;

第四模块,用于根据第三模块中随机滑动窗口的边界确定包含人脸区域的最远距离和人脸的中心点,根据随机滑动窗口偏离中心点的距离的大小标记这些随机滑动窗口,将偏离中心点距离少于窗口边长1/5的随机窗口标记为中心窗口,将偏离中心点距离大于等于窗口边长1/5的滑动窗口标记为边缘窗口;

第五模块,用于计算第三模块得到的每个包含人脸的区域所对应的所有随机滑动窗口的联合概率密度P,舍去与中心窗口联合概率密度小于0.5的边缘窗口;

第六模块,用于将第五模块之后剩下的随机滑动窗口进行合并,即将同一张人脸对应的多个滑动窗口合并成一个人脸窗口作为最终的人脸框。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明在处理不同角度、不同表情以及遮挡脸等情况下的准确率高:本发明由于采用了步骤(2)和步骤(3),通过包含13万多张的人脸图像集做人脸特征提取,基本涵盖不同角度、不同表情、不同肤色、部分遮挡的人脸,在此基础上进行卷积神经网络训练,可以训练得到一个识别率和准确率较高的二分类器,因此本发明的方法准确率较高;

(2)本发明得到的最终人脸框的精度较高,能用较小的窗口框出人脸:本发明由于采用了步骤(4)、步骤(5)和步骤(6),根据CRF模型计算同一张人脸对应多个窗口之间的联合概率密度,通过窗口之间的紧密程度舍去边缘窗口,保留更多的中心窗口,再根据交叉面积和交叉距离的策略进行窗口合并,使得最终的人脸框精度有所提高,因此本发明得到的最终人脸框的精度较高;

(3)本发明得到的最终人脸框的置信分较高:本发明由于采用的步骤(5)和步骤(6),对边缘窗口进行取舍,使得留下来的窗口置信分的均值有所提高,最终合并窗口后,无论是采取最大置信分还是采取平均置信分作为最终人脸框的置信分,其值都相对取舍窗口之前有所增加,因此本发明得到的最终人脸框的置信分较高。

附图说明

图1是本发明基于卷积神经网络和条件随机场的人脸检测方法的流程图。

图2示出本发明使用分类器判别人脸的计算过程。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,本发明基于卷积神经网络和条件随机场的人脸检测方法包括以下步骤:

(1)从人脸数据库采集人脸图像,根据该人脸数据库中该人脸图像的标签信息从该人脸图像中提取人脸区域和非人脸区域,并将人脸图像缩放成神经网络结构规定的图像大小;具体而言,标签信息包括人脸的坐标信息、宽度以及高度,在提取了人脸区域以后,该人脸图像中的剩余部分即为非人脸区域;

在本发明中,神经网络结构采用的是AlexCNN网络结构,其需要对输出层做调整,所以人脸图像的图片格式也严格按照该网络的格式处理,即将人脸图像统一缩放至224*224像素大小。

(2)采用反向传播(Back propagation,BP)算法对步骤(1)中缩放后的图像进行训练,以得到二分类器网络结构,并在二分类器网络结构的输出层利用公式x=1/(e-q+1)得到图像的置信分,其中q表示输出层的值;

具体而言,人脸检测本质上可被看做成一个二分类问题,即判定一张图片是人脸,或者不是人脸。为了获取这样一个二分类器,就需要大量的人脸、非人脸的数据样本供网络训练学习,从而提取到对应的特征。为了精确地区分人脸和非人脸,即使得尽量少的人脸样本被判定为非人脸,反之亦然,在训练过程中会根据输出值与预期值的对比不断调整各个网络层的参数,直到最终迭代收敛。本步骤的网络训练分为两个阶段,第一阶段为向前传播阶段:样本图片从输入层经过一定规则的计算,逐步传递到输出层。在各个网络输出传递的过程中,网络处理的是计算上一层的输入与本层每个网络单元的权值矩阵相点乘,得到输出结果;第二阶段为向后传播阶段:计算第一阶段中实际输出与预期输出的残差,按一定的规则反向传播调整网络参数。

(3)获取输入图片,使用步骤(2)得到的二分类器网络结构、并采用随机滑动窗口的方式对该输入图片进行检测,以得到该输入图片中所有包含人脸的区域,并框选出所有包含人脸的区域;

具体而言,分类器判别人脸的计算过程如图2所示。现实图片会包含很多信息,一张图片可能不包含人脸,可能包含一张人脸,也可能包含多张人脸,图片中的人脸大小也会有所不同,为了尽可能将图片中所有的人脸检测出来,本步骤采用随机滑动窗口的办法对输入图片进行全方面的检测。即按一定的步长和滑动窗口大小逐一探测图片中的区域(其中滑动窗口的大小和步长的选择应该基于不会出现漏检这一前提,滑动窗口的大小取决于输入图片的大小,其下限为输入图片大小的1/10到1/5之间,上限为输入图片大小的1/2到1之间,步长的大小为滑动窗口大小的1/15至1/5),根据二分类器判断该区域是否为人脸,人脸区域置1做标记,非人脸区域置0做标记,直到整张图形探测完毕,最后就可以检测出该图片中所有的人脸区域;

(4)根据步骤(3)中随机滑动窗口的边界确定包含人脸区域的最远距离和人脸的中心点,根据随机滑动窗口偏离中心点的距离的大小来标记这些随机滑动窗口,将偏离中心点距离少于窗口边长1/5的随机窗口标记为中心窗口,将偏离中心点距离大于等于窗口边长1/5的滑动窗口标记为边缘窗口。

在后续窗口联合概率密度计算过程中,标记窗口中心窗口的置信分增加1/100,标记窗口边缘窗口的置信分减小1/100,y表示标记窗口对应的置信分,x表示随机窗口的置信分。

(5)计算步骤(3)得到的每个包含人脸的区域所对应的所有随机滑动窗口的联合概率密度P,舍去与中心窗口联合概率密度小于0.5的边缘窗口;具体而言,本步骤是采用以下公式:

<mrow> <mi>P</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mi>Z</mi> </mfrac> <mi>exp</mi> <mrow> <mo>(</mo> <msub> <mi>&Sigma;</mi> <mi>k</mi> </msub> <msub> <mi>&lambda;</mi> <mi>k</mi> </msub> <msub> <mi>F</mi> <mi>k</mi> </msub> <mo>(</mo> <mrow> <mi>y</mi> <mo>,</mo> <mi>x</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow>

其中y表示标记窗口对应的置信分,k表示人脸区域对应的随机滑动窗口的数量,λk表示随机滑动窗口待学习的权重参数(其取值可以是任意随机整数,且中心窗口的取值大于边缘窗口的取值),Z是归一化因子(其取值是对标记窗口的置信分y求和),Fk(y,x)表示状态转移函数(其取值是状态(yk-1,xk-1)到状态(y,x)对应窗口之间的像素矩阵的差值)。

(6)将步骤(5)之后剩下的随机滑动窗口进行合并,即将同一张人脸对应的多个滑动窗口合并成一个人脸窗口,该滑动窗口即为最终的人脸框。

具体而言,合并滑动窗口分为同尺度窗口和不同尺度窗口合并:同尺度窗口合并,依次计算相邻两个滑动窗口交叉面积的大小,即他们的交集,如果交集面积大小大于或等于两者的并集大小的一半,可以认为这两个窗口框出的是同一张人脸,即可进行合并,否则不合并;不同尺度窗口合并,根据相邻大小窗口的重叠距离来考虑是否应该合并,并且以小窗口的边长为主要考虑因素,假设大窗口和小窗口的边长分别为a和b,他们的横向重叠距离和纵向重叠距离分别为l和h,当同时满足l≥0.5*b和h≥0.5*b,就认为这两个窗口包含的人脸为同一张人脸,可以进行合并,否则不合并。根据上述策略依次合并相邻滑动窗口,直到所有相邻窗口合并为止,最终就会得到一张人脸对应一个人脸框,即图片中所有的人脸均由一个窗口框出。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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