Image Analysis - week8_… · nPath going from top to bottom nNo sharp turns – smooth nProblem:...

63
DTU Compute Image Analysis Tim B. Dyrby Rasmus R. Paulsen DTU Compute [email protected] http://www.compute.dtu.dk/courses/02502

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

    [email protected]

    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