主頁 >  其他 > 點云上的深度學習及其在三維場景理解中的應用————PointNet(一)

點云上的深度學習及其在三維場景理解中的應用————PointNet(一)

2021-10-29 09:13:25 其他

最近在學3D方向的語意分析,

師兄推薦了一個嗶哩大學的將門創投 | 斯坦福大學在讀博士生祁芮中臺:點云上的深度學習及其在三維場景理解中的應用!的寶藏視頻,我會多看幾遍,并寫下每次觀看筆記,

下文的截圖都源自講解的PPT,在我的資源:祁芮中臺點云講解.pdf

全篇手碼,內容較多會持續更新,
帶問號的句子都是乘上引下的重點作用,文章分為三篇,這是第一篇請耐心食用,

--------------------------------------------------------------------------------------------------

正文開始

Emerging 3D Applications
3D應用很多,比如自動駕駛
在這里插入圖片描述
VR
在這里插入圖片描述
3D Representations
三維資料的深度學習和二維有不一樣的地方,最大的不一樣就是由三維資料的本書復雜性帶來的,不像影像可以很精準的表示為二維矩陣:RGB,三維資料有很多種的表達形式,不同的表達形式有不同的應用驅動,如下下邊四種表達形式:
在這里插入圖片描述
第一種是點云,opint cloud,是一組點的集合,可以由深度傳感器掃描得到的深度資料,
第二種為Mesh,可以由三角面片組成,在計算機圖形學中有很多應用,是一種適合做建模、渲染的資料格式,
第三種Volumetric,可以把空間劃分成三維的網格,每一個小的正方體代表此處有沒有物體,就形成了一個結構來代表空間中物體的分布,
第四種Multi-View Images RGB(D),可以用圖片的形式表達三維,用多個角度的圖片來表達三維常常用在可視化的程序中,因為人對圖片的理解遠遠好于對3D的理解,
在這多種表達中,點云資料是一種非常適合三維場景理解演算法的格式,原因有二
一:點云是最接近于最原始的傳感器資料的,比如用激光雷達掃描到的資料直接就是點云,深度傳感器有一個深度影像,實際上也是點云,只不過是一個區域的點云,這種原始的資料可以做出端到端的深度學習,能盡可能挖掘原始資料中的模式,
二:點云在表達形式中是十分簡單的,僅僅是一組點,和其他格式相比,例如Mesh需要選擇是三角面片還是四角或五角面片,以及面片的大小和鏈接方式,選擇空間復雜,Volumetric需要選擇解析度,選擇多大的網格,若選的小,則會有很多空白的區域,大則損失精度,Multi-View Images RGB(D)需要選擇一些影像拍攝的角度,同時對3D表達形式不全面,僅僅能表達一個視角,不能表達完整的3D資料,

Previous Work(前人的作業概述)
點云是一種不規則的資料,不是定義在規則的網格上,在空間種任意分布,數量上也是任意,之前的研究作業是把他先轉換成一種柵格化編程的規則資料,比如變成一個三維的柵格,他就會分布在一個均勻的三維網格中,我們就可以用3D CNN(2D CNN的擴展)來處理這種資料,這是一個很經典的做法,如下圖:

在這里插入圖片描述
在這里插入圖片描述
但是有缺點:
一:三維的卷積他的代價很高,空間的復雜度和時間的復雜度隨著解析度的增長都是N的三次方(三次冪)的增長,計算代價很大,只能采用很低的解析度,會帶來量化的噪聲錯誤,會限制識別的精確度,
二:若不計不復雜度,解析度很高的話,會有很多空格是空白的狀態,掃描物體只能掃描到表面,而內部是空白的,所以其實柵格并不是對三維的最好表達形式,

除了柵格化的轉化,還有人嘗試把3D的點云投影到一個平面,這樣3D資料就變成了一個2D的資料,然后用2D的卷積神經網路去處理,這樣做會損失一些3D的資訊,因為投影的程序中3D會產生丟失,而且要決定投影的角度,并不簡單,
在這里插入圖片描述

還有很多的方法,比如點云中手工提取特征,然后用一些用全連接的網路去處理,這樣會被手工提取的局限性限制住,

綜上:我們能不能做一種直接在點云上做特征學習的方法?有,PointNet,

PointNet:用于三維場景理解的點云深度學習

