Visual localization is a well-known problem in computer vision, which has many applications, for example, in robotics for autonomous navigation (robots, drones, vehicles) or in augmented reality.It consists in estimating the position and orientation of the camera in a scene. Classical approaches are generally based on the geometric structure of the scene and seek to match 2D keypoints, detected in the images, with 3D points of the scene. This matching is however a complex problem in practice, especially because it relies on local information, extracted in the neighborhood of the keypoints. Depending on the size of the scene, these methods can be very computationally expensive. They are also sensitive to large changes in viewpoints, to degra...