熱線電話:0755-23712116
郵箱:contact@shuangyi-tech.com
地址:深圳市寶安區(qū)沙井街道后亭茅洲山工業(yè)園工業(yè)大廈全至科技創(chuàng)新園科創(chuàng)大廈2層2A
1. 3D圖像描述
2. RGB-D
3. 點云
4. 何為點云?
5. 點云的獲取
6. 點云的內(nèi)容
7. 點云的屬性
8. 點云目前的主要存儲格式包括:pts、LAS、PCD、.xyz 和. pcap 等
9. 相應(yīng)基礎(chǔ)算法庫對不同格式的支持
10. 三維點云有多種表示方法
11. 相比于圖像數(shù)據(jù),點云不直接包含空間結(jié)構(gòu),因此點云的深度模型必須解決三個主要問題
12. DataSets
13. Metric
14. 基于點云的分類
15. 基于點云的分割
16. 基于點云的目標檢測
17. 點云數(shù)據(jù)的增強和完整化
三維圖像是在二維彩色圖像的基礎(chǔ)上又多了一個維度,即深度(Depth,D),可用一個很直觀的公式表示為:
三維圖像 = 普通的 RGB 三通道彩色圖像 + Depth Map。
· 第一種分法:
o 第多邊形網(wǎng)格
o 基于體素的描述
o 點云
o 隱式表面
o 基于視圖的描述
· 第二種分法:
o 深度圖像(depth images)
o 點云
o 網(wǎng)格(meshes)
o 體積網(wǎng)格(volumetric grids)
RGB-D 是廣泛使用的 3D 格式,其圖像每個像素都有四個屬性:即紅(R)、綠(G)、藍(B)和深度(D)。
在一般的基于像素的圖像中,我們可以通過(x,y)坐標定位任何像素,分別獲得三種顏色屬性(R,G,B)。而在 RGB-D 圖像中,每個(x,y)坐標將對應(yīng)于四個屬性(深度 D,R,G,B)。
我們在做 3D 視覺的時候,處理的主要是點云,點云就是一些點的集合。相對于圖像,點云有其不可替代的優(yōu)勢——深度,也就是說三維點云直接提供了三維空間的數(shù)據(jù),而圖像則需要通過透視幾何來反推三維數(shù)據(jù)。
· 其實點云是某個坐標系下的點的數(shù)據(jù)集。點包含了豐富的信息,包括三維坐標 X,Y,Z、顏色、分類值、強度值、時間等等。點云在組成特點上分為兩種,一種是有序點云,一種是無序點云。
o 有序點云:一般由深度圖還原的點云,有序點云按照圖方陣一行一行的,從左上角到右下角排列,當(dāng)然其中有一些無效點因為。有序點云按順序排列,可以很容易的找到它的相鄰點信息。有序點云在某些處理的時候還是很便利的,但是很多情況下是無法獲取有序點云的。
o 無序點云:無序點云就是其中的點的集合,點排列之間沒有任何順序,點的順序交換后沒有任何影響。是比較普遍的點云形式,有序點云也可看做無序點云來處理。
· 點云表示保留了三維空間中原始的幾何信息,不進行離散化
· 數(shù)據(jù)集規(guī)模小
· 高維性
· 3維點云的非建構(gòu)化特性
· 點云不是通過普通的相機拍攝得到的,一般是通過三維成像傳感器獲得,比如雙目相機、三維掃描儀、RGB-D 相機等。目前主流的 RGB-D 相機有微軟的 Kinect 系列、Intel 的 realsense 系列、structure sensor(需結(jié)合 iPad 使用)等。點云可通過掃描的 RGB-D 圖像,以及掃描相機的內(nèi)在參數(shù)創(chuàng)建點云,方法是通過相機校準,使用相機內(nèi)在參數(shù)計算真實世界的點(x,y)。因此,RGB-D 圖像是網(wǎng)格對齊的圖像,而點云則是更稀疏的結(jié)構(gòu)。此外,獲得點云的較好方法還包括 LiDAR 激光探測與測量,主要通過星載、機載和地面三種方式獲取。
· 根據(jù)激光測量原理得到的點云,包括三維坐標(XYZ)和激光反射強度(Intensity),強度信息與目標的表面材質(zhì)、粗糙度、入射角方向以及儀器的發(fā)射能量、激光波長有關(guān)。根據(jù)攝影測量原理得到的點云,包括三維坐標(XYZ)和顏色信息(RGB)。結(jié)合激光測量和攝影測量原理得到點云,包括三維坐標(XYZ)、激光反射強度(Intensity)和顏色信息(RGB)。
· 空間分辨率、點位精度、表面法向量等。
· 點云可以表達物體的空間輪廓和具體位置,我們能看到街道、房屋的形狀,物體距離攝像機的距離也是可知的;其次,點云本身和視角無關(guān),可以任意旋轉(zhuǎn),從不同角度和方向觀察一個點云,而且不同的點云只要在同一個坐標系下就可以直接融合。
o pts 點云文件格式是最簡便的點云格式,直接按 XYZ 順序存儲點云數(shù)據(jù), 可以是整型或者浮點型。
· LAS 是激光雷達數(shù)據(jù)(LiDAR),存儲格式比 pts 復(fù)雜,旨在提供一種開放的格式標準,允許不同的硬件和軟件提供商輸出可互操作的統(tǒng)一格式。LAS 格式點云截圖,其中 C:class(所屬類),F(xiàn):flight(航線號),T:time(GPS 時間),I:intensity(回波強度),R:return(第幾次回波),N:number of return(回波次數(shù)),A:scan angle(掃描角),RGB:red green blue(RGB 顏色值)。
· PCD 存儲格式,現(xiàn)有的文件結(jié)構(gòu)因本身組成的原因不支持由 PCL 庫(后文會進行介紹)引進 n 維點類型機制處理過程中的某些擴展,而 PCD 文件格式能夠很好地補足這一點。PCD 格式具有文件頭,用于描繪點云的整體信息:定義數(shù)字的可讀頭、尺寸、點云的維數(shù)和數(shù)據(jù)類型;一種數(shù)據(jù)段,可以是 ASCII 碼或二進制碼。數(shù)據(jù)本體部分由點的笛卡爾坐標構(gòu)成,文本模式下以空格做分隔符。
PCD 存儲格式是 PCL 庫官方指定格式,典型的為點云量身定制的格式。優(yōu)點是支持 n 維點類型擴展機制,能夠更好地發(fā)揮 PCL 庫的點云處理性能。文件格式有文本和二進制兩種格式。
· .xyz 一種文本格式,前面 3 個數(shù)字表示點坐標,后面 3 個數(shù)字是點的法向量,數(shù)字間以空格分隔。
· .pcap 是一種通用的數(shù)據(jù)流格式,現(xiàn)在流行的 Velodyne 公司出品的激光雷達默認采集數(shù)據(jù)文件格式。它是一種二進制文件
· obj是一種文本文件,通常用以“#”開頭的注釋行作為文件頭,數(shù)據(jù)部分每一行的開頭關(guān)鍵字代表該行數(shù)據(jù)所表示的幾何和模型元素,以空格做數(shù)據(jù)分隔符
· PCL(Point Cloud Library)庫支持跨平臺存儲,可以在 Windows、Linux、macOS、iOS、Android 上部署??蓱?yīng)用于計算資源有限或者內(nèi)存有限的應(yīng)用場景,是一個大型跨平臺開源 C++ 編程庫,它實現(xiàn)了大量點云相關(guān)的通用算法和高效數(shù)據(jù)結(jié)構(gòu),其基于以下第三方庫:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,實現(xiàn)點云相關(guān)的獲取、濾波、分割、配準、檢索、特征提取、識別、追蹤、曲面重建、可視化等操作,非常方便移動端開發(fā)。
· VCG 庫(Visulization and Computer Graphics Libary)是專門為處理三角網(wǎng)格而設(shè)計的,該庫很大,且提供了許多先進的處理網(wǎng)格的功能,以及比較少的點云處理功能。
· CGAL(Computational Geometry Algorithms Library)計算幾何算法庫,設(shè)計目標是以 C++ 庫的形式,提供方便、高效、可靠的幾何算法,其實現(xiàn)了很多處理點云以及處理網(wǎng)格的算法。
· Open3D 是一個可以支持 3D 數(shù)據(jù)處理軟件快速開發(fā)的開源庫。支持快速開發(fā)處理 3D 數(shù)據(jù)的軟件。Open3D 前端在 C++ 和 Python 中公開了一組精心選擇的數(shù)據(jù)結(jié)構(gòu)和算法。后端經(jīng)過高度優(yōu)化,并設(shè)置為并行化。Open3D 是從一開始就開發(fā)出來的,帶有很少的、經(jīng)過仔細考慮的依賴項。它可以在不同的平臺上設(shè)置,并且可以從源代碼進行最小的編譯。代碼干凈,樣式一致,并通過清晰的代碼審查機制進行維護。在點云、網(wǎng)格、rgbd 數(shù)據(jù)上都有支持。
· (如圖所示),不同的表示對應(yīng)著不同的處理方法。比較容易的處理方式為將其投影為二維圖像或者轉(zhuǎn)換為三維體素 (Voxel),從而將無序的空間點轉(zhuǎn)變?yōu)橐?guī)則的數(shù)據(jù)排列;也可以使用原始點作為表示,不做任何變換,該方式的好處為最大可能保留所有原始信息。此外,點云作為空間無序點集,可以被看作普適意義上的圖數(shù)據(jù)。點云還有另外一種表示,稱作網(wǎng)格 (Mesh),其也可以被看作是構(gòu)建了局部連接關(guān)系的點,即為圖。將點云看作圖數(shù)據(jù),可以使用圖領(lǐng)域新興的圖卷積 (Graph Convolution) 技術(shù)進行處理。需要提及的是,原始點的表示和圖表示之間并無明確界限(事實上原始點云和網(wǎng)格 (Mesh) 之間有一定區(qū)別,但若從語義理解方法的角度看,可暫時忽略此區(qū)別,將Mesh看作是增加了一種連接關(guān)系)
o 基于二維投影的方法。CNN 最好的應(yīng)用領(lǐng)域在于圖像處理,將三維點云數(shù)據(jù)投影到二維圖像平面,即可使得 CNN 應(yīng)用于點云數(shù)據(jù)成為可能。
o 基于三維體素的方法。對三維點云進行二維投影降低了算法處理的難度,但是三維到二維的投影必然帶來幾何結(jié)構(gòu)信息的損失,直接進行三維特征的提取在一些場景下是非常有必要的。一種最自然的想法便是 CNN 的延拓,將二維卷積神經(jīng)網(wǎng)絡(luò)拓展一個維度,使其可以處理三維排列的數(shù)據(jù);同時,對點云進行體素化 (Voxelization),將其轉(zhuǎn)換為空間上規(guī)則排布的柵格,使得三維卷積神經(jīng)網(wǎng)絡(luò)(Three Dimension Convolutional Neural Network, 3DCNN) 可以直接應(yīng)用在這種表示上。
o 基于原始點的方法。無論是二維投影還是三位體素,均需要對原始點云進行一定的轉(zhuǎn)換,而轉(zhuǎn)換必然帶來數(shù)據(jù)信息的損失。
o 基于圖的方法?,F(xiàn)實生活中存在大量的非結(jié)構(gòu)化數(shù)據(jù),如交通網(wǎng)絡(luò)、社交網(wǎng)絡(luò)等,這些數(shù)據(jù)的節(jié)點間存在聯(lián)系,可以表示為圖。研究圖數(shù)據(jù)的學(xué)習(xí)是近年來學(xué)界的熱點。三維點云數(shù)據(jù)可以看作圖數(shù)據(jù)的一種,圖網(wǎng)絡(luò)的很多思想可以被借鑒于點云數(shù)據(jù)的特征學(xué)習(xí)中。圖卷積 (Graph Convolution Network, GCN) 可分為基于譜的圖卷積(Spectralbased GCN) 和基于空間的圖卷積 (Spatial-based GCN)。
1. 如何從稀疏的點云找到高信息密度的表示,
2. 如何構(gòu)建一個網(wǎng)絡(luò)滿足必要的限制如size-variance和permutation-invariance,
3. 如何以較低的時間和計算資源消耗處理大量數(shù)據(jù)
o Classification method: overall accuracy , mean accuracy
o Segmentation models: accuracy , (m)IoU
o detection tasks: (m)IoU , accuracy , precision , recall
o Object tracking: MOTA , MOTP
o scene for estimation: EPE
o 3D match and registration models: ROC curves
o 對點云的分類通常稱為三維形狀分類。與圖像分類模型相似,三維形狀分類模型通常是先通過聚合編碼器生成全局嵌入,然后將嵌入通過幾個完全連通的層來獲得最終結(jié)果。
o 基于點云聚合方法,分類模型大致可分為兩類:基于投影的方法和基于點的方法
o 基于投影的方法
§ 基于投影的方法將非結(jié)構(gòu)化的三維點云投影到特定的預(yù)設(shè)模態(tài)中(例如體素、柱狀體),并從目標格式中提取特征,從而在相應(yīng)方向上受益于之前的研究成果。
§ Multi-view representation
§ MVCNN:
§ GVCNN
§ Volumetric representation
§ VoxNet
§ 3D ShapeNet
§ OctNet
§ OCNN
§ Basis point set
§ BPS
o 基于點的方法:
§ 與基于投影的方法從空間鄰域中聚合點相比,基于點的方法嘗試從單個點中學(xué)習(xí)特征。
§ MLP networks
§ Convolutional networks
§ Graph networks
§ 圖網(wǎng)絡(luò)將點云視為圖,將圖的頂點視為點,并根據(jù)每個點的鄰居生成邊。特征將在空間或光譜領(lǐng)域?qū)W習(xí)
o 數(shù)據(jù)來自 Mobile Laser Scanners (MLS), Aerial Laser Scanners (ALS), static Terrestrial Laser Scanners (TLS), RGBD cameras and other3D scanners
o 3D分割的目的是對每個點進行標記,這需要模型在每個點上收集全局上下文和詳細的局部信息。。在三維圖像分割中,主要有兩個任務(wù):語義分割和實例分割。
o Semantic Segmentation
§ 語義分割方法大致可分為基于投影的方法和基于點的方法
§ Projection-based methods
§ Huang和You將輸入點云投射到占用體素中,然后將其送入3D卷積網(wǎng)絡(luò),生成體素級標簽。
§ ScanComplete利用全卷積網(wǎng)絡(luò)來適應(yīng)不同的輸入數(shù)據(jù)大小,并部署一個由粗到細的策略來提高預(yù)測的層次分辨率。
§ Point-based methods
o Instance Segmentation
§ Proposal-based methods
§ 可以看作是目標檢測和掩模預(yù)測的結(jié)合。
§ Proposal-free methods
§ 無提案的方法傾向于基于聚類等算法的語義分割來生成實例級標簽。
§ 無提案方法不受區(qū)域提案層計算復(fù)雜度的影響;然而,它們通常很難從聚類中產(chǎn)生區(qū)分對象邊界
o 同時解決語義分割和實例分割的樸素方法有兩種:(1)先解決語義分割,根據(jù)語義分割的結(jié)果在某些標簽點上運行實例分割;(2)先解決實例分割,直接分配帶有實例標簽的語義標簽。這兩個階梯式范式高度依賴于第一步的輸出質(zhì)量,不能充分利用兩個任務(wù)之間的共享信息。
o 3D目標檢測可以分為3類:multi-view method,projection-based method,point-based method
o Projection-based methods
o Point-based method
§ 大多數(shù)基于點的方法都試圖在特征提取過程中使信息損失最小化,是目前性能最好的一組方法。
§ 與上述多視圖方法相比,基于分割的方法對于復(fù)雜場景和遮擋對象有更好的效果。
o 由激光雷達收集的點云,特別是那些來自室外場景的點云,遭受不同種類的質(zhì)量問題,如噪音,異常值,和遺漏點。所以我們的目標是補全缺失的點,移除掉異常的點。
o Discriminative Methods
§ 傳統(tǒng)的方法包括局部表面擬合、鄰域平均和猜測底層噪聲模型
§ PointCleanNet提出了一種基于數(shù)據(jù)驅(qū)動的方法去消除錯誤點減少噪聲
§ PCPNet首先對異常值進行分類并丟棄它們,然后估計一個將噪聲投影到原始表面的修正投影
§ Total Denoising,在不需要額外數(shù)據(jù)的情況下實現(xiàn)了非監(jiān)督降噪對點云數(shù)據(jù)
§ 臨界點層(CPL)在保留重要點的同時學(xué)會減少點的數(shù)量。這一層是確定性的,不確定順序的,并且通過避免鄰接搜索也很有效。
§ 通過將采樣后的點近似為原始點的混合來逼近點采樣的可微松弛
o Generative Methods
§ 通過生成假樣本,幫助定位網(wǎng)絡(luò)的潛在缺陷。
§ point perturbation and point generation:擾動是通過對已有的點進行可忽略的移動來實現(xiàn)的,生成是通過添加一些獨立分散的點或少量具有預(yù)定義形狀的點簇來實現(xiàn)的。
§ 除了對抗性生成,生成模型也用于點云上采樣。向上采樣點云通常有兩種動機。一是減少數(shù)據(jù)的稀疏性和不規(guī)則性,二是恢復(fù)遮擋造成的缺失點