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

2021-09-24 06:08:30 字數 2213 閱讀 4349

簡介:

segmap是一種點雲全域性對齊的方法,原工作主要是針對lidar點雲的。

segmap的特點是速度非常快,魯棒性很好,因為提取了特徵描述符。

本工作主要把segmap方法嘗試在視覺生成的半稠密點雲上應用。

具體原理見:

測試方案:

使對統一條街,兩次採集影象資料,用dso生成半稠密點雲

將兩份點雲使用segmap進行分割和提取描述符後進行匹配的對齊

測試結果:

紅色和白色分別是兩次採集的點雲在被分割後的樣子。兩次採集只有中間的街道是重疊區域

中間的街道是兩次採集重疊的區域,通過segmap匹配後,基本對齊了。

細緻發現其實不是所有地方多對齊得很好。這個主要是因為兩份地圖的scale不是完全的一致。所以不可能做到遠距離的匹配。其實上面的對齊並沒有用到整條街道的匹配。只用了街道一端的匹配,所以另一段就沒有完全對齊了。

單獨用街道另外一端一小點點雲和另外乙個點雲對齊就能對其上,雖然重合得不是太好,但是後續加上ndt就能完全對齊。

segmap對點雲分割的結果。還是扔掉了很多的點。

結論:segmap的確是非常的robust,兩份點雲的確是非常的不一致。

全域性的一致性對匹配效果影響很大,也就是source點雲一定不要太大了。

在分割和描述的提取上還有很大的提公升空間,可以更具場景的特點採用不同的策略。

**:使用catkin build編譯,如果不知道catkin build是什麼的,請先自行學習。

拷貝三方庫

所有依賴都在拷貝的三方庫中

使用:需要檔案:

配置檔案:pc_match_config.yaml。裡面主要是segmap演算法的配置

啟動指令碼:gen_pc_desc.sh

配置檔案和指令碼都在**庫中,自行搜尋

source點雲pcd

target點雲pcd

描述符檔案,由描述符提取功能生成

流程:

指令碼中修改./devel/lib/pcdesc_matcher/pcdesc_matcher $ loc

執行檔案路徑

最後的loc是代表定位模式還是描述符提取模式,如果要提去描述符就設定為gen_map

修改點雲檔名為:semi_pc.pcd

把所有需要的檔案放在乙個目錄裡面,比如如下:

features_database.csv 生成的描述符檔案,生成描述符的時候不需要

segments_database.csv 生成的描述符檔案,生成描述符的時候不需要

pc_match_config.yaml

semi_pc.pcd

最後使用gen_pc_desc.sh執行程式,gen_pc_desc.sh程式的入參就是上面包含所有檔案的那個目錄路徑

重要的配置引數

segmenters

min_cluster_size:主要根據點雲的密度來設定,因為視覺點雲相對lidar很稀疏,這裡設定為最小值50

geometricconsistency

resolution:決定誤差在多少以內算作內點。設定太低,很難成功匹配上,太高的話會被匹配到錯誤的地方

min_cluster_size:這個一般設定為6就行。意思是內點小於多少才算是成功被匹配,大於6基本對匹配成功與否判斷比較準確,但是resolution不同也會影響這個的作用。

classifier

n_nearest_neighbours:找乙個描述符最相近的其他描述符的時候,需要找多少個點,也就是最相似的多少個描述符。一般設定為120。這個值越大,送入後面幾何一致性判斷模組的預先匹配就越多,也就是內點率就越低。

DSO半稠密點雲生成工具

介紹 半稠密點雲的生成主要通過兩個方面 把多個frame的畫素投影到同乙個frame上面,計算這乙個frame上面畫素的深度。這種做法不考慮畫素之間的相關性。但其實畫素之間是有相關性的,因為3d空間中的表面大都是連續的,所以相鄰畫素的深度的變化應該也是連續。通過深度的連續性不斷擴充套件不能通過視察計...

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

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

VisualSFM PMVS生成稠密點雲

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