當前位置:首頁 » 操作系統 » 點雲的演算法

點雲的演算法

發布時間: 2022-12-11 02:47:57

Ⅰ 提取平面點雲的輪廓

一. 基於凸包的凹點挖掘演算法

    1. 提取點雲的凸包

    2. 計算凸包每條邊的頂點的點密度(即該點 K 個臨近點到該點的距離平均值)

    3. 如果頂點點密度大於所在邊的長度的 X 倍,則刪除該邊,並從內部點中選擇出一個滿足夾角最大的點,插入邊界邊,形成兩條新的邊界邊

    4. 迭代 2 和 3,一直到全部邊界邊的 X 倍小於其端點的點密度,演算法結束

二. 基於 Delaunay 三角網的輪廓提取演算法:

A. 不使用輔助點:

    1. 首先對點雲進行 Delaunay 三角構網

   2. 同上,判斷每條網格邊長度的X倍和其端點的點密度之間的大小關系,並刪除長的網格邊

   3. 提取只屬於一個三角形的邊界,作為邊界邊

   4. 分類排序,得到有順序關系的內外輪廓

B. 使用輔助點:

   1. 手動在點雲的邊界附近選點

   2. Delaunay構網

   3. 判斷每個三角形,如果其中一個點是輔助點,而另外兩個點是點雲中的點,則連接這兩個點做為邊界邊

   4. 分類排序,得到有順序關系的內外輪廓

總體來說,由於構網演算法的時間復雜度較高,因此可以有選擇的使用上面兩種演算法,比如只有在確定要提取內輪廓的情況下,可以選擇第二種輪廓提取演算法

Ⅱ 點雲重建有哪些經典的演算法

三維重構演算法得看你用什麼感測器了,如果是雙目相機,那一般都是極線幾何加視覺特徵配準的演算法了,優化就用bundleadjustment。如果是單目,較早的有PTAM,DTAM,近幾年structfrommotion比較火。如果是用Kinect之類的RGBD相機,比較好的有微軟的KinectFusion,PCL的開源KinFu,以及MIT的加強版Kintinuous。如果用激光,那一般都是當SLAM做了,前端嘛就各種ICP配准演算法了,後端的話,三維中主要還是用圖優化來做。

Ⅲ 點雲數據處理的5個步驟

1.點雲濾波方法(數據預處理): 雙邊濾波、高斯濾波、條件濾波、直通濾波、隨機采樣一致性濾波。 VoxelGrid
2.關鍵點 ISS3D、Harris3D、NARF SIFT3D、
3.特徵和特徵描述 法線和曲率計算NormalEstimation、特徵值分析Eigen-Analysis、EGI PFH、FPFH、3D Shape Context、Spin Image
4.點雲匹配 ICP、穩健ICP、point to plane ICP、Point to line ICP、MBICP、GICP NDT 3D、Multil-Layer NDT FPCS、KFPCS

Ⅳ ICP演算法的三維點雲演算法

三維激光掃描技術的快速發展,使其在各個領域得到廣泛應用。由於物理上的一些限制,一次三維激光掃描不能獲取掃描物體的全部數據,因此要對掃描點雲進行拼接。首先,對最常用的ICP演算法進行一系列研究,ICP演算法的前提條件是具有一個良好的配准初值,文中在配准初值的選取上採用主成分分析法,為後續ICP演算法的工作提供一個良好前提條件,增加點集預處理,點對查找上增加各種限制,採用kd-tree加速查找,以此對演算法進行改進,並通過實例來驗證本演算法的有效性及合理性。

Ⅳ 點雲濾波相關

復制於:https://zhuanlan.hu.com/p/102748557

介紹

主要方法

直通濾波(PassThrough 濾波)

VoxelGrid濾波器對點雲進行下采樣

均勻采樣

增采樣

statisticalOutlierRemoval濾波器移除離群點

使用參數化模型投影點雲

ConditionalRemoval

RadiusOutlinerRemoval 移除離群點

從一個點雲中提取索引 根據點雲索引提取對應的點雲

介紹

點雲濾波,顧名思義,就是濾掉雜訊。原始採集的點雲數據往往包含大量散列點、孤立點,在獲取點雲數據時 ,由於設備精度,操作者經驗環境因素帶來的影響,以及電磁波的衍射性,被測物體表面性質變化和數據拼接配准操作過程的影響,點雲數據中講不可避免的出現一些雜訊。在點雲處理流程中濾波處理作為預處理的第一步,對後續的影響比較大,只有在濾波預處理中將雜訊點 ,離群點,孔洞,數據壓縮等按照後續處理定製,才能夠更好的進行配准,特徵提取,曲面重建,可視化等後續應用處理。其類似於信號處理中的濾波,

點雲濾波方法主要有:

1. 直通濾波器pcl::PassThrough<pcl::PointXYZ> pass

2. 體素格濾波器pcl::VoxelGrid<pcl::PCLPointCloud2> sor;

3. 統計濾波器    pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;

4. 半徑濾波器    pcl::RadiusOutlierRemoval<pcl::PointXYZ> outrem;

