技术领域
[0001] 本
发明涉及
图像识别技术领域,特别涉及一种人脸识别方法及系统。
背景技术
[0002] 人脸识别技术的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主。人脸识别技术成功的关键在于是否拥有尖端的核心技术使识别结果具有实用化的识别率和识别速度。
[0003] 然而,目前的人脸识别技术存在以下
缺陷:1、对光照、
角度、表情和饰物等人脸区域变化敏感,导致在理想环境下识别率很高,而在实际应用场景下识别率很差;2、近来出现的基于DCNN的人脸识别方法理论上具有很高的
精度,但在计算资源有限的移动平台上却无法较好地运行,不是速度太慢就是内存不足。
发明内容
[0004] 为解决上述技术问题,克服
现有技术水平的缺点和不足,本发明提供一种人脸识别方法及系统,可以在计算资源有限的移动平台上进行人脸的精确识别。
[0005] 本发明提供的一种人脸识别方法,包括以下步骤:
[0006] 第一步,
人脸检测;人脸检测步骤具体包括以下步骤:
[0007] 提取待识别图像的所有的控制点的特征;
[0008] 以所述控制点为分叉点,提取预设数量的控制点的特征组成一棵预设深度的
决策树;
[0009] 采用adaboost级联分类器对所述决策树的特征进行分类,并以多个尺度检测每个
位置上的滑动窗口,得到所述待识别图像中的人脸图像位置区域的多个矩形框,进而获得所述待识别图像中的多个人脸矩形图像;
[0010] 第二步:人脸识别;人脸识别步骤具体包括以下步骤:
[0011] 将得到的多个所述人脸矩形图像进一步缩放到统一尺寸,并将其中的灰度
像素值 替换成UNIFORM-LBP像素值,得到所述人脸矩形图像的灰度图;
[0012] 将所述人脸矩形图像的灰度图输入预先训练好的DCNN(深度
卷积神经网络)网络,从中提取预设维度的人脸特征;
[0013] 将得到的所述人脸特征与预设
数据库内的人脸数据进行比对识别。
[0014] 作为一种可实施方式,所述人脸检测步骤还包括以下步骤:
[0015] 对得到的所述人脸矩形图像进行非极大值抑制。
[0016] 作为一种可实施方式,对得到的所述人脸矩形图像进行非极大值抑制,包括以下步骤:
[0017] 将多个所述人脸矩形图像两两进行对比;
[0018] 根据对比结果,对于每一对互相重叠率高于0.5的所述人脸矩形图像,选择保留adaboost级联分类器中得分高的一个,删除另一个。
[0019] 作为一种可实施方式,所述预设数量为15对,所述预设深度为4。
[0020] 作为一种可实施方式,所述预设维度为200维。
[0021] 相应地,本发明提供的人脸识别系统,包括人脸检测模
块和人脸识别模块;
[0022] 人脸检测模块包括提取单元、创建单元以及检测单元;
[0023] 所述提取单元,用于提取待识别图像的所有的控制点的特征;
[0024] 所述创建单元,用于以所述控制点为分叉点,提取预设数量的控制点的特征组成一棵预设深度的决策树;
[0025] 所述检测单元,用于采用adaboost级联分类器对所述决策树的特征进行分类,并以多个尺度检测每个位置上的滑动窗口,得到所述待识别图像中的人脸图像位置区域的多个矩形框,进而获得所述待识别图像中的多个人脸矩形图像;
[0026] 所述人脸识别模块包括处理单元、训练单元以及识别单元;
[0027] 所述处理单元,用于将得到的多个所述人脸矩形图像进一步缩放到统一尺寸,并将其中的灰度像素值替换成UNIFORM-LBP像素值,得到所述人脸矩形图像的灰度图;
[0028] 所述训练单元,用于将所述人脸矩形图像的灰度图输入预先训练好的DCNN网络,从中提取预设维度的人脸特征;
[0029] 所述识别单元,用于将得到的所述人脸特征与预设数据库内的人脸数据进行比对识别。
[0030] 作为一种可实施方式,所述人脸检测模块还包括抑制单元;
[0031] 所述抑制单元用于对得到的所述人脸矩形图像进行非极大值抑制。
[0032] 作为一种可实施方式,所述抑制单元包括对比子单元和选择子单元;
[0033] 所述对比子单元,用于将多个所述人脸矩形图像两两进行对比;
[0034] 所述选择子单元,用于根据所述对比子单元的对比结果,对于每一对互相重叠率高于0.5的所述人脸矩形图像,选择保留adaboost级联分类器中得分高的一个,删除另一个。
[0035] 作为一种可实施方式,所述预设数量为15对,所述预设深度为4。
[0036] 作为一种可实施方式,所述预设维度为200维。
[0037] 本发明相比于现有技术的有益效果在于:
[0038] 本发明提供的人脸识别方法及系统,其中方法通过提取待识别图像的所有的控制点的特征,以控制点为分叉点,提取预设数量的控制点的特征组成一棵预设深度的决策树,采用adaboost级联分类器对决策树的特征进行分类,并以多个尺度检测每个位置上的滑动窗口,得到待识别图像中的人脸图像位置区域的多个矩形框,进而获得待识别图像中的多个人脸矩形图像,实现人脸图像的高精度检测;接下来将得到的多个人脸矩形图像进一步缩放到统一尺寸,并将其中的灰度像素值替换成UNIFORM-LBP像素值,得到人脸矩形图像的灰度图,然后将人脸矩形图像的灰度图输入预先训练好的DCNN网络,从中提取预设维度的人脸特征,与预设数据库内的人脸数据进行比对识别,从而实现了高精度识别。
[0039] 本发明解决了传统的高精度人脸识别技术应用于移动平台时候计算资源不够的问题,其在
嵌入式系统的低频CPU、小内存条件下依旧能够流畅地运行,同时保证了人脸识别的精度。
附图说明
[0040] 图1为本发明
实施例提供的人脸识别方法的流程示意图;
[0041] 图2为本发明实施例提供的人脸识别方法中的控制点的示意图;
[0042] 图3为本发明实施例提供的人脸识别方法中的决策树的示意图;
[0043] 图4为本发明实施例提供的人脸识别系统的结构示意图。
具体实施方式
[0044] 以下结合附图,对本发明上述的和另外的技术特征和优点进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部实施例。
[0045] 参见图1,本发明实施例一提供的人脸识别方法,包括以下步骤:
[0046] 第一步,人脸检测:搜索图像,通过获取待识别图像中的人脸图像位置区域的多个矩形框,得到人脸矩形图像;
[0047] 第二步,人脸识别:提取人脸矩形图像中的人脸特征,与预设数据库内的人脸数据进行比对识别。
[0048] 以下结合附图对上述步骤进行详细说明:
[0049] 人脸检测步骤具体包括以下步骤:
[0050] S110,提取待识别图像的所有的控制点的特征。
[0051] 如图2所示,随机提取一张人脸图片的上的一些像素点对的灰度值pi,pj,像素点的坐标体现在i、j这两个下标中,得到一系列向量f1~f4。这些像素点被称作控制点,控制点的特征fi定义如下:fi=pi-pj,其中pi为向量的起点,pj为向量指向的终点。
[0052] S120,以控制点为分叉点,提取预设数量的控制点的特征组成一棵预设深度的决策树。
[0053] 控制点的提取数量以及决策树的深度会影响到识别速度和识别精度,数字越大,速度越慢,精度越高。基于此,从识别精度和速度综合考量,本发明实施例提取任意15对控制点特征组成一棵深度为4的决策树特征,这样识别精度和速度均可以得到较好地保障。
[0054] 如图3所示,建立一棵深度为3的二叉决策树,在每个分叉点处设置一个控制点的特征fi,根据其特征值(上面公式中的f值)是否在某个范围内决定样本是落到左边子
节点还是右边
子节点。例如,特征值在大于θ11小于θ12范围内的样本就落到右边节点,否则在左边节点。
[0055] S130,采用adaboost级联分类器对决策树的特征进行分类,并以多个尺度检测每个位置上的滑动窗口,得到待识别图像中的人脸图像位置区域的多个矩形框,进而获得待识别图像中的多个人脸矩形图像。
[0056] adaboost级联分类器的计算流程如下:
[0057] 1.首先,初始化
训练数据的权值分布。每一个训练样本最开始时都被赋予相同的 权重:1/N。
[0058]
[0059] 接下来,如果某个样本点已经被准确地分类(判断输出的标签是否和实际类别标签一样,若一样则判断样本点已经被准确地分类),那么在构造下一个训练集中,它被选中的概率就被降低;相反,如果某个样本点没有被准确地分类,那么它的权重就得到提高。
[0060] 2.对于m=1,2,...,M
[0061] a.使用具有权值分布Dm的训练数据集学习,得到基本分类器:
[0062] Gm(x):χ→{-1,+1};
[0063] Gm(X)代表预测函数,根据样本的特征值向量x判断是否是人脸,从样本空间映射到样本类别标签-1、1,即非人脸类别和人脸类别。
[0064] b.计算Gm(x)在训练数据集上的分类误差率:
[0065]
[0066] y1代表实际样本类别标签,x1代表样本,I代表判断不等式的指示函数,不等式成立为1,否则为0。不等式成立代表预测的类别和实际的类别不相同,即预测错误,w代表此样本的权值,m代表
迭代次数,i代表第i个样本,N代表样本数。
[0067] c.计算Gm(x)的系数,αm表示Gm(x)在最终分类器中的重要程度:
[0068]
[0069] 由上述式子可知,em≤1/2时,αm≥0,且αm随着em的减小而增大,意味着分类误差率越小的基本分类器在最终分类器中的作用越大。
[0070] 此处需要说明的是,最终分类器的输出结果是很多弱分类器输出结果的权值和,作用越大代表话语权越大,表明这个弱分类器的判断结果更具有可信度。
[0071] d.更新训练数据集的权值分布
[0072] Dm+1=(wm+1,1,wm+1,2…wm+1,i…,wm+1,N),
[0073]
[0074] 其中,w代表此样本的权值,Zm是规范化因子,使得Dm+1成为一个概率分布:
[0075]
[0076] 本发明通过增大被基本分类器Gm(x)误分类样本的权值,较小被正确分类样本的权值,从而使adaboost级联分类器能够“聚焦于”那些较难分的样本上,提升检测精度。
[0077] 3.构建基本分类器的线性组合:
[0078]
[0079] 从而得到最终分类器,如下:
[0080]
[0081] 在图像里面滑动矩形窗口,通过以上步骤判断这个矩形窗口是不是人脸,得到待识别图像中的人脸图像位置区域的多个矩形框,进而将矩形框内的图像截取并保存,获得待识别图像中的多个人脸矩形图像。
[0082] 进一步地,上述人脸检测步骤在上述步骤S130之后还包括以下步骤:
[0083] S140,对得到的人脸矩形图像进行非极大值抑制。
[0084] 例如:将多个人脸矩形图像两两进行对比,根据对比结果,对于每一对互相重叠率高于0.5的人脸矩形图像,选择保留adaboost级联分类器中得分高的一个,删除另一个,以减少误检数量,提高检测精度。
[0085] 人脸识别步骤具体包括以下步骤:
[0086] S210,将得到的多个人脸矩形图像进一步缩放到统一尺寸,并将其中的灰度像素值替换成UNIFORM-LBP像素值,得到人脸矩形图像的灰度图。
[0087] 进一步地,可以将检测到的人脸矩形图像进一步缩放到统一尺寸(40*40),并将人脸的灰度像素值替换成UNIFORM-LBP像素值,这样可以消除实际应运场景中的光照影响,提升识别精度。
[0088] 原始的LBP算子定义为在3*3的窗口内,以窗口中心像素为
阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。
[0089] 为了解决二进
制模式过多的问题,提高统计性,采用一种“等价模式”(UniformPattern)来对LBP算子的模式种类进行
降维。在实际图像中,绝大多数LBP模式最多只包含两次从1到0或从0到1的跳变。“等价模式”定义为:当某个LBP所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该LBP所对应的二进制就称为一个等价模式类。如00000000(0次跳变),00000111(只含一次从0到1的跳变),10001111(先由1跳到0,再由0跳到1,共两次跳变)都是等价模式类。除等价模式类以外的模式都归为另一类,称为混合模式类,例如10010111(共四次跳变)。
[0090] 通过这样的改进,二进制模式的种类大大减少,而不会丢失任何信息。模式数量由原来的2P种减少为P(P-1)+2种,其中P表示邻域集内的
采样点数。对于3×3邻域内8个采样点来说,二进制模式由原始的256种减少为58种,这使得
特征向量的维数更少,并且可以减少高频噪声带来的影响。
[0091] S220,将人脸矩形图像的灰度图输入预先训练好的DCNN网络,从中提取预设维度的人脸特征。
[0092] 可以将上一步得到的人脸矩形图像的灰度图输入训练好的DCNN,得到200维大小的人脸特征向量。
[0093] S230,将得到的人脸特征与预设数据库内的人脸数据进行比对识别。
[0094] 具体地,计算上一步得到的人脸特征向量与数据库内所有向量的欧氏距离,并把人脸图像识别成距离最近的那个人的ID,完成识别动作。
[0095] 本发明提供的人脸识别方法,通过提取待识别图像的所有的控制点的特征,以控制点为分叉点,提取预设数量的控制点的特征组成一棵预设深度的决策树,采用adaboost级联分类器对决策树的特征进行分类,并以多个尺度检测每个位置上的滑动窗口,得到待识别图像中的人脸图像位置区域的多个矩形框,进而获得待识别图像中的多个人脸矩形图像,实现人脸图像的高精度检测;接下来将得到的多个人脸矩形图像进一步缩放到统一尺寸,并将其中的灰度像素值替换成UNIFORM-LBP像素值,得到人脸矩形图像的灰度图,然后将人脸矩形图像的灰度图输入预先训练好的DCNN网络,从中提取预设维度的人脸特征,与预设数据库内的人脸数据进行比对识别,从而实现了高精度识别。
[0096] 基于同一发明构思,本发明实施例还提供一种人脸识别系统,该人脸识别系统可以采用上述实施例提供的人脸识别方法实现,重复之处不再冗述。
[0097] 参见图4,本发明实施例提供的人脸识别系统,包括人脸检测模块100和人脸识别模块200;
[0098] 人脸检测模块100包括提取单元110、创建单元120以及检测单元130,其中:
[0099] 提取单元110用于提取待识别图像的所有的控制点的特征;
[0100] 创建单元120用于以控制点为分叉点,提取预设数量的控制点的特征组成一棵预设深度的决策树;
[0101] 检测单元130用于采用adaboost级联分类器对决策树的特征进行分类,并以多个尺度检测每个位置上的滑动窗口,得到待识别图像中的人脸图像位置区域的多个矩形框,进而获得待识别图像中的多个人脸矩形图像;
[0102] 人脸识别模块200包括处理单元210、训练单元220以及识别单元230,其中:
[0103] 处理单元210用于将得到的多个人脸矩形图像进一步缩放到统一尺寸,并将其中的灰度像素值替换成UNIFORM-LBP像素值,得到人脸矩形图像的灰度图;
[0104] 训练单元220用于将人脸矩形图像的灰度图输入预先训练好的DCNN网络,从中提取预设维度的人脸特征;
[0105] 识别单元230用于将得到的人脸特征与预设数据库内的人脸数据进行比对识别。
[0106] 进一步地,人脸检测模块100还包括抑制单元140,抑制单元140用于对得到的人脸矩形图像进行非极大值抑制。
[0107] 更进一步地,抑制单元140还包括对比子单元和选择子单元,对比子单元用于将多个人脸矩形图像两两进行对比;选择子单元用于根据对比子单元的对比结果,对于每一对互相重叠率高于0.5的人脸矩形图像,选择保留adaboost级联分类器中得分高的一个,删除另一个。
[0108] 上述预设数量为15对,预设深度为4,预设维度为200维。
[0109] 本发明解决了传统的高精度人脸识别技术应用于移动平台时候计算资源不够的问题,其在嵌入式系统的低频CPU、小内存条件下依旧能够流畅地运行,同时保证了人脸识别的精度。
[0110] 以上的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何
修改、等同替换、改进等,均应包含在本发明的保护范围之内。