1. A server comprising: a receiver configured to receive visual inertial navigation (VIN) data and corresponding image data from a plurality of devices, the VIN data indicating VIN states and corresponding poses of the plurality of devices; a training module, executable by at least one hardware processor, the training module being configured to generate a localization model based on the VIN data and corresponding image data from the plurality of devices, the image data including a plurality of images, the localization model correlating the VIN states and poses with each image among the plurality of images; an image localizer configured to: receive a query for a geographic location and a pose of a device, the query including a picture; compare the picture with images from the localization model; identify an image based on the localization model, the image matching the picture in the query; determine the geographic location and the pose of the device based on the VIN state and pose corresponding to the identified image, and a storage device configured to store the VIN data, the image data, and the localization model.