中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

從零開始一起學(xué)習(xí)SLAM|點云平滑法線估計

點云濾波后為什么還需要平滑?

成都創(chuàng)新互聯(lián)公司專注于豐滿網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供豐滿營銷型網(wǎng)站建設(shè),豐滿網(wǎng)站制作、豐滿網(wǎng)頁設(shè)計、豐滿網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造豐滿網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供豐滿網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

小白:師兄,師兄,上次你說的點云濾波我學(xué)會啦,下一步怎么把點云變成網(wǎng)格?。?br/>師兄:濾波只是第一步,在網(wǎng)格化前我們還需要對濾波后的點云進行平滑(smoothing)
小白:不是已經(jīng)濾波了嗎?怎么還要平滑???濾波和平滑不一樣嗎?
師兄:確實不太一樣。我們用RGB-D,激光掃描儀等設(shè)備掃描物體,尤其是比較小的物體時,往往會有測量誤差。這些誤差所造成的不規(guī)則數(shù)據(jù)如果直接拿來曲面重建的話,會使得重建的曲面不光滑或者有漏洞,而且這種不規(guī)則數(shù)據(jù)很難用前面我們提到過的統(tǒng)計分析等濾波方法消除,所以為了建立光滑完整的模型必須對物體表面進行平滑處理和漏洞修復(fù)。
你看下面左邊就是原始的掃描數(shù)據(jù),右邊就是用最小二乘法進行表面平滑后的結(jié)果

從零開始一起學(xué)習(xí)SLAM | 點云平滑法線估計

小白:從圖上看,平滑確實效果很明顯啊,左邊杯子上黑色的是噪聲吧,右邊的結(jié)果來看經(jīng)過平滑都消失了
師兄:對,除了上面說到的設(shè)備測量誤差外,還有一種情況也需要對點云進行平滑。就是后處理過程中,比如我們對同一個物體從不同方向進行了多次掃描,然后把掃描結(jié)果進行配準,最后得到一個完整的模型,但是你配準的結(jié)果不一定準啊,比如下圖中左側(cè)就是配準后未經(jīng)過處理的結(jié)果,同一面墻壁由于配準誤差變成了“兩面墻”,并不能完全重疊,你覺得這個數(shù)據(jù)可以直接用來進行表面重建嗎?

從零開始一起學(xué)習(xí)SLAM | 點云平滑法線估計

小白:好坑啊,肯定不行,這樣重建出的結(jié)果也是兩面墻了吧
師兄:對,所以我們需要想辦法把“兩面墻”變成“一面墻”,如果這時候,我們沒有條件重新掃描出更精確的結(jié)果,或者配準精度也無法提升,可以通過重采樣的方法來實現(xiàn)點云的平滑,從而避免出現(xiàn)這樣的問題。
小白:原來這個平滑這么重要??!怎么用重采樣來平滑呢?感覺迫不及待想要學(xué)習(xí)啦!
師兄:(既然胃口已經(jīng)被吊起來了)那我們趕快開始切入正題吧
如何通過重采樣實現(xiàn)點云平滑?

師兄:點云重采樣,我們實際上是通過一種叫做“移動最小二乘”(MLS, Moving Least Squares )法來實現(xiàn)的,對應(yīng)的類名叫做:pcl::MovingLeastSquares,你知道怎么用嗎?
小白:不知道,不過我還記得我們上次師兄給我說的方法,在PCL API documentation http://docs.pointclouds.org/trunk/ 上查詢類名稱,就能看到類的定義和用法啦
師兄:活學(xué)活用啊,哈哈,那我們現(xiàn)在去查一下看看吧
小白:嗯,我查到了,這個MLS類的定義在這里:
http://docs.pointclouds.org/trunk/classpcl_1_1_moving_least_squares.html#a379330b0b1dacaa668d165f94930749c
成員函數(shù)好多啊
師兄:對,看著是很多,但是很多我們不常用的,比如我們常用的一個用于重采樣的示例代碼如下,每行代碼都給你注釋好了,結(jié)合上面網(wǎng)址看很容易理解

// 對點云重采樣  
pcl::search::KdTree

小白:師兄,這個代碼里的KD-Tree是干嘛的?
師兄:Kd-Tree是一種數(shù)據(jù)結(jié)構(gòu),是空間二分樹的一種特殊情況,可以很方便的用于進行范圍搜索。在這里用KD-Tree就是為了便于管理、搜索點云,這種結(jié)構(gòu)來可以很方便的找到最近鄰點。
小白:原來如此,那上面mls.setSearchRadius (0.05) 的意思是不是就是搜索當前點以5cm為半徑的空間中所有的點?
師兄:對的,然后把這些點用2階多項式擬合~

