自動駕駛:如何使用apollo數據進行點雲配準?

數據集下載來自Apollo數據開放平臺:http://data.apollo.auto/?locale=zh-cn&lang=en

參考論文:2019 ICCV ——DeepICP: An End-to-End Deep Neural Network for 3D Point Cloud Registration

下載的是樣例數據,大概52GB左右。解壓之後包含三個文件夾:

分別是地圖數據,測試數據,訓練數據。每個文件夾中包含點雲pcds數據和poses位姿數據。

其中pcds數據可以用PCL點雲庫讀取,如果想提取出來點雲座標(x,y,z),可以直接用PCL把二進制存儲座標的pcd數據轉換成txt就可以了。 (這裏我後來發現pcd數據也可以直接用matlab fopen打開,然後讀其中的座標,可能是因爲它這個是ASCII保存,如果是以二進制的形式就讀不出來吧)

poses位姿數據包含是一個九維向量:

第一維是幀號,因爲每一秒鐘可以掃描幾十幀到上百幀,時間戳記錄了當前點雲數據的時間,後面三維爲x,y,z,只有的4維是一個四元數(已經單位化了,qx^2+qy^2+qz^2+qr^2 = 1),可以根據四元數轉換成旋轉矩陣,然後求得每相鄰,比如說100幀之間的一個變換。R旋轉矩陣和t平移矩陣。

 

目前遇到的一些問題:

因爲我本人也在做點雲配準的研究,使用Apollo數據測試過Deep ICP中提到的文章,差距比較大,在想是不是沒有理解他的用法?我現在用的是MapData中的第一幀和第一百幀數據,測試了一下CPD和自己的算法,誤差都比較大。

並且我觀察到,MapData和TestData、TrainData文件夾中的不同,gt_poses是真值,那init_poses作用是什麼?valid_range的作用是什麼呢?init_poses和gt_poses是要一起使用嗎?

地圖數據集中包含pcd格式的點雲數據爲36304幀,訓練數據集中包含pcd格式的點雲數據爲7538幀,測試數據集中包含pcd格式的點雲數據爲6443幀。

如果大家有知道的可以評論指教一下,或者說討論一下,謝謝~

 

2020/1/14:

如果做配準的話就不用在意init_poses和valid_range了。只需要關係gt_poses,其中包含了每幀的真值;

問了作者,數據的幀間間隔100是這個意思,比如你選取了第一幀,然後在選取第三幀吧打個比方,你確定下兩幀之間的距離是不是大於5了,沒有的話就採用這兩幀點雲數據爲x和y。之後幀間間隔是100,也就是你再選第101幀和103幀當做x和y。以此類推。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章