国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

3D點云分割系列1:PointNet,從Voxel-base到Point-base的進階之路

這篇具有很好參考價值的文章主要介紹了3D點云分割系列1:PointNet,從Voxel-base到Point-base的進階之路。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

PointNet

pointnet 分割,3D點云分割,3d,人工智能,機器學習,計算機視覺,圖像處理

PointNet發(fā)布于2017CVPR。

《PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation》


題外話

PointNet對于3D點云分割的意義有點像FCN對語義分割的意義。PointNet不同以往的voxel-based的模型,它試圖通過直接對點云數據中每一個點進行處理,來分析點云中每一個點的信息,提取特征,做分類或分割的task。也就是說,PointNet為點云分割提供了另一條道路,即point-based的方法。


1引言

老生常談,每一種數據結構都有其存在的道理和意義,點云(Point Cloud)也是如此,對于真實世界,光靠簡單的2D RGB圖片信息并不能很好的理解。而3D 結構則能夠更好的去重現真實世界的場景,因此對于3D數據的處理也是未來的一個重要的發(fā)展方向。

通常,點云是一個無序的點集。這些點集分布在空間中,就如同云一樣,形成了我們能看到的一些物體。當然,需要注意,這里的無序指的是點云中的點可以被保存在這個點集文件中的任意位置,只要你將點集讀取出來并映射在空間中,這個點還是原來空間中的那一個點,它的空間位置信息并不會因為你把它保存在什么位置而改變。不同于點云,2D圖像中的每一個點的位置就是固定的,改變了點的位置,圖像就自然改變了。

在這里我們就引入了點云的一個特性,也就是無序性。當然,點云還有其他特性:一是旋轉、平移不變性,也就是點云可以旋轉任何角度、平移任何距離,它整體還是同一個點云,點與點之間的相對位置信息是不變的;二是點的交互性:點云中的點并不是孤立的,每一個點都會和周圍點進行交互,即空間中的點在小范圍內形成有意義的子集。就像很多點可以集成變成一把椅子這樣。

pointnet 分割,3D點云分割,3d,人工智能,機器學習,計算機視覺,圖像處理

1.1 voxel-based和point-based的優(yōu)缺點

正如我們上面提到,點云是無序的,當我們輸入一個點云,想對它實現semantic segmentation任務時,該如何確定點與點之間的相對關系呢?有了這一疑問,voxel-based的方法提出將點云分割為一個又一個規(guī)則的voxel,這樣,相鄰的點就會被歸類到同一個voxel中。然后簡單的取一個voxel中所有點的平均xyzrgb,用來指代這個voxel的特征。這種方法變相降低了計算復雜度,并且將點云中所有點的相對關系給確定了。之后,再用經典的CNN卷積即可實現點云的特征處理。

但是,我們也很容易能想到,簡單的將一些點歸類到一個voxel中并賦予其平均值作為特征,這就會導致一些重要的點被忽略,同時也會導致最終結果誤差增大。

而point-based的方法,則是保留了所有點的原始特征,直接對所有點進行處理,但是這里還是沒有提到解決點云無序的問題。在PointNet中,使用了Max-Pooling的方法來解決這一問題。這也很好理解,既然事先輸入的點集是無序的,而在空間中又是固定位置,那只需要進行Max-Pooling操作即可保留點云的相對位置信息。同時又可以將點的特征聚合起來,形成全局特征。

個人認為,這一思想類似于點云的sub-sampling。你對一個點云下采樣兩倍、四倍等等,它還是能保留一個人能直觀分辨的結果。只不過Max-Pooling是對特征進行處理,sub-sampling是對點進行處理。

pointnet 分割,3D點云分割,3d,人工智能,機器學習,計算機視覺,圖像處理

2 PointNet結構

pointnet 分割,3D點云分割,3d,人工智能,機器學習,計算機視覺,圖像處理

Point的模型圖也十分簡潔明了,幾個關鍵地方為input transform和feature transform中的T-Net、max pool、local和global feature的融合。

2.1 使用對稱函數來解決無序性問題

由于點云的數據是無序的,那么就得想讓模型來適應這個無序的數據或者讓數據變得“有序”。那么解決這一問題主要有三個方法

  1. 將點云中的點進行排序,使其成為一種規(guī)范的結構。
  2. 用一個RNN網絡來學習點云數據的“排列順序”。
  3. 使用對稱函數來匯總每一個點的信息。

對于第一個方法,排序或許是個簡單的方法。至少我們或多或少接觸過冒泡、歸并等等排序算法,但是,點云是三維空間中的數據結構,并不是簡單的一個數字比大小。在高維空間中,想要保證排出來順序是有序的,這是比較難辦到的事情。相當于將一個高維空間映射成一個射線,反過來,還得保證這條射線能夠還原這個高維空間,對于人類而言,貌似有點困難。即便排成功了,如果其中有個別點不穩(wěn)定,整個映射結構可能就會奔潰。

