PNP问题调研

       最近,在阅读一篇openface的文章,在头部姿态检测方面,他提到利用面部地标3D检测后,再使用正投影将它们投影到图像中,这使得通过求解PnP问题,可以准确地估计出目标的大小。下面对PNP问题做一个简单的调研。

      关于PNP问题,就是对物体的定位问题,是求解3D到2D点对的运动的方法。

       PNP问题:假定摄像机为小孔模型且已标定好,摄取一幅在物体坐标系下坐标已知的N个空间点的像,且这N个图像点的坐标已知,确定这N个空间点在摄像机坐标系下的坐标。

       通俗的说就是:通过空间中的N个特征点与图像成像中的N个点(3D到2D)计算出其投影关系,从而获得相机或物体位姿的问题。

 

以下讨论中假设相机位于点Oc,P1、P2、P3……为空间中的特征点。

 

Case1:当N=1时

当只有一个特征点P1,我们假设它就在图像的正中央,那么显然向量OcP1就是相机坐标系中的Z轴,此事相机永远是面对P1,于是相机可能的位置就是在以P1为球心的球面上,再一个就是球的半径也无法确定,于是有无数个解。

Case2:当N=2时

现在多了一个约束条件,显然OcP1P2形成一个三角形,由于P1、P2两点位置确定,三角形的变P1P2确定,再加上向量OcP1,OcP2从Oc点射线特征点的方向角也能确定,于是能够计算出OcP1的长度=r1,OcP2的长度=r2。于是这种情况下得到两个球:以P1为球心,半径为r1的球A;以P2为球心,半径为r2的球B。显然,相机位于球A,球B的相交处,依旧是无数个解。

Case3:当N=3时

与上述相似,这次又多了一个以P3为球心的球C,相机这次位于ABC三个球面的相交处,终于不再是无数个解了,这次应该会有4个解,其中一个就是我们需要的真解了。

详细计算参考:https://blog.csdn.net/luohuiwu/article/details/80722542

Case4:当N大于3时

N=3时求出4组解,好像再加一个点就能解决这个问题了,事实上也几乎如此。

 

参考文献:https://blog.csdn.net/yuyangyg/article/details/72794163

https://blog.csdn.net/luohuiwu/article/details/80722542

你可能感兴趣的:(人脸)