ICCV2019框線分析模型End-to-End Wireframe Parsing論文解讀

1. 文章背景:

    2018年的CVPR會議上,來自上海科技大學信息學院的團隊提出了《Learning to Parse Wireframes in Images of Man-Made Environments》論文來進行現實場景中圖片框線結構的檢測分析研究,與此同時,他們貢獻出了一個帶標註的開源的數據集wireframe。本文正是基於該數據集進行的框線分析問題研究。這篇論文旨在爲業界的框線分析任務提供一個baseline和一套合理的評估指標。該文章被ICCV2019錄入。

2. 作者相關:

    文章作者來自加州大學伯克利分校。

3. 原文鏈接

  • 論文:https://arxiv.org/abs/1905.03246

  • 源碼:https://github.com/zhou13/lcnn

4. 解決問題:

    現有框線分析方法的問題:

  • 結構複雜,pipeline中存在多個階段相互獨立,無法進行端到端訓練;

  • 對於框線結構複雜的圖片檢測結果差。

5. 改進措施:

    提出L-CNN:單一結構的端到端可訓練模型

6. 網絡架構:

    如Fig2所示,整個模型分爲4個模塊:

  • 主幹網絡(backbone):用於特徵提取,將圖片作爲輸入併爲後續的模塊提供了共享卷積特徵圖;

  • 連接點預測模塊(junction proposal module),輸出候選連接點;

  • 線段採樣模塊(line sampling module),從連接點預測模塊輸出的連接點預測出線段;

  • 線段校正模塊(line verification module),分類出預測的線段。

 

7. 實驗成績

 

8. 簡評:

    模型簡潔高效,是當前框線分析領域可利用的比較好的解決方案,就實現效果來說,我在線下使用wireframe訓練的模型效果與作者提供的展示基本一致。同時遷移到其他領域的魯棒性也有一定的保證。但是,該模型對於稍有彎曲的結果檢測較差,後續可以通過改進結構進行調整。

 

 

 

譯文:

端到端框線分析

摘要

    我們提出了一種簡單有效的算法來檢測圖片中的框線。對比先前方法預測中間結果熱圖,然後用啓發式算法提取線段,我們的方法是端到端可訓練的並能夠直接輸出向量化的框線,包含語義信息和幾何顯著的點和線。爲了更好的理解輸出結果的質量,我們提出了一個新的針對框線的評估指標,該指標對重疊線數量和不正確的連接線進行了懲罰。我們進行了大量的實驗來證明我們的方法比之前的state-of-art模型和線提取算法更加優秀。我們希望我們的簡單方法能夠成爲未來框線分析研究的baseline。

    代碼鏈接:https://github.com/zhou13/lcnn

1. Introduction

    近來在目標識別研究的進步和大數據集的出現讓提取和利用高維幾何特徵或基於圖片的3D全局結構重建都成爲了可能。不同於使用局部特徵的傳統3D重構體系如從動作重構的算法SfM、從視覺重構的算法SLAM,高維幾何特徵提供了更加精準和魯棒的場景全局信息。這提起了人們對提取高維結構如線、連接點、位置、平面和空間佈局的興趣。

    在所有的高維幾何特徵中,直線和他們的連接點(也稱爲框線)是能夠被場景3D特徵利用的最基礎的幾何元素。最近,很多像【13】一樣的工作通過提供一個開源數據集、一個可學習的框架和一組評估指標來鼓勵人們對於框線分析的研究。然而,現有的框線分析體系錯綜複雜且不能適應複雜場景中複雜連線的情況。本文的目的是提出一種新的、簡潔的解決方案來應對以上挑戰。

    現存的方法把框線分析問題分成兩個階段。首先將輸入圖片送入卷積網絡生成像素級別的連接點和線段熱圖。然後,使用啓發式方法來搜索出熱圖的位置、向量化線段和線段連接點。這些方法比較直觀,並廣泛應用於現在的研究中,但是這些方法的向量化方法通常非常複雜並依賴一組啓發式算法,有時會導致較差的結果。受到【4,11,8】研究的啓發(端到端流程比階段式的方法更優),我們假設使用端到端訓練體系來處理框線分析問題也能提升當前的state-of-art,因此,在這篇文章中我們定位了以下問題:如何爲框線的向量化表示學習一個端到端的可訓練模型?

    最後,我們提出了一個新的網絡:L-CNN,一種使用單個統一的神經網絡的端到端框線分析模型。網絡可以被分爲四個部分:

    1)backbone:提取圖片特徵;

    2)連接點預測模塊;

    3)候選線段生成模塊;

    4)線段校正模塊連接。

    對於一個RGB輸入圖片,網絡無需利用啓發式算法而直接生成向量表示。我們的體系與其他算法完全不同且可以通過反向傳播進行端到端的訓練,這使得我們可以集中探索state-of-art的網絡模型架構來處理該場景問題。

    除此之外,現有的框線分析的評估指標都將線段視作一組獨立像素的集合,沒有將線段連接的正確性考慮在內(4.3節相似描述)。爲了評估一個框線結構的正確性,我們提出了一個新的評估指標。新評估指標使用了線段匹配來計算框線向量化後的精度和召回率曲線。我們在wireframe數據集上進行了大量的實驗並仔細的研究了消除某個模塊的不同系統設計的差異。

