GENERALIZED HUGH TRANSFORM
The Generalized Hugh transform (GHT) is a generalization aimed to apply HT to non analytical shapes.
flowchart LR subgraph online phase f[detect edges in the target image] g[compute gradient direction] h[quantize the gradient to index the R table] i[compute the position of the reference point] j[ cast a vote in the accumulator array] f --> g --> h --> i --> j --repeat for all r vectors\n in the indexed row--> i j --repeat for all edges--> g end subgraph offline phase a[detect edeges in the model image] b[choose a reference point e.g. the baricentre of the shape] c[compute vector R for each edge point] d[compute gradient direction] e[store R in a table indexed by the quantized gradient direction] a --> b --> c --> d --> e --repeat for all edges--> c end
GHT WITH LOCAL INVARIANT FEATURES
The most popular computer vision pipeline relies on combining GHT with local invariant features such as the SIFT DESCRIPTOR. In this pipeline Local invariant features are used instead of edges.
OFFLINE PHASE
Detect keypoints (e.g. DOG) and compute descriptors (e.g. SIFT) in the model image:
Choose a reference point (eg the barycentre)
Compute the joining vectors between the features and the reference point:
The Star Model consist of the features and their joining vectors (no need of the R Table):
ONLINE PHASE
Detect keypoints on the target image and compute descriptors :
Match descriptor between target and model image
for each keypoint on the target image that matches his descriptor with a keypoint in the model image compute the reference point and cast a vote in the accumulator array
2D ACCUMULATOR ARRAY ISSUES
A 2D accumulator array is not sufficient to account for rotation and scale, the solution is to use a 4D accumulator array in order to account for scale and rotation