The goal of this project is to discover what attributes of a 3 dimensional scene can be derived from a series of ordinary photographs of that scene. In particular, given a series of photographs of a scene taken from arbitrary and unknown locations, is it possible to determine the precise location and orientation in 3D of the camera when each of the photographs was taken. The answer appears to be yes, although the technique is not trivial. Presented here is an algorithm to obtain the necessary information using a numerical optimization technique known as differential evolution. In addition to finding the location of the camera for each photo, several points known to be on the surface of the object being photographed are also located in 3D. The technique has been applied to photographs of two simple household objects and, with somewhat less success, to a series of photos of an entire room. Some ideas and future directions for recovering more of the 3D scene are also discussed.
This project was completed for the course CSC2505 (Computational Geometry). Several files related to the project can be downloaded from this page. All source code is licenced under the General Public Licence.