Verfolgung von farblich markierten Objekten Sascha Lange .

Post on 05-Apr-2015

109 views 5 download

Transcript of Verfolgung von farblich markierten Objekten Sascha Lange .

Verfolgungvon 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

DefinitionenBildverarbeitung (Image Processing)

“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)

Gliederung: Bildbearbeitung und Bildanalyse

Machine Vision / Computer Vision

“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)

Besonderes Gewicht auf dem Aspekt der Prozessüberwachung und / oder –kontrolle (ev. aber auch nur Überinterpretation)

Bildanalyse (Image Analysis)

“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)

Von der Ikonische Darstellung zu symbolischen Beschreibungen

Anwendungen

Medizin– Tomographie, Radiologie, Gewebeschnitte

Industrielle Automatisierung– Qualitätskontrolle, Sortierung, Transport

Überwachung– Gebäudeüberwachung, Suchen in Menschenmengen

Vermessungswesen & Fernerkundung– Landvermessung, Satellitenbildauswertung, Radarbilder

Human Computer Interfaces– Gesture Recognition

Biometrie– Fingerabdrücke, Authentifizierung

Archivierung– Content Based Image Retrieval

“Arbeiten” in der Computer Vision

Keine klare, allgemeine Standardmethode Derzeit relativ unstrukturierte Sammlung von

Verfahren

Ingenieurwissenschaftliche Herangehensweise:– Auswahl geeigneter Verfahren zur Lösung einer speziellen

Problemstellung

Aktuelle Schlagworte:– Active Vision: Aktive Kontrolle des Sichtfeldes– Exemplar-based vision

Klassische Bildverarbeitung (Einzelbild)

HausBusch vor HausBaum vor Haus

ModellfreieSegmentierung

ModellgestützeSegmentierung

Bildverbesserung

Bildsymbolverarbeitung

SymbolischeVerarbeitung

Bilderfassung

Zusammenfassung der klassischen Bildverarbeitung

Ausgangspunkt: Ikonische Bildrepräsentierung

Ziel: Symbolische Bildbeschreibung

Bildverbesserung Häufiges Zwischenziel: Regionenbild Objekterkennung

Anwendungen ohne bedeutungsvolle symbolische Beschreibung / Modell Beispiel Biometrie

– Direkter Vergleich von “Feature Points”

Beispiel Image Based Retrieval– Query by example (Farbe, Textur, Anordnung)

http://elib.cs.berkeley.edu/photos/blobworld/

Viele Wege führen nach Rom…

Auf dem Weg zum Regionenbild

– Kantenbasierte Segmentierung– Thresholding– Regionenbasierte Segmentierung

Faltung (Convolution)

“Zusammenmultiplizieren” von 2 Matrizen verschiedener Dimensionen

Die größere Matrix ist hier das Bild

Die kleinere wird “Kernel” genannt

Verschieben des Kernels über jeden einzelnen Bildpunkt

Dabei wird jeder Eintrag im Kernel mit dem darunter liegenden Pixel multipliziert

Die Summe der Produkte wird als Resultat dieser Stelle gespeichert

Diskreter Fall:Für Bildmatrix FM,N und Kernel KA,B

Resultierende Matrix: GM-A+1,N-B+1

Anwendung:– Anwendung eines “Filters”

auf jedes Pixel– Lokale Operatoren

• (im Gegensatz zu globalen und Punktoperatoren)

A

a

B

a

