日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3D点云(3D point cloud)及PointNet、PointNet++

發(fā)布時間:2023/12/29 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3D点云(3D point cloud)及PointNet、PointNet++ 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 一、什么是3D點云
    • 二、基于3D點云的一些任務(wù)
    • 三、如何提取3D點云數(shù)據(jù)的特征:PointNet
      • (1)在PointNet之前也有工作在做點云上的深度學(xué)習(xí)
      • (2)PointNet
        • (1)置換不變性(Permutation Invariance)
        • (2)角度不變性(Transformation Invariance)
        • 分類和分割網(wǎng)絡(luò)
        • PointNet的優(yōu)勢:占用內(nèi)存小且速度快(高效)
        • PointNet的優(yōu)勢:對數(shù)據(jù)丟失非常魯棒
    • 四、PointNet++
      • PointNet的局限性
      • 第二代網(wǎng)絡(luò):PointNet++
        • (1)Hierarcgical feature learning(多級特征學(xué)習(xí))
          • 在多級特征學(xué)習(xí)網(wǎng)絡(luò)中,是**如何選擇PointNet++作用區(qū)域球的半徑**的呢?
    • 五、PointNet和PointNet++在三維場景理解中的應(yīng)用
      • 3D Object Detection
        • Previous Work
        • Frustum PointNets for 3D Object Detection
        • key to success
    • 六、Q&A

一、什么是3D點云

https://www.youtube.com/watch?v=Ew24Rac8eYE
傳統(tǒng)圖像數(shù)據(jù)是2維的
3D點云是3維的,可以表達更多信息

  • 比如對化工廠進行違章識別、安全隱患的識別
  • 城市管理



二、基于3D點云的一些任務(wù)

  • 點云分割
  • 點云補全
  • 點云生成
  • 點云物體檢測(3D物體檢測)
  • 點云配準(后續(xù)任務(wù)的基礎(chǔ))


一般點云數(shù)據(jù)都是基于激光雷達掃描生成的。

三、如何提取3D點云數(shù)據(jù)的特征:PointNet

初始的點云數(shù)據(jù)僅僅包含了每個點的坐標信息(x,y,z),這些對我們要完成的后續(xù)任務(wù)遠遠不夠,我們還需要知道每個點和周圍的點的關(guān)系甚至是每個點和全局的關(guān)系。

(1)在PointNet之前也有工作在做點云上的深度學(xué)習(xí)

點云數(shù)據(jù)并不是定義在一個規(guī)則的網(wǎng)格上,空間上可以任意分布、數(shù)量也可以任意,是不規(guī)則數(shù)據(jù)。
一種解決方案:

  • 柵格化(voxelization)將無規(guī)則的3點云變成一種規(guī)則的數(shù)據(jù),均勻分布在一個3維網(wǎng)格中。
  • 3d卷積處理處理成3維柵格的數(shù)據(jù)

這種方式的缺點:

  • 如果為了降低時間復(fù)雜度和空間復(fù)雜度選擇降低圖片的分辨率,會使學(xué)習(xí)效果大打折扣;
  • 如果不計時間和空間復(fù)雜度,將大分辨率的圖像輸入3D卷積網(wǎng)絡(luò)。其實3D點云僅僅掃描的是表面信息,這樣做柵格內(nèi)部有大片空白,造成了算力資源的大量浪費。

(2)PointNet

那么如何構(gòu)造一個backbone來提取3D點云的這些特征呢?

點云數(shù)據(jù)的特點

(1)置換不變性(Permutation Invariance)

點云數(shù)據(jù)是一個inordered set,每個點出現(xiàn)的順序不影響集合的本身

N表示點云中的有N個點,D代表每個點擁有D維的特征。D中可以包含點的坐標信息(x,y,z),也可以包含顏色、法向量…
因為點集是無序的,一共有N!種排列組合。這要求我們設(shè)計的backbone對所有置換都具有不變性。


最簡單的最大池化和平均池化函數(shù)雖然具有置換不變性,但是無疑會丟失有意義的幾何信息。

  • 因為直接對點云做對稱性的操作會丟失重要的幾何信息;
  • 我們可以先將3D點云映射到高維空間h,與此同時就產(chǎn)生了很多冗余信息;
  • 此時,我們再在高維空間中進行對稱操作g,我們依然會得到充足的幾何信息,這樣會避免過多的幾何信息的丟失。
  • 最后我們再通過另一個網(wǎng)絡(luò)γ\gammaγ來進一步消化這個信息,得到一個點云的特征。


這是什么?不太理解。

(2)角度不變性(Transformation Invariance)

比如說一輛車,在不同的角度觀察,點云中的每個點的坐標會有所變化,但表示的都是同一輛車。
如何設(shè)計網(wǎng)絡(luò)能使得網(wǎng)絡(luò)能夠適應(yīng)這種視角的變化呢?

增加基于點云數(shù)據(jù)本身的變換函數(shù)模塊:

通過一個神經(jīng)網(wǎng)絡(luò)T-Net生成變換的參數(shù),再用生成的變換函數(shù)對輸入數(shù)據(jù)進行變換。使得這個變換函數(shù)能夠自動對準對齊我們的輸入,后面的網(wǎng)絡(luò)能夠適應(yīng)不同角度的輸入數(shù)據(jù),處理任務(wù)變得更加簡單。

對點云數(shù)據(jù)進行變換操作非常簡單,只需要進行一個矩陣乘法

做一些擴展:不僅可以對輸入數(shù)據(jù)進行變換處理,也可以對點的中間特征進行特征空間的變換。
比如,一開始已經(jīng)將點的特征變成K維,那么現(xiàn)在有一個N * K的矩陣。我們可以設(shè)計一個K * K的矩陣進行矩陣乘法對這些中間特征進行特征空間的變換。這樣可以得到另一組特征。

