  We present gP4Pc, a new method for computing the absolute pose of a
generalized camera with unknown internal scale from four corresponding 3D
point-and-ray pairs. Unlike most pose-and-scale methods, gP4Pc is based on
constraints arising from the congruence of shapes defined by two sets of four
points related by an unknown similarity transformation. By choosing a novel
parametrization for the problem, we derive a system of four quadratic equations
in four scalar variables. The variables represent the distances of 3D points
along the rays from the camera centers. After solving this system via Groebner
basis-based automatic polynomial solvers, we compute the similarity
transformation using an efficient 3D point-point alignment method. We also
propose a specialized variant of our solver for the case of coplanar points,
which is computationally very efficient and about 3x faster than the fastest
existing solver. Our experiments on real and synthetic datasets, demonstrate
that gP4Pc is among the fastest methods in terms of total running time when
used within a RANSAC framework, while achieving competitive numerical
stability, accuracy, and robustness to noise.
