張少鵬,周大可,2,楊 欣,2
(1.南京航空航天大學 自動化學院,南京 210000; 2.江蘇省物聯網與控制技術重點實驗室,南京 210000)
圖像特征點檢測任務是計算機視覺領域的底層任務,對許多更高層的任務,比如車輛檢測[1]、視覺SLAM[2]起到至關重要的支撐作用,更高的特征點檢測精度能顯著提升這些高層任務的性能。在早期研究中,特征檢測任務主要通過手工設計特征提取策略和特征點描述策略來尋找特征點,比如SIFT[3]、SURF[4]、AKAZE[5]、ORB[6]等。隨著深度學習的興起,卷積神經網絡在計算機視覺領域開始廣泛應用,如何利用深度學習進行特征點檢測、描述和匹配也成為了研究的熱點。根據深度學習在這些研究中起到的作用,可以將其分為三類:使用傳統算法檢測的特征點作為監督信息進行訓練的方法,采用自監督特征描述網絡+手工篩選特征點的方法,和采用自監督方式同時訓練特征點檢測和描述網絡的方法。
受采用人工提取策略的特征檢測器啟發,Verdie等[7]將特征點檢測問題視為回歸問題,利用SIFT特征點來監督網絡訓練;Yi等人[8]把特征點檢測視為分類問題,預測每個像素點是特征點的概率,同樣利用SIFT特征點監督訓練,取得了不錯的效果。但這類方法采用SIFT等傳統策略提取的特征進行監督,導致特征點檢測網絡的上限被選用作為監督的人工設計檢測器所限制,無法取得更優的效果。
卷積神經網絡具有優異的圖像特征提取能力,因此,一些研究者提出不訓練特征檢測網絡,采用自監督的方式直接訓練卷積神經網絡提取輸入圖像每個像素局部區域的描述向量,然后人工設計篩選策略,選出潛在特征點[9-12]。Dusmanu等人[13]等首先提出了這種方法,通過比較像素點和周圍特征向量在通道域和空間域的差異來篩選特征。Tian等人[14]等改進了篩選策略,以特征向量的方差大小和特征向量與周圍像素的差異來挑選特征點。然而,這種方法在選取策略上還存在一定缺陷,雖然在光照變化下表現出了良好的性能,但在視角變化大時性能下降明顯。
由于手工設計策略篩選特征點的方式仍存在對視角變化較敏感、難以達到全局最優等問題,許多研究選擇訓練卷積神經網絡同時完成特征點的檢測和描述。DeTone等人[15]先訓練網絡提取三角形、四邊形等簡單圖形中的角點,訓練完成后再在真實圖像上進行訓練,使用輸入圖像多次進行單應矩陣擾動后提取的特征點作為偽真值標簽。Ono等人[16]將輸入圖像施加單應變換,以兩張圖像提取的特征點差異作為監督,同時加入空間變換網絡,讓網絡提取的描述子具備空間不變性。Christina等人[17]巧妙地將圖像降采樣與預測特征點位置相結合,同時輸出特征點位置和描述向量。Barroso-Laguna等人[18]采用人工設計的濾波器組預處理圖像,再輸入網絡進行預測。Shen等人[19]改進了LF-Net的網絡結構以融合多尺度特征。在特征檢測的過程中,重復紋理處提取的特征點常常會導致誤匹配,所以需要針對性的處理重復紋理處提取的特征點。Revaud等人[20]在網絡中額外添加了評估描述子可信度的輸出層,該層會在紋理重復度高的像素點位置輸出一個較低的可信度,從而避免提取到這些特征點。然而,在特征點的提取過程中,卷積神經網絡每一層的尺度變化較大,且只能以固定尺寸的卷積核對輸入的特征圖進行卷積,缺乏多尺度信息的融合;同時,圖像局部的紋理形狀并不規則,導致卷積層提取時可能引入無關信息、破壞局部紋理的完整性。所以如何融合多尺度的圖像特征信息、更好地描述圖像局部特征成為提高特征點提取網絡性能的關鍵。
綜上所述,本文針對以上問題,采用自監督的方式訓練卷積神經網絡,引入多尺度卷積,在同一個卷積層內融合多個不同感受野的卷積核,從而獲得有豐富信息的多尺度特征,引入卷積注意力機制和坐標注意力機制與多尺度卷積核結合,使網絡能夠重點關注某一尺度特征圖;引入可變形卷積,使網絡輸出的描述子可以靈活描述像素點周圍的區域,最終獲得了效果更佳的特征點檢測網絡。
本文網絡采取L2-Net[21]作為基礎網絡,不同于L2-Net的輸入為32*32的圖像塊,本文輸入為整張圖像,輸出每個像素的描述向量、該像素是特征點的概率、該像素描述向量的可信度。在基礎網絡中加入多尺度卷積和卷積注意力模塊,在網絡最后額外增加兩層單應約束的可變形卷積層和坐標注意力模塊,網絡整體結構如圖1所示,輸入圖像經過共享特征融合模塊后,從左到右依次輸出特征點置信度響應圖、特征點描述子、特征點局部區域重復度響應圖。在訓練時,本文預測兩幅圖像的特征點,并用光流預測的方法得到對應的特征匹配,并以此進行自監督訓練。