2. Related work

Line Detection:線段檢測是計算機視覺中被廣泛研究的問題。目的是從一張圖片中產出向量化的線段表示。傳統的方法如【29,31】基於局部邊緣特徵檢測線段。最近【32】結合了深度學習特徵和基於【31】提出的線段向量方法。不同於框線表示,傳統的線段向量化算法不會提供連接點的信息以及這些連接點與線段的關係。這限制了在場景分析理解中的應用。

Wireframe Parsing:【13】提出了框線分析任務。作者訓練兩個單獨的神經網絡來預測一張圖片中的連接點和線段熱圖。然後,使用一個啓發式的框線融合算法來將這兩個預測結果合併產生最終的向量化輸出。儘管這種方法直接切能夠產生可解釋的結果,但是這種兩階段的過程給端到端訓練帶來困難。相反,我們的框架基於一個單獨的端到端可訓練網絡,直接生成框線的向量表示結果。

Instance-level Recognition:在這個技術上,我們的方法受到實例分割框架如的Fast R-CNN 【8】 Faster R-CNN 【24】, CornerNet【17】, Extremenet 【34】等的啓發。我們的pipeline和LoI pooling都在概念上與RoI pooling相似。兩個方法都是先生成一組候選結果然後提取特徵進行分類。與【24,8】中候選區域通過滑動窗口的方式生成不同的是,我們的候選區域通過連接高置信度連接點生成。在這個場景中,候選結果生成過程和【17,34】相似,不同的是如何辨別真實線段和假負樣本。他們使用了點特徵嵌入【17】或幾個高置信度點的幾何中心【34】,而我們的做法是提取特徵然後送入小的神經網絡。

3. Methods

3.1 Data Representation

    我們對於框線的表示是基於圖論中的標註方式。也可以被看作【13】中框線定義的簡單版本。W=(V, E)代表一張圖片的框線,其中V代表連接點集合的索引,E⊆V×V 是線段的集合,線段用V中的連接點對來表示,對每個i(i∈V),我們使用pi ∈ R2來表示來代表圖片空間中的連接點對。

3.2 Overall Network Architecture

    Fig2描述了L-CNN的架構,L-CNN包含了四個模塊:

    1)一個用來進行特徵提取的主幹網絡(3.3節)將一個圖片作爲輸入併爲後續的模塊提供了共享卷積特徵圖;

    2)連接點預測模塊(3.4節),輸出候選連接點;

   3)線段採樣模塊(3.5節),從連接點預測模塊輸出的連接點預測出線段;

    4)線段校正模塊(3.6節),分類出預測的線段。

    L-CNN的輸出是連接點的座標和那些連接點之間的連線矩陣。我們的方法體系完全可以使用隨機梯度下降來進行端到端訓練。

3.3 Backbone Network

    主幹網絡的作用爲後續的模塊提供有意義的語義特徵。我們選擇Stacked Hourglass Networks(SHN)【22】作爲我們的主幹網絡因爲它準確高效。輸入圖片被放縮到正方形。SHN首先通過兩個2通道的卷積層來對輸入圖片進行下采樣。然後,使用多個U-Net【25】模塊的輸出對學習到的特徵進行精修。整個網絡的損失就是這些模塊的損失之和。

3.4 Junction Proposal  Module

Junction Prediction:我們使用了一個簡單版本的【13】在框線中估計候選連接點的區域。一個W*H的圖片首先被劃分成Wb*Hb個區域。對於每個區域,網絡預測該區域是否存在一個連接點,如果存在,網絡繼續預測連接點在該區域的相對位置。在數學上,網絡輸出一個連接點似然概率特徵圖J和一個偏移特徵圖O。對每個單元b,有:

    其中,b代表單元格b的中心位置,p代表該區域矩陣V的一個頂點的位置。

