林璟怡,李 東,胡曉瑞
(廣東工業(yè)大學 自動化學院,廣東 廣州510006)
圖像特征點檢測是計算機視覺研究中的一個關鍵性任務。隨著圖像處理與模式識別技術的發(fā)展,準確充分地提取原圖蘊含信息的圖像特征,對物體識別、圖像匹配、視覺跟蹤、三維重建等課題的發(fā)展有著很大的裨益,因此特征點檢測是一項關鍵且基礎的研究任務。
圖像特征點指的是周圍包含豐富的局部圖像特征的像素點,常見的特征類型有邊緣點、角點、紋理、斑點等[1]。傳統(tǒng)的特征點檢測方法包括Moravec算法、Harris算法、DoG算法[2-4]等。Moravec算法考察局部圖像平移前后的像素值差異,并將差異最大的局部圖像的中心像素作為特征點。然而該方法只具備弱旋轉不變性,其在實際任務中的性能表現(xiàn)較差。Harris算法[5]計算局部圖像方向導數(shù)得出圖像特征變換最劇烈/緩和的兩個方向,根據這兩個方向的梯度值區(qū)分無紋理區(qū)域的點、邊緣點或是角點。然而由于Harris算法對于圖像的尺度較敏感,該算法在實際復雜環(huán)境下的圖像特征提取應用中表現(xiàn)亦不佳。LoG和DoG算法將局部區(qū)域中的圖像導數(shù)的極值點作為特征點,無法兼顧特征點的精確定位和圖像的良好去噪,在實際應用中難以取舍。尺度不變特征轉換方法(Scale-invariant Feature Transform,SIFT)[6]算法使用高斯差分金字塔構造尺度空間,并在尺度空間中定位極值點以選取特征點。然而該算法無法對邊緣光滑的目標準確提取特征點。加速穩(wěn)健特征(Speeded Up Robust Features,SURF)[7]算法對SIFT算法進行了改進,通過計算Hessian矩陣并構造尺度空間以進行特征點的選取與定位。然而SURF算法并未解決SIFT算法在尺度空間中各個層之間的尺度值不夠緊密的問題。
除基于人工設計的特征點檢測方法[8-10],近年來也涌現(xiàn)出越來越多基于神經網絡學習的特征點檢測方法[11-12]。然而現(xiàn)階段缺少帶有特征點標注的大規(guī)模數(shù)據集。其原因在于,首先,對于不同的任務場景,所需的最優(yōu)特征點類型可能不同,即無法準確找到最優(yōu)特征點對數(shù)據集進行標注。其次,對于密集的特征點生成來說,人工標注是一件非常困難的事情。這也使得很多基于學習的特征點檢測器都依賴人工設計的檢測器來生成訓練數(shù)據,或將其作為網絡的一部分一起參與訓練。而后者將限制基于學習的檢測器的性能進一步發(fā)展。為了解決以上問題,Quad-Network[13]提出了一種基于數(shù)據驅動的無監(jiān)督特征點檢測方法,該思想也被LF-Net[14]和SuperPoint[15]作為特征點檢測的重要部分來參與整個圖像匹配任務網絡的訓練。以上工作說明了無監(jiān)督的學習方法能夠很好地完成特征點檢測任務。
本文提出一種基于差分響應圖的無監(jiān)督特征點檢測網絡,主要的工作如下:
(1)提出一種新的無監(jiān)督特征點檢測網絡,訓練特征點檢測器對以每一個像素點為中心構成的局部圖像塊計算一個響應值??疾烀恳粋€圖像塊的響應值在當前圖像的所有圖像塊中的大小關系,依據響應值大小使用非極大值抑制的方法在響應圖中挑選特征點。在訓練方式上,使用卷積核對整幅圖像做卷積操作,省去了Quad-Network中對圖像塊進行隨機選取、裁剪的步驟,減少了訓練時間。
(2)對特征點檢測器前端進行優(yōu)化,將簡單線性濾波器替換為由不同尺度的卷積核進行差分運算得到的差分卷積核。在本文后續(xù)章節(jié)的分析與實驗結果表明,利用差分響應有利于更精準地定位物體邊緣,并緩解了物體邊緣選取的特征點聚集的現(xiàn)象。
(3)與現(xiàn)有方法相比,本文所提出的方法采用旋轉、光照、模糊等多種圖像變換訓練檢測器,獲得相應特征不變性,該網絡更適用于小規(guī)模數(shù)據集訓練,擺脫對大數(shù)據集規(guī)模的依賴。實驗結果表明,即便只使用具有足夠豐富細節(jié)信息的單幅圖像進行訓練,并對圖像進行合理變換,即可得到性能優(yōu)良的特征點檢測器。
假設1已知集合X,Y。若存在映射關系F與操作H,對于任意元素x,y(x∈X,y∈Y)使得
成立,則稱操作H能匹配X,Y中任意一對具有F關系的元素,其中? 符號表示映射操作。
對于特征點檢測任務來說,特征點的可重復性指的是:同一特征點可在該場景的不同圖像中被檢測器檢測出來。特征點的可重復率是特征點檢測任務中的一項重要指標。
根據假設1,假設存在兩幅圖像Ii和Ij,其映射關系符合單應矩陣F i j。若存在完美的檢測器H,其對任意一對匹配的像素點x∈I1,y∈I2輸出的值都應相等,此時所檢測出的特征點的可重復率達到了極限值。然而,由于相機參數(shù)和噪聲等原因,讓所有的像素點都能正確匹配的概率極小。
綜上所述,本文將特征點對于多對匹配的像素點響應值一一對應相等的問題,近似為,多對匹配的像素點對特征檢測器的輸出響應值,在不同圖像中的大小排序相近的問題,即將值比較問題轉化成排序比較問題?;谠撍枷耄瑱z測器將對每一個以像素點為中心的局部圖像塊輸出一個響應值,該響應值在整體圖像所有響應值的排序位置決定該像素點的重要性程度。對于兩幅同一三維場景下的不同圖像來說,要求多對匹配點所輸出的響應值的大小排序順序相近。而響應值在全局范圍內排序隊列前端部分和末端部分的像素點,在不同的圖像中重復率比排序隊列中其他像素點更大,即選取響應值最大及響應值最小的多對像素點作為特征點。
在檢測器的選取問題上,本文使用不同尺度下卷積核的差分輸出來計算響應值。并在后續(xù)章節(jié)中分析差分卷積核的相關性質。
圖1展示了本文方法的網絡架構,使用的深度學習框架為PyTorch。圖1(a)為訓練過程的步驟。輸入圖像I后網絡將對其進行隨機變換t并得到圖像t(I),其次使用同一個差分卷積核模型將對兩幅圖像輸出各自響應圖。PyTorch中的評判器模塊會根據預定義的損失函數(shù)計算得到誤差梯度并反向傳遞回模型。參數(shù)更新模塊會根據反向傳遞的誤差梯度對模型的參數(shù)進行修改,最終得到訓練完畢的模型將用于實際的測試與應用。
圖1 本文網絡架構Fig.1 The proposed network architecture
如圖1(b)所示,在測試過程中,使用訓練后的檢測器對圖像輸出一幅差分響應圖,然后在全局范圍內挑選響應值最大和最小的一部分像素點作為特征點。在選取的方式上使用常見的非極大值抑制方法。以選取的特征點的重復率評判特征點檢測器的性能優(yōu)劣。
1.2.1采樣隨機變換與仿射變換
由于缺乏大規(guī)模的含有真實標注的數(shù)據集,在特征點檢測任務中如何設計基于學習的網絡是一件困難的事情。在使用反傳網絡來訓練模型參數(shù)的時候,由真實標注和計算結果構成的誤差會反向傳播回模型并更新模型的參數(shù)以達到訓練的效果。在特征點檢測任務中除了需要考慮如何得到真實標注外,還需擴增訓練的數(shù)據量以避免造成過擬合。本文使用采樣隨機變換的方法來獲得真實的標注。
圖2 原圖與經過光照強度變換、模糊變換與JPEG壓縮變換后的圖像Fig.2 The original image and its thr ee tr ansfor med images(brightness, blur, JPEG compress)
如圖2所示,可對圖像進行隨機變換操作,例如光照強度變換、模糊變換等。該變換操作并不改變像素的相對位置,即二維圖像每個像素點對應的三維位置信息是固定和已知的,并且所得到的新圖像與原圖的差異可用來訓練模型獲得相應的特征不變性。若模型對同一場景的不同圖像的響應分布越相近,則說明這些圖像之間包含的變換關系對該特征點檢測網絡的干擾影響越小,代表著這些圖像變換的魯棒性越強。而模型中的卷積操作并不會影響位置屬性,于是圖1(a)所示的模型輸出的兩幅差分響應圖之間的位置信息也是一致的,即在訓練過程中獲得了對應的真實標注,而該標注信息將被用于計算網絡后端的損失函數(shù)的輸出。
由于本文使用小規(guī)模的數(shù)據來進行訓練,需要進行數(shù)據增廣以防止訓練過擬合。本文對原圖及進行隨機變換后的新圖像采用隨機的仿射變換。對圖像進行仿射變換,相當于圖像中每個像素點坐標乘以一個仿射變換矩陣,如式(3)所示。仿射變換包括一些常見的變換,例如平移、旋轉、縮放等??赏ㄟ^設置矩陣的參數(shù)a11至a23來實現(xiàn)特定的變換。式(4)與式(5)分別代表旋轉與縮放操作,其中 θ代表旋轉角度,ax與ay代表在兩個坐標軸上的縮放尺度。使用仿射變換矩陣進行運算后,需將新坐標的第3個維度的值歸一化,從而得到仿射變換后的坐標值(x′,y′)。
由于在同一個訓練批次中仿射變換矩陣是已知的,可通過對網絡模型輸出的響應圖進行逆仿射變換以使得新的響應圖符合原圖的位置分布。該操作執(zhí)行后真實標注的對應情況不受影響。
1.2.2 差分卷積核
與以往使用單個線性濾波器作為檢測器的方法不同,本文使用兩個不同尺度的卷積核輸出的差分來計算得到響應圖,如圖3所示。不同尺度的卷積核表示感受野大小的不同。圖3(a)為原圖,圖3(b)與圖3(c)分別為原圖經過較小尺度和較大尺度的卷積核運算后輸出的結果,其中假設兩個卷積核參數(shù)服從同一分布。在該可視化方法中,響應值越大的點所顯示的顏色越淺。在圖3(b)上可發(fā)現(xiàn)該選定的卷積核對建筑物紋理與樹陰的響應值有較大不同,并且兩者的分界較為清晰。而圖3(c)也顯示了建筑物紋理與樹陰的響應值的不同,但兩者的分界較為模糊。圖3(b)和圖3(c)表明線性卷積核對于物體的紋理的輸出較為穩(wěn)定。對兩幅響應圖進行批規(guī)范化操作,即將響應圖規(guī)范化至符合特定均值與方差的分布,再對其進行差分運算,得到圖3(d)。如圖3(d)所示,建筑物紋理的顏色與樹陰區(qū)域的顏色相近,表明了兩者的響應值大小相近。而在物體邊緣部分像素點的響應值將往最大及最小的趨勢變化(如建筑物與樹陰的分界區(qū)域響應值變大,建筑物與天空的分界區(qū)域響應值變小)。這是由于大尺度的卷積核對物體的邊緣不敏感,在進行差分運算時,相比于邊緣位置的像素點,非邊緣像素點的響應會減去與其更為相近的值,而使得其差分響應接近于零,而邊緣點的響應值會處于全局范圍內最大及最小的部分。因此,本文方法選取差分響應圖中最大及最小的一部分作為特征點。
圖3 原圖及卷積核響應圖Fig.3 The original image and response maps
為了得到每一個像素點的響應值,首先根據二維卷積公式
式(6)~(10)為像素點的差分響應值計算步驟。檢測器輸出的差分響應圖可簡記為H(I|w),其中I為輸入的圖像,w為網絡參數(shù)的權重。本文通過計算損失函數(shù)并進行誤差反向傳播,使用的深度學習框架在訓練時會根據反向傳播的誤差值對卷積神經網絡參數(shù)權重w進行自動更新。當網絡參數(shù)訓練完畢后,網絡對輸入的圖像生成響應圖,并根據響應值選取特征點。
1.2.3損失函數(shù)
當圖像經過某種非仿射變換后(如模糊、光照等),特征點檢測器對變換前后的圖像所輸出的響應圖的分布越接近,代表著檢測器對于該變換的魯棒性越強,其所選取的特征點的重復率也越高。
假設存在圖像變換操作集T,t∈T為隨機采樣的圖像變換。圖像Ij和Ii具有t映射關系,即Ij=t(Ii)。利用檢測器H計算響應圖H(Ii|w)和H(Ij|w)。當H(Ii|w)與H(Ij|w)的L1距離越接近,則表示網絡對t變換的魯棒性越強。因此構造損失函數(shù)為
其中BN代表Batch Normalization操作。 λt為超參數(shù),用于調整不同變換操作對損失函數(shù)的貢獻。目前超參數(shù) λt的值需通過多次實驗嘗試,并根據最優(yōu)實驗結果和圖像數(shù)據集的屬性決定。例如,假設數(shù)據集圖像之間均存在t1和t2變換,t1的變換程度范圍較大而t2的變化程度較輕微,則可考慮調整λt1與 λt2的比重以增大t1變 換對損失函數(shù)的貢獻,使網絡對t1變換的魯棒性更強。
本文圖像變換操作集合T包括光照強度變換、模糊變換與JPEG壓縮變換。光照強度變換計算方法如式(12)所示,其中α 為線性的亮度衰減因子,取值范圍為[0,1]。當α =1時代表圖像不進行光照強度變換。
模糊變換的計算方法如式(13)~(15)所示,其中e 為自然對數(shù)常數(shù),σ 參數(shù)控制鄰域像素點對中心點的影響,n3為模糊半徑。模糊變換的計算形式與式(7)中離散二維卷積值的計算相似,不同之處為將卷積核換成二維離散高斯函數(shù)。
由于JPEG壓縮算法的實現(xiàn)較復雜,本文直接使用OPENCV函數(shù)庫工具對圖像的JPEG壓縮率進行調整。
本文使用Oxford VGG數(shù)據庫[16]進行訓練和測試分析,其中包含LEUVEN數(shù)據集、UBC數(shù)據集和TREES數(shù)據集。LEUVEN數(shù)據集中包含同一場景中不同光照強度的圖像,用于測試特征點檢測器的光照不變性。TREES數(shù)據集包含同一場景不同模糊程度的圖像,UBC數(shù)據集包含同一場景不同壓縮程度的圖像,分別用于測試特征點檢測器的模糊不變性與JPEG壓縮損失不變性。每個數(shù)據集都提供了圖像之間的單應矩陣,可用于計算特征點的重復率指標。
本文實驗的定量評價指標為特征點的可重復率,其數(shù)學描述見定義1。圖4能直觀地表示可重復率的意義。檢測器對存在確定的仿射關系F的兩圖像進行特征點的選取,其中 A點與 C 點在真實的三維空間中為同一點。若 A點與 C點能同時被檢測器選取,并且檢測的兩點的坐標在像素誤差閾值允許的條件下滿足仿射關系F,則稱特征點 A是可重復的。特征點的可重復率即為在同一圖像中可重復的特征點占所有檢測出的特征點的比率。
圖4 特征點檢測器在兩幅圖像選取的特征點Fig.4 Feature points selected by detector in two images
然而只使用可重復率作為評價指標也具有局限性。例如當選取的特征點過于密集形成積聚時,計算的可重復率較高,但是該情況可能造成特征點在后續(xù)實際應用中性能不佳。因此本文同時對特征點的分布情況做出定性評價。
定義1特征點的可重復率。若存在圖像Ii與Ij,F(xiàn) i j與F ji分別為從Ii到Ij和從Ij到Ii的單應矩陣。xi與xj分別為在Ii與Ij中觀測到的特征點。x~i和x~j為在Ii與Ij共有區(qū)域中觀測到的特征點,其滿足
本文使用Python語言來編寫和訓練特征點檢測網絡,使用的深度學習框架為Py Torch。訓練集為LEUVEN數(shù)據集中圖像細節(jié)最完備的一幅圖像,測試集為前面所述3個數(shù)據集。本文選擇無監(jiān)督的Quad-Network網絡和常用的DoG檢測器作為對比方法。在Quad-Network算法的實現(xiàn)上,為了公平比較,本文使用該網絡的訓練方式和損失函數(shù)替換本文網絡相對應的部分,其余訓練操作均一致。本文網絡使用Adam算法來優(yōu)化網絡權重,批量化大小(Batch Size)為8,學習率為0.01。隨機光照強度變換選取衰減因子的范圍為[0.2,1]。隨機模糊變換選取的模糊像素半徑為[0,5], σ值設置為1。隨機JPEG壓縮率的選取范圍為[0.2,1]。
本文方法使用仿射變換中的旋轉與縮放操作進行數(shù)據增廣。選取隨機旋轉角度的范圍為[0,360],隨機縮放因子ax與ay的范圍均為[0.9,1.1]。
計算特征點可重復率的誤差閾值對特征點檢測器的性能做出了要求,當誤差閾值越小時,要求檢測器對特征點的定位要更精準。本文選取常用的5像素閾值來評判檢測器的性能。
圖5為3種方法在LEUVEN數(shù)據集上的測試結果,紅色和藍色的點為所選擇的特征點。圖6展示DoG算法選取的候選點及Quad-Network和本文方法輸出的響應圖。所輸出的響應圖采用灰度圖的方式進行可視化。如圖7所示,是3種方法分別在TREES和UBC數(shù)據集上選擇的特征點。所有實驗的特征點重復率數(shù)據如表1所示。
由表1可以看出,3種方法在UBC數(shù)據集中取得的重復率均較高,且與其余數(shù)據集中相差較大。這是由于LEUVEN數(shù)據集與TREES數(shù)據集中圖像包含了仿射變換,而UBC數(shù)據集是使用同一幅圖像在不同JPEG壓縮條件下生成的圖像,并不存在仿射變換。傳統(tǒng)的DoG方法只有在LEUVEN數(shù)據集上的定量性能要比Quad-Network和本文的方法要好。但是,結合圖5(a)與圖6(a)分析,DoG方法選擇的特征點有很大部分聚集在樹陰的區(qū)域。然而該區(qū)域中,點的位置難以辨認與定位,所選擇的像素點在特征點檢測任務中被認為是難樣本(Hard Sample)。這是由于DoG方法總是選擇圖像離散函數(shù)二階導數(shù)為零的點,即局部變化最劇烈的點,但在全局中該類型的點可能并非最優(yōu)特征點。綜上,雖然DoG檢測器能很好地檢測出物體的邊緣,但也存在著選取大量難樣本的風險。
圖5 3種方法在LEUVEN數(shù)據集上檢測的特征點Fig.5 Feature pointsselected by DoG detector, Quad-Network and our method on LEUVEN dataset
圖6 DoG,Quad-Network和本文方法在LEUVEN數(shù)據集上的候選點/響應圖Fig.6 Candidate point/response diagramsof DoG detector, Quad-Network and our method on LEUVEN dataset
圖7 3種方法分別在TREES數(shù)據集(左)和UBC數(shù)據集(右)上選擇的特征點Fig.7 Feature pointsselected by DoG detector, Quad-Network and our method on TREES and UBC datasets
表1 特征點重復率Table 1 Repetition rate of feature points
如圖5(c)和圖5(d),Quad-Network方法對物體的邊緣不夠敏感,在邊緣的響應值大小極為接近,在所測試的3個數(shù)據集上都存在特征點聚集情況。由圖6(c)與圖6(d)可看出,Quad-Network輸出的響應圖模糊現(xiàn)象及邊緣點的積聚現(xiàn)象較為嚴重。雖然Quad-Network在UBC數(shù)據集上取得最高的重復率,但是結合對特征響應圖分析,Quad-Network可能會選取遠離圖像中復雜紋理的像素點,并認為其與所處在復雜紋理的像素點具有相似的性能表現(xiàn)。這種特征點的選取策略可能會對后續(xù)任務的性能有損害,例如圖像描述子生成任務等。
與DoG方法比較,本文所提出的方法在TREES數(shù)據集和UBC數(shù)據集中取得的重復率均高于前者。雖然在LEUVEN數(shù)據集上的重復率指標與前者相比較低,但緩解了DoG方法優(yōu)先選擇難樣本的問題。與Quad-Network方法相比,所提出的方法在LEUVEN和TREES數(shù)據集上特征點的重復率均優(yōu)于前者。此外,本文方法生成了對物體邊緣更為敏感,細節(jié)更為清晰的特征響應圖,見圖6(e)與圖6(f)。
圖8為兩種基于學習的方法在測試過程中對LEUVEN數(shù)據集檢測特征點所耗費的時間曲線圖。可以看出本文方法在同等特征點數(shù)目檢測中所需要的時間遠比Quad-Network的要少。因為Quad-Network在使用線性濾波器去對局部圖像塊計算相應的響應值時,存在著大量耗時的圖像裁剪操作,而本文方法使用了不同于Quad-Network的訓練模式與損失函數(shù),利用卷積核對圖像輸出特征圖以候選特征點,省去了隨機采樣和裁剪圖像塊的操作,簡化了數(shù)據處理流程,使得耗時大大減少。
圖8 檢測特征點的數(shù)量與所消耗時間的關系Fig.8 The r elationship between the number of feature points detected and the time consumed
圖9是對本文網絡中隨機選取的一個尺度的卷積層進行可視化操作。訓練得到的卷積核呈中心對稱,且卷積參數(shù)的均值近似于零。由于未使用非線性的激活函數(shù),當卷積核處于無紋理區(qū)域中,即圖像像素值近似無變化的區(qū)域,其輸出的響應值也接近于零;當卷積核處于有紋理區(qū)域中,輸出的響應值會趨于正無窮及負無窮,遠離零點。實驗表明,選取響應值最大及最小的一部分像素點為特征點,具有較好的可重復性。
圖9 尺度為23像素的三通道卷積核可視化Fig.9 Visualization of 3-channel convolution kernels with a scale of 23 pixels
綜上,在分別對應光照強度變換、模糊變換和JPEG壓縮變換的3個數(shù)據集的測試上,本文所提出的方法在3種方法中表現(xiàn)出最佳的綜合性能。
本文提出了一種新的數(shù)據驅動的基于差分特征響應圖的無監(jiān)督特征點檢測網絡。利用光照、模糊、壓縮等變換來準確獲取訓練數(shù)據真實標注,利用隨機仿射變換擴充數(shù)據集以避免訓練過擬合,采用差分卷積核來代替?zhèn)鹘y(tǒng)的卷積核提取圖像特征,獲得對邊緣更為敏感的特征圖。采用了一種新的基于全局圖像的損失函數(shù),簡化了數(shù)據處理過程。使用定量與定性評價標準在3個數(shù)據集上將提出的方法與其他傳統(tǒng)經典方法進行實驗對比。實驗結果表明,所提出的方法能有效地完成特征點檢測任務,生成的特征響應圖對物體邊緣更敏感、細節(jié)更清晰,縮短了訓練耗時,在小規(guī)模數(shù)據集上獲得更優(yōu)的檢測效果,總體表現(xiàn)出最佳的綜合性能。本文方法的局限性在于,未解決含有仿射變換的數(shù)據集所檢測的特征點可重復率不高的問題,這也是下一步將要研究的問題。