Patent ID: 8724848

Claim:
A computer-implemented method comprising: applying, by one or more computing devices, a plurality of visible indicia on a surface of an indoor facility such that a distance between any visible indicium of the plurality of visible indicia and a nearest visible indicium in the plurality of visible indicia is less than a threshold; obtaining, by the one or more computing devices, a first image captured from a camera, the first image being of a first portion of the surface of the indoor facility comprising the plurality of visible indicia, the camera having an orientation generally pointed at the surface; moving, by the one or more computing devices, the camera a specified distance; obtaining, by the one or more computing devices, a second image captured from the camera of the indoor facility, the second image being of a second portion of the surface of the indoor facility comprising the plurality of visible indicia, the camera having an orientation generally pointed at the surface; determining, by the one or more computing devices, a composite image based on the first image and the second image; locating, by the one or more computing devices, a plurality of indicia within the composite image; determining, by the one or more computing devices, an index of the visible indicia of the surface based on the plurality of indicia; obtaining, by the one or more computing devices, a third image captured from the camera in proximity of an object located in an indoor facility, the third image being of a third portion of the surface of the indoor facility comprising the plurality of visible indicia, the camera having an orientation generally pointed at the surface; identifying, by the one or more computing devices, a plurality of local indicia within the third image; using the locations of the local indicia within the third image and the index of the visible indicia of the surface, determining, by the one or more computing devices, the location of the object relative to the surface, including: determining, by the one or more computing devices, a plurality of locations of the local indicia within the third image; determining, by the one or more computing devices, an object hash code using the locations of two most widely-separated local indicia and comparing the object hash code to a plurality of hash codes in the index of the visible indicia on the surface; and based on the location of the local indicia on the surface, determining, by the one or more computing devices, the location of the object.