Verfolgung von farblich markierten Objekten Sascha Lange http
Verfolgung von farblich markierten Objekten Sascha Lange http: //cvtk. sourceforge. net
Gliederung 1. Bildanalyse – (Extrem) kurze, oberflächliche Einführung in die Bildanalyse 2. Computer Vision Tool Kit – Vorstellung meiner Bachelor Arbeit
Bildanalyse
Bildverarbeitung (Image Processing) Definitionen Bildanalyse (Image Analysis) n n n “Image processing is a collection of techniques for numerical operation on the pixel data. These include image enhancement for presentation to a human observer and the extraction of features for futher analysis. ” (Computer Vision Research – Introduction) n Gliederung: Bildbearbeitung und Bildanalyse “Generierung einer bedeutungsvollen Beschreibung eines in einem oder mehreren Bildern zu einem Zeitpunkt oder in einem Zeitraum dargestellten räumlichen Teils der näheren oder ferneren Umgebung mit Hilfe von Computern. ” (Verfasser unbekannt) Machine Vision / Computer Vision n “The use of devices for non-contact sensing to automatically receive and interpret an image of a real scene in order to obtain information and/or control machines or processes“ (SME) n Besonderes Gewicht auf dem Aspekt der Prozessüberwachung und / oder – kontrolle (ev. aber auch nur Überinterpretation) Von der Ikonische Darstellung zu symbolischen Beschreibungen
Anwendungen n Medizin – Tomographie, Radiologie, Gewebeschnitte n Industrielle Automatisierung – Qualitätskontrolle, Sortierung, Transport n Überwachung – Gebäudeüberwachung, Suchen in Menschenmengen n Vermessungswesen & Fernerkundung – Landvermessung, Satellitenbildauswertung, Radarbilder n Human Computer Interfaces – Gesture Recognition n Biometrie – Fingerabdrücke, Authentifizierung n Archivierung – Content Based Image Retrieval
“Arbeiten” in der Computer Vision n Keine klare, allgemeine Standardmethode Derzeit relativ unstrukturierte Sammlung von Verfahren Ø Ingenieurwissenschaftliche Herangehensweise: n – Auswahl geeigneter Verfahren zur Lösung einer speziellen Problemstellung n Aktuelle Schlagworte: – Active Vision: Aktive Kontrolle des Sichtfeldes – Exemplar-based vision
Klassische Bildverarbeitung (Einzelbild) Bilderfassung Bildverbesserung Modellfreie Segmentierung Modellgestütze Segmentierung Bildsymbolverarbeitung Symbolische Verarbeitung Haus Busch vor Haus Baum vor Haus
Zusammenfassung der klassischen Bildverarbeitung n n n Ausgangspunkt: Ikonische Bildrepräsentierung Ziel: Symbolische Bildbeschreibung Bildverbesserung Häufiges Zwischenziel: Regionenbild Objekterkennung
Anwendungen ohne bedeutungsvolle symbolische Beschreibung / Modell n Beispiel Biometrie – Direkter Vergleich von “Feature Points” n Beispiel Image Based Retrieval – Query by example (Farbe, Textur, Anordnung) http: //elib. cs. berkeley. edu/photos/blobworld/
Viele Wege führen nach Rom… n Auf dem Weg zum Regionenbild – Kantenbasierte Segmentierung – Thresholding – Regionenbasierte Segmentierung
Faltung (Convolution) n n n “Zusammenmultiplizieren” von 2 Matrizen verschiedener Dimensionen n Für Bildmatrix FM, N und Kernel KA, B Die größere Matrix ist hier das Bild Die kleinere wird “Kernel” genannt n Verschieben des Kernels über jeden einzelnen Bildpunkt n Dabei wird jeder Eintrag im Kernel mit dem darunter liegenden Pixel multipliziert Die Summe der Produkte wird als Resultat dieser Stelle gespeichert Diskreter Fall: Resultierende Matrix: GM-A+1, N-B+1 Anwendung: – Anwendung eines “Filters” auf jedes Pixel – Lokale Operatoren • (im Gegensatz zu globalen und Punktoperatoren)
Kantendetektion I n n Detektion von Kanten anhand von Änderungen in der Helligkeit (1. Ableitung, Helligkeitsgradient) Sobel Kantendetektoren – Je ein Kernel für horizontale und vertikale Kanten • Absolutbetrag des Gradienten durch Kombination: – Je größer der Gradient desto größer das „Ansprechen“ – Problem: • Anfällig für Rauschen – Thresholding • Breite, diffuse Linien +1 +2 +1 0 0 0 -1 -2 -1 -1 0 + 1 -2 0 + 2 -1 0 + 1
Kantendetektion II: Zero-Crossings der 2. Ableitung n Laplace-Operator – Berechnet 2. Ableitung der Grauwerte – Isotropher Operator – Erhöht Rauschen n Lo. G Operator – „Laplace of Gaussian“, Marr. Hildreth Operator – Erst Glätten, dann Laplace Operator n Bestimmung der „Zero. Crossings“ – Dünner Kantenverlauf – Feinheit kontrolliert durch Standardabweichung der Gaußglocke + Entfernung der Kanten, die nicht durch 1. Ableitung unterstützt werden 0 + 1 -4 + 1 0
Farbsegmentierung: Constant thresholding n Constant thresholding Bildfunktion: f(x, y) = (r, g, b) Luminosität: l(r, g, b) = [0. . 255] Segmentierung: s(l) = [0, 1] mit s(l) = 0 für alle l <= t und s(l) = 1 für alle l > t constant threshold t n Starker Beleuchtungsgradient
Farbsegmentierung: Adaptive Thresholding n Adaptive thresholding – Funktioniert auch bei starkem Gradient in der Beleuchtung – Local thresholding: • Für jedes Pixel in bestimmter Umgebung statistisch den Threshold bestimmen: – median, mean, (max-min)/2 – t = median-c – Parameter: Umgebungsgröße, c – Chow und Kaneko: • Bild aufteilen – Wahrscheinlichkeit für uniforme Beleuchtung sei höher • Threshold für jedes Teilbild bestimmen • Für jedes Pixel einen lokalen Schwellwert durch Interpolation finden Ø schneller
Regiongrowing n Maximale Homogenitätsbedingung: – H(Ri) = TRUE, für alle Regionen Ri – H(Ri. URj) = FALSE, für alle i<>j und Ri ist Nachbar von Rj n Direkt auf Pixelbild oder vorsegmentiertem Bild Region merging – Start mit übersegmentiertem Bild (z. B. Pixelbild) – Verschmelzungskriterium z. B. mit Hilfe von H(Ri. URj) n Region splitting – Start mit untersegmentiertem Bild (z. B. Bild als ein Segment) – Unter Umständen anderes Ergebnis als merging Homogenitätskriterien: – Helligkeit – Farbe – Textur – Form Oder Kombination daraus n n Aus Gründen der Effizienz: Datenstruktur zur Adjazenzrepräsentierung Split and Merge – Baut gleichzeitig einen Quadtree auf
Zwischenschritt: Regionenrepräsentierung und -beschreibung n n Ikonische Darstellung der Regionen Übergang zur symbolischen Verarbeitung Ø Verminderung des Speicherund Rechenaufwandes n Formrepräsentierungen: – Konturbasiert (Kettenkodes, Fourierdeskriptoren, BSplines) – Regionenbasiert (Skelettierung, Dekomposition -> Graph) n Regionenbeschreibungen: – Reichen für die Analyse ev. auch aus – Möglichst topologisch Invariante Beschreibungen – Kontur basiert: • Curvature • Kantenlänge (Umfang) • Biegungsenergie – Regionenbasiert • Fläche, Zentrum, Höhe, Breite • Exzentrizität: Verhältnis zwischen Haupt- und Nebenachse • „Elongatedness“: größter Durchmesser / Fläche • „Rechteckigkeit“ • Kompaktheit: (Umfang / Fläche)
Objekterkennung n n Ziel: Objekt Klassifizierung „Welt“wissen nötig – Über verarbeitete Objekte – Über Objektklassen n Verschiedene Techniken: – – – Statistic Pattern Recognition Neural Nets Syntactic pattern recognition Graphmatching Optimierungstechniken
Vom Einzelbild zur Bildfolge n n Feature Point, bzw. Objektverfolgung Active Vision
Feature Point Tracking n Ziel: „Trajektorien“ n Vorgehen: – Pfadkohärenzfunktion, die eine Zuordnung bewertet – Finden des globalen Optimums n Probleme: – Constraints für die Pfadkohärenzfunktion – Widersprüchliche Constraints – Physikalisches Modell des beobachteten Systems nötig Minimierung des Abstands reicht nicht aus: t-1 t
Pfad Koherenz Funktion (nach Sethi und Jain) n Bewertet Richtungsänderungen und Geschwindigkeitsänderungen – Dazu 2 Richtungsvektoren von t-2 über t-1 bis t – 1. Term berechnet den Kosinus (0 wenn senkrecht zueinander) – 2. Term bestraft Längenunterschiede n Probleme: – Gewichtung zwischen Geschwindigkeit und Richtung – Zusammen- oder Abprallen und andere Verletzungen des zugrunde liegenden Modells
Active Vision n Aktive Kontrolle der Kamera und des Systems – Um mehr Daten zu erlangen n Intelligente Datenakquisition – Kontrolliert durch die partiell interpretierte und bemessene Szene n n n Genau die Daten erlangen, die benötigt werden Kontinuierliche, „Real-Time“ Operation „Vision as Process“
Exemplar Based Image Recognition n Keine Verarbeitung bis zur symbolischen Beschreibung des Bildes n EROSAL – Kein Szenenmodell n Stattdessen Bilddatenbank – Verschiedene Ansichten der Objekte – „Prototypen“ der Objektklassen – Ganze Szenen – Steuerungssignal ev. direkt mit Szenen gekoppelt (z. B. IBR) n Ähnlichkeitsoperationen, die direkt auf den Bildern arbeiten ? www. cogsci. uni-osnabrueck. de/~erosal/
Computer Vision Tool Kit
Motivation n Vorlesung „Intelligente Robotersteuerung“ WS 2000/2001 – „global vision system“ für die Small Size League n andere Messungen in künstlichen Umgebungen – Stab balancieren – Pendelschwingung
Aufgabenstellung n Bibliothek, die folgendes unterstützt: – „tracking“ von farblich markierten Objekten in künstlichen Umgebungen – Ausgabe von: Objekttyp, Position, Orientierung, Geschwindigkeit – Echtzeitverarbeitung eines Videostroms – Kalibrierung
Schichten - Architektur n RGB-Matrix Farbsegmentierung Lookup Tabelle n Farbklassen-Matrix Connected Regions Low - Level Vision Kettencode-Listen Template Matching Objektklassen-Listen Object Tracking Objektinstanz-Liste object(Position, [Orientierung], Richtung, Geschwindigkeit) Objekt-Templates High - Level Vision n Jede Schicht kapselt einen Algorithmus Datenstrukturen zwischen den Schichten sind definiert vom Bild zu höheren Repräsentationen Ø Bottom-Up Analyse cvtk. h
Farbsegmentierung RGB-Matrix Farbsegmentierun g Farbklassen-Matrix n Lookup Tabelle n Connected Regions Kettencode-Listen Template Matching Objektklassen-Listen Object Tracking Objektinstanz-Liste object(Position, [Orientierung], Richtung, Geschwindigkeit) Objekt-Templates n Bildquelle: f(x, y) = (r, g, b) Verwendung einer Lookup - Tabelle: – Funktion l: (r, g, b) c in einer Tabelle gespeichert Berechnung von s(x, y)=l°f(x, y) durch einfache Nachschlageoperation (im Voraus berechnet) lookuptable. h colorsegmentation. cpp
Kettenkodierung n Kodieren: – Beschreibung der Kontur nach Freeman – 4 er, 8 er Nachbarschaft RGB-Matrix Farbsegmentierung Lookup Tabelle – Sequenz von Nummern, die Richtung der Kontur kodieren Farbklassen-Matrix Connected Regions Kettencode-Listen Template Matching Objekt-Templates Objektklassen-Listen Object Tracking Objektinstanz-Liste object(Position, [Orientierung], Richtung, Geschwindigkeit) n n n Reduktion der Datenmenge schnell zu berechnen einfache Berechnung von: – Zentrum – Fläche – umgebendes Rechteck chaincoding. h chaincoding. cpp
Kettenkodierung(2) n Fläche – Allgemein: • A = b(x, y) dx dy – Diskrete Integration nach einer Achse – Differenz zwischen Integral der oberen und unteren Kante ist die Fläche n Zentrum der Fläche – Allgemein: • X = x b(x, y) dx dy / b(x, y) dx dy – Analog zur Fläche – Beim Integrieren mit x multiplizieren
Objekterkennung RGB-Matrix Farbsegmentierung n Lookup Tabelle Farbklassen-Matrix Connected Regions Kettencode-Listen Template Matching Objektklassen-Listen Object Tracking Objektinstanz-Liste object(Position, [Orientierung], Richtung, Geschwindigkeit) Objekt-Templates n n Objekt - Schablonen: – object id center (col, area), axis (col, area, dist), mark (col, area, dist, orien) end Naiver Suchalgorithmus Toleranzgrenzen „Harte“ Matches (keine Wks) Ausgabe: Liste von Objekt. Eimern mit „Instanzen“
Objektverfolgung n – Zuordnung der gefundenen Instanzen zur richtigen „Instanzgeschichte“ RGB-Matrix Farbsegmentierung Lookup Tabelle Farbklassen-Matrix Connected Regions n Kettencode-Listen Template Matching Objektklassen-Listen Object Tracking Objektinstanz-Liste object(Position, [Orientierung], Richtung, Geschwindigkeit) Ziel: Objekt-Templates n Einfacher Fall: – Objekte eindeutig identifiziert Schwieriger Fall: – Mehrere Instanzen pro Schablone – Innerhalb jedes Eimers „tracking“ - Algorithmus
Trackingalgorithmus n n Optimierung eines globalen, konfigurierbaren Kriteriums Uniform Cost Search (oder A*, wenn Heuristic für x Kriterium vorhanden) x h(k 1) = 0 h(k 2) = c xt, 1 – xt-1, i 1 h(k 3) = d ≥ c – xt-1, i 1 t, 2 – xt-1, i 2 t, 1 – Kosten h(node) = Kriterium – Knoten sind mögliche x x Paarungen x – In jeder Ebene wird ein Objekt mehr zugeordnet – xt-1, i 1 t, 2 – xt-1, i 2 t, 3 – xt-1, i 3 t, 1 xt, 1 – xt-1, i 1 xt, 2 – xt-1, i 3 xt, 1 – xt-1, i 1 xt, 2 – xt-1, i 4 xt, 1 – xt-1, i 1 xt, 2 – xt-1, i 2 xt, 2 – <unmatched>
Berechnung der Ausgabe n RGB-Matrix Farbsegmentierung Farbklassen-Matrix Lookup Tabelle n – Winkel der Strecke center / axis zur x-Achse Connected Regions Kettencode-Listen Template Matching Objektklassen-Listen Object Tracking Objektinstanz-Liste object(Position, [Orientierung], Richtung, Geschwindigkeit) Berechnung der benötigten Werte anhand der Instanzgeschichte Orientierung: n Objekt-Templates Richtung / Geschwindigkeit – aus der Geschichte – Z. Zt. Ungeglättet – „Einfache“ Glättung? – Kalmann-Filter zum Ausgleich der Meßfehler? • Subpixelgenauigkeit
Erweiterungen Vorverarbeitung wie Glättung, Helligkeit RGB-Matrix Farbsegmentierung Farbklassen-Matrix Connected Regions Kettencode-Listen Template Matching Objektklassen-Listen Object Tracking Objektinstanz-Liste object(Position, [Orientierung], Richtung, Geschwindigkeit) Lookup Tabelle Morphologische Operatoren wie Opening / Closing Region merging Objekt-Templates Koordinatentransformation
Ausblick n Einsatz der Bibliothek in der Midsize. League – 3 D, Messung von Entfernungen – Karlsruhe / Dortmund n Bereitstellung verbesserter Kalibrierungswerkzeuge
- Slides: 39