Uitleg van de Hough transformatie

Vergelijkbare documenten
Deel 2. Basiskennis wiskunde

Dualiteit. Raymond van Bommel. 6 april 2010

Zomercursus Wiskunde. Module 7 Poolcoördinaten (versie 22 augustus 2011)

1 Inleiding. Zomercursus Wiskunde. Poolcoördinaten (versie 27 juni 2008) Katholieke Universiteit Leuven Groep Wetenschap & Technologie.

Oefening 1. Welke van de volgende functies is injectief? (E) f : N N N : (n, m) 7 2m+n. m n. Oefening 2

2 Kromming van een geparametriseerde kromme in het vlak. Veronderstel dat een kromme in het vlak gegeven is door een parametervoorstelling

Appendix Inversie bekeken vanuit een complex standpunt

VISUALISATIE VAN KROMMEN EN OPPERVLAKKEN. 1. Inleiding

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

II. ZELFGEDEFINIEERDE FUNCTIES

Domein A: Inzicht en handelen

Tussendoelen wiskunde onderbouw vo vmbo

5. Vergelijkingen Vergelijkingen met één variabele Oplossen van een lineaire vergelijking

1 Continuïteit en differentieerbaarheid.

TRILLINGEN EN GOLVEN HANDOUT FOURIER

Wiskunde voor relativiteitstheorie

2 Kromming van een geparametriseerde kromme in het vlak

Wiskunde voor relativiteitstheorie

V Kegelsneden en Kwadratische Vormen in R. IV.0 Inleiding

IJkingstoets burgerlijk ingenieur juni 2014: algemene feedback

Transformaties van grafieken HAVO wiskunde B deel 2. Willem van Ravenstein Haags Montessori Lyceum (c) 2016

1 Vlaamse Wiskunde Olympiade : Eerste ronde.

Examen Complexe Analyse (September 2008)

Examen Wiskundige Basistechniek 15 oktober 2011

IJkingstoets Wiskunde-Informatica-Fysica 29 juni Nummer vragenreeks: 1

0. voorkennis. Periodieke verbanden. Bijzonder rechthoekige driehoeken en goniometrische verhoudingen

1 Vlaamse Wiskunde Olympiade : Eerste Ronde.

1 Rekenen in eindige precisie

P is nu het punt waarvan de x-coördinaat gelijk is aan die van het punt X en waarvan de y-coördinaat gelijk is aan AB (inclusief het teken).

Inwendig product, lengte en orthogonaliteit in R n

Examen VWO. wiskunde B (pilot) tijdvak 1 woensdag 18 mei uur

1 Vlaamse Wiskunde Olympiade : Tweede ronde.

2 Modulus en argument

Analyse 1 Handout limieten en continuïteit

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN

Les 1 Kwadraat afsplitsen en Verzamelingen

Wiskunde voor relativiteitstheorie

(b) Formuleer het verband tussen f en U(P, f), en tussen f en L(P, f). Bewijs de eerste. (c) Geef de definitie van Riemann integreerbaarheid van f.

IJkingstoets burgerlijk ingenieur juni 2014: algemene feedback

Examen HAVO. Wiskunde B1,2 (nieuwe stijl)

Examen HAVO. wiskunde B (pilot) tijdvak 2 donderdag 18 juni uur. Bij dit examen hoort een uitwerkbijlage.

Oefenzitting 2: Parametrisaties.

Huiswerk Hints&Tips Analyse 2, College 26

Basiskennis lineaire algebra

1 Vlaamse Wiskunde Olympiade : tweede ronde

(iii) Enkel deze bundel afgeven; geen bladen toevoegen, deze worden toch niet gelezen!

Hoofdstuk 1 LIJNEN IN. Klas 5N Wiskunde 6 perioden

Examen HAVO. wiskunde B (pilot) tijdvak 1 woensdag 20 mei uur

1 Vlaamse Wiskunde Olympiade : eerste ronde