圖1 整體網絡框架示意圖
本文首先通過一個共享的特征提取模塊來提取后續三個輸出模塊需要的深度特征。為了獲取足夠豐富的特征信息,本文采用了多尺度卷積模塊,該模塊的輸出通道與輸入通道之間的關系如圖2所示,不同顏色的方塊代表不同空洞率的卷積,這部分輸出特征通道由輸入特征通道與該空洞率的卷積核卷積得到。首先通過四層3*3卷積層對圖像進行預處理,再通過多尺度卷積層進行卷積,獲得多尺度融合特征。但是,在網絡中進行降采樣會丟失信息,造成精度下降,因此,本文使用增加卷積空洞率的方式來代替降采樣。

圖2 多尺度卷積層
PSConv[22]是Li,Yao等人提出的一種在同一層內提取多尺度特征的卷積層,其對輸入的特征圖采用不同空洞率的空洞卷積進行特征提取,空洞率沿著輸入和輸出通道的軸周期性地變化。卷積核的空洞率和卷積的感受野大小息息相關,空洞率越大,感受野越大。對于一個空洞率為d,卷積核尺寸為K的空洞卷積層,它的單層等效感受野R的大小為:
R=(d-1)×(K-1)+K
(1)
低空洞率的卷積更關注圖像局部的信息,高空洞率的卷積能關注到更全局的圖像信息。這種多尺度卷積設計使得網絡能夠在更細粒度范圍內聚合不同尺度的特征圖,有助于提取對尺度變化更魯棒的特征點。
為提取到尺度不變的特征點,本文在多尺度卷積的基礎上加入了卷積注意力機制(CBAM, convolutional block attention module)。CBAM模塊的結構如圖3所示,通過依次應用通道和空間注意力來識別重要的特征區域。通過在多尺度卷積層后加入CBAM模塊,網絡能夠在輸入圖像的場景尺度發生變化時提取到尺度相近的特征,有利于最后提取到尺度相對魯棒的特征點。

圖3 卷積注意力模塊
可變形卷積是由Zhu等人[23]提出的一種卷積操作,設卷積核大小為3,空洞率為1的傳統卷積采樣點為:
R={(-1,-1) (-1,1) … (1,-1) (1,1)}
(2)
R是以(0,0)為中心的周圍9個點,則在每個卷積中心點p0輸出的特征圖y(p0)與輸入特征圖x(p0)的關系為:
(3)
其中:w(p)代表卷積核在點p處的權重,x(p)代表輸入特征圖在點p處的像素值。
而可變形卷積額外添加了兩個卷積層用來預測采樣點的偏移量Δpn和采樣點的重要程度Δmn,其卷積公式為:
(4)
通過預測偏移量,可變形卷積層可以采樣到不規則的感興趣區域輪廓,不必受限于規整的采樣區域,能夠增強網絡輸出的描述子的描述能力。
經典的可變形卷積核每個采樣點都能在x,y兩個方向自由偏移,因此每個采樣點的自由度為2,一個卷積核的偏移量的自由度是2·k2,k為卷積核大小。假設k=3,則卷積核有9個采樣點,輸入圖像大小為B×C×H×W,輸出的預測偏移量大小應為B×18×H×W。然而,在特征點檢測任務中,完整的2·k2自由度并不是必要的。在早期研究中,為了給網絡提供空間不變性,研究者給網絡添加了某些幾何約束。Jaderberg等人[24]通過空間變換網絡(STN)預測一個二維仿射變換參數用于對齊輸入圖像,在LF-Net[16]中,作者利用STN結構來變換輸入圖像,然后提取圖像的描述子。這些研究直接估計輸入圖像的二維仿射變換,這種預測方法無法自適應調整局部的變換參數,同時仿射變換也無法完全描述二維射影圖像間的幾何關系。Luo[25]等人提出利用二維單應矩陣來約束可變形卷積的變化范圍。定義一張圖像上像素點的齊次坐標為(x,y,w)T,它屬于射影空間IP2,射影映射是一種滿足下列條件的可逆映射h:x1,x2,x3共線當且僅當h(x1),h(x2),h(x3)也共線[26]。射影映射組成的群稱為射影變換群或單應變換群,存在一個非奇異矩陣H∈R3×3滿足:h(x)=Hx。


