Parallel Tracking and Mapping for Small AR Workspaces

TL;DR Track a hand-held camera in an unknown scene by splitting tracking and mapping into two parallel threads, so the map can be built from keyframes with full bundle adjustment. Frames track in about 20 ms against maps of thousands of points, and on a synthetic sequence the trajectory error is 6 mm versus 135 mm for EKF-SLAM.
What they do
PTAM tracks a calibrated hand-held camera in a small, mostly static, unknown scene (such as a desk) for augmented reality, with no prior map or initialisation target. Incremental systems such as EKF-SLAM update the pose and every landmark at every frame. PTAM instead runs tracking and mapping in two threads, and the mapper processes only keyframes, with batch bundle adjustment.
How it works
- Initialisation. The user captures two views with a small sideways move. The five-point algorithm with RANSAC triangulates the first map, which is scaled by assuming a 10 cm baseline and aligned so the dominant plane lies at z=0.
- Tracking. On a four-level image pyramid, 50 coarse patches are searched over a wide radius, then up to 1000 in a tight radius. The pose is solved with Tukey-weighted least squares. The fraction of patches found gates keyframe insertion and triggers relocalisation.
- Mapping. New points come from epipolar search against the nearest keyframe. Local bundle adjustment (the newest keyframe and its four nearest neighbours) alternates with global adjustment, and both are interrupted when a new keyframe arrives.
Results
- On a 1656-frame desk video the map grows to 57 keyframes and 4997 points. Most frames track in about 20 ms (19.2 ms with 4000 points), with spikes up to 90 ms during relocalisation.
- Global bundle adjustment takes 380 ms with 2-49 keyframes but 6.9 s with 100-149. The authors put the practical limit at about 6000 points and 150 keyframes.
- On a synthetic sequence (18.2 m of camera travel), the trajectory deviates from ground truth by 6 mm (standard deviation), against 135 mm for EKF-SLAM. PTAM maps 6600 features to EKF-SLAM’s 114.
Limitations
Tracking needs FAST corners, so motion blur and weak texture break it. Repeated structure adds map outliers and can corrupt the map. Stereo initialisation needs the user and sometimes fails. The map is a point cloud with no occlusion reasoning, large loops are not closed, and live experiments were limited to a single office.
Figures




Abstract
This paper presents a method of estimating camera pose in an unknown scene. While this has previously been attempted by adapting SLAM algorithms developed for robotic exploration, we propose a system specifically designed to track a hand-held camera in a small AR workspace. We propose to split tracking and mapping into two separate tasks, processed in parallel threads on a dual-core computer: one thread deals with the task of robustly tracking erratic hand-held motion, while the other produces a 3D map of point features from previously observed video frames. This allows the use of computationally expensive batch optimisation techniques not usually associated with real-time operation: The result is a system that produces detailed maps with thousands of landmarks which can be tracked at frame-rate, with an accuracy and robustness rivalling that of state-of-the-art model-based systems.
Summaries are written automatically from each paper's text. Figures and videos come from the paper and its project page; all credit goes to the authors.
