De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Presentatie titel Rotterdam, 00 januari 2007 Computer Vision Technische Informatica www.hogeschool-rotterdam.nl/cmi.

Verwante presentaties


Presentatie over: "Presentatie titel Rotterdam, 00 januari 2007 Computer Vision Technische Informatica www.hogeschool-rotterdam.nl/cmi."— Transcript van de presentatie:

1

2 Presentatie titel Rotterdam, 00 januari 2007 Computer Vision Technische Informatica

3 # Les 7 Hoofdstukken 2.8 Segmentatie

4 # Segmentatie Voor veel beeldverwerkende taken moeten exact bepaalde gebieden van een beeld geselecteerd worden ( voor classificatie) Mensen kunnen dit perfect en snel, alleen bij camouflage is dit lastiger Machine vision is nog niet zover Er is geen alles omvattende oplossing Er zijn wel aanvaarde methoden die gebruikt worden Segmentatie vindt plaats op basis van de evaluatie van 1 of meer handelingen.

5 # Segmentatie Hieronder valt: intensiteit, kleuren,randen, beweging en diepteinformatie Alleen 2D beelden worden behandeld

6 # Segmentatie met niveau Om relevante delen te scheiden van de achtergrond gebruikt men de intensiteit van een grijswaarde beeld Men moet een homogene zwarte achtergrond kiezen Hiermee moeten alle delen van het beeld dat een hogere intensiteit heeft dan zwart tot een object behoren Om de voorgronddelen te te bepalen is een niveau operatie nodig Men spreekt van binarisatie, het resultaat is een zwart en een wit beeld

7 # Segmentatie met niveau Gegeven een grijswaarde beeld I en een van te voren gedefinieerd niveau t є {0,…,q} Een binair beeld I’ van hetzelfde beeld kan bepaald worden met algoritme 21 Pixels met intensiteit I’(u,v)=0 zijn achtergrond Pixels met intensiteit I’(u,v)=q zijn voorgrond Een voorbeeld is fig. 2.30

8 # Segmentatie met niveau Als je de donkere delen als segment wil hebben,moet je het beeld inverteren Algoritme 22 wordt hiervoor gebruikt

9 # Segmentatie met niveau De keuze van niveau t kan met de hand gedaan worden met schuifregelaars Of bij variable lichtcondities, automatisch met histogram analyse Een robuste methode is met kwantielen Net als bij het uitrekken van histogrammen zijn de 0,1 en 0,9 kwantiel geschikt voor automatische detectie van niveau

10 # Segmentatie met niveau Algoritme 23 geeft de procedure voor automatische detectie van niveau Dit geld voor beelden met bimodale histogrammen ( histogram met 2 toppen) Het niveau t is het gemiddelde van max en min

11 # Segmentatie met niveau Een effectievere methode om een grijswaarde beeld om te zetten naar een binair beeld is om voor ieder pixel een apart niveau te bepalen De algoritmen van Niblack en Sauvola worden gebruikt voor preprocessing van beelden voor OCR Beide algoritmen zijn rekenintensief Versnellen kan door de gemiddelde waarde en de variantie in 1 keer te bepalen Ook door met opteltabellen te werken

12 # Segmentatie met niveau Niveau bepalen met Niblack Niveau bepalen met Sauvola Hierin is Tres(u,v): Lokaal niveau voor de grijswaarde op positie (u,v) W: window-grootte w x w: afhankelijk van het ingevoerde beeld 15x15… 45x45 pixels M w (u,v): Lokale gemiddelde waarde binnen het window w

13 # Segmentatie met niveau V w (u,v): Lokale variantie binnen het window w S w (u,v): Lokale standaard deviatie binnen het window w (Standaard deviatie = Wortel uit de variantie)

14 # Segmentatie met niveau k: Constante; bij Niblack waarden van [-1,0, -0,4] bij Sauvola waarden van ongeveer 0,5 R: Dynamisch bereik van de standaard deviatie. Constante, gekozen 128. Soms wordt berekend R=max(S w i (x,y)) van alle windows w i en geeft betere resultaten

15 # Segmentatie met kleuren Bij kleuren beelden kan kleur en intensiteit gebruikt worden Een aantal benaderingen Kleurenmodel Klassificatie Een overzicht voor methoden in: 02a.pdf 02a.pdf De eenvoudigste benadering gaat uit van definiëren van vaste grenzen voor de individuele kanalen van een HSV beeld

