论文笔记:Geo-CNN
生活随笔
收集整理的這篇文章主要介紹了
论文笔记:Geo-CNN
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Modeling Local Geometric Structure of 3D Point Clouds using Geo-CNN
GeoCNN
1、四個問題
- 3D點云具有不規則的結構,不能輸入普通的CNN中。因此,要提出可以直接將點云作為輸入的CNN網絡。
- 許多研究對局部幾何信息特征提取的關注太少,還要能對局部區域的點的幾何結構進行建模。
- 提出了一個通用的卷積操作:GeoConv,用來提取點及其局部領域的特征。
- 點與點之間的局部幾何關系是通過中心點與其領接點的邊(特征)來表示的。
- 首先,將邊特征分解到三個正交坐標基上,根據邊向量和正交基的夾角對提取的特征加權求和。
- 在ModelNet40、KITTI上都取得了目前最好的效果。
- 每次GeoConv都需要重新計算所有點的K近鄰點,不適合大規模點云處理的情形。
2、論文概述
2.1、簡介
- 目前RGBD相機以及激光雷達快速發展,3D點云可以更容易地獲取到。
- 點云是不規則的數據,無法直接用傳統的2D CNN處理。
- 一種直覺上的方法就是,將不規則點云轉換為規則的3D網格,即體素化。這樣便可以使用過類似CNN的操作。然而,體素化的方法不能取太大的分辨率,因為3D網格會占用過多的內存。
- 另一種很重要的架構就是PointNet。通過一個對稱函數聚合點的特征。而PointNet++則分層聚合局部區域的特征。但是這些方法仍然忽視了點的一些幾何結構,因為這些方法都是將點獨立開來作為全局的點集或者局部點集處理。
- 最近一個對點的幾何關系建模的嘗試是EdgeConv,從每個點及其k近鄰提取特征。但是,EdgeConv只對點之間的距離進行建模,而忽視了向量的方向,也會損失一部分幾何信息。
- 對幾何信息建模的難點有以下兩點:
- 首先,點之間的幾何關系可能會被3D坐標的巨大方差掩蓋,導致其難以直接從數據中學習得到。
- 其次,現在很多方法都將3D坐標投影到某個高維空間中,很有可能不再保留有這些點之前在原始歐式空間中所具有的幾何信息。特別是,在網絡的層數很深時,這種現象更為明顯。
- 為了解決上述問題,作者提出了GeoConv。
2.2、GeoConv
- 假設CCC維點云有nnn個點,某個點ppp在第lll層的特征向量是Xp?l∈RCX_{\vec{p}}^{l} \in \mathbb{R}^CXp?l?∈RC。
- 對于每個點ppp,給定半徑rrr,可以構建以點ppp為中心的球形鄰域N(p?)N(\vec{p})N(p?),其中N(p?)={q?∣∥p??q?∥≤r}N(\vec{p}) = \{ \vec{q} | \|\vec{p}-\vec{q}\| \leq r \}N(p?)={q?∣∥p??q?∥≤r}。
- 則第l+1l+1l+1層的點p可以通過下式計算:
- WcW_cWc?是用來提取中心點的特征的權值矩陣。g(p?,q?)g(\vec{p}, \vec{q})g(p?,q?)是建模了邊特征的函數。
- 得到特征后,不同的鄰域點qqq和中心點ppp之間要根據距離d(p?,q?,r)d(\vec{p}, \vec{q}, r)d(p?,q?,r)加權:
- d(p?,q?,r)d(\vec{p}, \vec{q}, r)d(p?,q?,r)有兩個理想的性質:
- 隨著∥p??q?∥\| \vec{p} - \vec{q} \|∥p??q?∥單調遞減。
- 隨著rrr的增大,這也意味著GeoConv的感受野逐漸加大,與中心點ppp距離相近的點之間的權重函數d(?)d(\cdot)d(?)的差異也會減小。
- 接下來,最重要的部分就是GeoConv中的邊特征(即公式中的g(p?,q?)g(\vec{p}, \vec{q})g(p?,q?))是如何定義的。
- 一個最直接的方法就是直接使用MLP來計算每個邊的激活值。然而這種方法容易過擬合,因為直接使用向量pq?\vec{pq}pq?表示的邊的幾何特征會有較大方差。
- 另一個隱患就是,直接將特征映射到高維空間中,可能不再保留有原始的歐式幾何結構信息。
- 在3D歐式空間中,任何向量都可以表示為三個正交基(x?,y?,z?)(\vec{x}, \vec{y}, \vec{z})(x,y?,z)的投影,投影的模長可以表示在那個方向上的“能量”。
- 因此,將邊特征的提取分解為子三個正交基上進行,使用不同的權值矩陣Wb?W_{\vec{b}}Wb?來提取各個方向的邊特征。最后再講三個方向的特征重新聚合以維持歐式幾何結構。
- 實際中,只考慮6個正交基,如下:
- 6個基會將坐標系分為8個象限。給定一個領域點qqq,首先確定它位于拿一個象限,隨后將這個向量pq?\vec{pq}pq?分解到那個象限對應的三個基上,并計算與各個基之間的夾角。
- 隨后使用如下公式計算邊的特征:
- 其中Xq?lX_{\vec{q}}^lXq?l?是點qqq在第lll層的特征,Bq?B_{\vec{q}}Bq??表示根據q?\vec{q}q?所在的象限的三個正交基的幾何。在聚合特征時,以系數cos2(θpq?,b?)cos^2(\theta_{\vec{pq}, \vec{b}})cos2(θpq?,b?)為權值,保證了和為1。
- 如下圖所示,不斷疊加GeoConv層,并同時增加近鄰點的搜索半徑rrr,可以逐步擴大感受野,類似常規的CNN。
- 在多層的GeoConv層之后,使用全局最大池化來提取全局特征。而這個全局特征可以送入分類網絡,或者分割網絡,抑或是檢測網絡中,做后續處理。
2.3、多視角情況
- 我們可以旋轉3D點云,然后提取多視角的特征來進行數據增強。
- 在3D空間中,任何旋轉都可以分解為繞xyz軸的旋轉。為簡便起見,這里假設只存在繞z軸的旋轉。
- 對點集進行旋轉來做數據增強,是一個很天真的合并多視角的特征的方法。有時,甚至會導致模型的準確率下降。
- 一個可能的原因是,現有的方法都不能從多個3D視角下的巨大方差中學習到一個緊密的模型。
- 一個替代方法就是,為每個3D視角訓練一個模型,最后再講所有的結果聚合起來,這樣會大大提升網絡的復雜度。
- 文中采用的方法是,在網絡的特征層擬合旋轉,如下:
- 其中,WvW_vWv?是從多視角的特征下學習到的權重,θpqv?,b?\theta_{\vec{p q_v}, \vec{b}}θpqv??,b?是根據固定的正交基和旋轉后的邊重新計算的角度。
2.4、實現細節
- GeoConv模塊的輸入是:n×Cinn \times C_{in}n×Cin? ;輸出是:n×Coutn \times C_{out}n×Cout?。
- 對于每個點ppp,根據超參數rrr計算局部球形領域,得到若干個近鄰點。
- 使用Cin×CoutC_{in} \times C_{out}Cin?×Cout?的權重矩陣WcW_cWc?提取中心點的特征。
- GeoConv模塊還參考了ResNet中的瓶頸模塊(bottleneck module),先提取一個低維(CreducC_{reduc}Creduc?)的特征,再輸出高維(CoutC_{out}Cout?)的特征。
2.5、實驗
3、參考資料
總結
以上是生活随笔為你收集整理的论文笔记:Geo-CNN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文笔记:MTCNN
- 下一篇: 论文笔记:CycleGAN