国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LAStools類(lèi)庫(kù)的點(diǎn)云去噪降負(fù)載壓力方法

2020-01-05 07:02饒?jiān)?/span>
國(guó)土資源導(dǎo)刊 2020年4期
關(guān)鍵詞:效率

摘? 要? 由于海量的點(diǎn)云數(shù)據(jù)信息,會(huì)造成專(zhuān)業(yè)處理軟件在讀取、加工數(shù)據(jù)時(shí)產(chǎn)生巨大的計(jì)算量,基于Lidar點(diǎn)云在地面回波特點(diǎn)與規(guī)律,利用開(kāi)源LAStools類(lèi)庫(kù)函數(shù)首先剝離出點(diǎn)云數(shù)據(jù)中部分非地面點(diǎn)數(shù)據(jù),極大減輕了Lidar點(diǎn)云處理軟件的程序負(fù)載壓力,再結(jié)合高斯濾波法,去除噪點(diǎn)數(shù)據(jù),提高了整體作業(yè)效率。

關(guān)鍵詞? LAStools;剝離;負(fù)載壓力;效率

中圖分類(lèi)號(hào):P231 文獻(xiàn)標(biāo)識(shí)碼:A

Point Cloud Denoising and Load Pressure Reduction Method Based on LAStools Library

Rao Yun

(Guangdong Provincial Land and Resources Technology Center, Guangzhou Guangdong 510075)

Abstract: Due to the massive amount of point cloud data information, professional processing software will produce a huge amount of calculations when reading and processing data. Based on the characteristics and laws of lidar point cloud echoes on the ground, the open source LAStools library functions are used to first strip out the point cloud data The non-ground point data in the middle greatly reduces the program load pressure of the Lidar point cloud processing software. Combined with the Gaussian filtering method, the noise data is removed and the overall operation efficiency is improved.

Keywords: LAStools; peeling; load pressure; efficiency

1? 前言

受到掃描設(shè)備本身精度、人員操作、被測(cè)物體表面材質(zhì)、多路徑效應(yīng)、系統(tǒng)誤差、飛鳥(niǎo)和空中漂浮物等的影響,所獲取的龐大點(diǎn)云數(shù)據(jù)不可避免存在許多噪點(diǎn)和離群點(diǎn),這便直接降低了數(shù)據(jù)精度,嚴(yán)重影響最終的建模成果[1-4],對(duì)普通點(diǎn)云處理平臺(tái)濾波效果造成了一定的影響。與此同時(shí),點(diǎn)云文件中的成千萬(wàn)、上億的龐大點(diǎn)云數(shù)量給Lidar點(diǎn)云處理軟件形成了一定的負(fù)載壓力。

在Lidar數(shù)據(jù)處理的過(guò)程中,我們發(fā)現(xiàn)由于不同項(xiàng)目需要,所采集的點(diǎn)云數(shù)據(jù)類(lèi)型也不一樣,例如廣東省Lidar激光點(diǎn)云分類(lèi)及數(shù)字高程模型制作項(xiàng)目中,我們只需要對(duì)地面點(diǎn)進(jìn)行采集,以及一些參考我們地形判斷的點(diǎn)即可,因此在面對(duì)海量的Lidar點(diǎn)云數(shù)據(jù),剔除一些無(wú)關(guān)緊要的點(diǎn)云數(shù)據(jù)點(diǎn),就可以減輕Lidar點(diǎn)云處理軟件的程序負(fù)載壓力,以及點(diǎn)云去噪便成為點(diǎn)云數(shù)據(jù)人工選點(diǎn)之前不可或缺的工作。

2? 技術(shù)方案

2.1 引用技術(shù)原理

2.1.1? 激光回波次數(shù)分類(lèi)法