5. 雙邊濾波  pcl::BilateralFilter<pcl::PointXYZ> bf;

      該類的實現利用的並非XYZ欄位的數據進行,而是利用強度數據進行雙邊濾波演算法的實現,所以在使用該類時點雲的類型必須有強度欄位,否則無法進行雙邊濾波處理,雙邊濾波演算法是通過取臨近采樣點和加權平均來修正當前采樣點的位置,從而達到濾波效果,同時也會有選擇剔除與當前采樣點「差異」太大的相鄰采樣點,從而保持原特徵的目的 。

6. 高斯濾波    pcl::filters::GaussianKernel< PointInT, PointOutT > 

    是基於高斯核的卷積濾波實現  高斯濾波相當於一個具有平滑性能的低通濾波器

7. 立方體濾波 pcl::CropBox< PointT>   

  過濾掉在用戶給定立方體內的點雲數據

8. 封閉曲面濾波 pcl::CropHull< PointT> 

    過濾在給定三維封閉曲面或二維封閉多邊形內部或外部的點雲數據       

9. 空間剪裁:

        pcl::Clipper3D<pcl::PointXYZ>

        pcl::BoxClipper3D<pcl::PointXYZ>

        pcl::CropBox<pcl::PointXYZ>

        pcl::CropHull<pcl::PointXYZ> 剪裁並形成封閉曲面   

10. 卷積濾波:實現將兩個函數通過數學運算產生第三個函數,可以設定不同的卷積核

        pcl::filters::Convolution<PointIn, PointOut>

        pcl::filters::ConvolvingKernel<PointInT, PointOutT> 

11. 隨機采樣一致濾波

    等,

    通常組合使用完成任務。

PCL中點雲濾波的方案

點雲數據密度不規則需要平滑

因為遮擋等問題造成離群點需要去除

大量數據需要下采樣

雜訊數據需要去除

對應的方案如下

按照給定的規則限制過濾去除點

通過常用濾波演算法修改點的部分屬性

對數據進行下采樣

去除噪音

直通濾波(PassThrough 濾波)

最簡單的一種濾波器,它的作用是過濾掉在指定維度方向上取值不在給定值域內的點。直通濾波器的實現原理如下:首先,指定一個維度以及該維度下的值域,其次,遍歷點雲中的每個點,判斷該點在指定維度上的取值是否在值域內,刪除取值不在值域內的點,最後,遍歷結束,留下的點即構成濾波後的點雲。直通濾波器簡單高效,適用於消除背景等操作。

#include <pcl/filters/passthrough.h>

  如果使用線結構光掃描的方式採集點雲,必然物體沿z向分布較廣,

  但x,y向的分布處於有限范圍內。

  此時可使用直通濾波器,確定點雲在x或y方向上的范圍,

  可較快剪除離群點,達到第一步粗處理的目的。

結果:

VoxelGrid濾波器對點雲進行下采樣

使用體素化網格方法實現下采樣,即減少點的數量 減少點雲數據,並同時保存點雲的形狀特徵,在提高配准,曲面重建,形狀識別等演算法速度中非常實用,PCL是實現的VoxelGrid類通過輸入的點雲數據創建一個三維體素柵格,容納後每個體素內用體素中所有點的重心來近似顯示體素中其他點,這樣該體素內所有點都用一個重心點最終表示,對於所有體素處理後得到的過濾後的點雲,這種方法比用體素中心(注意中心和重心)逼近的方法更慢,但是對於采樣點對應曲面的表示更為准確。

在網格內減少點數量保證重心位置不變

下采樣 同時去除 NAN點

  如果使用高解析度相機等設備對點雲進行採集,往往點雲會較為密集。

  過多的點雲數量會對後續分割工作帶來困難。

  體素格濾波器可以達到向下采樣同時不破壞點雲本身幾何結構的功能。

  點雲幾何結構 不僅是宏觀的幾何外形,也包括其微觀的排列方式,

  比如橫向相似的尺寸,縱向相同的距離。

  隨機下采樣雖然效率比體素濾波器高,但會破壞點雲微觀結構.

  使用體素化網格方法實現下采樣,即減少點的數量 減少點雲數據,

  並同時保存點雲的形狀特徵,在提高配准,曲面重建,形狀識別等演算法速度中非常實用,

  PCL是實現的VoxelGrid類通過輸入的點雲數據創建一個三維體素柵格,

  容納後每個體素內用體素中所有點的重心來近似顯示體素中其他點,

  這樣該體素內所有點都用一個重心點最終表示,對於所有體素處理後得到的過濾後的點雲,

  這種方法比用體素中心(注意中心和重心)逼近的方法更慢,但是對於采樣點對應曲面的表示更為准確。

結果:

結果不太明顯,換一個:

均勻采樣 pcl::UniformSampling

這個類基本上是相同的,但它輸出的點雲索引是選擇的關鍵點,是在計算描述子的常見方式。

  原理同體素格 (正方體立體空間內 保留一個點(重心點))

  而 均勻采樣:半徑求體內 保留一個點(重心點)

  #include <pcl/filters/uniform_sampling.h>//均勻采樣

增采樣 setUpsamplingMethod

