and outliers. However, due to their efficiency and capability to calculate from a small point set, P3P or P4P methods are very useful for combing a RANSAC-like scheme to reject outliers. There are also many non-iterative P$n$P methods that are able to make use of redundant points but are quite time consuming. For example, Ansar’s method is $O(n^8)$ [@ansar2003linear] and Fiore’s is $O(n^2)$ [@fiore2001efficient]. Schweighofer proposed an $O(n)$ P$n$P method named SDP, but is slow [@schweighofer2008globally]. In recent years, three excellent $O(n)$ effective non-iterative P$n$P methods, EP$n$P [@lepetit2009epnp], RP$n$P [@li2012robust] and UP$n$P[@kneip2014upnp], have been proposed, and these methods are very efficient and accurate even compared to iterative methods.

Iterative P$n$P methods [@lu2000fast][@lowe1991fitting][@dementhon1995model][@horaud1997object] are mostly optimization methods that decrease their energy function in the iterative process. They are generally more accurate and robust, but slower. For example, Dementhon proposed POSIT that is easy to implement [@dementhon1995model] and further proposed SoftPOSIT to handle situations when the correspondence relationships are unknown [@david2004softposit]. Although SoftPOSIT has a certain ability to handle outliers, the strong assumption that all correspondences are unknown make it slow. Lu’s method [@lu2000fast] is the most accurate iterative P$n$P method but may get stuck in local minima. Schweighofer discussed the local 