欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

點(diǎn)云地面點(diǎn)濾波(Cloth Simulation Filter, CSF)

 更新時(shí)間:2021年08月07日 22:35:31   作者:wxc_1998  
這篇文章主要介紹了點(diǎn)云地面點(diǎn)濾波(Cloth Simulation Filter, CSF)“布料”濾波算法介紹,本文從基本思想到實(shí)現(xiàn)思路一步步給大家講解的非常詳細(xì),需要的朋友可以參考下

本篇博客參考Wuming Zhang的文章“An Easy-to-Use Airborne LiDAR Data Filtering Method Based on Cloth Simulation

不方便的小伙伴可以在此:資源鏈接下載。

1. 引言

機(jī)載LiDAR可以獲取快速、低成本地獲取大區(qū)域的高精度地形測量值。為了獲取高精度的地形數(shù)據(jù)(厘米級(jí)),對(duì)機(jī)載LiDAR點(diǎn)云數(shù)據(jù)進(jìn)行“濾波”是一個(gè)非常重要的步驟。因此近二十年來,國內(nèi)外學(xué)者提出了眾多有效的自動(dòng)濾波算法,大大降低了人力成本,提高了點(diǎn)云數(shù)據(jù)的應(yīng)用效率。在博客:“點(diǎn)云地面點(diǎn)濾波(Progressive Morphological Filter)算法介紹(PCL庫)”與“點(diǎn)云地面點(diǎn)濾波-progressive TIN densification(PTD)算法介紹”中分別對(duì)兩種常用濾波器進(jìn)行了介紹。
以往的眾多算法濾波效果容易受到地形特征的影響(通常在復(fù)雜場景及陡峭地形區(qū)域?yàn)V波效果較差)且常常需要用戶對(duì)數(shù)據(jù)有較為豐富的先驗(yàn)知識(shí)來進(jìn)行設(shè)置濾波器中的各種參數(shù)。
為了解決這些問題,張吳明教授等人在2015年第三屆全國激光雷達(dá)大會(huì)提出的“布料”濾波算法,本篇博客對(duì)其進(jìn)行了簡要介紹。

2. 基本思想

傳統(tǒng)的濾波算法大多是考慮在坡度、高程變化之間的不同來進(jìn)行區(qū)分地物點(diǎn)地面點(diǎn),而布料”濾波算法從一個(gè)完全新的思路來進(jìn)行濾波,首先把點(diǎn)云進(jìn)行翻轉(zhuǎn),然后假設(shè)有一塊布料受到重力從上方落下,則最終落下的布料就可以代表當(dāng)前地形。如下圖所示,可以幫助我們進(jìn)行理解。

在這里插入圖片描述

下方的藍(lán)色圖形代表原始測量值,對(duì)其進(jìn)行翻轉(zhuǎn),紅色虛線代表布料,可以反映地形的起伏。

3. CSF算法實(shí)現(xiàn)步驟

3.1 “布料”模擬

首先,定義了一個(gè)基本公式:

在這里插入圖片描述

式中,X代表“布料”中的粒子在 t 時(shí)刻的位置,F(xiàn)ext(X,t)代表外部驅(qū)動(dòng)因素(重力,碰撞等),F(xiàn)int(X,t)代表內(nèi)部驅(qū)動(dòng)因素(粒子間的內(nèi)部聯(lián)系)。

即可以總結(jié)為“布料”粒子的位置受到Fext(X,t)與Fint(X,t)兩方面因素的影響。

隨后如下圖所示,通過四個(gè)狀態(tài)對(duì)“布料”粒子的移動(dòng)過程進(jìn)行說明。

在這里插入圖片描述

(a)為初始狀態(tài),假設(shè)一個(gè)虛擬的布放在翻轉(zhuǎn)的LiDAR測量值上方。黑色點(diǎn)為LiDAR測量值,深紅色點(diǎn)為可移動(dòng)粒子。
(b)計(jì)算重力影響下對(duì)粒子產(chǎn)生的位移,由此一些粒子可能會(huì)出現(xiàn)在地面的下方。淺紅色點(diǎn)為粒子的舊位置。
(c)相交檢查,檢查粒子新位置是否到達(dá)地面,如果已經(jīng)到達(dá)地面則設(shè)置為不可移動(dòng)。藍(lán)色點(diǎn)代表粒子不可移動(dòng)
(d)考慮“布料”的內(nèi)部驅(qū)動(dòng),對(duì)現(xiàn)有的“可移動(dòng)”粒子,根據(jù)鄰近粒子所產(chǎn)生的“力”來進(jìn)行移動(dòng)新的位置。(如上圖小房子處的可移動(dòng)粒子)

3.2 外部/內(nèi)部因素驅(qū)動(dòng)

如3.1節(jié)中所述,粒子的位置移動(dòng)包括外部/內(nèi)部兩方面的驅(qū)動(dòng)因素,首先假設(shè)只有外部因素Fext(X,t),并設(shè)置內(nèi)部因素Fint(X,t)為0,可以得到以下公式:

在這里插入圖片描述