16 # Segmentatie met kleuren Dit gaat niet bij RGB, omdat de verhouding van de kanalen verschillend zijn voor een kleur Bij RGB kunnen de verhoudingen niet worden uitgedrukt in eenvoudige intervallen voor het rode,groene en blauwe kanaal In het HSV model is de actuele kleur gescheiden van de verzadiging en de helderheid Daarom kunnen de intervallen wel gedefi- nieerd worden bij individuele kanalen

17 # Segmentatie met kleuren Het H kanaal bevat kleuren-hoeken van en vormen een cirkel Daarom moeten 2 mogelijkheden worden bekeken in fig 2.32 In algoritme 24 is dit verschil aangegeven Het ingangsbeeld I is een HSV beeld van 24 bit en het uitgangsbeeld I’ is een grijswaarde beeld

18 # Segmentatie met kleuren Een voorbeeld is gegeven in fig 2.33 Segmentatie met niveau kan hier niet, omdat de achtergrond zowel witte als zwarte gebieden bevat

19 # Segmentatie met kleuren

20 # Een ander mogelijkheid is gebaseerd op de dichtheidsfunctie van de m-dimensionale Gauss verdeling met verwachtingsvextor μ en de covariantiematrix C: Deze kan ook gebruikt worden voor het speciale geval m=3,voor rood groen en blauw En een traingsverzameling van n pixels {x i } met i є {1,…,n} Deze wordt handmatig geklassificeerd als te behoren tot de kleur die gesegmenteerd moet worden

21 # Segmentatie met kleuren De verwachtingsvector μ is in dit geval het rekenkundig gemiddelde van de trainingsverzameling x ̅ De covariantiematrix wordt berekend met: In de praktijk wordt de factor voor de exponentiële functie weggelaten

22 # Segmentatie met kleuren In plaats daarvan wordt f + (x) vergeleken met een drempel voor classifactie. In f + (x) komt die factor impliciet voor De functie f + (x) voor de kleurenkans van een pixel x is gebaseerd op de “afstand van Mahalanobis” en luidt als volgt: Als de kleurenverdeling van de achtergrond constant blijft kan ook een trainings- verzameling worden vastgesteld voor de achtergrond

23 # Segmentatie met kleuren Er zijn dan 2 kansfuncties nodig: f + (x) voor de voorgrond kleurenkans f - (x) voor de achtergrond kleurenkans Een pixel x behoort tot de kleur, als het quotient van kleurkans en achtergrond kans groter is dan een drempel t De berekening voor een RGB24 kleuren beeld I is in algoritme 25 gegeven. De uitvoer is een binair beeld I’ Als er geen trainingsverzameling is voor de achtergrond wordt f - (x)=1

24 # Segmentatie met kleuren De procedure voor het trainen van een kleurenmodel voor een gegeven trainingsverzameling {x i } met i є {1,…,n} is in algoritme 26 gegeven

25 # Segmentatie met kleuren

26 # Een derde mogelijkheid voor kleuren segmentatie is gebaseerd op 2D kleuren histograms (met HSV model) Het voorbeeld van fig 2.17 voor de huidskleur wordt gebruikt Net als bij de Gauss verdeling wordt hier 2 histogrammen berekend: H + voor de classifatie van de voorgrond kleur van het kleurenmodel H - voor de classifatie van de achtergrond kleur van het kleurenmodel

27 # Segmentatie met kleuren Deze 2 histogrammen worden berekend voor de trainingsverzamelingen met algoritme 10

28 # Segmentatie met kleuren De enige wijziging is dat een de invoer een trainingsverzameling {x i } i є {i,….,n) is Deze pixels werden gemarkeerd in 1 of meer getrainde figuren De classificatie van een pixel met waarde (h,s,v) wordt tenslotte bepaald door de verhouding van H + (h,s) en H - (h,s) met de drempel t te vergelijken De berekening is in algoritme 27 gegeven

29 # Segmentatie met kleuren Er kan worden afgeleid dat voor de schatting van de drempel t de volgende formule kan worden gebruikt ( Bayes theorema) Hier is P(color) de kans van optreden van de kleur die geclassificeerd moet worden

30 # Segmentatie met kleuren Deze wordt bepaald uit de verhouding van de grootte van voorgrond en achtergrond oppervlakten van die kleur De waarden n+ en n- zijn het aantal pixels in de trainingsverzameling van voor – en achtergrond

31 # Segmentatie met gebieden Met de region growing algoritme worden gebieden die dezelfde grijswaarden of kleur hebben bepaald Op basis van 1 zaadje ( 1 pixel) die met de hand of automatisch bepaald kan worden, wordt de omgeving afgezocht Hierbij worden 4 buren bekeken Zijn ze gelijk dan worden ze aan de data structuur toegevoegd, enz. Om te voorkomen dat bezochte punten opnieuw bezocht worden, worden bezochte punten gemarkeerd

