1. A mobile computing device, comprising: one or more processors, and, in communication with the one or more processors: one or more image sensors configured to obtain two-dimensional image data and three-dimensional image data; one or more non-transitory machine accessible storage media comprising instructions to cause the mobile computing device to: temporally and spatially align the two-dimensional image data and three-dimensional image data; generate a map representation of a geo-spatial area of the real world surroundings of the mobile computing device based on the temporally and spatially aligned two-dimensional and three-dimensional image data; and recognize a plurality of visual features in the map representation, using one or more computer vision algorithms to: recognize larger-scale objects; recognize smaller-scale objects by iteratively performing context-free object identification and contextual object identification; and recognize a complex object comprising a plurality of the smaller-scale objects, using a classifier.