由于機(jī)載激光具有穿透性,導(dǎo)致在掃描過(guò)程中不同的地物有著不同的回波次數(shù)和強(qiáng)度信息,當(dāng)激光脈沖照射到建筑物頂部或裸露的地表時(shí)只產(chǎn)生一次回波,而激光脈沖照射到植被時(shí),當(dāng)激光脈沖照射樹(shù)木、植被等具有垂直結(jié)構(gòu)的地物上時(shí),會(huì)發(fā)生多次回波現(xiàn)象,此時(shí)每個(gè)激光脈沖不再只有一個(gè)返回值,而是擁有多個(gè)返回值,此時(shí)的激光腳點(diǎn)的分布較為散亂,不再規(guī)則排列,且由于具有高度的植被地物對(duì)激光的遮擋作用,會(huì)造成面向激光照射方向的點(diǎn)云與一部分地面點(diǎn)云在垂直方向上部分重合,而背向激光發(fā)射方向的區(qū)域由于地物的遮擋會(huì)出現(xiàn)空白區(qū)域,在這種情況下需結(jié)合回波次數(shù)進(jìn)行分析[5-7]。因此,可對(duì)多次回波中的最后一次回波數(shù)據(jù)和僅一次回波的激光數(shù)據(jù)進(jìn)行提取,從而濾除大量非地面點(diǎn)。

2.1.2? 高斯濾波(標(biāo)準(zhǔn)差去噪)法

因Lidar激光點(diǎn)云數(shù)據(jù)的噪點(diǎn)數(shù)據(jù)普遍具有離群點(diǎn)的特征,則可以定義某處點(diǎn)云小于某個(gè)密度,既點(diǎn)云無(wú)效。換句話(huà)說(shuō)就是計(jì)算每個(gè)點(diǎn)到其最近的N個(gè)點(diǎn)平均距離。則點(diǎn)云中所有點(diǎn)的距離應(yīng)構(gòu)成高斯分布。通過(guò)統(tǒng)計(jì)濾波后的指對(duì)某一地面點(diǎn)在一定半徑范圍內(nèi)與領(lǐng)域點(diǎn)集之間的距離分析,除去一些不在設(shè)定范圍內(nèi)的不合理噪點(diǎn)。

假設(shè)Lidar激光點(diǎn)云數(shù)據(jù)的任意點(diǎn)Ptn,n=0,1,2,3……,到在該點(diǎn)指定半徑范圍內(nèi)的任意點(diǎn)的距離為di,那么我們就可以得到指定半徑范圍內(nèi)的K個(gè)鄰近點(diǎn)的平均分布值Sp,即:

那么Da為點(diǎn)云數(shù)據(jù)集中Sp平均值,即:

則存在σ(Sp標(biāo)準(zhǔn)差)為:

假設(shè)Sp服從高斯分布,由均值Sp和標(biāo)準(zhǔn)差σ決定,平均距離在標(biāo)準(zhǔn)范圍即Sp±σ·St之外的點(diǎn),可以被定義為離群點(diǎn)并從數(shù)據(jù)集中去除掉,這里St為標(biāo)準(zhǔn)差倍數(shù)閾值。

2.2 功能設(shè)計(jì)和實(shí)現(xiàn)

LASTools是在laslib庫(kù)基礎(chǔ)上開(kāi)發(fā)的一個(gè)函數(shù)庫(kù),使用時(shí),先必須經(jīng)過(guò)Visual Studio編譯生成LASlib.dll動(dòng)態(tài)鏈接庫(kù),然后用Visual C++加載動(dòng)態(tài)鏈接庫(kù)進(jìn)行使用。LASTools函數(shù)庫(kù)可以對(duì)Las數(shù)據(jù)格式中包含的航道、分類(lèi)、回波次數(shù)、坐標(biāo)等基本信息進(jìn)行讀取或者寫(xiě)入操作。與此同時(shí),依靠Visual C++語(yǔ)言平臺(tái),對(duì)比python語(yǔ)言平臺(tái)有著程序運(yùn)行效率高,有較好的、靈活性強(qiáng)的人機(jī)交互界面,在大數(shù)據(jù)量運(yùn)算上有一定的優(yōu)勢(shì),例如處理點(diǎn)云數(shù)據(jù)集中的點(diǎn)數(shù)據(jù)運(yùn)算。

2.2.1? 功能設(shè)計(jì)

程序整體功能設(shè)計(jì)分為兩個(gè)功能模塊:一是數(shù)據(jù)剝離模塊;二是噪點(diǎn)濾波模塊。執(zhí)行流程如圖1所示。其中,通過(guò)數(shù)據(jù)剝離模塊減輕程序負(fù)載壓力;數(shù)據(jù)初步濾波進(jìn)一步減少后期噪點(diǎn)濾波模塊的運(yùn)算量;通過(guò)這兩個(gè)步驟可以提高整體的計(jì)算機(jī)運(yùn)算效率。

