Noname manuscript No.
(will be inserted by the editor)
EPnP: An Accurate O(n) Solution to the PnPProblem
Vincent Lepetit · Francesc Moreno-Noguer · Pascal Fua
Received: date / Accepted: date
Abstract We propose a non-iterative solution to the
PnP problem—the estimation of the pose of a cali-
brated camera from n 3D-to-2D point correspondences—
whose computational complexity grows linearly with n.
This is in contrast to state-of-the-art methods that are
O(n
5
) or even O(n
8
), without being more accurate. Our
method is applicable for all n ≥ 4 and handles properly
both planar and non-planar configurations. Our central
idea is to express the n 3D points as a weighted sum of
four virtual control points. The problem then reduces
to estimating the coordinates of these control points
in the camera referential, which can be done in O(n)
time by expressing these coordinates as weighted sum
of the eigenvectors of a 12 × 12 matrix and solving a
small constant number of quadratic equations to pick
the right weights. Furthermore, if maximal precision is
required, the output of the closed-form solution can be
used to initialize a Gauss-Newton scheme, which im-
V. Lepetit
Computer Vision Laboratory
École Polytechnique Fédérale de Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
F. Moreno-Noguer (Corresponding author)
Computer Vision Laboratory
École Polytechnique Fédérale de Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
Tel.: +41-216-931288
Fax: : +41-216-937520
E-mail: fmorenoguer@gmail.com
P. Fua
Computer Vision Laboratory
École Polytechnique Fédérale de Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
proves accuracy with negligible amount of additional
time. The advantages of our method are demonstrated
by thorough testing on both synthetic and real-data.
1
Keywords Pose estimation · Perspective-n-Point ·
Absolute orientation
1 Introduction
The aim of the Perspective-n-Point problem—PnPin
short—is to determine the position and orientation of
a camera given its intrinsic parameters and a set of n
correspondences between 3D points and their 2D pro-
jections. It has many applications in Computer Vision,
Robotics, Augmented Reality and has received much
attention in both the Photogrammetry [21] and Com-
puter Vision [12] communities. In particular, applica-
tions such as feature point-based camera tracking [27,
18] require dealing with hundreds of noisy feature points
in real-time, which requires computationally efficient
methods.
In this paper, we introduce a non-iterative solution
with better accuracy and much lower computational
complexity than non-iterative state-of-the-art methods,
and much faster than iterative ones with little loss of
accuracy. Our approach is O(n) for n ≥ 4 whereas all
other methods we know of are either specialized for
small fixed values of n, very sensitive to noise, or much
slower. The specialized methods include those designed
to solve the P3P problem [9,24]. Among those that han-
dle arbitrary values of n [8,6,13,11,24,29,7,2,9], the
lowest-complexity one [7] is O(n
2
) but has been shown
1
The Matlab and C++ implementations of the algo-
rithm presented in this paper are available online at
http://cvlab.epfl.ch/software/EPnP/