從零開始一起學(xué)習(xí)SLAM | 點云平滑法線估計
小白:所以表面就變平滑啦!
如何估計點云的表面法線?

小白:師兄,現(xiàn)在可以網(wǎng)格化了嗎?
師兄:還不行。。。別急,網(wǎng)格化前我們還需要估計一下點云的表面法線(normal)
小白:啊,怎么又冒出來一個法線。。。
師兄:法線好像是中學(xué)就學(xué)過了,應(yīng)該還記得平面的法線的定義吧,平面的法線是垂直于該平面的向量,如下圖所示

從零開始一起學(xué)習(xí)SLAM | 點云平滑法線估計

你看上面右邊那個圖,對于曲面來說,曲面在某點P處的法線為垂直于該點切平面(tangent plane)的向量
小白:記得呢,不過這個法線有什么用?怎么就突然冒出來了
師兄:法線很有用的,尤其是在三維建模中應(yīng)用非常廣泛,比如在計算機圖形學(xué)(computer graphics)領(lǐng)域里,法線決定著曲面與光源(light source)的強弱處理(Flat Shading),對于每個點光源位置,其亮度取決于曲面法線的方向。
小白:原來如此。不過好像平面或曲面的法線比較容易計算,方程 ax + by + cz = d 表示的平面,向量(a, b, c)
就是其法線。而我們這里是點云呢!怎么算呢?
師兄:確實如此。點云的法線計算是稍微麻煩點,一般有兩種方法:
1、使用曲面重建方法,從點云數(shù)據(jù)中得到采樣點對應(yīng)的曲面,然后再用曲面模型計算其表面的法線
2、直接使用近似值直接從點云數(shù)據(jù)集推斷出曲面法線
這里主要用第2種方法來近似估計點云中每個點的表面法線。
具體來說,就是把估計某個點的表面法線問題簡化為:從該點最近鄰計算的協(xié)方差矩陣的特征向量和特征值的分析,這里就不多做介紹了。PCL已經(jīng)幫我們封裝好了函數(shù)啦
我們計算出來點云的法線大概是這樣的

從零開始一起學(xué)習(xí)SLAM | 點云平滑法線估計

小白:那個箭頭就代表法線吧?
師兄:對的,我們前面提到了,需要從該點的周圍點鄰域(也稱為k鄰域)估計一點處的表面法線 ,所以這個K鄰域的選取也很關(guān)鍵
小白:這個K鄰域選取會有什么影響嗎?
師兄:有的,而且影響挺大的,K近鄰的取值可以通過選擇k個最近點,或者確定一個以r為半徑的圓內(nèi)的點集來確定,你看下面這個圖是對同一個點云用不同尺度因子(k和r)進行法線估計的結(jié)果。左邊部分表示比例因子選擇的比較合適,估計的表面法線近似垂直于這兩個平面,即使在互相垂直的邊緣部分,也能明顯看到邊沿。而右邊的尺度因子就選的有點大了,這樣臨近點集更大范圍的覆蓋臨近表面的點,兩個平面邊沿處估計的法線就不準了,不能表達真實的情況。
從零開始一起學(xué)習(xí)SLAM | 點云平滑法線估計

小白:確實是這樣啊,看來編程的時候要格外注意了。
師兄:法線估計的示例如下,我也給你注釋好啦

// 法線估計
pcl::NormalEstimation

本文參考:PCL官網(wǎng)

從零開始一起學(xué)習(xí)SLAM | 點云平滑法線估計

本文標題:從零開始一起學(xué)習(xí)SLAM|點云平滑法線估計
本文地址:http://www.rwnh.cn/article6/igpsog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)商城網(wǎng)站、Google做網(wǎng)站、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
鄂尔多斯市| 本溪市| 博罗县| 麻城市| 寿阳县| 定陶县| 桦甸市| 江永县| 阿拉尔市| 垦利县| 博客| 读书| 霍林郭勒市| 垦利县| 甘泉县| 揭西县| 天祝| 烟台市| 沅陵县| 松溪县| 故城县| 隆昌县| 定远县| 阜南县| 东城区| 武城县| 鄂托克旗| 凤山市| 京山县| 沙坪坝区| 东阿县| 桐梓县| 兰坪| 高邮市| 双柏县| 达拉特旗| 岳阳县| 珠海市| 寿光市| 永城市| 云南省|