人脸检测方法及系统与流程

文档序号:16934066发布日期:2019-02-22 20:32阅读:952来源:国知局
人脸检测方法及系统与流程

本发明涉及计算机视觉技术领域,特别涉及人脸检测方法及系统。



背景技术:

随着计算机视觉技术的不断发展,人脸检测技术趋于成熟并迅速市场化,作为人脸识别算法的关键步骤,在门禁、考勤、人证合一验证、安防等领域得到了广泛应用。所谓人脸检测,就是给定任意一张图片,找到其中是否存在一个或多个人脸,并返回图片中每个人脸的位置和范围。人脸检测根据应用场景的不同,可分为有约束和无约束两种情况。有约束情况是指,人脸数单一、背景简单、偏转角度小,无遮挡条件下的人脸检测,基本的人脸考勤和门禁等,这类属于有约束的情况,用传统改进算法足以满足性能需求;无约束人脸检测是指,人脸尺度变化大,数量多,姿态多样,有遮挡,光照影响,表情变化大,化妆伪装等,涉及到安防实时监控,智能视频人脸分析,人群数量统计等场景,不仅对人脸检测算法的精度要求很高,而且要确保运行的实时性,传统的人脸检测算法的检测精度不能满足应用的要求。

随着深度学习算法的兴起,将人脸检测技术提高到新的水平。深度学习方法与传统算法不同,不依靠手工选取特征,依靠神经网络传输自主选取人脸特征。深度神经网络模型由输入层、隐层(多层)、输出层组成,网络结果较深,参数较多,导致人脸检测模型较大,且需要在强大的计算平台(通常是gpu)上运行,难以实现基于嵌入式cpu平台下的实时检测。随着高效轻型深度网络的深入研究,以及嵌入式平台的运算能力的提高,使得基于深度学习的人脸检测算法在嵌入式cpu下运行成为可能。



技术实现要素:

本发明要解决的技术问题是:提供一种人脸检测方法及系统,用以解决传统的人脸检测算法的检测精度不能满足应用的要求。

为解决上述问题,本发明采用的技术方案是:

人脸检测方法,包括如下步骤:

s001:采集包含人脸的图像,对图像中的人脸区域进行标定;

s002:对标定的人脸框坐标进行转换;

s003:使用聚类算法选取锚框;

s004:优化深度学习人脸检测网络;

s005:基于人脸样本库和步骤s004优化后的深度学习人脸检测网络,训练人脸检测模型;

s006:输入待检测图像,对待检测图像预处理之后提取特征,基于步骤s005训练的人脸模型,使用步骤s003聚类得到的锚框回归人脸框,检测人脸。

进一步的,步骤s001标定的内容包括:人脸区域外接矩形的左上角坐标,及人脸矩形框的长度和宽度。

进一步的,步骤s002中对标定的人脸框坐标进行转换,具体包括:

s002_1:根据步骤s001标定内容计算人脸框的中心坐标(x_center,y_center)以及人脸框的长h_rect和宽w_rect;

s002_2:对步骤s002_1计算的数值进行归一化处理,得到用于训练输入的x、y、w和h,其中,x为人脸框横坐标,x=x_center/w_image,y为人脸框纵坐标,y=y_center/h_image,w为人脸框长,w=w_rect/image_width,h为人脸框高,h=h_rect/h_image,w_image和h_image分别为图像的宽和高。

进一步的,步骤s003使用kmeans聚类算法选取锚框,具体包括:

使用kmeans聚类算法,将标注好的人脸矩形框聚类出6种适合人脸框比例的长宽比。

进一步的,步骤s004优化深度学习人脸检测网络,具体包括:

s004_1:将原网络中的3x3卷积操作,先使用1x1的卷积操作根据需要按比例降通道,再使用3x3卷积将通道升为原有数量;

s004_2:调整原有网络中的route层链接结构,与改进后的卷积采样层相对应。

人脸检测系统,其特征在于,包括训练和检测两个部分;其中,所述训练部分包括:样本处理模块、锚框选取模块和训练模块;所述检测部分包括:图像输入模块、图像预处理模块、人脸检测模块和图像输出模块。

所述样本处理模块用于样本的采集、标定及人脸框坐标转换;

所述锚框选取模块用于聚类出适合人脸比例的人脸框;

所述训练模块用于设计优化深度网络结构优化深度学习人脸检测网络,并根据优化后的深度学习人脸检测网络训练人脸检测器;

所述图像输入模块用于获取图像信息;

所述图像预处理模块用于对图像进行缩放,长宽均为32的倍数且相同;

所述人脸检测模块用于检测输入图像中包含的人脸;

所述图像输出模块用于输出检测结果并在图像中描绘出人脸框位置。

进一步的,所述样本处理模块进行人脸框坐标转换的具体步骤包括:

s002_1:根据所述样本处理模块标定内容计算人脸框的中心坐标x_center和y_center,以及人脸框的长h_rect和宽w_rect;

s002_2:对步骤s002_1计算数值进行归一化处理,得到用于训练输入x、y、w和h,其中,x为人脸框横坐标,x=x_center/w_image,y为人脸框纵坐标,y=y_center/h_image,w为人脸框长,w=w_rect/image_width,h为人脸框高,h=h_rect/h_image,w_image和h_image分别为图像的宽和高。

进一步的,所述训练模块设计优化深度网络结构,具体包括:

