美文网首页
EPnP笔记

EPnP笔记

作者: liampayne_66d0 | 来源:发表于2019-07-27 12:28 被阅读0次

问题描述

已知n个空间点在世界坐标系下的坐标P_i^w及其图像坐标系下的坐标u_i,所要求解的问题是如何根据空间点和图像点之间的对应关系求解旋转矩阵R和平移向量t。

EPnP基本思路

-EPnP算法将世界坐标系中的3D坐标表示为一组虚拟的控制点的加权和。对于一般情形,EPnP算法要求控制点的数目为4,且这4个控制点不能共面。通过求解4个控制点在相机坐标系下的坐标,就可以进一步求解出相机位姿

求解虚拟控制点图像坐标

  • 在世界坐标系中设定4个非共面虚拟控制点,齐次坐标记为\{C_i^w|i=1,2,3,4\}

    注意这里是在世界坐标系中设定控制点

    四个点通常选为:
    C_1^w=[0,0,0,1]^T$$ $$C_2^w=[0,0,0,1]^T$$ $$C_3^w=[0,0,0,1]^T$$ $$C_4^w=[0,0,0,1]^T

    image
  • 空间点的世界坐标和控制点有如下关系
    p_i^w=\sum^4_{j=1}\alpha_{ij}C_j^w,with\sum^4_{j=1}=\alpha_{ij}=1
    向量[\alpha_{i1},\alpha_{i2},\alpha_{i3},\alpha_{i4}]^T可以看作空间点P_i^W在以控制点\{C_i^w|i=1,2,3,4\}为基的欧氏空间的坐标。
    同样的由于线性关系在欧式变换下的不变形有:
    p_i^c=\sum^4_{j=1}\alpha_{ij}C_j^c

  • 空间点P_i和图像点u_i的投影成像关系为:
    \lambda_iu_i=K[R,t]P_i^w=KP^c_i=K\sum_{j=1}^4\alpha C_j^c
    设控制点相机坐标系下C_j^c=[x_j^c,y_j^c,z_j^c]^T,则
    \lambda_i=\sum_{j=1}^4\alpha_{ij}z_j^c
    把上面两个式子结合可得:
    \sum_{j=1}^4\alpha_{ij}fx_j^c-\alpha_{ij}u_iz_j^c=0
    \sum_{j=1}^4\alpha_{ij}fy_j^c-\alpha_{ij}v_iz_j^c=0

Z=[Z_1^{cT},Z_2^{cT},Z_4^{cT},Z_4^{cT}]^T,Z^c_j=[fx_j^c,fy^c_j,z_j^c]^T,j=1,2,3,4,所以Z是1*12的向量

n个空间点可以得到线性方程组:
MX=0
其中X=[c_1^{cT},C_2^{cT},C_3^{cT},C_4^{cT}]^T,每个元素是控制点在摄像头坐标系下的坐标。
X=\sum^N_{i=1}\beta_iv_i
可以计算M^TM的特征向量得到v_i ,但还需要求出\beta_i
对于第i个控制点:
c_i^c=\sum^N_{k=1}\beta_kv_k^{[i]}
v_k^{[i]}是特征向量v_k的第i个3×1 sub-vector

  • 高斯牛顿优化:
    摄像头的外参描述的只是坐标变换,不会改变控制点之间的距离
    ||\sum^N_{k=1}\beta_kv_k^{[i]}-\sum^N_{k=1}\beta_kv_k^{[j]}||^2=||c_i^w-c^w_j||^2
    优化目标函数:
    Error(\beta)=\sum_{(i,j)s.t.i<j}(||\sum^N_{k=1}\beta_kv_k^{[i]}-\sum^N_{k=1}\beta_kv_k^{[j]}||^2-||c_i^w-c^w_j||^2)^2

计算相机位姿

  1. 控制点在相机坐标系下的坐标
    c_i^c=\sum^N_{k=1}\beta_kv_k^{[i]},i=1,...,4
  2. 计算3D参考点在摄像头参考坐标系下的坐标:
    p_i^c=\sum^4_{j=1}\alpha_{ij}C_j^c,i=1,...,n
  3. 计算\{P_i^w\}_{i=1,...,n}的重心P^w_0和矩阵A:
    A= \left[ \begin{matrix} p_1^{w^T}-p_0^{w^T}\\ ....\\ p_n^{w^T}-p_0^{w^T} \end{matrix} \right]
  4. 计算\{P_i^c\}_{i=1,...,n}的重心P^c_0和矩阵B:
    B= \left[ \begin{matrix} p_1^{c^T}-p_0^{c^T}\\ ....\\ p_n^{c^T}-p_0^{c^T} \end{matrix} \right]
  5. 计算H:
    H=B^TA
  6. 计算H的SVD分解:
    H=U\Sigma V^T
  7. 计算旋转R
    R=UV^T
    如果|R|<0,那么R(2,:)=-R(2,:)
  8. 计算平移t:
    t=p^c_0-Rp^w_0

相关文章

  • EPnP笔记

    问题描述 已知n个空间点在世界坐标系下的坐标及其图像坐标系下的坐标,所要求解的问题是如何根据空间点和图像点之间的对...

  • EPnP论文笔记

    目录 EPnP简介 关于控制点 计算相机坐标系下的控制点(GN优化没写) 计算R,t 平面(未完成) 实验(未完成...

  • ORBSLAM2中的EPnP算法

    在看到orbslam2中的Tracking::Relocalization中的PnPsolver::iterate...

  • 开发笔记目录查看

    笔记一: 笔记二: 笔记三: 笔记四: 笔记五: 笔记六:

  • 目录

    羊皮笔记01 羊皮笔记02 羊皮笔记03 羊皮笔记04 羊皮笔记05 羊皮笔记06 羊皮笔记07

  • 《大江大河》笔记若干(一)

    后续笔记若干…… 后续笔记若干…… 后续笔记若干…… 后续笔记若干…… 后续笔记若干……

  • 记笔记分为闪念笔记、文献笔记和永久笔记

    记笔记分为闪念笔记、文献笔记和永久笔记 7/10 1,记闪念笔记 2,记文献笔记 3,记永久笔记 ——申克•阿伦斯...

  • 卡片笔记上记录什么?

    卡片可以用来记录四种笔记,分别是:闪念笔记、文献笔记、永久笔记、项目笔记。 1、闪念笔记(Fleeting Not...

  • MARKDOWN学习笔记

    标题 # MARKDOWN学习笔记 MARKDOWN学习笔记 MARKDOWN学习笔记- MARKDOWN学习笔记...

  • 关于五款云笔记应用的对比

    这篇笔记主要是关于印象笔记、有道云笔记、为知笔记、麦库笔记和云笔记五款云笔记应用的对比,来简单写一下关于云笔记类产...

网友评论

      本文标题:EPnP笔记

      本文链接:https://www.haomeiwen.com/subject/eaosrctx.html