0. 筆者個人體會
在低紋理區(qū)域,傳統(tǒng)的基于特征點的SfM/SLAM/三維重建算法很容易失敗。因此很多算法會嘗試去提取線特征來提高點特征的魯棒性,典型操作就是LSD。
但在一些帶噪聲的低光照環(huán)境下,LSD很容易失效。而且線特征檢測的難點在于,由于遮擋,線端點的精確定位很難獲得。
它使用深度學習來處理圖像并丟棄不必要的細節(jié),然后使用手工方法來檢測線段。
因此,DeepLSD不僅對光照和噪聲具有更強魯棒性,同時保留了經(jīng)典方法的準確性。整篇文章的推導和實驗非常詳實,重要的是算法已經(jīng)開源!
2. 摘要
線段在我們的人造世界中無處不在,并且越來越多地用于視覺任務中。由于它們提供的空間范圍和結(jié)構(gòu)信息,它們是特征點的補充。
基于圖像梯度的傳統(tǒng)線檢測器非常快速和準確,但是在噪聲圖像和挑戰(zhàn)性條件下缺乏魯棒性。他們有經(jīng)驗的同行更具可重復性,可以處理具有挑戰(zhàn)性的圖像,但代價是精確度較低,偏向線框線。
我們建議將傳統(tǒng)方法和學習方法結(jié)合起來,以獲得兩個世界的最佳效果:一個準確而魯棒的線檢測器,可以在沒有真值線的情況下在野外訓練。
我們的新型線段檢測器DeepLSD使用深度網(wǎng)絡處理圖像,以生成線吸引力場,然后將其轉(zhuǎn)換為替代圖像梯度幅度和角度,再饋入任何現(xiàn)有的手工線檢測器。
此外,我們提出了一個新的優(yōu)化工具,以完善基于吸引力場和消失點的線段。
這種改進大大提高了當前深度探測器的精度。我們展示了我們的方法在低級線檢測度量上的性能,以及在使用多挑戰(zhàn)數(shù)據(jù)集的幾個下游任務上的性能。
3. 算法解讀
作者將深度網(wǎng)絡的魯棒性與手工制作的線特征檢測器的準確性結(jié)合起來。具體來說,有如下四步:
(1) 通過引導LSD生成真實線距離和角度場(DF/AF)。
(2) 訓練深度網(wǎng)絡以預測線吸引場DF/AF,然后將其轉(zhuǎn)換為替代圖像梯度。
(3) 利用手工LSD提取線段。
(4) 基于吸引場DF/AF進行細化。
圖1 方法概述
作者所做主要貢獻如下:
(1) 提出了一種自舉當前檢測器的方法來在任意圖像上創(chuàng)建真實線吸引場。
(2) 引入了一個優(yōu)化過程,可以同時優(yōu)化線段和消失點。這種優(yōu)化可以作為一種獨立的細化來提高任何現(xiàn)有的深度線檢測器的精度。
(3) 在多個需要線特征的下游任務中,通過結(jié)合深度學習方法的魯棒性和手工方法在單個pipeline中的精度,創(chuàng)造了新的記錄。
3.1 線吸引場
最早通過吸引場表示線段的方法是AFM,為圖像的每個像素回歸一個2D向量場,來表示直線上最近點的相對位置。
該方法允許將離散量(線段)表示為適合深度學習的平滑2通道圖像。然而,這種表示方法并不是獲得精確線段的最佳方法。
如圖2所示,比如HAWP那樣直接預測端點的位置需要很大的感受野,以便能夠從遙遠的端點獲取信息。
圖2 吸引場參數(shù)化。(a)對二維向量進行參數(shù)化可能會對小向量模產(chǎn)生噪聲角。(b) 向端點添加偏移量需要長程信息且對噪聲端點不具有魯棒性。作者提出將距離場(c)和線角度場(d)解耦。
而DeepLSD這項工作的巧妙之處在于,作者提出將網(wǎng)絡限制在一個較小的感受野,并使用傳統(tǒng)的啟發(fā)式方法來確定端點。
DeepLSD采用和HAWP類似的吸引場,但沒有額外的兩個指向端點的角度,只保留線距離場(DF)和線角度場(AF)。其中線距離場DF給出當前像素到直線上最近點的距離,線角度場AF返回最近直線的方向:
3.2 真值生成
為了學習線吸引場,需要ground truth。AFM和HAWP都是使用線框數(shù)據(jù)集的真值來監(jiān)督。但DeepLSD的作者探索了一種新的方法,即通過引導先前的線檢測器來獲取真值。
具體來說,就是通過單應性自適應生成真值吸引場。給定單幅輸入圖像I,將其與N個隨機單應矩陣Hi進行wrap,在所有wrap后的圖像Ii中使用LSD檢測直線段,然后將其wrap回到I來得到線集合Li。
下一步是將所有的線聚合在一起,這一部分是個難點。作者的做法是將線條集合Li轉(zhuǎn)換為距離場Di和角度場Ai,并通過取所有圖像中每個像素(u, v)的中值來聚合:
通過取中值,可以去除僅在少數(shù)圖像中檢測到的噪聲,結(jié)果如圖3所示。
圖3 偽GT可視化
3.3 學習線吸引場
為了回歸距離場和角度場,DeepLSD使用了UNet架構(gòu),尺寸為HxW的輸入圖像經(jīng)多個卷積層處理,并通過連續(xù)3次平均池化操作逐步降采樣至8倍。
然后通過另一系列卷積層和雙線性插值將特征放大回原始分辨率。得到的深度特征被分成兩個分支,一個輸出距離場,一個輸出角度場。最后距離場通過反歸一化得到:
其中r是像素中的一個參數(shù),它定義了每條線周圍的區(qū)域。由于手工方法主要需要線段附近的梯度信息,因此DeepLSD只對距離線段小于r個像素的像素進行監(jiān)督。
總損失為距離場和角度場的損失之和:
這里就沒啥可說的了,LD為歸一化距離場之間的L1損失,LA為L2角度損失:
3.4.提取線段
由于LSD是基于圖像梯度的,因此需要將距離場和角度場轉(zhuǎn)換為替代圖像梯度幅度和角度:
AFM和LSD方法的一個重要區(qū)別是梯度方向。對于黑暗與明亮區(qū)域分離的邊緣,LSD跟蹤從暗到亮的梯度方向,而AFM不跟蹤。
如圖4所示,當幾條平行線以暗-亮-暗或亮-暗-亮的模式相鄰出現(xiàn)時,這就變得很重要。
為了更好的精度和尺度不變性,DeepLSD檢測這些雙邊緣,并構(gòu)造角度方向:
圖4 區(qū)分雙邊緣。(a) 亮-暗-亮邊緣和定向角度場的示例。(b) HAWP將其視為一條直線。(c) 為了準確,DeepLSD將其檢測為兩條線。
為了使線特征更加精確,作者還提出了一個優(yōu)化步驟,即利用第二步預測的DF和AF來細化。需要注意的是,這種優(yōu)化方法也可以用來增強任何其他深度探測器的線特征。
優(yōu)化的核心思路是,在3D中平行的線將共享消失點。因此DeepLSD將其作為軟約束融入到優(yōu)化中,有效地降低了自由度。
首先利用多模型擬合算法Progressive-X計算一組與預測線段相關的消失點(VPs)。然后對每條線段獨立進行優(yōu)化,損失函數(shù)是三種不同成本的加權無約束最小二乘最小化:
4. 實驗
作者訓練了DeepLSD的兩個版本,一個在室內(nèi)Wireframe數(shù)據(jù)集,沒有使用GT線,一個室外MegaDepth數(shù)據(jù)集。
MegaDepth數(shù)據(jù)集保留150個場景用于訓練,17個場景用于驗證,每個場景只采集50張圖像。
在實驗細節(jié)上,使用Adam優(yōu)化器和初始學習率為1e3,學習率調(diào)整策略為,當損失函數(shù)到達一定數(shù)值時學習率/10。
硬件條件為,在NVIDIA RTX 2080 GPU上訓練時間12小時。
4.1 直線檢測性能
作者首先在HPatches數(shù)據(jù)集和RDNIM數(shù)據(jù)集上評估直線檢測性能,其中HPatches數(shù)據(jù)集具有不同的光照和視點變化,RDNIM數(shù)據(jù)集具有挑戰(zhàn)性的晝夜變化相關的圖像對。
評價指標為重復性、定位誤差以及單應估計分數(shù)。重復性(Rep)衡量匹配誤差在3個像素以下的直線的比例,定位誤差(LE)返回50個最準確匹配的平均距離。表1和圖5所示是與經(jīng)典線特征檢測器的對比結(jié)果。
表1 在HPatches和RDNIM數(shù)據(jù)集上的直線檢測評估
圖5 線段檢測示例
從結(jié)果來看,以TPLSD為首的學習方法具有較好的可重復性,但存在較低的定位誤差和不準確的單應矩陣估計。
手工方法和DeepLSD由于不直接對端點進行回歸,而是利用非常低的細節(jié)逐步增長線段,因此精度更高。
當變化最具挑戰(zhàn)性時,DeepLSD比LSD表現(xiàn)出最好的改善,即在晝夜變化強烈的RDNIM上。
可以顯著提高定位誤差和單應性估計分數(shù)。LSDNet由于通過將圖像縮放到固定的低分辨率而失去了準確性。
總體而言,DeepLSD在手工方法和學習方法之間提供了最佳的權衡,并且在單應性估計的下游任務中始終排名第一。
4.2 重建及定位
這項工作除了評估自身的線特征生成質(zhì)量外,還進行了三維重建對比。作者利用Line3D++獲取一組已知姿態(tài)的圖像和相關的2D線段,并輸出線條的三維重建。
作者在Hypersim數(shù)據(jù)集的前4個場景上將DeepLSD與幾個基線進行比較。其中召回R為距離網(wǎng)格5 mm以內(nèi)的所有線段的長度,單位為米,越高意味著許多線條被重建。精度P是距離網(wǎng)格5毫米以內(nèi)的預測線的百分比,越高表明大部分預測的直線在真實的三維表面上。
結(jié)果如表2所示,DeepLSD總體上獲得了最好的召回和精度。TP-LSD雖然在召回上排名第一,但是能夠恢復的直線很少,其平均精度比DeepLSD小71 %。
值得注意的是,DeepLSD比LSD能夠重建更多的直線,且精度更高。
表2 線三維重建對比結(jié)果
作者在7Scenes數(shù)據(jù)集上進行了定位實驗,估計位姿精度,其中Stairs場景對于特征點的定位非常具有挑戰(zhàn)性。
圖6表明,DeepLSD在這個具有挑戰(zhàn)性的數(shù)據(jù)集上獲得了最好的性能。
與僅使用點相比,可以突出線特征帶來的性能的大幅提升。在室內(nèi)環(huán)境中,線特征提取并定位的性能良好,即使在低紋理場景中也可以匹配。
圖6 7Scenes數(shù)據(jù)集樓梯的視覺定位結(jié)果
4.3 線優(yōu)化的影響
作者還研究了優(yōu)化步驟的影響。對于每種方法,作者將原始線條與優(yōu)化后的線條和VP進行比較。
表3展示了線檢測器在Wireframe測試集的462張圖像上的檢測結(jié)果。結(jié)果顯示,優(yōu)化可以顯著改善不精確方法的定位誤差和單應性得分,并顯著提高評價直線精度的所有指標。
特別是對于HAWP和TP-LSD,兩者的定位誤差都下降了32 %,單應性得分提高了27 %和39 %。
注意,優(yōu)化并沒有給DeepLSD帶來多大提升,這是因為它的原始預測線已經(jīng)是亞像素精確的,并且優(yōu)化受到DF和AF分辨率的限制。
表3 Wireframe數(shù)據(jù)集上的線優(yōu)化
4.4 消融研究
作者在HPatches數(shù)據(jù)集上用低級別檢測器指標驗證了設計選擇,將DeepLSD與單邊相同模型進行比較。表4展示了各組成部分的重要性。
值得注意的是,在DeepLSD上重新訓練HAWP會導致較差的結(jié)果,因為與線框線相比,線條的數(shù)量更多,而且一般的直線往往有噪聲的端點,因此預測到兩個端點的角度也是有噪聲的。
表4 HPatches數(shù)據(jù)集上的消融實驗
5. 結(jié)論
作者提出了一種混合線段檢測器,結(jié)合了深度學習的魯棒性和手工檢測器的準確性,并使用學習的替代圖像梯度作為中間表示。還提出了一種可以應用于現(xiàn)有深度檢測器的優(yōu)化方法,彌補了深度檢測器和手工檢測器之間的線局部化的差距。
審核編輯:劉清
-
檢測器
+關注
關注
1文章
847瀏覽量
47556 -
SLAM
+關注
關注
23文章
405瀏覽量
31710 -
AFM
+關注
關注
0文章
58瀏覽量
20143
原文標題:DeepLSD:基于深度圖像梯度的線段檢測和細化
文章出處:【微信號:GiantPandaCV,微信公眾號:GiantPandaCV】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論