0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

匯總!三維點云去噪算法,涉及深度學(xué)習(xí)等

3D視覺工坊 ? 來源:3DCV ? 2023-07-09 15:18 ? 次閱讀

1 什么是去噪

1.1 噪聲

噪聲:也稱為孤立點/離群點/異常點,是指點云數(shù)據(jù)中的不相關(guān)或不希望存在的干擾信號或誤差。噪聲來源:環(huán)境光線的明亮程度、測量設(shè)備精度及系統(tǒng)誤差、物體材料及表面的紋理和人為抖動等因素影響。

1.2 噪聲來源

環(huán)境光線的明亮程度、測量設(shè)備精度及系統(tǒng)誤差、物體材料及表面的紋理和人為抖動等因素。

1.3 點云去噪

在點云數(shù)據(jù)中,通過適當(dāng)?shù)臑V波和處理方法,去除無用或噪聲點,以提高數(shù)據(jù)質(zhì)量和準(zhǔn)確性的過程。

2 常見的去噪算法

2.1 統(tǒng)計濾波

1 原理

去除明顯分布稀疏的離群點。根據(jù)給定均值與方差,可剔除方差之外的點,即方差之外的點是正確點。

2 舉例

一點云中有50個點,每個點的鄰近點個數(shù)設(shè)置為8,則50個點(8領(lǐng)域)的平均值計算如下:

b950a06c-1da9-11ee-962d-dac502259ad0.png

則算出50個點的平均值,設(shè)置距離閾值σ,若平均值在閾值之外的視為離群點,在點云數(shù)據(jù)中去除。

3 核心代碼

—--統(tǒng)計濾波
//創(chuàng)建濾波器。對每個點分析的臨近點的個數(shù)設(shè)置為50,并將標(biāo)準(zhǔn)差的倍數(shù)設(shè)置為1,這意味著如果一個點的距
離超出了平均距離一個標(biāo)準(zhǔn)差以上,則該點被標(biāo)記為離群點,并將它移除,存儲起來
pcl::Statistical0utlierRemowalSor;
sor.setInputCloud(cloud);//設(shè)置待波波的點云
sor.setMeamK(50);//設(shè)置在進行統(tǒng)計時考慮查詢點鄰近點數(shù)
Sor. setStddevMu1Thresh(1);//設(shè)置判斷是否為高群點的閾值,里邊的數(shù)字表示標(biāo)準(zhǔn)差的倍數(shù),1個標(biāo)準(zhǔn)差以上就是離群點。
//即。當(dāng)判斷點的k近鄰平均距高(mean distance)大于全局的1倍標(biāo)準(zhǔn)差+平均距離(global distances meanm and standard),則為離群點。

2.2 直通濾波

1 原理

根據(jù)點云的屬性(屬性比如x,y,z,顏色值等),在點的屬性上設(shè)置范圍,對點進行濾波,保留范圍內(nèi)的或保留范圍外的,則去除離群點。

2 舉例

在一個點云數(shù)據(jù)中,取z軸0~1范圍內(nèi)的點云進行保存。

3 核心代碼

//創(chuàng)建濾波器對象
pcl::PassThroughpass;
pass.setInputCloud(c1oud);
pass.setFi1terFie1dName("z");//濾波字段名被設(shè)置為z軸方向
pass.setFi1terLimits(0.0,1.0);//設(shè)置在過濾方向上的過濾范圍
//pass.setKeepOrganized(true);//保持有序點云結(jié)構(gòu),該功能用于有序點云才有意義。
pass.setNegative(true);//設(shè)置保留范圍內(nèi)的點還是過濾掉范圍內(nèi)的點,標(biāo)志為false時保留范圍內(nèi)的點

2.3 半徑濾波

1 原理

設(shè)定濾波半徑,計算每個點在其半徑范圍內(nèi)的其他點的個數(shù)。半徑范圍內(nèi)其他點個數(shù)少于某一設(shè)定的閾值的點將被濾除。

