提高口罩遮挡人脸识别准确度的研究
2021-10-23侯现坤周玮
侯现坤,周玮
(宿州学院,安徽宿州,234000)
关键字:口罩遮挡;hog 特征;区域比例;边缘检测
0 引言
人脸识别是目前主流生物特征识别技术(Biometrics),在生活中有着广泛用途,应用于门禁考勤系统,电脑手机安全防范,ATM 机智能报警系统,人物追踪等领域。具有误识率低,难仿冒,不易察觉,不需接触,自然性等优点。因此受到了很多研究者关注,刘瑞钦[1]提出使用多尺度直方图解决了特征提取时块的大小选择问题,使用欧拉公式对矩阵进行白化处理,实验表明在FERET 数据库上识别准确度很高。袁宝华[2]基于水平长直线检测的口罩检测,首先对图片归一化处理,根据眉毛粗定位其他器官,通过检测波峰来判断长直线的有无,判断出口罩位置。蒋婵,黄晁,陈春燕[3]通过数据增强方法,对训练集进行手动遮挡,使用平均脸策略,对遮挡区域进行分割和处理,获得类似于自然遮挡图像,解决了训练集样本不足的问题。林胜光[4]基于神经网络结合区域权值,并对中间卷积层进行高斯滤波处理,利用使用滤波后的特征进行人脸对比,提高人脸识别的准确度。本文根据霍夫直线检测判断人脸是否佩戴口罩,并通过提取未遮挡部分hog 特征,对分类器进行级联来提高口罩遮挡人脸识别的准确度。
1 方法描述
1.1 高斯卷积
高斯卷积把原始图片与卷积核中心重叠对应位置相乘,卷积核每次移动一个像素,卷积后得到一张新的图片,原图片根据卷积核的大小,选用不同的padding 方式,保证得到的图片和原始图片一样的尺度。使用的高斯核其取自二维高斯分布,对高斯核归一化卷积之后,保证得到的新的图片像素值在0 到255,高斯核中心像素点周围的值会对其产生影响。基于高斯核得到的新的图像,像素点的值因受到周围像素点的值产生影响,图像过度更加平滑,并去掉随机噪声。
图1 原始图像
图2 灰度图像
图3 二值化图像
灰度处理使三种色彩分量R,G,B 的值相同,基于加权平均值法,当其权重不同时,形成不同灰度的灰度图像,使其产生的图片符合人眼视觉感受。灰度处理可提高程序运算速度。二值化设定一个阈值将图像像素点灰度值设置为0 或255。
1.2 腐蚀
基于形态学图像处理算法腐蚀与膨胀[5]提取图像成分,去除二值化图像噪点。利用结构单元对目标图像进行腐蚀操作,如果结构单元像素点完全处于目标图像里,那么结构单元原点所在位置可以输出。如果结构单元像素点超出目标区域,则结构单元原点位置不能输出,因此目标区域边界就会被腐蚀。腐蚀可以缩小或者细化二值图像中的物体,腐蚀操作将小于结构单元的图像细节从图像中滤除。
膨胀操作,结构单元像素点可以超出目标区域范围,但必须有一部分像素点在目标区域范围中,结构单元原点所在位置才能输出。如果结构单元像素点和目标区域没有联系,结构单元中心位置不能输出。基于膨胀操作使目标区域范围比之前扩大,可以使断裂部分被连接起来。
基于开操作先腐蚀后膨胀,可以使物体的轮廓更加的平滑并消除细小的突出物,但是也可能会导致细微连接处断开较窄的狭颈。由于有些部分通过开操作之后,出现新的断裂无法恢复,并不是我们所期望。为解决这个问题,使用闭操作先膨胀后腐蚀,平滑轮廓的一部分与开操作相反,其通常会弥合较窄的间断和细长的沟壑,消除小的空洞,填补轮廓的断裂。
1.3 边缘检测
图像canny 边缘检测[6]图像在垂直于边缘的方向上像素变化很大。因图像是离散的,可根据差商的极限对图像近似求导。使用核对图像分别进行竖向和横向两次卷积,基于竖向和横向卷积的图像,得到原始图像的梯度的幅值和梯度的方向,赋值越大更有可能是边,保留梯度方向最大的幅值,对非极大值进行抑制。因像素点离散,梯度方向可能没有幅值存在,则需基于线性差值模拟出两个点的幅值与中间点幅值进行比较,如果中间点大于另外模拟出的点则将其保留,认为其是该梯度方向最大的值,否则舍弃该点。边缘的连接和阈值化把灰度小于最小阈值的点去除,大于最大阈值的点保留。去除一些点后图像会断断续续,为解决此问题,将遍历大于最大阈值的点,此点如果其八领域内存在阈值,其值介于最大阈值和最小阈值中间把它连接起来。
图4 腐蚀图像
图5 膨胀图像
霍夫直线检测[7]遍历每一个像素点,如果是黑色点不执行操作,如果是白色点获取其x,y 坐标带入不同的角度,求出不同的r,直到所有的边缘点都遍历完,出现最多的r 和角度组合最有可能是直线。
图6 边缘检测图像
图7 霍夫直线检测图像
1.4 Hog 特征提取
基于霍夫直线检测以及利用hsv 作为肤色检测判断出未遮挡部分,提取未遮挡部分Hog 特征[8(]方向梯度直方图)作为分类对象,其不依赖于颜色,图像梯度可以分解为水平和竖直方向梯度。水平梯度计算首先要从左向右扫描,计算该方向上的像素值的差值。在从上到下扫描计算竖直方向梯度,利用水平方向梯度和竖直方向梯度,提取图像hog 特征。基于梯度直方图训练分类器来检测物体,根据水平和竖直方向上的梯度可以计算出图片总体的梯度值和梯度角。总梯度大小和方向用向量表示,该向量表达两个像素的特征,因次压缩了图片信息,压缩后的图像可以表达图像中的主要特征。
Pca 降维[9]首先计算多维数据中二维变量的平均测量值,根据平均值,计算出数据的中心,移动数据的中心并确保数据中心在图形中原点的位置,移动数据并不会改变数据点彼此之间的相对位置,通过移动后的图像拟合出一条直线。选定一条穿过原点的随机线为量化拟合数据程度,数据投影到该线段,测量数据到直线的距离。找到使这些投影点到直线距离总和最小的线或找到使投影点到原点距离最大的线,旋转选定的直线,使这些投影点到直线距离总和最小,尽可能拟合数据。把最佳拟合线距离的平方和称为pca 特征值。另外一个主成分通过原点垂直pca 无需更多优化,因主成分必须保证线性无关,所以垂直pca,选择pca 呈现水平状态,用投影点定位图中样本位置,特征值通过把数据投影到主成分上来获得。计算每个主成分的差异,选取占绝大多数差异率的主成分,使用保留的主成分的特征值去表达特征。
1.5 分类器级联人脸特征检测
根据提取出的hog 特征,使用提升学习(boosting)基于AdaBoost 产生弱预测模型,并加权累加到总模型中。原始训练集训练形成弱学习器,在构建下一个弱学习器时会考虑前一个训练集中的模型的效果。根据前一个训练集的效果去更改原来样本权重,样本数目不会因此改变,修改之后依次递推进行一系列的迭代,迭代到错误率足够小,多个弱学习器预测结果进行加权融合。算法会为每一个样本赋予一个权重,每次用训练好的学习器预测样本,如何某一个样本预测的越来越正确 则将其权重降低,否则提高样本的权重。权重越高的样本在下一次迭代训练中所占的比重就越大,使越难区分的样本在训练过程中会变得越重要。基于OpenCV 实例化分类器实现对人脸,鼻子,嘴巴的检测,如果检测到嘴巴说明没有佩戴口罩。
2 结语
本文阐述了口罩遮挡人脸识别方法,首先对人脸图像进行高斯卷积使图像更加平滑,对二值化的图像进行开操作和闭操作去除图像中的噪点。对嘴巴检测判断是否佩戴口罩,基于霍夫直线检测和提取人脸部的肤色信息判断出未遮挡部分。提取未遮挡部分hog 特征,基于分类器级联识别出口罩遮挡人脸,提高口罩遮挡人脸识别的准确度。