增采樣是一種表面重建方法,當你有比你想像的要少的點雲數據時,

  增采樣可以幫你恢復原有的表面(S),通過內插你目前擁有的點雲數據,

  這是一個復雜的猜想假設的過程。所以構建的結果不會百分之一百准確,

  但有時它是一種可選擇的方案。

  所以,在你的點雲雲進行下采樣時,一定要保存一份原始數據!

statisticalOutlierRemoval濾波器移除離群點

作用是去除稀疏離群噪點。在採集點雲的過程中,由於測量雜訊的影響,會引入部分離群噪點,它們在點雲空間中分布稀疏。在估算點雲局部特徵(例如計算采樣點處的法向量和曲率變化率)時,這些噪點可能導致錯誤的計算結果,從而使點雲配准等後期處理失敗。統計濾波器的主要思想是假設點雲中所有的點與其最近的k個鄰居點的平均距離滿足高斯分布,那麼,根據均值和方差可確定一個距離閾值,當某個點與其最近k個點的平均距離大於這個閾值時,判定該點為離群點並去除。統計濾波器的實現原理如下:首先,遍歷點雲,計算每個點與其最近的k個鄰居點之間的平均距離;其次,計算所有平均距離的均值μ與標准差σ,則距離閾值dmax可表示為dmax=μ+α×σ,α是一個常數,可稱為比例系數,它取決於鄰居點的數目;最後,再次遍歷點雲,剔除與k個鄰居點的平均距離大於dmax的點。

#include <pcl/filters/statistical_outlier_removal.h>

  統計濾波器用於去除明顯離群點(離群點往往由測量雜訊引入)。

  其特徵是在空間中分布稀疏,可以理解為:每個點都表達一定信息量,

  某個區域點越密集則可能信息量越大。雜訊信息屬於無用信息,信息量較小。

  所以離群點表達的信息可以忽略不計。考慮到離群點的特徵,

  則可以定義某處點雲小於某個密度,既點雲無效。計算每個點到其最近的k(設定)個點平均距離

  。則點雲中所有點的距離應構成高斯分布。給定均值與方差,可剔除n個∑之外的點

  激光掃描通常會產生密度不均勻的點雲數據集,另外測量中的誤差也會產生稀疏的離群點,

  此時,估計局部點雲特徵(例如采樣點處法向量或曲率變化率)時運算復雜,

  這會導致錯誤的數值,反過來就會導致點雲配准等後期的處理失敗。

  解決辦法:對每個點的鄰域進行一個統計分析,並修剪掉一些不符合標準的點。

  具體方法為在輸入數據中對點到臨近點的距離分布的計算,對每一個點,

  計算它到所有臨近點的平均距離(假設得到的結果是一個高斯分布,

  其形狀是由均值和標准差決定),那麼平均距離在標准范圍之外的點,

  可以被定義為離群點並從數據中去除。

使用參數化模型投影點雲

使用參數化模型投影點雲

  如何將點投影到一個參數化模型上(平面或者球體等),

  參數化模型通過一組參數來設定,對於平面來說使用其等式形式。

  在PCL中有特定存儲常見模型系數的數據結構。

投影前的Z軸都不為0 ,投影之後,列印的結果表明,xy的值都沒有改變,z都變為0。所以該投影濾波類就是輸入點雲和投影模型,輸出為投影到模型上之後的點雲。

ConditionalRemoval 或 RadiusOutlinerRemoval 移除離群點

ConditionalRemoval 濾波器的理解

可以一次刪除滿足對輸入的點雲設定的一個或多個條件指標的所有的數據點

刪除點雲中不符合用戶指定的一個或者多個條件的數據點

RadiusOutlierRemoval移除離群點

一個比較簡單常用的方法就是根據空間點半徑范圍臨近點數量來濾波,對應的類名是 RadiusOutlinerRemoval,這個很容易理解,它的濾波思想非常直接,就是在點雲數據中,設定每個點一定半徑范圍內周圍至少有足夠多的近鄰,不滿足就會被刪除。比如你指定了一個半徑d,然後指定該半徑內至少有1個鄰居,那麼下圖中只有黃色的點將從點雲中刪除。如果指定了半徑內至少有2個鄰居,那麼黃色和綠色的點都將從點雲中刪除。

  球半徑濾波器與統計濾波器相比更加簡單粗暴。

  以某點為中心畫一個球計算落在該球內的點的數量,當數量大於給定值時,

  則保留該點,數量小於給定值則剔除該點。

  此演算法運行速度快,依序迭代留下的點一定是最密集的,

  但是球的半徑和球內點的數目都需要人工指定。