2 舉例設(shè)置半徑為d,分別考察黃藍(lán)綠三點,若點個數(shù)的閾值為1,則黃色點將被濾除;若閾值為2,則黃色點和綠色點都將被濾除。

b96bf5f6-1da9-11ee-962d-dac502259ad0.png

3 核心代碼

ror.setInputC1oud(c1oud_in);//輸入點云
ror.setRadiusSearch(0.1);//設(shè)置半徑為0.1m范圍內(nèi)找臨近點
ror.setMinNeighborsInRadius(10);//設(shè)置查詢點的鄰域點集數(shù)小于10刪除
ror.fi1ter(*cloud_radius);//執(zhí)行濾波

2.4 條件濾波

1 原理

根據(jù)點云數(shù)據(jù)的某些屬性或特征進行篩選,可以一次刪除滿足對輸入的點云設(shè)定的一個或多個條件指標(biāo)的所有的數(shù)據(jù)點,如點的法線方向、點的強度值、點的顏色等屬性來篩選點云數(shù)據(jù)。

條件濾波和直通濾波的區(qū)別:

條件濾波基于點的任何屬性或特征進行篩選,而直通濾波只能基于軸向范圍進行篩選。

2.5 中值濾波

1 原理

是常用的非線性濾波方法,用于去除圖像或信號中的噪聲。它通過將像素值替換為其鄰域窗口內(nèi)的中值來實現(xiàn)去噪的效果。

2 步驟

  • 定義一個固定大小的鄰域窗口,通常是一個正方形或矩形窗口。
  • 將窗口內(nèi)的像素值按照從小到大的順序進行排序。
  • 取排序后的像素值的中間值作為中心像素的新值,用于替換原始像素值。
  • 對圖像中的每個像素都應(yīng)用上述步驟,以完成中值濾波。
  • 如下圖3×3的內(nèi)核(也可看做窗口,或者模版):

b982c18c-1da9-11ee-962d-dac502259ad0.png

image.png

2.6 均值濾波

1 原理

是一種常用的線性濾波方法,通過計算鄰域窗口內(nèi)像素值的平均值來實現(xiàn)去噪的效果。但會破壞圖像細(xì)節(jié),使圖像變得模糊。

2 舉例

3×3的內(nèi)核(也可看做窗口,或者模版)中,包含了9個點及對應(yīng)像素值。在對該區(qū)域進行濾波過程為:對P1~P9九個像素的灰度值求平均,代替中間P5的灰度值。

b99a46fe-1da9-11ee-962d-dac502259ad0.png

中值濾波和均值濾波的區(qū)別

  • 中值濾波能夠更好地處理脈沖噪聲或孤立的離群點,因為它選擇中值作為替代值,而不受異常值的影響。
  • 中值濾波去除脈沖噪聲或孤立的離群點,均值濾波能夠平滑信號或圖像。
  • 相比之下中值濾波運行速度更快

2.7 投影濾波

1 原理

將點投影到一個參數(shù)化模型上,這個參數(shù)化模型可以是平面、圓球、圓柱、錐形等進行投影濾波。

2 投影模型

b9bcf9c4-1da9-11ee-962d-dac502259ad0.png

3 核心代碼

//本例使用axtby+ez+d=O的平面模型創(chuàng)建一個系數(shù)為a=b=d=0,c=1的平面,也就是X-Y平面。z軸相關(guān)的點全部投影在X-Y面上
pcl::Ptrcoefficients(newpcl::ModelCoefficients());
coefficients->values.resize(4);
coefficients->values[0]=coefficients->values[1]=O;
coefficients->values[2]=1.0;
coefficients->values[3]=0;

2.8 高斯濾波

1 原理

用于平滑圖像并減少圖像中的噪聲?;诟咚购瘮?shù)的數(shù)學(xué)原理,通過在圖像上應(yīng)用高斯核來實現(xiàn)平滑效果。

2 步驟

