論文地址:https://arxiv.org/abs/1904.08889
代碼:https://github.com/HuguesTHOMAS/KPConv
摘要
我們提出了核點卷積(KPConv),一種新的點卷積設計,即在沒有任何中間表示的點雲上運行。KPConv的卷積權值由核點在歐氏空間被定位,並應用於與核點接近的輸入點。使用任意數量核點的能力使KP-Conv比固定網格更靈活。
此外,這些位置在空間上是連續的,可以通過網絡學習。因此,KPConv可以擴展為可變形的卷積,從而使核點學會適應於局部幾何。
由於采用了有規律的子抽樣方法(下采樣),KPConv對不同的密度也是高效和穩健的。
無論他們對復雜任務使用可變形的KPConv,還是對簡單任務使用剛性KPConv,我們的網絡在幾個數據集上都比先進的分類和分割方法表現得更好。
我們還提供消融研究和可視化,以提供對KPConv學到的知識的理解,並驗證可變形KPConv的描述能力。
一、引言
深度學習的出現以離散卷積為基礎,促進了現代計算機視覺的發展。該操作將局部鄰域的數據合並到一個2D網格中。由於有了這種規則結構,在現代硬件上可以高效地進行計算,但是如果沒有了這種規則結構,卷積運算就沒有被正確地定義,其效率與在2D網格上一樣。
隨着3D掃描技術的興起,許多依賴這種不規則數據的應用也隨之發展起來。例如,三維點雲分割或三維實時定位和映射依賴於非網格結構化數據:點雲。點雲是三維(或高維)空間中的一組點。在許多應用中,點與相應的特征相結合,比如顏色。在本工作中,我們始終將點雲視為兩個元素:點P∈RN * 3和特征F∈RN * D。這樣的點雲是一種稀疏的結構,具有無序的特性,這使得它與網格非常不同。然而,它與網格共享一個共同的屬性,這對於卷積的定義至關重要:它是空間局部化的。在網格中,特征通過其在矩陣中的索引進行定位,而在點雲中,特征通過其對應的點坐標進行定位。因此,將點視為結構要素,將特征視為真實數據。
我們提出了處理這些數據的各種方法,這些方法可以分為不同的類別,我們將在相關的工作部分介紹。有幾種方法屬於基於網格的類別,其原理是將稀疏的三維數據投影到規則結構上,這樣更容易定義卷積運算[23,28,33)。其他方法使用多層感知器(MLP)直接處理點雲,遵循[47,25]提出的思想。
最近,有人嘗試設計一種直接對點進行操作的卷積[2,44,19,14。13]。這些方法利用點雲的空間位置特性,用空間核來定義點卷積。他們的共同想法是卷積應該定義一組在點雲中局部應用的可定制的空間濾波器。
本文介紹了一種新的點卷積算子——核點卷積(KPConv)。KPConv也由一組局部3D過濾器組成,但是如相關工作所示,它克服了前面的點卷積限制。KPConv的靈感來自於基於圖像的卷積,但是我們使用一組核點來定義應用每個核權重的區域,如圖1所示。因此核權重由點來表示,就像輸入特征一樣,它們的影響區域由一個相關函數來定義。核點的數量沒有限制,這使得我們的設計非常靈活。盡管詞匯相似,但我們的工作與[31]不同,[31]的靈感來自於點雲配准技術,它使用沒有任何權重的核點來學習局部幾何模式。
此外,我們提出了一個可變形版本的卷積[7],它包括學習應用於核點的局部移位(見圖3)。我們的網絡在每個卷積位置產生不同的移位,這意味着它可以根據輸入點雲的不同區域調整其核的形狀。我們的可變形卷積的設計方式與它的對應圖像不同。由於數據的性質不同,需要進行正則化來幫助變形的內核擬合點雲的幾何形狀和避免空白。我們使用有效的感受域(ERF)[21]和消融研究比較剛性KPConv和可變形KPConv。
與[40,2,44,19]相反,我們更喜歡半徑鄰域而不是k-最近鄰(KNN)。如 [13]所示, KNN在非均勻采樣條件下不健壯。通過結合半徑鄰域和輸入點雲[37]的常規下采樣,確保了卷積對不同密度的魯棒性。與歸一化策略[13,14]相比,我們的方法也降低了卷積的計算代價。
在我們的實驗部分中,我們展示了KPConv可以用於構建非常深的分類和分割架構,同時保持快速的訓練和推理時間。
總的來說,剛性的和可變形的KPConv性能都很好,在幾個數據集上優於競爭算法。我們發現,嚴格的KPConv在更簡單的任務上實現了更好的性能,如對象分類,或小的分割數據集。可變形的KPConv在更困難的任務中蓬勃發展,比如提供許多對象實例和更大的多樣性的大型分割數據集。
我們還表明,可變形的KPConv對於更少的內核點更健壯,這意味着更強大的描述能力。
最后,KPConv ERF的定性研究表明,可變形內核改善了網絡適應場景對象的幾何形狀的能力。
二、相關工作
在本節中,我們將簡要回顧以前分析點雲的深度學習方法,特別關注那些更接近於我們定義的點卷積的方法。
投影網絡
一些方法將點雲映射到一個中間網格結構。基於圖像的網絡通常是多視圖的,即使用一組由點雲在不同視點上渲染的2D圖像[34,4,17]。在場景分割中,這些方法會受到表面遮擋和密度變化的影響。[35]沒有選擇全局投影視點,而是提出將局部鄰域投影到局部切平面上,然后用二維卷積處理它們。然而,這種方法嚴重依賴切線估計。
在基於體素的方法中,點被投影到歐幾里得空間的三維網格上[23,29,3]。使用稀疏結構如八叉樹或哈希映射允許更大的網格和增強的性能[28,9],但這些網絡仍然缺乏靈活性,因為它們的內核被限制在使用3^3 = 27或5^3 = 125體素。使用泛面體晶格代替歐幾里得網格將核簡化為15晶格[33],但這個數字仍然是有約束的,而KPConv允許任意數量的內核點。此外,避免使用中間結構,可以使實例掩碼檢測器或生成模型等更復雜的架構在未來的工作中更加直觀。
圖卷積網絡
圖卷積運算符的定義有不同的方法。圖上的卷積可以計算為其頻譜表示的乘法[8,46],或者它可以聚焦於圖所表示的表面[22,5,32,24]。盡管點卷積和最近的圖卷積有相似之處[38,42],但后者的濾波器學習的是邊緣關系而不是點相對位置。換句話說,圖卷積結合了局部曲面patch上的特征,同時不受這些patch在歐幾里得空間中的變形影響。相比之下, KPConv根據3D幾何形狀組合局部特征,從而捕獲表面的變形。
逐點多層感知器網絡
PointNet[25]被認為是點雲深度學習的一個里程碑。這個網絡在每個點上分別使用一個共享的MLP,然后是一個全局最大池化。共享的MLP作為一組學習的空間編碼,輸入點雲的全局簽名被計算為對每個編碼的所有點的最大響應。網絡的性能是有限的,因為它沒有考慮數據中的局部空間關系。在PointNet之后,一些層次結構被開發出來,用MLPs聚合局部鄰域信息[26,18,20]。
如[40,19,13]所示,由於MLP能夠近似任何連續函數,所以點卷積的核可以用MLP實現。然而,使用這樣的表示會使卷積運算符更加復雜,網絡的收斂性也更困難。在我們的例子中,我們定義一個顯式卷積核,像圖像卷積,其權值是直接學習的,沒有中間表示的MLP。我們的設計還提供了一個直接的可變形版本,因為偏移量可以直接應用到內核點。
點卷積網絡
一些最近的工作也為點定義了顯式卷積內核,但KPConv以獨特的設計脫穎而出。
Pointwise CNN[14]用體素容器定位核權值,因此缺乏網格網絡那樣的靈活性。此外,它們的歸一化策略給網絡帶來了不必要的計算負擔,而KPConv子采樣策略同時減輕了不同密度和計算量。
SpiderCNN[44]將其核定義為多項式函數族,對每個鄰居應用不同權值的。應用於一個鄰居的權重依賴於鄰居的距離順序,這使得過濾器在空間上不一致。相比之下,KPConv權重位於空間,其結果對點順序不變。
Flex-convolution[10]使用線性函數來建模它的核,這限制了它的代表性。它還使用了KNN,如上所述這是對密度變化不魯棒的。
PCNN[2]設計是最接近KPConv的。它的定義也使用點來攜帶核權重和一個相關函數。然而,這個設計是不可擴展的,因為它沒有使用任何形式的鄰域,使得卷積計算在點的數量上是二次的。此外,它使用高斯相關,而KPConv使用一個更簡單的線性相關,這有助於梯度反向傳播時,學習變形[7]。
我們在實驗部分顯示KPConv網絡優於所有可比網絡。此外,據我們所知,以前的作品中沒有一個實驗過空間可變形點卷積。
三、核點卷積
3.1由點定義的核函數
與之前的工作一樣,KPConv可以用點卷積的一般定義來表述(Eq. 1),靈感來自於圖像卷積。為了清晰起見,我們將P∈RN * 3的點和F∈RN * D的對應特征稱為xi和fi。F與核g在點x∈R3處的一般點卷積定義為:
3.2剛性的或可變形的核
核點的位置對卷積運算至關重要。 特別是剛性核需要被合理安排以提高效率率。正如我們所說,KPConv的優點之一是它的靈活性,我們需要為任何k找到一個規律的配置。
如何選擇內核點的位置:
我們選擇通過解決一個優化問題來放置內核點,通過解決優化問題來放置內核點,其中每個點對彼此施加排斥力。 這些點被約束以吸引力停留在球體中,並且其中之一被限制在中心位置。我們詳細說明這一過程,並在補充材料中顯示一些規則的細節。
(以上都是剛性KPConv,以下是可變形KPConv)
有了正確初始化的內核,KPConv的剛性版本是非常有效的,特別是當給定一個足夠大的K來覆蓋g的球形域時。然而,通過學習核點位置,可以增加它的容量。核函數g對於xk確實是可微的,這意味着它們是可學習的參數。我們可以考慮為每個卷積層學習一個全局的{xk}集合,但它並不會比固定的、有規律的部署帶來更多的描寫力量。相反,網絡對每一個卷積定位x∈R3產生K個平移△(x),像[7]一樣,並定義可變形。
不幸的是,這種對圖像的可變形卷積的直接采用並不適合點雲。在實踐中,內核點最終會被拉離輸入點。這些核點被網絡丟失了,因為當沒有鄰居在其影響范圍內,它們的移位△k(x)梯度為零。關於這些“丟失的”內核點的更多細節在補充部分中給出。
在使用Deformable Kernel的時候,需要在損失函數上加上正則項,用來約束kernel point和neighbor point不能離太遠、kernel points之間不能太近,否則效果奇差。
為了解決這一問題,我們提出:
- “擬合”正則化損失:它懲罰了核點與其最近鄰之間的距離。此外,在所有內核點的影響區域重疊時,
- “排斥”正則化損失:當所有成對的kernel points之間的影響區域重疊時,添加該損失使它們不會一起崩潰。
總的來說,對於所有的卷積位置x∈R3,正則化損失為:
3.3核點網絡層
本節說明我們如何有效地將KPConv理論付諸實踐。為了了解更多細節,我們使用Tensorflow庫發布了代碼。
子抽樣以處理不同密度 如引言所述,我們使用子采樣策略來控制每一層輸入點的密度。為了保證點采樣位置的空間一致性,我們傾向於網格子采樣。因此,在所有非空網格單元中,選擇每一層承載特征位置的支撐點作為原始輸入點的重心。
池化層 為了創建具有多層尺度的架構,我們需要逐步減少點的數量。因為我們已經有了一個網格子采樣,所以我們在每個池化層將單元大小增加一倍,以及其他相關參數,逐漸地增加KPConv的接受域。在每個新位置匯集的特性可以通過max-pooling或KPConv獲得。我們在我們的架構中使用后者,並將其稱為“stride KPConv”,類似於image strided convolution。
KPConv層 我們的卷積層以點P∈RN * 3為輸入,其對應的特征F∈RN * Din,鄰域索引矩陣n∈[1, N]N '×nmax。N '是計算鄰域的位置數,可以不同於N(在“strided”KPConv的情況下)。鄰域矩陣被迫具有最大鄰域nmax的大小。 由於大多數鄰域包含少於nmax個鄰域,因此矩陣n包含未使用的元素。 我們稱它們為shadow neighbors,在卷積計算中將其忽略。
3.4核點網絡架構
結合類比與成功的圖像網絡和經驗研究,我們設計了兩種用於分類和分割任務的網絡架構。在補充材料中提供了詳細描述這兩個體系結構的圖表。
KP-CNN 是一個5層分類卷積網絡。每一層包含兩個卷積塊,除了第一層外,第一個被strided。我們的卷積塊設計得像bottleneck ResNet blocks [12],用KPConv替換圖像卷積、批處理標准化和leaky ReLu activation。在最后一層之后,特征通過全局平均池進行聚合,並由完全連接的層和softmax層進行處理,就像在圖像CNN中一樣。對於可變形KPConv的結果,我們僅在最后5個KPConv塊中使用可變形內核(請參閱補充材料中的體系結構詳細信息)。
KP-FCNN 是一個用於分割的全卷積網絡。編碼器部分與KP-CNN相同,解碼器部分使用nearest upsampling 來得到最終的逐點特征。Skip links用於在編碼器和解碼器的中間層之間傳遞特性。將這些特征連接到上采樣的特征上,進行一元卷積處理,相當於在圖像上進行1×1的卷積,或者在PointNet上進行一個共享的MLP。可以采用與the strided KPConv相同的方式,用KPConv代替最近的上采樣操作,但是不會導致性能的顯着提高。
四、實驗
4.1三維形狀分類和分割
數據 首先,我們在兩個公共模型數據集上評估我們的網絡。我們使用ModelNet40[43]進行分類,使用ShapenetPart[45]進行部件分割。ModelNet40包含來自40個類別的12311個網格化CAD模型。ShapenetPart是一個收集16,681點雲從16個類別,每個類別有2-6個部件標簽。為了進行基准測試,我們使用[26]提供的數據。在這兩種情況下,我們都遵循標准的訓練/測試分割,重新縮放物體以將其放入一個單位球體中(並在接下來的實驗中將單位視為米)。我們忽略了法線,因為它們只能用於人工數據。
分類任務 我們設置第一個子采樣網格大小為dl0 = 2cm。我們沒有添加任何功能作為輸入;每個輸入點被賦予一個等於1的常量特征,而不是可以認為為0的空白空間。這個常數特征編碼了輸入點的幾何形狀。與[2]一樣,我們的增強過程包括縮放、翻轉和擾動點。在這個設置中,Nvidia Titan Xp每秒可處理2.9批16雲。由於我們的子采樣策略,輸入點雲並不都有相同數量的點,這不是一個問題,因為我們的網絡接受可變的輸入點雲大小。平均而言,一個ModelNet40點雲在我們的框架中包含6800個點。其他訓練參數在補充材料中有詳細說明,以及架構細節。我們還包括了剛性的和可變形的KPConv的參數數量和訓練/推理速度。
分割任務 對於這個任務,我們使用與分類任務相同的參數的KP-FCNN架構,將位置(x, y, z)作為附加特性添加到常量1中,並使用相同的增強過程。。數據集點雲更小(平均2300點),每秒可以處理4.1個批處理的16個形狀。表1顯示了實例的平均值和類的平均值mIoU。我們在補充材料中詳細說明了每類 mIoU。KP-FCNN優於所有其他算法,包括那些使用圖像或法線等額外輸入的算法。形狀分割是一項比形狀分類更困難的任務,我們看到KPConv在可變形內核上有更好的性能。
4.2 3D場景分割
數據 我們的第二個實驗展示了我們的分割架構如何推廣到真實的室內和室外數據。為此,我們選擇在4個不同性質的數據集上測試我們的網絡。
-
Scannet[6] 用於室內雜亂的場景,包含1,513個小型訓練場景和100個用於在線基准測試的測試場景,並帶有20個語義類。
-
S3DIS[1]用於室內大空間,覆蓋了來自三個不同建築的6個大型室內區域,總共有13個類標注了2.73億點。與[36]一樣,我們提倡使用Area-5作為測試場景,以更好地度量我們方法的泛化能力。
-
Semantic3D[11]用於室外固定掃描,是一個在線基准,它包含了不同戶外場景的幾個固定激光雷達掃描。在這個數據集中,超過40億個點用8個類進行了注釋,但是它們大多覆蓋了地面、建築或植被,並且比其他數據集中的對象實例要少。我們傾向於reduced-8的挑戰,因為它減少了靠近掃描儀的物體的偏斜。
-
Paris-Lille-3D[30]用於室外移動掃描,包含了4個不同城市超過2公里的街道,也是一個在線基准。該數據集的1.6億個點被注釋為10個語義類。
用於真實場景分割的流程 這些數據集中的3D場景太大,無法分割成一個整體。我們的采用KP-FCNN結構對球體中包含的小子雲進行分割。訓練時,在場景中隨機選取球。在測試時,我們有規律的在點雲中選取球,但保證每個點都被不同的球點進行多次測試。就像在模型數據集上的投票方案一樣,對每個點的預測概率取平均值。當數據集着色時,我們使用三種顏色通道作為特征。我們仍然保持不變的1特征,以確保黑/暗點不被忽略。對於卷積,一個所有特征都為0的點等價於空白空間。輸入球半徑選擇為50×dl0(根據Modelnet40實驗)。
結果 因為室外物體比室內物體大,所以我們在Semantic3D和Paris-Lille-上使用dl0 = 6cm,在Scannet和S3DIS上,3D, dl0 = 4cm。表2所示,我們的體系結構在Scannet上排名第二,在其他數據集上優於所有其他的分割體系結構。與其他點卷積結構相比[2,19,40], KPConv性能在Scannet上超過先前的分數19 mIoU,在S3DIS上超過9 mIoU。SubSparseCNN在Scannet上的得分在他們最初的論文[9]中沒有報道,所以在不知道他們的實驗設置的情況下很難進行比較。我們可以注意到,在相同的ShapeNetPart分割實驗設置中,KPConv比SubSparseCNN高出近2 mIoU。
在這4個數據集中,KPConv deformable kernel在Paris-Lille-3D和S3DIS上改進了結果,剛性版本在Scannet和Semantic3D上效果更好。如果我們按照我們的假設,我們可以解釋低分的原因是該數據集缺乏多樣性。事實上,盡管它包含了15個場景和40億個點,但它包含了大部分的地面、建築和植被點,以及一些真實的物體,比如汽車和行人。盡管Scannet並非如此,它包含了1500多個不同物體和形狀的場景,但論文的驗證研究並未反映在該基准測試的得分上。同時發現,在幾個不同的驗證集上,可變形的KPConv優於其剛性的對應項(請參見第5.3節)。
綜上所述,這些結果表明,可變形KPConv的描述能力對大型和多樣化數據集的網絡是有用的。我們相信KPConv可以在更大的數據集上效果會更好,因為它的內核結合了強大的描述能力(與其他更簡單的表示相比,如[10]的線性內核),以及強大的可學習性(MLP卷積的權值,如[19,40],學習起來更復雜)。圖4展示了在Semantic3D和S3DIS上分割的場景。在補充材料中提供了更多可視化結果。
4.3 消融實驗
如4.2節所述,我們還可以看到,可變形KPConv比具有15個內核點的剛性KPConv性能更好。盡管在測試集上不是這樣,但我們嘗試了不同的驗證集,證實了可變形KPConv的優越性能。這並不奇怪,因為我們在S3DIS上得到了同樣的結果。可變形KPConv似乎在室內數據集上效果更好,室內數據集提供了比室外數據集更多的多樣性。要理解原因,我們需要超越數字,看看KPConv的兩個版本有效地學習了什么。
4.4 學習到的特征和有效感受域
為了更深入地理解KPConv,我們提供了學習機制的兩個見解。
學習到的特征 我們的第一個想法是將我們的網絡學習到的特征可視化。在這個實驗中,我們用剛性KPConv在ModelNet40訓練了KP-CNN。我們圍繞垂直軸增加了隨機旋轉,以增加輸入形狀的多樣性。然后,我們通過根據這些特征的激活程度給這些點着色來可視化每個學習到的特征。在圖6中,我們選擇了在第一層和第三層最大限度地激活不同特性的輸入點雲。為了更干凈的展示,我們從下采樣點層投影激活到原始輸入點。我們觀察到,在它的第一層,網絡能夠學習低層次的特征,如垂直/水平平面(a/b)、線性結構(c)或角d。在后面幾層中,該網絡探測到更復雜的形狀,如小支撐(e)、球(f)、圓錐(g)或樓梯(h)。但是,很難看出剛性KPConv和可變形KPConv之間的區別。這個工具對於理解KPConv通常可以學習什么非常有用,但是我們需要另一個工具來比較兩個版本。
有效的感受野 為了理解剛性和變形KPConv學習到的表示的區別,我們可以計算出它在不同位置的有效感受野(ERF)[21]。ERF度量每個輸入點對特定位置的kpconv層結果的影響。它被計算為KPConv響應在這個特定位置的梯度相對於輸入點特征。正如我們在圖7中看到的,ERF根據它所居中的對象而變化。我們看到,剛性的KPConv ERF對每種類型的對象都有一個相對一致的范圍,而可變形的KPConv ERF似乎適應對象大小。的確,它覆蓋了整張床,而且更多地集中在椅子上,而不是周圍的地面上。當以平面為中心時,似乎也將忽略其中的大部分,並到達場景中的更多細節。這種自適應行為表明,可變形KPConv提高了網絡適應場景對象幾何形狀的能力,並解釋了在室內數據集上更好的性能。
五、總結
在這項工作中,我們提出了KPConv,一個在點雲上運行的卷積。KPConv以半徑鄰域為輸入,並利用一小組核點在空間上定位的權重對其進行處理。我們定義了一個可變形的卷積算子,它可以學習局部移位,從而有效地使卷積核變形以使其適合點雲幾何形狀。根據數據集的多樣性,或選擇的網絡配置,可變形和剛性KPConv都是有價值的,我們的網絡為幾乎每個測試數據集帶來了新的最先進的性能。我們發布了源代碼,希望能夠幫助進一步研究點雲卷積架構。除了提出的分類和分割網絡,KPConv還可以用於CNNs處理的任何其他應用。我們相信,可變形卷積可以在更大的數據集或具有挑戰性的任務中蓬勃發展,如對象檢測、激光雷達流計算或點雲補全。
參考:https://zhuanlan.zhihu.com/p/83234923
https://blog.csdn.net/Dujing2019/article/details/104178936
https://blog.csdn.net/Dujing2019/article/details/104273287
https://blog.csdn.net/weixin_39373480/article/details/100118359
