【论文笔记】匹配关系未知情况下点云配准Solving the Blind Perspective-n-Point ProblemEnd-To-End With Robust Differentiabl

澳大利亚国立大学,澳大利亚机器人视觉中心

本文解决的问题:BLind Perspective-n-Point(BPnP)

与Perspective-n-Point(PnP) 问题的区别在于PnP是已知2D与3D点之间的匹配关系的,而BPnP问题只有给定的2D点集和3D点集。因此BPnP需要额外求解一个匹配关系矩阵。

论文使用深度声明层将RANSAC结合到BPnP求解网络中,提出了第一个完全端到端可训练网路来解决BPnP问题

什么是深度声明层?

应该是在《deep declarative networks: A new hope》中首先提出的,与常见的具有显式前向函数、可以逐步进行梯度计算的命令层(如卷积层就是命令层)相对应。

声明层以优化目标函数的形式计算输出值,相比于命令层网络的逐层求梯度反向传播,其梯度计算是一步得到的,且允许递归或不可微算子存在,只要保证最后一个前向层是可微的。具体见其论文。

网络架构:

在这里插入图片描述

  • 数据预处理:将3D点云 p ∈ R 3 \mathbf{p} \in \mathbb{R}^{3} pR3进行输入变换以规范其朝向。(借鉴了PoseNet);2D点是以三维方位向量 f ∈ R 3 \mathbf{f} \in \mathbb{R}^{3} fR3的形式表示: ∥ f ∥ = 1 \|\mathbf{f}\|=1 f=1 f ∝ K − 1 [ u , v , 1 ] ⊤ \mathbf{f} \propto \mathbf{K}^{-1}[u, v, 1]^{\top} fK1[u,v,1],在此基础上对f除以Z轴坐标转为2D点,以减少网络参数量。

  • 特征提取:将P和f输入到各自的特征提取网络中,得到128维度的特征Zp和Zf.

    特征提取器使用了论文《learning to findgood correspondence》

  • 计算匹配概率:首先计算L2距离矩阵M: M i j = ∥ z f i − z p j ∥ 2 \mathbf{M}_{i j}=\left\|\mathbf{z}_{\mathbf{f}_{i}}-\mathbf{z}_{\mathbf{p}_{j}}\right\|_{2} Mij=zfizpj2,Mij表示第i个2D点与第j个3D点之间的特征距离。然后使用 Sinkhorn 算法求解运输问题得到匹配概率矩阵P。

    • Sinkhorn 算法是在声明层中封装的:输入M,输出P

      该层优化的目标函数:
      f ( M , P ) = ∑ i = 1 m ∑ j = 1 n ( M i j P i j + μ P i j ( log ⁡ P i j − 1 ) ) 其 中     U ( r , c ) = { P ∈ R + m × n ∣ P 1 n = r , P ⊤ 1 m = c } f(\mathbf{M}, \mathbf{P})=\sum_{i=1}^{m} \sum_{j=1}^{n}\left(\mathbf{M}_{i j} \mathbf{P}_{i j}+\mu \mathbf{P}_{i j}\left(\log \mathbf{P}_{i j}-1\right)\right)\\ 其中 \ \ \ U(\mathbf{r}, \mathbf{c})=\left\{\mathbf{P} \in \mathbb{R}_{+}^{m \times n} \mid \mathbf{P} \mathbf{1}^{n}=\mathbf{r}, \mathbf{P}^{\top} \mathbf{1}^{m}=\mathbf{c}\right\}\\ f(M,P)=i=1mj=1n(MijPij+μPij(logPij1))   U(r,c)={PR+m×nP1n=r,P1m=c}
      r,c是先验概率, 初始化时使用均匀分布作为先验
      相比于匈牙利算法O(n3),Sinkhorn算法时间复杂度为O(n2)。

      给定最优的概率匹配矩阵P,根据下列公式(引理2)计算P关于M的梯度:

      若 : 欠 约 束 线 性 方 程 组 : A u = d y ( x ) ∈ arg ⁡ min ⁡ u f ( x , u )  subject to  A u = d H = D Y Y 2 f ( x , y )  and  B = D X Y 2 f ( x , y ) 则 : Dy ⁡ ( x ) = ( H − 1 A ⊤ ( A H − 1 A ⊤ ) − 1 A H − 1 − H − 1 ) B 若:\\ 欠约束线性方程组: Au=d\\ \mathbf{y}(\mathbf{x}) \in \arg \min _{\mathbf{u}} f(\mathbf{x}, \mathbf{u}) \text { subject to } \mathbf{A} \mathbf{u}=\mathbf{d} \\ \mathbf{H}=\mathrm{D}_{Y Y}^{2} f(\mathbf{x}, \mathbf{y}) \text { and } \mathbf{B}=\mathrm{D}_{X Y}^{2} f(\mathbf{x}, \mathbf{y}) \\ 则:\\ \operatorname{Dy}(\mathbf{x})=\left(\mathbf{H}^{-1} \mathbf{A}^{\top}\left(\mathbf{A} \mathbf{H}^{-1} \mathbf{A}^{\top}\right)^{-1} \mathbf{A} \mathbf{H}^{-1}-\mathbf{H}^{-1}\right) \mathbf{B} 线:Au=dy(x)arguminf(x,u) subject to Au=dH=DYY2f(x,y) and B=DXY2f(x,y)Dy(x)=(H1A(AH1A)1AH1H1)B
      将这种算法封装在声明层中能够使算法运行到收敛,而不是固定其迭代次数,并且无需展开算法步骤并维护计算图,从而节省了大量的运算量。

  • BPnP优化: 已知匹配概率矩阵P,优化目标函数得到局部最优位姿(R,t)

    目标函数:
    f ( P , r , t ) = ∑ i = 1 m ∑ j = 1 n P i j ( 1 − f i ⊤ R r p j + t ∥ R r p j + t ∥ ) f(\mathbf{P}, \mathbf{r}, \mathbf{t})=\sum_{i=1}^{m} \sum_{j=1}^{n} \mathbf{P}_{i j}\left(1-\mathbf{f}_{i}^{\top} \frac{\mathbf{R}_{\mathbf{r}} \mathbf{p}_{j}+\mathbf{t}}{\left\|\mathbf{R}_{\mathbf{r}} \mathbf{p}_{j}+\mathbf{t}\right\|}\right) f(P,r,t)=i=1mj=1nPij(1fiRrpj+tRrpj+t)
    优化算法:pytorch自带的 L-BFGS 算法,关于这个算法,这个博客讲的很清楚。

    由于目标函数是二阶可微的,所以可以用如下的方式求解r和t 关于P的导数,而不是通过L-BFGS迭代计算其反向传播:给定了(r*,t *),可以通过如下公式(论文中引理1)求r和t 关于P的导数 Dr ⁡ ⋆ ( P ) \operatorname{Dr}^{\star}(\mathbf{P}) Dr(P) and D t ⋆ ( P ) \mathrm{D} \mathbf{t}^{\star}(\mathbf{P}) Dt(P)
    若 : H = D Y Y 2 f ( x , y ( x ) ) ∈ R m × m ; B = D X Y 2 f ( x , y ( x ) ) ∈ R m × m ; y ( x ) ∈ arg ⁡ min ⁡ u f ( x , u ) 则 : Dy ⁡ ( x ) = − H − 1 B 若:\mathbf{H}=\mathrm{D}_{Y Y}^{2} f(\mathbf{x}, \mathbf{y}(\mathbf{x})) \in \mathbb{R}^{m \times m} ; \quad B=\mathrm{D}_{X Y}^{2} f(\mathbf{x}, \mathbf{y}(\mathbf{x}))\in \mathbb{R}^{m \times m};\quad \mathbf{y}(\mathbf{x}) \in \arg \min _{\mathbf{u}} f(\mathbf{x}, \mathbf{u}) \\ 则:\operatorname{Dy}(\mathbf{x})=-\mathbf{H}^{-1} \mathbf{B} H=DYY2f(x,y(x))Rm×m;B=DXY2f(x,y(x))Rm×m;y(x)arguminf(x,u)Dy(x)=H1B
    单步求解只需要求解(局部)最优解用于计算梯度即可,尽管可以获得梯度的解析解,但它相当难计算。

    作为替代,论文使用自动微分来计算必要的雅可比矩阵和黑森矩阵。

    注意这里自动微分应用于规范目标函数,而不是用于优化目标函数的算法步骤,与深度学习中的标准用法不同。

    对现有的可微PnP求解器(DSAC,DLT等),对应关系集合太大了,对于m = n = 1000,99.9%的对应关系是异常值。

  • 声明层集成RANSAC

    根据概率匹配矩阵P选择前K个匹配关系,这里k=1.5min{m,n},用RANSAC选择内点,然后使用EPnP优化位姿调整。EPnP: 《EPnP: An accurate O(n) solution to thePnP problem》

    由于声明层中的最终处理节点优化了二次可微分的目标函数,因此任何中间不可微的计算与梯度计算无关。

    RANSAC不可微,且没有显式解,不可能使用诸如显式或自动微分之类的标准技术来获得梯度。

  • 损失函数:
    衡 量 匹 配 矩 阵 的 损 失 项 : L c = ∑ i m ∑ j n P i j ( 1 − 2 [ ∠ ( f i , R g t p j + t g t ) ⩽ θ ] ) 衡 量 位 姿 预 测 的 损 失 项 目 : L p = L r + L t L r = ∠ ( R , R g t ) = arccos ⁡ 1 2 ( trace ⁡ R g t ⊤ R − 1 ) L t = ∥ t − t g t ∥ 2 衡量匹配矩阵的损失项:\\L_{\mathrm{c}}=\sum_{i}^{m} \sum_{j}^{n} \mathbf{P}_{i j}\left(1-2\left[\angle\left(\mathbf{f}_{i}, \mathbf{R}_{\mathrm{gt}} \mathbf{p}_{j}+\mathbf{t}_{\mathrm{gt}}\right) \leqslant \theta\right]\right)\\\begin{array}{l}\\衡量位姿预测的损失项目:\\L_{\mathrm{p}}=L_{\mathrm{r}}+L_{\mathrm{t}} \\L_{\mathrm{r}}=\angle\left(\mathbf{R}, \mathbf{R}_{\mathrm{gt}}\right)=\arccos \frac{1}{2}\left(\operatorname{trace} \mathbf{R}_{\mathrm{gt}}^{\top} \mathbf{R}-1\right) \\L_{\mathrm{t}}=\left\|\mathbf{t}-\mathbf{t}_{\mathrm{gt}}\right\|_{2}\end{array} Lc=imjnPij(12[(fi,Rgtpj+tgt)θ])姿Lp=Lr+LtLr=(R,Rgt)=arccos21(traceRgtR1)Lt=ttgt2
    总的损失函数: L = L c + γ p L p L=L_{\mathrm{c}}+\gamma_{\mathrm{p}} L_{\mathrm{p}} L=Lc+γpLp

    训练时先使用L_c进行训练120epoch,然后用总损失训练。先学习好对应关系预测,可以有效减少搜索空间。

  • 实验结果:SOTA

    仿真数据集:

在这里插入图片描述

真实数据集:

在这里插入图片描述

速度:0.12s

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
云配准是三维数据处理的一项重要技术,可以将多个点云数据集对齐成为一个整体。在点云配准中,采用SAC-IA(Sample Consensus ICP with Applicable)算法进行配准,其优劣如下: 优点: 1. 高效性:SAC-IA算法通过使用采样一致性(Sample Consensus)策略来估计初始变换矩阵,并在此基础上进行迭代优化,因此具有较高的计算效率。 2. 鲁棒性:SAC-IA算法利用RANSAC(Random Sample Consensus)方法来鲁棒地估计初始变换矩阵,并通过迭代的方式最小化配准误差。由于采样和迭代操作的存在,SAC-IA对于局外点的干扰有一定的容忍性,对于噪声较多或局外点较多的情况下,仍能得到较好的配准结果。 3. 可适用性:SAC-IA算法可以用于各种不同类型的点云配准问题,无论是刚性配准还是非刚性配准,都能得到较好的效果。 缺点: 1. 参数选择的依赖性:SAC-IA算法中存在一些参数需要用户进行预设,例如采样率、迭代次数等。这些参数的选择对于配准结果的影响较大,但对于不同的点云数据集可能需要进行不同的设置,需要经验和调试来选择合适的参数。 2. 局部最优解问题:由于SAC-IA算法采用的是局部优化的方式,可能会陷入局部最优解而无法达到全局最优。这意味着在某些情况下,SAC-IA可能无法得到最佳的配准结果。 综上所述,SAC-IA算法具有高效性、鲁棒性和可适用性等优点,但也存在参数选择的依赖性和局部最优解问题。根据实际应用需求和数据特点,选择适合的算法进行点云配准是十分重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值