A method of generating a three-dimensional map of a region from successive images of that region captured from different camera poses, the map comprising a set of landmark points each defined by a three dimensional spatial position and image information associated with that three dimensional position, the method comprising: capturing successive images of the region using a camera; designating a subset of the captured images as a set of keyframes each having respective sets of image position data representing image positions of landmark points detected as feature points in that image; in respect of a newly captured image, detecting a position of the camera by detecting the position of landmark points in the newly captured image, the detecting step comprising: generating a prediction of the camera pose; dividing the newly captured image into a plurality of image regions; selecting an ordering of the landmark points separately in respect of each of the image regions so as to select an ordering of landmark points for each image region; and detecting whether an image region of the newly captured image approximately matches an expected image position of a landmark point based on the predicted camera pose by detecting, for successive landmark points in the ordering, whether the image region is substantially identical to the image information associated with that landmark point; and refining the prediction of the camera pose based on the detecting step; in which the selecting step comprises: performing a statistical test on the set of landmark points; and selecting the ordering according to the results of the statistical test. capturing successive images of the region using a camera; designating a subset of the captured images as a set of keyframes each having respective sets of image position data representing image positions of landmark points detected as feature points in that image; in respect of a newly captured image, detecting a position of the camera by detecting the position of landmark points in the newly captured image, the detecting step comprising: generating a prediction of the camera pose; dividing the newly captured image into a plurality of image regions; selecting an ordering of the landmark points separately in respect of each of the image regions so as to select an ordering of landmark points for each image region; and detecting whether an image region of the newly captured image approximately matches an expected image position of a landmark point based on the predicted camera pose by detecting, for successive landmark points in the ordering, whether the image region is substantially identical to the image information associated with that landmark point; and refining the prediction of the camera pose based on the detecting step; generating a prediction of the camera pose; dividing the newly captured image into a plurality of image regions; selecting an ordering of the landmark points separately in respect of each of the image regions so as to select an ordering of landmark points for each image region; and detecting whether an image region of the newly captured image approximately matches an expected image position of a landmark point based on the predicted camera pose by detecting, for successive landmark points in the ordering, whether the image region is substantially identical to the image information associated with that landmark point; and refining the prediction of the camera pose based on the detecting step; in which the selecting step comprises: performing a statistical test on the set of landmark points; and selecting the ordering according to the results of the statistical test. performing a statistical test on the set of landmark points; and selecting the ordering according to the results of the statistical test.