(此方法已經有別人總結過,可以看我上傳的資源:PointNet.pdf)
在這里插入圖片描述

下圖有直接的感觀,比如最左邊是一個物體的點云(杯子、桌子)分開成不同的類,也可以把一個物體分成不同的區塊,比如第二列,可以把飛機分成飛機機翼和機身,桌子分成桌面和桌腳,給出一個常見的空間的點云也可以做語意的分割,可以把場景的點分成桌子椅子墻壁,完成一系列的任務,

在這里插入圖片描述
我們構建模型必須考慮點云的兩點特性:

  1. 置換不變性:點云是一組無序點,點的順序不影響集合本身,
  2. 變換不變性:點云旋轉不應改變分類結果

首先看第1點:
在這里插入圖片描述

點云往往會表達成二維的矩陣,他是一個N行D列的矩陣,N行代表有N個點,D列就代表每個點有D維的特征,最簡單的D=3就代表這個點的xyz坐標,也可以有更多的特征比如顏色、法向量,若把矩陣的行做了變換,比如下圖藍色從一行到四行,他表示的仍是同一個點集,這就要求設計的網路對所有的置換都一樣,

在這里插入圖片描述
那如何做到置換的不變性?有一個系統化的解決方案,那就是設計一個對稱函式,
因為神經網路本身就是一個函式,對稱函式有置換不變性,下圖為舉例的取最大值的池化,就和點的順序無關,取所有點的和、平均都無關,

在這里插入圖片描述
在這種對稱函式的框架下,如何利用神經網路來構建一組對稱函式?

Construct Symmetric Functions by Neural Networks:構建程序為以下四個圖片,

下圖從最簡單的例子開始,我們有一組點(第一個點坐標為(1,2,3)),我們取最大值,第一維最大值為2、第三維最大值為4,得出(2,3,4),但這樣的話我們只能得到最大值,其他資訊就丟失了,
在這里插入圖片描述
怎么才不丟失?
我們先把每個點映射到一個高維的空間,比如用一個一千維的空間來表示三維空間,再來做取最大值的對稱性操作,可以避免資訊丟失,
在這里插入圖片描述
這個程序實際是一個函式的組合,函式g、h、r的一個組合,h把每個點做低維到高維的映射,然后只要函式g是對稱的那么整個函式就是對稱的,這個結構叫做原始的PointNet結構,
在這里插入圖片描述
執行程序可以用多層感知器來描述函式h、r,對于函式g可以有很多種選擇,比如max就是一個對稱性好的池化操作,
在這里插入圖片描述
我們用神經網路構建了PointNet(vanlilla),那么在所有的對稱函式空間中,他占據了一個什么位置呢?什么函式能代表什么函式并不能代表呢?
在這里插入圖片描述

實際上PointNet可以成為一種Universal Approximation(通用近似),可以任意的逼近集合上的對稱函式,只要這個對稱函式是在Hausdorff空間中是連續的,我們就可以通過增加神經網路的個數和網路的寬度來任意逼近這個函式,理論上是可行的,
在這里插入圖片描述
再看第2點:
如何來應對輸入點云的幾何變換?一輛車從不同角度看都應該是車,網路也要應對這種視角的變化,
在這里插入圖片描述
通過以下幾個圖片就可以理解:
Input Alignment by Transformer Network
增加一個基于資料本身的變換函式模塊,下圖最左邊輸入的點云是n×3,有n個點,三個位置xyz,我們希望對這個點做一個變換,有一個神經網路T-Net,來生成一個變化引數,然后對n×3的點云做變換生成另一組變換后的點,之后再用后面的網路機制處理這組點,我們希望通過整體優化這個變換函式以及之后的網路,使得這個變換函式能夠自動的去對準對齊我的輸入,若對齊后會使得后面網路的任務很簡單,把不同視角的問題簡化,
在這里插入圖片描述

