基於深度學習的點雲配準Benchmark

2021-10-10 12:35:47 字數 2888 閱讀 9861

文章和**已更新:

最近幾年,基於深度學習的點雲配準演算法不斷被提出,包括pointnetlk[1],deep icp[2],dcp[3],prnet[4],idam[5],rpm-net[6],3dregnet[7],dgr[8]等。這些網路在modelnet40,kitti,或3dmatch資料集上進行試驗,其效能與速度均超過了傳統的icp演算法。這些演算法或者網路結構較為複雜,或者結果難以復現,對於把深度學習應用到點雲配準的初學者而言,不是很友好。這裡結合自己的感觸和最近閱讀的pcrnet[9] (兩者不謀而合),介紹一種非常簡單的點雲配準網路,或許它的結果不如前面提到的dcp, 3dregnet等效果好,但其簡潔易懂,且效果在modelnet40上仍優於icp,速度快於icp。

本文將要介紹的網路是基於pointnet + concat + fc的,它沒有其它複雜的結構,易於復現。因其簡潔性,這裡暫且把其稱作點雲配準的benchmark。因作者原始碼中複雜的(四元數, 旋轉矩陣, 尤拉角之間)的變換操作和冗餘性,且其pytorch版本的不完整性(缺少評估模型等,最近又更新了),於是根據自己的理解,從頭擼了一遍整個模型: 資料,網路,評估,訓練,測試,視覺化等操作,**已開源

章節2介紹模型的dataloader部分,就是怎麼組織資料的; 章節3介紹模型的網路部分; 章節4介紹損失函式; 章節5介紹評估指標; 章節6介紹模型的實現及實現過程中遇到的一些坑; 章節7介紹本庫的一些實驗結果; 章節8介紹一些補充資訊,如四元數、旋轉矩陣和尤拉角之間的關係等。

應用於點雲配準中的loss比較多,關於r, t的mse loss,關於尤拉角的loss,關於點雲的cd(chamfer distance) loss和emd(earth mover) loss。

本模型中採用的emd loss(最先實驗了cd loss,效果不理想),實現的**是借鑑於網上的開源庫

本庫的loss**在./loss/earth_mover_distance.py.

評估指標主要4個: mse_r, mse_t, mse_degree, time。前面3個和精度有關係,time是和效率有關。

網路結構雖然簡單,但使其能有效work還是很困難的,先說一下在實現過程中走過的坑:

因此,最終在實現時,採用了iterative benchmark模型、emd loss、adam優化器。batchsize設定為16,訓練400 epoches,初始學習率設定為1e-4,學習率下降採用multisteplr[50, 250]。在訓練和**時均不減點雲的均值。

另外,要注意的是,乙個batchsize中不同的組織資料會帶來網路訓練的不穩定性,比如相同的**,不改任何配置,由於shuffle的存在,訓練結果差別挺大的;因此在訓練時設定了隨機種子,保證訓練結果的可復現性。

7.1 實驗結果

實驗比較了iterative benchmark和icp在modelnet40測試集上的精度和時間,實驗結果如下表:

method

mse_t

mse_r

mse_degree

time(s)

icp0.40

0.38

11.86

0.06

iterative benchmark

0.350.187.900.02

從表中可以看到,iterative benchmark在modelnet40測試集上的配準結果,從精度(mse_t, mse_r, mse_degree)和速度(time)上是優於icp的。

7.2 實驗結果視覺化

7.3 訓練過程視覺化

7.4 思考

iterative benchmark在modelnet40資料集的大部分cases的配準結果比較好的,但以下問題還需要解決:

本章節介紹一些三維旋轉的內容,參考了和

[1]. pointnetlk: point cloud registration using pointnet [cvpr 2019]

[2]. deepicp: an end-to-end deep neural network for 3d point cloud registration [iccv 2019]

[3]. deep closest point: learning representations for point cloud registration [iccv 2019]

[4]. prnet: self-supervised learning for partial-to-partial registration [neurips 2019]

[5]. iterative distance-aware similarity matrix convolution with mutual-supervised point elimination for efficient point cloud registration [eccv 2020]

[6]. rpm-net: robust point matching using learned features [cvpr 2020]

[7]. 3dregnet: a deep neural network for 3d point registration [cvpr 2020]

[8]. deep global registration [cvpr 2020]

[9]. pcrnet: point cloud registration network using pointnet encoding [arxiv 2019]

點雲配準相關

導師給了方向,所以最近在看點雲配準相關 點雲配準是計算機視覺的乙個分支方向 點雲是在同一空間參考係下表達目標空間分布和目標表面特性的海量點集合,在獲取物體表面每個取樣點的空間座標後,得到的是點的集合,稱之為 點雲 point cloud 那什麼是三維影象呢?三維圖像是一種特殊的影象資訊表達形式。相比...

點雲的粗配準和精配準

1.前言 點雲配準是點雲處理的重要技術之一,可以用來估計物體位姿,拼接多個視角下的點雲.分別用基於取樣一致性的粗配準,以及粗配準與icp精配準結合的方法進行配準實驗。粗配準流程圖如下,主要為精配準提供乙個比較好的初始位置。精配準採用icp配準,pcl庫實現思路 2.思考 以上可以看出無論是粗配準還是...

點雲(剛性)配準 icp

二 解讀 提到配準演算法,icp認第二,沒哪種演算法敢認第一,可見,icp這道坎是繞不過去的,在本文中,會重點介紹icp的原理與實現方案,同時,也會結合pcl中的 進行詳細介紹。從本質上講,icp類演算法的基本原理是 對於兩組點雲p和q,計算旋轉矩陣r與旋轉矩陣t,使目標函式e最小 e 1 2 fr...