1)確定高斯核的大小和標(biāo)準(zhǔn)差:高斯核的大小是指核的尺寸,通常是一個奇數(shù),例如3x3、5x5、7x7等。標(biāo)準(zhǔn)差決定了高斯函數(shù)的形狀,控制了濾波的平滑程度。標(biāo)準(zhǔn)差越大,平滑效果越明顯。

2)生成高斯核:根據(jù)確定的高斯核大小和標(biāo)準(zhǔn)差,生成一個二維的高斯權(quán)值矩陣。高斯權(quán)值矩陣中的每個元素表示了相應(yīng)位置上的權(quán)重值,這些權(quán)重值是根據(jù)高斯函數(shù)計算得出的。


3)對圖像進行卷積:將生成的高斯核應(yīng)用于原始圖像。對于圖像中的每個像素,將高斯核與其周圍的像素進行卷積操作。卷積操作即將高斯核的每個元素與對應(yīng)位置的像素值相乘,并將結(jié)果進行求和。

4)更新像素值:將卷積操作得到的結(jié)果作為濾波后的像素值,用于更新原始圖像中對應(yīng)位置的像素值。這樣就完成了一次高斯濾波操作。

5)對整個圖像重復(fù)濾波操作:重復(fù)步驟3和步驟4,對整個圖像進行濾波操作,直到所有像素都被更新為濾波后的值。

3 卷積原理

卷積操作中,高斯核與圖像中的每個像素以及其周圍的鄰域像素進行加權(quán)求和。卷積的結(jié)果是通過將每個像素的值乘以對應(yīng)位置的高斯核權(quán)重,并將所有結(jié)果相加得到的。假定中心點的坐標(biāo)是(0,0),那么取距離它最近的8個點坐標(biāo),為了計算,需要設(shè)定σ的值。假定σ=1.5,則模糊半徑為1的高斯模板如下:

b9de5cae-1da9-11ee-962d-dac502259ad0.png

這個時候我們我們還要確保這九個點加起來為1(高斯模板的特性),這9個點的權(quán)重總和等于0.4787147,因此上面9個值還要分別除以0.4787147,得到最終的高斯模板。

b9f94c6c-1da9-11ee-962d-dac502259ad0.png

假設(shè)現(xiàn)有9個像素點,灰度值(0-255)的高斯濾波計算如下:

ba058310-1da9-11ee-962d-dac502259ad0.png

通常創(chuàng)建KD樹,可以用于加速搜索濾波器的卷積操作。

4 KD-Tree

依次搜尋每個點云數(shù)據(jù)周圍的k個鄰域點,并計算出采樣點到其k個鄰域點的平均歐式距離。原始點云數(shù)據(jù)ba2611b6-1da9-11ee-962d-dac502259ad0.png經(jīng)過KD-Tree 搜索后的數(shù)據(jù)集為ba3c1c0e-1da9-11ee-962d-dac502259ad0.png,定義di為已經(jīng)得到的點pi到其k個鄰域點的平均距離,σ為di的標(biāo)準(zhǔn)差。

  • σ值越大,權(quán)值分布越平緩。因此鄰域各點值對輸出值的影響越大,最終結(jié)果造成圖像越模糊;
  • 核大小固定,σ值越小,權(quán)值分布越突起。因此鄰域各點值對輸出值的影響越小,圖像變化越小。假如中心點權(quán)值為1,其他點權(quán)值為0,最終結(jié)果是圖像沒有任何變化;
  • σ固定時,核越大圖像越模糊;
  • σ固定時,核越小圖像變化越小。

ba4f8c80-1da9-11ee-962d-dac502259ad0.png

5 核心代碼

