孔祥源,黃鑫鑫,肖秋霞,謝書(shū)凝
(廈門(mén)理工學(xué)院 電氣工程與自動(dòng)化學(xué)院,福建 廈門(mén) 361024)
早期,人們從提取人臉的幾何特征入手開(kāi)發(fā)出一些基于幾何特征的人臉識(shí)別算法,但隨著人們的深入研究,發(fā)現(xiàn)由于人臉總體形狀特征相似,而細(xì)節(jié)特征卻千變?nèi)f化,這種基于幾何特征的全局性人臉識(shí)別算法不具有較好的魯棒性,即當(dāng)外界條件變化時(shí),算法的人臉識(shí)別率會(huì)顯著下降,為了更好的進(jìn)行識(shí)別,基于局部特征點(diǎn)的目標(biāo)檢測(cè)算法被提出[1],該算法突出的優(yōu)點(diǎn)是特征點(diǎn)魯棒性強(qiáng)、奇異性好,即使圖像有了部分的遮擋或缺損也能檢測(cè)出較為穩(wěn)定的特征點(diǎn),與全局特征相比,不易受到環(huán)境變化的影響。基于局部特征點(diǎn)的算法抓住檢測(cè)目標(biāo)的關(guān)鍵特征,濾去大部分無(wú)關(guān)的背景點(diǎn)和低對(duì)比度的點(diǎn),實(shí)時(shí)性得到了很大的提高。本文主要對(duì)一種局部特征點(diǎn)人臉識(shí)別算法——SIFT算法進(jìn)行研究,通過(guò)多尺度圖像提取出目標(biāo)中的特征點(diǎn),再利用圖像特征點(diǎn)描述向量的某種距離作相似性度量,從而找到圖像間匹配的特征點(diǎn)。SIFT算法提取的特征點(diǎn)穩(wěn)定性較好,它生成的描述符具有很強(qiáng)的魯棒性,即使圖像發(fā)生較大的改變,人臉有了局部的遮擋,也能夠得到大量的匹配準(zhǔn)確的特征點(diǎn)對(duì)。該算法在目標(biāo)檢測(cè)領(lǐng)域得到廣泛應(yīng)用[2]。
SIFT算法可以處理兩幅圖像間的平移、旋轉(zhuǎn)、仿射變換、光照變換等情況下的匹配問(wèn)題,甚至當(dāng)圖像視角發(fā)生較大變化時(shí)也能檢測(cè)出穩(wěn)定的特征點(diǎn),并在圖像間找到大量的、匹配準(zhǔn)確的特征點(diǎn)對(duì)。
SIFT算法大致分為2個(gè)階段來(lái)實(shí)現(xiàn):
(1)SIFT特征的生成,即從多幅圖像中提取對(duì)尺度放縮、旋轉(zhuǎn)、亮度變化無(wú)關(guān)的特征向量;
(2)SIFT特征向量的匹配。
SIFT算法檢測(cè)特征點(diǎn)是通過(guò)構(gòu)建高斯多尺度空間和DOG(Difference of Gaussian)多尺度空間,進(jìn)而在這些多尺度空間上來(lái)尋找滿(mǎn)足一定條件的特征點(diǎn)。這種特征點(diǎn)有很好的魯棒性和奇異性。
在SIFT特征向量生成之前,先對(duì)圖像進(jìn)行歸一化處理,然后擴(kuò)大至原來(lái)的2倍,預(yù)濾波剔除噪聲得到高斯金字塔最底層即第1階的第1層。
尺度空間理論的主要思想是利用高斯核對(duì)原始圖像進(jìn)行尺度變換,獲得圖像多尺度下的尺度空間表示序列,對(duì)這些序列進(jìn)行尺度空間特征提取。
二維高斯核的定義如公式 (1-1)所示,其中σ代表了高斯正態(tài)分布的方。


(1)建立高斯金字塔[3]為了得到在不同尺度空間下的穩(wěn)定特征點(diǎn),將圖像與不同尺度因子下的高斯核進(jìn)行卷積操作,構(gòu)成高斯金字塔。高斯金字塔有階,一般選擇4階,每一階有s層尺度圖像,s一般選擇5層。高斯金字塔的構(gòu)成如圖1所示。