Ⅵ 激光點雲預處理研究概述

       3D點雲數據的預處理是利用有效點雲信息進行三維重建及障礙物感知的基礎,是3D點雲配准、3D點雲拼接環節的前提。一般的 3D 點雲預處理工作包括地面點雲去除、點雲濾波和點雲分割。在三維點雲數據處理過程中,點雲數據離群點、雜訊點的剔除以及點雲數據的配准不僅是點雲數據處理中的重要環節,也是後期對點雲數據進行特徵提取完成檢測環節的基礎。

        在進行目標物體分割時,將離散的三維數據點聚類的判斷依據為點與點之間距離是否接近,而在激光雷達點雲數據中,有很大一部分數據屬於地面點數據,並且地面點雲呈現為紋理狀,這對後續障礙物點雲的分類,識別帶來干擾,如果不將這些地面點數據去除,在進行目標物體分割時會導致分割演算法失效,因此需要先進行過濾。所以,地面點雲數據去除是減少數據量以及提高分割演算法准確度的有效手段。

       因此為了提高去除地面點雲演算法的准確性和魯棒性,許多學者提出了大量研究方法,這些方法主要有以下兩類:基於柵格圖方法的地面去除研究、基於三維激光雷達原始掃描線數據的地面去除研究。

       通過激光雷達掃描得到的點雲包含大部分地面點,常用的柵格圖方法地面濾除點雲方法有柵格高度差法、法向量方法和高度法。柵格高度法首先根據柵格大小生成網格,計算每個網格最低點與最高點的高度差,比較h與預設高度差閾值大小,對網格進行分類,最後根據網格對網格內的點進行分類。法向量法是基於計算出地面法向量為豎直向下或向上的假設,即地面點法向量值為(0,0,1)或(0,0,-1)。方法過程是計算點法向量並設定點分類的法向量閾值。高度法去除地面點雲,是最常用且耗時最小的方法。根據激光雷達安裝位置與姿態,可以根據設定閾值直接將點雲分為地面點和障礙物點。

       基於柵格圖的點雲處理方式是通過將三維點雲數據投影到地面,建立多個柵格單元,採用連通區域標記演算法或者鄰域膨脹策略對目標進行聚類,這類方法被廣泛應用在激光雷達三維建模中。一是因為三維點雲向二維平面投影過程極大地壓縮了數據量,能夠提高演算法處理的實時性;二是因為點雲向柵格圖的映射,將復雜的三維點雲處理問題轉化為圖像處理問題,可以使用成熟的圖像處理相關演算法,提高了演算法處理的時間效率。柵格法簡單可靠、計算效率高,但是柵格單元參數固定且往往憑經驗確定,遠距離目標點雲較為稀疏往往會出現過分割,而近距離目標點雲較為稠密又會出現欠分割,演算法嚴重依賴於閾值參數的選擇,且往往需要逐幀進行分析,必然損失部分實時性。

       由於三維激光雷達的原始三維數據包含了詳細的空間信息,所以也可以用來進行相關點雲數據處理。激光掃描線在地面和障礙物形成的角度值存在顯著的不同,可作為分離地面點的重要依據。激光雷達中的多個激光器水平掃描周圍環境中的物體,在兩個相鄰物體之間形成的角度很小,而同一物體的角度值很大。這啟示了我們可以充分利用這一特性,大於角度閾值可認為這兩點是同一物體,較好地處理了相鄰目標欠分割的問題。通過將非地面點雲分割為不同物體,然後進行目標物體的識別,可以為無人車提供更加詳細的車輛、行人等障礙物信息,在運動中避免與不同類型的障礙物發生碰撞並進行及時避讓。地面點雲欠分割會導致目標漏檢,過分割又會對後續的識別等操作帶來影響。利用激光雷達產生點雲的幾何特性,研究人員提出了多種特徵構建的方法,基於三維激光雷達原始掃描線數據的地面去除研究屬於其中較為常用的方法。

       激光雷達在採集三維點雲數據的過程中,會受到各類因素的影響,所以在獲取數據時,就會出現一些雜訊。其實在實際工作中除了自身測量的誤差外,還會受到外界環境的影響如被測目標被遮擋,障礙物與被測目標表面材質等影響因素;另外,一些局部大尺度雜訊由於距離目標點雲較遠,無法使用同一種方法對其進行濾波。

       雜訊就是與目標信息描述沒有任何關聯的點,對於後續整個三維場景的重建起不到任何用處的點。但是在實際的點雲數據處理演算法中,把雜訊點和帶有特徵信息的目標點區別開來是很不容易的,去噪過程中由於許多外在因素總是不可避免的伴隨著一些特徵信息的丟失。一個好的點雲濾波演算法不僅實時性要求高,而且在去噪的同時也要很好的保留模型的特徵信息[88]。就需要把點雲數據的雜訊點特徵研究透徹,才能夠提出效果更好的去噪演算法。

       點雲數據是一種非結構化的數據格式,激光雷達掃描得到的點雲數據受物體與雷達距離的影響,分布具有不均勻性,距離雷達近的物體點雲數據分布密集,距離雷達遠的物體點雲數據分布稀疏。此外,點雲數據具有無序和非對稱的特徵,這就導致點雲數據在數據表徵時缺乏明確統一的數據結構,加劇了後續點雲的分割識別等處理的難度。神經網路作為一種端到端的網路結構,往往處理的數據是常規的輸入數據,如序列、圖像、視頻和3D數據等,無法對點集這樣的無序性數據直接進行處理,在用卷積操作處理點雲數據時,卷積直接將點雲的形狀信息舍棄掉,只對點雲的序列信息進行保留。

       點雲濾波是當前三維重建技術領域的研究熱點,同時也是許多無人駕駛應用數據處理過程中至關重要的一步。3D點雲濾波方法主要可以分為以下三類,主要包括基於統計濾波、基於鄰域濾波以及基於投影濾波。

       由於統計學概念特別符合點雲的特性,因此,許多國內外學者都將統計學方法引用到點雲濾波技術中,Kalogerakis 等人將一種穩健統計模型框架運用到點雲濾波中,取得了非常好的濾波效果。在這個統計模型框架中,通過使用最小二乘迭代方法來估計曲率張量,並在每次迭代的時候根據每個點周圍的領域來為樣本分配權重,從而細化每個點周圍的每一個鄰域。然後利用計算獲得的曲率以及統計權重來重新校正正態分布。通過全局能量的最小化並通過計算出的曲率和法線來把離群點去掉,並且能較好的保持點雲的紋理特徵。

       基於鄰域的點雲濾波技術,就是通過使用一種相似性度量的方法來度量點和其他周圍鄰域對濾波效率與結果影響比較大點的相似性,從而來確定濾波點的位置。一般來說,可以通過點雲的位置、法線和區域位置來度量其相似性。1998年,Tomasi等人將雙邊濾波器擴展到 3D 模型去噪,由於雙邊濾波器具有維持邊緣平滑的特點,所以在除去點雲數據雜訊的同時也能較好的保持細節。但是,由於該方法是通過一個網格生成的過程來去噪的,而在生成網格的過程就會引入額外的雜訊。相比較於規則格網、不規則三角網等數據結構,體元是真3D的結構並且隱含有鄰域關系,能夠有效的防止生成網格的過程中引入雜訊,但該方法的需要設置的參數比較多,不能滿足實際工業運用。

       基於投影濾波技術通過不同的投影測量來調整點雲中每個點的位置,從而實現雜訊點雲的去除。但是,如果輸入的點雲特別不均勻,經過局部最優投影處理後的點雲將變得更散亂。孫渡等人提出了一種基於多回波及 Fisher 判別的濾波演算法。首先結合格網劃分思想劃分點雲網格,在每個網格內,通過點雲數據的回波次數和強度進行劃分,分出待定的樣本;其次,利用Fisher判別的分析法將點雲投影到一維空間內,通過判定臨界值將植被點雲與地面點雲分離,實現陡坡點雲的濾波,但是,該方法只針對點雲中含有回波強度的屬性才有效,對於不包含回波強度信息的點雲,該方法失去作用。

       為彌補點雲本身的無序性、不對稱性、非結構化和信息量不充分等缺陷,在對點雲進行特徵識別及語義分割等操作之前,需先對點雲進行數據形式的變換操作。常用的點雲形式變換方法有網格化點雲、體素化點雲、將點雲進行球面映射等。

       體素化是為了保持點雲表面的特徵點的同時濾除不具備特徵的冗餘的點雲數據。由於常用的法向量計算取決於相鄰點的數量,並且兩個雲點的解析度也不同。所以具有相同體素大小的體素化就是為了在兩個不同解析度的點雲中生成等效的局部區域。在實際進行點雲配准演算法的過程中,由於用於配準的源點雲數據與目標點雲數據的數量比較龐大、點雲密集,並且這些原始點雲數據中含有許多點雲對於描述物體形狀特徵沒有任何作用的點,如果使用演算法直接對源點雲與目標點雲進行配置的話,整個過程將耗費大量時間,所以必須對點雲進行下采樣的同時仍保留住可以體現形狀輪廓特徵的那部分點雲。

       由於點雲本身的稀疏性、無序性和非均勻分布的特點,在利用深度全卷積神經網路結構對激光雷達點雲數據進行語義分割時,端到端的卷積神經網路無法直接對無序排布點雲進行操作。為使端到端的神經網路在無序性分布的點雲數據上具有通用性,需先對點雲數據進行映射,常見的投影方式有基於平面的投影、基於圓柱面的投影以及基於球面的點雲投影方式。

