相机姿态估计是计算机视觉中的一个基本问题。当图像特征点是点时,相机姿态估计也被称为视角-n点问题(PnP问题)。PnP问题的目标是通过一系列3D特征点及其在图像平面上的投影来确定相机的位置和姿态。PnP问题的解决方案在航天器交会与对接[1]、增强现实[2,3]、无人机定位[4,5]和空间物体跟踪[6,7]等各个领域都有广泛的应用。因此,PnP问题仍然是计算机视觉领域的一个关键研究焦点。
解决PnP问题所需的最少参考点数为三个,这也被称为P3P问题。然而,由于参考点数量有限,P3P问题可能没有唯一解,最多可能有四个解[8]。为了获得唯一解,需要额外的一个特征点。Kneip[9]、Persson[10]、Li[11]等人提出了快速准确的P3P问题解决方法。但由于参考点数量较少,从P3P问题求解相机姿态时容易受到噪声的影响。因此,大多数P3P问题解决方法都结合了RANSAC方法来消除异常值,大多数研究者专注于解决任意数量参考点的PnP问题,特别是当< />
大多数PnP解决方法可以处理< />
Lepetit等人[15]提出了一种著名的非迭代算法EPnP。EPnP方法使用四个控制点来表示每个特征点,通过获取控制点在相机坐标系中的坐标,将PnP问题转化为绝对定向问题。EPnP方法不仅准确性高,而且计算效率高,时间复杂度为O(n)。然而,在参考点数量较少时,EPnP算法的准确性较差。相比之下,Li等人[16]提出了RPnP算法,其时间复杂度也为O(n)。RPnP算法将参考点分为三个点子集并构建P3P约束,最终将PnP问题转化为七次多项式方程。RPnP算法在参考点数量较少时仍能保持高准确性。Hesch等人[17]提出了DLS方法,该方法使用Cayley参数化表示旋转矩阵,通过仅三个变量优化旋转矩阵的成本函数。然而,在某些情况下,Cayley方法会出现奇异性,这会影响DLS方法解的准确性和鲁棒性。为了克服这个问题,Zheng等人提出了OPnP算法[18],该方法使用非单位四元数来参数化旋转矩阵,并使用Gröbner基技术求解多项式方程。OPnP算法是准确性和鲁棒性最高的PnP算法之一。Wang等人[19]提出了一种更稳定的直接线性方法RDLT,该方法基于参考点之间的约束。与DLT方法相比,RDLT方法将解决PnP问题所需的参考点数量从6个减少到了4个。
近年来,研究人员开始关注将参考点的不确定性纳入PnP问题的解决方案中。Ferraz等人[20]提出的CEPPnP是第一个将不确定性纳入PnP问题的算法。该方法使用最大似然程序来最小化Sampson误差函数以解决PnP问题。Zhan等人[21]提出了GMLPnP,这是一种从最大似然角度出发的统计最优方法。Jahani等人[22]提出了AQPnP,该方法通过将点的协方差矩阵映射到PnP方法中来处理参考点的不确定性。与几何最优解相比,考虑不确定性的方法更适合噪声较大的情况。
在本文中,我们提出了一种新颖的几何解决方案,直接求解PnP问题。通过将n个参考点分为三个点子集来构建P3P约束,我们选择直接求解这些点与相机中心之间的深度,将PnP问题转化为更容易解决的绝对定向问题。我们的方法通过直接恢复参考点的深度值,为解决PnP问题提供了新的视角。我们的方法的主要贡献在于,与现有领先方法相比,对于大量点集的情况,我们的算法计算时间减少了50%以上,同时保持了相当的准确性。