圖1 高斯金字塔
在高斯金字塔的構(gòu)成中要注意,第1階的第1層是放大2倍的原始圖像,其目的是為了得到更多的特征點(diǎn);在同一階中相鄰兩層的尺度因子比例系數(shù)是k,則第1階第2層的尺度因子是kσ,然后其它層以此類(lèi)推則可;第2階的第1層由第一階的中間層尺度圖像進(jìn)行子抽樣獲得, 其尺度因子是k2σ,然后第2階的第2層的尺度因子是第1層的k倍即k3σ;第3階的第1層由第2階的中間層尺度圖像進(jìn)行子抽樣獲得。其它階的構(gòu)成以此類(lèi)推。
(2)建立DOG金字塔
DOG即相鄰兩尺度空間函數(shù)之差,用來(lái)表示,如公式(1-3)所示。


圖2 DOG金字塔
DOG金字塔通過(guò)高斯金字塔中相鄰尺度空間函數(shù)相減即可,如圖2所示。在圖中,DOG金字塔的第1層的尺度因子與高斯金字塔的第1層是一致的,其它階也一樣。
(3)DOG空間極值檢測(cè)
在上面已經(jīng)建立好的DOG尺度空間金字塔中,為了檢測(cè)到DOG空間的極值,DOG尺度空間中中間層(最底層和最頂層除外)的每個(gè)像素點(diǎn)需要跟同一層的相鄰8個(gè)像素點(diǎn)以及它上一層和下一層的9個(gè)相鄰像素點(diǎn)總共26個(gè)相鄰像素點(diǎn)進(jìn)行比較,以確保在尺度空間和二維圖像空間都檢測(cè)到局部極值,如圖3所示。

圖3 DOG空間的極值檢測(cè)
在圖3中,標(biāo)記為叉號(hào)的像素點(diǎn)若比相鄰26個(gè)像素點(diǎn)的DOG值都大或都小,則該點(diǎn)將作為一個(gè)局部極值點(diǎn),記下它的位置和對(duì)應(yīng)尺度。
由于DOG值對(duì)噪聲和邊緣較敏感,因此,在上面DOG尺度空間中檢測(cè)到局部極值點(diǎn)還要經(jīng)過(guò)進(jìn)一步的檢驗(yàn)才能精確定位為特征點(diǎn)。下面對(duì)局部極值點(diǎn)進(jìn)行三維二次函數(shù)擬和以精確確定特征點(diǎn)的位置和尺度,尺度空間函數(shù)D(x,y,σ)在局部極值點(diǎn)(x0,y0,σ)處的泰勒展開(kāi)式如公式(1-4)所示。

其中:


(k指當(dāng)前層,k-1指下層,k+1指上層)

公式(1-4)中的一階和二階導(dǎo)數(shù)是通過(guò)附近區(qū)域的差分來(lái)近似求出的,列出其中的幾個(gè),其它的二階導(dǎo)數(shù)以此類(lèi)推。通過(guò)對(duì)公式(1-4)求導(dǎo),并令其為0,得出精確的極值位置Xmax如公式(1-5)所示。

在上面精確確定的特征點(diǎn)中, 同時(shí)要去除低對(duì)比度的特征點(diǎn)和不穩(wěn)定的邊緣響應(yīng)點(diǎn), 以增強(qiáng)匹配穩(wěn)定性、提高抗噪聲能力。
去除低對(duì)比度的特征點(diǎn):把公式(1-5)代到公式(1-4)中,只要前兩項(xiàng),得到公式(1-6)。

通過(guò)式(1-6)計(jì)算出D(Xmax),若|D(Xmax)|≥0.03,則該特征點(diǎn)就保留下來(lái),否則就丟棄。去除不穩(wěn)定的邊緣響應(yīng)點(diǎn):海森矩陣如公式(1-7)所示,其中的偏導(dǎo)數(shù)是上面確定的特征點(diǎn)處的偏導(dǎo)數(shù),它也是通過(guò)附近區(qū)域的差分來(lái)近似估計(jì)的。

通過(guò)2×2的海森矩陣H來(lái)計(jì)算主曲率, 由于D的主曲率與H矩陣的特征值成比例,根據(jù)文獻(xiàn)[4],不具體求特征值,求其比例。設(shè)α是最大幅值特征,β是次小的,r=α/β,則如公式(1-8)。

利用特征點(diǎn)鄰域像素的梯度方向分布特性,為每個(gè)特征點(diǎn)指定方向參數(shù),使算子具備旋轉(zhuǎn)不變性。

公式(1-9)為(x,y)處的梯度值和方向。L為所用的尺度為每個(gè)特征點(diǎn)各自所在的尺度,(x,y)要確定是哪一階的哪一層。在實(shí)際計(jì)算過(guò)程中,在以特征點(diǎn)為中心的鄰域窗口內(nèi)采樣,并用梯度方向直方圖統(tǒng)計(jì)鄰域像素的梯度方向。梯度直方圖的范圍是0~360°,其中每10°一個(gè)柱,總共36個(gè)柱。梯度方向直方圖的峰值則代表了該特征點(diǎn)處鄰域梯度的主方向,即作為該特征點(diǎn)的方向。下圖是使用7個(gè)柱時(shí),利用梯度直方圖確定特征點(diǎn)主方向的示例。