參考:

周天添等(基於深度神經網路的激光雷達點雲語義分割演算法研究)

李宏宇(激光雷達的點雲數據處理研究)

范小輝(基於激光雷達的行人目標檢測與識別)

Ⅶ 標題 點雲數據三種採集方法的優缺點

格點采樣、均勻采樣、幾何采樣。
1.格點采樣:優點:效率非常高。采樣點分布比較均勻,但是均勻性沒有均價采樣高,可以通過格點的尺寸控制點間距。缺點:不能精確控制采樣點個數。
2.均勻采樣:優點:采樣點分布均勻。缺點:演算法時間復雜度有些高,因為每次采樣一個點,都要計算集合到集合之間的距離。
3.幾何采樣:優點:計算效率高,采樣點局部分布是均勻的,穩定性高:通過幾何特徵區域的劃分,使得采樣結果抗噪性更強。
點雲數據(point cloud data)是指在一個三維坐標系統中的一組向量的集合。掃描資料以點的形式記錄,每一個點包含有三維坐標,有些可能含有顏色信息(RGB)或反射強度信息。

Ⅷ 點雲數據UDP數據包解析演算法舉例

# fill pcl msg

fields = [PointField('x', 0, PointField.FLOAT32, 1),

             PointField('y', 4, PointField.FLOAT32, 1),

             PointField('z', 8, PointField.FLOAT32, 1),

              PointField('intensity', 12, PointField.FLOAT32, 1)]

