代玉強(qiáng),楊絮,熊昊,陳小遠(yuǎn),莫蘇新
(長(zhǎng)春理工大學(xué)電子信息工程學(xué)院,長(zhǎng)春 130022)
目標(biāo)識(shí)別是計(jì)算機(jī)視覺(jué)以及數(shù)字圖像處理中的重要組成部分,被廣泛應(yīng)用于視頻監(jiān)控、攝影測(cè)量、資源分析等眾多領(lǐng)域。但是圖像的質(zhì)量很容易受外界因素干擾,因拍攝的時(shí)間、角度、距離的不同導(dǎo)致圖像的位置平移、大小縮放、角度旋轉(zhuǎn)、部分遮擋等問(wèn)題,這都會(huì)嚴(yán)重影響目標(biāo)識(shí)別的結(jié)果。哥倫比亞大學(xué)的Lowe教授提出了SIFT算法[1],它屬于一種穩(wěn)定的局部特征匹配算法,在各方面都有良好的性質(zhì)。但是SIFT算法還存在很多不足。首先是SIFT算法只能處理灰度圖像,對(duì)于人眼來(lái)說(shuō),顏色也是重要的視覺(jué)信息,對(duì)于目標(biāo)的識(shí)別有很重要的作用,顏色特征在SIFT算法中沒(méi)有體現(xiàn)出來(lái)。其次SIFT算法的計(jì)算量很大,每一個(gè)特征點(diǎn)都包含有128的特征描述向量,計(jì)算復(fù)雜,對(duì)于目標(biāo)跟蹤的實(shí)時(shí)性,SIFT算法沒(méi)有優(yōu)勢(shì)[2-3]。
經(jīng)典SIFT算法基于圖像的特征尺度選擇的思想,首先建立圖像高斯差分空間,在整個(gè)尺度空間上檢測(cè)極值點(diǎn),濾除質(zhì)量不好的極值點(diǎn)之后可精確到亞像素級(jí)的位置,同時(shí)也取得尺度值,提高特征點(diǎn)對(duì)于尺度變化的抗性,最后提取特征描述子。
尺度空間理論目的是模擬圖像數(shù)據(jù)的多尺度特征,高斯卷積核實(shí)現(xiàn)尺度變換的唯一線性核,尺度空間的定義為:
其中,G(x,y,σ)是尺度可變高斯函數(shù),是空間坐標(biāo),σ是尺度坐標(biāo)。
使用式(2)構(gòu)造高斯差分尺度空間:
將相鄰尺度的高斯圖像相減得到高斯差分圖像金字塔。
在尺度空間中,一個(gè)點(diǎn)在本層和上下兩層中相鄰尺度的共8+9×2=26個(gè)點(diǎn)進(jìn)行比較,如果該點(diǎn)是最大值或者最小值,則該點(diǎn)就是圖像上的一個(gè)極值點(diǎn),作為待選特征點(diǎn)。在提取到全部的待選特征點(diǎn)之后進(jìn)行進(jìn)一步的篩選工作,包括去除噪聲和邊緣相應(yīng)。對(duì)待選點(diǎn)的集合擬合一個(gè)三維二次函數(shù)以去除低對(duì)比度的點(diǎn),然后根據(jù)待選點(diǎn)主曲率值得大小確定是否具有邊緣相應(yīng)。
計(jì)算特征點(diǎn)鄰域的像素點(diǎn)的梯度方向,以它們的分布特征作為特征點(diǎn)的方向,使特征點(diǎn)具有旋轉(zhuǎn)不變性。在(x,y)處的梯度大小和方向分別為:
首先以特征點(diǎn)為中心,將圖像坐標(biāo)旋轉(zhuǎn)到特征點(diǎn)的方向,如圖1所示,確保其旋轉(zhuǎn)不變性;然后取8×8的窗口。圓形中心為特征點(diǎn)所在的位置,每個(gè)方格代表特征點(diǎn)鄰域的像素點(diǎn),箭頭方向?yàn)橄袼攸c(diǎn)的梯度方向,長(zhǎng)度代表梯度值大小,圓圈為高斯加權(quán)的范圍。然后,在4×4的圖像塊上計(jì)算8個(gè)方向的梯度方向直方圖以及每一個(gè)方向的累加值,形成一個(gè)種子。最終每一個(gè)特征點(diǎn)都是由16個(gè)種子點(diǎn)組成,每個(gè)種子有8個(gè)方向的信息,這樣一共產(chǎn)生了128個(gè)數(shù)據(jù),形成了128維的SIFT特征向量。
圖1 特征描述區(qū)域
此時(shí),每一個(gè)SIFT特征點(diǎn)都包含有了位置、所在尺度、方向、128特征向量等信息,去除了圖像尺度變化、角度旋轉(zhuǎn)等因素帶來(lái)的影響。使用K-D樹(shù)匹配算法和RANSAC精匹配之后,便可實(shí)現(xiàn)目標(biāo)的識(shí)別。
顏色不變量模型是基于Kubelka-Munk的理論[4],用于描述物體的光譜輻射特性:
其中λ表示波長(zhǎng),為二維矢量,即觀測(cè)點(diǎn)位置,表示光譜強(qiáng)度,是在x處的Fresnel反射系數(shù),是材料的反射率表示觀測(cè)者視角方向的光譜反射。對(duì)于一切非透明的材料物體都可以用次模型來(lái)描述。
對(duì)于大多數(shù)情況下,物體收到的光照是均勻的,此時(shí)的波長(zhǎng)λ為常數(shù),則可以用 來(lái)表示波長(zhǎng)分量,式(5)可轉(zhuǎn)換為:
對(duì)上式兩邊求λ的微分,得:
二次微分得:
兩式相除,得:
經(jīng)典的的SIFT算法是將彩色圖像直接轉(zhuǎn)化成灰度圖像,本文先求出彩色圖像的顏色不變系數(shù)H(x,y),用它代替灰度值。在符合人眼視覺(jué)系統(tǒng)的CIE-1964-XYZ標(biāo)準(zhǔn)下[5],可以得到像素點(diǎn)RGB與( )E,Eλ,Eλλ之間的近似關(guān)系式為:
E通道表示了圖像的強(qiáng)度信息,Eλ表示藍(lán)-黃通道,Eλλ表示綠-紅通道信息。
將彩色圖像原圖像RBG三個(gè)通道的數(shù)據(jù)代入式(10)中,得到顏色不變系數(shù)H,代替灰度圖像作為輸入圖像。由于顏色不變系數(shù)可能為負(fù)數(shù),因此經(jīng)過(guò)上式的線性變換之后的圖像是一張?zhí)摂M圖像,然后需要將每個(gè)通道的值歸一化到0至255之間。由此產(chǎn)生一張帶有顏色信息的灰度圖片。所得到的結(jié)果如圖2所示,左側(cè)為原圖,右側(cè)為顏色不變量結(jié)果圖。
圖2 顏色不變量效果
經(jīng)典SIFT算法給每一個(gè)特征點(diǎn)分配了一個(gè)主方向,目的是確保描述子的旋轉(zhuǎn)不變性[6]。而如果描述符本身就有抗旋轉(zhuǎn)能力,那么就可以省略對(duì)整個(gè)描述區(qū)域的旋轉(zhuǎn)。圓形本身就具有很好的旋轉(zhuǎn)不變性,相對(duì)于原本的正方形區(qū)域來(lái)說(shuō)有很多優(yōu)勢(shì)[7],因此本文利用圓環(huán)來(lái)構(gòu)造SIFT特征點(diǎn)的描述子。新的描述子具體構(gòu)造方式如下:
以特征點(diǎn)為中心,選擇一個(gè)半徑為8的圓形區(qū)域,如圖2所示,將圓形分為半徑不同的同心圓,用不同顏色表示。同一圓環(huán)內(nèi)的像素在圖像旋轉(zhuǎn)之后改變的只有像素的位置,而相對(duì)于其他像素的相對(duì)位置信息不發(fā)生變換。與之前的SIFT算法相似,先計(jì)算每一個(gè)特征點(diǎn)的梯度的模和方向,在每一個(gè)圓環(huán)內(nèi)計(jì)算并且統(tǒng)計(jì)出8個(gè)方向的梯度累加值。最后對(duì)計(jì)算出的梯度值進(jìn)行從大到小排序。
圖3 特征描述區(qū)域圖
并且對(duì)整個(gè)圓形區(qū)域的進(jìn)行高斯加權(quán)處理,用以減少遠(yuǎn)離特征點(diǎn)的像素對(duì)特征點(diǎn)梯度信息的影響。像素點(diǎn)fi(x,y)距離中心特征點(diǎn)fi越遠(yuǎn),對(duì)描述子貢獻(xiàn)的信息量越小,其加權(quán)系數(shù)為:
式中,(xi,yi)為中心特征點(diǎn)的位置,a為取定的常數(shù)值。
第一個(gè)圓環(huán)8個(gè)梯度累加之后作為特征向量的前8個(gè)元素,第二個(gè)圓環(huán)作為特征向量的之后的8個(gè)元素,以此類推,特征描述區(qū)域一共有8×8個(gè)元素,一共就有64個(gè)累加值來(lái)確定特征點(diǎn)的描述子。這樣產(chǎn)生的新的描述子本身就具了有抗旋轉(zhuǎn)能力,不需要再旋轉(zhuǎn)描述區(qū)域。而且將特征描述子原有的128維的向量減少到64位,進(jìn)一步減少了計(jì)算量,同時(shí)也為后面特征點(diǎn)的匹配節(jié)省了時(shí)間。
本文實(shí)驗(yàn)硬件環(huán)境為CPU:Intel Core i3-2350M,2.3GHz;內(nèi)存:4GB:顯存:1GB。操作系統(tǒng) Windows 7,界面編程軟件為Microsoft Visual Studio 2010。
本實(shí)驗(yàn)選取顏色復(fù)雜度不同的彩色圖片,用改進(jìn)前后的SIFT算法分別提取特征點(diǎn),比較特征點(diǎn)的數(shù)量。其中的一組圖片的對(duì)比如下:
圖4 特征點(diǎn)數(shù)量比較結(jié)果圖
圖4中紅色的點(diǎn)為提取到的SIFT特征點(diǎn),可以看出改進(jìn)之后的算法明顯多于經(jīng)典SIFT算法。
表1 特征點(diǎn)提取數(shù)量比較
實(shí)驗(yàn)選取了三種類型的彩色圖片,(a)類為顏色較為單一的圖片,這類圖片中特征點(diǎn)數(shù)量的提升效果在8%左右。顏色不變量對(duì)于圖像中色塊的分界線比較敏感,顏色變化較少時(shí)體現(xiàn)不了這方面的作用,有些圖片提取到的特征點(diǎn)數(shù)甚至與原有的SIFT算法差別不大。在(b)類顏色較為復(fù)雜的圖片中,特征點(diǎn)數(shù)量平均會(huì)有10%以上的提高。相較于原本的灰度圖像,加入顏色不變量之后圖像色塊邊界被體現(xiàn)出來(lái),在這些區(qū)域可以提取到更多的特征。在(c)類圖片中,顏色和場(chǎng)景都相當(dāng)復(fù)雜,特征點(diǎn)數(shù)量平均也可以提高10%以上。隨著顏色復(fù)雜度的提高,特征點(diǎn)數(shù)量也隨之提高,但是由于圖像色塊面積的越來(lái)越小,場(chǎng)景越來(lái)越混亂,計(jì)算出的邊界反而開(kāi)始變得模糊,這就導(dǎo)致特征點(diǎn)數(shù)量不能無(wú)限制的增加。總體來(lái)說(shuō),通過(guò)對(duì)彩色圖像加入顏色不變量的預(yù)處理之后,改進(jìn)后的SIFT算法能提取到的特征點(diǎn)數(shù)量都比經(jīng)典算法有了明顯的提高。
運(yùn)用經(jīng)典SIFT算法與改進(jìn)的SIFT算法對(duì)相同的圖像對(duì)進(jìn)行匹配。匹配算法使用的是K-D樹(shù)算法,匹配完成之后再使用RANSAC算法去除誤匹配。RANSAC精匹配之后的結(jié)果如圖5所示,上邊的圖像為經(jīng)典SIFT算法的匹配結(jié)果,下邊為改進(jìn)之后的SIFT算法匹配結(jié)果。
圖5 匹配結(jié)果對(duì)比
之后再選用三組不同的圖像進(jìn)行測(cè)試,對(duì)匹配后的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)整理、分析,得出表2:
表2 匹配結(jié)果數(shù)據(jù)對(duì)比
從表中可以看出,改進(jìn)后算法的正確比配率都不如原有的算法,這是由于簡(jiǎn)化了特征描述子,從128維的特征向量減少到64維,導(dǎo)致了匹配的錯(cuò)誤率的提高。但是因?yàn)榧尤腩伾蛔兞恐蟮奶卣鼽c(diǎn)總個(gè)數(shù)增加了很多,粗匹配之后的匹配點(diǎn)對(duì)數(shù)比原有的算法要多,所以最終正確匹配的對(duì)數(shù)并沒(méi)有減少,這樣也不會(huì)影響到識(shí)別的結(jié)果。在耗時(shí)方面,改進(jìn)后的算法由于特征描述子的簡(jiǎn)化運(yùn)行速度大幅提高。64維的特征向量在使用K-D樹(shù)匹配過(guò)程中,相比原有的維度二叉樹(shù)的深度減少了一半,不僅是在生成階段,由于K-D樹(shù)本身回溯的特點(diǎn),回溯路徑也會(huì)大大縮短,因此在耗時(shí)上有了明顯的改善。
本文針對(duì)經(jīng)典的SIFT算法存在的兩個(gè)問(wèn)題,顏色信息的丟失和算法計(jì)算復(fù)雜,使用了加入顏色不變量以及改進(jìn)特征描述方式的解決方案。顏色不變量的使用提高了SIFT算法對(duì)于顏色變化的敏感度,對(duì)于原有灰度圖像中不明顯的差異在新的圖上中很好地體現(xiàn)出來(lái),從而提升了特征點(diǎn)數(shù)量。改進(jìn)后的特征子描述方式不僅是簡(jiǎn)化了提取過(guò)程減少了時(shí)間消耗,而且提高了SIFT算法的抗旋轉(zhuǎn)能力。在匹配過(guò)程中也因?yàn)樘卣飨蛄烤S度的降低匹配時(shí)長(zhǎng)也縮短。通過(guò)這兩方面的改進(jìn),相比經(jīng)典的SIFT算法有了更好的實(shí)用性。