发明内容
本发明的目的是提供一种逆光环境下人脸检测方法,以克服目前现有技术存在的上述不足。
本发明的目的是通过以下技术方案来实现:
一种逆光环境下人脸检测方法,包括以下步骤:
1)根据光照情况,动态调整摄像机的参数,拍摄监控区域内图像;
2)前景、背景分割,对监控区域内图像提取前景运动区域为人脸检测区域;
3)人脸定位,通过基于Haar特征的AdaBoost级联分类器对人脸检测区域进行人脸定位,确定人脸区域的坐标位置;
4)人脸跟踪并存储,对定位到的人脸图像进行跟踪,采用面积重叠区域判断法,判断是否为同一个人的人脸图像,为同一个人,则对此人脸图像保存、标记;
5)人脸图像尺寸过滤,对步骤4)保存的人脸图像进行像素尺寸判断,过滤不符合设定参数的人脸图像;
6)人脸图像清晰度过滤,对符合步骤5)的人脸图像进行清晰度判断,过滤掉运动模糊、失焦等质量较差的人脸图像;
7)正面人脸过滤,对符合步骤6)的人脸图像进行是否为正面人脸图像判断,过滤侧面人脸图像,并对正面人脸图像进行评价、标记;以及
8)人脸图像输出,对符合步骤7)的人脸图像,输出评价值最高的人脸图像,没有符合步骤7)的人脸图像,则不输出图像。
所述步骤1)中动态调整摄像机的参数包括以下步骤:
a)对摄像机在不同光照情况下进行参数标定,调整摄像机亮度基准值,同时要限制住数字增益和曝光时间的变化范围;
b)对相机在不同光照情况下对应的检测区域平均灰度值进行标定,同时要结合检测到人脸区域的灰度值情况;
c)建立图像的平均灰度与相机参数之间的关系,使之能够在不同光照下动态调整相机参数。
所述步骤2)通过以下方法获取前景区域:
其中n为样本数,为1~n之间的某一样本像素灰度值,表示当前帧像素灰度值,Tr为常量取信范围在(100~128),Tn为1~n之间的某一常数,可取在n/2附近的整数值,为获取的前景候选区域,Bt(m)即为获取到的前景目标图像。
所述步骤6)采用基于Sobel算子的梯度方差来评价图像的清晰度:
Sobel水平和垂直方向算子如下:
梯度幅值:
梯度平均值:
梯度方差:
所述步骤7)正面人脸过滤包括以下步骤:
a)采用ASM算法定位人脸68个特征点,然后选取两只眼睛的坐标对人脸图像进行平移、旋转、缩放、裁剪,从而使所有检测的人脸规范到50mm×50mm尺寸;
b)此时,采用Sobel算子进行垂直方向的边缘检测,然后通过两眼的坐标点向两边寻找与两侧脸边缘的交点,计算眼睛到脸的距离是否相同,通过这个方法可把侧脸的图像筛除。如果大于设定的正面人脸阈值,将对该人脸图像进行标记。
本发明的有益效果为:对相机进行动态参数的调整,适应不同光照环境下的人脸检测,使逆光环境能够获得更好的人脸图像;针对逆光环境设计了一系列精简的人脸检测方法,其检测效果好,同时极大的降低了CPU处理所占的资源,使整个系统的硬件成本得以下降。
具体实施方式
如图1所示,本发明实施例所述的一种逆光环境下人脸检测方法,包括以下步骤:
1)根据光照情况,动态调整相机的参数,得到更适合人脸检测的图像。
现在进行人脸检测的摄像机一般都是高清网络相机,其默认参数是适应均匀光照环境下的,如果在逆光环境下仍然采用默认或某一固定参数,将会降低人脸检出率和最终得到的人脸图像质量。现在的网络相机不仅通过网络获得图像,还可以通过调用相机SDK实时设置相机的参数,因此通过算法动态调整相机参数的方法还是具有很强的适用性的。
通过计算在相机默认参数下设定监控区域内图像的平均灰度,用该灰度值表示当前光照情况,调整相机亮度基准值、数字增益、曝光时间,以匹配当前光照,达到最佳人脸检测效果。相机参数调整需要提前进行标定。
首先对相机在不同光照情况下进行参数标定,主要调整相机亮度基准值,因为调整相机的亮度基准值,相机会自动调整内部参数使亮度达到要求,同时要限制住数字增益和曝光时间的变化范围。
然后对相机在不同光照情况下对应的检测区域平均灰度值进行标定,同时要结合检测到人脸区域的灰度值情况。
最终,建立图像的平均灰度与相机参数之间的关系,使之能够在不同光照下动态调整相机参数。
2)前、背景分割,提取前景运动区域为人脸检测区域;
采用精简的分割算法,能够适用于逆光环境下的快速处理,达到检测运动前景即人脸检测区域的目的。因为在逆光情况下,进入监控区域的人脸相对于背景有很大的变化,因此要设计一个快速的前、背景分割算法,不需要很高的精度,即可达到应用的需求。通过以下方法获取前景区域:
其中n为样本数,为1~n之间的某一样本像素灰度值,表示当前帧像素灰度值,Tr为常量取值范围在(100~128),Tn为1~n之间的某一常数,可取在附近的整数值,为获取的前景候选区域,Bt(m)即为获取到的前景目标图像。对于找到的前景区域,进行形态学处理,去除图像中噪声干扰。此时保留下来的即为可进行人脸检测的前景目标。
3)对检测到的前景目标进行人脸定位处理,设计使用基于Haar特征的AdaBoost级联分类器对人脸检测区域进行人脸定位,得到人脸区域的坐标位置。
AdaBoost是自适应迭代算法,其核心思想是针对同一个训练集训练不同的弱分类器,然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。算法分为训练和检测两个过程,这两个过程可独立运行。Haar特征由边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。
4)对定位到的人脸图像进行跟踪,判断是否同一个人,采用的是面积重叠区域判断法。当定位到人脸图像后,比较前一帧的人脸图像,根据面积重合度能否达70%这个条件,判断是否为同一个人的人脸图像。考虑到摄像机25帧每秒的帧率,人脸的移动非常有限,再加上入口处人脸检测区域比较小,基本不会出现多人脸重叠的情况,这个方法经过大量测试,认为是可行的。当判断该人脸图像是否同一个人时,会进行保存和标记,在对该人输出最优人脸图像后,释放以前保存的人脸图像。
5)对保存的人脸图像进行像素尺寸的阈值判定,过滤不符合要求的图像;
因为摄像机固定拍摄入口处的场景,进入该监控区域的人脸图像尺寸比较固定,可以在此处设定一个最大、最小值,通过该参数过滤人脸图像,可去除很多不必要的干扰信息。人脸图像根据相机安装的距离,对焦位置,所选镜头等因素,定义横向像素90~120为过滤的范围,这个阈值也需要根据现场环境进行标定,确定在这个范围的人脸图像清晰可辨。
6)通过像素尺寸过滤后的图像,再进行清晰度阈值的判定,过滤掉运动模糊、失焦等质量较差的人脸图像;由于图像越清晰,其边缘的梯度变化就越大,本方法采用基于Sobel算子的梯度方差来评价图像的清晰度。采用Sobel算子的边缘检测,计算最大的梯度方差,过滤失焦或运动模糊的人脸图像。该梯度方差阈值也需要根据现场环境进行标定。本方法采用了基于Sobel算子的梯度方差来评价图像的清晰度。
Sobel水平和垂直方向算子如下:
梯度幅值:
梯度平均值:
梯度方差:
当图像大于清晰度阈值时,该人脸图像进入下一个处理环节。
7)通过清晰度过滤后的图像,再进行是否正面人脸的判定,过滤侧面人脸图像,并对该图像进行评价标记;判断是否为正面人脸图像。此处的处理只是为了选出较好的图像,因此把人脸图像缩小至50mm*50mm尺寸,这样可大大缩短此环节处理的时间。
ASM是一种基于点分布模型(PDM)的算法。在PDM中,外形相似的物体,例如人脸、人手、心脏、肺部等的几何形状可以通过若干关键特征点的坐标依次串联形成一个形状向量来表示。
采用ASM算法定位人脸68个特征点,然后选取两只眼睛的坐标对人脸图像进行平移、旋转、缩放、裁剪,从而使所有检测的人脸规范到50mm×50mm尺寸。这里只是做正面人脸判断,所有归一化到较小的尺寸有利于快速计算。
此时,采用Sobel算子进行垂直方向的边缘检测,然后通过两眼的坐标点向两边寻找与两侧脸边缘的交点,计算眼睛到脸的距离是否相同,通过这个方法可把侧脸的图像筛除。如果大于设定的正面人脸阈值,将对该人脸图像进行标记。采用Sobel算子进行垂直方向的边缘检测,计算两眼到两边面颊边缘的距离,当两个距离差值比上它们平均值小于20%时,认为该人脸图像是正面的。此时再对该人脸图像进行标记。
8)对同一人通过像素尺寸、清晰度、正面人脸三重过滤后的图像,输出最好效果的人脸图像,并释放保存的该人其他图像信息。输出最优人脸图像。根据步骤4,保存了一系列的同一人的人脸图像,又根据人脸像素数、清晰度、是否正面人脸三个处理环节对每幅人脸图像进行过滤评价,如果没有通过评价标准的人脸图像则认为该人的所有人脸图像都达不到后续比对识别的要求,不输出图像。如果有多张人脸图像通过评价标准,则输出评价值最高的人脸图像。
对之前标记的同一人人脸图像进行评价,如果存在多张正脸图像,则输出最正那张图片;如果不存在正脸图像,则不输出人脸图像。此时,释放掉该人保存的一系列图像。
搭建环境要求,在公共或娱乐场所搭建130万像素高清网络摄像机,对所有进入该场所人群进行人脸检测,要求相机正对入口大门拍摄,高度距地面2.35米左右,相机到检测点水平距离5米左右。同时在安装的摄像机网络中,部署服务器对摄像机输入的视频流进行人脸检测。
本发明不局限于上述最佳实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。