//—————基于高斯核函數(shù)的卷積濾波實現(xiàn)-—---------
pcl::CaussianKernelkernel;//濾波器類輸入+輸出
kernel.setSigma(4);//高斯函數(shù)的標(biāo)準(zhǔn)方差,決定函數(shù)的寬度
kernel.setThresho1dRelativeToSigma(4)://設(shè)置相對Sigma參數(shù)的距離閾值
kernel.setThreshold(0.05);//設(shè)置距離閾值,若點間距高大于閾值則不予考慮
court<<"Kernelmade”<::Ptrtree(newpcl:KdTree);
tree->setInputCloud(cloud);
court<>convolution;
convolution.setKernel(kernel);//設(shè)置卷積核
convolution.setInputCloud(cloud);
convolution.setNumberOfThreads(8);//卷積操作的線程數(shù)量為8
convolution.setSearchMethod(tree);//搜索方法為tree
convolution.setRadiusSearch(0.01);//積操作的半徑搜索參數(shù)為0.01
cout<ConvolutionStart"<

3 深度學(xué)習(xí)的去噪算法

1)自編碼器(Autoencoder):自編碼器是一種無監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型,可以用于圖像和信號的去噪。它通過將輸入信號壓縮到低維編碼空間,然后再將其解碼回原始信號空間,從而學(xué)習(xí)到信號的有用特征,并去除噪聲。

2)基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的去噪算法:CNN在圖像處理領(lǐng)域廣泛應(yīng)用,可以用于圖像去噪。通過在網(wǎng)絡(luò)中使用卷積層、池化層和反卷積層等結(jié)構(gòu),CNN可以學(xué)習(xí)到圖像的局部特征,并對噪聲進行去除。

3)基于生成對抗網(wǎng)絡(luò)(GAN)的去噪算法:GAN是一種由生成器和判別器組成的對抗性模型。在圖像去噪中,生成器負(fù)責(zé)將噪聲圖像轉(zhuǎn)換為清晰圖像,而判別器則用于判斷生成器輸出的圖像是否真實。通過不斷迭代訓(xùn)練,生成器可以生成更加清晰的圖像,從而實現(xiàn)去噪效果。

4)基于變分自編碼器(VAE)的去噪算法:VAE是一種生成模型,可以學(xué)習(xí)到輸入數(shù)據(jù)的潛在表示。在去噪中,VAE可以學(xué)習(xí)到噪聲數(shù)據(jù)的潛在分布,并生成去噪后的圖像或信號。

5)基于深度殘差網(wǎng)絡(luò)(DnCNN)的去噪算法:DnCNN是一種專門設(shè)計用于圖像去噪的深度殘差網(wǎng)絡(luò)。它通過堆疊多個卷積層和殘差連接來學(xué)習(xí)到圖像中的噪聲特征,并去除噪聲。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標(biāo)題:匯總!三維點云去噪算法,涉及深度學(xué)習(xí)等

