一种确定刘海区域的方法及装置与流程

文档序号:11134634
一种确定刘海区域的方法及装置与制造工艺

本发明涉及图像处理技术领域,特别涉及一种确定刘海区域的方法及装置。



背景技术:

人脸识别性能的提升需要解决几个关键性问题,例如:光照,姿态,遮挡等问题。刘海作为一种最为常见的遮挡物,与如口罩、墨镜等其他的遮挡物相比,刘海遮挡的刻意性很弱。然而齐刘海遮挡了眉毛信息,并占据一定人脸比例的发型会对人脸特征的提取产生很大的影响。

现有的一些技术主要是通过检测或分类的方法来判断脸部遮挡物,但是主要集中在刻意遮挡。有的方法就基于多特征融合的人脸遮挡检测方法采用了Haar、LBP(Local Binary Pattern,局部二值模式)和HOG(Histogram of Oriented Gradient,方向梯度直方图)等多特征融合模式,应用SVM(Support Vector Machine,支持向量机)方法训练得到分类器。此外,为了增强对姿态的鲁棒性,采用图像分块检测的方法,用投票机制进行遮挡判断。

可见,现有的一些技术主要是通过检测或分类的方法来判断脸部遮挡物,但是该手段的运用主要集中在刻意遮挡。例如ATM(Automatic Teller Machine,自动取款机)机场景的墨镜和口罩的检测,很多算法仅仅判断是否遮挡来完成异常人脸的判断,并未给出遮挡区域。有的利用到了人脸关键器官的位置,例如双眼,鼻子,嘴巴的特征,或者这些器官是否存在。

综上,现有技术的不足在于:不能针对非刻意遮挡的刘海进行检测。



技术实现要素:

本发明提供了一种确定刘海区域的方法及装置,用以检测非刻意遮挡的刘海。

本发明实施例中提供了一种确定刘海区域的方法,包括:

基于LBP算子提取刘海特征;

基于置信度的SVM判断人脸图像是否存在刘海;

在存在刘海时确定刘海的区域。

较佳地,在基于LBP算子提取刘海特征时,LBP算子的尺度选取为:水平方向半径为3,垂直方向半径为1。

较佳地,所述确定刘海的区域,包括:

将人脸图像中的人脸分为4块区域,其中3块为刘海区域,1块为眼部以下、嘴部以上的脸部区域;

确定4块区域的平均灰度值;

根据4块区域的平均灰度值确定刘海区域的阈值;

根据阈值确定刘海的区域。

较佳地,通过如下公式根据4块区域的平均灰度值确定刘海区域的阈值:

其中,3块刘海区域的平均灰度值依次为AVG_lu、AVG_mu、AVG_ru,脸部区域的平均灰度值为AVG_face。

较佳地,根据阈值确定刘海的区域,包括:

确定眉毛位置所在的线;

从眉毛位置所在的线开始按预设距离向上移动,在每次移动后,以移动后的线为基线确定两个上下相邻的高度为预设高度,宽度为图像宽度的区域;

若两个区域内的灰度值满足阈值Th的像素个数都大于预设值,则将该根基线确定为刘海的区域底线。

较佳地,进一步包括:

若AVG_lu、AVG_mu、AVG_ru与AVG_face的数值差别小于预设阈值,则确定不存在刘海。

较佳地,所述确定刘海的区域,包括:

若刘海的区域底线低于眉毛位置所在的线,二值化刘海区域;

若刘海的区域底线等于眉毛位置所在的线,以眉毛位置所在的线为截止线二值化刘海区域。

较佳地,在基于置信度的SVM判断人脸图像是否存在刘海前,进一步包括:

对所述人脸图像进行包括人脸对齐和/或光照归一化的预处理。

本发明实施例中还提供了一种确定刘海区域的装置,包括:

LBP处理模块,用于基于LBP算子提取刘海特征;

SVM处理模块,用于基于置信度的SVM判断人脸图像是否存在刘海;

刘海区域确定模块,用于在存在刘海时确定刘海的区域。

较佳地,LBP处理模块进一步用于在基于LBP算子提取刘海特征时,LBP算子的尺度选取为:水平方向半径为3,垂直方向半径为1。

较佳地,刘海区域确定模块进一步用于在所述确定刘海的区域时,包括:

将人脸图像中的人脸分为4块区域,其中3块为刘海区域,1块为眼部以下、嘴部以上的脸部区域;

确定4块区域的平均灰度值;

根据4块区域的平均灰度值确定刘海区域的阈值;

根据阈值确定刘海的区域。

较佳地,刘海区域确定模块进一步用于通过如下公式根据4块区域的平均灰度值确定刘海区域的阈值:

