Image Analysis - week8_… · nPath going from top to bottom nNo sharp turns – smooth nProblem:...
Transcript of Image Analysis - week8_… · nPath going from top to bottom nNo sharp turns – smooth nProblem:...
-
DTU Compute
Image Analysis
Tim B. DyrbyRasmus R. PaulsenDTU Compute
http://www.compute.dtu.dk/courses/02502
mailto:[email protected]
-
DTU Compute
2020Image Analysis2 DTU Compute, Technical University of Denmark
Lecture 8 – Hough Transformation and Path Tracing
Hough transform
q
r
-50 0 50
-400
-200
0
200
400
-
DTU Compute
2020Image Analysis3 DTU Compute, Technical University of Denmark
Breaking NEWS!
One morning I was shopping in Amsterdam with my young fiancée, and tired, we sat down on the café terrace to drink a cup of coffee and I was
just thinking about whether I could do this, and I then designed the algorithm for the shortest path. As I said, it was a twenty-minute invention.
—Edsger Dijkstra, in an interview with Philip L. Frana, Communications of the ACM, 2001[3]
https://en.wikipedia.org/wiki/Amsterdamhttps://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
-
DTU Compute
2020Image Analysis4 DTU Compute, Technical University of Denmark
What can you do after today?n Use the Hough transform for line detectionn Describe the slope-intercept, the general form and the normalised
form of linesn Describe the connection between lines and the Hough spacen Use edge detection to enhance images for use with the Hough
transformn Use dynamic programming to trace paths in imagesn Describe how an image can be used as a graphn Describe the fundamental properties of a cost imagen Compute the cost of pathn Compute an accumulator image for path tracingn Compute a back tracing image for path tracingn Choose appropriate pre-processing steps for path tracingn Describe how circular structures can be located using path tracing
-
DTU Compute
2020Image Analysis5 DTU Compute, Technical University of Denmark
Line Detectionn Find the lines in an image
-
DTU Compute
2020Image Analysis6 DTU Compute, Technical University of Denmark
What is a line?
n It can be the entire object– Large scale
n Can also be the border between an object and the background– Small scale
n Normally only locally defined
-
DTU Compute
2020Image Analysis7 DTU Compute, Technical University of Denmark
Enhancing the linesn We want to locate the borders
– Enhance themn Filtering (Prewitt)n Edge detection
Original Prewitt Edge
Prewitt
-
DTU Compute
2020Image Analysis8 DTU Compute, Technical University of Denmark
What is a line II?n Result of the edge filter is a selection of
white pixelsn Some of them define a line
– Not a perfect straight line– “Linelike”
n How do we find the collection of points that define a line?
-
DTU Compute
2020Image Analysis9 DTU Compute, Technical University of Denmark
Mathematical line definitionn The classical definition (slope-intercept form)
-5 0 5-5
0
5
x axis
y ax
is
y=0.5 * x + 1
y = ax + bSlope Intercept
Can not represent lines that are vertical
-
DTU Compute
2020Image Analysis10 DTU Compute, Technical University of Denmark
-5 0 5-5
0
5
x axis
y ax
is
Ax + By = C
Mathematical line definitionn General definition
n With
Ax + By = C
A2 + B2 = 1
Line normal
-
DTU Compute
2020Image Analysis11 DTU Compute, Technical University of Denmark
Mathematical line definitionn Normal parameterisation
n where– is the distance from the
origin– is the angle
-5 0 5-5
0
5
x axis
y ax
is
Ax + Bx = C
A2 + B2 = 1
-
DTU Compute
2020Image Analysis12 DTU Compute, Technical University of Denmark
Mathematical line definitionn Normal parameterisation
n Therefore a line can be defined by two values––
n A line can therefore also be seen as a point in a ( , )-space
-5 0 5-5
0
5
x axis
y ax
is
Ax + Bx = C
½µ
-
DTU Compute
2020Image Analysis13 DTU Compute, Technical University of Denmark
Converting linesn From normal to slop-intercept form
𝑝 = 𝑥 cos 𝜃 + 𝑦 sin 𝜃The normal form:
y = 𝑎𝑥 + 𝑏The slope-intercept form:
Slope=a
intercept=b
−𝑥 𝑐𝑜𝑡𝜃 + 𝑝 𝑐𝑜𝑠𝑒𝑐𝜃 = 𝑦
𝑦 = 𝑥 ∗ −𝑐𝑜𝑡𝜃 + 𝑝(𝑐𝑜𝑠𝑒𝑐𝜃)
Slope=a
Intercept=b
-x cos 𝜃 + 𝑝 = ysin 𝜃
Start: 𝑝 = 𝑥 cos 𝜃 + 𝑦 sin 𝜃
-
DTU Compute
2020Image Analysis14 DTU Compute, Technical University of Denmark
Something about angles
In Matlab and in this presentation
In the course notes
-
DTU Compute
2020Image Analysis15 DTU Compute, Technical University of Denmark
Hough Space
-5 0 5-5
0
5
x axis
y ax
is
r = x cos q + y sin q
-50 0 50-5
0
5
qr
-
DTU Compute
2020Image Analysis16 DTU Compute, Technical University of Denmark
More about angles
-5 0 5-5
0
5
x axis
y ax
is
r = x cos q + y sin qWhy?
but Matlab only allows
look at the mirror-projection of the normal
is used to determine if it is the “upper” or “lower line”
-
DTU Compute
2020Image Analysis17 DTU Compute, Technical University of Denmark
Hough space: Let’s vote for general line …§ Basically a tool to find a line through points.
Hou
gh s
pace
Poin
ts
1) Point coordinates: (x,y)
3) Hough parameters space:(r,𝝷)
https://en.wikipedia.org/wiki/Hough_transform
2) Define origin
4) Map all possible lines through a point for different 𝝷5) “Vote” which line fit best through points
-
DTU Compute
2020Image Analysis18 DTU Compute, Technical University of Denmark
How do we use the Hough space?
-50 0 50-5
0
5
q
r
?
-
DTU Compute
2020Image Analysis19 DTU Compute, Technical University of Denmark
How do we use the Hough space?n What if every little “line-segment” was plotted in the Hough-
space?
-50 0 50-5
0
5
q
r
-
DTU Compute
2020Image Analysis20 DTU Compute, Technical University of Denmark
Filled Hough-Spacen All “line segments” in the image examinedn A “global line” can now be found as a cluster of points
-50 0 50-5
0
5
q
r
In practice it is difficult to identify clusters
-
DTU Compute
2020Image Analysis21 DTU Compute, Technical University of Denmark
Hough transform in practisen Hough Space is represented as an imagen It is quantisized – made into finite boxes
-50 0 50-5
0
5
q
r
Pixel
A line segment here
Belongs to this pixel
-
DTU Compute
2020Image Analysis22 DTU Compute, Technical University of Denmark
Hough transform as a voting schemen The pixels in the Hough space are used to vote for lines. n Each line segment votes by putting one vote in a pixeln The pixels are also called accumulator cells
-50 0 50-5
0
5
q
r
-
DTU Compute
2020Image Analysis23 DTU Compute, Technical University of Denmark
Hough transform per pixeln In practise we do not use line segmentsn Each pixel in the input image votes for all potential lines going
through it.
-50 0 50-5
0
5
q
r
-
DTU Compute
2020Image Analysis24 DTU Compute, Technical University of Denmark
Hough transform per pixel
-50 0 50-5
0
5
q
r
Go through all and calculate (x, y) are fixed
Sinusoid!
-
DTU Compute
2020Image Analysis25 DTU Compute, Technical University of Denmark
Real Hough Transform
Hough space
q
r
-50 0 50
-60
-40
-20
0
20
40
60
-
DTU Compute
2020Image Analysis26 DTU Compute, Technical University of Denmark
Real Hough Transform IIHough space
q
r
-50 0 50
-60
-40
-20
0
20
40
60
-
DTU Compute
2020Image Analysis27 DTU Compute, Technical University of Denmark
Real Hough Transform and lines
Hough space
q
r
-50 0 50
-60
-40
-20
0
20
40
60
Spot the line!
A maximum where Hough pixel has value 3
-
DTU Compute
2020Image Analysis28 DTU Compute, Technical University of Denmark
Finding the lines in Hough spacen The lines are found in Hough space where most
pixels have voted for there being a linen Can be found by searching for maxima in Hough
Space Hough transform
q
r
-50 0 50
-400
-200
0
200
400
-
DTU Compute
2020Image Analysis29 DTU Compute, Technical University of Denmark
The practical guide to the Hough Transformn Start with an input image
-
DTU Compute
2020Image Analysis30 DTU Compute, Technical University of Denmark
The practical guide to the Hough Transformn Detect edges and create a
binary image
-
DTU Compute
2020Image Analysis31 DTU Compute, Technical University of Denmark
The practical guide to the Hough Transformn Compute Hough transform
and locate the maxima
q
r
-50 0 50
-300-200-100
0100200300
-
DTU Compute
2020Image Analysis32 DTU Compute, Technical University of Denmark
The practical guide to the Hough Transformn Draw the lines corresponding
to the found maximan Here the cyan line is the
longest
-
DTU Compute
2020Image Analysis33 DTU Compute, Technical University of Denmark
Path Tracingn The diameter as
function of the distance to the optic cup tells something about the patients health
n We need to find the arteries and veins
n Path tracing is one solution
Fundus imageArteries and veins
-
DTU Compute
2020Image Analysis34 DTU Compute, Technical University of Denmark
Path tracingn A path is defined as a
curve in an image defined as something that is different from the background
n In this case it is a dark line
n Pre-processing can for example turn edges into dark lines.
-
DTU Compute
2020Image Analysis35 DTU Compute, Technical University of Denmark
Dynamic Programmingn Break up large problem into
many small sub-problemsn A classic algorithm:
– Dijkstra’s algorithm– One source to all nodes shortest path
n We will look at a simplifiedvariant
Dijkstra, E. W. (1959). "A note on two problems in connexion with graphs". Numerische Mathematik. 1: 269–271.
-
DTU Compute
2020Image Analysis36 DTU Compute, Technical University of Denmark
Path tracingn A GPS device uses path
tracingn Based on graph
algorithms– A city is a node– A road is an edge. The
weight of the edge is the fuel cost
n How do we come from Copenhagen to Aalborg using the least fuel?
n Dijkstra’s algorithm
Copenhagen
Aalborg
2.3 l
2.1 l
1.3 l
-
DTU Compute
2020Image Analysis37 DTU Compute, Technical University of Denmark
Images as graphsn Each pixel is a noden Pixel neighbours are
connected by edgesn The edge cost ( )is
the pixel value n Directed graphn Imagine a car driving on
the imagen Called a cost image
𝑐(𝑟, 𝑐)
-
DTU Compute
2020Image Analysis38 DTU Compute, Technical University of Denmark
Simplified problemn Track dark linesn Path going from top to
bottomn No sharp turns –
smoothn Problem:
– from the top to the bottom
– Sum of pixel values should be minimal
-
DTU Compute
2020Image Analysis39 DTU Compute, Technical University of Denmark
Simplified problemn Pixel value at (r,c)
equals the cost
n The path P consist of pixels
n The sum of pixel values in the path
𝐶(𝑟, 𝑐)
-
DTU Compute
2020Image Analysis40 DTU Compute, Technical University of Denmark
Path costn A path is defined as (r,c)
coordinates
P = [(1,3), (2,3), (3, 2), (4,3), (5,4)]
-
DTU Compute
2020Image Analysis41 DTU Compute, Technical University of Denmark
Quiz 1: Total cost – what is 𝐶!"!?A) 167B) 350C) 403D) 270E) 345
P = [(1,3), (2,3), (3, 2), (4,3), (5,4)]
-
DTU Compute
2020Image Analysis42 DTU Compute, Technical University of Denmark
Path costn This is NOT the optimal pathn How do we compute the path
P that has minimum 𝐶!"!?
n Test all possible paths?– No! Impossible amount of
posibilities
P = [(1,3), (2,3), (3, 2), (4,3), (5,4)]
-
DTU Compute
2020Image Analysis43 DTU Compute, Technical University of Denmark
Quiz 2: Path Cost
A path has been found in the image P=[(1,4),(2,4),(3,5),(4,5),(5,5),(6,4)]. A Matlab matrix coordinate system is used. What is the total cost of the path?
A) 196B) 154C) 201D) 185E) 132
-
DTU Compute
2020Image Analysis44 DTU Compute, Technical University of Denmark
Path restriction: The rulesn Path is only allowed to
– Go down– Move one pixel left or
right
n Longer jumps not allowed
-
DTU Compute
2020Image Analysis45 DTU Compute, Technical University of Denmark
Accumulator imagen Keeps track of the
accumulated cost for efficient paths finding
n Path ending here has cost 296
-
DTU Compute
2020Image Analysis46 DTU Compute, Technical University of Denmark
Computing the accumulator image
Step 1: Copy first row of input image
-
DTU Compute
2020Image Analysis47 DTU Compute, Technical University of Denmark
Computing the accumulator image
Step 2: Fill second row
-
DTU Compute
2020Image Analysis48 DTU Compute, Technical University of Denmark
Computing the accumulator image
Step 3: Fill all rows by looking at the previous row
-
DTU Compute
2020Image Analysis49 DTU Compute, Technical University of Denmark
Quiz 3: Accumulator ImageA) 57B) 167C) 301D) 241E) 145
An optimal path has been found in the image. What is the value of the accumulator image in the marked pixel?
-
DTU Compute
2020Image Analysis50 DTU Compute, Technical University of Denmark
Using the accumulator image
Step 4: The end of the optimal path can now be found
-
DTU Compute
2020Image Analysis51 DTU Compute, Technical University of Denmark
The backtracing image
• Keeps track of where the path came from
• Each pixel stores the column number
-
DTU Compute
2020Image Analysis52 DTU Compute, Technical University of Denmark
Using the backtracing image
Step 5: Trace the path in the backtracing image
-
DTU Compute
2020Image Analysis53 DTU Compute, Technical University of Denmark
Using the backtracing image
-
DTU Compute
2020Image Analysis54 DTU Compute, Technical University of Denmark
Quiz 4: BacktracingA) 1B) 2C) 3D) 4E) 5
An optimal path has been found in an image. The backtracing image is seen below and the optimal path ends in the marked pixel. A Matlab coordinate system is used. What is the optimal path?
-
DTU Compute
2020Image Analysis55 DTU Compute, Technical University of Denmark
Pre-processingn We would like to track
paths that are not dark curves
-
DTU Compute
2020Image Analysis56 DTU Compute, Technical University of Denmark
Quiz 5 : X-ray preprocessingA) Gaussian smoothingB) 255-IC) Gradient filterD) RegistrationE) Morphological operation
-
DTU Compute
2020Image Analysis57 DTU Compute, Technical University of Denmark
Pre-processing
Edge filtered image(Gaussian smoothing followed by Prewitt)
-
DTU Compute
2020Image Analysis58 DTU Compute, Technical University of Denmark
Path tracing on pre-processed image
Paths found on pre-processed image
-
DTU Compute
2020Image Analysis59 DTU Compute, Technical University of Denmark
Quiz 6: Optimal Path 2
A) 81B) 64C) 11D) 73E) 51
A 5 x 5 image is filled with values given the gray level run length encoding: 2, 180, 1, 15, 3, 112, 1, 8, 4, 177, 1, 20, 4, 195, 1, 12, 3, 242, 2, 25, 3, 9. After that the optimal path is found. What is the total cost?
15+8+20+12+9=64180 180 15 112 112112 8 177 177 177177 20 195 195 195195 12 242 242 24225 25 9 9 9
-
DTU Compute
2020Image Analysis60 DTU Compute, Technical University of Denmark
Locating Circular Structures
• Define origin inside structure
• Send out spokes
-
DTU Compute
2020Image Analysis61 DTU Compute, Technical University of Denmark
Locating Circular Structures
• Each spoke is a line in a new image (surface- layer detection)• Prewitt• Dijkstra’s algorithm• Map back the spokes into image
-
DTU Compute
2020Image Analysis62 DTU Compute, Technical University of Denmark
What did you learn today?n Use the Hough transform for line detectionn Describe the slope-intercept, the general form and the normalised
form of linesn Describe the connection between lines and the Hough spacen Use edge detection to enhance images for use with the Hough
transformn Use dynamic programming to trace paths in imagesn Describe how an image can be used as a graphn Describe the fundamental properties of a cost imagen Compute the cost of pathn Compute an accumulator image for path tracingn Compute a back tracing image for path tracingn Choose appropriate pre-processing steps for path tracingn Describe how circular structures can be located using path tracing
-
DTU Compute
2020Image Analysis63 DTU Compute, Technical University of Denmark
Next week – Company presentations
Visiopharm
DaluxIH Food
JLI Vision