對于以上涉及的這些高維的變換,優(yōu)化的難度也更高,可能會需要一些regularization:比如會盡可能希望這個矩陣接近于正交矩陣。

分類和分割網(wǎng)絡(luò)

單個點的特征和全局的坐標結(jié)合起來實現(xiàn)分割的功能。
最簡單的就是:將全局的特征重復(fù)n遍,每一個和原來的單個點的特征連接在一起,相當(dāng)于單個點在全局特征中進行了一次檢索,“我在全局特征中處于哪一個位置,我大概屬于哪一個類”

PointNet的優(yōu)勢:占用內(nèi)存小且速度快(高效)

FLOPs:計算量,floating point operations的縮寫(s表復(fù)數(shù)),意指浮點運算數(shù),理解為計算量??梢杂脕砗饬克惴?模型的復(fù)雜度。

因為PointNet的高效性,其非常適用于移動設(shè)備和可穿戴設(shè)備。

PointNet的優(yōu)勢:對數(shù)據(jù)丟失非常魯棒

對數(shù)據(jù)的丟失都非常魯棒
why?
解釋這個可以通過一個可視化去理解:


最大池化使得模型只去關(guān)注critical points,這也使得模型對點的丟失具有較好的魯棒性。

四、PointNet++

PointNet的局限性

在PointNet中,先對每一個點通過MLP做一個從低維到高維的映射,再對高位的特征通過MLP結(jié)合到一起。所以PointNet要么是對一個點做操作,要么是對所有點全局的特征在做操作。所以PointNet和3D卷積相比缺少了一個局部的概念,比較難對一些精細的特征進行學(xué)習(xí)。此外,在平移不變性上也有一定的缺陷,如果對點云的每一個點進行一個平移操作,那么經(jīng)過PointNet學(xué)習(xí)的特征也會完全不一樣。

第二代網(wǎng)絡(luò):PointNet++

  • Hierarcgical feature learning
  • Translation invariant
  • Permutation invariant

(1)Hierarcgical feature learning(多級特征學(xué)習(xí))


也可以通過一種“up-convolution”的方式將pointnet提取的特征點復(fù)原回去。

在多級特征學(xué)習(xí)網(wǎng)絡(luò)中,是如何選擇PointNet++作用區(qū)域球的半徑的呢?

在CNN中現(xiàn)在越來越流行選擇非常小的kernel,比如在VGG中大量應(yīng)用3*3的kernel。
那么在PointNet++中是不是這樣呢?其實這是不一定的。

在point cloud中非常常見的一種情況是采樣率非常不均勻。比如一個depth camera采樣到的point cloud,近的點會非常密集,遠的點會非常稀疏。那么對于PointNet++的學(xué)習(xí)就會在稀疏的地方產(chǎn)生很大的問題。比如在某個地方我們的劃定的作用區(qū)域中只有一個點,那么在那個區(qū)域中學(xué)到的特征就會非常不穩(wěn)定。這是我們很想避免的。

為了量化這個問題,我們做了一個控制變量的實驗,驗證了點的疏密對PointNet++網(wǎng)絡(luò)精確度的影響:小的kernel會受采樣率不均勻影響較大。

針對這個問題,可以設(shè)計一些新的網(wǎng)絡(luò)結(jié)構(gòu)來避免這個問題。

  • Muti-scale grouping(MSG)
  • Muti-res gruoping(MRG)
  • MRG的好處是可以節(jié)省一些計算。而MSG需要對不同的尺度分別計算。

效果對比:

五、PointNet和PointNet++在三維場景理解中的應(yīng)用

  • 3D Object Detection
  • 3D Scene Flow

3D Object Detection

Previous Work

  • 3D region + classification
    基于點云,在三維空間中做region proposal,然后投影到圖片中,在圖片中畫出3D的box,再進行物體的識別;也可以用3D的CNN來做。

缺點:

  • 3D空間的搜索量非常大,計算量也非常大。
  • 點云的分辨率有限,比較難發(fā)現(xiàn)比較小的物體。
  • RGB or RGB-D image based object detection

缺點:
RGB圖像:依賴物體大小的先驗知識,很難估計物體的精確位置。
RGB-D圖像:兩個實際距離很遠的點投影到圖像上的距離有可能非常近。
在圖片這種表達形式下,用2D的CNN還是受到了很大的局限性。
很難精確地估計物體的深度和大小

Frustum PointNets for 3D Object Detection

2D detectors for region proposal + 3D frustum + PointNets
整體思想:

  • 在二維圖像上檢測劃定初步的region proposal,用于減少3D空間搜索成本
  • 在劃定的region propoasl上生成相應(yīng)的3D視錐(Frustum),在該視錐內(nèi)對point cloud用PointNets進行深度學(xué)習(xí)得到精確的3D proposal

缺點:
occlusions and clutters are common in frustum point clouds

key to success

  • 歸一化:因為是點云數(shù)據(jù),所以歸一化只需對點做矩陣乘法就行了。

六、Q&A

  • PointNet是不是沒有考慮點之間的關(guān)系?
    PointNet++考慮點之間的關(guān)系了
  • STN的全稱是什么?
    special transformer network
  • 關(guān)鍵點是怎么選取的?
    關(guān)鍵點不是選取的,是我們可視化的,可視化了這個網(wǎng)絡(luò)選擇了哪些關(guān)鍵點

總結(jié)

以上是生活随笔為你收集整理的3D点云(3D point cloud)及PointNet、PointNet++的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。