其中,3块刘海区域的平均灰度值依次为AVG_lu、AVG_mu、AVG_ru,脸部区域的平均灰度值为AVG_face。

较佳地,刘海区域确定模块进一步用于在根据阈值确定刘海的区域时,包括:

确定眉毛位置所在的线;

从眉毛位置所在的线开始按预设距离向上移动,在每次移动后,以移动后的线为基线确定两个上下相邻的高度为预设高度,宽度为图像宽度的区域;

若两个区域内的灰度值满足阈值Th的像素个数都大于预设值,则将该根基线确定为刘海的区域底线。

较佳地,SVM处理模块进一步用于若AVG_lu、AVG_mu、AVG_ru与AVG_face的数值差别小于预设阈值,则确定不存在刘海。

较佳地,刘海区域确定模块进一步用于在所述确定刘海的区域时,包括:

若刘海的区域底线低于眉毛位置所在的线,二值化刘海区域;

若刘海的区域底线等于眉毛位置所在的线,以眉毛位置所在的线为截止线二值化刘海区域。

较佳地,进一步包括:

预处理模块,用于在基于置信度的SVM判断人脸图像是否存在刘海前,对所述人脸图像进行包括人脸对齐和/或光照归一化的预处理。

本发明有益效果如下:

在本发明实施例提供的技术方案中,由于采用的分块LBP特征直方图和基于置信度线性SVM分类方式能快速高效的判定是否是刘海人脸,因此具有更高的实时性;由于采用分类的时候收集具有多样性的样本,使分类具有很好的泛化性能,进一步的,在确认的时候能够同时考虑到异色头发,头发反光等问题,使多种情况下都能稳定使用,因此具有更强的稳定性。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例中确定刘海区域的方法实施流程示意图;

图2为本发明实施例中最原始的LBP算子示意图;

图3为本发明实施例中刘海判断使用的LBP算子及其变种示意图;

图4为本发明实施例中刘海区域及分块情况示意图;

图5为本发明实施例中刘海及非刘海人脸示意图;

图6为本发明实施例中刘海阈值确认的分块示意图;

图7为本发明实施例中确定刘海位置线示意图;

图8为本发明实施例中确定刘海区域的装置结构示意图。

具体实施方式

发明人注意到,发型的多变会一定程度上影响人脸识别的效果,尤其是齐刘海,这种遮挡了眉毛信息,并占据一定人脸比例的发型会对人脸特征的提取产生很大的影响。在人脸检测和特征点定位的基础上,判断当前人脸是否存在齐刘海,并且给出刘海区域,才能方便后续的人脸识别算法计算。基于此,本发明实施例提供的技术方案用以解决正常人脸情况下,针对头发特有的特征,在不利用人脸关键器官的特征来完成刘海遮挡的检测和定位。下面结合附图对本发明的具体实施方式进行说明。

图1为确定刘海区域的方法实施流程示意图,如图所示,可以包括:

步骤101、基于LBP算子提取刘海特征;

步骤102、基于置信度的SVM判断人脸图像是否存在刘海;

步骤103、在存在刘海时确定刘海的区域。

实施中,在基于置信度的SVM判断人脸图像是否存在刘海前,还可以进一步包括:

对所述人脸图像进行包括人脸对齐和/或光照归一化的预处理。

具体实施中,可以进行人脸预处理,这是因为在使用机器学习的方法进行分类时,要使人脸在相对一致的情况下进行比对,所以可以进行一定的预处理。首先需要利用双眼位置进行人脸对齐。然后进行光照归一化等。

具体的,由于人脸姿态各种各样,为了让人脸具有一致性,可以将人脸进行仿射变换。通过人脸检测和定位算法,定位出主要特征点的位置。将原图双眼中心的位置通过仿射变换到对齐后人脸的固定位置,在本申请用以示例的实例中,设对齐后人脸大小为128*136,双眼中心位置(x′1,y′1)和(x′2,y′2)为(35,44)和(85,44)。

在进行光照归一化时,由于光照变化对人脸影响很大,可以通过归一化标准差的光照归一化方法进行处理,例如可以按照公式Xd=(Xs-Means)×Sdvd/Sdvs+Meand进行计算,在一定程度上去掉了光照的影响。

在步骤101的在基于LBP算子提取刘海特征时,LBP算子的尺度选取可以为:水平方向半径为3,垂直方向半径为1。

具体实施中,在实施提取刘海特征时,可以采用的局部二值模式LBP由Ojala提出,可以有效提取灰度图像中的局部纹理特征。具有较强的分类能力,计算效率高,对单调灰度和旋转具有不变性所以被广泛使用。