式中,m為粒子的重量,通常設(shè)置為1,△t 為時(shí)間步長。且由于G是一個(gè)常數(shù),所以上式非常容易計(jì)算,只要給定一個(gè)△t 就可以計(jì)算出下一次迭代粒子所在的新位置。

為了約束粒子在反轉(zhuǎn)表面空白區(qū)域的反轉(zhuǎn)問題,作者又考慮了使用內(nèi)部因素Fint(X,t) 。任意選取兩個(gè)相鄰的粒子,如果兩個(gè)粒子都是 可移動(dòng) 的,則令二者往相反的方向移動(dòng)同樣的距離;如果一個(gè)是不可移動(dòng)的,則移動(dòng)另一個(gè);如果兩者具有相同的高度,則不進(jìn)行移動(dòng)。
位移量可以通過下式進(jìn)行計(jì)算:

在這里插入圖片描述

式中,d為粒子的位移量;當(dāng)粒子可移動(dòng)時(shí),b等于1,不可移動(dòng)時(shí)b等于0;pi為p0的相鄰粒子,n是把點(diǎn)進(jìn)行標(biāo)準(zhǔn)化到垂直方向上的單位向量(0,0,1)T。

移動(dòng)過程如下圖所示:

在這里插入圖片描述

同時(shí)還引入了一個(gè)新的參數(shù)rigidness, RI,用來描述粒子的移動(dòng)次數(shù),RI為1時(shí),則移動(dòng)一次,且移動(dòng)的距離是兩個(gè)粒子之間高差的1/2;RI為2時(shí),則移動(dòng)兩次,且移動(dòng)3/4。類似的,RI為3時(shí),移動(dòng)三次,移動(dòng)距離為兩個(gè)粒子高差的7/8。RI的值越大,則“布料”就越硬,一般來說,平地需要設(shè)置RI的值較大,陡坡、山區(qū)需要設(shè)置的RI值較小。

3.3 具體實(shí)現(xiàn)

綜上所述,布料模擬的簡要步驟可以總結(jié)如下:
1)通過第三方軟件去除原始LiDAR點(diǎn)云數(shù)據(jù)中的“孤立點(diǎn)”。
2)反轉(zhuǎn)LiDAR點(diǎn)云。
3)初始布料格網(wǎng),這時(shí)用戶需要設(shè)置格網(wǎng)的大?。╣rid resolution, GR)。初始“布料”的位置通常在最高點(diǎn)的上方。
4)把所有LiDAR點(diǎn)與格網(wǎng)粒子投影到同一個(gè)水平面,并找到每一個(gè)粒子的最近鄰點(diǎn)(corresponding point, cp),記錄其投影前的高程(intersection height value, IHV)
5)對(duì)于每一個(gè)可移動(dòng)的格網(wǎng)“粒子”,計(jì)算其受到重力影響產(chǎn)生的位移,并與當(dāng)前粒子對(duì)應(yīng)cp點(diǎn)的IHV進(jìn)行比較,如果粒子的高度低于或者等于IHV,則把粒子的高度設(shè)置為IHV并設(shè)置為不可移動(dòng)點(diǎn)。
6)對(duì)于每個(gè)格網(wǎng)“粒子”,計(jì)算其受到內(nèi)部驅(qū)動(dòng)因素影響所產(chǎn)生的的位移。
7)重復(fù)上述5)、6)步驟,直到所有粒子的最大高承諾變化足夠小或者迭代次數(shù)到達(dá)用戶的預(yù)先設(shè)置值,則停止模擬過程。
8)計(jì)算LiDAR點(diǎn)云與格網(wǎng)粒子之間的高度差異。
9)區(qū)分地面點(diǎn)與非地面點(diǎn),如果LiDAR點(diǎn)與模擬粒子之間的距離小于預(yù)先設(shè)置的閾值hcc,則認(rèn)為其是地面點(diǎn),反之則認(rèn)為其為非地面點(diǎn)。

3.4 后處理

上述方法處理過后對(duì)于平坦區(qū)域可以取得較好的效果,但是對(duì)于“陡坡”區(qū)域仍然會(huì)產(chǎn)生較大的誤差,因?yàn)椤安剂稀睍?huì)由于其粒子間的內(nèi)部約束而落在地面測量值的上方。如下圖所示:

在這里插入圖片描述

為了消除這些誤差,可以通過一個(gè)后處理方法來解決。在每一個(gè)“可移動(dòng)”粒子的四個(gè)鄰接點(diǎn)中找到“不可移動(dòng)”粒子,然后比較“最近鄰點(diǎn)”之間的高程差,如果高程差值小于閾值hcp,則把“可移動(dòng)”粒子移動(dòng)到地面,并設(shè)置為不可移動(dòng)。
例如,上圖中的D點(diǎn),找到了一個(gè)不可移動(dòng)的粒子A,然后比較C,B之間的高程差值(對(duì)于D點(diǎn)、A點(diǎn)之間的最近鄰點(diǎn)CP)。如果高程差值小于閾值hcp則待判斷點(diǎn)D就被移動(dòng)到C點(diǎn),且被設(shè)置為不可移動(dòng)。重復(fù)上述操作,直到所有的“可移動(dòng)”粒子被正確處理。
如果逐行掃描“粒子”來進(jìn)行實(shí)現(xiàn)此后處理操作,結(jié)果可能會(huì)受到特定掃描方向的影響。因此,作者采用了先建立一個(gè)“強(qiáng)連接元素集”(strongly connected components, SCC)包含一個(gè)關(guān)聯(lián)的可移動(dòng)粒子集。

