Being a quite popular buzz word, augmented reality can be build with some distinct algorithms which can be learnt separately. Usually it covers:
- planar object detection (can be a marker or previously trained object).
SURF/SIFT/FAST descriptors, RANSAC for homography matrix calculation - store trained objects in DB (KD-trees)
- camera position estimation
- augmenting 3D model with custom objects (OpenGL)
To dive into this subject I would recommend this steps:
- All of this is already implemented in OpevCV, you can start playing with its examples.
- To understand what’s happening under the hood, take probably the best book on this topic:
“Multiple View Geometry in Computer Vision” http://www.robots.ox.ac.uk/~vgg/hzbook/ . - If you are going to play with AR on mobile phones take a look on works of scientific labs
like http://mi.eng.cam.ac.uk/~sjt59/hips.html (FAST) and http://www.robots.ox.ac.uk/~gk/PTAM/ (PTAM).