DSO半稠密點雲生成工具

2021-09-24 06:16:55 字數 1370 閱讀 2440

介紹:

半稠密點雲的生成主要通過兩個方面:

把多個frame的畫素投影到同乙個frame上面,計算這乙個frame上面畫素的深度。這種做法不考慮畫素之間的相關性。但其實畫素之間是有相關性的,因為3d空間中的表面大都是連續的,所以相鄰畫素的深度的變化應該也是連續。

通過深度的連續性不斷擴充套件不能通過視察計算出來的那些畫素的深度。

有一類演算法叫做mvs(multi-view steros)就是主打深度的連續性來加密點雲。這類演算法一般比較慢,但是出來的點雲的連續性比較好。

大多數演算法都會把深度的連續性和投影誤差同時作為優化的量

dso是基本完全放棄利用深度的連續性,來提高演算法的速度。因為本研究的目的是利用點雲來做定位,所以要求點雲的生成必須很快,dso的半稠密點雲生成正好適合這個需求。

原版的dso是一遍計算軌跡一遍生成點雲。本研究考慮到系統的穩定性,使用orb事先計算出軌跡,然後把軌跡輸入到dso中,生成點雲。

**:使用catkin build編譯

使用方法:

./devel/lib/dso/dso_test /home/chamo/documents/data/try_dso2/ /home/chamo/documents/data/iphone/05-21-18-04-24.bag img 50 1 100

裡面有演算法輸入檔案以及輸出的結構都在裡面

第二個引數:影象資料使用bag格式儲存

影象資料對應的topic名字

認為可靠的距離

因為深度越大,越是不准,當然這個和基線長度也有關係,不過這裡先簡單用一刀切的方法。也就是深度小於這個值的點都不輸出。

稠密程度

dso有幾種型別的點:

被邊緣化的(最可靠的點)

正在被使用的(第二可靠的點)

被刪除的點

還在預備加入優化的點

這裡設定為1就只輸出被邊緣化的,如果設定為2還會增加輸出正在被使用的點

每隔多少frame進行一次輸出

如果設定為-1就是把所有資料輸出到乙個檔案中

設定為非-1的意思是每隔這麼多frame才輸出一次,每次都會生成乙個pcd檔案。每次值輸出當前系統中有的點。

這個功能是給測試連續定位效能用的。

輸入輸出檔案:

所有輸入輸出檔案都要放在第乙個引數設定的目錄下,用指定的檔名。

frame_pose_opt.txt:輸入的軌跡檔案

camera.txt:輸入的相機引數檔案

輸出的都是pcd檔案

學習SLAM DSO半稠密點雲生成工具

1 把多個frame的畫素投影到同乙個frame上面,計算這乙個frame上面畫素的深度。這種做法不考慮畫素之間的相關性。但其實畫素之間是有相關性的,因為3d空間中的表面大都是連續的,所以相鄰畫素的深度的變化應該也是連續。2 通過深度的連續性不斷擴充套件不能通過視察計算出來的那些畫素的深度。使用ca...

VisualSFM PMVS生成稠密點雲

利用相機拍攝乙個場景不同角度的,使用visualsfm能夠得到稀疏點雲,如果想要得到稠密點雲,可以在visualsfm中加入pmvs的應用程式,pmvs會作為乙個外掛程式執行將稀疏點雲插成稠密的點雲。我的電腦是32bit 將 cmvs pmvs master cmvs pmvs master bin...

視覺半稠密點雲匹配效能測試 基於分割描述符法

簡介 segmap是一種點雲全域性對齊的方法,原工作主要是針對lidar點雲的。segmap的特點是速度非常快,魯棒性很好,因為提取了特徵描述符。本工作主要把segmap方法嘗試在視覺生成的半稠密點雲上應用。具體原理見 測試方案 使對統一條街,兩次採集影象資料,用dso生成半稠密點雲 將兩份點雲使用...