1 什么是去噪
1.1 噪聲
噪聲:也稱為孤立點(diǎn)/離群點(diǎn)/異常點(diǎn),是指點(diǎn)云數(shù)據(jù)中的不相關(guān)或不希望存在的干擾信號(hào)或誤差。噪聲來(lái)源:環(huán)境光線的明亮程度、測(cè)量設(shè)備精度及系統(tǒng)誤差、物體材料及表面的紋理和人為抖動(dòng)等因素影響。
1.2 噪聲來(lái)源
環(huán)境光線的明亮程度、測(cè)量設(shè)備精度及系統(tǒng)誤差、物體材料及表面的紋理和人為抖動(dòng)等因素。
1.3 點(diǎn)云去噪
在點(diǎn)云數(shù)據(jù)中,通過適當(dāng)?shù)臑V波和處理方法,去除無(wú)用或噪聲點(diǎn),以提高數(shù)據(jù)質(zhì)量和準(zhǔn)確性的過程。
2 常見的去噪算法
2.1 統(tǒng)計(jì)濾波
1 原理
去除明顯分布稀疏的離群點(diǎn)。根據(jù)給定均值與方差,可剔除方差之外的點(diǎn),即方差之外的點(diǎn)是正確點(diǎn)。
2 舉例
一點(diǎn)云中有50個(gè)點(diǎn),每個(gè)點(diǎn)的鄰近點(diǎn)個(gè)數(shù)設(shè)置為8,則50個(gè)點(diǎn)(8領(lǐng)域)的平均值計(jì)算如下:
則算出50個(gè)點(diǎn)的平均值,設(shè)置距離閾值σ,若平均值在閾值之外的視為離群點(diǎn),在點(diǎn)云數(shù)據(jù)中去除。
3 核心代碼
—--統(tǒng)計(jì)濾波
//創(chuàng)建濾波器。對(duì)每個(gè)點(diǎn)分析的臨近點(diǎn)的個(gè)數(shù)設(shè)置為50,并將標(biāo)準(zhǔn)差的倍數(shù)設(shè)置為1,這意味著如果一個(gè)點(diǎn)的距
離超出了平均距離一個(gè)標(biāo)準(zhǔn)差以上,則該點(diǎn)被標(biāo)記為離群點(diǎn),并將它移除,存儲(chǔ)起來(lái)
pcl::Statistical0utlierRemowalSor;
sor.setInputCloud(cloud);//設(shè)置待波波的點(diǎn)云
sor.setMeamK(50);//設(shè)置在進(jìn)行統(tǒng)計(jì)時(shí)考慮查詢點(diǎn)鄰近點(diǎn)數(shù)
Sor. setStddevMu1Thresh(1);//設(shè)置判斷是否為高群點(diǎn)的閾值,里邊的數(shù)字表示標(biāo)準(zhǔn)差的倍數(shù),1個(gè)標(biāo)準(zhǔn)差以上就是離群點(diǎn)。
//即。當(dāng)判斷點(diǎn)的k近鄰平均距高(mean distance)大于全局的1倍標(biāo)準(zhǔn)差+平均距離(global distances meanm and standard),則為離群點(diǎn)。
2.2 直通濾波
1 原理
根據(jù)點(diǎn)云的屬性(屬性比如x,y,z,顏色值等),在點(diǎn)的屬性上設(shè)置范圍,對(duì)點(diǎn)進(jìn)行濾波,保留范圍內(nèi)的或保留范圍外的,則去除離群點(diǎn)。
2 舉例
在一個(gè)點(diǎn)云數(shù)據(jù)中,取z軸0~1范圍內(nèi)的點(diǎn)云進(jìn)行保存。
3 核心代碼
//創(chuàng)建濾波器對(duì)象
pcl::PassThroughpass;
pass.setInputCloud(c1oud);
pass.setFi1terFie1dName("z");//濾波字段名被設(shè)置為z軸方向
pass.setFi1terLimits(0.0,1.0);//設(shè)置在過濾方向上的過濾范圍
//pass.setKeepOrganized(true);//保持有序點(diǎn)云結(jié)構(gòu),該功能用于有序點(diǎn)云才有意義。
pass.setNegative(true);//設(shè)置保留范圍內(nèi)的點(diǎn)還是過濾掉范圍內(nèi)的點(diǎn),標(biāo)志為false時(shí)保留范圍內(nèi)的點(diǎn)
2.3 半徑濾波
1 原理
設(shè)定濾波半徑,計(jì)算每個(gè)點(diǎn)在其半徑范圍內(nèi)的其他點(diǎn)的個(gè)數(shù)。半徑范圍內(nèi)其他點(diǎn)個(gè)數(shù)少于某一設(shè)定的閾值的點(diǎn)將被濾除。
2 舉例設(shè)置半徑為d,分別考察黃藍(lán)綠三點(diǎn),若點(diǎn)個(gè)數(shù)的閾值為1,則黃色點(diǎn)將被濾除;若閾值為2,則黃色點(diǎn)和綠色點(diǎn)都將被濾除。
3 核心代碼
ror.setInputC1oud(c1oud_in);//輸入點(diǎn)云
ror.setRadiusSearch(0.1);//設(shè)置半徑為0.1m范圍內(nèi)找臨近點(diǎn)
ror.setMinNeighborsInRadius(10);//設(shè)置查詢點(diǎn)的鄰域點(diǎn)集數(shù)小于10刪除
ror.fi1ter(*cloud_radius);//執(zhí)行濾波
2.4 條件濾波
1 原理
根據(jù)點(diǎn)云數(shù)據(jù)的某些屬性或特征進(jìn)行篩選,可以一次刪除滿足對(duì)輸入的點(diǎn)云設(shè)定的一個(gè)或多個(gè)條件指標(biāo)的所有的數(shù)據(jù)點(diǎn),如點(diǎn)的法線方向、點(diǎn)的強(qiáng)度值、點(diǎn)的顏色等屬性來(lái)篩選點(diǎn)云數(shù)據(jù)。
條件濾波和直通濾波的區(qū)別:
條件濾波基于點(diǎn)的任何屬性或特征進(jìn)行篩選,而直通濾波只能基于軸向范圍進(jìn)行篩選。
2.5 中值濾波
1 原理
是常用的非線性濾波方法,用于去除圖像或信號(hào)中的噪聲。它通過將像素值替換為其鄰域窗口內(nèi)的中值來(lái)實(shí)現(xiàn)去噪的效果。
2 步驟
- 定義一個(gè)固定大小的鄰域窗口,通常是一個(gè)正方形或矩形窗口。
- 將窗口內(nèi)的像素值按照從小到大的順序進(jìn)行排序。
- 取排序后的像素值的中間值作為中心像素的新值,用于替換原始像素值。
- 對(duì)圖像中的每個(gè)像素都應(yīng)用上述步驟,以完成中值濾波。
- 如下圖3×3的內(nèi)核(也可看做窗口,或者模版):
2.6 均值濾波
1 原理
是一種常用的線性濾波方法,通過計(jì)算鄰域窗口內(nèi)像素值的平均值來(lái)實(shí)現(xiàn)去噪的效果。但會(huì)破壞圖像細(xì)節(jié),使圖像變得模糊。
2 舉例
3×3的內(nèi)核(也可看做窗口,或者模版)中,包含了9個(gè)點(diǎn)及對(duì)應(yīng)像素值。在對(duì)該區(qū)域進(jìn)行濾波過程為:對(duì)P1~P9九個(gè)像素的灰度值求平均,代替中間P5的灰度值。
中值濾波和均值濾波的區(qū)別
- 中值濾波能夠更好地處理脈沖噪聲或孤立的離群點(diǎn),因?yàn)樗x擇中值作為替代值,而不受異常值的影響。
- 中值濾波去除脈沖噪聲或孤立的離群點(diǎn),均值濾波能夠平滑信號(hào)或圖像。
- 相比之下中值濾波運(yùn)行速度更快
2.7 投影濾波
1 原理
將點(diǎn)投影到一個(gè)參數(shù)化模型上,這個(gè)參數(shù)化模型可以是平面、圓球、圓柱、錐形等進(jìn)行投影濾波。
2 投影模型
3 核心代碼
//本例使用axtby+ez+d=O的平面模型創(chuàng)建一個(gè)系數(shù)為a=b=d=0,c=1的平面,也就是X-Y平面。z軸相關(guān)的點(diǎ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)用高斯核來(lái)實(shí)現(xiàn)平滑效果。
2 步驟
1)確定高斯核的大小和標(biāo)準(zhǔn)差:高斯核的大小是指核的尺寸,通常是一個(gè)奇數(shù),例如3x3、5x5、7x7等。標(biāo)準(zhǔn)差決定了高斯函數(shù)的形狀,控制了濾波的平滑程度。標(biāo)準(zhǔn)差越大,平滑效果越明顯。
2)生成高斯核:根據(jù)確定的高斯核大小和標(biāo)準(zhǔn)差,生成一個(gè)二維的高斯權(quán)值矩陣。高斯權(quán)值矩陣中的每個(gè)元素表示了相應(yīng)位置上的權(quán)重值,這些權(quán)重值是根據(jù)高斯函數(shù)計(jì)算得出的。
3)對(duì)圖像進(jìn)行卷積:將生成的高斯核應(yīng)用于原始圖像。對(duì)于圖像中的每個(gè)像素,將高斯核與其周圍的像素進(jìn)行卷積操作。卷積操作即將高斯核的每個(gè)元素與對(duì)應(yīng)位置的像素值相乘,并將結(jié)果進(jìn)行求和。
4)更新像素值:將卷積操作得到的結(jié)果作為濾波后的像素值,用于更新原始圖像中對(duì)應(yīng)位置的像素值。這樣就完成了一次高斯濾波操作。
5)對(duì)整個(gè)圖像重復(fù)濾波操作:重復(fù)步驟3和步驟4,對(duì)整個(gè)圖像進(jìn)行濾波操作,直到所有像素都被更新為濾波后的值。
3 卷積原理
卷積操作中,高斯核與圖像中的每個(gè)像素以及其周圍的鄰域像素進(jìn)行加權(quán)求和。卷積的結(jié)果是通過將每個(gè)像素的值乘以對(duì)應(yīng)位置的高斯核權(quán)重,并將所有結(jié)果相加得到的。假定中心點(diǎn)的坐標(biāo)是(0,0),那么取距離它最近的8個(gè)點(diǎn)坐標(biāo),為了計(jì)算,需要設(shè)定σ的值。假定σ=1.5,則模糊半徑為1的高斯模板如下:
這個(gè)時(shí)候我們我們還要確保這九個(gè)點(diǎn)加起來(lái)為1(高斯模板的特性),這9個(gè)點(diǎn)的權(quán)重總和等于0.4787147,因此上面9個(gè)值還要分別除以0.4787147,得到最終的高斯模板。
假設(shè)現(xiàn)有9個(gè)像素點(diǎn),灰度值(0-255)的高斯濾波計(jì)算如下:
通常創(chuàng)建KD樹,可以用于加速搜索濾波器的卷積操作。
4 KD-Tree
依次搜尋每個(gè)點(diǎn)云數(shù)據(jù)周圍的k個(gè)鄰域點(diǎn),并計(jì)算出采樣點(diǎn)到其k個(gè)鄰域點(diǎn)的平均歐式距離。原始點(diǎn)云數(shù)據(jù)經(jīng)過KD-Tree 搜索后的數(shù)據(jù)集為
,定義di為已經(jīng)得到的點(diǎn)pi到其k個(gè)鄰域點(diǎn)的平均距離,σ為di的標(biāo)準(zhǔn)差。
- σ值越大,權(quán)值分布越平緩。因此鄰域各點(diǎn)值對(duì)輸出值的影響越大,最終結(jié)果造成圖像越模糊;
- 核大小固定,σ值越小,權(quán)值分布越突起。因此鄰域各點(diǎn)值對(duì)輸出值的影響越小,圖像變化越小。假如中心點(diǎn)權(quán)值為1,其他點(diǎn)權(quán)值為0,最終結(jié)果是圖像沒有任何變化;
- σ固定時(shí),核越大圖像越模糊;
- σ固定時(shí),核越小圖像變化越小。
5 核心代碼
//—————基于高斯核函數(shù)的卷積濾波實(shí)現(xiàn)-—---------
pcl::CaussianKernelkernel;//濾波器類輸入+輸出
kernel.setSigma(4);//高斯函數(shù)的標(biāo)準(zhǔn)方差,決定函數(shù)的寬度
kernel.setThresho1dRelativeToSigma(4)://設(shè)置相對(duì)Sigma參數(shù)的距離閾值
kernel.setThreshold(0.05);//設(shè)置距離閾值,若點(diǎn)間距高大于閾值則不予考慮
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):自編碼器是一種無(wú)監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型,可以用于圖像和信號(hào)的去噪。它通過將輸入信號(hào)壓縮到低維編碼空間,然后再將其解碼回原始信號(hào)空間,從而學(xué)習(xí)到信號(hào)的有用特征,并去除噪聲。
2)基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的去噪算法:CNN在圖像處理領(lǐng)域廣泛應(yīng)用,可以用于圖像去噪。通過在網(wǎng)絡(luò)中使用卷積層、池化層和反卷積層等結(jié)構(gòu),CNN可以學(xué)習(xí)到圖像的局部特征,并對(duì)噪聲進(jìn)行去除。
3)基于生成對(duì)抗網(wǎng)絡(luò)(GAN)的去噪算法:GAN是一種由生成器和判別器組成的對(duì)抗性模型。在圖像去噪中,生成器負(fù)責(zé)將噪聲圖像轉(zhuǎn)換為清晰圖像,而判別器則用于判斷生成器輸出的圖像是否真實(shí)。通過不斷迭代訓(xùn)練,生成器可以生成更加清晰的圖像,從而實(shí)現(xiàn)去噪效果。
4)基于變分自編碼器(VAE)的去噪算法:VAE是一種生成模型,可以學(xué)習(xí)到輸入數(shù)據(jù)的潛在表示。在去噪中,VAE可以學(xué)習(xí)到噪聲數(shù)據(jù)的潛在分布,并生成去噪后的圖像或信號(hào)。
5)基于深度殘差網(wǎng)絡(luò)(DnCNN)的去噪算法:DnCNN是一種專門設(shè)計(jì)用于圖像去噪的深度殘差網(wǎng)絡(luò)。它通過堆疊多個(gè)卷積層和殘差連接來(lái)學(xué)習(xí)到圖像中的噪聲特征,并去除噪聲。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4783瀏覽量
101236 -
算法
+關(guān)注
關(guān)注
23文章
4631瀏覽量
93427 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5518瀏覽量
121608 -
點(diǎn)云數(shù)據(jù)
+關(guān)注
關(guān)注
0文章
13瀏覽量
1540
原文標(biāo)題:匯總!三維點(diǎn)云去噪算法,涉及深度學(xué)習(xí)等
文章出處:【微信號(hào):3D視覺工坊,微信公眾號(hào):3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于深度學(xué)習(xí)的三維點(diǎn)云配準(zhǔn)方法
三維快速建模技術(shù)與三維掃描建模的應(yīng)用
匯總 |計(jì)算機(jī)視覺系統(tǒng)學(xué)習(xí)資料下載 精選資料分享
視頻運(yùn)動(dòng)捕獲系統(tǒng)中多標(biāo)記點(diǎn)的三維跟蹤算法
采用密度k_means和改進(jìn)雙邊濾波的點(diǎn)云自適應(yīng)去噪算法_郭進(jìn)
散亂點(diǎn)云去噪與簡(jiǎn)化的統(tǒng)一算法
![散亂<b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b><b class='flag-5'>去</b><b class='flag-5'>噪</b>與簡(jiǎn)化的統(tǒng)一<b class='flag-5'>算法</b>](https://file.elecfans.com/web2/M00/49/67/poYBAGKhwK2AMHLXAAAbYQxLeZQ879.jpg)
雙邊濾波點(diǎn)云去噪算法
![雙邊濾波<b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b><b class='flag-5'>去</b><b class='flag-5'>噪</b><b class='flag-5'>算法</b>](https://file.elecfans.com/web2/M00/49/89/poYBAGKhwMSAEtuLAAAT_tEZnwk841.jpg)
計(jì)算機(jī)視覺:三維點(diǎn)云數(shù)據(jù)處理學(xué)習(xí)內(nèi)容總結(jié)
基于深度學(xué)習(xí)的三維點(diǎn)云語(yǔ)義分割研究分析
![基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的<b class='flag-5'>三維</b><b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b>語(yǔ)義分割研究分析](https://file.elecfans.com/web1/M00/E8/C8/pIYBAGBlbYOABYV_AAGHCxk8Mkc065.png)
基于激光雷達(dá)點(diǎn)云的三維目標(biāo)檢測(cè)算法
一文詳解點(diǎn)云及三維圖像處理技術(shù)
基于深度學(xué)習(xí)的三維點(diǎn)云配準(zhǔn)新方法
![基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的<b class='flag-5'>三維</b><b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b>配準(zhǔn)新方法](https://file1.elecfans.com/web2/M00/89/ED/wKgaomSNEn-AHPGaAAAXnLQIClY922.png)
什么是三維點(diǎn)云分割
基于深度學(xué)習(xí)的三維點(diǎn)云分類方法
![基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的<b class='flag-5'>三維</b><b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b>分類方法](https://file1.elecfans.com/web2/M00/0B/52/wKgaomcgPleAcuF1AAArwAhnaeI436.png)
評(píng)論