實際中,點云是一個很容易做幾何變換的資料,不像圖片中要設計一個transform的network要涉及到很多插值等操作,點云里很簡單,只要做一個矩陣的乘法就可以,比如對一個正交化的變化僅僅是一個3×3的矩陣乘法,實作很簡單,
在這里插入圖片描述
推廣這個操作,不僅是輸入時做這個變換,我們還可以在點的中間特征做這個變換,比如我們剛開始有幾層網路已經把每個點變換成了k維,有一個N×K維的矩陣,每個點有k維的特征,我們可以用另外一個網路生成一個k×k的變換,我們可以用對個特征做一個特征空間的變換,也可以通過矩陣乘法方式實作,這樣變換完我們得到另一組特征,用接下來的網路進行處理,在優化程序中,因為高維的變換優化起來難度高,我們加一個Regularization loss(正則化損失),比如我們希望這個矩陣盡可能的接近一個正交矩陣,
在這里插入圖片描述
PointNet Classification Network
現在我們看如何把這些變換的網路和我們原始的PointNet結合起來,得到我們最終的分類網路和分割網路?
一步一步來看:
給定輸入的點云,n×3,
在這里插入圖片描述
先做輸入的幾何變換,通過一個變換網路生成一個3×3的矩陣做變換,
在這里插入圖片描述
然后通過mlp把每個點投影到64維的高維空間,
在這里插入圖片描述
然后在64維中再做一個高維空間的變換,把他變換到更歸一化的64維空間,
在這里插入圖片描述
然后我們繼續做mlp,把這64維繼續映射到1024維,
在這里插入圖片描述
在這1024維中我們可以做對稱性的操作,就是有最大化池化max pool來實作,得到一個global feature全域特征,有1024維,
在這里插入圖片描述
全域特征繼續處理,我們可以通過級聯的全連接網路,最后生成k個output scores,針對k的class,進行k的class分類,
在這里插入圖片描述
以上就是對點云的分類網路,那如何做對點云的分割呢?
分割可以理解為對每個點的分類問題,如果我們知道每個點的分類,就可以對這個點進行固定類別的分割,通過全域坐標沒法對每個點分割,我們可以把單個點的特征和全域坐標結合起來實作分割的功能,
在這里插入圖片描述
最簡單的做法,我們可以把全域的特征進行進行重復n遍,每一個和原來單個點的特征連接在一起,相當于單個點在全域特征中進行一次檢索,他單個點在全域特征中看自己處于哪一個位置,就可以判斷單個點屬于哪一個類,
在這里插入圖片描述
對每一個連接起來的特征做mlp的變換
在這里插入圖片描述
最后把每個點分類成m類,相當于輸出m個scores
在這里插入圖片描述
以上為一個分割網路,

Results on Object Classification
看一下上面網路的結果如何,
這是up主在點云深度學習中最早的一個作業,但是最早的作業和原來的3DCNN一些成熟的相比,在40個物體分類的問題上已經取得了很好的結果,
在這里插入圖片描述
物體部件分割的可視化,左邊為不全的物體Partial Inputs,右邊為完整的物體Complete Inputs的分割,可以看到耳機可以分割成三個部分(線、架子、耳套),
在這里插入圖片描述
結果上也是明顯好于原來的3DCNN
在這里插入圖片描述
下面是場景分割的結果,第一行展示的是帶有顏色的點云,雖然表示成圖片,實際上是三維的點云,第二行顯示的是網路分割的結果,可以分割成不同的區域,比如地面藍色、墻壁淡藍色、椅子紅色,
在這里插入圖片描述
PointNet不僅在理論上很有優異性,而且在實驗室效果很好,而且是一個輕量快速高效的模型,和傳統的基于多視角2DCNN、和基于3D柵格volumetricCNN的方法比,point能大幅提升空間利用效率和計算速度,和經典的volumetric相比可以剩下80%記憶體,
在這里插入圖片描述
計算上也可以剩下88%的計算量,高效性可用于移動或可穿戴設備
在這里插入圖片描述
同時對資料的丟失很魯棒,在40分類的問題上,我們看到有50%的點丟失時,pointnet分類精度僅有2%的影響,
在這里插入圖片描述
為什么PointNet對于資料的丟失這么魯棒呢?
我們可以通過一個可視化去理解:
第一行為原始的點云輸入,我們有一個最大池化的操作,實際上有些點的特征非常小,經過maxpool后他對全域特征沒做任何貢獻,
其中只有一些Critcal Point關鍵點展示出幾何骨骼的輪廓,這些點保存就可以分類正確,即第二行的點,
所以PointNet對資料的丟失很魯棒,
在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340639.html

標籤:AI

上一篇:人工智能之數學基礎篇—高等數學基礎中

下一篇:【隨學隨想】 自適應過濾法預測時間序列

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more