(5)

通過觀察特征點的分布,我們認為檢測特征點不僅需要圖像的局部信息,還需要網絡能聚合更大范圍內的圖像空間信息。CBAM注意力模塊通過全局池化來引入位置信息,但這種方式只考慮了局部范圍的信息。因此,本文采用坐標注意力機制[28]來捕獲更大范圍內的特征依賴關系。
如圖4所示,從上層網絡得到特征F∈RC×H×W,C,H,W分別是輸入特征圖的通道數、高和寬。對輸入特征分別進行X和Y方向的一維全局平均池化操作得到,然后將其拼接在一起并依次通過一個1×1卷積核映射、一個RELU非線性激活層,再將兩個方向的特征分離并分別通過一個1×1卷積核映射再與原輸入特征做哈達瑪積,這樣每個注意力圖都具備了沿著不同方向捕獲輸入特征圖遠距離依賴關系的能力。通過在編碼器中加入坐標注意力機制可以獲得可訓練的空間權重,指導網絡不局限于特征圖的局部特征,提取到更豐富的特征,同時也能夠加速訓練收斂。

圖4 坐標注意力模塊
通過自監督方式訓練特征點檢測網絡實質上是通過合成新視圖的方式獲取真值。與Revaud等[20]提出的方法類似,本文的損失函數設置為:
Ltotal=λdetLdet+λdescLdesc
(6)
其中:Ldet用于訓練特征點檢測網絡,Ldesc用于訓練描述子生成網絡。Ldet由余弦相似度損失Lcosim和差異度損失Lpeaky構成。令S[p]為網絡預測的輸入圖像上點p是特征點的可能性,I,I′分別是輸入圖像和合成的新視圖,P是每個像素點周圍區域,則余弦相似度損失為:
(7)
為保證選出的特征點在S上的局部區域內有顯著的大小差異,本文采用差異度損失:
(8)
綜上,檢測子損失為:
Ldet=Lcosim(I,I′)+0.5(Lpeaky(I)+Lpeaky(I′))
(9)
描述子損失Ldesc用于衡量兩幅圖像中同一個特征點生成的描述子是否相似,使用可微分的平均精度損失(AP)[29]:
LAP(q)=1-AP(q)
(10)

與網絡預測的描述子可信度結合,最終的描述子損失函數為:
LAPκ(i,j)=1-[AP(i,j)Rij+κ(1-Rij)]
(11)
其中:R是網絡輸出的各像素點描述子可信度,κ是超參數。
2.1.1 數據集
使用圖像檢索數據集Achen[30]和Random Web Image數據集作為訓練數據,Hpatches[31]數據集作為測試數據集,以便與現有工作進行比較。Aachen數據集包含6 697張參考圖像,1 015張明暗不同的查詢圖像以及對應的位置信息。原始圖像大小為1 600×1 063像素,為降低網絡計算量,將輸入圖像的大小設置為640×480像素。在選定圖像對后,通過SFM和稠密光流預測,可以獲得對應的位姿變換和兩張圖像上逐像素對應坐標,在訓練中,網絡預測獲得圖像對的特征點后,通過光流可以獲得特征點在另一張圖像上的位置,可以據此進行自監督訓練。
2.1.2 訓練細節
使用的訓練平臺為英偉達RTX 2080,整體算法采用pytorch框架實現。輸入圖像大小為640×480像素,采用隨機水平翻轉、亮度調整、對比度調整、小幅度射影變換擾動來實現數據增強,采用Adam作為優化算法,學習率設置為0.001,batch大小為4,共訓練20個epoch,權值衰減為0.000 5。
2.1.3 評估指標
本文使用評估特征點檢測精度最常用的幾個指標,包括匹配分數(MS,matching score),即正確匹配在兩圖像共視特征點中的占比,它能反映提取的特征點質量;
(12)
其中:N是測試集樣本數量,Minlier,Numco分別是正確匹配數量和圖像中共視特征點數量。
平均匹配精度(MMA,mean matching accuracy),即正確匹配特征點與所有可能匹配之比,MMA越高,說明特征點的匹配正確率越高,反映了特征點描述子的區分能力。
(13)
其中:Mtotal是兩幅圖像的特征點采用暴力匹配得到的所有可能匹配數量。
特征點重復度(Rep,keypoint repeatability),即所有可能匹配與兩圖共視特征點數量之比,它能反映網絡對某個紋理區域的特征提取能力。
(14)
單應矩陣估計精度(HA,homography accuracy):使用檢測特征點估計的單應矩陣與兩圖單應矩陣真值之間的差距,由于特征點匹配常用于三維重建、導航等需要求解變換矩陣的場景,因此該指標也很重要。
(15)
2.2.1 對比實驗
我們在HPatches數據集上比較了本文方法和7種主要方法,如R2D2[20]、D2Net[13],SIFT[3]等,各對比方法的結果數據來自原論文。表1給出了在3像素誤差閾值下8種方法的實驗結果,其中,各對比方法的結果數據來自原論文。由于部分用于對比的方法在論文中缺乏相關指標的實驗結果數據,且代碼未開源,因此,表1中有部分數據缺失。結果表明,本文方法在大部分指標上的評估結果優于其他7種方法。相較于其他方法,本文采用的方法在重復度指標上較次優方法提升了約1%,對于同一個紋理區域,本文方法能提取出的有效特征點更多,特征提取能力更佳;匹配分數上較次優方法提升了約1.3%,說明采用本文方法提取的特征點提取質量更好;平均匹配精度提高了約0.4%,說明采用本文方法提取的特征點在匹配時誤匹配更少,網絡提取的描述子能更好地區分不同特征點。雖然單應矩陣估計精度未取得最優效果,但仍能達到較優秀的精度。