10 Meer over functies

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

1 Vlaamse Wiskunde Olympiade : Eerste Ronde.

De beeldpunten P en P van gelijke hoeken vallen samen. y 1 P=P' cos α

5 Eenvoudige complexe functies

META-kaart vwo3 - domein Getallen en variabelen

Overzicht Fourier-theorie

Dossier 4 VECTOREN. Dr. Luc Gheysens. bouwstenen van de lineaire algebra

Aanvulling bij de cursus Calculus 1. Complexe getallen

Correctievoorschrift HAVO. Wiskunde B1,2 (nieuwe stijl)

Lineaire algebra I (wiskundigen)

Steeds betere benadering voor het getal π

Achter het correctievoorschrift is een aanvulling op het correctievoorschrift opgenomen.

Korte handleiding Maple bij de cursus Meetkunde voor B

Vectorruimten en deelruimten

Combinatoriek groep 1 & 2: Recursie

3. Structuren in de taal

Examen HAVO. wiskunde B (pilot) tijdvak 2 woensdag 22 juni uur

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Hoofdstuk 3. Equivalentierelaties. 3.1 Modulo Rekenen

IJkingstoets Wiskunde-Informatica-Fysica september 2018: algemene feedback

Ijkingstoets industrieel ingenieur aangeboden door UGent en VUB op 30 juni 2014: algemene feedback

Wiskundige Technieken 1 Uitwerkingen Hertentamen 23 december 2014

III.2 De ordening op R en ongelijkheden

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

3. Geïtereerde functiesystemen

Complexe eigenwaarden

Toepassingen in de natuurkunde: snelheden, versnellingen, krachten.

Opgave 3 - Uitwerking

Inleiding Analyse 2009

De wortel uit min één, Cardano, Kepler en Newton

Inhoud college 4 Basiswiskunde. 2.6 Hogere afgeleiden 2.8 Middelwaardestelling 2.9 Impliciet differentiëren 4.9 Linearisatie

I.3 Functies. I.3.2 Voorbeeld. De afbeeldingen f: R R, x x 2 en g: R R, x x 2 zijn dus gelijk, ook al zijn ze gegeven door verschillende formules.

Enkele bedenkingen bij het examen Complexe Analyse

13 Vlaamse Wiskunde Olympiade : Tweede ronde.

9.1 Vergelijkingen van lijnen[1]

Examen HAVO. wiskunde B. tijdvak 2 woensdag 22 juni uur. Bij dit examen hoort een uitwerkbijlage.

1 Inleiding in Functioneel Programmeren

Driehoeksongelijkheid en Ravi (groep 1)

Examen VWO. wiskunde B1,2. tijdvak 2 woensdag 18 juni uur. Bij dit examen hoort een uitwerkbijlage.

Correctievoorschrift VWO

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Transcriptie:

Uitleg van de Hough transformatie Maarten M. Fokkinga, Joeri van Ruth Database groep, Fac. EWI, Universiteit Twente Versie van 17 mei 2005, 10:59 De Hough transformatie is een wiskundige techniek om een stel figuren van gegeven vorm te vinden waarvan iedere figuur bij benadering gaat door veel gegeven punten. Wij zetten hier ons begrip van de techniek uiteen op een manier die verschilt van alles wat we op Internet hebben kunnen vinden. Terminologie. We vatten een geometrische figuur op als een verzameling van punten. Dus voor een punt p en figuur F formuleren we p ligt op F en F gaat door p door p F, respectievelijk F p. In beide gevallen zeggen we dat p en F incident zijn. Abstracte algoritme. De taak is om bij gegeven punten p 1,..., p m een stel figuren van gegeven vorm te vinden waarvan ieder incident is met veel p i. We zeggen hier veel en niet alle, omdat we er van uit gaan dat er ruis is: punten die er toevallig zijn maar niet tot de te herkennen figuren behoren. De figuren worden gevonden door het volgende, triviale en voor de hand liggende, algoritme: Beschouw alle mogelijke figuren van de gezochte vorm [die incident zijn met tenminste één gegeven punt]. (Het voorgaande deel tussen haken is een optimalisatie die geen invloed heeft op de komende redenering of correctheid daarvan.) Ken aan iedere figuur een getal toe: het aantal van de gegeven punten waarmee de figuur incident is. Lever dan op: de figuren waaraan een groot getal is toegekend. Het resultaat is een stel figuren waarvan ieder incident is met veel van de gegeven punten. Het probleem is nu om een handige representatie te vinden om de figuren zelf en de toewijzing van getallen aan figuren te berekenen en op te slaan. Hiervoor gebruiken we de techniek van parametervoorstelling van een figuur. Parametervoorstelling. Vaak kan een geometrische figuur F gerepresenteerd worden door een numerieke parameter q tezamen met een relatie R die de punten p waaruit de figuur is opgebouwd relateert aan de parameter: F (q) = {p p R q} Definieer nu de duale figuurvorm door de p vast te nemen en de q te laten variëren: G(p) = {q p R q} 1

De volgende dualiteitseigenschap is een onmiddellijk gevolg van deze definitie: (1) p F (q) G(p) q Dualiteit Door deze eigenschap kunnen bewerkingen in termen van gegeven punten p en gezochte figuren F (q) uitgedrukt worden in gegeven figuren G(p) en gezochte punten q wat een stuk makkelijker is. De duale definitie van G, en het uitbuiten van de dualiteit, is de gepatenteerde truc van Hough [1]. Voorbeelden. Voor een rechte lijn F op afstand r van de oorsprong en met hoek θ met de x-as geldt het volgende: F = F (r, θ) = {(x, y) r = x cos θ + y sin θ}, dus G = G(x, y) = {(r, θ) r = x cos θ + y sin θ} In het platte vlak met een r-as en een θ-as ziet G(x, y) er uit als een sinusoïde. Op grond van de dualiteit is voor een sinusoïde de duale een rechte lijn! Voor een cirkel F met straal r en middelpunt (a, b) geldt: F = F (r, a, b) = { (x, y) (x a) 2 + (y b) 2 = r 2 }, dus G = G(x, y) = {(r, a, b) (x a) 2 + (y b) 2 = r 2 } In een a, b, r-ruimte ziet G(x, y) er uit als een kegel met z n punt in a, b, r = x, y, 0. Let op: de figuurruimte is tweedimensionaal met assen voor x, y maar de duale ruimte is driedimensionaal met assen voor r, a, b. Ingewikkelder figuren (denk aan driehoeken, vierkanten, cilinders) zijn vaak opgebouwd uit rechte lijnen en cirkels, en eenvoudiger figuren waarvoor een parametervoorstelling bekend is. Einde van de voorbeelden. We nemen in het vervolg steeds stilzwijgend aan dat q varieert over het parameterdomein dat hoort bij het eigenlijke domein voor p; en omgekeerd. Concreet algoritme. Door de dualiteit (1) zijn de punten van G(p) precies de parameterwaarden van de figuren incident met p, en kunnen we de parameterwaarden van alle figuren incident met p opsommen door de punten van figuur G(p) af te lopen. Hiermee is het eerste deel van het algoritme effectief uitvoerbaar. Beschouw nu het tweede deel van het algoritme: ken aan iedere figuur F (q), gerepresenteerd door parameter q, een getal toe. Die getallen slaan we op in een array A geïndiceerd met q-waarden. Het getal dat aan F (q), of te wel aan A[q], toegekend wordt is het aantal van de gegeven punten waarmee de figuur incident is. Dus iedere gegeven p i die incident is met F (q), draagt één bij aan dat aantal voor q. Vanwege de dualiteit (1) is dit het zelfde als: iedere gegeven p i waarvoor G(p i ) incident is met q, draagt één bij aan dat aantal voor q. Dit realiseren we door elke G(p i ) te doorlopen en voor elk punt q dat we daarbij tegenkomen, A[q] één op te hogen. Het array moet op 0 geïnitialiseerd worden, overeenkomend met het feit dat nog voor geen enkele figuur iets geteld is. Daarmee hebben we de volgende effectief uitvoerbare vorm van het algoritme gevonden: 2