(1)數(shù)據(jù)剝離模塊

數(shù)據(jù)剝離模塊是指剝離廣東省Lidar激光點(diǎn)云分類(lèi)及數(shù)字高程模型制作項(xiàng)目中不需要參與的數(shù)據(jù)。數(shù)據(jù)剝離模塊程序流程如圖2所示。首先通過(guò)調(diào)用Lastools中的LASreadOpener進(jìn)行點(diǎn)云數(shù)據(jù)的打開(kāi)讀取操作,并且使用LASwriteOpener建立新的Las點(diǎn)云數(shù)據(jù)進(jìn)行剝離時(shí)待處理點(diǎn)云點(diǎn)與非待處理點(diǎn)云點(diǎn)分別寫(xiě)入新數(shù)據(jù)中,其中文件名_g.las是需要加工的點(diǎn)云數(shù)據(jù)集,文件名_c.las是無(wú)關(guān)緊要的點(diǎn)云數(shù)據(jù)集;用return_number得到回波信息并作篩選處理。

主程序如下:

LASreadOpener lasreadOpener;

lasreadOpener.set_file_name(strName);

LASreader *lasreader = lasreadOpener.open();

LASwriteOpener laswriteopener;

laswriteopener.set_file_name(outPath+"\\c.las");

LASwriter *laswriter = laswriteopener.open(&lasreader->header);

LASwriteOpener laswriteopener1;

laswriteopener1.set_file_name(outPath+"\\ground.las");

LASwriter *laswriter1 = laswriteopener1.open(&lasreader->header);

LASwriteOpener laswriteopener2;

laswriteopener2.set_file_name(outPath+"\\try.las");

LASwriter *laswriter2 = laswriteopener2.open(&lasreader->header);

while(lasreader->read_point())

{

if(lasreader->point.return_number/lasreader->point.number_of_returns==1)

laswriter1->write_point(&lasreader->point);

else

laswriter->write_point(&lasreader->point);

}

laswriter->close();

delete laswriter;

laswriter1->close();

delete laswriter1;

lasreader->close();

delete lasreader;

m_OutTxtForS.SetWindowTextA("處理完畢");

(2)噪點(diǎn)濾波模塊

噪點(diǎn)濾波模塊是指去除一些明顯由于某些原因形成的小尺度噪聲和大尺度噪聲。首先進(jìn)行一次Lidar點(diǎn)云數(shù)據(jù)處理平臺(tái)針對(duì)剝離后的數(shù)據(jù)初次濾波,是為了對(duì)后期進(jìn)一步減少程序計(jì)算效率所考慮;其次通過(guò)get_classification(2) (參數(shù)2是對(duì)應(yīng)Las文件中點(diǎn)類(lèi)型2的數(shù)據(jù),一般都是設(shè)置為ground類(lèi)型)獲得地面點(diǎn)數(shù)據(jù),進(jìn)行剔除大噪聲點(diǎn)(可以從點(diǎn)陣高程是否異常來(lái)判斷),高程值由get_Z()來(lái)獲取;最后對(duì)剩下的點(diǎn)進(jìn)行高斯濾波計(jì)算,排除離群點(diǎn),離群點(diǎn)寫(xiě)入Low class,從而把小尺度噪聲從GROUND類(lèi)型中去除出去,其它的類(lèi)型保持不變,類(lèi)型寫(xiě)入通過(guò)set_classification()函數(shù)進(jìn)行。特別說(shuō)明的是,程序若直接對(duì)源數(shù)據(jù)進(jìn)行寫(xiě)操作,會(huì)造成數(shù)據(jù)計(jì)算的混亂,為了避免這種情況發(fā)生,新建一個(gè)Las文件進(jìn)行寫(xiě)操作。

主程序如下:

int n=0;

float get_Da,get_Sp[lasReader->header.number_of_point_records];

while(lasreader->read_point())