包括激光點的三維坐標、多次回波信息、強度信息、掃描角度、分類信息、飛行航帶信息、飛行姿態信息、項目信息、GPS信息、數據點顏色信息等

C–class(所屬類)

F一flight(航線號)

T一time(GPS時間)

I一intensity(回波強度)

R一return(第幾次回波)

N一number of return(回波次數)

A一scan angle(掃描角)

RGB一red green blue(RGB顏色值)

點雲數據UDP數據包解析演算法舉例

以某一個UDP數據包中Block 3中的Channel 5為例,具體的線束分布請參考附錄I:

1)由附錄I可知,Channel 5對應的水平角度偏移量為-1.042°,垂直角度為3.04°。

2)水平角度為轉子此時的角度加上水平角度偏移量=(Azimuth Angle 3+(-1.042))度

(注意 我們定義從上往下看時,順時針為水平角度正方向)。

3)解析UDP包Channel 5 Unit 3的值,其高位2個bytes構成的距離值乘以4mm即可得到以毫米為單位的真實世界的測距值。

至此,這一個測距點表示的測距方向和測距距離都得到了解析,可以在極坐標系或者直角坐標系中畫出此次測距對應的障礙物點位置。對每個UDP包中所有的測距數據都做這樣的解析,即可畫出實時的激光雷達測距點雲。

3.2 GPS數據UDP包

每一個GPS數據包都含有42 bytes乙太網包頭及512 bytes UDP數據。所有的多位元組值均為小端位元組序Little Endian。GPS數據包每秒被觸發一次,端

口10110。

在接收到GPS數據前,激光雷達內部的1Hz的信號上升沿會觸發一個GPS數據包。GPS數據包中的初始時間為000101000000(yymmddhhmmss,年,

月,日,時,分,秒)。如果GPRMC信息在開始時沒有被提供,此非真實的GPS時間會隨著內部1Hz信號更新。如果雷達接收到PPS信號和GPRMC數

據,本地的1Hz信號會被鎖定到PPS信號。GPS數據包還是通過內部1Hz信號上升沿觸發。同時,GPS數據包中的時間會被更新為GPRMC信息中的真實

時間。

GPS模塊首先會發送PPS信號,再發送GPRMC信息。雷達可以從中提取出UTC信息,並把6 bytes的UTC時間(年:月:日:時:分:秒)輸入到點雲

數據包中。用戶可以通過相加點雲數據包中4 bytes的時間戳和6 bytes的UTC時間來獲得此數據包的絕對時間。

一旦雷達獲取到GPS信號,數據包中的GPS時間就會根據接收到的GPRMC信息進行更新。如果GPS模塊停止發送數據,雷達依然會根據內部1Hz信號上

升沿觸發GPS數據包,並且數據包中GPS時間會根據之前得到的真實GPS時間計時。

Ⅸ 點雲概念與點雲處理

點雲概念

點雲與三維圖像的關系 :三維圖像是一種特殊的信息表達形式,其特徵是表達的空間中三個維度的數據,表現形式包括:深度圖(以灰度表達物體與相機的距離),幾何模型(由CAD軟體建立),點雲模型(所有逆向工程設備都將物體采樣成點雲)。和二維圖像相比,三維圖像藉助第三個維度的信息,可以實現天然的物體——背景解耦。點雲數據是最為常見也是最基礎的三維模型。點雲模型往往由測量直接得到,每個點對應一個測量點,未經過其他處理手段,故包含了最大的信息量。這些信息隱藏在點雲中需要以其他提取手段將其萃取出來,提取點雲中信息的過程則為三維圖像處理。

點雲的概念 :點雲是在同一空間參考系下表達目標空間分布和目標表面特性的海量點集合,在獲取物體表面每個采樣點的空間坐標後,得到的是點的集合,稱之為「點雲」(Point Cloud)。

點雲的獲取設備 :RGBD設備是獲取點雲的設備,比如PrimeSense公司的PrimeSensor、微軟的Kinect、華碩的XTionPRO。

點雲的內容 :根據激光測量原理得到的點雲,包括三維坐標(XYZ)和激光反射強度(Intensity),強度信息與目標的表面材質、粗糙度、入射角方向,以及儀器的發射能量,激光波長有關。

根據攝影測量原理得到的點雲,包括三維坐標(XYZ)和顏色信息(RGB)。

結合激光測量和攝影測量原理得到點雲,包括三維坐標(XYZ)、激光反射強度(Intensity)和顏色信息(RGB)。

點雲的屬性 :空間解析度、點位精度、表面法向量等。

