点云网络的论文理解(三)-点云网络的优化 PointNet++的总体说明
生活随笔
收集整理的這篇文章主要介紹了
点云网络的论文理解(三)-点云网络的优化 PointNet++的总体说明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
總體說明
這個部分是為了讓大家可以更好地理解文章
1.以前的網絡有什么缺點
- 1.首先第一點就是論文當中反復提到的沒有局部特征的問題。
- 2.另外一個就是PointNet不具有平移不變性,理解一下這個,PointNet最后是一個maxpooling所以決定是不是選擇當前內容的唯一因素是大小,因為除了pooling之外使用的就只有mlp,之前的所有一系列處理其實都可以等價為乘上一個參數,每個的參數可能不同,有正有負,所以最終可能是:以向上平移為例,原坐標變大,結果坐標有的變大有的變小。所以不能保證平移不變性。
2.之后看現在的網絡
2.1解決這些問題
從上面的問題出發,需要解決兩個問題:
- 1.沒有局部特征這個地方文章中說的比較清楚,就是借鑒卷積網絡的成功之處,選擇一個圓形的空間,這樣就可以獲得一個局部區域。
- 2.之后就是解決平移不變性的問題,我們既然選定了一個小的空間,計算特征的時候,我們直接將坐標系轉化成這個小空間的中心不就行了嗎?直接在計算特征的時候將這個小空間的點映射到以這個小空間中心為原點的坐標系中,之后計算特征。
接著上面的內容,就有幾個新的問題:
- 1.怎么選定這些中心點?
當然可以隨機選擇,但是隨機選擇的效果并不好。另外就是使用 farthest point sampling (FPS)的效果更好,另外就是這個東西也更能結合數據集的具體特征。 - 2.選定了這些點,怎么獲得這些點周圍臨近的點?
K nearest neighbor (kNN) 和固定半徑到底選擇哪個的問題就出現了。因為knn在很稀疏的區域會取到特別大的范圍,不論如何操作,都不能得到很好的結果,所以選擇固定半徑。 - 3.這個半徑怎么選擇?
因為固定半徑存在這樣一個問題,就是點云的稀疏程度不同,如果半徑很小的話,可能只能獲得一兩個點的特征,這個特征就很弱,不是最理想的選擇,所以我們要根據疏密程度適當地調整半徑。所以文章選擇在同一個點的位置設置多種半徑分別提取信息,這樣就可以獲得一個新的問題怎么將這些各種大小半徑的信息合并。 - 4.怎么合并各種半徑?
文章選擇將他們放入同一個向量當中,并設置DropOut層,這樣就可以解決兩個問題,模擬一些半徑的信息缺失(這個半徑圈進來的點過于稀少),然后逼迫網絡可以自適應的處理不完全的輸入,以此來增加網絡的魯棒性。
這里的處理我覺得是完全有必要的,因為點云的數據集不是均勻的,有的地方特別密有的地方特別疏,所以我們需要這樣來逼迫網絡動態適應點云的疏密變化。
好了信息提取完了,我們現在面對一個新的問題,這個信息我們是以這個空間中心為坐標系中心而得來的,所以我們想要將其放回原圖,我們得轉化一下怎么轉化? - 5.怎么合并信息?
文章給出了一個神奇的方法,直接將獲得信息加入到原來網絡的后面。就是本身的點坐標有三個維度,提取信息獲得6個維度,那么最后就加在一起獲得9個維度。這樣就相當于用一個高維空間的單個點表示低維空間的幾個點的集合。數學上十分合理。 - 6.怎么優化計算?
因為我們這里存在一個大的問題就是我們需要獨立進行大量的計算,在每一層向下傳遞的過程中本來每個點只需要計算一個固定范圍的點的PointNet,但是經過這里的優化之后,我們就要多次傳遞(因為多層)。所以需要對計算量做出優化。
我們可以看到這里a圖的是比較簡單的情況,就是直接選擇不同的區域進行處理,也就是我們上面說的內容,但是b圖的情況更好,就是從不同的層提取信息進行合并,在不同的層選取相同大小的區域進行特征提取,這樣的話就會導致獲得信息其實對應著對底層的不同大小的區域。也就是說理論上這個東西是相同效果的。但是關鍵在于這個東西重用了很多之前的計算結果,所以計算的時候更快一些。
文章中提出來的這個應該理解為一種動態規劃的思想,盡量重用之前的計算結果。
總結
以上是生活随笔為你收集整理的点云网络的论文理解(三)-点云网络的优化 PointNet++的总体说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubantu使用apt安装时出现: xx
- 下一篇: 错误记录 Could NOT find