![Page 1: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/1.jpg)
CS654: Digital Image Analysis
Lecture 25: Hough Transform
Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem
![Page 2: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/2.jpg)
Recap of Lecture 24
• Introduction to image segmentation
• Top down and bottom up segmentation
• Edge based segmentation
• First order derivative operators
• Second order derivative operator
• DoG, LoG
![Page 3: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/3.jpg)
Outline of Lecture 25
• Preprocessing Edge Images
• Edge Tracking Methods
• Fitting Lines and Curves to Edges
• The Hough Transform
![Page 4: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/4.jpg)
Boundaries of Objects
Marked by many users
http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/segbench/bench/html/images.html
![Page 5: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/5.jpg)
Boundaries of Objects from Edges
Brightness Gradient (Edge detection)
• Missing edge continuity, many spurious edges
![Page 6: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/6.jpg)
Boundaries of Objects from Edges
Multi-scale Brightness Gradient
• But, low strength edges may be very important
![Page 7: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/7.jpg)
Boundaries of Objects from Edges
Image
Machine Edge Detection
Human Boundary Marking
![Page 8: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/8.jpg)
Boundaries in Medical Imaging
Detection of cancerous regions.
[Foran, Comaniciu, Meer, Goodell, 00]
![Page 9: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/9.jpg)
Boundaries in Ultrasound Images
Hard to detect in the presence of large amount of speckle noise
![Page 10: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/10.jpg)
Boundaries of Objects
Sometimes hard even for humans!
![Page 11: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/11.jpg)
Preprocessing Edge Images
Image
Edge detectionand Thresholding Noisy edge image
Incomplete boundaries
Shrink and Expand
Thinning
![Page 12: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/12.jpg)
How to fit a line
• Least squares Fit (over constraint)• There are more equations than unknowns• Many points two unknowns
• RANSAC (constraint)• Number of equations are equal to the number of unknowns• Two points, one line
• Hough Transform (under constraint)• There are fewer equations than unknowns • One equation, two unknowns
![Page 13: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/13.jpg)
Fitting Lines to Edges (Least Squares)
cmxy
cmxy ii
),( ii yx
y
x
Given: Many pairs
Find: Parameters
Minimize: Average square distance:
),( ii yx
),( cm
i
ii
N
cmxyE
2)(
![Page 14: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/14.jpg)
Fitting Lines to Edges (Least Squares)
cmxy
cmxy ii
),( ii yx
y
x
Minimize: Average square distance:
Using:
Note:
i
ii
N
cmxyE
2)(
0&0
c
E
m
E
xmyc
ii
iii
xx
yyxxm
2)(
))((N
yy i
i
N
xx i
i
![Page 15: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/15.jpg)
Curve Fittingy
x
Find Polynomial:
that best fits the given points
Minimize:
Using:
Note: is LINEAR in the parameters (a, b, c, d)
),( ii yx
dcxbxaxxfy 23)(
i
iiii dcxbxaxyN
223 )]([1
0,0,0,0
d
E
c
E
b
E
a
E
)(xf
![Page 16: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/16.jpg)
RANSAC (Random Sampling andConsensus)
1. Randomly select two points to fit a line
2. Find the error between the estimated solution and all other points.
3. If the error is less than tolerance, then quit, else go to step (1).
![Page 17: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/17.jpg)
Line Grouping Problem
Slide credit: David Jacobs
![Page 18: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/18.jpg)
This is difficult because of:
• Extraneous data: clutter or multiple models• We do not know what is part of the model?• Can we pull out models with a few parts from much larger amounts of
background clutter?
• Missing data: only some parts of model are present
• Noise
• Cost:• It is not feasible to check all combinations of features by fitting a model
to each possible subset
![Page 19: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/19.jpg)
Hough Transform
• Elegant method for direct object recognition
• Edges need not be connected
• Complete object need not be visible
• Key Idea: Edges VOTE for the possible model
Several Lines
• How do we Know which points belong towhich lines?
![Page 20: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/20.jpg)
Line Fitting: Hough Transform
1. Line equation
2. Rewrite this equation
3. For particular edge pointthis becomes
4. This is an equation of a line in space
cmxy
iiii ymxcorcmxy
),( ii yx
yxmc
![Page 21: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/21.jpg)
Image and Parameter Spaces
Equation of Line:
Find:
Consider point:
cmxy
),( cm
),( ii yx
iiii ymxcorcmxy
cmxy
),( ii yx
y
xImage Space
m
c
),( cm
Parameter Space
Parameter space also called Hough Space
![Page 22: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/22.jpg)
Line Detection by Hough Transformy
x
),( cm
Parameter Space1 1
1 1
1 1
2
1 1
1 1
1 1),( cmA
Algorithm:
• Quantize Parameter Space
• Create Accumulator Array
• Set
• For each image edge increment:
• If lies on the line:
• Find local maxima in
),( cm
),( cmA
cmcmA ,0),(
),( ii yx
1),(),( cmAcmA
),( cm
),( cmA
ii ymxc
![Page 23: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/23.jpg)
Better ParameterizationNOTE:
Large Accumulator
More memory and computations
Improvement:
Line equation:
Here
Given points find
m
sincos yx
max0
20
(Finite Accumulator Array Size)
),( ii yx ),(
),( ii yx
y
xImage Space
Hough Space
?
Hough Space Sinusoid
![Page 24: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/24.jpg)
Image space
Votes
Horizontal axis is θ, vertical is rho.
𝜃
𝜌
![Page 25: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/25.jpg)
Image space
votes
![Page 26: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/26.jpg)
Image space
votes
![Page 27: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/27.jpg)
Fewer votes land in a single bin when noise increases.
![Page 28: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/28.jpg)
Adding more clutter increases number of bins with false peaks.
![Page 29: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/29.jpg)
Mechanics of the Hough transform
• Difficulties– how big should the cells
be? – too big, and we merge
quite different lines; – too small, and noise
causes lines to be missed)
• How many lines?– Count the peaks in the
Hough array– Treat adjacent peaks as
a single peak
• Which points belong to each line?– Search for points close to
the line– Solve again for line and
iterate
![Page 30: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/30.jpg)
Real World Example
Original Edge Detection
Found Lines
Parameter Space
![Page 31: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/31.jpg)
Finding Circles by Hough TransformEquation of Circle:
222 )()( rbyax ii
If radius is known:
),( baAAccumulator Array
(2D Hough Space) 𝑟
𝑎
𝑏
𝑥
𝑦
(𝒙 𝒊 ,𝒚 𝒊)
Image space
![Page 32: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/32.jpg)
Finding Circles by Hough Transform
𝑟
Equation of Circle: 222 )()( rbyax ii
𝑎
𝑏
𝑥
𝑦
(𝒙 𝒊 ,𝒚 𝒊)
𝑎
𝑏
Image spaceHough Space
If radius is known: ),( baAAccumulator Array(2D Hough Space)
![Page 33: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/33.jpg)
Finding Circles by Hough Transform
Equation of Circle:
222 )()( rbyax ii
If radius is not known: 3D Hough Space!
Use Accumulator array ),,( rbaA
What is the surface in the Hough space?
𝑟
𝑎
𝑏
𝑥
𝑦
(𝒙 𝒊 ,𝒚 𝒊)
Image space
![Page 34: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/34.jpg)
Using Gradient Information
• Gradient information can save lot of computation:
Edge Location
Edge Direction
Need to increment only one point in Accumulator!!
i),( ii yx
Assume radius is known:
sin
cos
ryb
rxa
𝑦
𝑥𝑦
𝑥
𝑟
(𝑎 ,𝑏)
(𝑥 𝑖 , 𝑦 𝑖)𝜙𝑖
![Page 35: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/35.jpg)
Finding Coins
Original Edges (note noise)
![Page 36: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/36.jpg)
Finding Coins (Continued)
Pennies Quarters
![Page 37: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/37.jpg)
Finding Coins (Continued)
Coin finding sample images from: Vivek Kwatra
Note that because the quarters and penny are different sizes, a different Hough transform (with separate accumulators) was used for each circle size.
![Page 38: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/38.jpg)
Generalized Hough Transform
• Model Shape NOT described by equation
• Requires training
• Object of known shape
• Generate model
• R-table
• Similar approach to line and circle fitting during detection
![Page 39: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/39.jpg)
Generating R Table
1. Compute centroid
2. For each pixel compute r
3. Find edge orientation
4. Construct a table of angle and r values
𝑥𝑐=∑𝑥=0
𝑛
∑𝑦=0
𝑛
𝑓 (𝑥 , 𝑦 )𝑥
∑∑ 𝑓 (𝑥 , 𝑦 )𝑦 𝑐=
∑𝑥=0
𝑛
∑𝑦=0
𝑛
𝑓 (𝑥 , 𝑦 ) 𝑦
∑∑ 𝑓 (𝑥 , 𝑦 )
𝑓 (𝑥 , 𝑦 )={1, 𝑖𝑓 𝑓 (𝑥 , 𝑦 )∈𝑜𝑏𝑗𝑒𝑐𝑡0 h𝑜𝑡 𝑒𝑟𝑤𝑖𝑠𝑒
(𝑥𝑐 , 𝑦 𝑐)
(𝑥 , 𝑦 )
𝜙𝑥 ′𝑦 ′
![Page 40: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/40.jpg)
Generating R-table
Edge orientation
Distance (r)
(𝑥𝑐 , 𝑦 𝑐)
(𝑥 , 𝑦 )
𝜙𝑥 ′𝑦 ′
𝑟=[𝑥𝑐𝑦𝑐]=[ 𝑥+𝑥 ′
𝑦+𝑦 ′ ]
![Page 41: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/41.jpg)
GHT Algorithm
1. Quantize the parameter space
2. For each edge point do
3. Find the local maxima in the parametric space
Compute
For each table entry for do
𝑃 [𝑥𝑐 , 𝑦𝑐 ]=𝑃 [𝑥𝑐 , 𝑦 𝑐 ]+1
![Page 42: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/42.jpg)
Scale and Rotation Invariance
(𝑥0 , 𝑦0)
(𝑥 , 𝑦 )
𝜙𝑥 ′𝑦 ′
𝑥0=𝑥+𝑠𝑥 (𝑥′ 𝑐𝑜𝑠𝜃+ 𝑦 ′ 𝑠𝑖𝑛𝜃 )
𝑦 0=𝑦+𝑠𝑥 (𝑥 ′𝑐𝑜𝑠𝜃+𝑦 ′ 𝑠𝑖𝑛𝜃 )Rotation angle =
Scale along x=
Scale along y=
Modified centroid location
𝑥′ ′=𝑠𝑥 (𝑥 ′ 𝑐𝑜𝑠𝜃+ 𝑦 ′ 𝑠𝑖𝑛𝜃 )
𝑦 ′ ′=𝑠 𝑦 (−𝑥′ 𝑠𝑖𝑛𝜃+ 𝑦 ′𝑐𝑜𝑠 𝜃 )
Transformed coordinate
![Page 43: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/43.jpg)
Hough Transform: Comments• Works on Disconnected Edges
• Relatively insensitive to occlusion
• Effective for simple shapes (lines, circles, etc)
• Trade-off between work in Image Space and Parameter Space
• Handling inaccurate edge locations:
• Increment Patch in Accumulator rather than a single point
![Page 44: CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem](https://reader033.vdocuments.net/reader033/viewer/2022051114/56649f205503460f94c389c5/html5/thumbnails/44.jpg)
Thank youNext Lecture: Region based segmentation