點雲存儲格式 :*.pts; *.asc ; *.dat; .stl ; [1] .imw;.xyz; .las。LAS格式文件已成為LiDAR數據的工業標准格式,LAS文件按每條掃描線排列方式存放數據,包括激光點的三維坐標、多次回波信息、強度信息、掃描角度、分類信息、飛行航帶信息、飛行姿態信息、項目信息、GPS信息、數據點顏色信息等。

C–class(所屬類)

F一flight(航線號)

T一time(GPS時間)

I一intensity(回波強度)

R一return(第幾次回波)

N一number of return(回波次數)

A一scan angle(掃描角)

RGB一red green blue(RGB顏色值)

點雲的數據類型 :

(1)pcl::PointCloudpcl::PointXYZ

PointXYZ 成員:float x,y,z;表示了xyz3D信息,可以通過points[i].data[0]或points[i].x訪問點X的坐標值

(2)pcl::PointCloudpcl::PointXYZI

PointXYZI成員:float x, y, z, intensity; 表示XYZ信息加上強度信息的類型。

(3)pcl::PointCloudpcl::PointXYZRGB

PointXYZRGB 成員:float x,y,z,rgb; 表示XYZ信息加上RGB信息,RGB存儲為一個float。

(4)pcl::PointCloudpcl::PointXYZRGBA

PointXYZRGBA 成員:float x , y, z; uint32_t rgba; 表示XYZ信息加上RGBA信息,RGBA用32bit的int型存儲的。

(5) PointXY 成員:float x,y;簡單的二維x-y點結構

(6)Normal結構體:表示給定點所在樣本曲面上的法線方向,以及對應曲率的測量值,用第四個元素來佔位,兼容SSE和高效計算。

點雲的處理

點雲處理的三個層次 :Marr將圖像處理分為三個層次,低層次包括圖像強化,濾波,關鍵點/邊緣檢測等基本操作。中層次包括連通域標記(label),圖像分割等操作。高層次包括物體識別,場景分析等操作。工程中的任務往往需要用到多個層次的圖像處理手段。

PCL官網對點雲處理方法給出了較為明晰的層次劃分,如圖所示。

此處的common指的是點雲數據的類型,包括XYZ,XYZC,XYZN,XYZG等很多類型點雲,歸根結底,最重要的信息還是包含在pointpcl::point::xyz中。可以看出,低層次的點雲處理主要包括濾波(filters),關鍵點(keypoints)/邊緣檢測。點雲的中層次處理則是特徵描述(feature),分割(segmention)與分類。高層次處理包括配准(registration),識別(recognition)。可見,點雲在分割的難易程度上比圖像處理更有優勢,准確的分割也為識別打好了基礎。

低層次處理方法:

①濾波方法:雙邊濾波、高斯濾波、條件濾波、直通濾波、隨機采樣一致性濾波。②關鍵點:ISS3D、Harris3D、NARF,SIFT3D

中層次處理方法:

①特徵描述:法線和曲率的計算、特徵值分析、SHOT、PFH、FPFH、3D Shape Context、Spin Image

②分割與分類:

分割:區域生長、Ransac線面提取、全局優化平面提取

K-Means、Normalize Cut(Context based)

3D Hough Transform(線、面提取)、連通分析

分類:基於點的分類,基於分割的分類,基於深度學習的分類(PointNet,OctNet)

高層次處理方法:

①配准:點雲配准分為粗配准(Coarse Registration)和精配准(Fine Registration)兩個階段。

精配準的目的是在粗配準的基礎上讓點雲之間的空間位置差別最小化。應用最為廣泛的精配准演算法應該是ICP以及ICP的各種變種(穩健ICP、point to plane ICP、Point to line ICP、MBICP、GICP、NICP)。

粗配準是指在點雲相對位姿完全未知的情況下對點雲進行配准,可以為精配准提供良好的初始值。當前較為普遍的點雲自動粗配准演算法包括基於窮舉搜索的配准演算法和基於特徵匹配的配准演算法。

基於窮舉搜索的配准演算法:遍歷整個變換空間以選取使誤差函數最小化的變換關系或者列舉出使最多點對滿足的變換關系。如RANSAC配准演算法、四點一致集配准演算法(4-Point Congruent Set, 4PCS)、Super4PCS演算法等……

基於特徵匹配的配准演算法:通過被測物體本身所具備的形態特性構建點雲間的匹配對應,然後採用相關演算法對變換關系進行估計。如基於點FPFH特徵的SAC-IA、FGR等演算法、基於點SHOT特徵的AO演算法以及基於線特徵的ICL等…

②SLAM圖優化

Ceres(Google的最小二乘優化庫,很強大), g2o、LUM、ELCH、Toro、SPA

SLAM方法:ICP、MBICP、IDC、likehood Field、NDT

③三維重建

泊松重建、 Delaunay triangulations、表面重建,人體重建,建築物重建,樹木重建。結構化重建:不是簡單的構建一個Mesh網格,而是為場景進行分割,為場景結構賦予語義信息。場景結構有層次之分,在幾何層次就是點線面。實時重建:重建植被或者農作物的4D(3D+時間)生長態勢;人體姿勢識別;表情識別;

④點雲數據管理:點雲壓縮,點雲索引(KD、Octree),點雲LOD(金字塔),海量點雲的渲染