表1 在HPatches數據集上結果比較
為了更好地展示本文方法在不同情況下的性能,圖5展示了不同方法在光照、視角變化情況下MMA指標隨像素誤差閾值變化的圖像,最左側圖像為兩種變化下MMA指標的平均值。由于圖5中部分方法僅有HPatches數據集下MMA這一指標的實驗數據,因此這部分方法未在表1中列出。如圖5所示,當像素誤差閾值上升到2px時,本文方法的MMA指標綜合上看已取得了最優效果,隨著閾值限制的放寬,在不同特定條件下的效果也取得了最優效果。綜合不同曲線,本文方法在大多數情況下取得了最優的匹配精度。

圖5 HPatches數據集下部分方法平均匹配精度(MMA)隨像素誤差閾值變化曲線
圖6是在HPatches數據集中分別選取光照、視角變化較大的兩個場景進行特征點匹配測試,上行為光照變化,下行為視角變化,像素誤差閾值為3px,每張圖像提取4 000個特征點,提取圖像對的特征點后,通過數據集提供的圖像對之間的變換矩陣將一幅圖像中的特征點投影到另一幅圖像中,并取投影位置周圍3個像素范圍內的特征點進行特征匹配,最后輸出匹配結果。從圖6可以看出,在光照條件變化大的情況下,本文方法提取的特征比傳統的SIFT、ORB等特征有更多的正確匹配特征點對,說明匹配效果更好,相比D2-Net、R2D2等采用深度學習的方法,本文的方法更少在圖像的低信息區域提取特征;在視角變化時,相較于其他方法,本文方法提取的特征分布更加均勻,定位也更精確。在曲線的前半段可以看出,僅需稍微放寬像素誤差閾值的限制,本文方法獲得的精度提升最大,更容易達到最優效果。

圖6 不同方法在光照條件、視角變化下進行特征點提取、匹配的結果
2.2.2 消融試驗
本文采用L2-Net作為基準網絡,在此基礎上加入了多尺度卷積層、可變形卷積層和卷積注意力、坐標注意力模塊,為進一步探究各模塊對實驗結果的影響,分別去除注意力機制、CBAM+多尺度卷積模塊、CA+可變形卷積模塊,將得到的評估指標進行比較,結果如表2所示。實驗結果表明,增加注意力機制和不同的卷積模塊均會帶來一定的精度提升,可變形卷積模塊能有效提升。

表2 HPatches數據集上消融實驗結果比較
為改進特征點檢測及描述算法的性能,本文提出了一種端到端的自監督特征點提取網絡。在L2-NET網絡基礎上,通過加入多尺度卷積和可變形卷積,優化可變形卷積的單應約束求解步驟,并引入卷積模塊注意力和坐標注意力機制,提升網絡對特征點的檢測能力。實驗結果表明,本文方法實現了更高的特征點檢測精度,同時對光照、視角變化有更強的魯棒性,在各類場景中均有較高的應用價值。