文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于深度學(xué)習(xí)三維配準(zhǔn)方法

    基于深度學(xué)習(xí)三維配準(zhǔn)方法成為研究的主流,并隨之誕生了DeepVCP、DGR、Predator
    發(fā)表于 11-29 11:41 ?1832次閱讀

    三維快速建模技術(shù)與三維掃描建模的應(yīng)用

    的HANDYSCAN三維激光掃描儀采集它的三維信息,然后利用Vxelements軟件對多站式
    發(fā)表于 08-07 11:14

    匯總 |計算機視覺系統(tǒng)學(xué)習(xí)資料下載 精選資料分享

    計算機視覺干貨資料,涉及相機標(biāo)定、三維重建、立體視覺、SLAM、深度學(xué)習(xí)、后處理、姿態(tài)估計、
    發(fā)表于 07-27 07:51

    視頻運動捕獲系統(tǒng)中多標(biāo)記三維跟蹤算法

    針對視頻運動參數(shù)捕獲系統(tǒng)中標(biāo)記無法被正確匹配及跟蹤的問題,提出一種多目標(biāo)三維立體跟蹤算法。該算法通過二
    發(fā)表于 04-08 09:00 ?21次下載

    采用密度k_means和改進雙邊濾波的自適應(yīng)算法_郭進

    采用密度k_means和改進雙邊濾波的自適應(yīng)算法_郭進
    發(fā)表于 03-19 18:58 ?1次下載

    散亂與簡化的統(tǒng)一算法

    針對三維和簡化很難用同一參數(shù)的問題,提出一種基于擴展的曲面變化度局部離群系數(shù)( ESVLOF)的散亂
    發(fā)表于 11-24 16:50 ?1次下載
    散亂<b class='flag-5'>點</b><b class='flag-5'>云</b><b class='flag-5'>去</b><b class='flag-5'>噪</b>與簡化的統(tǒng)一<b class='flag-5'>算法</b>

    雙邊濾波算法

    針對三維數(shù)據(jù)模型在光順中存在不同尺度噪聲的問題,提出一種基于噪聲分類的雙邊濾波
    發(fā)表于 01-05 10:51 ?2次下載
    雙邊濾波<b class='flag-5'>點</b><b class='flag-5'>云</b><b class='flag-5'>去</b><b class='flag-5'>噪</b><b class='flag-5'>算法</b>

    計算機視覺:三維數(shù)據(jù)處理學(xué)習(xí)內(nèi)容總結(jié)

    。三維匹配的目的就是把相鄰掃描的數(shù)據(jù)拼接在一起。三維匹配重點關(guān)注匹配算法,常用的算法有最近
    的頭像 發(fā)表于 11-27 10:32 ?4858次閱讀

    基于深度學(xué)習(xí)三維語義分割研究分析

    近年來,深度傳感器和三維激光掃描儀的普及推動了三維處理方法的快速發(fā)展。
    發(fā)表于 04-01 14:48 ?16次下載
    基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的<b class='flag-5'>三維</b><b class='flag-5'>點</b><b class='flag-5'>云</b>語義分割研究分析

    基于激光雷達三維目標(biāo)檢測算法

    文中提出了一種基于激光雷達三維目標(biāo)檢測算法 Voxeircnn( Voxelization Region-based Convolutional Neural Networks)
    發(fā)表于 05-08 16:35 ?45次下載

    的概念以及與三維圖像的關(guān)系

    概念 三維圖像的關(guān)系:三維圖像是一種特殊的信息表達形式,其特征是表達的空間中
    的頭像 發(fā)表于 08-17 09:18 ?7284次閱讀
    <b class='flag-5'>點</b><b class='flag-5'>云</b>的概念以及與<b class='flag-5'>三維</b>圖像的關(guān)系

    一文詳解三維圖像處理技術(shù)

    三維圖像的關(guān)系:三維圖像是一種特殊的信息表達形式,其特征是表達的空間中個維度的數(shù)據(jù),表現(xiàn)形式包括:
    的頭像 發(fā)表于 03-31 16:07 ?3026次閱讀

    基于深度學(xué)習(xí)三維配準(zhǔn)新方法

    一、摘要 本文介紹了一種基于深度學(xué)習(xí)三維配準(zhǔn)新方法。該架構(gòu)由個部分組成: (1)編碼器由
    的頭像 發(fā)表于 06-17 09:54 ?1394次閱讀
    基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的<b class='flag-5'>三維</b><b class='flag-5'>點</b><b class='flag-5'>云</b>配準(zhǔn)新方法

    什么是三維分割

    是世界的一種非結(jié)構(gòu)化三維數(shù)據(jù)表示,通常由激光雷達傳感器、立體相機或深度傳感器采集。它由一系列單個組成,每個
    的頭像 發(fā)表于 10-29 09:21 ?191次閱讀

    基于深度學(xué)習(xí)三維分類方法

    近年來,云表示已成為計算機視覺領(lǐng)域的研究熱點之一,并廣泛應(yīng)用于自動駕駛、虛擬現(xiàn)實、機器人許多領(lǐng)域。雖然深度學(xué)習(xí)技術(shù)在處理常規(guī)結(jié)構(gòu)化的二
    的頭像 發(fā)表于 10-29 09:43 ?461次閱讀
    基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的<b class='flag-5'>三維</b><b class='flag-5'>點</b><b class='flag-5'>云</b>分類方法