對于第二個方法,作為循環(huán)網絡,RNN對于序列數據的敏感度是遠強于CNN的。不過對于一個巨大的點云數據,動不動就是幾十萬的點集,一個小小的RNN可能難以獲得一個較好的魯棒性。當然,在文章的結尾,作者也比較了使用RNN的方法和PointNet的方法之間的效果差異。

不同于以上兩點,使用一個對稱函數來匯聚信息或許是一個更為高效簡潔的方法。這里的對稱函數可以理解為對輸入順序不敏感的操作。比如加、乘、池化pooling。

f ( { x 1 , … , x n } ) ≈ g ( h ( x 1 ) , … , h ( x n ) ) f\left(\left\{x_{1}, \ldots, x_{n}\right\}\right) \approx g\left(h\left(x_{1}\right), \ldots, h\left(x_{n}\right)\right) f({x1?,,xn?})g(h(x1?),,h(xn?))

其中 x 1 、 x 2 . . . x n x_{1}、x_{2}...x_{n} x1?、x2?...xn?為輸入的點, g g g則是一個對稱函數,在模型中就是Max-Pooling, h h h則是一個MLP。也就是通過MLP和MaxPooling來擬合函數 f f f。至少,在經驗上和實踐上,PointNet的這個方法是成功的。

在文章最后,作者設計實驗比較了幾種方法來解決點云無序性問題得到的accuracy結果。

通過對比RNN、LSTM的輸入時排序和對稱函數如Attention sum、Average pooling、MaxPooling的方法,結果證明Max Pooling效果是最好的。

注:表的上半部分為輸入時通過循環(huán)網絡排序,下半部分則是使用對稱函數進行信息聚合。
pointnet 分割,3D點云分割,3d,人工智能,機器學習,計算機視覺,圖像處理

2.2 Local和Global的特征聚合

經過對稱函數MaxPooling輸出出來的特征為聚合了每個點信息的全局特征,形成了一個特征向量 [ f 1 , . . . , f k ] [f_1, ..., f_k] [f1?,...,fk?],在圖中也就是長度為1024的global feature向量。

pointnet 分割,3D點云分割,3d,人工智能,機器學習,計算機視覺,圖像處理

對于分類任務而言,這個global feature已經足夠了,只需要再其后面添加一個簡單的SVM或者MLP即可完成點云分類的task。但是,對于分割而言,global feature是顯然不夠的,這一點在2D的圖像分割已經證明了(這也是Unet為什么好的原因)。因此,需要將Local和Global的Feature進行相應的融合。在這里,融合方式也十分簡單,只需將兩個特征進行連接操作(concat),然后將其輸入到MLP中反饋給每一個點,既可以根據這個合并好的特征從點云中提取新的特征。當完成這一步時,每一個特征中都會包含點云的局部和全局信息。這在2D語義分割中是比較常見和有效的操作。

2.3 特征對齊網絡

對于一個點云而言,我們可以將其看成一個剛體(也就是不會產生形變,無論怎么旋轉平移,它都會保留原始形狀)。那么,點云進行剛性變化(旋轉平移等),點云本身不變,其標簽自然也不變。因此,我們希望PointNet能夠學習到這種變換,或者說,希望PointNet能夠認出旋轉任意角度、平移任意距離的點云物體。

有一個簡單的方法就是,在輸入點云之前,事先將點云數據按照一定的規(guī)范,將點云旋轉、平移到相同的角度和位置。類似于對2D圖像進行一個resize到統(tǒng)一大小的操作。

在這里,我們還得先理解如何對點云數據進行剛性變化。其實十分簡單,對于3維的物體,我們想對其進行平移、旋轉,只需要相應乘上一個平移矩陣、旋轉矩陣即可。

在這里,作者通過一個T-Net來學習這種平移、旋轉關系,也就是說讓模型自己去擬合這個平移矩陣、旋轉矩陣。

同時,作者將這一思想拓展到了點云的特征空間,用同樣的方法對特征進行對齊,即feature transform??梢栽邳c特征上插入另一個對齊網絡,并預測一個特征變換矩陣來對齊來自不同輸入點云的特征。不過,特征空間的變換矩陣比空間變換矩陣的維度高得多,這大大增加了優(yōu)化的難度。因此,作者在訓練的損失計算中加入了一個正則化項,以此將特征轉換矩陣限制在接近正交矩陣的范圍內。

L r e g = ∥ I ? A A T ∥ F 2 L_{reg} = \parallel I-A A^T \parallel^{2}_F Lreg?=∥I?AATF2?

其中, A A A就是T-Net學習到的變換矩陣。

3 總結

總結一下,PointNet為3D點云分割、分類開拓了一條新的道路,也就是Point-base的方法。從對體素voxel的處理轉為對點point進行直接處理,提高了效率,同時也獲得十分優(yōu)秀的效果。

PointNet中出彩的地方包括使用T-Net來學習點云的剛性變換、使用MaxPooling來解決點云輸入無序性的問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-801897.html

