PointDSC: Robust Point Cloud Registration using Deep Spatial Consistency (PointDSC) 论文学习笔记小结

PointDSC: Robust Point Cloud Registration using Deep Spatial Consistency (PointDSC) 论文学习笔记小结

PointDSC工作基于利用空间一致性的Outlier Removal, 是对Spectral Match(SM)算法的改进与拓展。SM算法通过长度一致性构建对应关系间的相容图。随后使用特征分析来进行聚类,区分离群点和内点。其缺陷主要在于:长度一致性在很多场景下的辨别能力不够强(遂通过深度学习的特征进行取代)。离群点较多时可能出现反客为主的情况,inliers不能取得主宰的地位,特征分析会失效。

PointDSC主要由三个模块构成,一个是空间一致性特征引导的非局部几何特征提取模块SCNonlocal Module;可微分的谱匹配模块;最后是用于解决低重叠率情况的种子机制,类似RANSAC,选取多个置信度高的种子与其领域作为子集,求解R,t。选择全部点云下目标函数值最小的R与t。

PointDSC: Robust Point Cloud Registration using Deep Spatial Consistency (PointDSC) 论文学习笔记小结

SCNonlocal Module

SCNonlocal的架构如下:
PointDSC: Robust Point Cloud Registration using Deep Spatial Consistency (PointDSC) 论文学习笔记小结

其更新机制可以用该等式来描述:
f i = f i + M L P ( ∑ j ∣ C ∣ softmax ⁡ j ( α β ) g ( f j ) ) \boldsymbol{f}_{\boldsymbol{i}}=\boldsymbol{f}_{\boldsymbol{i}}+\mathrm{MLP}\left(\sum_{j}^{|C|} \operatorname{softmax}_{j}(\boldsymbol{\alpha} \boldsymbol{\beta}) g\left(\boldsymbol{f}_{j}\right)\right) fi​=fi​+MLP⎝⎛​j∑∣C∣​softmaxj​(αβ)g(fj​)⎠⎞​

其中 α \alpha α是非局部性系数,由提取特征的点乘相似度(nonlocal)计算而得,而 β \beta β是空间一致性系数,由如下等式计算而得:
β i j = [ 1 − d i j 2 σ d 2 ] + , d i j = ∣ ∥ x i − x j ∥ − ∥ y i − y j ∥ ∣ \beta_{i j}=\left[1-\frac{d_{i j}^{2}}{\sigma_{d}^{2}}\right]_{+}, d_{i j}=\left|\left\|\boldsymbol{x}_{\boldsymbol{i}}-\boldsymbol{x}_{\boldsymbol{j}}\right\|-\left\|\boldsymbol{y}_{i}-\boldsymbol{y}_{j}\right\|\right| βij​=[1−σd2​dij2​​]+​,dij​=∣∣​∥xi​−xj​∥−∥∥​yi​−yj​∥∥​∣∣​

[ ⋅ ] + [\cdot]_{+} [⋅]+​是 m a x ( ⋅ , 0 ) max(\cdot , 0) max(⋅,0)操作。 σ d \sigma_d σd​是距离参数,用于控制参数对距离变化的敏感度。

这个度量一致性的表述方式值得学习。

通过SCNonlocal 模块,为输入的每一个点对对应关系 c i c_i ci​生成一个特征表示 f i f_i fi​,用于后续的seed selection以及 spectral matching.

Seed Selection

由于先前提到的问题,在离群点较多的时候,inliers可能并不能占据主导地位,导致聚类失败。所以作者提出了Seed Selection策略。

Seed Selection 通过将SCNonlocal提取出的特征表述 f i f_i fi​送入MLP,生成每个对应关系的初始置信度 v i v_i vi​,然后应用非极大值抑制选择良好分布的,有较高置信度的种子。

Neural Spectral Matching

根据上面的种子,在特征空间进行KNN搜索,构建若干个子集。

在特征空间搜索看似不起眼,但是确实容易成为盲区。在特征空间搜索的话,构成的子集更容易有一致性。