圖4 極值點(diǎn)主方向確定
在梯度方向直方圖中,當(dāng)存在另一個(gè)相當(dāng)于主峰值80%能量的峰值時(shí),則將這個(gè)方向認(rèn)為是該特征點(diǎn)的輔方向。一個(gè)特征點(diǎn)可能會(huì)被指定具有多個(gè)方向(一個(gè)主方向, 一個(gè)以上輔方向),這可以增強(qiáng)特征點(diǎn)的穩(wěn)定性。
通過(guò)上面的3步,圖像的特征點(diǎn)已檢測(cè)完畢,每個(gè)特征點(diǎn)有3個(gè)信息:位置、對(duì)應(yīng)尺度、方向。
SIFT描述子是一種新的特征描述器,由于其優(yōu)良的性能而在檢測(cè)和識(shí)別等領(lǐng)域得到了廣泛的應(yīng)用。
生成SIFT特征向量首先將坐標(biāo)軸旋轉(zhuǎn)為特征點(diǎn)的方向,以確保旋轉(zhuǎn)不變性。接下來(lái)以特征點(diǎn)為中心取 的窗口(特征點(diǎn)所在的行和列不取) 。在圖4中,中央黑點(diǎn)為當(dāng)前特征點(diǎn)的位置,每個(gè)小格代表特征點(diǎn)鄰域所在尺度空間的一個(gè)像素,箭頭方向代表該像素的梯度方向,箭頭長(zhǎng)度代表梯度模值,圖中圈內(nèi)代表高斯加權(quán)的范圍(越靠近特征點(diǎn)的像素,梯度方向信息就越大) 。然后在每的圖像小塊上計(jì)算個(gè)方向的梯度方向直方圖,繪制每個(gè)梯度方向的累加值,形成一個(gè)種子點(diǎn),如圖5 ( b)所示。此圖中一個(gè)特征點(diǎn)由共4個(gè)種子點(diǎn)組成,每個(gè)種子點(diǎn)有個(gè)方向向量信息,可產(chǎn)生共個(gè)據(jù),形成維的SIFT特征向量,即特征點(diǎn)描述器,所需的圖像數(shù)據(jù)塊為。這種鄰域方向性信息聯(lián)合的思想增強(qiáng)了算法抗噪聲的能力,同時(shí)對(duì)于含有定位誤差的特征匹配也提供了較好的容錯(cuò)性。

圖5 SIFT描述子的生成
實(shí)際計(jì)算過(guò)程中,為了增強(qiáng)匹配的穩(wěn)健性,文獻(xiàn)[5]建議對(duì)每個(gè)特征點(diǎn)使用共個(gè)種子點(diǎn)來(lái)描述,每個(gè)種子點(diǎn)有8個(gè)方向向量信息,這樣對(duì)于一個(gè)特征點(diǎn)就可以產(chǎn)生共個(gè)數(shù)據(jù),最終形成128維的SIFT特征向量,所需的圖像數(shù)據(jù)塊為。此時(shí)SIFT特征向量已經(jīng)去除了尺度變化、旋轉(zhuǎn)等幾何變形因素的影響,再繼續(xù)將特征向量的長(zhǎng)度歸一化,則可以進(jìn)一步去除光照變化的影響。當(dāng)2幅圖像的SIFT特征向量,即特征點(diǎn)描述器生成后,下一步就是進(jìn)行特征向量的匹配。
據(jù)文獻(xiàn)[7]特征描述符生成之后,就要對(duì)圖像間對(duì)應(yīng)的特征點(diǎn)進(jìn)行匹配,這步通常采用歐氏距離作為2幅圖像間的相似性度量。獲取SIFT特征向量后,采用k-d樹(shù)進(jìn)行優(yōu)先搜索來(lái)查找每個(gè)特征點(diǎn)的2個(gè)近似最近鄰特征點(diǎn)。在這2個(gè)特征點(diǎn)中,如果最近的距離除以次近的距離少于某個(gè)比例閾值,則接受這一對(duì)匹配點(diǎn)。降低這個(gè)比例閾值, SIFT匹配點(diǎn)數(shù)目會(huì)減少,但更加穩(wěn)定。
通過(guò)相似性度量得到潛在匹配對(duì),其中不可避免會(huì)產(chǎn)生一些錯(cuò)誤匹配,因此需要根據(jù)幾何限制和其它附加約束消除錯(cuò)誤匹配,提高魯棒性。實(shí)驗(yàn)采用RANSAC隨機(jī)抽樣一致性算法去外點(diǎn)方法,采用極線約束關(guān)系進(jìn)行幾何約束。
實(shí)驗(yàn)方法:將ORL圖庫(kù)中的某幅圖像(如圖6)做一定的變化(下文左圖即為為變化后圖像),并將其作為測(cè)試圖像,另選10張圖像(1張為原始圖像)作為訓(xùn)練圖像。在10張訓(xùn)練圖尋找于變化后圖像最相似的圖像,進(jìn)行實(shí)驗(yàn),結(jié)果如下:

圖6 原始圖像

圖7 光照變化后準(zhǔn)確匹配到原始圖像

圖8 旋轉(zhuǎn)變化后準(zhǔn)確匹配到原始圖像

圖9 噪聲干擾后準(zhǔn)確匹配到原始圖像

圖10 視角變化后準(zhǔn)確匹配到原始圖像

圖11 尺度縮放后準(zhǔn)確匹配到原始圖像

圖12 表情加視角變化后準(zhǔn)確匹配到原始圖像
通過(guò)上面幾組實(shí)驗(yàn),我們可以看出,SIFT算法的人臉識(shí)別能力較好,即使人臉發(fā)生復(fù)雜的變化,依然能夠準(zhǔn)確的識(shí)別不同的人臉。
本次實(shí)驗(yàn)在100張人臉圖像中檢索與上組實(shí)驗(yàn)的原圖像(圖6)相似度最高的的前6張圖像,這100張圖像中共有10張與上面實(shí)驗(yàn)原圖像為同一個(gè)人。檢索結(jié)果:

圖13 SIFT算法的檢索結(jié)果
從SIFT算法檢索結(jié)果(如圖13所示)可以看出,本實(shí)驗(yàn)檢索的這幾張圖像,雖為同一個(gè)人,但有著很復(fù)雜的變化。人臉的視角、表情、大小、光照等都有著一定的變化,但檢測(cè)結(jié)果依然準(zhǔn)確。實(shí)驗(yàn)結(jié)果進(jìn)一步說(shuō)明SIFT算法的人臉識(shí)別效果要好,它能夠適應(yīng)人臉的復(fù)雜變化,始終保持較高的人臉識(shí)別率。
實(shí)驗(yàn)充分證明,SIFT算法是一種檢測(cè)能力很強(qiáng)的局部特征點(diǎn)檢測(cè)算法,能夠滿(mǎn)足較為復(fù)雜環(huán)境的人臉識(shí)別需要。該算法不僅可應(yīng)用于身份辨識(shí)等人臉識(shí)別場(chǎng)景,還可應(yīng)用于產(chǎn)品分類(lèi)、隱患識(shí)別等其他目標(biāo)檢測(cè)場(chǎng)景。
致謝本文獲2017年福建省中青年教師教育科研項(xiàng)目(JAT170434)和2017年卓越工程師教育培養(yǎng)計(jì)劃大學(xué)生科技創(chuàng)新項(xiàng)目(基于圖像處理的電信基站電池隱患識(shí)別及其實(shí)現(xiàn))的資助,特此感謝。感謝廈門(mén)理工學(xué)院黃韜工程師對(duì)本文工作的指導(dǎo)。
[1] 董立羽.局部特征的自動(dòng)提取及其在人臉識(shí)別中應(yīng)用[D].長(zhǎng)沙:國(guó)防科技大學(xué),2004.
[2] 李曉明,鄭鏈,胡占義.基于SIFT特征的遙感影像自動(dòng)配準(zhǔn)[J].遙感學(xué)報(bào),2006(06):885-892.
[3] 屠禮芬,仲思東,彭祺,等.基于高斯金字塔的運(yùn)動(dòng)目標(biāo)檢測(cè)[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版),2013(07):2778-2786.
[4] 徐英,周金鵬.基于領(lǐng)域灰度分布的IR弱小目標(biāo)檢測(cè)[J].國(guó)防科技大學(xué)學(xué)報(bào),2002(05):84-87.
[5] Lowe D. Distinctive image features from scale-invariant keypoints[J].Iernational Journal on Computer Vision,2004,69(2):91-110.
[6] 王國(guó)美,陳孝威.SIFT特征匹配算法研究[J].鹽城工學(xué)院學(xué)報(bào)(自然科學(xué)版),2007(2):1-5.
[7] 徐小明.特征的提取與描述的研究[D].重慶:重慶大學(xué),2007.