图2为最原始的LBP算子示意图,如图1所示,最原始的LBP算子,定义一个3×3邻域的窗口,以中心像素值作为阈值分别跟向量的8个像素进行比较,大于阈值记做1,小于阈值记做0,然后从左上角位置顺时钟方向将各个邻域的值连在一起,形成一个0~255之间的值,在一张原图上滑动3×3窗口,则得到其对应LBP图。

图3为刘海判断使用的LBP算子及其变种示意图,如图所示,为了更好的表征刘海的特征,可以使用两种尺度的LBP算子,图3(a)中半径为1,图3(b)中半径为2。同时结合刘海特有的特征,上下相邻像素相似度高,左右因为光照原因像素差别较大,设置了一种特定具有头发特征的LBP算子,如图3(c)所示,水平方向半径为3,垂直方向半径为1。

图4为刘海区域及分块情况示意图,如图所示,由于眼部及以下的信息,对刘海的分类没有什么贡献,所以分类的时候只选取刘海部分的特征,在本申请用以示例的实例中,设使用刘海高度为40个像素。同时考虑到兼顾一些发量比较厚重的斜刘海,类似齐刘海的也要被检出,所以将刘海区域分为4个子区域,计算每个区域的分块LBP直方图,可以得到800维的特征。

下面对步骤102基于置信度的SVM判断人脸图像是否存在刘海的实施进行说明。

由于刘海形状千变万化,例如介于齐刘海和无刘海中间各式各样的斜刘海等,刘海区域并不可以简单的分类,所以实施中可以采用基于置信度的SVM来分类,判断出其中比较齐刘海和类似齐刘海。

支持向量机SVM以统计学习为基础,在小样本集机器学习的问题上表现优异,有很好的泛化性能,尤其针对二分类问题,SVM分类的能力毋庸置疑。实施中利用基于置信度的SVM进行刘海分类,并输出置信度,即可判断当前人脸图像是否存在齐刘海。图5为刘海及非刘海人脸示意图,具体可以参见图5所示的不同。

下面对步骤103在存在刘海时确定刘海的区域的实施进行说明。

在定位刘海区域的实施过程中,在通过步骤102判断出是否齐刘海后,若是齐刘海,还需要获得刘海的区域,下面实施例中将提供两种区域界定方式,一种是给出刘海高度,另外一种给出具体的刘海区域。

1、给出刘海高度的方式中,确定刘海的区域,可以包括:

将人脸图像中的人脸分为4块区域,其中3块为刘海区域,1块为眼部以下、嘴部以上的脸部区域;

确定4块区域的平均灰度值;

根据4块区域的平均灰度值确定刘海区域的阈值;

根据阈值确定刘海的区域。

实施中,可以通过如下公式根据4块区域的平均灰度值确定刘海区域的阈值:

其中,3块刘海区域的平均灰度值依次为AVG_lu、AVG_mu、AVG_ru,脸部区域的平均灰度值为AVG_face。

实施中,还可以进一步包括:

若AVG_lu、AVG_mu、AVG_ru与AVG_face的数值差别小于预设阈值,则确定不存在刘海。

具体实施中,图6为刘海阈值确认的分块示意图,在给出刘海高度的方式中,若判断是齐刘海人脸,则将人脸分出如图5所示的4块有效区域,刘海区域分为3块,从左到右分别为左眉毛上部分,中间部分,右眉毛上部分,分别计算三块区域的平均灰度值,记做AVGlu,AVGmu,AVGru。眼部以下,嘴部以上的区域为脸部区域,计算该区域的平均灰度值,记做AVGface。通过比较上面三部分的均值和脸部的均值,可以再次验证刘海判断的正确性,若上下差别过小,则认为误判为齐刘海。

刘海区域的阈值通过公式(1)来确定。

考虑到异色头发,在确定阈值的同时还可以确认阈值方向。异色是指非黑色的红色、黄色等。

如果(AVGlu+AVGmu+AVGru)>AVGface,大于TH为刘海区域;

如果(AVGlu+AVGmu+AVGru)<AVGface,小于TH为刘海区域。

这是因为刘海区域灰度值可能大于人脸区域灰度值,也有可能小于人脸区域灰度值。例如,黑色刘海区域灰度值小于人脸区域的灰度值,这个时候小于TH为刘海区域;黄色刘海区域灰度值大于人脸区域的灰度值,这个时候大于TH为刘海区域。

实施中,根据阈值确定刘海的区域,可以包括:

确定眉毛位置所在的线;