{

if(lasreader1->read_point().get_classification()==1)? ?//遍歷地面點(diǎn)

{

Px=lasreader->point.get_x();

Py=lasreader->point.get_y();

Pz=lasreader->point.get_z();

float get_disp[50]=0;

int K=0;

while(lasreader1->read_point())

{

if(lasreader1->read_point().get_classification()==1)

{

if(pow(lasreader1->point.get_x()-Px,2)+ pow(lasreader1->point.get_y()-Py,2)< pow(get_r,2))

{

get_disp[K] = sqrt(pow(point.x-Px,2)+ pow(point.y-Py,2)+ pow(point.z-Pz,2));

et_Sp[n] += get_disp[K]

K++;

}

}

}

get_Sp[n]/=(K-1);? ? ? ? ? ? ? // 得到Sp值

get_Da + = get_Sp[n];

n++;

}

}

get_Da/=n;? ? ? ?// 得到Da值

get_LO =pow(get_Sp[0]-get_Da,2);

for(int i=1;i

{

get_LO+=pow(get_Sp[i]-get_Da,2);

}

get_LO=sqrt(get_LO/n);? ?//得到標(biāo)準(zhǔn)差

for(int m=0;i

{

get_Dots[i]=(get_Sp[m]get_Da+ get_LO*get_St);

}

需要說(shuō)明的是:計(jì)算中的點(diǎn)半徑根據(jù)點(diǎn)云地面點(diǎn)密度而決定,標(biāo)準(zhǔn)差倍數(shù)閾值可設(shè)置為1,得到離散點(diǎn)放置到點(diǎn)云的0層中,避免地面點(diǎn)誤判造成的地面點(diǎn)丟失;其次,由于可能為地面積水等原因而造成的明顯噪點(diǎn),可根據(jù)圖幅點(diǎn)云地形高程情況,在“需要處理低點(diǎn)的最大高程值”設(shè)置相應(yīng)取值,直接通過(guò)對(duì)高程判斷排除至點(diǎn)云數(shù)據(jù)的Low層中。

3? 實(shí)現(xiàn)與論證

程序設(shè)計(jì)總體遵循兩個(gè)模塊來(lái)設(shè)計(jì),由于整個(gè)流程之中需經(jīng)過(guò)點(diǎn)云處理平臺(tái)的一次濾波,故程序分割成兩部分,同時(shí),為了能一次處理多個(gè)文件,輸入類(lèi)型為文件夾,程序通過(guò)遍歷文件夾下所有文件,對(duì)每個(gè)文件執(zhí)行操作。兩個(gè)模塊界面設(shè)計(jì)如圖4所示。

3.1 程序負(fù)載壓力論證

為了驗(yàn)證減少程序負(fù)載壓力,我們從數(shù)據(jù)量和響應(yīng)時(shí)間來(lái)論證。

1)數(shù)據(jù)量驗(yàn)證

我們采用10組數(shù)據(jù)測(cè)試程序完成效果,表1是剝離模塊處理后的數(shù)據(jù)量對(duì)比圖,從表格中我們可以看出,需要處理的數(shù)據(jù)占用空間平均減少了44.78%;Las文件中的點(diǎn)云數(shù)據(jù)量平均減少了44.77%,這就意味這軟件處理平臺(tái)數(shù)據(jù)量負(fù)載壓力減少了近一半左右。

2)響應(yīng)時(shí)間測(cè)試

響應(yīng)時(shí)間是指程序執(zhí)行指令執(zhí)行開(kāi)始到處理完成時(shí)的整個(gè)過(guò)程所需要花費(fèi)的時(shí)間。在這里利用一個(gè)專(zhuān)業(yè)的Lidar點(diǎn)云分類(lèi)處理軟件平臺(tái),在同一臺(tái)機(jī)器進(jìn)行測(cè)試,確保對(duì)比數(shù)據(jù)在同一系統(tǒng)環(huán)境下進(jìn)行測(cè)試,并記錄下處理時(shí)間。通過(guò)濾波工具測(cè)試程序處理前后的運(yùn)行時(shí)間比對(duì),來(lái)進(jìn)行響應(yīng)時(shí)間測(cè)試。同樣以10組數(shù)據(jù)進(jìn)行采樣,測(cè)試結(jié)果如圖5所示,x軸是響應(yīng)時(shí)間,y軸是數(shù)據(jù)個(gè)數(shù)。測(cè)試結(jié)果表明,計(jì)算機(jī)的處理效率平均提高了近5分鐘時(shí)間。

3.2 濾波效果論證