baKbxaxFyxG1 1

),()1,1(),(

Kantendetektion I

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 0 +1

-2 0 +2

-1 0 +1

+1 +2 +1

0 0 0

-1 -2 -1

22 GyGxG

Kantendetektion II:Zero-Crossings der 2. Ableitung Laplace-Operator

– Berechnet 2. Ableitung der Grauwerte

– Isotropher Operator– Erhöht Rauschen

LoG Operator– „Laplace of Gaussian“, Marr-

Hildreth Operator– Erst Glätten, dann Laplace

Operator 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 0

+1 -4 +1

0 +1 0

Farbsegmentierung: Constant thresholding

Constant thresholding

Starker Beleuchtungsgradient

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 thresholdt

Farbsegmentierung: Adaptive Thresholding

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

Maximale Homogenitätsbedingung:– H(Ri) = TRUE, für alle

Regionen Ri

– H(RiURj) = FALSE, für alle i<>j und Ri ist Nachbar von Rj

Homogenitätskriterien:– Helligkeit– Farbe– Textur– FormOder Kombination daraus

Direkt auf Pixelbild oder vorsegmentiertem Bild

Region merging– Start mit übersegmentiertem

Bild (z.B. Pixelbild)– Verschmelzungskriterium

z.B. mit Hilfe von H(RiURj) Region splitting

– Start mit untersegmentiertem Bild (z.B. Bild als ein Segment)

– Unter Umständen anderes Ergebnis als merging

Aus Gründen der Effizienz: Datenstruktur zur Adjazenzrepräsentierung

Split and Merge– Baut gleichzeitig einen

Quadtree auf

Zwischenschritt: Regionenrepräsentierung und -beschreibung

Ikonische Darstellung der Regionen

Übergang zur symbolischen Verarbeitung Verminderung des Speicher-

und Rechenaufwandes Formrepräsentierungen:

– Konturbasiert (Kettenkodes, Fourierdeskriptoren, B-Splines)

– Regionenbasiert (Skelettierung, Dekomposition -> Graph)

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

Ziel: Objekt Klassifizierung „Welt“wissen nötig

– Über verarbeitete Objekte– Über Objektklassen

Verschiedene Techniken:– Statistic Pattern Recognition– Neural Nets– Syntactic pattern recognition– Graphmatching– Optimierungstechniken

Vom Einzelbild zur Bildfolge

Feature Point, bzw. Objektverfolgung Active Vision

Feature Point Tracking

Ziel: „Trajektorien“

Vorgehen:– Pfadkohärenzfunktion, die

eine Zuordnung bewertet– Finden des globalen

Optimums

Probleme:– Constraints für die

Pfadkohärenzfunktion– Widersprüchliche

Constraints– Physikalisches Modell des

beobachteten Systems nötig

t-1 t

),...,,( 321iiii xxxT

Minimierung des Abstands reicht nicht aus:

Pfad Koherenz Funktion (nach Sethi und Jain)

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

Probleme:– Gewichtung zwischen Geschwindigkeit und Richtung– Zusammen- oder Abprallen und andere Verletzungen des zugrunde

liegenden Modells

Active Vision

Aktive Kontrolle der Kamera und des Systems – Um mehr Daten zu erlangen

Intelligente Datenakquisition– Kontrolliert durch die partiell

interpretierte und bemessene Szene

Genau die Daten erlangen, die benötigt werden

Kontinuierliche, „Real-Time“ Operation

„Vision as Process“

Exemplar Based Image Recognition

Keine Verarbeitung bis zur symbolischen Beschreibung des Bildes– Kein Szenenmodell

Stattdessen Bilddatenbank– Verschiedene Ansichten der

Objekte– „Prototypen“ der

Objektklassen– Ganze Szenen– Steuerungssignal ev. direkt

mit Szenen gekoppelt (z.B. IBR)

Ähnlichkeitsoperationen, die direkt auf den Bildern arbeiten

?

EROSAL

www.cogsci.uni-osnabrueck.de/~erosal/

Computer Vision Tool Kit

Motivation

Vorlesung „Intelligente Robotersteuerung“ WS2000/2001– „global vision system“ für die Small Size

League andere Messungen in künstlichen

Umgebungen– Stab balancieren– Pendelschwingung

Aufgabenstellung

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

Jede Schicht kapselt einen Algorithmus

Datenstrukturen zwischen den Schichten sind definiert

vom Bild zu höheren RepräsentationenBottom-Up Analyse

cvtk.h

Farbsegmentierung

Connected Regions

Template Matching

Object Tracking

object(Position, [Orientierung],Richtung, Geschwindigkeit)

Lookup Tabelle

Objekt-Templates

RGB-Matrix

Farbklassen-Matrix

Kettencode-Listen

Objektklassen-Listen

Objektinstanz-Liste

Low - Level Vision

High - Level Vision

Farbsegmentierung

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

Farbsegmentierung

Connected Regions

Template Matching

Object Tracking

object(Position, [Orientierung],Richtung, Geschwindigkeit)

Lookup Tabelle

Objekt-Templates

RGB-Matrix

Farbklassen-Matrix

Kettencode-Listen

Objektklassen-Listen

Objektinstanz-Liste

Kettenkodierung Kodieren:– Beschreibung der Kontur

nach Freeman– 4er, 8er Nachbarschaft

– Sequenz von Nummern, die Richtung der Kontur kodieren

Reduktion der Datenmenge schnell zu berechnen einfache Berechnung von:

– Zentrum– Fläche– umgebendes Rechteck

chaincoding.h chaincoding.cpp

Farbsegmentierung

Connected Regions

Template Matching

Object Tracking

object(Position, [Orientierung],Richtung, Geschwindigkeit)

Lookup Tabelle

Objekt-Templates

RGB-Matrix

Farbklassen-Matrix

Kettencode-Listen

Objektklassen-Listen

Objektinstanz-Liste

Kettenkodierung(2)

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

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

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“

Farbsegmentierung

Connected Regions

Template Matching

Object Tracking

object(Position, [Orientierung],Richtung, Geschwindigkeit)

Lookup Tabelle

Objekt-Templates

RGB-Matrix

Farbklassen-Matrix

Kettencode-Listen

Objektklassen-Listen

Objektinstanz-Liste

Objektverfolgung Ziel:

– Zuordnung der gefundenen Instanzen zur richtigen „Instanzgeschichte“

Einfacher Fall:– Objekte eindeutig

identifiziert

Schwieriger Fall:– Mehrere Instanzen pro

Schablone– Innerhalb jedes Eimers

„tracking“ - Algorithmus

Farbsegmentierung

Connected Regions

Template Matching

Object Tracking

object(Position, [Orientierung],Richtung, Geschwindigkeit)

Lookup Tabelle

Objekt-Templates

RGB-Matrix

Farbklassen-Matrix

Kettencode-Listen

Objektklassen-Listen

Objektinstanz-Liste

Trackingalgorithmus

Optimierung eines globalen, konfigurierbaren Kriteriums

Uniform Cost Search (oder A*, wenn Heuristic für Kriterium vorhanden)– Kosten h(node) = Kriterium– Knoten sind mögliche

Paarungen– In jeder Ebene wird ein

Objekt mehr zugeordnet

xt,1 – xt-1,i1

xt,2 – xt-1,i2

xt,1 – xt-1,i1

xt,1 – xt-1,i1

xt,2 – xt-1,i3

xt,1 – xt-1,i1

xt,2 – xt-1,i4

xt,1 – xt-1,i1

xt,2 – xt-1,i2

xt,3 – xt-1,i3

xt,1 – xt-1,i1

xt,2 – xt-1,i2

xt,2 – <unmatched>

h(k1) = 0

h(k2) = c

h(k3) = d ≥ c

Berechnung der Ausgabe

Berechnung der benötigten Werte anhand der Instanzgeschichte

Orientierung:– Winkel der Strecke center /

axis zur x-Achse Richtung / Geschwindigkeit

– aus der Geschichte– Z.Zt. Ungeglättet

– „Einfache“ Glättung?– Kalmann-Filter zum

Ausgleich der Meßfehler?• Subpixelgenauigkeit

Farbsegmentierung

Connected Regions

Template Matching

Object Tracking

object(Position, [Orientierung],Richtung, Geschwindigkeit)

Lookup Tabelle

Objekt-Templates

RGB-Matrix

Farbklassen-Matrix

Kettencode-Listen

Objektklassen-Listen

Objektinstanz-Liste

Erweiterungen

Farbsegmentierung

Connected Regions

Template Matching

Object Tracking

object(Position, [Orientierung],Richtung, Geschwindigkeit)

Lookup Tabelle

Objekt-Templates

RGB-Matrix

Farbklassen-Matrix

Kettencode-Listen

Objektklassen-Listen

Objektinstanz-Liste

Vorverarbeitung wieGlättung, Helligkeit

Morphologische Operatorenwie Opening / Closing

Region merging

Koordinatentransformation

Ausblick

Einsatz der Bibliothek in der Midsize-League– 3D, Messung von Entfernungen– Karlsruhe / Dortmund

Bereitstellung verbesserter Kalibrierungswerkzeuge