Folien (PPT XP)

Werbung
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)



“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
“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

“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)
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)
Bilderfassung
Bildverbesserung
Modellfreie
Segmentierung
Modellgestütze
Segmentierung
Bildsymbolverarbeitung
Symbolische
Verarbeitung
Haus
Busch vor Haus
Baum vor Haus
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

Diskreter Fall:
Für Bildmatrix FM,N und Kernel KA,B
A





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
B
G ( x, y )   F ( x  a  1, x  b  1) K (a, b)
a 1 a 1

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


Detektion von Kanten anhand von
Änderungen in der Helligkeit (1.
Ableitung, Helligkeitsgradient)
+1 +2 +1
-1
0
+1
0
0
0
-2
0
+2
Sobel Kantendetektoren
-1
-2
-1
-1
0
+1
– Je ein Kernel für horizontale und
vertikale Kanten
• Absolutbetrag des Gradienten
durch Kombination:
G  Gx2  Gy 2
– Je größer der Gradient desto
größer das „Ansprechen“
– Problem:
• Anfällig für Rauschen
– Thresholding
• Breite, diffuse Linien
Kantendetektion II:
Zero-Crossings der 2. Ableitung

Laplace-Operator
– Berechnet 2. Ableitung der
Grauwerte
– Isotropher Operator
– Erhöht Rauschen

LoG Operator
– „Laplace of Gaussian“, MarrHildreth Operator
– Erst Glätten, dann Laplace
Operator

Bestimmung der „ZeroCrossings“
– 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
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

Starker Beleuchtungsgradient
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

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
Homogenitätskriterien:
– Helligkeit
– Farbe
– Textur
– Form
Oder Kombination daraus




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 Speicherund Rechenaufwandes

Formrepräsentierungen:
– Konturbasiert (Kettenkodes,
Fourierdeskriptoren, BSplines)
– 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“
Ti  ( xi1 , xi2 ,..., xi3 )
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
Minimierung des Abstands reicht nicht aus:
t-1
t
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

EROSAL
– 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
?
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

RGB-Matrix
Farbsegmentierung
Lookup Tabelle

Farbklassen-Matrix
Low - Level Vision
Connected Regions
Kettencode-Listen
Template Matching
Objektklassen-Listen
Objekt-Templates
High - Level Vision 
Object Tracking
Objektinstanz-Liste
object(Position, [Orientierung],
Richtung, Geschwindigkeit)
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
Farbsegmentierung

Lookup Tabelle
Farbklassen-Matrix

Connected Regions
– Funktion l:(r,g,b)  c in
einer Tabelle gespeichert
Kettencode-Listen
Template Matching
Objektklassen-Listen
Object Tracking
Objektinstanz-Liste
object(Position, [Orientierung],
Richtung, Geschwindigkeit)
Bildquelle:
f(x,y) = (r,g,b)
Verwendung einer
Lookup - Tabelle:
Objekt-Templates

Berechnung von
s(x,y)=l°f(x,y)
durch einfache
Nachschlageoperation
(im Voraus berechnet)
lookuptable.h colorsegmentation.cpp
Kettenkodierung

Kodieren:
– Beschreibung der Kontur
nach Freeman
– 4er, 8er 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)



Reduktion der Datenmenge
schnell zu berechnen
einfache Berechnung von:
– Zentrum
– Fläche
– umgebendes Rechteck
chaincoding.h chaincoding.cpp
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
RGB-Matrix
Farbsegmentierung

– object
id
center (col, area),
axis (col, area, dist),
mark (col, area, dist, orien)
end
Lookup Tabelle
Farbklassen-Matrix
Connected Regions
Kettencode-Listen
Template Matching
Objektklassen-Listen
Object Tracking
Objektinstanz-Liste
object(Position, [Orientierung],
Richtung, Geschwindigkeit)
Objekt-Templates
Objekt - Schablonen:




Naiver Suchalgorithmus
Toleranzgrenzen
„Harte“ Matches (keine Wks)
Ausgabe: Liste von ObjektEimern mit „Instanzen“
Objektverfolgung

– Zuordnung der
gefundenen Instanzen
zur richtigen
„Instanzgeschichte“
RGB-Matrix
Farbsegmentierung
Lookup Tabelle
Farbklassen-Matrix
Connected Regions

Kettencode-Listen
Template Matching
Objektklassen-Listen
Object Tracking
Objektinstanz-Liste
object(Position, [Orientierung],
Richtung, Geschwindigkeit)
Ziel:
Einfacher Fall:
– Objekte eindeutig
identifiziert
Objekt-Templates

Schwieriger Fall:
– Mehrere Instanzen pro
Schablone
– Innerhalb jedes Eimers
„tracking“ - Algorithmus
Trackingalgorithmus


Optimierung eines
globalen, konfigurierbaren
Kriteriums
Uniform Cost Search (oder
A*, wenn Heuristic für
x
Kriterium vorhanden)
x
h(k1) = 0
h(k2) = c
xt,1 – xt-1,i1
h(k3) = d ≥ c
– Kosten h(node) = Kriterium
– Knoten sind mögliche
x
x
Paarungen
x
– In jeder Ebene wird ein
Objekt mehr zugeordnet
– xt-1,i1
t,2 – xt-1,i2
t,1
– xt-1,i1
t,2 – xt-1,i2
t,3 – xt-1,i3
t,1
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,2 – <unmatched>
Berechnung der Ausgabe

RGB-Matrix
Farbsegmentierung
Lookup Tabelle

Farbklassen-Matrix
– Winkel der Strecke center /
axis zur x-Achse
Connected Regions
Kettencode-Listen
Template Matching
Berechnung der benötigten
Werte anhand der
Instanzgeschichte
Orientierung:

Objekt-Templates
Objektklassen-Listen
Object Tracking
Objektinstanz-Liste
object(Position, [Orientierung],
Richtung, Geschwindigkeit)
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
Lookup Tabelle
Morphologische Operatoren
wie Opening / Closing
Farbklassen-Matrix
Connected Regions
Kettencode-Listen
Template Matching
Objektklassen-Listen
Object Tracking
Objektinstanz-Liste
object(Position, [Orientierung],
Richtung, Geschwindigkeit)
Region merging
Objekt-Templates
Koordinatentransformation
Ausblick

Einsatz der Bibliothek in der MidsizeLeague
– 3D, Messung von Entfernungen
– Karlsruhe / Dortmund

Bereitstellung verbesserter
Kalibrierungswerkzeuge
Herunterladen