經(jīng)過(guò)程序?yàn)V波效果前后對(duì)比如圖5所示。我們可以看出處理后的數(shù)據(jù)小尺度噪聲和大尺度噪聲得到了明顯控制,地形地貌基本反應(yīng)出采集地的基本情況,減輕了業(yè)人員處理分類(lèi)數(shù)據(jù)的工作強(qiáng)度,有效的提高工作效率。

4? 結(jié)論

利用LAStools點(diǎn)云處理函數(shù)庫(kù)在Visual Studio開(kāi)發(fā)平臺(tái)開(kāi)發(fā)出LAS點(diǎn)云數(shù)據(jù)剝離與濾波程序,利用Lidar點(diǎn)云在地面回波特點(diǎn)與規(guī)律,剝離出點(diǎn)云數(shù)據(jù)中部分非地面點(diǎn)數(shù)據(jù),使需要處理的數(shù)據(jù)量降低了至近45%,極大減輕作業(yè)軟件處理負(fù)載壓力,提升了作業(yè)加工的流暢度,再通過(guò)濾波模塊,增強(qiáng)了在地形起伏區(qū)域及地形細(xì)節(jié)濾波效果,減少了人工作業(yè)時(shí)的工作強(qiáng)度,二者結(jié)合在一起,從人、機(jī)方面總體提高了作業(yè)效率。

參考文獻(xiàn)/References

[1]魯冬冬,鄒進(jìn)貴.三維激光點(diǎn)云的降噪算法對(duì)比研究[J].測(cè)繪通報(bào),2019(S2):102-105.

[2]王振,孫志剛.散亂點(diǎn)云噪聲分析與降噪方法研究[J].計(jì)算機(jī)與數(shù)字工程,2015,43(9):1668-1673.

[3]文瑞潔.三維激光點(diǎn)云的處理及重建技術(shù)研究[D].北京:北京工業(yè)大學(xué),2016.

[4]吳陽(yáng).三維掃描點(diǎn)云數(shù)據(jù)處理技術(shù)研究[D].鄭州:河南工業(yè)大學(xué),2017.

[5]李偉.基于回波次數(shù)的點(diǎn)云強(qiáng)度濾波方法在處理LiDAR 數(shù)據(jù)中的研究與應(yīng)用[J].經(jīng)緯天地,2019(3)61-65.

[6]孫杰,賴(lài)祖龍.利用隨機(jī)森林的地區(qū)機(jī)載數(shù)據(jù)特征選擇與分類(lèi)[J].武漢大學(xué)學(xué)報(bào)(信息科學(xué)版),2014(11)1310-1313.

[7]高志國(guó).海量點(diǎn)云數(shù)據(jù)濾波處理方法研究[J].測(cè)繪工程,2013(1): 35-38.

*第一作者簡(jiǎn)介:饒?jiān)?,男?976年生,測(cè)繪工程師,主要從事基礎(chǔ)地理信息測(cè)繪與遙感影像工作。E-mail: 7832798@qq.com。

收稿日期:2020-9-18; 改回日期:2020-11-02。

猜你喜歡
效率
將數(shù)與形結(jié)合,提升解答與圓相關(guān)的最值問(wèn)題的效率
巧設(shè)情境 提升課堂效率
“慢”過(guò)程 “高”效率
巧用“信息技術(shù)”,提高課堂效率
選用合適的方法,提升解答選擇題的效率
基于超效率DEA模型的圖書(shū)館短視頻運(yùn)營(yíng)效率評(píng)價(jià)研究
遵循記憶規(guī)律 提升高中歷史學(xué)習(xí)效率
帶有缺失數(shù)據(jù)的Box-Behnken試驗(yàn)設(shè)計(jì)
聚焦立體幾何命題 提高高考備考效率
效率神器吹響成功的號(hào)角
铅山县| 惠水县| 南皮县| 贡山| 班戈县| 虹口区| 资源县| 西城区| 绍兴市| 澄江县| 宁夏| 瓦房店市| 洛隆县| 河北区| 平顺县| 郯城县| 安岳县| 临夏市| 密云县| 乌什县| 图片| 太白县| 潮州市| 卢氏县| 南城县| 怀宁县| 临泽县| 泗洪县| 白银市| 卢氏县| 贵南县| 泰宁县| 托克逊县| 吉水县| 岑巩县| 青龙| 如皋市| 樟树市| 天台县| 通榆县| 永修县|