Ⅹ 如何對一片散亂點雲進行坐標變換

合並到一個統一的坐標系下,這就是點雲數據的配准,該相關技術在逆向工程、曲面質量檢測和虛擬現實等領域均有著廣泛的應用1
目前,解決不同點雲數據集配准問題的直接方法有在被測物體上貼固定球和使用高精度的旋轉工作台[1]1固定球會使部分物體不可見,一般應貼在相對較平坦的區域1流動式光學掃描儀Atos是在物體上或固定物體的工具上貼特製的圓形標簽,其作用相當於固定球1根據前後2個視角觀察的3個或3個以上不共線的公共標簽來對數據進行配准,利
用旋轉工作台可直接對測量數據進行配准,但是物體底部和下部的數據點是無法採集的1
在三維點雲數據的自動配准中,運用最為廣泛的是由Besl等提出的最近點迭代(iterativeclosestpoint,ICP)演算法[2]1但是ICP演算法要求2個匹配點
集中的一個點集是另外一個點集的子集,即2個點集之間存在著包含關系,當這個條件不滿足時,將影響ICP的收斂結果,產生錯誤的匹配1顯然,對於2個點雲數據之間的部分配准問題,這種包含關系是不存在的1另外,ICP演算法對2個點雲相對初始位置要求較高,點雲之間的的初始位置不能相差太大;否則,ICP的收斂方向是不確定的,因而配准結果也是不可靠的1
Chen[3]等運用2個曲面在法矢方向的距離來
代替某一點到其最近點的距離,並將其作為匹配的目標評價函數1這一設想最初是由Potmesil[4]於1983年提出的,在文獻[3]的工作中它被推廣為最
優加權的最小二乘方法1但文獻[3]的方法需要求解非線性最小二乘問題,速度較慢1Masuda等[5]對點集進行隨機采樣,用最小中值平方誤差作為度量准則,該方法在每一次迭代後都需要進行重新采樣1Johnson等
[6]
使用特徵提取策略去除沒有啟發信息
的平面點來提高配准速度,在點雲數據法矢變化連續、突變比較少的情況下,其速度沒有明顯的提高1文獻[728]通過引入參考點的方法來實現三維點雲數據的配准,這些參考點其實也是一種標簽點,需要在測量前貼在被測物體上1
本文提出了一種更為通用的空間散亂點雲的配准演算法,該演算法不需要在被測物體上附加任何參考點或標簽點,僅利用點雲數據自身所具有的幾何信息,對待配准散亂點雲的相對位置沒有要求,可以處在空間任意位置上;而且本文演算法能夠實現散亂點雲的部分配准和整體配准1
1 演算法概述
散亂點雲的整體配準是一個點雲數據與另一個
點雲數據進行整體的數據融合,而部分配準是將一個點雲數據的子集與另一個點雲或其子集進行數據融合1本文演算法的基本思想是首先估算出散亂點雲數據中每一個測點的法矢和曲率,並根據一個點集中每個測點的曲率來尋找其在另一個點集中的曲率相近點,所有的曲率相近點構成一系列點對1計算將每個點對的法矢方向映射為一致的三維空間變換,每個點對間所有可能的三維變換構建一個哈希列表,找出列表中使得最多數量的點對法矢一致的變換,該變換能夠將2個點雲數據進行粗略配准1將粗略配准後2個點雲的位置作為新的初始位置,用統計出的曲率相近點對作為初始的配准點對集合,運用ICP演算法對散亂點雲的初始配准結果做進一步地優化,從而實現散亂點雲的精確配准1
2 演算法原理及步驟
211 散亂點雲數據微分幾何特性估算
光學掃描設備採集到的點雲數據密度很高,存在大量的冗餘數據,嚴重影響後續演算法的效率,因此在對散亂點雲的微分幾何特性估算前,應先按照一定要求減少測量點的數量1
對簡化後的點雲數據進行空間劃分,並在點集中尋找每個測點的k2近鄰1設測點pi的k2近鄰且包括該點記為Nbhd(pi),為計算該點的法矢和曲率,借鑒文獻[9]的方法,採用參數二次曲面來逼近散亂數據點,設二次曲面的參數方程。

熱點內容
c語言跳出死循環 發布:2025-05-15 20:06:04 瀏覽:823
a19處理器相當於安卓哪個水平 發布:2025-05-15 20:05:29 瀏覽:638
榮耀9i安卓強行關機按哪個鍵 發布:2025-05-15 20:00:32 瀏覽:750
密碼鎖寫什麼最好 發布:2025-05-15 19:05:31 瀏覽:782
5的源碼是 發布:2025-05-15 19:04:07 瀏覽:719
c語言創建的源文件 發布:2025-05-15 18:54:08 瀏覽:611
3個數字密碼鎖有多少種 發布:2025-05-15 18:49:48 瀏覽:684
壓縮包手機打開 發布:2025-05-15 18:37:34 瀏覽:217
安卓取消耳機模式怎麼取消 發布:2025-05-15 18:24:24 瀏覽:59
氣球怎麼解壓視頻 發布:2025-05-15 18:20:00 瀏覽:783