Parallel Tracking and Mapping for Small AR Workspaces (PTAM) (original) (raw)
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:
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