APP下载

改进的SIFT结合余弦相似度的人脸匹配算法

2020-03-19张芯月

计算机工程与应用 2020年6期
关键词:图像匹配描述符余弦

魏 玮,张芯月,朱 叶

河北工业大学 人工智能与数据科学学院,天津300401

1 引言

人脸特征提取与匹配在人脸图像信息研究领域是相当重要的一个分支,它是人脸识别[1]、三维重建[2]和人脸替换[3]等当下热点研究领域的基础。人脸图像匹配在人脸研究领域具有广泛应用[4]。人脸匹配的实质是为了得到同一个体在不同时间、视角以及不同传感器条件下的多幅图像的相似程度。传统的图像匹配技术多适用于刚性物体,而人脸五官分布具有复杂性,同时由于人脸的五官可以根据表情改变而发生动态变化,这给人脸图像的匹配带来了很大的挑战。

人脸领域常用的图像匹配算法基本分两种,利用灰度进行人脸匹配和利用特征进行人脸匹配。利用灰度进行人脸匹配可以取得较高的匹配率,但计算复杂度也较高,且对图像的灰度变化敏感,在光照变化较大的场景下匹配效率低。此外,利用灰度的匹配方法对人脸的偏转和形变也比较敏感。而当人的表情变化时,人脸就会发生一定的形变。利用特征的匹配方法对光照变化不是很敏感,匹配速度更快,性能也相对稳定。因此,人脸匹配多使用基于特征的匹配方法[5]。近年来广泛应用的就是由Lowe 提出的SIFT 算法[6]。SIFT 将梯度方向描述符和尺度不变特征结合在一起,以提供对光线、噪声和轻微角度变化的高容差。但是算法存在一些问题,SIFT 算子为128 维高阶向量,不能满足实时的人脸识别和三维重建等领域的要求[7]。后来Ke 等人[8]将主成分分析与SIFT 算法结合起来运用到图像匹配中,通过PCA 的方法降低原始SIFT 算法的维数,进而降低计算复杂度缩短了人脸图像匹配的时间,但该方法的匹配精度较差。近几年针对SIFT 维数较高,运算效率低的问题,人们开始利用CNN对其进行改进[9]。也有人通过类似FPGA的硬件设备实现算法来加快速度[10]。国内的冯文斌等人[11]在关键点邻域划分时采用了新的划分方法——分级的放射状分区,构造出了新的特征描述符,提高了匹配率,但所得到的匹配集中存在误匹配点。

本文针对上述SIFT 算法中计算复杂度高和人脸匹配多存在误匹配点的问题,提出了一种改进的SIFT 结合余弦相似度的人脸匹配算法。本文算法将SIFT 原始的矩形特征描述区域改为四个同心圆的描述区域。同时采用了正反双向匹配,并利用匹配点对集之间近似满足余弦相似性来进行误匹配点的剔除,提高了匹配效率。

2 SIFT算法原理与改进

SIFT,即尺度不变特征变换,是用于图像处理领域的基于局部特征描述的算子。Lowe在1999年提出SIFT算法,于2004 年进行了改进与完善[12]。Mikolajczyk[13]在十种常用的局部描述符中进行了对比实验,实验证明SIFT 算子在同类描述符中鲁棒性最强。该算法的核心思想是在尺度空间中检测极值点,同时将不稳定的极值点过滤,提取稳定的特征点并在其附近提取图像的局部特性,形成局部描述符用于图像匹配中。SIFT 算法的实现过程主要包括四部分:

(1)空间极值点检测;

(2)关键点的定位;

(3)关键点方向的确定;

(4)描述符的生成。

2.1 空间极值点检测

Koenderink 等人[14]研究证明,高斯核是唯一可以产生多尺度空间的核。一幅二维图像I(x,y)的尺度空间L(x,y,σ)是通过将不同尺度的高斯函数G(x,y,σ)与原始图像卷积来获得的,其可以表示为:

其中,σ 是空间尺度因子,G(x,y,σ)为高斯核函数,它可以表示为:

通过使用一组连续高斯卷积核与原图像进行卷积来生成高斯金字塔,由相邻尺度的图像作差得到高斯差分金字塔DOG(Different-Of-Gaussian)。为了检测到具有稳定性的关键点,Lowe 使用了DOG 算子近似代替尺度归一化的高斯-拉普拉斯算子。

其中,k 为阈值。在DOG 尺度空间中,为了确保在尺度空间和图像空间中都可以检测到局部极值点,可以将每个点与相邻的26个点进行比较。

2.2 关键点的定位

为了提高关键点的稳定性,需要精确确定关键点的位置和尺度。根据DOG 函数在尺度空间的泰勒展开式求极值,并将对比度低的极值点过滤掉,然后根据计算得到的主曲率来确定阈值,去除不稳定的边缘响应点。

2.3 关键点方向的确定

利用关键点邻域像素的梯度方向分布特性,为每个关键点指定主方向,使其具有旋转不变性。各像素梯度的模和方向的计算公式为:

以关键点为圆心,划定一个邻域,通过计算关键点的梯度来建立方向直方图。方向直方图的最大值表示关键点的邻域梯度方向。此时,包含位置、尺度和方向的被检测到的关键点是图像的SIFT特征点。

2.4 描述符的生成

关键点描述符是一种对局部图像信息抽象化处理的表示,是具有独特性的向量,这种抽象表示也为后续的图像匹配提供了依据。Lowe选取了一个以关键点为中心大小为16×16的窗口,并将其分为4×4个子区域,对每个区域8 个方向的梯度值累加来计算梯度直方图,每个梯度方向的累加值可以形成一个种子点。而一个关键点则由16 个种子点组成,这样就形成了一个4×4×8=128维的SIFT特征向量。

如图1(a)中,取以关键点为中心的8×8 邻域,其中箭头方向代表像素梯度方向,箭头长度代表该像素的模值。取4×4 大小为一个种子点,然后累加8 个方向的梯度值来计算方向直方图,每个梯度方向的累加可形成一个种子点,图1(b)为由4个种子点组成的特征点。

2.5 SIFT算法的改进

图1 特征描述符的生成

SIFT 算法中的特征点描述符为128 维的向量,当向量维度过高时,不仅生成特征点向量需要的时间会增加,而且会使后面的图像匹配过程效率降低。这样的匹配效率如果要得到最终的人脸匹配结果需要10 s 甚至更多的时间。这对于实时性要求较高的情况并不适用。为了提高时间效率,本文提出的改进算法在SIFT 特征描述符的基础上进行了降维。由于距离关键点越近的像素对关键点特征描述符的影响越大,考虑到像素的这种距离影响,因此对每个区域与关键点的距离进行了加权。同时因为在进行人脸匹配时,图像可能会发生旋转,而圆具有很好的旋转不变性,所以采用圆来代替矩形[15]。

在本文中,采用以特征点为中心,直径为16 的圆形区域作为关键点区域。以两个像素为单位,半径依次递减,最终划分为4个同心圆区域,如图2(a)所示。

图中中心点为特征点,将特征点表示为M(p1,p2),半径最大为8,圆形区域可表示为:

改进的特征描述符的方向采用了0°~360°均匀分布的12个方向。先对每个同心圆区域分别计算其12个方向的梯度累加值,距离越近权重越大,同心圆的半径从内到外依次为2、4、6、8,因此对梯度累加值依次进行权重为0.4、0.3、0.2、0.1 的加权处理。图2(b)为由圆环生成的12 个方向的特征向量。然后由内向外,取最内侧圆环的12 维向量作为描述符的前12 个元素,将第二个圆环的12 维向量作为描述符的第13 至24 个元素,以此类推。最终关键点的特征描述符即为4×12共48维的特征向量。新的特征描述符对不同的圆环进行了加权计算,使得关键点的特征表达的更具体,而且最终得到的特征向量与SIFT 特征描述符相比,降低了计算复杂度,节约了运算时间。为使改进的特征描述符同样具有旋转不变性,本文对特征向量实施了排序操作,将最内侧圆环的最大值循环左移到第一个元素的位置,其他同心圆也按照第一个圆环的转动角度进行转动。这样使得四个圆环旋转了相同的角度,相当于SIFT 算法中邻域旋转的操作,保证了改进描述符同样具有旋转不变性。为了减少光照的影响,尽可能保证人脸匹配的准确率,本文对生成的48 维特征描述符进行归一化处理。设A′是特征点描述符,且,则归一化公式为:

图2 新的特征描述符

3 余弦相似度剔除人脸特征误匹配

3.1 人脸特征点匹配

在生成人脸图像的特征向量之后,将特征向量的曼哈顿距离用作两个图像特征点的相似性度量以进行人脸特征匹配[16]。两个特征向量相似度越高,它们的曼哈顿距离就会越小。特征向量间的曼哈顿距离定义为:

在本文中,采用最近邻距离算法(NN)进行匹配,即比较样本点最近邻距离与次近邻距离的比值,若小于设定阈值,则认为特征点匹配正确。经过实验测试,阈值设置得越小越稳定,但匹配的数量也会减少。由于单向匹配的误匹配率较高,因此本文进行了双向匹配。

3.2 余弦相似度消除误匹配

图像在进行匹配时通常有误匹配现象。本文提出了一种利用余弦相似度进行误匹配消除的方法。一般在衡量两个向量间相似程度时可以采用相似性函数,函数值越小,向量差异更大,相似度更小。利用向量夹角的余弦值来度量其相似性就是余弦相似度测量。余弦值越大,两个向量的夹角越小,向量间的相似度越高。通过欧几里德点积和量级公式可以推导出两个向量间的余弦值:

鉴于两个向量的性质,A和B的余弦相似度sim的大小可以用一个点积形式来表示。

在人脸图像匹配过程中,选定水平轴为基准向量,两个匹配点所构成的向量为匹配向量,两个匹配点之间的曼哈顿距离作为向量的模值,根据余弦相似度的定义,所有的匹配向量与基准向量间夹角的余弦值都应该是相似的。因此本文将余弦相似度作为约束条件进行曼哈顿距离测度,同时进行阈值设置,以此来减少误匹配点对的数量。图3(a)为在进行人脸图像匹配过程中含有误匹配的人脸图像,图3(b)为正确匹配的人脸图像。

图3 人脸图像匹配

4 实验结果与分析

为使实验结果更具有说服力,并验证本文算法的有效性,选用了FEI 巴西人脸数据库进行实验。FEI 数据库中包含200 个人,其中男女各100 人,每人有14 幅图像,共有2 800 幅人脸图像,每个图像的原始大小是640×480 像素。由于FEI 数据库中每个人的14 幅图像均包含有不同角度、不同表情和不同光照三种变化的人脸图像。因此本文分别对三种情况进行了实验验证。本文选取了FEI数据库中50个人的图像作为测试集,来验证改进算法的有效性,实验对象是选取的50 人的不同角度、不同表情、不同光照下的人脸图像。实验的设备为一台Win7 64 位系统,处理器为AMDA6-4400M CPU 2.7 GHz,4 GB内存的笔记本电脑,算法通过VS2013和OpenCV3.0.0平台实现。

4.1 图像特征匹配实验

分别随机选择具有不同角度、不同光照及不同表情的多组人脸图像进行实验。设定阈值t 为特征点是否正确匹配的判定条件,当d1/d2<t 时为正确匹配,否则为误匹配。

在对人脸进行特征提取时,为了排除影响人脸特征提取的因素如背景、肩膀和颈部等,需要对图像进行人脸检测,然后在检测到的人脸上完成特征提取、图像匹配。在人脸检测部分,本文采用SeetaFace 人脸检测模块,相较于传统的人脸检测算法,SeetaFace 在人脸偏转较大时可以准确检测识别[17]。SIFT、SIFT+RANSAC 和本文的ISIFT+CS 算法在角度、光照和表情变化下的匹配效果如图4~6 所示。根据效果图和数据分析,在三种不同情况下的人脸图像匹配过程中,本文算法均能以最小的时间代价得到最好匹配效果。

将正确率作为算法的评价标准之一,表1 中的正确率的计算公式为:

其中,r 为正确率,n为正确匹配数量,q为误匹配数量特指在进行人脸匹配后仍存在的误匹配点数,表1 中的剔除数为人脸匹配过程中采用最近邻匹配双向匹配时剔除的匹配点数,剔除数不计入正确率公式。

从表1 中可以看出,本文改进的算法在时间效率上比传统的SIFT 或者SIFT+RANSAC 算法高出一倍甚至多倍,说明了本文所采用的ISIFT+CS 算法比传统算法的时间效率更高。从剔除数和正确率以及正确匹配点数三种性能方面看出,基于余弦相似度进行误匹配消除能保留大量正确的匹配。

4.2 不同阈值下的匹配效果

为选取出最佳阈值t,本文进行了实验验证了当阈值分别取0.6、0.7、0.8和0.9时的正确匹配数量以及匹配的正确率。图7~9 分别表示三种算法在不同表情、不同角度和不同光照的人脸图像在各个阈值下的正确匹配点对数和正确率的曲线图。

图4 不同角度人脸匹配

图5 不同光照人脸匹配

图6 不同表情人脸匹配

表1 多种算法的匹配结果比较

图7 不同表情

图8 不同角度

图9 不同光照

从曲线图中可以看出,本文算法在阈值t 分别取0.6、0.7、0.8 和0.9 四种情况下,正确匹配数目都仅次于SIFT 而正确率又基本高于其他两种算法。由于本文中改进的SIFT算法将原始的SIFT矩形特征区域改为了四个同心圆区域,使其在空间结构上发生了变化,导致部分边缘区域的特征点无法提取,致使改进的SIFT 算法在进行人脸特征提取时,提取到的特征点数量会略低于原始SIFT 算法提取到的特征点数目,最终造成正确匹配数量会略低于SIFT匹配数量的结果。虽然SIFT算法在边缘区域提取到了较多的特征点,但由于处于边缘区域,提取到的特征信息可能并不完善,使得后面在完成图像匹配后仍存在较多误匹配点,导致了其正确率的降低。从表1 中可以看出本文算法的时间效率高于传统的SIFT 和SIFT+RANSAC 算法,充分说明了本文算法具有有效性和可行性。但正确率有时会低于SIFT+RANSAC算法,原因是此时SIFT+RANSAC算法的匹配点对数量太少,即使正确率较高也不能保证良好的匹配效果。

5 结束语

人脸匹配广泛应用于安防等领域,基于特征点的匹配方法已经在很多文献中得到很好的验证,本文在深入比较现有人脸匹配技术的基础上,提出了改进的SIFT结合余弦相似度的人脸匹配算法。通过人脸区域检测对FEI 人脸数据库中的人脸图像进行预处理。特征提取与匹配过程提出改进的SIFT 结合余弦相似度的人脸匹配算法,先将SIFT 算法的特征描述符由矩形区域改进为4 个同心圆区域,实现了对SIFT 特征向量的降维,再利用基于曼哈顿距离测度双向匹配方法进行人脸匹配。为了减少误匹配点对,提高人脸匹配的准确率,根据各匹配点对之间近似满足余弦相似的原则,采用余弦相似度来消除无匹配。在FEI 巴西人脸数据库进行实验并与传统算法进行对比,实验表明,改进的SIFT 结合余弦相似度的人脸匹配算法在保证了准确率的前提下,时间效率平均提高了2~2.5倍,匹配效果良好,与传统算法相比更好地符合了实时性的要求。但该改进算法在实际应用时也有不足之处,对于含有丰富表情人脸的视频序列进行人脸匹配时如何尽可能增加匹配点的数量,还需进一步研究。

猜你喜欢

图像匹配描述符余弦
基于多特征融合的图像匹配研究
基于结构信息的异源遥感图像局部特征描述符研究
基于AKAZE的BOLD掩码描述符的匹配算法的研究
基于深度学习的局部描述符
一种用于光照变化图像匹配的改进KAZE算法
两个含余弦函数的三角母不等式及其推论
实施正、余弦函数代换破解一类代数问题
特征联合和旋转不变空间分割联合的局部图像描述符
分数阶余弦变换的卷积定理
图像压缩感知在分数阶Fourier域、分数阶余弦域的性能比较