32 # Segmentatie met gebieden Op die manier eindigt het algoritme altijd Algoritme 28 geeft de pseudo code Een speciaal geval van een binair grijswaarde beeld wordt aangenomen. De achtergrond heeft waarde 0 De voorgrond heeft waarde q Een stack {s i } wordt gebruikt om bezochte pixels in op te slaan ( het adres van I(u,v)) De variable p is de lopende grootte van de stack

33 # Segmentatie met gebieden

34 # Om het controleren op beeldranden te voorkomen wordt verondersteld dat de rand 1 pixel breed is met de waarde 0 (zwart) Dit wordt gedaan in algoritme 30 ( de routine DrawBlackFrame) In algoritme 29 worden de eigenschappen van een gebied berekend: Het omhullende gebied heeft een maximum en een minimum u- en v-coordinaten en het centrum van het gebied c u en c v

35 # Segmentatie met gebieden

36 # Om alle verbonden gebieden te bepalen wordt het gehele beeld doorzocht Voor ieder pixel met grijswaarde q wordt het groeigebied doorzocht Het beeld wordt gekopieerd en alreeds bezochte pixels worden gemarkeerd met een waarde ongelijk aan q Hiermee wordt gegarandeerd dat niet bezochte pixels als zaad dienen Algoritme 30 geeft de berekenihg om alle gebieden te onderzoeken

37 # Segmentatie met gebieden

38 # Segmentatie van structuren Met edge (rand)filters kunnen contouren bepaald worden Een bijzonder geval is om rechte lijnen en cirkels te ontdekken nadat de contouren zijn bepaald ( verkeersborden) Hiervoor worden Hough transformaties gebruikt Die zijn gebaseerd op het idee dat de 2D coördinaten (u,v) van een beeld getransformeerd worden in de parameter- ruimte van de structuur die ontdekt moet worden

39 # Segmentatie van structuren De parameterruimte noemt men Hough ruimte In het algemeen correspondeert 1 punt in de coördinatenruimte met een oneindig aantal punten in de Houghruimte De eerste benadering werkt voor rechte lijnen. De vergelijking van een lijn: v=m.u +c Hierin is m de helling en c is de snijlijn met de y-as m en c zijn parameters De uitwerking is in de volgende sheets

40 # Segmentatie van structuren

41 #

42 #

43 #

44 #

45 #

46 #

47 #

48 #

49 #

50 # Een verdere uitleg vindt u in lec09_hough.pdflec09_hough.pdf In algoritme 31 is de Hough-transformatie voor rechte lijnen gegeven Invoer is een grijswaarde invoerbeeld I met breedte w en hoogte h en ieder pixel met waarde q is een potentiële randpixel De uitvoer van het algoritme is de 2- dimensionale Hough-ruimte De variabele a geeft het aantal discretisaties van de hoek θ є [0,π) De variabele het aantal discretisaties van r met een resolutie van 1 pixel

51 # Segmentatie van structuren

52 # Hier is de grootst mogelijke positieve waarde van r,die de maximale afstand van een punt tot de oorsprong is De factor 2 en de optelling van 1 is noodzakelijk omdat r є {-n,…,+n} Een hoekresolutie van 1 0 komt overeen met a=180 De Floor-functie[x] berekent het grootste getal ≤ x en is een hogere programmeertaal de cast van floating point naar integer In fig 2.34 is gegeven hoe een binair beeld verkregen wordt

53 # Segmentatie van structuren In fig 2.35 zijn de lijnen berekend met Hough- transformatie

54 # Segmentatie van structuren De Hough-transformatie voor een cirkel kost meer rekentijd omdat een cirkel 3 parameters heeft

55 # Segmentatie van structuren Deze parameters zijn: het centrum (u m,v m ) en de straal r De vergelijkingen voor de cirkel zijn: Vanwege de symmetrie is θ є [0,π) voldoende. Een kleine verandering geeft: In algoritme 32 wordt de Hough-transformatie voor cirkels gegeven

56 # Segmentatie van structuren

57 # In fig 2.37 is gegeven hoe een binair beeld verkregen wordt

58 # Segmentatie van structuren In fig 2.38 zijn de cirkels berekend met Hough-transformatie


Download ppt "Presentatie titel Rotterdam, 00 januari 2007 Computer Vision Technische Informatica www.hogeschool-rotterdam.nl/cmi."

Verwante presentaties


Ads door Google