爲了預測J和O,我們設計了一個包含兩個1*1卷積層的網絡來將特徵圖轉化爲J和O。我們將預測J視作一個分類問題並使用平均的二分類交差熵損失作爲損失函數。我們使用L2迴歸來預測偏移量特徵圖O。隨着偏移量O(b)的範圍在[-1/2, 1/2) ×[-1/2, 1/2),我們在頭網絡的輸出後面追加一個帶-0.5的偏移量的sigmoid激活函數用來歸一化輸出。O的損失是整個單元格的平均,包含每個輸入圖片的真實連接點。

Non-Maximum Suppression:在實例級別的識別任務中,NMS算法用來移除多餘的預測。我們使用相同的機制來移除正確預測周圍的不確定分數圖,以此校正預測並得到J'(b):

    其中,N(b)代表b附近的8個單元格。這裏我們抑制連接點特徵圖中的非局部極大的像素值。這種NMS算法可以使用一個max-pooling層來實現。連接點前向網絡的最終輸出是J'中置信度最高的K個連接點位置:

3.5 Line Sampling Module

    給出一個從連接點候選模塊得出的包含K個最佳候選連接點的列表,線段採樣模塊的目的是在訓練階段生成一個線段列表,這樣線段校正模塊就可以進行線段預測的學習。其中,pj1^和pj2^代表第j個候選線段的端點座標。在這個任務中,正負樣本及其不平衡,我們通過仔細設計採樣機制來定位這個問題,下面對該機制進行描述:

Static Line Sampler:對於每張圖片,靜態線段採樣直接從真實標註中提取出Ns+個正樣本和Ns-個負樣本。我們稱之爲靜態樣本因爲他們與預測的候選連接點無關。正線段樣本全部由真實標籤生成,標記爲S+,帶有真實標註的連接點座標。負線段樣本的總量是O(|V|^2)個,相比正線段樣本的O(|E|)個的數量十分巨大。爲了緩解這個問題,我們對負線段樣本S-進行採樣,一組負線段樣本的集合可能難以分類,我們使用以下的啓發式算法來計算S-:首先我們將所有的真實線段映射到一個64*64的低分辨率二值圖上。然後,對於每個可能的由一對兒連接點構成而實際上卻不是真實線段的連接,我們定義它的難度分數爲該線段的二值圖上的平均像素密度。對每張圖片,S-被設置爲具有最高hard分數的2000個線段。

Dynamic Line Sampler:與靜態線段採樣器相反的,動態線段採樣器使用來自連接點前向模塊預測的結果來採樣線段。採樣器首先將所有的預測連接點匹配到真實連接點上。讓mi爲與第i個候選連接點的最優匹配的真實連接點。如果pi^和pmi之間的l2距離小於閾值η,我們認爲候選連接點pi^完成了匹配。對每個候選線段(pi1^, pi2^) (i1, i2 ∈ {1,2,...,K}, i1 != i2),我們根據如下準則將它放入D+,D-和D*:

    如果pi1^和pi2^都被匹配了,且(mi1, mi2) ∈ E,我們添加該條線段到正樣本集合D+中;

    如果pi1^和pi2^都被匹配了,且(mi1, mi2) ∈ S-,我們添加該線段到hard負向樣本集合D-中;

    隨機樣本集合D*包含所有預測出的候選連接點,不管匹配結果是什麼。

    最後,我們在正樣本集合中隨機選擇ND+條線段,在hard負樣本集合中隨機選取ND−條線段,在隨機選段集合中選取ND*條,將這些合併作爲動態線段採樣的樣本。

    一方面,當動態採樣器中正確的正樣本數量很少時,靜態線段採樣器有益於訓練開始時的冷啓動。它也爲動態採樣器補充了正樣本和hard負樣本來幫助聯合訓練過程。在另一個方面,動態線段採樣器通過調節線段端點爲預測連接點的位置來提升線段檢測的性能。

3.6 Line Verificaiton Network

    線段修正模塊接收到一個候選線段的列表,,同時也接收主幹網絡中對圖片提取到的特徵圖,並預測是否每個線段是該其場景下的框線。在訓練階段,L由線段採樣模塊訓練得出,在評估階段,L是每個預測連接點對兒的集合。

    對每個候選線段,我們將兩個端點的座標送入LoI(line of interest)池化層,並返回一個修正長度的特徵向量。然後,我們將合併後的特徵向量輸入到一個由兩個全連接層構成的網絡並取log值返回。線段的損失函數是sigmoid二元交叉熵損失,loss計算單元是該log值和該線段的真實標籤,可以是正樣本或負樣本。爲了保持正負樣本之間的損失平衡,修正網絡中每張圖片的損失是兩個互相獨立的損失的和,分別是正樣本線段和負樣本線段的平均。

