博客專欄

        EEPW首頁 > 博客 > 大盤點(diǎn)!三維點(diǎn)云去噪算法,涉及深度學(xué)習(xí)等(1)

        大盤點(diǎn)!三維點(diǎn)云去噪算法,涉及深度學(xué)習(xí)等(1)

        發(fā)布人:計算機(jī)視覺工坊 時間:2023-07-11 來源:工程師 發(fā)布文章
        1 什么是去噪1.1 噪聲

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

        1.2 噪聲來源

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

        1.3 點(diǎn)云去噪

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

        2 常見的去噪算法2.1 統(tǒng)計濾波

        1 原理

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

        2 舉例

        一點(diǎn)云中有50個點(diǎn),每個點(diǎn)的鄰近點(diǎn)個數(shù)設(shè)置為8,則50個點(diǎn)(8領(lǐng)域)的平均值計算如下:圖片則算出50個點(diǎn)的平均值,設(shè)置距離閾值σ,若平均值在閾值之外的視為離群點(diǎn),在點(diǎn)云數(shù)據(jù)中去除。

        3 核心代碼

        —--統(tǒng)計濾波
        //創(chuàng)建濾波器。對每個點(diǎn)分析的臨近點(diǎn)的個數(shù)設(shè)置為50,并將標(biāo)準(zhǔn)差的倍數(shù)設(shè)置為1,這意味著如果一個點(diǎn)的距
        離超出了平均距離一個標(biāo)準(zhǔn)差以上,則該點(diǎn)被標(biāo)記為離群點(diǎn),并將它移除,存儲起來
        pcl::Statistical0utlierRemowal<pcl : : PointIYZ>Sor;
        sor. setInputCloud (cloud);//設(shè)置待波波的點(diǎn)云
        sor.setMeamK (50);         //設(shè)置在進(jìn)行統(tǒng)計時考慮查詢點(diǎn)鄰近點(diǎn)數(shù)
        Sor. setStddevMu1Thresh(1); //設(shè)置判斷是否為高群點(diǎn)的閾值,里邊的數(shù)字表示標(biāo)準(zhǔn)差的倍數(shù),1個標(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è)置范圍,對點(diǎn)進(jìn)行濾波,保留范圍內(nèi)的或保留范圍外的,則去除離群點(diǎn)。

        2 舉例

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

        3 核心代碼

        //創(chuàng)建濾波器對象
        pcl::PassThrough<pcl::PointXYZ> pass;
        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時保留范圍內(nèi)的點(diǎn)
        2.3 半徑濾波

        1 原理

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

        2 舉例設(shè)置半徑為d,分別考察黃藍(lán)綠三點(diǎn),若點(diǎn)個數(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)行篩選,可以一次刪除滿足對輸入的點(diǎn)云設(shè)定的一個或多個條件指標(biāo)的所有的數(shù)據(jù)點(diǎn),如點(diǎn)的法線方向、點(diǎn)的強(qiáng)度值、點(diǎn)的顏色等屬性來篩選點(diǎn)云數(shù)據(jù)。

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

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

        2.5 中值濾波

        1 原理

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

        2 步驟

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

        圖片image.png

        2.6 均值濾波

        1 原理

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

        2 舉例

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

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


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



        關(guān)鍵詞: AI

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 伊金霍洛旗| 天等县| 昔阳县| 桃园市| 辽源市| 平原县| 桐城市| 新泰市| 明水县| 高邑县| 弥勒县| 诸城市| 米泉市| 韶山市| 元江| 松溪县| 阿克苏市| 郎溪县| 波密县| 万全县| 利川市| 县级市| 同德县| 区。| 文安县| 江都市| 赤壁市| 桑日县| 高陵县| 离岛区| 罗城| 灵石县| 顺平县| 平安县| 巧家县| 金乡县| 张家口市| 丰宁| 桑植县| 贵南县| 大冶市|