在這里插入圖片描述

如上圖所示,每個(gè)SCC中包括兩種粒子,第一種是至少包含一個(gè)近鄰“不可移動(dòng)”粒子(上圖中的黃色點(diǎn)M1),第二種是近鄰點(diǎn)中不包含“不可移動(dòng)”粒子(上圖中的紅色點(diǎn)M2)。執(zhí)行過程中使用外部的黃色點(diǎn)為“初始種子點(diǎn)”,通過“廣度優(yōu)先”的方式逐步向內(nèi)遍歷SCC。如上圖中的從1-18點(diǎn),實(shí)現(xiàn)了從邊緣逐步向內(nèi)部靠近處理過程,而不受掃描方向的影響。

4. 算法使用

Cloth Simulation Filter已經(jīng)在各種點(diǎn)云處理軟件,以及MATLAB中都可以直接進(jìn)行使用,對(duì)用戶操作友好,非常方便。

各種使用方式的超鏈接如下:
MATLAB中mex插件
cloud compare 中CSF濾波
dll與lib下載
以及源碼都在github上開源了

到此這篇關(guān)于點(diǎn)云地面點(diǎn)濾波(Cloth Simulation Filter, CSF)"布料"濾波算法詳解的文章就介紹到這了,更多相關(guān)python 點(diǎn)云地面點(diǎn)濾波內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python運(yùn)行環(huán)境在新舊電腦間遷移的三種方法

    python運(yùn)行環(huán)境在新舊電腦間遷移的三種方法

    環(huán)境部署或遷移是一項(xiàng)簡單而又考驗(yàn)應(yīng)對(duì)能力的一項(xiàng)工作,這篇文章主要給大家介紹了關(guān)于python運(yùn)行環(huán)境在新舊電腦間遷移的三種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • python上下文管理器異常問題解決方法

    python上下文管理器異常問題解決方法

    在本篇文章里小編給大家整理的是一篇關(guān)于python上下文管理器異常問題解決方法,對(duì)此有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-02-02
  • sklearn中的交叉驗(yàn)證的實(shí)現(xiàn)(Cross-Validation)

    sklearn中的交叉驗(yàn)證的實(shí)現(xiàn)(Cross-Validation)

    這篇文章主要介紹了sklearn中的交叉驗(yàn)證的實(shí)現(xiàn)(Cross-Validation),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 淺談pandas.cut與pandas.qcut的使用方法及區(qū)別

    淺談pandas.cut與pandas.qcut的使用方法及區(qū)別

    這篇文章主要介紹了淺談pandas.cut與pandas.qcut的使用方法及區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python實(shí)現(xiàn)直方圖均衡基本原理解析

    Python實(shí)現(xiàn)直方圖均衡基本原理解析

    這篇文章主要介紹了Python實(shí)現(xiàn)直方圖均衡基本原理,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-08-08
  • Python一鍵安裝全部依賴包的方法

    Python一鍵安裝全部依賴包的方法

    今天小編就為大家分享一篇Python一鍵安裝全部依賴包的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 對(duì)python3 urllib包與http包的使用詳解

    對(duì)python3 urllib包與http包的使用詳解

    今天小編就為大家分享一篇對(duì)python3 urllib包與http包的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python 的描述符 descriptor詳解

    Python 的描述符 descriptor詳解

    Python中包含了許多內(nèi)建的語言特性,它們使得代碼簡潔且易于理解。這些特性包括列表/集合/字典推導(dǎo)式,屬性(property)、以及裝飾器(decorator)。對(duì)于大部分特性來說,這些“中級(jí)”的語言特性有著完善的文檔,并且易于學(xué)習(xí)。但是這里有個(gè)例外,那就是描述符。
    2016-02-02
  • 利用PyQt5+Matplotlib 繪制靜態(tài)/動(dòng)態(tài)圖的實(shí)現(xiàn)代碼

    利用PyQt5+Matplotlib 繪制靜態(tài)/動(dòng)態(tài)圖的實(shí)現(xiàn)代碼

    這篇文章主要介紹了利用PyQt5+Matplotlib 繪制靜態(tài)/動(dòng)態(tài)圖的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Python PIL實(shí)現(xiàn)GIF壓縮工具

    Python PIL實(shí)現(xiàn)GIF壓縮工具

    本文將結(jié)合wxPython的GUI框架和PIL(Python Imaging Library)的圖像處理能力編寫一個(gè)GIF壓縮工具,并提供了兩種壓縮方式,感興趣的小伙伴可以了解下
    2024-10-10

最新評(píng)論