EPnP论文解读
本文主要结合论文"EPnP: An Accurate O(n) Solution to the PnP Problem" 论文下载,对EPnP求解PnP问题的理论依据和求解过程进行介绍。
PnP为 Perspective-n-Point的简称,是求解3D到2D点对的运动的方法:即给出n个3D空间点时,如何求解相机的位姿。
典型的PnP问题求解方式有很多种,例如P3P、 直接线性变换(DLT)、EPnP(Efficient PnP)、 UPnP。还有非线性的Bundle Adjustment。
EPnP是众多求解PNP问题的一种复杂度较低、效果较好的方法。EPnP的时间复杂度为O(n)。
其核心思想如下:
- 通过PCA的方式获取世界坐标系的4个控制点(vitual control points),用于通过加权求和的方式表示所有的n个3D空间点在世界坐标系下的坐标信息。
- 已知空间点Pi在世界坐标系下的坐标信息以及上述人为选取的控制点坐标信息,因此可以获得4个对应的加权参数aij的值。
- 根据欧式变换的不变特性,加权参数在相机坐标系下同样适用,因此可以通过相机内参和加权参数将像素坐标信息和在世界坐标系的的控制点信息构建联系,对每一个3D点都可以获取来个线性方程。
- 我们的目的是获取4个控制点在相机坐标系下的位姿信息(x,y,z),通过构建ICP问题可以求解相机相对世界坐标系下的旋转R和平移t信息。
- 其中在求解控制点在相机坐标系下的坐标信息时涉及到的矩阵M为:
a 11 f x 0 a 11 ( u c − u 1 ) a 12 f x 0 a 12 ( u c − u 1 ) a 13 f x 0 a 13 ( u c − u 1 ) a 14 f x 0 a 14 ( u c − u 1 ) 0 a 11 f y a 11 ( v c − v 1 ) 0 a 12 f y a 12 ( v c − v 1 ) 0 a 13 f y a 13 ( v c − v 1 ) 0 a 14 f y a 14 ( v c − v 1 ) a_{11}f_{x}\qquad 0\qquad a_{11}\left ( u_{c}-u_{1}\right )\qquad a_{12}f_{x}\qquad 0\qquad a_{12}\left ( u_{c}-u_{1}\right )\qquad a_{13}f_{x}\qquad 0\qquad a_{13}\left ( u_{c}-u_{1}\right )\qquad a_{14}f_{x}\qquad 0\qquad a_{14}\left ( u_{c}-u_{1}\right )\\ 0\qquad a_{11}f_{y}\qquad a_{11}\left ( v_{c}-v_{1}\right )\qquad 0\qquad a_{12}f_{y}\qquad a_{12}\left ( v_{c}-v_{1}\right )\qquad 0\qquad a_{13}f_{y}\qquad a_{13}\left ( v_{c}-v_{1}\right )\qquad 0\qquad a_{14}f_{y}\qquad a_{14}\left ( v_{c}-v_{1}\right ) a11fx0a11(uc−u1)a12fx0a12(uc−u1)a13fx0a13(uc−u1)a14fx0a14(uc−u1)0a11fya11(vc−v1)0a12fya12(vc−v1)0a13fya13(vc−v1)0a14fya14(vc−v1)