基于直方图均衡化的人脸识别系统设计与实现
扫描二维码
随时随地手机看文章
引 言
近年来,人脸识别受到各界的广泛关注。该技术是一种非接触式、简便的生理特征识别技术。人脸识别主要采用几何特征、模板匹配、统计学等方法实现。钱程采用深度多模型融合实现人脸识别 [1]。江伟等人对 Ada Boost 算法进行相应的改进 [2],使其检测效果更佳。常云翔采用深度学习算法解决了复杂光照人脸识别模型问题 [3]。这些方法在理想状态下已取得较好的效果,但仍有诸多问题急需解决。本文采用光照锥法进行光照补偿,实现视频流的人脸识别
1 系统整体框架
本文人脸识别抗光照系统流程为 :摄像头采集数据,将采集到的内容逐帧输入到人脸检测模块,对检测出的人脸进行预处理。将预处理后的图像传送到人脸识别模块,输出识别结果。具体实现过程如图 1 所示
2 人脸检测
在人脸检测前,首先应将视频逐帧输入的图像转化为灰度图像,并使用双线性插值法将其归一化处理,以提高人脸检测速率
人脸检测模块由训练与检测两部分组成。本文使用 Ada Boost 算法,采用 OpenCV 函数库中的 Haar 分类器,人脸检测模块利用如下函数
CascadeClassifier :CascadeClassifier(
CascadeClassifier :detectMultiScale(
3 图像预处理
视频图像会受到光照等条件影响,本系统采用直方图均衡化调整图片的对比度,改善采集的数据质量。
直方图均衡化利用累计分布函数变换将直方图从集中灰度分布映射成均匀灰度分布。具体步骤为 :
(1)经灰度映射,获取输入图像的二维直方图。
(2)统计每个灰度级出现的频率。
(3)通过调整灰度级直方图改善图像因过度曝光或曝光不足导致的前景背景过亮或过暗现象。
直方图均衡化处理如图 2、图 3 所示。
4 人脸识别
4.1 人脸表征与光照锥
人脸识别算法主要包括 Eigenfaces 算法、Fisherfaces 算法与LBPHfaces 算法。Eigenfaces 算法将高维的人脸图像降维映射到低维特征脸子空间,实现面部特征采集,该算法特征数据多、识别准确率高。Fisherfaces 算法在低维空间达到最大类间离散度与最小类内离散度,对不同的数据集计算其相应的特征。LBPHfaces 算法采用局部特征值的描述方法通过提取图像局部细节描述其纹理特征
本文设计选用 Eigenfaces 算法。该算法虽然具有较高的识别率,但对光照因素较为敏感,因此光照因素的存在导致系统具有较高的误识率与拒识率。本文采用光照锥方法对图像进行光照补偿
光照锥即不同光源方向的图像叠加形成的凸型锥体。光照锥方法基于光度立体视觉方法,使用前提是样本为理想散射模型,即可在固定光照下的所有视场方向观测到物体表面算法思想是在构建特征脸时利用光照锥生成新的图像样本
首先,加载用于训练的图像样本,将图像样本转换成矩阵向量形式与表示光源方向矩阵。其次,根据单一光源人脸表面的阴影计算出光源的反射率与表面法向量,由这些信息可以得到三维人脸重构图像与光源方向的估计值。最后,通过改变光源的方向,计算出不同光源下的合成图像。通过丰富特征脸的图像光源信息,实现在构建特征脸阶段减少光照对人脸识别系统的干扰
4.2 算法实现
人脸识别算法的具体步骤为
(1)采集人脸样本,利用光照锥重构图像,人脸重构模型如图 4所示,原图像与重构图像如图 5所示
(2)对样本进行标准化处理,如图 6 和图 7 所示。
(3)计算不同人脸样本集的平均脸,如图 8 所示。
(4)计算离散度矩阵。将离散度矩阵进行特征值分解,选取其中最大的几组特征值见表 1 所列,其相应的特征向量如图 9 和图 10 所示。
5 结 语
本文人脸检测模块选取传统的 Harr 分类器,采集的人脸图像经颜色空间转换与归一化处理后,图像基本标准化,又经直方图均衡化处理,使系统初具抗光照能力。在人脸识别模块,选取经典的 Eigenfaces 算法,并结合光照锥方法构造“征脸”,使得系统进一步削弱了光照对其的影响。在不同光照情况下采用该软件对实验室 45 名学生进行为时 1 min 的实验,实验结果见表 2 所列。
从实验效果看,达到了满足了不同光照情况下人脸实时识别效果。光照锥法可以有效解决经典的 Eigenfaces 算法识别人脸存在的对光照敏感的问题。