梁水波劉紫燕袁 浩孫昊堃梁 靜
(貴州大學大數(shù)據(jù)與信息工程學院,貴州 貴陽550025)
圖像特征的檢測及描述在計算機視覺任務中起著至關重要的作用,例如目標檢測[1]、圖像檢索[2]、三維重建[3]、姿態(tài)估計[4]以及同時定位與建圖(Simultaneous Location and Mapping,SLAM)[5]等,其性能直接影響后續(xù)過程的效果,具有重要的理論價值和實踐意義。
一般來說,標準的局部圖像特征算法包含兩個模塊,即圖像特征點檢測和描述子。提取圖像中感興趣的點,這些點被稱作特征點。對于每個特征點,其內部圖像位置通過檢測模塊確定,而其描述子則是通過描述模塊總結本地上下文信息來計算,并生成一個標識性的向量來代表這個區(qū)域的特征。好的局部圖像特征應具有特征檢測重復率高、速度快。特征描述對光照、旋轉、視點變化等圖像變換具有魯棒性強、特征描述符維度低、易于實現(xiàn)快速匹配等特點。設計一個對各種圖像變換具有高度鑒別性和魯棒性的優(yōu)秀圖像局部特征檢測算法并不是一件容易的工作。
早期局部特征的方法主要是手工制作,具有代表性的方法包括SIFT[6]、SURF[7]、ORB[8]、KAZE[9]、AKAZE[10]、BRISK[11]等。盡管手工制作的特征在各種計算機視覺任務中得到了廣泛的應用,但是隨著模型表示能力的提高,由于其基于規(guī)則的算法設計性質無法進一步提高性能,且手工制作的方法在極端外觀環(huán)境下往往表現(xiàn)不佳,如白天與黑夜之間、季節(jié)和弱紋理等場景。
隨著硬件和深度學習技術的不斷發(fā)展,基于深度學習的特征提取和描述算法發(fā)展迅猛,效果與傳統(tǒng)手工設計的方法相比也能達到不錯的效果。然而,當前基于深度神經網絡(Deep Neural Networks,DNN)方法的計算成本仍然很高,尤其是在大規(guī)模的數(shù)據(jù)集上。在如自動駕駛汽車、機器人、智能攝像機等應用場景,由于系統(tǒng)和應用平臺的限制,標準的深度學習模型很難應用起來。圖像局部特征檢測與描述任務作為基礎任務,自然不能耗費太多的軟硬件資源。
針對上述問題,本文提出了一種結合注意力和多層特征融合的特征提取與描述算法。首先將RGB圖像序列輸入網絡中,通過多層卷積神經網絡和注意力機制模塊后,將提取的特征分別操作進行多任務學習,最后,網絡的輸出分別為128維張量作為描述以及兩個衡量可靠性和重復性的置信度圖。本文提出的算法構建的網絡可進行端到端的訓練,與當前主流的深度學習方法相比,模型大小僅為1MB的情況下同時達到很好的效果。
本文的主要貢獻有以下幾點:①提出了一種更加淺層但結果表現(xiàn)優(yōu)良的圖像局部特征檢測與描述框架,聯(lián)合估計圖像的特征點及其描述,且模型參數(shù)大小僅為1MB,遠小于當前流行的網絡。②在共享層中(Backbone)將殘差塊與膨脹卷積相結合,不對圖像進行采樣和池化損失信息的條件下,在有限的層數(shù)以及不增加網絡參數(shù)的同時獲得更大的感受野和多尺度的特征。通過設計的跳躍連接,將低層信息與高層信息相融合。③將通道注意力運用在此類任務中,基本不增加模型的復雜度的同時能提取更加優(yōu)良的特征。
在本節(jié)中,我們簡要回顧眾所周知的局部特征檢測算法,這些特征可以分為四大類:手工制作的方法和三種基于DNN的方法。
SIFT是局部圖像描述領域的一項里程碑式的工作,已被廣泛應用于許多視覺應用中,并在很大程度上促進后續(xù)在該領域提出的許多局部圖像描述符的發(fā)展,如廣泛應用于行人檢測的顏色直方圖。SIFT的效果雖然很好,但其缺點是如果不借助硬件加速或專門的圖像處理器很難實現(xiàn)。SURF算子是針對SIFT的上述缺點,通過使用積分圖像技術來逼近SIFT,以加快其計算速度。ORB特征描述算法的運行時間遠優(yōu)于SIFT與SURF,可用于實時性特征檢測。具有尺度與旋轉不變性,同時對噪聲及透視仿射也具有不變性。KAZE算法采取非線性擴散濾波相比于SIFT與SURF算法提高了可重復性和獨特性。但是KAZE算法缺點在于計算密集,在移動端實時性要求難以滿足,AKAZE是在KAZE基礎上進行改進的。BRISK算法中構造了圖像金字塔進行多尺度表達,因此具有較好的旋轉不變性、尺度不變性,較好的魯棒性等。
通過使用順序連接的神經網絡,模仿手工制作的局部特征算法先檢測圖像中的關鍵點,然后通過裁剪和匯總局部上下文信息來計算每個關鍵點周圍的描述符。Ono等人[12]利用warp的方式去構建以雙圖像為輸入的自監(jiān)督網絡,加入空間變換網絡(Spatial Transformer Networks,STN)結構保證了一定的旋轉和尺度不變。每個網絡都包含其訓練策略,分別針對檢測器或描述符進行優(yōu)化?;趦呻A段的方法的主要缺點是計算效率低下,因為順序連接的網絡無法共享大量的計算和參數(shù),也無法完全實現(xiàn)并行計算。
通常將骨干網與兩個輕量級的頭分支連接起來,由于骨干網絡在檢測器和描述符計算中共享大多數(shù)計算,因此這種算法可以大大減少運行時間。DeTone等人[13]利用兩個獨立的解碼器對共享編碼器進行檢測和描述,將隨機單應性生成的合成形狀和圖像對被用來訓練這兩個部分。Dusmanu等人[14]將深度特征圖的通道內和通道間的局部最大值被定義為關鍵點,相同的圖用于描述符。Noh等人[15]提出了DELF,這是一種針對圖像檢索的方法,通過使用大規(guī)模地標圖像數(shù)據(jù)集訓練的注意力機制,將局部特征作為分類損失的副產品進行學習。Lin等人[16]對特征點檢測和描述的工作流程進行了詳細論述,指明了潛在的發(fā)展趨勢。Revaud等人[17]的目標是學習關鍵點,這些關鍵點不僅可重復而且可靠,并且具有可靠的描述符,由于其聯(lián)合訓練可靠性和重復性,網絡也取得了不錯的效果。
還有許多方法僅專注于基于DNN的檢測器或描述符,如文獻[18-19]。由于檢測器或描述符都將影響彼此的性能,因此我們通常整體上采用一種局部特征算法。這些方法可以視為可插拔模塊,并且可以在兩階段算法中使用。本文主要側重于開發(fā)基于DNN的一階段的模型。
本文所提出的網絡參照文獻[17]的中獲得可靠性和重復性的方式(下文稱為R2D2),其訓練了一個全卷積神經網絡,輸入一張大小為N×H的圖片,網絡對其預測三個輸出。第一個是三維張量X∈?H×W×D,每個像素對應一組密集的D維,作為描述符;第二個是可重復性置信度圖S∈[0,1]H×W,其目標是提供稀疏與可重復的關鍵點位置;第三個輸出是關聯(lián)的可靠性置信度圖R∈[0,1]H×W,表示描述符Xij每個像素(i,j)的估計可靠性,即判別性,其中i=1..W和j=1..H。R2D2是對L2-Net[20]網絡進行改進的,與L2-Net相比,其將最后的8×8卷積層替換為3個2×2卷積層,從而將權重數(shù)量減少了5倍,從而獲得了相似或稍高的精度。對于局部特征檢測這種低級任務,作為多數(shù)任務的基礎,該網絡模型在使用全尺寸的全卷積神經網絡的條件下,層數(shù)太多導致提取的特征冗余性太大,占用了比較多的內存,所耗費的硬件資源也是巨大的。
我們的全卷積模型也是在全尺寸圖像上運行,并在一次前向傳遞中共同計算興趣點的位置和相關描述符,通過訓練得到的可靠性置信度圖和可重復性置信度圖,選取兩者乘積大于閾值的點進行排序作為特征點,描述則為對應位置的128維向量。本文參照R2D2中獲取可靠性和重復性的損失函數(shù),與其不同的是本文的工作主要體現(xiàn)在基礎網絡特征提取部分,即如何在更少的卷積層數(shù)下獲得更好的特征。
本文的網絡由一個共享骨干Nb和兩個輕量級頭分支組成,即一個檢測分支Ndet和一個描述符分支Ndes。網絡結構如圖1所示。骨干Nb由兩個卷積層和4個如圖2所示的基礎殘差模塊組成,殘差模塊由卷積層、激活函數(shù)以及批歸一化組成,其在提取特征的同時還能加快網絡的收斂。
圖1 本文的網絡結構示意圖
圖2 基本殘差模塊
在骨干網絡中嵌入通道注意力模塊以及設計多重特征融合結構,從輸入圖像I∈RH×W中提取特征映射F∈?C×H×W。描述符分支Ndes與檢測器分支Ndet都以共享骨干Nb的128維張量作為輸入,對于描述符分支Ndes,輸入經過?2范數(shù)后得到128維的特征圖作為描述符X。對于檢測器分支Ndet,輸入經過逐像素平方x2、1×1卷積層和softmax運算,得到每個描述符的可靠性置信度值R∈[0,1]H×W,同樣的運算,將softmax替換成softplus,得到可重復性置信度值S∈[0,1]H×W。
對于僅有五層的骨干網絡,在有限的層數(shù)下最大化提取感興趣特征,使網絡輕量的同時達到更好的效果,本文使用只含一層卷積層的基礎殘差塊來構建骨干網絡。得益于這種聯(lián)合網絡結構,檢測器和描述符可以共享大多數(shù)參數(shù)和計算。
計算機視覺(Computer Vision)中的注意力機制(Attention Mechanism)的基本思想就是讓系統(tǒng)學會注意力,能夠忽略無關信息而關注重點信息。注意力模塊可嵌入到卷積神經網絡中進行一種簡單而又有效的注意力機制部署。注意力模塊主要包含有通道注意力模塊、空間注意力模塊以及兩者的結合。最近,通道注意力機制被證明在改善深度卷積神經網絡的性能方面具有巨大的潛力。本文受文獻[21]的啟發(fā),將通道注意力模塊集成到本文所提出的網絡架構的特征提取中,以提升有效特征圖中的有效通道,抑制對當前任務影響較小的特征通道,從圖像中提取更有效的特征,用于后續(xù)的特征點提取和描述。本文使用的通道注意力模塊結構如圖3所示。
圖3 通道注意力模塊
給定輸入一張圖片,并假設這張圖片在神經網絡內部的某個特征圖X∈?H×W×C作為輸入,經過不降低維數(shù)的通道全局平均池化(GAP),把一個特征圖x從大小為H×W×C變成1×1×C,通過執(zhí)行大小為K的快速一維卷積來生成通道的權值,其中K通過通道維度C的函數(shù)自適應地確定。最后將所計算得到的通道的權值與特征圖逐元素相乘,得到經過通道注意力的特征圖ˉx。
將通道注意力機制與所提出的網絡相結合,在卷積運算的基礎上融合注意力機制,使得網絡能夠自主地更加關注更具有信息量的特征以及特征區(qū)域,并且可以學習到不同通道間相互關聯(lián)性,從而在不增加太多網絡復雜度的同時使得網絡提取到的特征更加優(yōu)良。
本文在不改變圖像輸出特征圖尺寸的前提下,網絡對圖像不進行下采樣和池化操作,因此缺少多尺度信息。本文在骨干網絡部分依次使用膨脹率為1、2、4、8、16的膨脹卷積[22],圖4分別為膨脹率為1、2、4的卷積核示意圖。本文在骨干網絡前3層使用的卷積核大小為3×3,后兩層的卷積核則為2×2。膨脹卷積在不做池化操作損失信息的情況下,指數(shù)級增加感受野,讓每個卷積輸出都包含較大范圍的信息不需要增加模型參數(shù)(反而降低了模型參數(shù)),有效地增大了模型感受野的同時也獲得了多尺度的信息。
圖4 膨脹卷積核
本文使用不同的膨脹率的膨脹卷積來提取多個尺度下的特征,逐層傳遞多尺度信息,但隨著卷積層的層數(shù)增多,膨脹率的增大,特征逐漸抽象,會減弱部分細節(jié)信息。通過跳躍連接將低層的語義信息與高級的語義信息相融合,使網絡在層數(shù)很少的情況下提取到的特征更加優(yōu)良。其中骨干網絡的具體參數(shù)如表1所示。
表1 Backbone卷積參數(shù)
我們將可重復性視為一項自我監(jiān)督的任務,并對網絡進行訓練,使其可重復性置信度S中局部最大值位置是自然圖像變換的協(xié)變量,如視點或光照變化。設I和I′為同一場景的兩個圖像,并令U∈?H×W×2為它們之間的地面真實性對應,如果I和I′是自然圖像,則可以使用現(xiàn)有的光流或立體匹配算法來估計U,或者如果I是用已知的變換例如通過合成生成的,則可以精確地獲得U。令S和S′分別為圖像I和I′的重復性圖,S′U是根據(jù)U從圖像I′變形的熱圖。遵循S中的所有局部最大值都與S′U中的局部最大值相對應。關鍵思想是最大化S和S′U之間的余弦相似度(以下稱為cosim)。當cosim(S,S′U)最大化時,它們的熱圖(heatmaps)是相同的,并且它們的最大值完全對應。為了防止遮擋等問題影響性能,本文將一幅圖像分為許多小補丁,在小補丁上計算平均余弦相似度。定義重疊的補丁為P={p},包含[1..W]×[1..H]中的所有N×N個補丁,并將損失定義為:
式中:S[p]∈?N2表示從S提取的矢量化(展平)的N×N補丁p,S′U[p]同理。通過使S與S′U保持恒定的值將會保持最小,為了避免這個,我們采用了第二種損失函數(shù),如公式2所示,該函數(shù)試圖使可重復性圖的局部峰值最大化。
最后,所得的可重復性損失由兩個圖像的第一損失和第二損失的加權總和組成,如公式3所示。
為了增強可靠性,我們的網絡不僅會計算可重復性圖S,而且還會聯(lián)合提取密集的局部描述符X并針對每個描述符Xij∈?D預測置信度值Rij∈[0,1],估計其可靠性(即判別力)。目的是讓網絡學會在使描述符具有高置信度或低置信度的盡可能高的區(qū)分度之間進行選擇,在這種情況下,丟失對描述符的影響將很小,例如對于不能被充分區(qū)分的區(qū)域。
描述符匹配問題可以看作是排名優(yōu)化問題,即給定兩個圖像I和I′,在I′中搜索來I的每個描述符作為查詢,并通過增加距離對I′中的所有描述符進行排名。給定一批真實的圖像補丁,它們使用卷積神經網絡來計算其描述符。然后,計算批次中所有補丁描述符之間歐幾里得的距離矩陣。矩陣中的每一行都可以解釋為第一個圖像的查詢補丁與第二個圖像的所有補丁之間的距離,充當數(shù)據(jù)庫文檔。因此,訓練包括最大化針對批次B中每個查詢q并在整個批次中計算平均的AP。本文訓練可靠性的損失函數(shù)如式(4)、式(5)所示。
式中:AP是平均精度,κ∈[0,1]是一個超參數(shù),表示每個補丁的最小預期AP。
本文實驗平臺如下:操作系統(tǒng)為Ubuntu16.04,深度學習框架為pytorch1.4,CPU為Intel i5-7500,內存為16GB,GPU為NVIDIA GeForce 1070,顯存為8G。
本文的模型是在圖像來源于網絡的Oxford and Paris retrieval數(shù)據(jù)集和包含來自德國亞琛老城區(qū)圖像的Aachen Day-Night數(shù)據(jù)集上訓練的。
在HPatches數(shù)據(jù)集上對我們的模型進行驗證,它是此任務中最受歡迎和最大的數(shù)據(jù)集。它包括116個圖像序列,其中每個序列由一個參考圖像和五個目標圖像組成,參考圖像和目標圖像之間的單應性已經過仔細校準。該數(shù)據(jù)集還可以進一步分為57個包含大光照變化的序列和59個大視角變化的序列。
采用Adam優(yōu)化器進行優(yōu)化,其中數(shù)據(jù)批次大小(batch size)為4,學習率為0.001,權重衰減為0.0005,循環(huán)(epoch)為25。
對于特征點提取這種任務,模型需要足夠小、足夠快、能耗足夠低。本文參照平均匹配精度(Mean Matching Accuracy,MMA)對 模 型 進 行 比 較,在Hpatches數(shù)據(jù)集上,以MMA分數(shù)作為評價指標,其中MMA分數(shù)是考慮多個像素錯誤閾值的圖像對中正確匹配的平均百分比。
從表2中可以看出基于DNN的方法的訓練數(shù)據(jù)(約束越小越好),模型大小(越小越好)以及描述符的維度(越小越好)。
表2 基于DNN的訓練數(shù)據(jù),模型大小和描述符的維數(shù)
本文的訓練數(shù)據(jù)雖然由兩種類型的訓練數(shù)據(jù)組成,但是在模型的大小和描述符的維度上取得了很大的優(yōu)勢,模型的權重大小為比較數(shù)據(jù)中最小。模型的權重大小對于網絡的部署起著至關重要的作用,綜合下來,我們的模型在其他基于DNN的方法中取得了很不錯的效果。
為了驗證本算法的性能,將本文的模型與現(xiàn)有技術進行比較,選擇7種流行的基于深度學習方法,即LF-Net[12]、SuperPoint[13]、D2-Net[14]、DELF[15]、R2D2[17]、帶有HesAffNet[23]區(qū)域的HardNet++描述符(HAN+HN++)[24]、帶有RootSIFT描述符的手工制作的Hessian仿射檢測器[25]。圖5展示了所有圖像對中每個閾值的平均分數(shù)。比較方法中不包括單個檢測器或描述符算法,因為它們的組合是多種多樣的,并且很難與上述方法進行公平的比較。
圖5 對HPatches數(shù)據(jù)集圖像對的評估結果
圖5 對比了照明和視點變化的結果,以及在HPatches數(shù)據(jù)集上的整體性能??梢杂^察到,我們的方法在模型大小僅僅只有1 MB大小的情況下明顯優(yōu)于現(xiàn)有的技術,在2~6閾值內總體上的MMA值分別為0.57、0.71、0.78、0.81、0.83,與R2D2相比,分別提升了2.3%、2.4%、1.9%、1.4%、1.1%。但是DELF對于光照變化的表現(xiàn)最佳,可以解釋的是,其使用固定的關鍵點網格,且該圖像子集沒有空間變化。對于R2D2在視點變化的表現(xiàn),我們的網絡也僅此于它的效果。我們的方法明顯優(yōu)于聯(lián)合檢測器和描述符,例如D2-Net。綜合下來,我們的方法在模型大小更低的條件下,取得了不錯的表現(xiàn)。
本文的模型在NVIDIA GeForce 1070 GPU上訓練一個epoch需要花費約50 min,對比R2D2網絡,同樣的硬件條件下,其訓練一個epoch需要花費約80 min,兩者對比更加證明了模型大小對于推理的時間的影響,綜合下來,本文的模型具有較大優(yōu)勢。
在平均匹配精度的結果上,本文的方法在不考慮模型大小的條件下與R2D2的表現(xiàn)接近。隨機抽取了兩張圖片對這樣中算法的檢測結果進行對比,結果如圖6~圖9所示。
圖6 R2D2的提取檢測結果及熱圖
圖9 本文網絡模型的提取檢測結果及熱圖
如圖6~圖9所示,展示了兩種方法提取的特征點的對比,圖6和圖8是R2D2提取得到的結果,圖7和圖9是本文網絡提取的結果。每幅圖的左邊為輸入的圖像以及檢測到的關鍵點,圖中間為提取到的可重復性熱圖,圖的右邊為圖的可靠性熱圖,均為覆蓋在原始圖像上的樣式。其中圖中的交叉點就是特征點,其可重復且可靠??梢钥闯觯琑2D2在圖6與圖8中,在水面和天空中提取了一些特征點,這些特征點對于現(xiàn)實應用是不能匹配的。而對比本文的網絡,得益于網絡能提取更加優(yōu)良的特征,盡管很小,本網絡仍然能夠區(qū)分天空和水面區(qū)域是無法匹配的區(qū)域,大大減少在此類區(qū)域下的特征點,且表現(xiàn)比R2D2算法更加優(yōu)良。
圖7 本文網絡模型的提取檢測結果及熱圖
圖8 R2D2的提取檢測結果及熱圖
為了減輕基于深度學習的圖像局部特征檢測與描述模型參數(shù)大和內存資源消耗大的問題,本文提出了一種更加輕量的局部特征檢測網絡,通過注意力機制模塊以及多層特征融合使網絡在層數(shù)很少的情況下,最大限度的獲得優(yōu)良的特征。下一步計劃是將網絡應用在視覺里程計領域,移植到移動機器人上以構建實時的視覺里程計和SLAM系統(tǒng)。