Parallel Tracking and Mapping for Small AR Workspaces (PTAM) (original) (raw)

PTAM screenshot

PTAM (Parallel Tracking and Mapping) is a camera tracking system for augmented reality. It requires no markers, pre-made maps, known templates, or inertial sensors. If you're unfamiliar with PTAM have a look at some videos made with PTAM.

Here you may download a reference implementation of PTAM as described in our ISMAR 2007 paper (with the relocaliser from the ECCV'08 paper, and a Faugeras-Lustman initialiser instead of 5PP). This implementation was developed on Linux but should also compile on OSX and Win32 (With Visual Studio); please see the included README file for requirements and compilation instructions. Have a look at avideo of typical operation.

This software is aimed at AR/vision/SLAM researchers! It does not come with pre-made AR games like ``Ewok Rampage.'' The only visualisation included is the four-eyed AVL logo shown in the usage video above. This is research-quality code and not a polished end-user application. Unless you are familiar with compiling and running computer vision applications on your target platform, you might have a hard time using this.

PTAM is now also available under GPL! Find PTAM-GPL on GitHub here. Please feel free to fork this project for your own needs. See also Robert Castle's blog entry.

Important:

It seems many people are having trouble initializing the system correctly. Please remember that the camera must be translated, not just rotated, between the first two key-frames. See below:

Diagram illustrating need for camera translation in PTAM initialisation

News:

Feb 3 2014 - Added refernce to GPL release of PTAM.

April 30 2010 - There's now a blog at wordpress for all things PTAM-related.

Jan 28 2010 - If you had crashes in CameraCalibrator try the newest version.

Jul 14 2009 - The switch to TooN2 introduced a failure mode by which new points would immediately be erased, so the map would start empty and exploration would be slowed. Fixed in r112.

May 11 2009 - Finally spotted and fixed a really ancient (and rather embarrassing) bug in the bundle adjuster which made 19 out of 20 iterations less efficient. Also PTAM now uses TooN2 rather than TooN1.

Mar 9 2009 - Some people are reporting segfaults in TooN/linoperators.h - if you get this try compiling with -fno-tree-vectorize (I think this is a compiler bug?)

Oct 3 2008 - r104 adds the frame-to-frame initialiser described in the ECCV'08 paper. This provides more resilience to rapid camera pans.

Back to Georg Klein's homepage


Updated February 2014

gk@robots.ox.ac.uk