s004_1:将原网络中的3x3卷积操作先使用1x1的卷积操作根据需要按比例降通道,再使用3x3卷积将通道升为原有数量;

s004_2:调整原有网络中的route层链接结构,与改进后的卷积采样层相对应。

进一步的,所述锚框选取模块可以使用kmeans聚类算法聚类出适合人脸比例的六类人脸框。

本发明的有益效果是:本发明采用深度学习模型,对卷基层进行先降维后升维的操作,减少运算量,压缩人脸检测模型大小,提高运行效率。同时使用kmeans聚类算法选取出最适合人脸框比例的锚框,提高检测精度。该系统可用于嵌入式cpu环境下,能够同时满足消耗计算资源低及检测精度高两个条件。

附图说明

图1为实施例1人脸检测方法流程图

图2为实施例1卷积优化示意图

图3为实施例2人脸检测系统结构图。

具体实施方式

下面将结合实施例对本发明的人脸检测方法及系统进行清楚、完整地描述。

实施例1

实施例1提供了一种快速人脸检测方法,如图1所示,具体实施步骤如下:

s001:样本采集标定;

所述s001是指,采集包含人脸的图像,对图像中的人脸区域进行标定,通常为人脸区域外接矩形的左上角坐标,及人脸矩形框的长度和宽度;

s002:对标定的人脸框坐标进行转换,包括:

s002_1:根据步骤s001标定内容计算人脸框的中心坐标(x_center,y_center)以及人脸框的长h_rect和宽w_rect;

s002_2:对步骤s002_1计算的数值进行归一化处理,得到用于训练输入的x、y、w和h,其中,x为人脸框横坐标,x=x_center/w_image,y为人脸框纵坐标,y=y_center/h_image,w为人脸框长,w=w_rect/image_width,h为人脸框高,h=h_rect/h_image,w_image和h_image分别为图像的宽和高;

s003:使用kmeans聚类算法选取锚框。

使用kmeans聚类算法,将标注好的人脸矩形框聚类出6种适合人脸框比例的长宽比;

s004:优化深度学习人脸检测网络,包括:

s004_1:将原网络中的3x3卷积操作,先使用1x1的卷积操作根据需要按比例降通道,再使用3x3卷积将通道升为原有数量,如图2所示,输入featuremap的维度为256维,要求输出维度也是256维,如原始卷积操作所示:256维的输入直接经过一个3×3×256的卷积层,输出一个256维的featuremap,那么参数量为256×3×3×256=589824;如改进后卷积操作所示:256维的输入先经过一个1×1×64的卷积层,再经过一个3×3×64的卷积层(不仅限于降低到64维,可根据需要调整),最后经过一个1×1×256的卷积层,输出256维,参数量为:256×1×1×64+64×3×3×64+64×1×1×256=69632,可大幅度降低参数量和计算量;

s004_2:调整原有网络中的route层链接结构,与改进后的卷积采样层相对应;

s005:基于人脸样本库和步骤s004优化后的深度学习人脸检测网络,训练人脸检测模型;

s006:输入待检测图像,对待检测图像预处理之后提取特征,基于步骤s005训练的人脸模型,使用聚类得到的锚框回归人脸框,检测人脸。本步骤中,这里的锚框指s003步骤中聚类得到6种锚框。

实施例2

实施例2提供了一种快速人脸检测系统,如图3所示,包括训练和检测两个部分,其中训练部分包括:样本处理模块、锚框选取模块和训练模块;检测部分包括:图像输入模块、图像预处理模块、人脸检测模块和图像输出模块。

样本处理模块用于样本的采集,标定,及人脸框坐标转换。

锚框选取模块用于聚类出适合人脸比例的人脸框;锚框选取模块可以使用kmeans聚类算法聚类出适合人脸比例的六类人脸框。

训练模块用于优化深度学习人脸检测网络,并根据优化后的深度学习人脸检测网络训练人脸检测器;优化深度学习人脸检测网络的方法可包括:

b1:将原网络中的3x3卷积操作先使用1x1的卷积操作根据需要按比例降通道,再使用3x3卷积将通道升为原有数量;

b2:调整原有网络中的route层链接结构,与改进后的卷积采样层相对应。

图像输入模块用于获取图像信息,可以是单张图像,视频或者图像序列。

图像预处理模块用于对图像进行缩放,长宽均为32的倍数且相同。

人脸检测模块用于检测输入图像中包含的人脸。

图像输出模块用于输出检测结果并在图像中描绘出人脸框位置。

基于实施例2的系统,实施例2还提供了一种快速人脸检测的法,具体步骤如下:

1、样本处理模块采集包含人脸的图像,对图像中的人脸区域进行标定,进行标定可以标定人脸区域外接矩形的左上角坐标,及人脸矩形框的长度和宽度;

2、样本处理模块对标定的人脸框坐标进行转换;

3、锚框选取模块使用kmeans聚类算法聚类出适合人脸比例的六类锚框;

4、训练模块优化深度学习人脸检测网络,并基于人脸样本库训练人脸检测模型;

5、图像输入模块获取图像信息,可以是单张图像,视频或者图像序列,并通过图像预处理模块对图像进行缩放;

6、人脸检测模块提取图像特征,并基于步骤4训练模块训练的人脸模型,使用步骤3聚类得到的锚框回归人脸框,检测人脸,最后通过图像输出模块输出检测结果并在图像中描绘出人脸框位置。

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