120
1 Delineation •Dynamic Programming •Deformable Models •Hough Transform •Graph Based Approaches

Delineation - Moodle 2020-2021 · Interactive Delineation •The user provides the start and end points (red x). •The algorithm does the rest (yellow line). Image. Gradient. 10

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

  • 1

    Delineation

    •Dynamic Programming

    •Deformable Models

    •Hough Transform

    •Graph Based Approaches

  • 2

    From Gradients to Outlines

  • 3

    From Deep-Nets to Outlines

    —> Still work to do!

  • 4

    Mapping and Overlays

    Connectivity matters!

  • 5

    Connectomics

    Courtesy of C. Petersen

    —> Topology needed

  • 6

    Analogy

    • Uses Deep Nets to find the most promis ing locations to focus on.

    • Performs tree-based search when possible.

    • Relies on reinforcement learning and other ML techniques to train.

    High level processing

    Low level processing

  • 7

    Techniques

    Semi-Automated Techniques:

    • Dynamic Programming • Deformable Models

    Fully Automated Techniques:

    • Hough Transform • Graph Based Approaches

  • 8

    Reminder: Canny Limitations

    There is no ideal value of s!

  • 9

    Interactive Delineation

    • The user provides the start and end points (red x). • The algorithm does the rest (yellow line).

    Image Gradient

  • 10

    Live Wire in Action

    Mortensen and Barrett, SIGGRAPH’95

  • 11

    1D Dynamic Programming

    where f denotes the gradient orientation.

    k

    xk

    h(x1, x2, …, xn) = −n

    ∑k=1

    g(xk) +n−1

    ∑k=1

    r(xk, xk+1)

    r(xk, xk+1) = diff(ϕ(xk), ϕ(xk+1))

  • 12

    1D Dynamic Programming

    s g

    • N Locations • Q Quantized values

    ! Global optimum O(NQ2)

    1 2 3 N…

  • 13

    1D Dynamic Programming

    r r r

    r r

    r

    r

    r

  • 14

    Notations:s Start point

    L List of active nodes

    c(u,v) Local costs for link u -> v

    d(v) Total cost from s to v

    s

    vu

    d(v)

    c(u,v)

    g

    2D Dynamic Programming

  • 15

    Dijkstra Path Expansion

    Open nodes represent "unvisited" nodes. Filled nodes are visited ones, with color representing the distance: The greener, the shorter the path. Nodes in all the different directions are explored uniformly, appearing more-or-less as a circular wavefront.

    https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

  • 16

    Dijkstra’s Algorithm

    Maintain a sorted list of paths

  • 17

    Live Wire

    • Sorting is the expensive operation. Normally nlog(n), but can be reduced to log(n) if all costs are integer costs

    • Local costs computed using gradient:

    c(u,v) = 255 – ½ (g(u)+ g(v))

    • Diagonal penalized by multiplying cost of non diagonal edges by:

    • Add a constant cost for each edge.

  • 18

    Magnetic Lasso in Photoshop

    Integrating the LiveWire into a powerful interface that allows a user to correct mistakes yields a useful too.

  • 19

    Tracing Neurons

    ▪ In the biomedical world, images are 3D cubes of data. ▪ The approach extends naturally to tracking of 3D

    structures such as dendritic trees in the brain, blood vessels, etc …

  • 20

    Limitations

    • The “optimal” path is not always the “best” one. • Difficult to impose global constraints. • The cost grows exponentially with the dimension

    of the space in which we work.

    --> Must often look for local, as opposed to global, optimum using gradient descent techniques.

  • 21

    Techniques

    Semi-Automated Techniques:

    • Dynamic programming • Deformable Models

    Fully Automated Techniques:

    • Hough transform • Graph Based Approaches

  • 22

    Snakes

  • 23

    2—D Snake

    Deformable contours that • Maximize the gradient along the curve; • Minimize their deformation energy. --> Interactive tools for contour detection that can be

    generalized to handle sophisticated models

  • 24

    Energy Landscape

    E = 1/L

    Z 1

    s=0(��G(x(s), y(s)) + �2(s))ds

    = 1/L

    Z 1

    s=0(��G(x(s), y(s)) + �

    2x

    �s2

    2

    +�2y

    �s2

    2

    )ds

    = 1/L(��NX

    i=0

    G(xi, yi) +N�1X

    i=1

    ((2xi � xi�1 � xi+1)2 + (2yi � yi�1 � yi+1)2)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

  • 25

    Matrix Notation

  • 26

    Local Optimum

    But K is not invertible!

  • 27

    Dynamics

    Embed curve in a viscous medium and solve at each step:

    0 =∂E∂X

    + αdXdt

    =∂EG∂X

    + KX + αdXdt

    0 =∂E∂Y

    + αdYdt

    =∂EG∂Y

    + KY + αdYdt

  • 28

    Iterating

    At every step:

    ! Solve two linear equations at each iteration.

    0 =�EG�X

    +KXt + ↵(Xt �Xt�1) ) (K + ↵I)Xt = ↵Xt�1 ��EG�X

    0 =�EG�Y

    +KYt + ↵(Yt � Yt�1) ) (K + ↵I)Yt = ↵Yt�1 ��EG�Y

    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

  • 29

    Derivatives of the Image Gradient

    … …

  • 30

    Bilinear Interpolation

  • 31

    Open and Closed Snakes

  • 32

    Cysts Tumors in Ultrasound Images

    Luo et al., 2017

    Drawn by the physician. Refined by the Computer.

  • 33--> Updated field boundaries.

    Network Snakes

    Butenuth, PhD 2008

  • 34

    Ribbon Snakes

    +1/2WtKWW

  • 35

    DYNAMICS EQUATIONS

    ! Solve three linear equations at each iteration.

    (K + ↵I)Xt = ↵Xt�1 ��EG�X

    (K + ↵I)Yt = ↵Yt�1 ��EG�Y

    (K + ↵I)Wt = ↵Wt�1 ��EG�W

    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

  • 36

    Delineating Roads

  • 37

    Delineating Roads

  • 38

    Evaluation

    It takes far fewer clicks to trace the roads using semi-automated tools than doing entirely by hand.

  • 39

    Ridge Lines

  • 40

    Building

  • 41

    3—D Snakes

    Smooth 3—D snake Rectilinear 3—D snake

  • 42

    Dynamics Equations

    (K + ↵I)Xt = ↵Xt�1 ��EG�X

    (K + ↵I)Yt = ↵Yt�1 ��EG�Y

    (K + ↵I)Zt = ↵Zt�1 ��EG�Z

    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

    ! Solve three linear equations at each iteration.

  • 43

    Constrained Optimization

    • Minimize F(S) subject to C(S) = 0

  • 44

    Site Modeling (1996)

  • 45

    Site Modeling (2019)

  • 46

    Real-Time 3D Shape

    Ostlund et al., ECCV’12.

  • 47

    Sails

    ! Real-time performance evaluation.

  • 48

    Wings

  • 49

    Level Sets

  • 50

    Curve Evolution

    Problems: 1. Involves curve sampling and resampling. 2. Curvature estimates are numerically unstable.

    Generic formulation:@C

    @t= ↵(s, t)~T + �(s, t) ~N

    Reparameterization:@C

    @t= �(s, t) ~N

    Special cases:

    Prairie fire � = ±1Di↵usion � = �0 � �1

    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

  • 51

    Level Sets

    Consider the curve as the zero level set of the surface.

    ! Much better numerical stability.

    z = �(x, y, t)AAAB+XicbVBNT8JAEJ36ifhV9OhlI5hgQkjLRT2YEL14xMQKCTRkuyywYfuR3a1aKz/Fiwc1Xv0n3vw3LtCDgi+Z5OW9mczM8yLOpLKsb2NpeWV1bT23kd/c2t7ZNQt7tzKMBaEOCXkoWh6WlLOAOoopTluRoNj3OG16o8uJ37yjQrIwuFFJRF0fDwLWZwQrLXXNQukRnaNOY8jKD5Wkoo5LXbNoVa0p0CKxM1KEDI2u+dXphST2aaAIx1K2bStSboqFYoTTcb4TSxphMsID2tY0wD6Vbjo9fYyOtNJD/VDoChSaqr8nUuxLmfie7vSxGsp5byL+57Vj1T91UxZEsaIBmS3qxxypEE1yQD0mKFE80QQTwfStiAyxwETptPI6BHv+5UXi1KpnVfu6VqxfZGnk4AAOoQw2nEAdrqABDhC4h2d4hTfjyXgx3o2PWeuSkc3swx8Ynz/JcJHxAAAB+XicbVBNT8JAEJ36ifhV9OhlI5hgQkjLRT2YEL14xMQKCTRkuyywYfuR3a1aKz/Fiwc1Xv0n3vw3LtCDgi+Z5OW9mczM8yLOpLKsb2NpeWV1bT23kd/c2t7ZNQt7tzKMBaEOCXkoWh6WlLOAOoopTluRoNj3OG16o8uJ37yjQrIwuFFJRF0fDwLWZwQrLXXNQukRnaNOY8jKD5Wkoo5LXbNoVa0p0CKxM1KEDI2u+dXphST2aaAIx1K2bStSboqFYoTTcb4TSxphMsID2tY0wD6Vbjo9fYyOtNJD/VDoChSaqr8nUuxLmfie7vSxGsp5byL+57Vj1T91UxZEsaIBmS3qxxypEE1yQD0mKFE80QQTwfStiAyxwETptPI6BHv+5UXi1KpnVfu6VqxfZGnk4AAOoQw2nEAdrqABDhC4h2d4hTfjyXgx3o2PWeuSkc3swx8Ynz/JcJHxAAAB+XicbVBNT8JAEJ36ifhV9OhlI5hgQkjLRT2YEL14xMQKCTRkuyywYfuR3a1aKz/Fiwc1Xv0n3vw3LtCDgi+Z5OW9mczM8yLOpLKsb2NpeWV1bT23kd/c2t7ZNQt7tzKMBaEOCXkoWh6WlLOAOoopTluRoNj3OG16o8uJ37yjQrIwuFFJRF0fDwLWZwQrLXXNQukRnaNOY8jKD5Wkoo5LXbNoVa0p0CKxM1KEDI2u+dXphST2aaAIx1K2bStSboqFYoTTcb4TSxphMsID2tY0wD6Vbjo9fYyOtNJD/VDoChSaqr8nUuxLmfie7vSxGsp5byL+57Vj1T91UxZEsaIBmS3qxxypEE1yQD0mKFE80QQTwfStiAyxwETptPI6BHv+5UXi1KpnVfu6VqxfZGnk4AAOoQw2nEAdrqABDhC4h2d4hTfjyXgx3o2PWeuSkc3swx8Ynz/JcJHxAAAB+XicbVBNT8JAEJ36ifhV9OhlI5hgQkjLRT2YEL14xMQKCTRkuyywYfuR3a1aKz/Fiwc1Xv0n3vw3LtCDgi+Z5OW9mczM8yLOpLKsb2NpeWV1bT23kd/c2t7ZNQt7tzKMBaEOCXkoWh6WlLOAOoopTluRoNj3OG16o8uJ37yjQrIwuFFJRF0fDwLWZwQrLXXNQukRnaNOY8jKD5Wkoo5LXbNoVa0p0CKxM1KEDI2u+dXphST2aaAIx1K2bStSboqFYoTTcb4TSxphMsID2tY0wD6Vbjo9fYyOtNJD/VDoChSaqr8nUuxLmfie7vSxGsp5byL+57Vj1T91UxZEsaIBmS3qxxypEE1yQD0mKFE80QQTwfStiAyxwETptPI6BHv+5UXi1KpnVfu6VqxfZGnk4AAOoQw2nEAdrqABDhC4h2d4hTfjyXgx3o2PWeuSkc3swx8Ynz/JcJHx

    0 = �t + �() |r�|

    where =�xx�2y � 2�xy�x�y + �yy�2x

    �2x + �2y

    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

    Corresponding evolution equation.

  • 52

    Topology Change

  • 53

    Level Set Smoothing

    Smoothing occurs when

    Desirable properties:

    • Converges towards circles. • Total curvature decreases. • Number of curvature extrema and zeros of curvature decreases.

    Relationship with Gaussian smoothing:

    • Analogous to Gaussian smoothing of boundary over the short run, but does not cause self-intersections or overemphasize elongated parts.

    • Can be implemented by Gaussian smoothing the characteristic function of a region.

    �() = �AAACA3icbZC7SgNBFIZn4y3G26plmsFEiIVhN41aCEEbywiuCWSXcHYymwyZvTAzK4QlhY2vYmOhYutL2Pk2TpItNPGHgY//nMOZ8/sJZ1JZ1rdRWFldW98obpa2tnd298z9g3sZp4JQh8Q8Fh0fJOUsoo5iitNOIiiEPqdtf3Q9rbcfqJAsju7UOKFeCIOIBYyA0lbPLFddnyrANXcESQIn+BKf4jlXe2bFqlsz4WWwc6igXK2e+eX2Y5KGNFKEg5Rd20qUl4FQjHA6KbmppAmQEQxoV2MEIZVeNjtigo+108dBLPSLFJ65vycyCKUch77uDEEN5WJtav5X66YqOPcyFiWpohGZLwpSjlWMp4ngPhOUKD7WAEQw/VdMhiCAKJ1bSYdgL568DE6jflG3bxuV5lWeRhGV0RGqIRudoSa6QS3kIIIe0TN6RW/Gk/FivBsf89aCkc8coj8yPn8A04aV2A==AAACA3icbZC7SgNBFIZn4y3G26plmsFEiIVhN41aCEEbywiuCWSXcHYymwyZvTAzK4QlhY2vYmOhYutL2Pk2TpItNPGHgY//nMOZ8/sJZ1JZ1rdRWFldW98obpa2tnd298z9g3sZp4JQh8Q8Fh0fJOUsoo5iitNOIiiEPqdtf3Q9rbcfqJAsju7UOKFeCIOIBYyA0lbPLFddnyrANXcESQIn+BKf4jlXe2bFqlsz4WWwc6igXK2e+eX2Y5KGNFKEg5Rd20qUl4FQjHA6KbmppAmQEQxoV2MEIZVeNjtigo+108dBLPSLFJ65vycyCKUch77uDEEN5WJtav5X66YqOPcyFiWpohGZLwpSjlWMp4ngPhOUKD7WAEQw/VdMhiCAKJ1bSYdgL568DE6jflG3bxuV5lWeRhGV0RGqIRudoSa6QS3kIIIe0TN6RW/Gk/FivBsf89aCkc8coj8yPn8A04aV2A==AAACA3icbZC7SgNBFIZn4y3G26plmsFEiIVhN41aCEEbywiuCWSXcHYymwyZvTAzK4QlhY2vYmOhYutL2Pk2TpItNPGHgY//nMOZ8/sJZ1JZ1rdRWFldW98obpa2tnd298z9g3sZp4JQh8Q8Fh0fJOUsoo5iitNOIiiEPqdtf3Q9rbcfqJAsju7UOKFeCIOIBYyA0lbPLFddnyrANXcESQIn+BKf4jlXe2bFqlsz4WWwc6igXK2e+eX2Y5KGNFKEg5Rd20qUl4FQjHA6KbmppAmQEQxoV2MEIZVeNjtigo+108dBLPSLFJ65vycyCKUch77uDEEN5WJtav5X66YqOPcyFiWpohGZLwpSjlWMp4ngPhOUKD7WAEQw/VdMhiCAKJ1bSYdgL568DE6jflG3bxuV5lWeRhGV0RGqIRudoSa6QS3kIIIe0TN6RW/Gk/FivBsf89aCkc8coj8yPn8A04aV2A==AAACA3icbZC7SgNBFIZn4y3G26plmsFEiIVhN41aCEEbywiuCWSXcHYymwyZvTAzK4QlhY2vYmOhYutL2Pk2TpItNPGHgY//nMOZ8/sJZ1JZ1rdRWFldW98obpa2tnd298z9g3sZp4JQh8Q8Fh0fJOUsoo5iitNOIiiEPqdtf3Q9rbcfqJAsju7UOKFeCIOIBYyA0lbPLFddnyrANXcESQIn+BKf4jlXe2bFqlsz4WWwc6igXK2e+eX2Y5KGNFKEg5Rd20qUl4FQjHA6KbmppAmQEQxoV2MEIZVeNjtigo+108dBLPSLFJ65vycyCKUch77uDEEN5WJtav5X66YqOPcyFiWpohGZLwpSjlWMp4ngPhOUKD7WAEQw/VdMhiCAKJ1bSYdgL568DE6jflG3bxuV5lWeRhGV0RGqIRudoSa6QS3kIIIe0TN6RW/Gk/FivBsf89aCkc8coj8yPn8A04aV2A==

  • 54

    Shape Recovery

    ! Expansion stops at the boundaries.

    Evolution equation: 0 = �t + �() |r�|

    where: �() = kI(1� ✏)

    kI =1

    1 +rIAAAC2HicbVJLi9RAEO7E1xofO+rRS+GgjC4OyYKoC8KiCO5tBGd3IR2GTk9lpplOJ9vdWR2yOXhQ8epP8+a/8CfYkwmyzlpQ8PHV46uq7rSUwtgw/OX5ly5fuXpt63pw4+at29u9O3cPTVFpjmNeyEIfp8ygFArHVliJx6VGlqcSj9LFm1X86BS1EYX6YJclJjmbKZEJzqyjJr3fNMWZUDWeKKY1Wz5pgOZp8ammaQZvTwtZrfIAT6q2YK8BoA5PIQjhEbxyTkdzMbGwA66TZTCgC1aW7DFQiZk9A6pYKlmbBVSL2XzF0TgcPuN5EnRi8HGOGveg2WyyllhMDmAQwVOgWBoh3Tx/RWjQRrtRMs14HTV1tNPJHjQBRTU9t96k1w+HYWtwEUQd6JPORpPeTzoteJWjslwyY+IoLG1SM20Fl+j6VwZLxhdshrGDiuVokrp9mQYeOmYKWaGdKwste76iZrkxyzx1mTmzc7MZW5H/i8WVzV4ktVBlZVHxtVBWSbAFrJ4ZpkIjt3LpAONauFmBz5k7j3WfIXBHiDZXvgjGu8OXw+j9bn//dXeNLXKfPCADEpHnZJ+8IyMyJtw79M68L95XP/Y/+9/87+tU3+tq7pF/zP/xB5Ve2/Y=AAAC2HicbVJLi9RAEO7E1xofO+rRS+GgjC4OyYKoC8KiCO5tBGd3IR2GTk9lpplOJ9vdWR2yOXhQ8epP8+a/8CfYkwmyzlpQ8PHV46uq7rSUwtgw/OX5ly5fuXpt63pw4+at29u9O3cPTVFpjmNeyEIfp8ygFArHVliJx6VGlqcSj9LFm1X86BS1EYX6YJclJjmbKZEJzqyjJr3fNMWZUDWeKKY1Wz5pgOZp8ammaQZvTwtZrfIAT6q2YK8BoA5PIQjhEbxyTkdzMbGwA66TZTCgC1aW7DFQiZk9A6pYKlmbBVSL2XzF0TgcPuN5EnRi8HGOGveg2WyyllhMDmAQwVOgWBoh3Tx/RWjQRrtRMs14HTV1tNPJHjQBRTU9t96k1w+HYWtwEUQd6JPORpPeTzoteJWjslwyY+IoLG1SM20Fl+j6VwZLxhdshrGDiuVokrp9mQYeOmYKWaGdKwste76iZrkxyzx1mTmzc7MZW5H/i8WVzV4ktVBlZVHxtVBWSbAFrJ4ZpkIjt3LpAONauFmBz5k7j3WfIXBHiDZXvgjGu8OXw+j9bn//dXeNLXKfPCADEpHnZJ+8IyMyJtw79M68L95XP/Y/+9/87+tU3+tq7pF/zP/xB5Ve2/Y=AAAC2HicbVJLi9RAEO7E1xofO+rRS+GgjC4OyYKoC8KiCO5tBGd3IR2GTk9lpplOJ9vdWR2yOXhQ8epP8+a/8CfYkwmyzlpQ8PHV46uq7rSUwtgw/OX5ly5fuXpt63pw4+at29u9O3cPTVFpjmNeyEIfp8ygFArHVliJx6VGlqcSj9LFm1X86BS1EYX6YJclJjmbKZEJzqyjJr3fNMWZUDWeKKY1Wz5pgOZp8ammaQZvTwtZrfIAT6q2YK8BoA5PIQjhEbxyTkdzMbGwA66TZTCgC1aW7DFQiZk9A6pYKlmbBVSL2XzF0TgcPuN5EnRi8HGOGveg2WyyllhMDmAQwVOgWBoh3Tx/RWjQRrtRMs14HTV1tNPJHjQBRTU9t96k1w+HYWtwEUQd6JPORpPeTzoteJWjslwyY+IoLG1SM20Fl+j6VwZLxhdshrGDiuVokrp9mQYeOmYKWaGdKwste76iZrkxyzx1mTmzc7MZW5H/i8WVzV4ktVBlZVHxtVBWSbAFrJ4ZpkIjt3LpAONauFmBz5k7j3WfIXBHiDZXvgjGu8OXw+j9bn//dXeNLXKfPCADEpHnZJ+8IyMyJtw79M68L95XP/Y/+9/87+tU3+tq7pF/zP/xB5Ve2/Y=AAAC2HicbVJLi9RAEO7E1xofO+rRS+GgjC4OyYKoC8KiCO5tBGd3IR2GTk9lpplOJ9vdWR2yOXhQ8epP8+a/8CfYkwmyzlpQ8PHV46uq7rSUwtgw/OX5ly5fuXpt63pw4+at29u9O3cPTVFpjmNeyEIfp8ygFArHVliJx6VGlqcSj9LFm1X86BS1EYX6YJclJjmbKZEJzqyjJr3fNMWZUDWeKKY1Wz5pgOZp8ammaQZvTwtZrfIAT6q2YK8BoA5PIQjhEbxyTkdzMbGwA66TZTCgC1aW7DFQiZk9A6pYKlmbBVSL2XzF0TgcPuN5EnRi8HGOGveg2WyyllhMDmAQwVOgWBoh3Tx/RWjQRrtRMs14HTV1tNPJHjQBRTU9t96k1w+HYWtwEUQd6JPORpPeTzoteJWjslwyY+IoLG1SM20Fl+j6VwZLxhdshrGDiuVokrp9mQYeOmYKWaGdKwste76iZrkxyzx1mTmzc7MZW5H/i8WVzV4ktVBlZVHxtVBWSbAFrJ4ZpkIjt3LpAONauFmBz5k7j3WfIXBHiDZXvgjGu8OXw+j9bn//dXeNLXKfPCADEpHnZJ+8IyMyJtw79M68L95XP/Y/+9/87+tU3+tq7pF/zP/xB5Ve2/Y=

  • 55

    Level Sets

  • 56

    Level Sets

  • 57

    Techniques

    Semi-Automated Techniques:

    • Dynamic programming • Deformable Models

    Fully Automated Techniques:

    • Hough transform • Graph Based Approaches

  • 58

    Finding Lines

    Input: • Canny edge points. • Gradient magnitude and orientation.

    Output: • All straight lines in image.

  • 59

    Hough Transform

    Given a parametric model of a curve:

    • Map each contour point onto the set of parameter values for which the curves passes through it.

    • Find the intersection for all parameter sets thus mapped.

  • 60

    Voting Scheme

    x cos(✓) + y sin(✓) = r , 0 ✓ ⇡AAACKnicbVDLSsNAFJ3Ud31VXboZLEJFKYkKCiL42LhUsA9oQplMb9qhk0mcuRFL8Xvc+CtuXCji1g8xaSP4OjDDmXPu5c49fiyFQdt+swoTk1PTM7NzxfmFxaXl0spq3USJ5lDjkYx002cGpFBQQ4ESmrEGFvoSGn7/PPMbt6CNiNQ1DmLwQtZVIhCcYSq1S6d31OWRqbjYA2Rb2wPqGqG+nvSYauoe0Z3ssqkr4YaOrZzHotgule2qPQL9S5yclEmOy3bp2e1EPAlBIZfMmJZjx+gNmUbBJdwX3cRAzHifdaGVUsVCMN5wtOo93UyVDg0inR6FdKR+7xiy0JhB6KeVIcOe+e1l4n9eK8Hg0BsKFScIio8HBYmkGNEsN9oRGjjKQUoY1yL9K+U9phnHNN0sBOf3yn9Jfbfq7FV3r/bLJ2d5HLNknWyQCnHIATkhF+SS1AgnD+SJvJBX69F6tt6s93Fpwcp71sgPWB+fxBijyA==

    x

    y

    r

    q

  • 61

    Voting Scheme

    x cos(✓) + y sin(✓) = r , 0 ✓ ⇡AAACKnicbVDLSsNAFJ3Ud31VXboZLEJFKYkKCiL42LhUsA9oQplMb9qhk0mcuRFL8Xvc+CtuXCji1g8xaSP4OjDDmXPu5c49fiyFQdt+swoTk1PTM7NzxfmFxaXl0spq3USJ5lDjkYx002cGpFBQQ4ESmrEGFvoSGn7/PPMbt6CNiNQ1DmLwQtZVIhCcYSq1S6d31OWRqbjYA2Rb2wPqGqG+nvSYauoe0Z3ssqkr4YaOrZzHotgule2qPQL9S5yclEmOy3bp2e1EPAlBIZfMmJZjx+gNmUbBJdwX3cRAzHifdaGVUsVCMN5wtOo93UyVDg0inR6FdKR+7xiy0JhB6KeVIcOe+e1l4n9eK8Hg0BsKFScIio8HBYmkGNEsN9oRGjjKQUoY1yL9K+U9phnHNN0sBOf3yn9Jfbfq7FV3r/bLJ2d5HLNknWyQCnHIATkhF+SS1AgnD+SJvJBX69F6tt6s93Fpwcp71sgPWB+fxBijyA==

    x

    y

    r

    q

  • 62

    Voting Scheme

    x cos(✓) + y sin(✓) = r , 0 ✓ ⇡AAACKnicbVDLSsNAFJ3Ud31VXboZLEJFKYkKCiL42LhUsA9oQplMb9qhk0mcuRFL8Xvc+CtuXCji1g8xaSP4OjDDmXPu5c49fiyFQdt+swoTk1PTM7NzxfmFxaXl0spq3USJ5lDjkYx002cGpFBQQ4ESmrEGFvoSGn7/PPMbt6CNiNQ1DmLwQtZVIhCcYSq1S6d31OWRqbjYA2Rb2wPqGqG+nvSYauoe0Z3ssqkr4YaOrZzHotgule2qPQL9S5yclEmOy3bp2e1EPAlBIZfMmJZjx+gNmUbBJdwX3cRAzHifdaGVUsVCMN5wtOo93UyVDg0inR6FdKR+7xiy0JhB6KeVIcOe+e1l4n9eK8Hg0BsKFScIio8HBYmkGNEsN9oRGjjKQUoY1yL9K+U9phnHNN0sBOf3yn9Jfbfq7FV3r/bLJ2d5HLNknWyQCnHIATkhF+SS1AgnD+SJvJBX69F6tt6s93Fpwcp71sgPWB+fxBijyA==

    x

    y

    r

    q

  • 63

    Voting Scheme

    x cos(✓) + y sin(✓) = r , 0 ✓ ⇡AAACKnicbVDLSsNAFJ3Ud31VXboZLEJFKYkKCiL42LhUsA9oQplMb9qhk0mcuRFL8Xvc+CtuXCji1g8xaSP4OjDDmXPu5c49fiyFQdt+swoTk1PTM7NzxfmFxaXl0spq3USJ5lDjkYx002cGpFBQQ4ESmrEGFvoSGn7/PPMbt6CNiNQ1DmLwQtZVIhCcYSq1S6d31OWRqbjYA2Rb2wPqGqG+nvSYauoe0Z3ssqkr4YaOrZzHotgule2qPQL9S5yclEmOy3bp2e1EPAlBIZfMmJZjx+gNmUbBJdwX3cRAzHifdaGVUsVCMN5wtOo93UyVDg0inR6FdKR+7xiy0JhB6KeVIcOe+e1l4n9eK8Hg0BsKFScIio8HBYmkGNEsN9oRGjjKQUoY1yL9K+U9phnHNN0sBOf3yn9Jfbfq7FV3r/bLJ2d5HLNknWyQCnHIATkhF+SS1AgnD+SJvJBX69F6tt6s93Fpwcp71sgPWB+fxBijyA==

    x

    y

    r

    q

  • 64

    Iris Detection

  • 65

    Occlusions

    In theory:

    In practice:

  • 66

    Circle Detection

    Circle of equation:

    Therefore:

  • 67

    Gradient Orientation

    Can vote either along the entire circle or only at two points per value of the radius.

  • 68

    Simple Image

    Voting scheme:

    Result:

  • 69

    Eye Image

    Image and accumulator:

    Best four candidates:

  • 70

    Ellipses

  • 71

    Ellipse Detection

    Ellipse of equation:

    Therefore:

  • 72

    dx

    d✓= �a sin(✓)

    dy

    d✓= b cos(✓)

    � = atan(�dxd✓

    ,dy

    d✓)

    = atan(a sin(✓), b cos(✓))

    = atan(a

    btan(✓))

    tan(�) =a

    btan(✓)

    ) ✓ = atan( batan(�))

    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

    dx

    d✓= �a sin(✓)

    dy

    d✓= b cos(✓)

    � = atan(�dxd✓

    ,dy

    d✓)

    = atan(a sin(✓), b cos(✓))

    = atan(a

    btan(✓))

    tan(�) =a

    btan(✓)

    ) ✓ = atan( batan(�))

    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

    dx

    d✓= �a sin(✓)

    dy

    d✓= b cos(✓)

    � = atan(�dxd✓

    ,dy

    d✓)

    = atan(a sin(✓), b cos(✓))

    = atan(a

    btan(✓))

    tan(�) =a

    btan(✓)

    ) ✓ = atan( batan(�))

    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

    Gradient Orientation

    For each ellipse point:

    The accumulator need only be incremented for this q.

    [dx

    d✓,dy

    d✓]

    AAACEHicbZDLSsNAFIYnXmu9RV26GSyiCymJCLosunFZwV4gDWUymbRDJxdmTsQQ8ghufBU3LhRx69Kdb+O0DaitPwz8fOcczpzfSwRXYFlfxsLi0vLKamWtur6xubVt7uy2VZxKylo0FrHsekQxwSPWAg6CdRPJSOgJ1vFGV+N6545JxePoFrKEuSEZRDzglIBGffPI6QWS0Ny/L3K/B0MGpDgpUfaD3L5Zs+rWRHje2KWpoVLNvvnZ82OahiwCKohSjm0l4OZEAqeCFdVeqlhC6IgMmKNtREKm3HxyUIEPNfFxEEv9IsAT+nsiJ6FSWejpzpDAUM3WxvC/mpNCcOHmPEpSYBGdLgpSgSHG43SwzyWjIDJtCJVc/xXTIdFpgM6wqkOwZ0+eN+3Tuq39zVmtcVnGUUH76AAdIxudowa6Rk3UQhQ9oCf0gl6NR+PZeDPep60LRjmzh/7I+PgGwe6eSg==AAACEHicbZDLSsNAFIYnXmu9RV26GSyiCymJCLosunFZwV4gDWUymbRDJxdmTsQQ8ghufBU3LhRx69Kdb+O0DaitPwz8fOcczpzfSwRXYFlfxsLi0vLKamWtur6xubVt7uy2VZxKylo0FrHsekQxwSPWAg6CdRPJSOgJ1vFGV+N6545JxePoFrKEuSEZRDzglIBGffPI6QWS0Ny/L3K/B0MGpDgpUfaD3L5Zs+rWRHje2KWpoVLNvvnZ82OahiwCKohSjm0l4OZEAqeCFdVeqlhC6IgMmKNtREKm3HxyUIEPNfFxEEv9IsAT+nsiJ6FSWejpzpDAUM3WxvC/mpNCcOHmPEpSYBGdLgpSgSHG43SwzyWjIDJtCJVc/xXTIdFpgM6wqkOwZ0+eN+3Tuq39zVmtcVnGUUH76AAdIxudowa6Rk3UQhQ9oCf0gl6NR+PZeDPep60LRjmzh/7I+PgGwe6eSg==AAACEHicbZDLSsNAFIYnXmu9RV26GSyiCymJCLosunFZwV4gDWUymbRDJxdmTsQQ8ghufBU3LhRx69Kdb+O0DaitPwz8fOcczpzfSwRXYFlfxsLi0vLKamWtur6xubVt7uy2VZxKylo0FrHsekQxwSPWAg6CdRPJSOgJ1vFGV+N6545JxePoFrKEuSEZRDzglIBGffPI6QWS0Ny/L3K/B0MGpDgpUfaD3L5Zs+rWRHje2KWpoVLNvvnZ82OahiwCKohSjm0l4OZEAqeCFdVeqlhC6IgMmKNtREKm3HxyUIEPNfFxEEv9IsAT+nsiJ6FSWejpzpDAUM3WxvC/mpNCcOHmPEpSYBGdLgpSgSHG43SwzyWjIDJtCJVc/xXTIdFpgM6wqkOwZ0+eN+3Tuq39zVmtcVnGUUH76AAdIxudowa6Rk3UQhQ9oCf0gl6NR+PZeDPep60LRjmzh/7I+PgGwe6eSg==AAACEHicbZDLSsNAFIYnXmu9RV26GSyiCymJCLosunFZwV4gDWUymbRDJxdmTsQQ8ghufBU3LhRx69Kdb+O0DaitPwz8fOcczpzfSwRXYFlfxsLi0vLKamWtur6xubVt7uy2VZxKylo0FrHsekQxwSPWAg6CdRPJSOgJ1vFGV+N6545JxePoFrKEuSEZRDzglIBGffPI6QWS0Ny/L3K/B0MGpDgpUfaD3L5Zs+rWRHje2KWpoVLNvvnZ82OahiwCKohSjm0l4OZEAqeCFdVeqlhC6IgMmKNtREKm3HxyUIEPNfFxEEv9IsAT+nsiJ6FSWejpzpDAUM3WxvC/mpNCcOHmPEpSYBGdLgpSgSHG43SwzyWjIDJtCJVc/xXTIdFpgM6wqkOwZ0+eN+3Tuq39zVmtcVnGUUH76AAdIxudowa6Rk3UQhQ9oCf0gl6NR+PZeDPep60LRjmzh/7I+PgGwe6eSg==

    [dy

    d✓,�dx

    d✓]

    AAACEXicbZDLSsNAFIYn9VbrLerSTbAIXWhJRNBl0Y3LCvYCSSiTyaQdOrkwcyKGkFdw46u4caGIW3fufBunbUBt/WHg5zvncOb8XsKZBNP80ipLyyura9X12sbm1vaOvrvXlXEqCO2QmMei72FJOYtoBxhw2k8ExaHHac8bX03qvTsqJIujW8gS6oZ4GLGAEQwKDfSG7QQCk9zPitx3YEQBF8cnJbv/Ye5Ar5tNcypj0VilqaNS7YH+6fgxSUMaAeFYStsyE3BzLIARTouak0qaYDLGQ2orG+GQSjefXlQYR4r4RhAL9SIwpvT3RI5DKbPQU50hhpGcr03gfzU7heDCzVmUpEAjMlsUpNyA2JjEY/hMUAI8UwYTwdRfDTLCKg1QIdZUCNb8yYume9q0lL85q7cuyziq6AAdogay0DlqoWvURh1E0AN6Qi/oVXvUnrU37X3WWtHKmX30R9rHNzcMnoE=AAACEXicbZDLSsNAFIYn9VbrLerSTbAIXWhJRNBl0Y3LCvYCSSiTyaQdOrkwcyKGkFdw46u4caGIW3fufBunbUBt/WHg5zvncOb8XsKZBNP80ipLyyura9X12sbm1vaOvrvXlXEqCO2QmMei72FJOYtoBxhw2k8ExaHHac8bX03qvTsqJIujW8gS6oZ4GLGAEQwKDfSG7QQCk9zPitx3YEQBF8cnJbv/Ye5Ar5tNcypj0VilqaNS7YH+6fgxSUMaAeFYStsyE3BzLIARTouak0qaYDLGQ2orG+GQSjefXlQYR4r4RhAL9SIwpvT3RI5DKbPQU50hhpGcr03gfzU7heDCzVmUpEAjMlsUpNyA2JjEY/hMUAI8UwYTwdRfDTLCKg1QIdZUCNb8yYume9q0lL85q7cuyziq6AAdogay0DlqoWvURh1E0AN6Qi/oVXvUnrU37X3WWtHKmX30R9rHNzcMnoE=AAACEXicbZDLSsNAFIYn9VbrLerSTbAIXWhJRNBl0Y3LCvYCSSiTyaQdOrkwcyKGkFdw46u4caGIW3fufBunbUBt/WHg5zvncOb8XsKZBNP80ipLyyura9X12sbm1vaOvrvXlXEqCO2QmMei72FJOYtoBxhw2k8ExaHHac8bX03qvTsqJIujW8gS6oZ4GLGAEQwKDfSG7QQCk9zPitx3YEQBF8cnJbv/Ye5Ar5tNcypj0VilqaNS7YH+6fgxSUMaAeFYStsyE3BzLIARTouak0qaYDLGQ2orG+GQSjefXlQYR4r4RhAL9SIwpvT3RI5DKbPQU50hhpGcr03gfzU7heDCzVmUpEAjMlsUpNyA2JjEY/hMUAI8UwYTwdRfDTLCKg1QIdZUCNb8yYume9q0lL85q7cuyziq6AAdogay0DlqoWvURh1E0AN6Qi/oVXvUnrU37X3WWtHKmX30R9rHNzcMnoE=AAACEXicbZDLSsNAFIYn9VbrLerSTbAIXWhJRNBl0Y3LCvYCSSiTyaQdOrkwcyKGkFdw46u4caGIW3fufBunbUBt/WHg5zvncOb8XsKZBNP80ipLyyura9X12sbm1vaOvrvXlXEqCO2QmMei72FJOYtoBxhw2k8ExaHHac8bX03qvTsqJIujW8gS6oZ4GLGAEQwKDfSG7QQCk9zPitx3YEQBF8cnJbv/Ye5Ar5tNcypj0VilqaNS7YH+6fgxSUMaAeFYStsyE3BzLIARTouak0qaYDLGQ2orG+GQSjefXlQYR4r4RhAL9SIwpvT3RI5DKbPQU50hhpGcr03gfzU7heDCzVmUpEAjMlsUpNyA2JjEY/hMUAI8UwYTwdRfDTLCKg1QIdZUCNb8yYume9q0lL85q7cuyziq6AAdogay0DlqoWvURh1E0AN6Qi/oVXvUnrU37X3WWtHKmX30R9rHNzcMnoE=�AAAB63icbZDNSgMxFIVv6l+tf1WXboJFcFVmRNBl0Y3LCrYW2qFk0kwnNMkMSUYoQ1/BjQtF3PpC7nwbM+0stPVA4OPce8m9J0wFN9bzvlFlbX1jc6u6XdvZ3ds/qB8edU2Saco6NBGJ7oXEMMEV61huBeulmhEZCvYYTm6L+uMT04Yn6sFOUxZIMlY84pTYwhqkMR/WG17Tmwuvgl9CA0q1h/WvwSihmWTKUkGM6fteaoOcaMupYLPaIDMsJXRCxqzvUBHJTJDPd53hM+eMcJRo95TFc/f3RE6kMVMZuk5JbGyWa4X5X62f2eg6yLlKM8sUXXwUZQLbBBeH4xHXjFoxdUCo5m5XTGOiCbUunpoLwV8+eRW6F03f8f1lo3VTxlGFEziFc/DhClpwB23oAIUYnuEV3pBEL+gdfSxaK6icOYY/Qp8/E4qOPw==AAAB63icbZDNSgMxFIVv6l+tf1WXboJFcFVmRNBl0Y3LCrYW2qFk0kwnNMkMSUYoQ1/BjQtF3PpC7nwbM+0stPVA4OPce8m9J0wFN9bzvlFlbX1jc6u6XdvZ3ds/qB8edU2Saco6NBGJ7oXEMMEV61huBeulmhEZCvYYTm6L+uMT04Yn6sFOUxZIMlY84pTYwhqkMR/WG17Tmwuvgl9CA0q1h/WvwSihmWTKUkGM6fteaoOcaMupYLPaIDMsJXRCxqzvUBHJTJDPd53hM+eMcJRo95TFc/f3RE6kMVMZuk5JbGyWa4X5X62f2eg6yLlKM8sUXXwUZQLbBBeH4xHXjFoxdUCo5m5XTGOiCbUunpoLwV8+eRW6F03f8f1lo3VTxlGFEziFc/DhClpwB23oAIUYnuEV3pBEL+gdfSxaK6icOYY/Qp8/E4qOPw==AAAB63icbZDNSgMxFIVv6l+tf1WXboJFcFVmRNBl0Y3LCrYW2qFk0kwnNMkMSUYoQ1/BjQtF3PpC7nwbM+0stPVA4OPce8m9J0wFN9bzvlFlbX1jc6u6XdvZ3ds/qB8edU2Saco6NBGJ7oXEMMEV61huBeulmhEZCvYYTm6L+uMT04Yn6sFOUxZIMlY84pTYwhqkMR/WG17Tmwuvgl9CA0q1h/WvwSihmWTKUkGM6fteaoOcaMupYLPaIDMsJXRCxqzvUBHJTJDPd53hM+eMcJRo95TFc/f3RE6kMVMZuk5JbGyWa4X5X62f2eg6yLlKM8sUXXwUZQLbBBeH4xHXjFoxdUCo5m5XTGOiCbUunpoLwV8+eRW6F03f8f1lo3VTxlGFEziFc/DhClpwB23oAIUYnuEV3pBEL+gdfSxaK6icOYY/Qp8/E4qOPw==AAAB63icbZDNSgMxFIVv6l+tf1WXboJFcFVmRNBl0Y3LCrYW2qFk0kwnNMkMSUYoQ1/BjQtF3PpC7nwbM+0stPVA4OPce8m9J0wFN9bzvlFlbX1jc6u6XdvZ3ds/qB8edU2Saco6NBGJ7oXEMMEV61huBeulmhEZCvYYTm6L+uMT04Yn6sFOUxZIMlY84pTYwhqkMR/WG17Tmwuvgl9CA0q1h/WvwSihmWTKUkGM6fteaoOcaMupYLPaIDMsJXRCxqzvUBHJTJDPd53hM+eMcJRo95TFc/f3RE6kMVMZuk5JbGyWa4X5X62f2eg6yLlKM8sUXXwUZQLbBBeH4xHXjFoxdUCo5m5XTGOiCbUunpoLwV8+eRW6F03f8f1lo3VTxlGFEziFc/DhClpwB23oAIUYnuEV3pBEL+gdfSxaK6icOYY/Qp8/E4qOPw==

    ✓AAAB7XicbZBNSwMxEIZn61etX1WPXoJF8FR2RdBj0YvHCvYD2qVk07SNzSZLMiuUpf/BiwdFvPp/vPlvTNs9aOsLgYd3ZsjMGyVSWPT9b6+wtr6xuVXcLu3s7u0flA+PmlanhvEG01KbdkQtl0LxBgqUvJ0YTuNI8lY0vp3VW0/cWKHVA04SHsZ0qMRAMIrOanZxxJH2yhW/6s9FViHIoQK56r3yV7evWRpzhUxSazuBn2CYUYOCST4tdVPLE8rGdMg7DhWNuQ2z+bZTcuacPhlo455CMnd/T2Q0tnYSR64zpjiyy7WZ+V+tk+LgOsyESlLkii0+GqSSoCaz00lfGM5QThxQZoTblbARNZShC6jkQgiWT16F5kU1cHx/Wand5HEU4QRO4RwCuIIa3EEdGsDgEZ7hFd487b14797HorXg5TPH8Efe5w+j+Y8oAAAB7XicbZBNSwMxEIZn61etX1WPXoJF8FR2RdBj0YvHCvYD2qVk07SNzSZLMiuUpf/BiwdFvPp/vPlvTNs9aOsLgYd3ZsjMGyVSWPT9b6+wtr6xuVXcLu3s7u0flA+PmlanhvEG01KbdkQtl0LxBgqUvJ0YTuNI8lY0vp3VW0/cWKHVA04SHsZ0qMRAMIrOanZxxJH2yhW/6s9FViHIoQK56r3yV7evWRpzhUxSazuBn2CYUYOCST4tdVPLE8rGdMg7DhWNuQ2z+bZTcuacPhlo455CMnd/T2Q0tnYSR64zpjiyy7WZ+V+tk+LgOsyESlLkii0+GqSSoCaz00lfGM5QThxQZoTblbARNZShC6jkQgiWT16F5kU1cHx/Wand5HEU4QRO4RwCuIIa3EEdGsDgEZ7hFd487b14797HorXg5TPH8Efe5w+j+Y8oAAAB7XicbZBNSwMxEIZn61etX1WPXoJF8FR2RdBj0YvHCvYD2qVk07SNzSZLMiuUpf/BiwdFvPp/vPlvTNs9aOsLgYd3ZsjMGyVSWPT9b6+wtr6xuVXcLu3s7u0flA+PmlanhvEG01KbdkQtl0LxBgqUvJ0YTuNI8lY0vp3VW0/cWKHVA04SHsZ0qMRAMIrOanZxxJH2yhW/6s9FViHIoQK56r3yV7evWRpzhUxSazuBn2CYUYOCST4tdVPLE8rGdMg7DhWNuQ2z+bZTcuacPhlo455CMnd/T2Q0tnYSR64zpjiyy7WZ+V+tk+LgOsyESlLkii0+GqSSoCaz00lfGM5QThxQZoTblbARNZShC6jkQgiWT16F5kU1cHx/Wand5HEU4QRO4RwCuIIa3EEdGsDgEZ7hFd487b14797HorXg5TPH8Efe5w+j+Y8oAAAB7XicbZBNSwMxEIZn61etX1WPXoJF8FR2RdBj0YvHCvYD2qVk07SNzSZLMiuUpf/BiwdFvPp/vPlvTNs9aOsLgYd3ZsjMGyVSWPT9b6+wtr6xuVXcLu3s7u0flA+PmlanhvEG01KbdkQtl0LxBgqUvJ0YTuNI8lY0vp3VW0/cWKHVA04SHsZ0qMRAMIrOanZxxJH2yhW/6s9FViHIoQK56r3yV7evWRpzhUxSazuBn2CYUYOCST4tdVPLE8rGdMg7DhWNuQ2z+bZTcuacPhlo455CMnd/T2Q0tnYSR64zpjiyy7WZ+V+tk+LgOsyESlLkii0+GqSSoCaz00lfGM5QThxQZoTblbARNZShC6jkQgiWT16F5kU1cHx/Wand5HEU4QRO4RwCuIIa3EEdGsDgEZ7hFd487b14797HorXg5TPH8Efe5w+j+Y8o

  • 73

    Generalized Hough

    Finding a becher …

    … or a lake.

  • 74

    Generalized Hough

    • We want to find a shape defined by its boundary points in terms of the location of a reference point [xc,yc]. • For every boundary point p, we can compute the displacement vector r = [xc,yc] – p as a function of local gradient orientation f.

    pr(f)

    [xc,yc]

    f

    Ballard. , PR’81

  • 75

    R-Table

    • Set of potential displacement vectors r,a given the boundary orientation f.

    --> Generalized template matching.

  • 76

    Algorithm

    1. Make an R-table for the shape to be located.

    2. Form an accumulator array of possible reference points initialized to zero.

    3. For each edge point,

    • Compute the possible centers, that is, for each table entry, compute

    • Increment the accumulator array

  • 77

    Real-Time Hough

  • 78

    Accumulator

  • 79

    From Delineation To Detection

    Leibe & al. , ECCV’04

    Training image

    Visual codeword with displacement vectors

    Instead of indexing displacements by gradient orientation, index by “visual codeword”.

    K.Grauman

  • 80

    From Delineation To Detection

    Leibe & al. , ECCV’04

    Instead of indexing displacements by gradient orientation, index by “visual codeword”.

    Test image

    K.Grauman

  • 81

    Training

    1. Build codebook of patches around extracted interest points using clustering.

    2. Map the patch around each interest point to closest codebook entry. 3. For each codebook entry, store all positions it was found, relative to

    object center.

    --> Build an R table.

  • 82

    Testing

    1. Given test image, extract patches, match to codebook entry. 2. Cast votes for possible positions of object center. 3. Search for maxima in voting space. 4. Extract weighted segmentation mask based on stored

    masks for the codebook occurrences.

  • 83

    Pedestrian Detection

    Gall & al. , PAMI’11

  • 84

    Occlusion Handling

  • 85

    Limitations

    Computational cost grows exponentially with the number of model parameters:

    !Only works for objects whose shape can be defined by a small number of parameters.

    !Approach is robust but lacks flexibility.

  • 86

    Techniques

    Semi-Automated Techniques:

    • Dynamic programming • Deformable Models

    Fully Automated Techniques:

    • Hough transform • Graph Based Approaches

  • 87

    Magnitude and Orientation

  • 88

    Minimum Spanning Tree

    Image modeled as a graph:

    -> Generate minimal distance graph O(N log(N) algorithm)

  • 89

    Delineation 1998

    Fischler & Heller, 1998.

    Detect road centerlines

    Find generic paths

    Apply semantic filter

    Find road widths

  • 90

    From Image To Roads

  • 91

    Road Editing

  • 92

    Dendrites And Axons

    Fluorescent neurons in the adult mouse brain imaged imaged in vivo through a cranial window using a 2-photon microscope.

  • 93

    Delineation 2012: Neurites …

  • 94

    .. and Roads

    Turetken et al, CVPR’12.

    —> Machine plays a crucial role to ensure that the same algorithm works in different situations.

  • 95

    Histogram of Gradient Deviations

    —> One histogram per radius interval plus four geometric features (curvature, tortuosity, .…). 

  • 96

    Embedding

    —> Same length feature vectors whatever the actual length of the path.

  • 97

    Path Classification

  • 98

    Finding the Best Tree

  • 99

    QMIP Formulation

  • 100

    Roads

  • 101

    Brainbow Images

  • 102

    Blood Vessels

  • 103

    Deep Tsunami

  • 104

    Reminder: AlexNet (2012)

    Task: Image classification Training images: Large Scale Visual Recognition Challenge 2010 Training time: 2 weeks on 2 GPUs

    Major Breakthrough: Training large networks has now been shown to be practical!!

  • 105

    Delineation 2011

    Turetken et al, CVPR’12.

    These two steps are closely related!

  • 106

    Reminder: U-NetImage Tubularity Map

    Downsampling Upsampling

    —> Train a U-Net to output a tubularity map.

    Skip connection

    Skip connection

  • 107

    Training U-Net

    Mosinska et al, CVPR’18.

    Train Encoder-decoder U-Net architecture using binary cross-entropy

    Minimize

    Lbce(x,y;w) = �1

    i

    PX

    1

    [yn log(ŷi) + (1� yi) log(1� ŷi)]

    where

    • ŷ = fw(x),

    • x in an input image,

    • y the corresponding ground truth.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

    i

  • 108

    Network Output

    BCELoss GroundtruthImage

  • 109

    Accounting For Topology

    !ℒ#$%

    ℒ&'(Minimize

    L(x,y;w) = Lbce(x,y;w) + Ltop(x,y;w) ,

    Ltop(x,y;w) /NX

    n=1

    MnX

    m=1

    klmn (y)� lmn (f(x,w))k22 ,

    Ltop: Sum of square di↵erences between feature maps in a pretrained VGG.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

  • 110

    BCELoss BCEandTopoLoss GroundtruthImage

    Accounting for Topology

  • 111

    Iterative Refinement

    Use the same network to progressively refine the results keeping the number of parameters constant

    1 2 3

    Image Iter1 Iter2 Iter3 Groundtruth

  • 112

    Delineation Steps

    1.Compute a probability map.

    2. Sample and connect the samples.

    3. Assign a weight to the paths.

    4. Retain the best paths.

  • 113

    Delineation 2019These two steps are performed by the same network

    Mosinska et al, PAMI’19.

  • 114

    Dual Use U-Net

    Tubularity Map

    Path score

    Image and

    Binary Mask

  • 115

    Streets Of Toronto

    — False negatives — False positives

  • 116

    Dendrites And Axons

  • 117

    On the Job

    The new job is good, we do of course a lot of Deep Learning, but also some good old-school computer vision e.g. registration 😉 So the material from Computer Vision class is definitely helpful and I wouldn't  change it to another all-Deep Learning class (even in the light of today's Turing Award).

    Best,

    Agata

  • 118

    1998 - 2038

    ?It is difficult to make predictions, especially about the future.

    Sometimes attributed to Niels Bohr.

    1998

    !ℒ#$%

    ℒ&'(

    2018 2038

  • 119

    In Short

    • Edge and image information is noisy.

    • Models are required to make sense of it.

    ! An appropriate combination of graph-based techniques, machine learning, and semi-automated tools is required.

  • 120

    Alpha Go Analogy

    • Uses Deep Nets to find the most promising locations to focus on.

    • Performs Tree based search when possible.

    • Relies on reinforcement learning and other ML techniques to train.

    —> Beat the world champion in 2017.

    Low-level processing

    High-level processing