Source: http://www-poleia.lip6.fr/~cord/pdfs/courses/rdfia/SzeliskiBook_draft.pdf