Lecture
In computer science, geometric hashing is a method for efficiently searching for two-dimensional objects represented by discrete points that have undergone an affine transformation, although extensions exist for other object representations and transformations. In the offline stage, objects are encoded by treating every pair of points as a geometric basis. The remaining points can be represented invariantly with respect to this basis using two parameters. For each point, its quantized transformed coordinates are stored in a hash table as a key, with the indices of the basis points stored as the value. A new pair of basis points is then chosen, and the process is repeated. In the online (recognition) stage, randomly chosen pairs of data points are treated as candidate bases. For each candidate basis, the remaining data points are encoded according to that basis, and possible correspondences to the object are looked up in the previously built table. A candidate basis is accepted if a sufficiently large number of data points index a consistent basis of the object.
Geometric hashing was originally proposed in computer vision for recognizing objects in 2D and 3D, but was later applied to a variety of problems, such as protein structural alignment.
Geometric hashing is a technique used for object recognition. Suppose we want to check whether a model image is visible in an input image. This can be achieved using geometric hashing. The method can also be used to recognize one of several objects in a database, in which case the hash table must store not only pose information but also the index of the object model in the database.
For simplicity, this example will not use too many point objects, and it is assumed that their descriptors are given only by their coordinates (in practice, local descriptors such as SIFT can be used for indexing).

Object points in the image coordinate system and the axes of the basis coordinate system (P2, P4)
Hash table:

Most hash tables cannot have identical keys mapped to different values. Thus, in real life, the basis keys (1.0, 0.0) and (-1.0, 0.0) are not encoded in the hash table.
It might seem that this method can only handle scaling, translation and rotation. However, the input image may contain the object under a mirror transformation. Therefore, geometric hashing must also be able to find the object in this case. There are two ways to detect mirrored objects.
As in the example above, hashing can be applied to higher-dimensional data. For three-dimensional data points, three points are likewise needed as a basis. The first two points define the X axis, and the third point defines the Y axis (together with the first point). The Z axis is perpendicular to the resulting axes, following the right-hand rule. Note that the order of the points affects the resulting basis.
Comments