Neem een array A met als indices de parameterwaarden van de figuren, overal geïnitialiseerd op 0. Voor iedere p i : doorloop G(p i ) en voor elk punt q dat bezocht wordt, hoog A[q] één op. Voor iedere q met een grote waarde A[q]: lever q op, dat wil zeggen F (q). Het resultaat is een stel figuren waarvan ieder incident is met veel van de gegeven punten. Formalisering. Wat we hier boven in woorden gezegd hebben, kunnen we gemakkelijk in formules weergeven. Het abstracte algoritme luidt als volgt: let F = {F ( i p i F )}; A = (λ F : F #{i p i F }) {F : F A[F ] is big} Het deel ( i p i F ) in de definitie van F is de al opgemerkte optimalisatie, en kan desgewenst geschrapt worden. De definitie van A is de toekenning aan een figuur van het aantal gegeven punten dat incident is met de figuur. Het laatste deel is de opgeleverde verzameling figuren waaraan een groot getal is toegekend. We representeren nu een figuur F = F q door z n parameterwaarde q, en krijgen dan: let Q = {q ( i p i F q)}; A = (λ q : Q #{i p i F q}) {q : Q A[q] is big} Verzameling Q is het domein van A (nodig om de juiste declaratie van A te geven); deze ligt vast met de keuze van de parametervoorstelling voor de figuren, en de bepaling gebeurt dus éénmalig vooraf, en werken we niet verder uit. Ook het opleveren van de alle q s met grote A[q] waarde behoeft geen verdere uitwerking. Blijft over: de definitie van A. Toepassen van de dualiteit daarop levert: A = (λ q : Q #{i G p i q}) Deze gelijkheid kan gerealiseerd worden door het volgende programma: for q : Q do A[q] := 0 end; for i do for q G p i do A[q] := A[q]+1 end end; Merk op dat de nesting van i binnen q (in A = λ q #{i...) nu omgekeerd is (namelijk for i do for q do A[q] :=...). Dit is essentieel voor de praktische efficiëntie. Om over te slaan! Een formele afleiding van de definitie van A naar het imperatieve programma is natuurlijk ook mogelijk, maar staat geheel los van de Hough transformatie. Voor de liefhebber geven we het hier toch; anderen kunnen het overslaan. Merk op dat de verzameling { P i} leeg is als P niet geldt, en de singleton verzameling {i} anders. We gebruiken + en voor optelling van getallen, en + en als puntsgewijze optelling van getalwaardige functies. Hier is de afleiding: A = (λ q : Q #{i G p i q}) A = (λ q : Q #{i G pi q i}) A = (λ q : Q #{ G pi q i}) i A = (λ q : Q #{ G pi q i}) i A := (λ q : Q 0); for i do A := A + (λ q : Q #{ G p i q i}) for q : Q do A[q] := 0 end; for i do for q : Q do A[q] := A[q] + #{ G pi q i} end end; for q : Q do A[q] := 0 end; for i do for q : Q do A[q] := A[q] + (if G pi q then 1 else 0) end end; for q : Q do A[q] := 0 end; for i do for q : Q do (if G pi q then A[q] := A[q] + 1) end end; for q : Q do A[q] := 0 end; for i do for q G pi do A[q] := A[q] + 1 end end; 3

Met benaderingen. Waarden die in de praktijk verkregen zijn, zijn vaak onnauwkeurig. Dus de échte taak is om figuren te vinden waarvan ieder bij benadering incident is met veel gegeven punten p i. Daarom voeren we het begrip ε-incidentie in (genoteerd met ε ): p ε F p is minder dan ε verwijderd van F We gaan verder niet in op de manier waarop afstanden gedefinieerd zijn. Beschouw nu de volgende versterking van de dualiteit (ik weet niet of een zwakkere versterking ook voldoende is): Bij iedere ε is er een δ zodanig dat: (2) p ε F (q) G(p) δ q ε, δ-dualiteit Wanneer deze versterking geldt, kunnen we het abstracte algoritme aanpassen door incidentie te vervangen door ε-incidentie. Omwille van de efficiëntie partitioneren we de verzameling van figuren in klassen van figuren die onderling weinig van elkaar verschillen, en beschouwen we niet alle figuren maar slechts één figuur per klasse. Op grond van de ε, δ-dualiteit (2) definieren we dat figuren weinig van elkaar verschillen wanneer hun parameterwaarden hooguit δ verschillen. Het abstracte algoritme luidt dan als volgt: Beschouw alle figuurklassen waarvan de representant ε-incident is met tenminste één gegeven punt. Ken aan iedere figuurklasse een getal toe: het aantal van de gegeven punten waarmee de representantfiguur ε-incident is. Lever dan op: (representanten van) de klassen waaraan een groot getal is toegekend. Geconcretiseerd met behulp van de ε, δ-dualiteit levert dit de volgende concrete vorm: Partitioneer de parameterwaarden van de figuren in klassen waarvan in iedere klasse de onderlinge verschillen hooguit δ zijn. Laat q 1,..., q n representanten zijn van de klassen. Neem een array A met als indices q 1,..., q n, overal geïnitialiseerd op 0. Voor iedere p i : doorloop G(p i ) en voor elk punt q j dat bezocht wordt op een afstand van hooguit δ, hoog A[q j ] één op. Voor iedere q j met een grote waarde A[q j ]: lever q j op, dat wil zeggen, F (q j ). Het resultaat is een stel figuren waarvan elk ε-incident is met veel gegeven punten. Interactieve illustratie. De dualiteit wordt voor het geval van rechte lijnen zéér leerzaam geïllustreerd door de java applet http://www.vision.ee.ethz.ch/~jhug/moseiadarola/ Hough6.html (bezocht op 6 april 2005, en de code is inmiddels ook bij MMF verkrijgbaar). Illustraties van rechte lijnen en daaruit opgebouwde figuren, en hun dualen, staan op http://www.cs.iastate.edu/~baojie/acad/past/imageprocessing/hough.htm: 4

De wereld van pnt p, en fig F (q) de wereld van fig G(p), en pnt q: p F (q) G(p) q lijn F (q) door gegeven punt p punt q op gegeven sinusoïde G(p); iedere q op de sinusoïde repr t een lijn door p p 1 en p 2 op één lijn F (q) G(p 1 ) en G(p 2 ) door één punt q. elk paar punten ligt op één lijn elk paar sinusoïden gaan door één punt. vele punten op één lijn vele sinusoïden door één punt. ontbrekende punten vallen niet op ontbrekende sinusoïden vallen niet op. een extra punt niet op de lijn een extra sinusoïde niet door het punt. (heel veel punten op) twee lijnen (heel veel sinusoïden door) twee punten. 5

(heel veel punten op) vier lijnen (heel veel sinusoïden door) vier punten. (heel veel punten op) vier lijnen (heel veel sinusoïden door) vier punten. extra punten niet op de lijnen extra sinusoïden niet door de punten. (heel veel punten op) vier lijnen (heel veel sinusoïden door) vier punten. extra punten niet op de lijnen extra sinusoïden niet door de punten. ontbrekende punten vallen niet op ontbrekende sinusoïden vallen niet op dwz 4 lijnen goed te herkennen dwz 4 punten goed te herkennen. Referenties [1] P.V.C. Hough. Method and means for recognizing complex patterns. U.S. Patent 3,069,654, December 18, 1962. 6