LoI Pooling:爲了檢查圖片中是否存在線段,我們首先將線段轉化爲一個特徵向量。受到目標檢測中RoIPool和RoIALign層的啓發【9,8,24,11】,我們提出LoI pooling層來提取線段特徵,同時它可以向主幹網絡反向傳播梯度。

    每個LoI被定義成它的兩個端點的座標,如。LoI池化層首先使用線形方法計算Np空間中的線段中間點的座標:

    然後,在主幹網絡的特徵圖上使用線形方法計算這些Np點的特徵值來避免人工量化【4,14,6,11】。結果特徵向量就有了一個C×Np的空間擴展,其中C是主幹網絡輸出的特徵圖的通道維數。在這之後,LoI池化層通過一個一維最大池化層減少特徵向量的維數。結果特徵向量的形狀是C×[Np/s],其中s爲最大池化層的滑動步長。該結果向量隨後被拍平併成爲LoI池化層的輸出。

4. Experiments

4.1 Implementation Details

    我們使用了SHN【22】作爲我們的主幹網絡。對於一張圖片,我們首先將其輸入到一個7*7,滑動步長爲2的卷積,三個64通道的殘差單元,並追加步長爲2的最大池化層的網絡中。然後將這個中間特徵輸入到兩個SHN模塊。在每個模塊中,特徵圖被4個步長爲2的殘差單元下采樣,然後使用最近鄰插值上採樣。每個殘差單元的輸入通道和輸出通道的維數都是256。J和O的網絡頭包含3*3的卷積層,以此減少通道數到128,激活函數是Relu,然後接上1*1的卷積層來匹配輸出維度。

    我們在將特徵圖送入線段校正模塊之前先使用一個1*1的卷積核將特徵維度從256減少到128。對於LoIPool層,我們設置Np=32個點,作爲一個線段的特徵點。結果每個線段輸出128*32的特徵。在這之後,我們應用一個一維的步長爲4的最大池化層來將線段特徵的空間維度從32減少到8。然後,線段校正模塊將拍平的特徵向量送入兩個帶有Relu的全連接層,其中間層有1024個節點。

    所有的實驗訓都在1080Ti上完成,學習率4e-4,decay設置爲1e-4。batch size設置爲6來最大化顯存利用率。10個epoch進行一次學習率縮減10倍。第16個epoch時我們停止了訓練,因爲驗證loss不再降低了。整個訓練時常爲8小時,所有的訓練圖片被放縮爲512*512,J、O的單元格爲Hb*Wb=128*128。連接點前向傳播網絡輸出的最優連接點個數K=300。對每個線段採樣模塊,設置NS+=300,Ns-=40,ND+=300,ND-=80,ND*=600。多任務學習的損失權重分別設置爲J爲8,O爲0.25,線段校正模塊爲1。權重如此調整保證這幾個loss的大小在一個數量級上。

4.2 Datasets

    所有的實驗都是使用wireframe數據集【13】進行的。包含5462個人工構造的室內室外環境圖片,我們使用5000個作爲訓練集,462個作爲測試集。wireframe的標註包括連接點V和連接點的連接線段E。

4.3 Evaluation Metric

Precision and Recall of Line Heat Maps

Junction mAP

Structural AP

4.4 Ablation  Study

    在這一節中,我們進行了一些列的消除實驗來測試我們提出的端到端線框分析算法。使用本文提出的structural average precision 作爲本節的評估指標,實驗結果在Tab1中展示。

mi

4.5 Comparision with Other Methods

4.6. Visualization

 

 

5. Conclution and Future Work

    在本文中,我們提出了一個端到端可訓練的神經網絡來提取給定圖片中的向量化框線。我們相信我們簡潔的方法能夠成爲該領域的可靠baseline。除此之外,我們的方法能夠被輕易擴展並創造以端到端學習更加複雜的幾何元素如彎曲文本,平面,曲面以及他們的關係。我們也相信這樣的幾何特徵能夠提高現有人工場景中獲得高維幾何特徵模型的準確性和健壯性。

References

 

提交錯誤、交流學習請聯繫郵箱:[email protected][email protected]

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章