1. 引言
在计算机视觉和人工智能领域,人脸识别一直以来都是其中最重要的部分之一,每年都会有更准更快的算法不断面世。但是在复杂环境下,识别准确度明显降低 [1]。SIFT算法是由Lowe [2] 于1999年提出的一种基于特征点的经典匹配算法。在算法发表后,在物体识别、图像融合、场景检测等领域得到了广泛的应用。近年来已有许多基于SIFT的人脸识别方法。毋立芳 [3] 等提出了一种基于二值SIFT的人脸识别技术,但二值过程损失了一部分有效特征,降低了识别率。汪璠 [4] 等提出了一种基于HOG-SIFT融合优化的多人脸特征提取方法,有效实现在昏暗光线及复杂背景下多人脸特征提取功能。霍春宝 [5] 等提出了一种OCR下的改进SIFT人脸识别算法,采用OCR技术中的非均匀网格的方式对人脸图像进行区域划分,有效降低了匹配计算的复杂程度。徐楚 [6] 等在SIFT特征提取前利用Powell算法学习最优化参数,结构简单,具有较高的精确度。Dense SIFT (DSIFT)特征是Lazebnik [7] 于2006年提出的一种改进的SIFT特征提取算法,它对目标区域采用固定步长、固定网格的滑动窗口对识别图像密集均匀采样,其中每个网格都提取一个Dense SIFT特征,相比于传统的SIFT算法省略了计算高斯差分和局部极值的判断等过程,计算复杂度低且提取出的特征点分布更加均匀,有利于特征之间配准因此被很多领域所应用。
2019年12月以来,新型冠状病毒肺炎(COVID-19)疫情,已经陆续蔓延到我国多个省份及境外多个国家,对人类健康和社会安全造成了巨大威胁 [8]。口罩已经成为生活的必需品,这对现有场景下的人脸识别带来了很大的挑战。为了满足实时性和匹配精确性要求较高的应用领域,考虑到SIFT算法对尺度、位置、旋转、光照等具有很好的鲁棒性,本文在研究该算法的基础上进行了优化改进。首先加入特征初筛并提取出局部人脸图像,其次改进特征相似性度量指标,改进后的算法识别速度快,同时大大减少了误匹配的情况。
2. SIFT特征提取与匹配
2.1. 尺度空间极值点检测
对于一副二维图像,将其尺度空间
定义为带有不同尺度的高斯函数
和图像
卷积结果:
(1)
其中,
表示的是卷积运算,
表示尺度空间的大小,
越大则表示越模糊,表示图像的概貌,
越小则表示越清晰,表示图像的细节。高斯函数
定义为:
(2)
对经过不同尺度高斯函数卷积后的图像建立高斯差分尺度空间 [2] (DOG),将待检测像素点的灰度与周围领域为同尺度的8个相邻点以及相邻两个尺度图像上相应的9 × 2个像素点组成的这26个像素的灰度进行比较,若值为最大或最小,则判定该点为极值点,保证了无论是在相邻尺度空间中还是同一尺度空间图像中,此像素点都是极值点。
2.2. 关键点精确定位
由于对比度较低的极值点对噪声比较敏感,位于边缘的极值点定位又相当困难,为提高关键点的抗噪能力与稳定性,对DOG算子进行曲线拟合,剔除对比度低的以及边缘相应强的极值点,可通过下式剔除边缘极值点:
(3)
式中,H为极值点所在尺度空间的2 * 2的Hessian矩阵,
为矩阵对角线元素之和,
为矩阵行列式的值,r为矩阵中最大特征值与最小特征值的比值。
2.3. 关键点方向确定
为了使描述符具有旋转不变性,需要利用图像的局部特征为给每一个关键点分配一个基准方向,而这个方向通过特征点的局部图像结构统计获得。根据有限差分方法,计算以特征点为中心,以r为半径的圆形区域中各像素的梯度幅角及幅值,然后以此计算其邻域的梯度方向直方图。此直方图有36个方向,每个方向10˚,梯度方向直方图的最高峰所对应的方向为该关键点的主方向。
像素的梯度幅值计算公式为:
(4)
像素的梯度幅角的计算公式为:
(5)
2.4. 特征向量生成
接下来就是为每个特征点建立一个描述符,用一组向量将这个特征点描述出来,使其不随各种变化而改变,比如光照变化、视角变化等。这个描述符不但包括特征点,也包含特征点周围对其有贡献的像素点,并且描述符应该有较高的独特性,以便提高特征点正确匹配的概率。为确保旋转不变性,以关键点为中心,将坐标轴旋转为关键点的主方向,并选取关键点周围16 * 16邻域作为采样窗口,然后计算每个像素点的梯度方向和幅值,最后在4 * 4的窗口上计算8个方向上的梯度直方图,同时计算每个梯度的累加值,形成一个种子点。每个关键点由16个种子点组成,每个种子点表示8个方向的向量信息,这样一个关键点就可以形成128维度的特征描述符。
2.5. 特征点匹配
特征向量形成后,使用欧式距离来度量特征点的相似性。欧式距离表示n维空间中两个点之间的真实距离,两个向量距离越近,欧式距离就越接近于零,它们也就越相近。两个特征点B和C的欧式距离可通过下式计算:
(6)
其中
为识别对象n维的特征描述向量,
为样本库内对象对比匹配的n维特征描述向量。
3. 本文改进算法
3.1. 特征初筛
为了提高整体特征匹配识别算法的速度,在后续精匹配前进行特征初筛,对待识别人脸图像提取轮廓特征进行初筛。其中初步筛选的依据为计算两幅图像的matchShapes函数 [9] f:
(7)
(8)
若f小于设置阈值k,则通过初步筛选进行下一步骤的识别工作。其中A,B表示匹配对象,
表示对象A的Hu值。Hu不变矩 [10] 共有7个,是一种典型的不变矩,对图像的旋转、缩放、平移等具有不变性。matchShapes函数f内参数选取7个Hu不变矩中不变性保持的最好的第一个和第二个。相关公式如下:
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
其中
。
通过对数据库内样本轮廓特征进行实验对比,发现阈值k设置为0.2的时候可以获得比较好的初筛效果,能达到87.9%的准确率。其中本文初筛的准确率和阈值k的关系如图1所示。
对通过特征初筛阶段的匹配对象通过边缘检测获得图像的二值轮廓,对其进行均值滤波平滑处理后调用opencv库内findContours函数找到边缘以及rectangle函数创建包围轮廓的矩形框。对于输出的多个矩形框,选择图像像素坐标系内横向像素距离差最大或者矩形框中心点纵向像素位置最低的矩形框,判别该矩形框为包含口罩轮廓的矩形框,以该矩形框纵向坐标为基准,去除以下半部分的轮廓图像获得局部人脸图像即人脸上半部分图像。
![](//html.hanspub.org/file/26-1542462x38_hanspub.png?20220406094346669)
Figure 1. The relationship between accuracy rate and threshold k
图1. 准确率与阈值k的关系
3.2. 改进特征相似性度量指标
传统的SIFT算法将不同的特征向量之间的差别等同看待,因此存在着一些不足。本文在传统欧式距离的基础上进行了改进,采用相对欧式距离,若b和c为两个待匹配的特征向量,则它们之间的相对欧式距离为:
(17)
为识别对象n维的特征描述向量,
为样本库内对象对比匹配的n维特征描述向量。
4. 实验结果分析
4.1. 实验环境
本实验环境为64位windows10操作系统,算法基于PyCharm平台,采用python及opencv相关库实现。
4.2. 实验数据集
本文分别抽样选取包含123个对象331张人脸图像建立正常人脸图像数据集A;选取包含17个对象64张佩戴口罩人脸图像建立遮挡环境下人脸图像数据集B;选取包含12个对象125张多种角度人脸图像建立多角度变换人脸图像数据集C。
4.3. 实验分析
本文改进算法与传统SIFT算法的识别效果对比如图2和图3所示,下面将本文算法与传统SIFT算法及DSIFT算法进行对比。
表1为3种算法在3个数据集上的准确率(%)。
表2为3种算法在3个数据集上的平均匹配时间(秒)。
![](//html.hanspub.org/file/26-1542462x42_hanspub.png?20220406094346669)
Figure 2. Normal face recognition effect
图2. 正常人脸识别效果
![](//html.hanspub.org/file/26-1542462x44_hanspub.png?20220406094346669)
Figure 3. Partial face recognition effect
图3. 局部人脸识别效果
![](Images/Table_Tmp.jpg)
Table 1. Algorithm recognition accuracy
表1. 算法识别准确率
![](Images/Table_Tmp.jpg)
Table 2. Average matching time of algorithm recognition
表2. 算法识别平均匹配时间
可以看出,在识别准确率方面:本文算法相对于SIFT算法,在3个数据集上分别提高了3.3%、14%、12%的准确率;相比于DSIFT算法提高了8.2%、35%、24.8%。在平均匹配时间上,本文相比于SIFT算法,分别提高了61.9%、67.7%、54.2%的匹配速度;相比于DSIFT算法,虽然在正常人脸数据集A中平均速度低于DSIFT算法,但两者相差不大,且在遮挡环境下人脸数据集B和多角度变换人脸数据集C中,匹配速度快于DSIFT算法。本文算法在3个数据集上的表现都优于另两种算法,当匹配点数增多时,本文算法识别速度显著提高,这主要是由于随着匹配点数增多,本文算法初筛阶段结合新的特征相似性度量指标大大减低了特征点匹配的时间。
5. 结束语
本文针对佩戴口罩下人脸识别的问题,在SIFT算法的基础上加入了特征初筛阶段,改进了特征相似性度量指标。实验结果表明算法识别准确度高,特征匹配时间大大减少。后续会针对特征向量降维的相关方法对本文算法进行实验改进。
基金项目
2020年校研究生实践创新项目XSJCX20_34。
参考文献
NOTES
*通讯作者。