到了這里,關于3D點云分割系列1:PointNet,從Voxel-base到Point-base的進階之路的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 3D點云(3D point cloud)及PointNet、PointNet++

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

    https://www.youtube.com/watch?v=Ew24Rac8eYE 傳統(tǒng)圖像數據是2維的 3D點云是3維的,可以表達更多信息 比如對化工廠進行違章識別、安全隱患的識別 城市管理 點云分割 點云補全 點云生成 點云物體檢測(3D物體檢測) 點云配準(后續(xù)任務的基礎) 一般點云數據都是基于激光雷達掃描生

    2024年02月02日
    瀏覽(27)
  • 使用 PointNet 進行3D點集(即點云)的分類

    無序3D點集(即點云)的分類、檢測和分割是計算機視覺中的核心問題。此示例實現了開創(chuàng)性的點云深度學習論文PointNet(Qi 等人,2017)。 如果使用 colab 首先安裝 trimesh? !pip install trimesh 。

    2024年02月07日
    瀏覽(25)
  • (CVPR) PointNet:用于3D分類和分割的點集深度學習 - 詳細解讀

    (CVPR) PointNet:用于3D分類和分割的點集深度學習 - 詳細解讀

    目錄 知識補充 網絡解讀 概括 局部和全局特征的融合(分割任務) 聯(lián)合對準網絡(T網絡) 總結 點云存在的問題: 詳細理解: 參考內容: 點云轉換為體素的問題:數據龐大 本文設計了一種直接消耗點云的神經網絡(保持了輸入中心點的排列不變性) 剛性變換: 指保持物

    2024年03月21日
    瀏覽(24)
  • 基于pointnet的3D物體分類和分割檢測(復現不出來你直接敲我家門)

    基于pointnet的3D物體分類和分割檢測(復現不出來你直接敲我家門)

    錄 前言 一.資料下載 1.代碼下載 2.數據集下載 二.環(huán)境配置 1.本文采用設備配置說明 2.虛擬環(huán)境配置 三.訓練部分 1.分類訓練部分 2.分割的訓練部分 四.預測部分 1.分類結果展示 2.分割結果可視化 目前,2D的物體檢測算法已經非常成熟,算法準確率的上升空間已經遇到瓶頸,而

    2024年02月01日
    瀏覽(20)
  • 點云 3D 分割 - SqueezeSegV2(ICRA 2019)

    點云 3D 分割 - SqueezeSegV2(ICRA 2019)

    聲明:此翻譯僅為個人學習記錄 文章信息 標題: SqueezeSegV2: Improved Model Structure and Unsupervised Domain Adaptation for Road-Object Segmentation from a LiDAR Point Cloud (ICRA 2019) 作者: Bichen Wu * , Xuanyu Zhou * , Sicheng Zhao * , Xiangyu Yue, Kurt Keutzer ( * Authors contributed equally) 文章鏈接:https://arxiv.org/pdf/1

    2024年02月11日
    瀏覽(26)
  • 3D點云之語義分割(相關官方示例介紹)

    3D點云之語義分割(相關官方示例介紹)

    之前在博客中提到,會考慮用深度學習來對3D點云進行處理,接下來邁出腳步,先整幾個例子來熟悉它。例子原型來源于官網,博主在其基礎上做了一些代碼修改。 1. Keras中的資源 Code examples 2.openvinotoolkit open_model_zoo/demos at master · openvinotoolkit/open_model_zoo · GitHub 主要參考官網

    2024年02月06日
    瀏覽(20)
  • 6種最常用的3D點云語義分割AI模型對比

    6種最常用的3D點云語義分割AI模型對比

    由于增強現實/虛擬現實的發(fā)展及其在計算機視覺、自動駕駛和機器人領域的廣泛應用,點云學習最近引起了人們的關注。 深度學習已成功用于解決 2D 視覺問題,然而,由于其處理面臨獨特的挑戰(zhàn),深度學習技術在點云上的使用仍處于起步階段。 推薦:用 NSDT編輯器 快速搭建

    2024年04月17日
    瀏覽(23)
  • 【點云分割】points3d框架學習01 —— 安裝和配置

    【點云分割】points3d框架學習01 —— 安裝和配置

    [Errno 2] No such file or directory: ‘llvm-config’ 檢查一下 AttributeError: module ‘numpy‘ has no attribute ‘long‘ replace numpy version with error: subprocess-exited-with-error

    2024年02月11日
    瀏覽(44)
  • Open3D 實現建筑物點云立面和平面分割提取

    Open3D 實現建筑物點云立面和平面分割提取 點云數據在現實場景中廣泛應用,例如建筑物三維重建、智能交通等領域。然而,點云數據量龐大且噪聲較多,因此需要對其進行處理和分析。Open3D 是一款開源的跨平臺點云處理庫,在點云數據預處理、三維重建和可視化等方面有著

    2024年02月07日
    瀏覽(53)
  • Open3D 點云分割之區(qū)域生長(Python版本,指定種子點)

    點云分割作為許多應用的前提,其直接會關乎到后續(xù)利用點云數據進行曲面重建、特征提取等處理的效果。區(qū)域生長算法做為一種較為經典的聚類分割算法,具有很廣泛的應用,算法過程如下所述: 1、首先將按照每個點的曲率值由小到大進行排序。 2、選擇曲率值最小的那個

    2024年02月03日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包