对每一个子集,跟随SM算法的思路,首先构建其相容图。但不同于传统的SM,该工作不单单依赖于长度一致性,同时还结合了几何特征相似度去更好的处理一些特殊的模糊情况。相容性矩阵按如下等式构建:
M i j = β i j ∗ γ i j γ i j = [ 1 − 1 σ f 2 ∥ f ˉ i − f ˉ j ∥ 2 ] + \begin{array}{c} M_{i j}=\beta_{i j} * \gamma_{i j} \\ \gamma_{i j}=\left[1-\frac{1}{\sigma_{f}^{2}}\left\|\bar{f}_{i}-\bar{f}_{j}\right\|^{2}\right]_{+} \end{array} Mij​=βij​∗γij​γij​=[1−σf2​1​∥∥​fˉ​i​−fˉ​j​∥∥​2]+​​

f ‾ i \overline{\boldsymbol{f}}_{i} f​i​ 与 f ‾ j \overline{\boldsymbol{f}}_{j} f​j​分别是L2-正则化后的特征向量,而 σ f \sigma_f σf​与先前的 σ d \sigma_d σd​类似,但由于是特征空间上的,该参数由网络自己学习。
特征空间的度量参数与长度一致性的距离参数相乘,就相当于构建相容图时结合了两种信息。

随后通过power iteration algorithm进行特征值分析,该过程是可微分的,特征值分析求解得到相容矩阵 M \mathbf{M} M的主特征向量 e \mathbf{e} e,因为主类是由inliers在统计意义上构成的,所以最大的特征向量的每一个元素都代表着一个对应关系的置信度。随后通过SVD求解:

R ′ , t ′ = arg ⁡ min ⁡ R , t ∑ i ∣ C ′ ∣ e i ∥ R x i + t − y i ∥ 2 \mathbf{R}^{\prime}, \mathbf{t}^{\prime}=\arg \min _{\mathbf{R}, \mathbf{t}} \sum_{i}^{\left|C^{\prime}\right|} \boldsymbol{e}_{\boldsymbol{i}}\left\|\mathbf{R} \boldsymbol{x}_{\boldsymbol{i}}+\mathbf{t}-\boldsymbol{y}_{\boldsymbol{i}}\right\|^{2} R′,t′=argR,tmin​i∑∣C′∣​ei​∥Rxi​+t−yi​∥2

在若干的seed及其构成的子集得到的若干 R , t R,t R,t中,先通过:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zT410GfN-1618840377489)(68B9B58A5EE942F1B3198D89D7AD8C4B)]
选择最优的R,t,然后通过选择的R,t以及给定的阈值 τ \tau τ,为每个对应关系给定outlier/inlier的标签,然后再将所有的inliers取来进行一次SVD求解,求精R,t。获得最后的结果。

Loss设计

L total  = L s m + λ L class  L_{\text {total }}=L_{s m}+\lambda L_{\text {class }} Ltotal ​=Lsm​+λLclass ​
L class  = BCE ⁡ ( v , w ∗ ) L_{\text {class }}=\operatorname{BCE}\left(\boldsymbol{v}, \boldsymbol{w}^{*}\right) Lclass ​=BCE(v,w∗)
L s m = 1 ∣ C ∣ 2 ∑ i j ( γ i j − γ i j ∗ ) 2 L_{s m}=\frac{1}{|C|^{2}} \sum_{i j}\left(\gamma_{i j}-\gamma_{i j}^{*}\right)^{2} Lsm​=∣C∣21​ij∑​(γij​−γij∗​)2

w ∗ w^{*} w∗是真值R,t下的Label。 计算的是v与真值的交叉熵。

γ i j \gamma_{i j} γij​在两个对应关系都为inliers时取1,其余情况取0,与NSM的结果 γ \gamma γ进行比较,计算损失函数。

上一篇:springboot使用过滤器和拦截器设计需要登录态接口


下一篇:PostgreSQL group by 后取最新的一条