點云濾波后為什么還需要平滑?
成都創(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é)果
小白:從圖上看,平滑確實效果很明顯啊,左邊杯子上黑色的是噪聲吧,右邊的結(jié)果來看經(jīng)過平滑都消失了
師兄:對,除了上面說到的設(shè)備測量誤差外,還有一種情況也需要對點云進行平滑。就是后處理過程中,比如我們對同一個物體從不同方向進行了多次掃描,然后把掃描結(jié)果進行配準,最后得到一個完整的模型,但是你配準的結(jié)果不一定準啊,比如下圖中左側(cè)就是配準后未經(jīng)過處理的結(jié)果,同一面墻壁由于配準誤差變成了“兩面墻”,并不能完全重疊,你覺得這個數(shù)據(jù)可以直接用來進行表面重建嗎?
師兄:點云重采樣,我們實際上是通過一種叫做“移動最小二乘”(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階多項式擬合~
小白:師兄,現(xiàn)在可以網(wǎng)格化了嗎?
師兄:還不行。。。別急,網(wǎng)格化前我們還需要估計一下點云的表面法線(normal)
小白:啊,怎么又冒出來一個法線。。。
師兄:法線好像是中學(xué)就學(xué)過了,應(yīng)該還記得平面的法線的定義吧,平面的法線是垂直于該平面的向量,如下圖所示
你看上面右邊那個圖,對于曲面來說,曲面在某點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ù)啦
我們計算出來點云的法線大概是這樣的
小白:確實是這樣啊,看來編程的時候要格外注意了。
師兄:法線估計的示例如下,我也給你注釋好啦
// 法線估計
pcl::NormalEstimation
本文參考:PCL官網(wǎng)
本文標題:從零開始一起學(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)