
How the Hough Transform Was Invented (2009) [pdf] - espeed
http://www.iro.umontreal.ca/~mignotte/IFT6150/ComplementCours/HoughTransform.pdf
======
ansgri
Yet still no mention of the Fast Hough Transform. Not the randomized
approximate one, but fast as in FFT, n²log n fast. We've been using it a lot
in, e.g. the automatic vehicle classifier [0, 1]. It has been recently
contributed to OpenCV [2] by my colleagues.

The title of the paper (by my company's CTO) "Hough Transform: Underestimated
Tool In The Computer Vision Field" [3] still holds true. It describes the FHT
algorithm rather well.

[0] [http://visillect.com/en/avc](http://visillect.com/en/avc)

[1] pdf [http://www.scs-
europe.net/dlib/2015/ecms2015acceptedpapers/0...](http://www.scs-
europe.net/dlib/2015/ecms2015acceptedpapers/0521-is_ECMS2015_0089.pdf)

[2]
[http://docs.opencv.org/3.1.0/d9/d29/namespacecv_1_1ximgproc....](http://docs.opencv.org/3.1.0/d9/d29/namespacecv_1_1ximgproc.html#a401697bbdcf6c4a4c7d385beda75e849)

[3]
[https://www.researchgate.net/publication/228573007_Hough_Tra...](https://www.researchgate.net/publication/228573007_Hough_Transform_Underestimated_Tool_In_The_Computer_Vision_Field)

------
stevenhuang
For those interested, here's a little toy Hough transform visualizer:
[https://liquiddandruff.github.io/hough-transform-
visualizer/](https://liquiddandruff.github.io/hough-transform-visualizer/)

------
endymi0n
Anyone with domain knowledge cares to TL;DR the significance of the Hough
Transform and its applications? Never heard of it before...

~~~
MrQuincle
The Hough transform is used in computer vision (2d and 3d) for the recognition
of edges and lines as one stage in a large processing pipeline.

Its competitor is RANSAC.

Compared to linear or orthogonal regression it has the advantage that it has
quite a natural way to cope with multiple lines. Each line is represented by a
high value in the Hough space. The next line can be found by removing the
current maximum.

It is generalizable to more abstract shapes, but the Hough space becomes high
dimensional. It is nontrivial to represent hierarchical objects, for example
line segments AND the square it forms.

------
henryw
Here's a slide on it [https://s3.amazonaws.com/content.udacity-
data.com/courses/ud...](https://s3.amazonaws.com/content.udacity-
data.com/courses/ud810/slides/Unit-2/2B-L1.pdf)

Basically, it's used to find parameters to a model with sample data.

------
markovbling
Very concise explanation!

Posted this before - had to implement Hough circle detection from scratch in
JavaScript in case anyone is interested:

[https://github.com/alexanderconway/Hough-Circle-
Detection](https://github.com/alexanderconway/Hough-Circle-Detection)

~~~
amelius
I'm wondering if the Hough transform can also be used to detect shapes that
look like circles (but are not necessarily circles). And if so, what are the
limits, i.e., what is the worst "circular" shape still detected?

Also, can it be used to detect circular arcs?

~~~
ansgri
It is called Generalised Hough Transform [0] (google and wiki also know it),
the problem is, even circle space is 3-dimensional (x, y, r), and therefore
cannot be computed faster than O(n³). Even that cannot be achieved without
some magic since the circle perimeter is O(n), making a naïve solution O(n⁴).
So we can hope for something like O(n³log²n).

Our lab has done some research on fast GHT using general-purpose computation
scheme optimisation, but I cannot find any publications in English from that
distant period. For 3D Hough transform, there's an efficient solution for
finding the argmax (3d line), also by my colleagues [1]

[0] pdf
[https://web.eecs.umich.edu/~silvio/teaching/EECS598/papers/B...](https://web.eecs.umich.edu/~silvio/teaching/EECS598/papers/Ballard.pdf)

[1] pdf [http://www.scs-
europe.net/dlib/2016/ecms2016acceptedpapers/0...](http://www.scs-
europe.net/dlib/2016/ecms2016acceptedpapers/0227-is_ECMS_0075.pdf)

------
spacehacker
Is the Hough transform basically a maximum likelihood estimate?

~~~
theoh
There is a "strong relationship" between the two concepts:

R S Stephens, A Probabilistic Approach to the Hough Transform
[http://www.bmva.org/bmvc/1990/bmvc-90-012.pdf](http://www.bmva.org/bmvc/1990/bmvc-90-012.pdf)