从眉毛位置所在的线开始按预设距离向上移动,在每次移动后,以移动后的线为基线确定两个上下相邻的高度为预设高度,宽度为图像宽度的区域;

若两个区域内的灰度值满足阈值Th的像素个数都大于预设值,则将该根基线确定为刘海的区域底线。

具体实施中,图7为确定刘海位置线示意图,图中的两个区域框分别用虚线框以及实现框区分,则如图所示,考虑到眉毛和刘海反光的因素,从眉毛以上的位置开始计算,就算每行的刘海像素个数,从眉毛以上的位置开始滑动2个紧挨的小区域,区域大小为:图像宽度*5个像素。若是上下两个区域的刘海数目都大于一定值,则认为当前区域的下沿便为刘海所在位置。

具体的,在实施中,可以在人脸检测和特征点定位的基础上得到眉毛的具体位置。在确定判断区域时,可以从眉毛位置开始向上每次移动一个像素,分别计算该像素水平线以上两个区域(5个像素*图像宽度,5个像素*图像宽度)内刘海像素个数(即灰度值满足阈值TH的像素个数),本实施例中用以示例的5个像素、一个像素是通过实验获取的一个效果较佳的取值,实践中可以根据需要进行选值。

2、给出具体的刘海区域的方式中,确定刘海的区域,可以包括:

若刘海的区域底线低于眉毛位置所在的线,二值化刘海区域;

若刘海的区域底线等于眉毛位置所在的线,以眉毛位置所在的线为截止线二值化刘海区域。

具体实施中,在给出刘海区域掩膜的方式下,若所得刘海区域底线的位置低于眉毛区域顶线的位置,可以通过大津法来二值化来获得刘海的具体区域。方便后续人脸识别对具体的刘海区域进行处理。若刘海区域底线的位置等于眉毛区域顶线的位置,以眉毛区域顶线为止,进行二值化。

基于同一发明构思,本发明实施例中还提供了一种确定刘海区域的装置,由于装置解决问题的原理与一种确定刘海区域的方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图8为确定刘海区域的装置结构示意图,如图所示,可以包括:

LBP处理模块801,用于基于LBP算子提取刘海特征;

SVM处理模块802,用于基于置信度的SVM判断人脸图像是否存在刘海;

刘海区域确定模块803,用于在存在刘海时确定刘海的区域。

实施中,LBP处理模块还可以进一步用于在基于LBP算子提取刘海特征时,LBP算子的尺度选取为:水平方向半径为3,垂直方向半径为1。

实施中,刘海区域确定模块还可以进一步用于在所述确定刘海的区域时,包括:

将人脸图像中的人脸分为4块区域,其中3块为刘海区域,1块为眼部以下、嘴部以上的脸部区域;

确定4块区域的平均灰度值;

根据4块区域的平均灰度值确定刘海区域的阈值;

根据阈值确定刘海的区域。

实施中,刘海区域确定模块还可以进一步用于通过如下公式根据4块区域的平均灰度值确定刘海区域的阈值:

其中,3块刘海区域的平均灰度值依次为AVG_lu、AVG_mu、AVG_ru,脸部区域的平均灰度值为AVG_face。

实施中,刘海区域确定模块还可以进一步用于在根据阈值确定刘海的区域时,包括:

确定眉毛位置所在的线;

从眉毛位置所在的线开始按预设距离向上移动,在每次移动后,以移动后的线为基线确定两个上下相邻的高度为预设高度,宽度为图像宽度的区域;

若两个区域内的灰度值满足阈值Th的像素个数都大于预设值,则将该根基线确定为刘海的区域底线。

实施中,SVM处理模块还可以进一步用于若AVG_lu、AVG_mu、AVG_ru与AVG_face的数值差别小于预设阈值,则确定不存在刘海。

实施中,刘海区域确定模块还可以进一步用于在所述确定刘海的区域时,包括:

若刘海的区域底线低于眉毛位置所在的线,二值化刘海区域;

若刘海的区域底线等于眉毛位置所在的线,以眉毛位置所在的线为截止线二值化刘海区域。

实施中,还可以进一步包括:

预处理模块804,用于在基于置信度的SVM判断人脸图像是否存在刘海前,对所述人脸图像进行包括人脸对齐和/或光照归一化的预处理。

为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。

综上所述,本发明实施例提供的技术方案,具有更高的实时性。分块LBP特征直方图和基于置信度线性SVM分类方法,能快速高效的判定是否是刘海人脸。具有更强的稳定性,分类的时候收集具有多样性的样本,使分类具有很好的泛化性能,同时确认的时候也考虑到异色头发,头发反光等问题,使多种情况下都能稳定使用。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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