Visual localization
In an embodiment of the invention there is provided a method of visual localization, comprising: generating a plurality of virtual views, wherein each of the virtual views is associated with a location; obtaining a query image; determining the location where the query image was obtained on the basis of a comparison of the query image with said virtual views.
1. A method of visual localization which utilizes one or more query images from a mobile device to determine location and orientation of the mobile device, the method comprising:
obtaining one or more real reference images of an environment, wherein each of the reference images is associated with a viewpoint;
for a first reference image, creating a depth map, from a first viewpoint of the first reference image, corresponding to a first plurality of 3D points within the environment;
simulating at least one view of at least a subset of the first plurality of 3D points from at least one secondary viewpoint spaced from the first viewpoint of the first reference image;
computing, using image based rendering, a plurality of novel views based on the at least one simulated view;
extracting features from the plurality of novel views;
extracting features from the one or more query images; and,
determining the location and the orientation of the mobile device based on the features extracted from the plurality of novel views and the features extracted from the one or more query images.
2. The method as in claim 1 , further comprising identifying at least one of the reference images, other than the first reference image, with a view of at least a subset of the first plurality of 3D points.
3. The method as in claim 2 , wherein the at least one secondary viewpoint is defined by the viewpoint of the identified at least one of the reference images.
4. The method of claim 1 , wherein said environment is an inside of a building.
5. The method of claim 1 , further comprising:
identifying one or more planes in the environment from the first plurality of 3D points; and
mapping some or all of the first plurality of 3D points to the planes.
6. The method of claim 5 , further comprising:
determining the trajectory of rays between one or more of the first plurality of 3D points and the at least one secondary viewpoint, thereby to detect the planes within the view from the secondary viewpoint, repeating this step for each pixel associated with the at least one simulated view from the secondary viewpoint, and sorting the planes by the number of pixels that belong to each plane.
7. The method of claim 6 , further comprising:
processing each of the detected planes to determine which of the reference images best matches a given plane.
8. The method of claim 7 , wherein the reference image closest to the secondary viewpoint is assigned as the best match to a given plane.
9. The method of claim 1 , wherein the at least one secondary viewpoint is at a fixed height above the ground.
10. The method of claim 9 , wherein the fixed height is 1.5 meters above the ground.
11. The method of claim 1 , further comprising generating a database of the plurality of novel views.