Diplomarbeit in Informatik

Werbung
Technische Universität München
Fakultät für Informatik
Lehrstuhl für Robotik und Echtzeitsysteme
Prof. Dr. Alois Knoll
Diplomarbeit in Informatik
Konzeption und Implementierung eines adaptiven,
robusten und effizienten Verfahrens zur Klassifikation von
Objekten mittels Template Matching
Thomas Müller
Aufgabensteller: Prof. Dr. Alois Knoll
Betreuer:
Dipl.-Inf. Markus Rickert
Abgabedatum:
15. Juni 2007
Ich versichere, dass ich diese Diplomarbeit selbständig verfasst und nur die angegebenen
Quellen und Hilfsmittel verwendet habe.
München, den 15. Juni 2007
___________________________
Thomas Müller
Abstract
Objekterkennung wurde Mitte des 20. Jahrhunderts von vielen Forschern als
triviales Problem gesehen. Man dachte, ein Student könne solch ein Thema mit
Leichtigkeit innerhalb einer Seminararbeit erledigen. Es stellte sich jedoch heraus,
dass der technische, wie auch mathematische Aufwand zur Lösung dieses
Problems erheblich ist. Trotz jahrzehntelanger Forschung gibt es in dem
mittlerweile als eigene Disziplin der Informatik angesehenen Problembereich
immer noch Entwicklungsbedarf.
Diese Arbeit beschäftigt sich mit der Umsetzung einer Lösung für ein spezielles
Objekterkennungsproblem, die Erkennung von Bausteinen der Baufix-Domäne.
Hier soll ein Template-Matching Ansatz verfolgt werden, der es ermöglicht, sogar
teilweise verdeckte Objekte zuverlässig zu erkennen. Da Template-Matching ein
allgemeiner Begriff ist, der lediglich eine Klasse von Verfahren charakterisiert,
werden im Zuge dieser Arbeit verschiedene Template-Matching Ansätze
dargestellt und bezüglich Exaktheit und Laufzeit evaluiert. Auch Schritte, die zur
Vor- und Nachbearbeitung der Eingabedaten notwendig sind, sowie
Möglichkeiten zur Integration in das europaweite JAST-Forschungsprojekt sollen
in dieser Arbeit diskutiert werden.
Inhaltsverzeichnis
Inhaltsverzeichnis
V
Abbildungsverzeichnis
VII
Abkürzungsverzeichnis
X
1
Einleitung
1
1.1
JAST ............................................................................................................... 2
1.2
Objekterkennung ......................................................................................... 6
1.3
Template-Matching ................................................................................... 10
1.4
Zielsetzung der Arbeit .............................................................................. 12
2
Segmentierung
15
2.1
Statische Schwellwertverfahren .............................................................. 15
2.2
Adaptive Schwellwertverfahren ............................................................. 16
2.3
Bereichswachstumsverfahren .................................................................. 18
2.4
Segmentierung im JAST-Projekt.............................................................. 19
2.4.1
Vorbereitung ............................................................................... 20
2.4.2
Segmentierung ............................................................................ 21
2.4.3
Adaption ...................................................................................... 22
3
Farbextraktion
27
3.1
Farbraum und Histogramm ..................................................................... 28
3.2
Hauptfarbkomponenten ........................................................................... 29
4
Formextraktion
31
4.1
Hit-Or-Miss Operator................................................................................ 31
4.2
Kirsch-Operator ......................................................................................... 34
4.3
Sobel-Operator ........................................................................................... 35
4.4
Canny-Operator ......................................................................................... 36
4.5
Kantenextraktion im JAST-Projekt .......................................................... 38
V
5
Invariantenbasierte Objekterkennung
41
5.1
Extraktion der Invarianten ....................................................................... 41
5.2
Klassifikation .............................................................................................. 42
5.3
Analyse des Verfahrens ............................................................................ 45
6
Active Shape Models
47
6.1
Modellfindung ........................................................................................... 47
6.2
Anpassung des Modells............................................................................ 48
6.3
Analyse des Verfahrens ............................................................................ 50
7
Template-Matching
53
7.1
Ähnlichkeitsmaße ...................................................................................... 54
7.1.1
Absolute Ähnlichkeit ................................................................. 56
7.1.2
Lineare Ähnlichkeit .................................................................... 57
7.1.3
Nichtlineare Ähnlichkeit ........................................................... 59
7.1.4
Konturbasierte Ähnlichkeit ....................................................... 69
7.2
Auswahl und Positionierung der Templates......................................... 71
7.2.1
Naive Suche ................................................................................. 71
7.2.2
Regionenbasierte Suche ............................................................. 72
7.2.3
Farbbasierte Suche ...................................................................... 74
7.2.4
Konturbasierte Suche ................................................................. 75
7.2.5
Downhill-Simplex Suche ........................................................... 77
7.3
Analyse des Verfahrens ............................................................................ 80
8
JAST-Objekterkennung
83
8.1
Objekterepräsentation ............................................................................... 83
8.1.1
Baufix-Objekte ............................................................................. 83
8.1.2
Gesten ........................................................................................... 85
8.1.3
Roboterfragmente ....................................................................... 86
8.2
Systemarchitektur ...................................................................................... 86
8.3
Spezifische Optimierungen ...................................................................... 90
9
Tracking
93
9.1
Disparitästbasiertes Tracking ................................................................... 93
9.2
Regionenbasiertes Tracking ..................................................................... 96
9.3
Optimierung für JAST ............................................................................... 98
10 Diskussion
101
10.1 Evaluation ................................................................................................. 101
10.1.1 Exaktheit .................................................................................... 102
10.1.2 Laufzeit....................................................................................... 104
10.1.3 Andere Domänen ..................................................................... 106
VI
10.2
10.1.4 Andere Ansätze ........................................................................ 107
Ausblicke und Forschungsansätze ........................................................ 109
11 Literaturverzeichnis
113
12 Anhang
117
12.1 Konfiguration des Systems..................................................................... 117
12.1.1 Konzept ...................................................................................... 117
12.1.2 Schnelleinstieg........................................................................... 118
12.2 Wichtige Algorithmen ............................................................................ 121
12.2.1 Region Growing Algorithmus ................................................ 122
12.2.2 Rekursiver Grouping Algorithmus ........................................ 123
VII
Abbildungsverzeichnis
Abbildung 1.1: Schachtürke ......................................................................................... 1
Abbildung 1.2: JAST Forschunsroboter ...................................................................... 3
Abbildung 1.3: JAST Work Packages.......................................................................... 4
Abbildung 1.4: Baufix-Flugzeug.................................................................................. 5
Abbildung 1.5: JAST Systemstruktur.......................................................................... 6
Abbildung 1.6: Informationsfluss im Gehirn ............................................................. 8
Abbildung 1.7: Template-Matching (1) .................................................................... 11
Abbildung 1.8: Template-Matching (2) .................................................................... 12
Abbildung 2.1: Statische Schwellwertverfahren ..................................................... 16
Abbildung 2.2: Adaptive Schwellwertverfahren .................................................... 18
Abbildung 2.3: Bereichswachstumsverfahren ......................................................... 19
Abbildung 2.4: Multivariate Gaußverteilung .......................................................... 21
Abbildung 2.5: Segmentierte JAST-Szene ................................................................ 22
Abbildung 2.6: Histogramm ...................................................................................... 24
Abbildung 3.1: Farbextraktion ................................................................................... 28
Abbildung 3.2: Hauptfarbkomponenten .................................................................. 30
Abbildung 4.1: HOM-Operator für vertikale Kanten............................................. 33
Abbildung 4.2: Hit-Or-Miss Operator für Ecken .................................................... 33
Abbildung 4.3: Kirsch-Operator ................................................................................ 35
Abbildung 4.4: Sobel-Operator .................................................................................. 36
Abbildung 4.5: Canny-Operator ................................................................................ 37
Abbildung 4.6: Kantenextraktion im JAST-Projekt ................................................ 38
Abbildung 5.1: Invariantenbasierte Objekterkennung........................................... 42
Abbildung 5.2: Feed-Forward Netzwerk ................................................................. 44
VIII
Abbildung 5.3: Probleme invariantenbasierter Verfahren .................................... 45
Abbildung 5.4: Geometrische Rekonstruktion ........................................................ 46
Abbildung 6.1: ASM-Landmarks .............................................................................. 48
Abbildung 6.2: Active-Shape-Model ........................................................................ 50
Abbildung 6.3: Probleme bei ASM Verfahren ......................................................... 51
Abbildung 7.1: CT und MRT Bild ............................................................................. 60
Abbildung 7.2: Entropie für binäre Zufallsvariablen ............................................. 61
Abbildung 7.3: Entropie und Histogramm .............................................................. 63
Abbildung 7.4: Joint Histogram................................................................................. 65
Abbildung 7.5: Joint Histogramm und Verbundentropie (1) ................................ 66
Abbildung 7.6: Joint Histogramm und Verbundentropie (2) ................................ 68
Abbildung 7.7: Regionenbasierte Suche ................................................................... 73
Abbildung 7.8: Farbbasierte Suche im JAST-Projekt .............................................. 74
Abbildung 7.9: Konturbasierte Suche ....................................................................... 76
Abbildung 7.10: Downhill-Simplex - Initialisierung und Reflexion .................... 77
Abbildung 7.11: Downhill-Simplex – Substitution ................................................. 79
Abbildung 7.12: Downhill-Simplex – Expansion .................................................... 79
Abbildung 7.13: Downhill-Simplex – Kontraktion ................................................. 80
Abbildung 8.1: Baufix-Sortiment ............................................................................... 84
Abbildung 8.2: Gestenobjekte .................................................................................... 85
Abbildung 8.3: Roboterfragment............................................................................... 86
Abbildung 8.4: Systemarchitektur............................................................................. 87
Abbildung 8.5: Optimierung - Merging ................................................................... 90
Abbildung 9.1: Differenzbild ..................................................................................... 94
Abbildung 9.2: Disparitätsbasiertes Tracking ......................................................... 95
Abbildung 9.3: Regionentracking.............................................................................. 97
Abbildung 9.4: Verdeckung eines Objektes ............................................................. 99
Abbildung 10.1: Ergebnisse Template-Matching .................................................. 102
Abbildung 10.2: Verdeckung ................................................................................... 103
Abbildung 10.3: Fußgänger Verfolgung ................................................................ 106
IX
Abkürzungsverzeichnis
ASM
Active-Shape-Model
AAM
Active-Appearance-Model
CC
Cross Correlation
CBE
Contour Based Error
CE
Conditional Entropy
CT
Computer-Tomographie
DOF
Degrees Of Freedom
HOM
Hit-Or-Miss
HSV
Hue, Saturation, Value
IPP
Intel Performance Primitives
JAST
Joint Action Science and Technology
MCC
Mittelwertbereinigte Cross Correlation
MI
Mutual Information
MRT
Magnet-Resonanz-Tomographie
NBCC
Normalized Best Cross Correlation
NCC
Normalized Cross Correlation
NCBS
Normalized Contour Based Similarity
NLSE
Normalized Least Square Error
NSSD
Normalized Sum of Square Differences
X
PCA
Principle Component Analysis
RGB
Red, Green, Blue
ROI
Region of Interest
SSD
Sum of Square Differences
WP
Work Package
XGA
Extended Graphics Array
XML
Extensible Markup Language
XI
1
Einleitung
Seit den Anfängen des Maschinenbaus fasziniert den Menschen die Idee, ein
künstliches System zu schaffen, das seiner selbst in nichts nachsteht. Dabei steht
nicht nur die möglichst perfekte Nachbildung der äußeren Erscheinung im
Mittelpunkt, mindestens ebenso interessant ist die Entwicklung intelligenten
Verhaltens und die Möglichkeit, mit dem System zu kommunizieren. Im 18. und
19. Jahrhundert wurden einige Automaten vorgestellt, die sich angeblich
intelligent verhalten konnten. Der wohl berühmteste Apparat ist der sogenannten
Schachtürke, den Wolfgang von Kempelen 1769 konstruierte und baute.
Abbildung 1.1: Schachtürke
Der Schachtürke von Wolfgang von Kempelen ist das wohl bekannteste Beispiel für die Illusion
künstlicher Intelligenz.
(Quelle: Kupferstich von Racknitz)
1
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Über keine anderen Automaten des 18. Jahrhunderts wurde annähernd soviel
publiziert wie über den künstlichen Schachspieler, der scheinbar tatsächlich
Schach spielen konnte. Später wurde der Apparat jedoch als Fälschung entlarvt,
denn es zeigte sich, dass ein Zwerg im Vorbau platznehmen konnte, der dann den
Apparat fernsteuerte.
Seither hat die Wissenschaft jedoch einige Fortschritte erlebt. Im frühen 20.
Jahrhundert konnten dann tatsächlich erstmals Maschinen gefertigt werden, die
intelligentes, wenn auch nur programmiertes Verhalten zeigten. Diese Maschinen,
denen bald der Name Computer (erstmals im 1946 vorgestellten ENIAC Electronic Numerical Integrator and Computer) zugedacht wurde, konnten allerdings
nur arithmetische Operationen durchführen. Mit der Steigerung der Rechen- und
Speicherkapazität durch Entwicklung von Halbleiterkomponenten und
integrierten Schaltungen wuchs das Einsatzgebiet der Computer gegen Ende des
20. Jahrhunderts dann jedoch rapide. Schließlich mussten eigene Sprachen für die
Programmierung der Computer entwickelt werden, um von der Fülle von
Operationen, die nun zur Abarbeitung eines Programmes notwendig wurden, zu
abstrahieren.
Endlich waren geeignete Voraussetzungen zur Implementierung tatsächlich
intelligenten Verhaltens gegeben. Allein intelligentes Verhalten genügt der
Forschung im beginnenden 21. Jahrhundert nicht mehr, da die Interaktion mit den
intelligenten künstlichen Systemen zu kompliziert ist und wenig intuitiv erfolgt.
Auch möchte man den Systemen ermöglichen, untereinander zu kommunizieren.
Es wird also nach Möglichkeiten gesucht, die Kommunikation mit den Systemen,
bzw. der Systeme untereinander zu optimieren, weil erst so tatsächliche
barrierefreie Interaktion möglich ist und das Einsatzspektrum der Systeme
wesentlich vergrößert werden kann. An diesem Punkt setzt das JAST-Projekt an.
1 . 1 J A ST
Das Kürzel JAST steht für Joint Action Science and Technology. Als Ziele des
europäischen Forschungsprojektes sollen effiziente Kommunikation und
Kollaboration (künstlicher) intelligenter Systeme verfolgt werden. Forschungsziele
sind im Einzelnen [GiuMa]:

2
Entwicklung und Umsetzung zweier autonomer Agenten, die miteinander
spezifische Problemstellungen lösen. Die Agenten sollen jeweils mit
Greifern und Sprach- und Objekterkennungssystemen ausgestattet sein, die
es ihnen erlauben, ihre Umwelt und die Aktionen des
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR HERE.
THE
APPEAR HERE.
Kommunikationspartners, ob Mensch oder Maschine zu beobachten und zu
interpretieren.

Entwicklung der Sprach- und Objekterkennungskomponenten. Die
Komponente zur Objekterkennung gliedert sich dabei in ein Modul zu
Analyse der auf dem Tisch befindlichen Objekte und der über dem Tisch
gedeuteten Gesten sowie ein weiteres Modul zur Erkennung von
Gesichtsausdrücken und Gesten des Kommunikationspartners in frontaler
Ausrichtung.

Erforschung verbaler und nonverbaler Strukturen in der Kommunikation
zwischen den interagierenden Partnern und Implementierung in die
Agentensysteme.

Entwicklung neuer Lernstrategien zur Fehlererkennung und Problemlösung. Die Strategien sollen zielführend und selbstorganisierend
implementiert werden und die Grundlage für autonomes Handeln
darstellen.
Abbildung 1.2: JAST Forschunsroboter
Der an der Technischen Universität München verwendete Forschungsroboter des JAST-Projekts.
(Quelle: Eigene Darstellung)
Um diese Ziele zu erreichen, ist das JAST Projekte interdisziplinär organisiert.
Dabei arbeiten Forschungsgruppen aus sieben verschieden Organisationen und
fünf europäischen Ländern eng zusammen. Zur besseren Übersicht und
3
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Festlegung der Verantwortlichkeiten wurde das Projekt in die sogenannten Work
Packages (WP) untergliedert (siehe Abbildung 1.3).
Abbildung 1.3: JAST Work Packages
Schematische Darstellung der strukturellen Gliederung des JAST-Projektes in Work Packages. WP
5 des Projektes wird von der TU München verwaltet.
(Quelle: [GiuMa])
Die vorliegende Arbeit ist im WP 5 angesiedelt, das sich mit der Entwicklung und
Implementierung eines Agenten beschäftigt, der mit Menschen oder anderen
Robotern kommunizieren kann. Der Forschungsroboter des WP 5 besteht aus zwei
Mitsubishi Roboterarmen mit einfachen Flachgreifern und dem Philips iCat, einer
Art Katzenkopf, der auf dem Rumpf des Roboters montiert ist (siehe Abbildung
1.2). Außerdem ist eine Top-View Kamera über dem Tisch montiert, die eine
Abbildung der aktuell auf dem Tisch befindlichen Objekte erlaubt.
Als Testszenario für die Forschung in WP 5 soll vom Roboter in Zusammenarbeit
mit einem menschlichen Benutzer ein Spielzeugflugzeug (siehe Abbildung 1.4)
gebaut werden. Für den Bau des Flugzeuges werden hölzerne Bausteine aus dem
Baufix-Sortiment verwendet. Da es nur eine begrenzte Anzahl Baufix-Objekte gibt,
aus denen das Flugzeug gebaut werden soll und diese relativ einfach zu erkennen
sind, erscheint die Wahl dieser Objekte für Tests und Auswertungen im Bereich
der Forschungstätigkeit ideal.
4
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Abbildung 1.4: Baufix-Flugzeug
Das Baufix-Flugzeug als Forschungsobjekt im WP 5 des JAST-Projekts.
(Quelle: Eigene Darstellung)
Strukturell gliedert sich der Aufbau des JAST-Systems zunächst in die Module, die
Sensordaten auswerten. Objekt- und Gestenerkennung sowie Analyse von
Spracheingaben und Gesichtsausdrücken des Kommunikationspartners gehören
zu dieser Klasse.
Des Weiteren werden Informationen der Sensoren und des Spracherkennungsmoduls auf Basis eines Weltmodells über einen Interpreter an ein
Modul zur Entscheidungsfindung vermittelt. Steht eine Entscheidung über die
durchzuführende Aktion fest, wird mit Hilfe des sogenannten Output Generator
Moduls eine entsprechende Ausgabeaktion erzeugt. Zu den Ausgabeaktionen
zählen die Artikulation der Interpretation mit Hilfe des Lautsprechers im iCat
oder eine Aktion in Form einer Bewegung der Roboterarme. Detailiert ist der
aktuelle strukturelle Aufbau des JAST-Systems der Abbildung 1.5 zu entnehmen.
5
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 1.5: JAST Systemstruktur
Schematische Darstellung der Systemstruktur im WP 5 des JAST-Projektes mit angedeutetem
Informationsfluss.
(Quelle: [GiuMa])
Konkretes Thema dieser Arbeit soll die Entwicklung und Umsetzung eines
Objekterkennungssystems primär für den JAST-Roboter sein. Der Roboter soll
damit in die Lage versetzt werden, Objekte zu erkennen, die sich in greifbarer
Nähe auf dem Tisch vor ihm befinden. Durch Analyse der Position und
Orientierung im Objekterkennungsmodul soll es dem Roboter dann möglich sein,
gewünschte Objekte zu greifen und im Sinne der geplanten Aktion
weiterzuverwenden.
1 . 2 O b j e kt e r ke n n u n g
Dieser Abschnitt soll eine kurze Einführung in die grundlegenden Verfahren und
Vorgehensweisen der Objekterkennung bieten. Besonderes Augenmerk soll
aufgrund des Bezugs zum Thema dieser Arbeit auf der Verarbeitung von 2DBilddaten liegen.
Der Einsatzbereich von Objekterkennungssystemen ist vielfältig und wächst
ständig. Solche Systeme können beispielsweise in der Medizin, z.B. zur
Erkennung von bösartigen Gewebeveränderungen, in der optischen
Qualitätssicherung, bei der automatisierten Dokumentenanalyse, z.B. zur
Erkennung von Handschriften oder wie im Fall des JAST-Projektes bei der
Steuerung von Industrierobotern Verwendung finden. Auch der Datenabgleich
mit Hilfe der Analyse biometrischer Merkmale oder der Einsatz in autonomen
Fahrzeugen ist interessant.
Intuitiv scheint Objekterkennung ein sehr einfaches Thema in der Informatik zu
sein. Laien können sich oft nicht vorstellen, wie komplex die Aufgabe sein kann,
6
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
ein Objekt aus einer Eingabeszene zu extrahieren und zu klassifizieren, da diese
Aufgabe für einen Menschen in den meisten Fällen überhaupt kein Problem
darstellt und in Bruchteilen einer Sekunde bewerkstelligt werden kann. Für ein
Computersystem dagegen stellt sich die Aufgabe schon viel komplizierter dar.
Eine kurze Analyse des Vorgangs des Sehens, bzw. Erkennens und Verstehens
beim Menschen soll die Komplexität der Vorgänge im Gehirn veranschaulichen:

Sehen
Sieht ein Mensch etwas, so werden elektromagnetische Wellen im
sichtbaren Spektrum von einem Gegenstand reflektiert. Je nach Breite
und Bereich des reflektierten Spektrums ergibt sich dabei ein
korrespondierender Reiz auf der Netzhaut. Es entsteht dort also eine
perspektivische Projektion der realen Welt.

Vorverarbeitung
Beim Menschen werden entlang des Sehnervs die Impulse von der
Netzhaut in die primäre Sehrinde auf der gegenüberliegenden Kopfseite
transportiert. Abhängig von den empfangenen Impulsen sind Neuronen
hier mehr oder weniger aktiv. Bloße Helligkeit löst z.B. keine große
Aktivität aus, Helligkeitsverläufe oder Kanten und Konturen dagegen
schon. Die primäre Sehrinde ist daneben für die Verteilung der Impulse
an höhere Hirnregionen zuständig.

Erkennen
Im menschlichen Gehirn gibt es teilweise spezialisierte Gebiete, die für
die Analyse bestimmter Aspekte eines Bildes zuständig sind.
Grundsätzlich gibt es zwei Verarbeitungswege: Der sogenannte WasPfad, wobei ermittelt wird, was für Objekte wir sehen und der
sogenannte Wo-Pfad, wobei ermittelt wird, wo sich ein Objekt befindet.
Außerdem gibt es spezielle Bereiche, die sich mit der Farbwahrnehmung
beschäftigen. Die Verarbeitung geschieht dabei in allen Bereichen
parallel. Zusätzlich ist auch der Fokus entscheidend. Regionen, die
außerhalb des Fokus liegen, werden grundsätzlich weniger genau
analysiert, bzw. die Information sofort verworfen.

Verstehen
Am Ende der Verarbeitungskette steht die Kombination aller aus den
Impulsen konstruierten Informationen zu einem Gesamteindruck. Wie
dies im Detail vom Gehirn bewerkstelligt wird, ist bis heute unklar.
Scheinbar existiert jedoch keine klare hierarchische Gliederung der
Verarbeitungsschritte, es scheint sogar Rückkopplungen zurück zur
primären Sehrinde während der Verarbeitung zu geben. Wahrscheinlich
macht gerade diese Rückkopplung den Gesamteindruck erst möglich.
7
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Der Gesamteindruck erlaubt dem Menschen eine Klassifikation des
Gesehenen und damit die Einordnung in Kategorien, z.B. die
Farbkategorie, die Objektklasse oder Kategorisierung nach Größen- oder
Tiefeninformation.
Dieser kleine Exkurs in die Hirnforschung soll zeigen, dass es durchaus keine
triviale Aufgabe ist, aus einer Eingabeszene relevante Objekte zu extrahieren, ihre
Position und Orientierung zu bestimmen und die Objekte einer Klasse von
Objekten zuzuordnen.
Abbildung 1.6: Informationsfluss im Gehirn
Helle Bereiche zeigen den Informationsfluss im Gehirn vom Sehnerv über die Sehrinde in die
höheren Bereiche.
(Quelle:[WieGe])
Forschungsgegenstand bei der Entwicklung künstlicher Objekterkennungssysteme ist eine auf gängigen Computersystemen umsetzbare Simulation
der Vorgänge im Gehirn. Tatsächlich können verschiedene Prinzipien des
menschlichen Sehens bei der Verarbeitung von Eingabebildern verwendet
werden. Leider ist jedoch selbst auf moderner Hardware bisher keine solch
hochgradig parallele Verarbeitung inklusive Rückkopplung möglich.

8
Maschinelles Sehen
Sowohl die Entwicklung neuer Hardwarekomponenten, als auch
leistungsfähiger Algorithmen macht große Fortschritte. So können
moderne photoempfindliche Chips das perspektivische Abbild der
realen Welt relativ genau in digitaler Form für den Computer
bereitstellen. „Relativ genau“ bedeutet dabei eine ziemlich große
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Einschränkung, da nur eine begrenzte Anzahl Bildpunkte abgebildet
werden können. Auch kann jeder Bildpunkt nur einen bestimmten
diskreten Wert annehmen, der Farbe oder Grauwert darstellt. Im
Computer ist das Resultat des „Sehens“ also eine Punktmatrix, deren
Einträge entsprechend einem Farbmodell diskrete Werte zur
Repräsentation der reflektierten elektromagnetischen Strahlung besitzen.

Vorverarbeitung
Zu den Vorverarbeitungsschritten in modernen Systemen zählt die
automatisierte Segmentierung, die eine Fokussierung auf interessant
erscheinende Bereiche der Eingabeszene erlaubt. Auch die Extraktion
von Farbinformationen und das Erstellen von Konturkarten und
Eckenmodellen lassen sich hier eingliedern.

Erkennen
Zur Erkennung von Objekten, d.h. zur Detailanalyse extrahierter
relevanter Bildregionen existieren verschiedenste mathematische, bzw.
algorithmische Ansätze. Verfahren, die auf der Basis von geometrischer
oder logischer Information über die zu erkennenden Objekte arbeiten
(siehe Kapitel 5) sind ebenso möglich wie Verfahren, die verstärkt auf
die Detektion spezifischer Konturen abzielen und diese anzupassen
versuchen (siehe Kapitel 6). Andere Verfahren versuchen eine möglichst
exakte Ähnlichkeitsbeziehung zwischen einer Region im Eingabebild
und einem bereits bekannten Beispielbild herzustellen (Kapitel 7).

Bildverstehen
Da im Detail noch nicht verstanden ist, wie die Kombination der
Verarbeitungsergebnisse im Gehirn von statten geht, muss man sich in
Objekterkennungssystemen mit sequenzieller Komposition behelfen. Im
Allgemeinen arbeiten Objekterkennungssysteme so, dass zunächst eine
Klassifikation der Objekte einer Szene erfolgt und danach auf Basis eines
bezüglich der Klassifikation angepassten Modells die Position und
Orientierung bestimmt wird.
Zusammenfassend kann man sagen, dass das Ziel der automatisierten
Objekterkennung die performante und robuste Analyse einer Eingabeszene und
die Erzeugung einer geeigneten Repräsentation der darin vorkommenden Objekte
ist. Zusätzlich ist es von Vorteil, wenn das Verfahren nicht nur mit bestimmten
Umgebungsbedingungen umgehen kann, sondern sich adaptiv verhält. Es sollte
beispielsweise möglich sein, die Umwelt durch Veränderung der
Helligkeitsparameter
zu
beeinflussen,
z.B.
durch
Einschalten
der
Raumbeleuchtung, ohne dass die Objekterkennung deshalb versagt.
9
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Das in dieser Arbeit entwickelte System implementiert ein Objekterkennungsverfahren, das eine Klassifikation der Objekte über das Herstellen einer
Ähnlichkeitsbeziehung und deren Optimierung erreicht. Verfahren diese Typus
werden Template-Matching Verfahren genannt.
1 . 3 T e m p l a t e - Ma t c h i n g
Verbreitete Verfahren der zur Objekterkennung sind die sogenannten TemplateMatching Verfahren. Template-Matching Verfahren basieren auf einer sehr
einfachen, intuitiv verständlichen Idee: Zunächst wird ein Beispielbild eines
Gegenstandes, z.B. eines Stifts erzeugt. Anschließend wird ein Bild z.B. eines
Tisches untersucht, auf dem sich der Stift befindet, indem das Beispielbild der
Reihe nach an allen Positionen im Bild ausprobiert wird. Dieser Vorgang wird als
Matching bezeichnet. Die Position mit der besten Ähnlichkeit ist dann die
wahrscheinlichste Position des Stiftes auf dem Bild.
Obwohl dies sehr einfach scheint, ist die Umsetzung eines effizienten Verfahrens
doch recht komplex. Zunächst gibt es nicht das eine Template-Matching, sondern
Template-Matching Verfahren stellen eine ganze Klasse von Verfahren dar. Im
Detail können verschiedene Ansätze gewählt werden um für einen spezifischen
Problemraum ein optimales Ergebnis zu erzielen. Einige Vorüberlegungen
bezüglich der Charakteristika des Problems sind dazu notwendig:

10
Ähnlichkeitsmaß
Zunächst muss eine Entscheidung bezüglich des Ähnlichkeitsmaßes
getroffen werden. Es existieren Maße zur Analyse absoluter, linearer
oder nichtlinearer Ähnlichkeitsbeziehungen. Absolute Ähnlichkeitsbeziehungen treten in der Praxis kaum auf, da die Ähnlichkeit nur
unter Laborbedingungen effizient berechnet werden kann. Lineare
Ähnlichkeiten treten auf, wenn sich Umgebungsbedingungen bezüglich
der Helligkeit und Kontrastverhältnis im Template und Vergleichsbild
unterscheiden dürfen. Nichtlineare Ähnlichkeiten kommen vornehmlich
bei Vergleichsbildern vor, die unter Verwendung unterschiedlicher
Methoden aufgenommen wurden (z.B. ein CT- und ein MRT-Bild in der
Medizin). Außerdem besteht die Möglichkeit, Ähnlichkeiten nur auf
Basis gewisser extrahierter Randbedingungen, z.B. der Kontur zu
bestimmen. Es stellt sich also die Frage, in welche der Ähnlichkeitsklassen sich das Problem einordnen lässt.
ERROR! USE

HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Suchstrategie
Wie oben erwähnt, möchte man untersuchen, an welcher Stelle im Bild
das Template am besten passt. Hierzu könnte man als ersten Ansatz
einfach jede mögliche Position ausprobieren. Leider zeigt sich, dass als
Freiheitsgrade für die Position eines Templates im Normalfall nicht nur
Translationen vorkommen, sondern auch verschiedene Rotationen und
Skalierungen sowie eventuell projektivische Transformationen möglich
sind. Im schlechtesten Fall existieren in einer 2D-Szene also bis zu acht
Freiheitsgrade. Wollte man diese alle untersuchen, wäre die Performanz
des Systems inakzeptabel, da der Suchraum exponentiell mit der Zahl
der Freiheitsgrade wächst. Da sich das Problem der Suche in einem
hochparametrisierten Raum aber als Optimierungsproblem ausdrücken
lässt, können neben intuitiv logischen auch mathematische Werkzeuge
zur Anwendung kommen.
Abbildung 1.7: Template-Matching (1)
Beim Template-Matching wird versucht, Beispielbilder (links) auf die Eingabeszene (rechts) zu
matchen und mit Hilfe eines Ähnlichkeitswertes die optimale Position zu ermitteln.
(Quelle: Eigene Darstellung)
Im JAST-Projekt sind die Anforderungen an das Objekterkennungssystem nicht
statisch, da z.B. über die Anbringung einer Kamera am Greifer des Roboters zur
Detailanalyse nachgedacht wird. Daher kann der Problemraum nicht soweit
eingeschränkt werden, dass man sich bei der Umsetzung auf die Wahl eines
Ähnlichkeitsmaßes und einer Suchstrategie beschränken kann. Zu diesem Zweck
wird das Objekterkennungssystem so generisch konzipiert und weitestgehend
implementiert, dass durch einfaches Setzen einiger Konfigurationsparameter ein
anderes Ähnlichkeitsmaß, bzw. eine andere Suchstrategie gewählt werden kann.
Die Evaluation der verschiedenen Kombinationsmöglichkeiten soll dann mit
wenig Aufwand möglich sein.
Die Baufix-Domäne birgt aber noch ganz andere Probleme, die bei der
Implementierung eines Template-Matching Verfahrens Beachtung finden müssen.
11
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Beispielsweis kann nicht davon ausgegangen werden, dass jeweils zu jedem
Template maximal ein Bauteil auf dem Tisch liegt. Prinzipiell muss das System
also so konzipiert werden, dass mehrere Objekte gleichen Typs, die in einer
Eingabeszene vorkommen können, ebenfalls erkannt werden.
Außerdem ist ein gewichtiges Problem jeglicher Objekterkennungsverfahren die
teilweise Überlagerung von Objekten. Eine frühere Implementierung des
Objekterkennungssystems für das JAST-Projekt zeigte eben hier Schwächen (siehe
Kapitel 5). Template-Matching scheint ein geeigneter Ansatz, weil damit auch
diesen Problemen begegnet werden kann.
Abbildung 1.8: Template-Matching (2)
Template-Matching bei teilverdeckten Objekten. Z.B. wird das Rad erkannt, obwohl es teilweise
von der Leiste verdeckt wird.
(Quelle: Eigene Darstellung)
1.4 Zielsetzung der Arbeit
Hauptziel dieser Diplomarbeit ist die Konzeption und Implementierung eines
effizienten Verfahrens zur Erkennung der Baufix-Objekte, die vor dem JASTRoboter auf dem Tisch liegen. Dabei soll besonderes Augenmerk auf die im
letzten Abschnitt angesprochenen Probleme gelegt werden. So ist es unerlässlich
die Schwächen der ersten Implementierung der Objekterkennung bezüglich sich
überlagernde Objekte weitestgehend zu beseitigen. Template-Matching verspricht
hier gute Ergebnisse. Weiterhin ist ein Ziel die Erweiterung des bestehenden
Systems mit dem Zweck, die Robustheit und die Geschwindigkeit der Erkennung
zu verbessern. Auch hier verspricht Template-Matching unter Berücksichtigung
verschiedener Optimierungen gute Ergebnisse.
Des Weiteren soll die Vorverarbeitung für das Template-Matching dahingehend
erweitert werden, dass sich das Modul zur Segmentierung, d.h. zur Extraktion
relevanter Bildregionen, automatisch veränderten Umgebungsbedingungen
12
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR HERE.
THE
APPEAR HERE.
anpasst. Adaptivität und Invarianz bezüglich solcher Veränderungen ist damit als
drittes Hauptziel der Diplomarbeit zu sehen.
Nebenbei soll das Modul zur Farbextraktion dahingehend verbessert werden, dass
die Hauptfarbkomponenten zuverlässiger ermittelt werden können. Auch ein
Modul zur Konturdetektion soll implementiert werden, da dies den TemplateMatching Verfahren teilsweise als Grundlage dient.
Zur Vereinfachung der Auswertung der implementierten Template-Matching
Verfahren soll das System so konzipiert werden, dass mit wenig Aufwand eine
Evaluierung
unter
Verwendung
verschiedener
Kombinationen
von
Ähnlichkeitsmaßen und Suchstrategien möglich ist.
Die schriftlichen Ausführungen zur Diplomarbeit gliedern sich in jeweils ein
Modul für die genannten Vorverarbeitungsschritte: Kapitel 2 beschäftigt sich mit
der Segmentierung, Kapitel 3 mit der Farbextraktion und Kapitel 4 mit der
Extraktion von Kanten und Ecken. Danach werden gängige Objekterkennungsverfahren detailierter beschrieben: in Kapitel 5 ein Verfahren auf Basis
geometrischer Invarianten und in Kapitel 6 ein Active-Shape-Model Verfahren, bis
in Kapitel 7 dann die theoretischen Grundlagen der im Zuge dieser Arbeit
implementierten Template-Matching Verfahren in aller Ausführlichkeit
beschrieben werden. In Kapitel 8 werden anschließend problemspezifische Details
zur Umsetzung der Template-Matching Verfahren im JAST-Projekt erläutert und
Kapitel 9 beschreibt eine Erweiterung des Systems und Verbesserung der
Performanz durch den Einsatz von Trackingalgorithmen. In den letzten Kapiteln
schließlich soll das umgesetzte System analysiert und die Verfahren evaluiert,
bzw. ein Ausblick bezüglich weiterer vorgesehener Ansätze zur Optimierung für
die Problemdomäne des JAST-Projekts gegeben werden.
13
2
Segmentierung
Eine zentrale Rolle bei der Vorverarbeitung von Bildern spielt die Segmentierung.
Sie bildet die Grundlage aller weiteren Verarbeitungsschritte. Unter
Segmentierung versteht man die Einteilung des Eingabebildes in unabhängige
flächige Bereiche [SteRa]. Die Segmente werden auf Basis von kontextabhängigen
Kriterien gebildet, so können z.B. einheitlich farbige Flächen, Flächen mit
ähnlicher Textur oder durch eine Kontur begrenzte Flächen zu einem Bildsegment
verschmolzen werden. Da in der vorliegenden Arbeit keine texturierten Objekte
vorkommen und die Berechnung der Konturen aufgrund der Möglichkeit sich
überlagernder Objekte schwierig ist, wird die Segmentierung in den folgenden
Abschnitten anhand einer Farbanalyse erläutert.
Zunächst sollen einige der gebräuchlichsten Verfahren zur Segmentierung erklärt
werden und danach das im Verlauf der Arbeit entwickelte Verfahren am Beispiel
dargestellt werden.
2 . 1 S t a t i s c h e Sc h we l l we r t v e r f a h r e n
Statische Schwellwertverfahren (engl. Thresholding) zählen allgemein zu den
pixelbasierten Verfahren in der Bildverarbeitung. Im Gegensatz zu Verfahren, die
mit morphologischen Operatoren (auch Nachbarschaftsoperatoren) arbeiten, muss
zur Analyse dabei lediglich jeweils ein Pixel des Eingangsbildes betrachtet
werden.
Statische Schwellwertverfahren definieren einen diskreten Schwellwert (den
sogenannte Threshold) einmalig. Er stellt das Maximum oder Minimum für einen
zu analysierenden Vergleichswert dar. Dieser Vergleichswert kann durch
sequentielle Auswertung aller Bildpunkte und Analyse jedes einzelnen gewonnen
werden. Zu jedem Pixel wird also der Wert, im Allgemeinen der Grauwert,
bestimmt und dieser mit dem Schwellwert verglichen. Liegt der Wert unter (oder
über) dem Schwellwert, so wird das Pixel entsprechend klassifiziert.
Durch Verschmelzen der so eingeordneten Pixel entstehen dann die gewünschten
Teilflächen, die Segmente.
15
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 2.1: Statische Schwellwertverfahren
Segmentierung mit einem Maximum-Schwellwertverfahren.
Links oben:
Originalbild
Rechts oben:
Wert < 200
Links unten:
Wert < 100
Rechts unten: Wert < 30
(Quelle: Eigene Darstellung)
Abbildung 2.1 zeigt entsprechend der Klassifizierung eingefärbte Bildpunkte bei
Verwendung eines statischen Schwellwertverfahrens auf einem Grauwertbild. Das
Eingangsbild ist in der Abbildung links oben zu sehen und enthält Werte im
Bereich [0, 255], was einer gängigen Farbtiefe von acht Bit entspricht. Das
entstehende Segment ist für verschiedene Maximum-Schwellwerte in den anderen
Teilbildern dargestellt.
Deutlich ist in der Abbildung zu sehen, dass das sich das entstehende Segment in
Abhängigkeit vom verwendeten Schwellwert stark unterschiedlich ausprägt. Hier
zeigt sich auch die große Schwäche der statischen Verfahren, nämlich die
Bestimmung eines geeigneten Schwellwertes. Abhilfe kann die Verwendung eines
adaptiven Verfahrens schaffen.
2 . 2 A d a p t i v e Sc h we l l we r t v e r f a h r e n
Adaptive Schwellwertverfahren (engl. adaptive Thresholding) arbeiten im
Allgemeinen nach einem ähnlichen Prinzip wie die globalen Verfahren. Pixel
werden also je nach Wert (meist nach dem Grauwert) klassifiziert und
anschließend zu Segmenten verschmolzen.
16
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Trotzdem zählen sie nicht zu den pixelbasierten Verfahren, da für die Berechnung
des Schwellwertes die Umgebung des betrachteten Pixels mit ausgewertet werden
muss. Solche Verfahren werden auch morphologische Verfahren genannt. Im
Gegensatz zu den globalen Schwellwertverfahren zeichnen sie sich also dadurch
aus, dass der verwendete Maximal- oder Minimalwert nicht einmalig zu Beginn
definiert, sondern stattdessen innerhalb einer bestimmten Marge mit Fortschreiten
des Verfahrens dynamisch berechnet wird. Dazu muss eine Umgebung des zu
bearbeitenden Pixels betrachtet werden. Man verwendet meist einen
quadratischen Ausschnitt. Auf Basis der Werte für die benachbarten Bildpunkte
wird dann der Schwellwert für das betrachtete Pixel relativ mit Hilfe eines
Nachbarschaftsoperators errechnet. Es eignet sich beispielsweise ein Median- oder
Mittelwertoperator.
Obwohl adaptive Schwellwertverfahren den Schwachpunkten der statischen
Verfahren begegnen, gibt es auch hier Szenarien, in denen die Verfahren versagen.
Zu nennen ist hier die Überadaption und sich daraus ergebende Fehlklassifikation
im Fall von unscharfen Grenzen der zu klassifizierenden Teilflächen. Das
Grauwertbild aus Abbildung 2.1 kann durch ein adaptives Verfahren
beispielsweise nur schlecht oder überhaupt nicht segmentiert werden, da durch
die stetige Anpassung der Schwellwerte keine scharfe Begrenzung des Segments
auszumachen ist und somit jedes Pixel potenziell zu beiden Bereichen gehören
kann (siehe Abbildung 2.2). In den Teilbildern ist der berechnete Schwellwert als
Hintergrundfarbe und der Grauwert des analysierten Pixels in der Mitte als
kleines Quadrat dargestellt.
Es zeigt sich, dass obwohl der Ausschnitt rechts oben weiter außen liegt als der
Ausschnitt links unten, der Mittelpunkt des rechten Ausschnitts als zum Segment
gehörig klassifiziert wird, während der Mittelpunkt des unteren Ausschnitts als
nicht zugehörig bestimmt wird. Insgesamt ergibt sich ein Bild, wie es im rechten
unteren Ausschnitt zu sehen ist. Saubere Segmentierung ist in diesem Beispielfall
also nicht möglich.
17
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 2.2: Adaptive Schwellwertverfahren
Links oben:
Originalbild
Rechts oben:
Grauwert des Mittelpunkts < berechneter Schwellwert
Links unten:
Grauwert des Mittelpunkts > berechneter Schwellwert
Rechts unten:
Segmentierung schwierig, da kaum zusammenhängende Flächen
(Quelle: Eigene Darstellung)
2.3 Bereichswachstumsverfahren
Weitere Verfahren zur Segmentierung sind die Bereichswachstumsverfahren
(engl. Region Growing). Bereichswachstumsverfahren können als statische oder
adaptive Verfahren implementiert werden.
Charakteristisch für Region Growing Verfahren ist die Verwendung eines
sogenannten Seed-Points. Als Ursprung einer Region wird hierbei ein Bildpunkt
zufällig gewählt und mit Hilfe einer Toleranz in der meist quadratischen
Umgebung des Ursprungs die Zugehörigkeit der Nachbarpixel zur Region
bestimmt. Iterativ wird der Vorgang für die nun zur Region gehörenden
Bildpunkte wiederholt, bis ein Bildpunkt als nicht zugehörig klassifiziert wird.
Dieser Bildpunkt wird dann zum Seed-Point eines neuen Segments. Das
Verfahren terminiert, sobald alle Punkte des Eingabebildes einem Bereich
zugeordnet sind (siehe Algorithmus 12.2.1).
Kritisch wirkt sich bei diesen Verfahren die Wahl des Toleranzwertes auf die
Anzahl und Form der entstehenden Segmente aus. Wird der Toleranzwert zu
gering gewählt, so entstehen zu viele Segmente und die Segmentierung ist
18
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
unbrauchbar, da zu einem Segment gehörende Teilflächen nicht verschmolzen
werden. Analog entstehen zu wenige Segmente, falls der Toleranzwert zu groß
gewählt wird. Flächige Bereiche können in diesem Fall also nicht sauber
voneinander getrennt werden (siehe Abbildung 2.3).
Abbildung 2.3: Bereichswachstumsverfahren
Links oben: Originalbild
Rechts oben: zu große Toleranz
Links unten: zu kleine Toleranz
Rechts unten: gut gewählte Toleranz
(Quelle: Eigene Darstellung)
Wird ein Bereichswachstumsverfahren adaptiv implementiert, so unterscheidet es
sich nur dadurch von einer statischen Implementierung, dass als Referenzwert für
die Bestimmung der Zugehörigkeit eines Bildpunktes zu einer Region nicht der
Wert des Seed-Points, sondern ein Durchschnittswert aller bisher zu einer Region
gehörenden Bildpunkte verwendet wird.
2 . 4 S e gm e n t i e r u n g i m J A S T - Pr o j e kt
Da die Verarbeitung eines vollständigen XGA-Bildes (1024×768 Pixel) für ein
Echtzeitsystem zu viel Zeit in Anspruch nehmen würde, ist das Ziel der
Segmentierung im JAST-Projekt die Eingrenzung des Eingabebildes auf bestimmte
Bildregionen, die sogenannten Regions-Of-Interest (ROI), auf die die dann
folgenden Verarbeitungsschritte beschränkt werden können.
Die Objekterkennung des JAST-Projektes implementiert ein Verfahren zur
Segmentierung, das sowohl statische als auch adaptive Komponenten enthält.
19
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Grundannahme des Verfahrens ist dabei das Vorhandensein eines einfarbigen
Hintergrundes. Da jedoch Objekte sowohl heller, als auch dunkler als der
Hintergrund sein können, ist die Verwendung eines Schwellwertverfahrens nicht
ohne Weiteres möglich. Vielmehr ist ein Referenzwert für die Hintergrundfarbe zu
bestimmen und auf Basis dieses Referenzwertes inklusive einer ebenfalls zu
bestimmenden Toleranz die Segmentierung durchzuführen. Das Verfahren ähnelt
also einem Region Growing Verfahren, kommt jedoch ohne die zufällige Auswahl
eines Seed-Points aus, da der Referenzwert, der dem Farbwert des Seed-Points
entspricht, dynamisch ermittelt wird. Dennoch weist das System auch Ähnlichkeit
mit den Schwellwertverfahren auf, da ein globaler Referenzwert ermittelt wird
und als Grundlage des Verfahrens dient. Im Prinzip kann das implementierte
Verfahren als Komposition aller bisher in diesem Abschnitt beschriebenen
Verfahren verstanden werden.
Die Segmentierung erfolgt im Detail in den drei Schritten, wie sie in den
folgenden Abschnitten beschrieben werden.
2 . 4 .1 V o r b e r e i t u n g
Um Rauschen und Pixelfehler im Originalbild zu beseitigen wird vor der
Bestimmung des Referenzwertes für den Hintergrund das Eingabebild geglättet.
Hier findet ein Gauß-Filter Anwendung. Gauß-Filter zählen zu den Nachbarschaftsoperatoren, d.h. sie berechnen den Wert eines zu bearbeitenden
Bildpunktes auf Basis seiner Nachbarn neu. Konkret wird der Wert eines jeden
Bildpunktes durch die Werte seiner Nachbarpixel gewichtet. Die Formel für die
verwendete multivariate Gaußverteilung für zwei Eingabeparameter (siehe
Abbildung 2.4) lautet:
 x2  y 2 
G ( x, y) 
exp 
2 
2 2
 2 
1
Um aus dieser Form einen Operator zu gewinnen wird für die Parameter x und y
jeweils ein diskretes Intervall um den betrachteten Bildpunkt und für die
Standardabweichung  ein konstanter Wert gewählt. Der kleinstmögliche so
konstruierbare Operator ist eine 3×3-Maske der Form [RadBv]:
1 
1 2 1 
1
1
1
G 2  1 2 1   2    2 4 2 
4
4
16
1 
1 2 1 
20
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Der Operator G 2 kann also als Approximation der multivariaten Gaußverteilung
verstanden werden, da, würde man die Matrix als Funktion zeichnen, sie der
mehrdimensionalen Glockenkurve ähnelt. Mit Hilfe einer Maske dieser Form
lassen sich extreme Einzelpunktwerte und Pixelfehler sehr gut bereinigen.
Abbildung 2.4: Multivariate Gaußverteilung
Eine Visualisierung der Gaußverteilung für zwei Eingabeparameter und konstante
Standardabweichung.
(Quelle: [CatPhi])
2 . 4 .2 S e gm e n t i e r u n g
Sind der Referenzwert für den Hintergrund und die Toleranz für jede der
Dimensionen des verwendeten Farbraums bestimmt (siehe Abschnitt 2.4.3), so
kann mit der Segmentierung des Eingabebildes begonnen werden. Bei der
Segmentierung muss jeder Bildpunkt des Eingabebildes dahingehend untersucht
werden, ob er zum Hintergrund gehört, oder ob es sich um ein zu einem Objekt
gehöriges Pixel handelt. Sobald diese Zuordnung durchgeführt wurde, werden
die als Objektpunkte klassifizierten Pixel ähnlich wie bei einem
Schwellwertverfahren zu Segmenten verschmolzen. Dies wird durch einen
rekursiven Grouping-Algorithmus erreicht, siehe Algorithmus 12.2.2.
21
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 2.5: Segmentierte JAST-Szene
Links:
Originalaufnahme einer JAST-Szene
Rechts
Segmentierte Szene mit Bounding-Boxes um die gefundenen Regionen
(Quelle: Eigene Darstellung)
Eine Konstante, der Suchradius, gibt während des Gruppierens der Punkte die
maximale Entfernung an, bis zu der ein Nachbarpunkt als zu einer Region
gehörend betrachtet wird. Ergebnis der Segmentierung sind dann die ROI, also
gewünschte Bildregionen, die für die Objekterkennung von Interesse sind (siehe
auch Abbildung 2.5). Von den ROI sind nun die Ausdehnung (Bounding-Box)
sowie alle zu einem potenziellen Objekt gehörigen Punkte bekannt.
2 . 4 .3 A d a p t i o n
Im laufenden Betrieb der Objekterkennung für das JAST-Projekt wird im Modul
zur Segmentierung unter bestimmten Voraussetzungen ein Adaptionszyklus
ausgelöst. Ein Adaptionszyklus besteht aus einer Reihe von Versuchen, bessere
Parameter für die Segmentierung zu finden. Dazu wird zunächst der
Referenzwert für die Hintergrundfarbe neu bestimmt (siehe Abschnitt 2.4.3.1).
Anschließend müssen die Toleranzwerte für jede Dimension des Farbraums für
den Referenzwert, im Folgenden auch Parametersatz genannt, neu festgelegt
werden (siehe Abschnitt 2.4.3.2).
Ursache für das automatische Auslösen eines Adaptionszyklus können
Veränderungen in den Umgebungsbedingungen sein, wie sie zum Beispiel durch
Anschalten der Raumbeleuchtung auftreten. Formaler muss eine der folgenden
konkreten Bedingungen erfüllt sein, damit die Anpassung der Parameter für die
Segmentierung durchgeführt wird:
1. Die Anzahl der gefundenen Segmente unterscheidet sich sehr stark
(empirischer Wert: ±30%) von der Anzahl der Segmente in der zuletzt
22
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
analysierten Szene. Schaltet der Benutzer beispielsweise das Licht ein oder
wird ein Vorhang vorgezogen, so ist diese Bedingung leicht erfüllt.
2. Die Anzahl der gefundenen Segmente übersteigt eine vernünftige Größe
(empirischer Wert: 50).
3. Die Objekterkennung wird initialisiert, d.h. es existiert noch kein
Referenzwert für die Hintergrundfarbe und ein geeigneter Parametersatz ist
noch nicht bekannt.
4. Der Benutzer löst durch Drücken der t-Taste auf der Tastatur die Anpassung
manuell aus.
5. Die maximale Anzahl von Objekterkennungs- bzw. Trackingzyklen ohne
Anpassung wird im laufenden System überschritten. Dieser Maximalwert
kann in der Konfigurationsdatei parametriert werden (siehe Anhang 12.1).
6. In den Arbeitsschritten seit der Analyse der letzten Szene sind Fehler
aufgetreten. Eigens für diesen Fall wird eine Fehlervariable mitgeführt, die
einen solchen Fehler anzeigt.
2 . 4 .3 . 1 B e s t i m m e n d e s R e f e r e n z we r t e s
Wurde durch Erfüllen einer der oben beschriebenen Bedingungen ein
Adaptionszyklus ausgelöst, so wird zunächst der Referenzwert für die
Hintergrundfarbe neu festgelegt. Nachdem das Eingabebild geglättet wurde, wird
der Referenzwert dazu mit Hilfe eines Histogramms bestimmt.
Bei der Berechnung eines Histogramms wird für jeden möglichen Farbwert des
verwendeten Farbraums ein Zähler eingeführt. Dann wird der Farbwert jedes
Bildpunktes ermittelt und der entsprechende Zähler inkrementiert. Die Summe
aller Zählerwerte ergibt also nach Betrachtung aller Bildpunkte genau die Anzahl
aller Punkte des Eingabebildes. In Abbildung 2.1 ist ein Histogramm für ein
Grauwertbild einer typischen Szene der Objekterkennung im JAST-Projekt
dargestellt.
23
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 2.6: Histogramm
Links:
Grauwertbildes einer typischen JAST-Szene
Rechts: Histogramm der Szene
(Quelle: Eigene Darstellung)
Da sich die Farbwerte der Hintergrundpixel nur durch unterschiedliche
Ausleuchtung der Szene unterscheiden, kann der Hintergrund als einfarbig
angenommen werden, falls ein Farbraum verwendet wird, der sich invariant
gegenüber Unterschieden in der Helligkeit verhält - z.B. der HSV-Raum.
Da außerdem die Annahme getroffen werden kann, dass die meisten Pixel des
Eingabebildes Hintergrundbildpunkte darstellen, repräsentiert der Zähler mit
dem höchsten Wert den Hintergrundfarbton. Der zu diesem Zähler gehörende
Farbwert bestimmt also den Referenzwert für die Hintergrundfarbe.
2 . 4 .3 . 2 B e s t i m m e n d e r T o l e r a n z e n
Durch die oben angesprochene unterschiedliche Ausleuchtung einer Szene ergibt
sich der Referenzwert für die Hintergrundfarbe trotzdem nicht ganz eindeutig
(siehe auch Abbildung 2.6). Wäre der Wert eindeutig, so entstünde bei der
Berechnung des Histogramms genau ein Spitze für den Farbwert der
Hintergrundfarbe, de facto entsteht jedoch ein Gipfel mit nach allen Seiten
abfallenden Flanken im Histogramm. Damit auch die Bildpunkte als Hintergrund
erkannt werden, die durch die Flanken repräsentiert werden, muss also mit
Toleranzen für jede Dimension des Farbraumes gearbeitet werden. Hier wird ein
iteratives Verfahren angewandt, das sich in drei Teilschritte untergliedern lässt:

24
Auswahl der Toleranzwerte
Toleranzwerte werden aus einem vorgegebenen Intervall zufällig
ausgewählt. Die Intervallgrenzen entsprechen dabei dem Wertebereich
der jeweiligen Dimension des verwendeten Farbraumes, also bei HSV
z.B. in der Dimension H: [0, 360], S: [0, 255] und V:[0, 255]. Im
Allgemeinen bilden demnach drei solche zufällige Toleranzwerte einen
Parametersatz.
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.

Segmentierung
Für das Eingabebild wird ein Histogramm berechnet und der
Referenzwert für die Hintergrundfarbe bestimmt. Mit Hilfe der vorher
bestimmten Toleranzwerte wird anschließend die Klassifikation der
einzelnen Bildpunkte durchgeführt. Danach können die klassifizierten
Pixel zu Segmenten, den späteren Objekten, verschmolzen werden.

Regionenvergleich
Es existiert keine objektive Gütefunktion, mit deren Hilfe man das
Ergebnis der Segmentierung für ein einzelnes Eingabebild bewerten
könnte, weil keine Invariante gefunden werden kann, die angibt, ob ein
gewählter Parametersatz von Toleranzwerten gute oder schlechte
Ergebnisse liefert. Um dennoch ein objektives Maß für die Güte des
Parametersatzes berechnen zu können, kann folgender Trick angewandt
werden:
Die Segmentierung wird nicht nur auf einem Bild durchgeführt, sondern
es werden mehrere Bilder verarbeitet, wobei sich die einzelnen
Aufnahmen der gleichen Szene durch ihre Skalierung unterscheiden
oder bei der Segmentierung verschiedene Suchradien verwendet
werden. Der gewichtete quadratische Fehler Er ( p ) für einen möglichen
Parametersatz wird in Abhängigkeit von einem vorher bestimmten
Referenzwert r (siehe Abschnitt 2.4.3.1) berechnet, indem man die
Anzahl der gefundenen Segmente und deren Position sowie ihre Größe
vergleicht:
Er ( p) 

 f f si  f s j
 p,r  simin

Si , s j S j
f

F
i  j i , jN



 
2
Die Menge N p , r bezeichnet die Menge der bezüglich eines
Parametersatzes p segmentierten Aufnahmen der gleichen Szene, die
sich durch ihre Skalierung und den bei der Segmentierung verwendeten
Suchradius unterscheiden. Si , bzw. S j sind die Mengen der Segmente,
die für ein Bild i , bzw. j aus N p , r bei der Segmentierung entstehen. F
bezeichnet die Menge der zu vergleichenden Features einer Region Si ,
bzw. S j , also in der konkreten Implementierung des Verfahrens für das
JAST-Projekt die Größe und Position eines Segments.
Jedes der Features
f si
eines Segments
Si
wird also mit dem
Referenzfeature f s j aller Segmente S j eines anderen Bildes aus N p , r
verglichen
und
das
Minimum
des
Produkts
aller
gewichteten
25
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Vergleichswerte bestimmt. Es tragen also nur die Unterschiede der am
besten zusammenpassenden Segmenten aus Bild i und Bild j zur
Fehlersumme bei.  f steht dabei für die Gewichtung eines
Vergleichsfeatures f  F .
Auf Basis der berechneten Fehlersumme lässt sich dann eine
Gütefunktion g r ( p ) wie folgt darstellen:
1
1

g r ( p )  2  1  exp   Er ( p)   
2

Die Sigmoidfunktion 1/ 1  e  x  fungiert hier als Normalisierer und
skaliert die Güte auf ein Intervall [0,1], Da der Fehler durch quadrieren
der Differenz immer positiv ist, muss die Funktion so formuliert
werden, dass der Fehler im Bereich [0,∞] reziprok auf das praktischer
verwendbare Einheitsintervall skaliert wird. g r ( p ) spezifiziert eine
solche Funktion und gibt die Güte im Einheitsintervall an. Entsprechend
g r ( p ) ist ein Parametersatz umso optimaler, je besser die Anzahl, Größe
und Position der gefunden Segmente übereinstimmen, je näher der Wert
g r ( p ) also an eins liegt.
Wird durch das beschriebene Verfahren ein Parametersatz p gefunden, der den
Anforderungen genügt, so werden die Toleranzwerte und der Referenzwert
gespeichert und die Anpassungsphase ist abgeschlossen. Falls p den
Anforderungen nicht entspricht, wird ein neuer Parametersatz, d.h. neue
Toleranzwerte, zufällig bestimmt und das Verfahren wiederholt sich.
26
3
Farbextraktion
Ein wichtiges Hilfsmittel zur Klassifikation von Objekten
Anwendungsgebieten ist die Information über deren Farbe.
in
vielen
Im JAST-Projekt ist für die Weiterverarbeitung der von der Objekterkennung
bereitgestellten Objekte die Kenntnis der Farbe der Objekte sogar von
entscheidender Wichtigkeit. Möchte z.B. ein Benutzer, dass der Roboter einen
grünen Würfel und eine gelbe Schraube zusammenfügt, so muss die benötigte
Farbinformation von der Objekterkennung zur Verfügung gestellt werden.
Bevor jedoch einem Objekt eine Farbe zugewiesen werden kann, muss zunächst
die Farbe der entsprechenden Bildregion bestimmt werden, in der sich das Objekt
befindet. Falls sich nur ein Objekt in der Bildregion befindet, steht damit die
benötigte Farbinformation zur Weiterverarbeitung sofort fest. Außerdem
erleichtert die Kenntnis der Farbkomponenten die Erkennung der Objekte, da auf
Basis der Farberkennung oftmals bestimmte Objekte schon von vorne herein
ausgeschlossen werden können, weil Minimalwerte für die Übereinstimmung von
gefundenen Objekten und Templates (siehe Abschnitt 7.2.3) entsprechend der
extrahierten Farbe einer zu untersuchenden Bildregion optimiert werden können.
So könnte beispielsweise ein Objekt mit hoher Übereinstimmung beim TemplateMatching (siehe Kapitel 7) abgewertet werden, wenn bekannt ist, dass die Farbe
des Templates in der Vergleichsregion nicht enthalten ist.
Als Ergebnis der Farbextraktion bei der JAST-Objekterkennung werden die in der
Segmentierungsphase erzeugten Regions of Interest um Attribute für die
extrahierten Farbfeatures erweitert. D.h. für die Bildregionen stehen nun die
Hauptfarbkomponenten und die Objektpunkte fest, die zu einer der Hauptfarben
gehören (siehe Abbildung 3.1).
27
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 3.1: Farbextraktion
Links:
Originalbild einer JAST-Szene
Rechts: Extrahierte Hauptfarbkomponenten (oben links an einer Region) und zu diesen Farben
gehörende Objektpunkte der Region
(Quelle: Eigene Darstellung)
3 . 1 F a r b r a u m u n d H i s t o gr a m m
Für die Extraktion der Farben ist die Wahl des Farbraumes nicht unerheblich.
Grundsätzlich funktioniert das im Folgenden beschriebene Verfahren zwar für alle
Farbräume, jedoch bringt die Transformation des ursprünglich meist in RGB
vorliegenden Eingabebildes einige Vorteile mit sich. So kann z.B. ein Farbraum
gewählt werden, in dem der Farbwert unabhängig von Helligkeit und Grauanteil
vorliegt, wie der HSV-Raum. Dann muss für die Extraktion lediglich eine
Dimension betrachtet werden die Performanz der Farbanalyse lässt sich sehr
verbessern.
Prinzipiell basiert die Farbanalyse auf der Auswertung der Farbwerte der Punkte,
die durch die Segmentierung als zu einem Objekt gehörig klassifiziert wurden.
Für jeden Objektpunkt in einer Region wird also der Farbwert ermittelt und
abhängig vom verwendeten Farbraum ein Histogramm erstellt. Das spezielle
Histogramm enthält für jeden Farbwert nicht nur einen Zähler, wie in Abschnitt
2.4.3.1 beschrieben, sondern zusätzlich einen Zeiger auf die Punkte, deren
Farbwerte gezählt wird. Diese Information geht normalerweise bei der
Berechnung eines Histogramms verloren.
Um die Performanz der Farbextraktion weiter zu verbessern, wird für jede
Dimension des verwendeten Farbraums die Anzahl der möglichen Werte
verringert. Bei der Analyse werden die Farbwerte der Bildpunkte gerundet und
entsprechend zugeordnet. Die Anzahl der möglichen Werte kann in der
Konfiguration parametriert werden.
28
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Schließlich liegt für jede Bildregion ein ein- oder mehrdimensionales Histogramm
vor, das eine konfigurierbar genaue Zuordnung der Farbwerte der Objektpunkte
in einer Region enthält. Außerdem ist für jeden Farbwert des Histogramms immer
noch ersichtlich, welche Bildpunkte den Zählerwert ausmachen.
3.2 Hauptfarbkomponenten
Da es Ziel der Farbanalyse ist, für jede Region die Hauptfarbkomponenten zu
ermitteln, müssen aus dem vorher erzeugten Histogramm diejenigen Farben
berechnet werden, die die höchsten Zählerwerte haben. Hier zeigt sich, dass die
Wahl des HSV-Farbraums zur Farbextraktion von großem Vorteil ist, da das
Histogramm nur eine Farbdimension besitzt, den Hue-Wert, und sich somit die
nun notwendige absteigende Sortierung der Zählerwerte für die Farbwerte auf
nur eine Dimension beschränken lässt.
Abhängig von der Konfiguration der Farbextraktion kann es vorkommen, dass als
Hauptfarbkomponenten sehr ähnliche Farben extrahiert werden, denn die
Unterscheidung erfolgt sehr feingranular, falls viele Werte zugelassen werden. Die
extrahierten Farben taugen somit nur bedingt zur Weiterverarbeitung. Deshalb ist
es möglich, dass bezüglich des Farbwerts ähnliche extrahierte maximale
Zählerwerte im Histogramm nachträglich vereinigt werden. In der Praxis zeigt
sich, dass dieses Vorgehen das Ergebnis der Hauptfarbanalyse stark verbessern
kann. Dennoch ist dies nur zu empfehlen, falls die Extraktion der Farben mit Hilfe
der Rundung bei der Einordnung in das Histogramm (siehe vorheriger Abschnitt)
aufgrund der Umgebungsbedingungen nicht gut zu parametrieren ist, da sich die
Performanz durch das Vereinigen verschlechtern kann.
Sind die Zähler der Farbwerte des Histogramms schließlich absteigend geordnet
und gegebenenfalls ähnliche Farbwerte nachträglich zusammengeführt, so können
die Hauptfarbwerte extrahiert werden. Um die Anzahl der extrahierten Farben zu
begrenzen, wird ein prozentualer Wert in der Konfiguration eingeführt, der
angibt, welchen Wert ein Zähler im Histogramm mindestens im Verhältnis zur
gesamten Anzahl der Objektpunkte haben muss, um als Hauptfarbkomponente zu
gelten.
29
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 3.2: Hauptfarbkomponenten
Links:
Geeignete Parameter für die Farbextraktion.
Rechts: Weniger geeignete Parameter können zu Fehlfarben führen.
(Quelle: Eigene Darstellung)
30
4
Formextraktion
Inhalt dieser Arbeit ist die Entwicklung eines effizienten und robusten TemplateMatching-Verfahrens zur Erkennung von Objekten der Baufix-Domäne. Um den
Suchraum beim Template-Matching soweit wie möglich einschränken zu können
und so die Performanz des Systems zu verbessern, ist es von Vorteil, geometrische
Informationen über die Objekte in einer Bildregion zu extrahieren. Stehen
beispielsweise Informationen über Konturen oder Ecken zur Verfügung, kann die
Suche zunächst auf diejenigen Objektpunkte konzentriert werden, die zugleich
Konturpunkte, bzw. Eckenpunkte darstellen, da sie intuitiv die besten MatchingErgebnisse versprechen.
In der Literatur existieren vielfältige Verfahren zur Extraktion von Konturen und
Bestimmung von Ecken. Einige der bekanntesten Verfahren sollen in diesem
Kapitel dargestellt werden und auf ihre Relevanz in der JAST-Objekterkennung
untersucht werden.
4 . 1 H i t - O r - Mi s s O p e r a t o r
Das wohl einfachste Verfahren zur Extraktion von Kanten oder Ecken ist die
Anwendung eines Hit-Or-Miss (HOM) Operators. Der Operator zählt zu den
morphologischen Operatoren und dient zur Erkennung von Kanten, bzw.
Konturen vornehmlich in Binärbildern. In einem Binärbild erhält jedes Pixel einen
Wert aus der Binärmenge {0; 1}.
Zum Beispiel kann die Erkennung von Konturen in Binärbildern insofern einfach
gestaltet werden, als dass eine Binärmaske, der HOM-Operator, definiert wird, die
dann mit Hilfe eines logischen Äquivalenz-Operators mit einer entsprechend
großen Umgebung um den Bildpunkt punktweise verknüpft wird, für den
bestimmt werden soll, ob er Teil der Kontur ist. Die Anwendung kann für
rechteckige Binärmasken O folgendermaßen formalisiert werden:

k ( p, O)  nx  n my  m  ox  n, y  m  I ( p, x, y ) 

31
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
I ( p, x, y ) liefert dabei den Binärwert des zu verknüpfenden Referenzpunktes p
im Bild:

 x 
I ( p, x, y)  value  p    
 y 

Teil einer Kontur ist ein Punkt p genau dann, wenn k ( p, O ) den Wert true für
einen der Kanten-HOM-Operatoren O annimmt. Dies ist genau dann der Fall,
wenn eine Äquivalenz bei der Anwendung des HOM-Operators an jeder Stelle
der Maske bezüglich der entsprechenden Stelle im Binärbild besteht. ox , y
bestimmt dabei den zu vergleichenden Eintrag der Operatormaske mit 2n 1 als
Ausdehnung in der Horizontalen und 2m  1 in der Vertikalen. Für die
Kantendetektion könnten die 3×3 HOM-Operatoren z.B. folgendermaßen
aussehen:
0 0 0 
OH  1 1 1  ,
1 1 1 
1 1 0 
OV  1 1 0 
1 1 0 
Ein Konturpunkt muss dann die folgende Bedingung erfüllen, d.h. entweder zu
einer vertikalen oder horizontalen Kante gehören.
K ( p)  k ( p, OH )  k ( p, OV )  k ( p, OHT )  k ( p, OVT )  true
Obwohl, oder gerade weil der HOM-Operator der einfachste der Operatoren zur
Ecken- oder Kantendetektion ist, ist er einer der am weitesten verbreiteten. Auch
die Kantendetektion der Objekterkennung für das JAST-Projekt verwendet diesen
Operator aufgrund seiner Einfachheit und der Tatsache, dass das Modul zur
Segmentierung ein Binärbild liefert, das mit diesem Operator sehr einfach
verarbeitet werden kann.
Abbildung 4.1 stellt exemplarisch die Anwendung eines HOM-Operators in
eindimensionaler Ausdehnung auf eine segmentierte JAST-Szene dar. Der Punkt,
auf den der Operator angewendet wird, ist hier durch ein weißes Kreuz markiert.
Im rechten unteren Ausschnitt der Abbildung ist das Ergebnis der Anwendung
dargestellt. Links schlägt die Anwendung des Operators fehl, d.h. der durch das
Kreuz markierte Punkt gehört in diesem Fall nicht zur Kontur, wohingegen die
Anwendung des Operators rechts erfolgreich ist und der Punkt korrekt als
Konturpunkt erkannt wird.
32
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Abbildung 4.1: HOM-Operator für vertikale Kanten
Links oben:
Segmentierte JAST-Szene
Rechts oben:
Detailansicht eines Szenenausschnitts
Links unten:
Hit-Or-Miss Operator
Rechts unten:
Anwendung des Operators auf den Szenenausschnitt
(Quelle: Eigene Darstellung)
Leicht kann man nachzuvollziehen, dass bei entsprechender Strukturierung des
HOM-Operators dieser nicht nur zur Kanten- sondern auch zur Eckendetektion
verwendet werden kann (siehe Abbildung 4.2).
Abbildung 4.2: Hit-Or-Miss Operator für Ecken
Links:
Hit-Or-Miss Operator für eine rechte obere Ecke
Rechts: Erfolgreiche Anwendung des Operators
(Quelle: Eigene Darstellung)
33
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
4.2 Kirsch-Operator
Auch der sogenannte Kirsch-Operator wird gerne zur Extraktion von Kanten (in
Grauwertbildern) verwendet. Der nichtlineare Operator berechnet die Richtung
des stärksten Gradienten aller betrachteten Richtungen [KirOp]. Dazu werden
Gradientenrichtungen in Schritten von 45° im Intervall [0,…,360°] ausgewertet.
Exemplarisch soll hier die Form der zur Berechnung verwendeten 3×3-Matrizen
für zwei der acht möglichen Richtungen gezeigt werden:
5 3 3
k0  5 0 3
5 3 3
ist die Form der Faltungsmatrix für die Berechnung des Gradienten in x-Richtung,
d.h. 0°,
k45
 3 3 3
  5 0 3
 5 5 3
die Form der Matrix für den Gradienten in 45°-Richtung ausgehend vom
betrachteten Bildpunkt. Wurde der Gradient in alle acht Richtungen berechnet,
lässt sich das Ergebnis des Kantenfilters hx , y für einen Punkt durch Auswertung
der stärksten Gradientenrichtung
1
1
hx, y  max   oij  I ( x  i, y  j )
oK
i 1 j 1
bestimmen. I ( x, y ) spezifiziert dabei den Wert eines auszuwertenden Pixels und
o die Faltungsmatrix aus der Menge
K  {od | d  [0, 45,...,360[} .
Abbildung 4.3 zeigt das Ergebnis der Anwendung des Krisch-Operators auf ein
Eingabebild.
34
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Abbildung 4.3: Kirsch-Operator
Links:
Eingabebild
Rechts: Ergebnisbild durch Auswertung der Maxima der berechneten Gradienten.
(Quelle: [KirOp])
4.3 Sobel-Operator
Ein weiterer bekannter Operator für die Extraktion von Kanten in
Grauwertbildern ist der Sobel-Operator. Der Operator extrahiert Kanten aus
einem Eingabebild, indem die erste Ableitung der Helligkeitswerte der Bildpunkte
approximiert wird, wobei gleichzeitig eine Glättung parallel zur Ableitungsrichtung vorgenommen wird.
Der Operator kann in x-, bzw. y-Richtung berechnet werden und verwendet eine
3×3 Matrix der Form
1 0 1
1
S x   2 0 2 
8
1 0 1
in x-Richtung, bzw.
1 2 1
1
S y   0 0 0 
8
 1 2 1
in y-Richtung zur Faltung. Möchte man ein richtungsunabhängiges Kantenbild
extrahieren, so können die Ergebnisse der Berechnung mit Hilfe der beiden
Operatoren kombiniert werden.
R  Rx2  Ry2
35
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Rx spezifiziert das Ergebnis der Anwendung des Sobel-Operators in x-Richtung,
R y das Ergebnis in y-Richtung. Es entsteht ein Kantenbild wie in Abbildung 4.4
ganz rechts gezeigt.
Abbildung 4.4: Sobel-Operator
Links:
Originalbild
Mitte links:
Anwendung des Operators in x-Richtung (normalisiert)
Mitte rechts:
Anwendung des Operators in y-Richtung (normalisiert)
Rechts:
Ergebnis der Kombination beider Ergebnisse
(Quelle: [SobOp])
4.4 Canny-Operator
Einer der bekanntesten Operatoren zur Extraktion von Kanten in Grauwertbildern
ist der sogenannte Canny-Operator. Dieser ist nach John Canny benannt, der den
Operator, bzw. Algorithmus 1986 vorstellte [CanJo]. Der Algorithmus extrahiert
Kanten durch kombinierte Anwendung verschiedener schon beschriebener
Operatoren (siehe auch [CanAlg]):
1. Das Eingabebild wird mit Hilfe eines Gauß-Filters G 2 (siehe Abschnitt 2.4.1) geglättet, d.h. von Rauschen befreit.
2. Anschließend wird das Bild mit den beiden Sobel-Operatoren S x und
S y für die x- und die y-Richtung gefaltet (siehe Abschnitt 4.3). Dabei
entstehen zwei neue Bilder.
3. Da Kantenverläufe orthogonal zur Gradientenrichtung wahrscheinlich sind, wird in den Sobel-Bildern nach solchen Verläufen gesucht.
Die Suche wird zunächst entlang der Gradientenrichtung
durchgeführt und nachdem ein Kantenpunkt extrahiert werden
konnte senkrecht zum Gradienten weiterverfahren. Zur Bestimmung,
wird derjenige Punkt mit dem höchsten Gradientenwert gesucht und
nur als Kantenpunkt angenommen, wenn der Wert einen oberen
36
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Schwellwert übersteigt, andere Punkte entlang des Gradienten
werden als nicht zur Kante gehörend klassifiziert (Non-MaximumSuppression).
4. Die sogenannte Schwellwert-Hysterese ist der nächste Schritt im
Algorithmus. Wird ein Kantenpunkt entlang eines Gradienten im
letzten Schritt erkannt, so wird ein zweiter unterer Schwellwert
definiert, ab dem ein Punkt, der senkrecht zur Gradientenrichtung,
also entlang der Kantenrichtung ebenfalls zur Kante gezählt wird.
Löcher in nicht zusammenhängen Kanten können so effizient
geschlossen werden. Am Ende kommt also in jeder
zusammenhängenden Kante mindestens ein Punkt vor, dessen
Gradientenwert über dem oberen Schwellwert liegt.
Der große Vorteil bei der Anwendung des Canny-Operators im Vergleich zum
Kirsch- oder reinen Sobel-Operator ist die Klassifikation der Bildpunkte in die
Kategorie Kantenpunkt oder kein Kantenpunkt. Es ergibt sich also als Ergebnis ein
Binärbild. Zusätzlich ist die Kantenstärke durch den dritten Schritt des
Algorithmus auf ein Pixel Breite beschränkt ist (siehe Abbildung 4.5).
Abbildung 4.5: Canny-Operator
Die Anwendung des Canny-Operators ergibt ein Binärbild mit Kanten, die nur ein Pixel Breit sind.
(Quelle: Eigene Darstellung)
37
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
4 . 5 K a n t e n e x t r a kt i o n i m J A S T - Pr o j e kt
Im JAST-Projekt muss die Extraktion von Kanten vor allem bezüglich der Laufzeit
optimiert werden. Alle komplexen Operatoren müssen deshalb ausscheiden.
Obwohl vor allem der Canny-Operator vergleichbar gute Ergebnisse erzielt,
scheint eine Anwendung des im ersten Abschnitt beschriebenen HOM-Operators
in diesem Fall am geeignetsten.
Da der Canny-Operator keine explizite Vorverarbeitung benötigt, außer dass das
Eingabebild als Grauwertbild vorliegen muss, werden innerhalb des Algorithmus
Berechnungen durchgeführt, die vom Aufwand her ähnlich einer Segmentierung
sind. Im JAST-Objekterkennungssystem ist jedoch die Segmentierung als
vorverarbeitender Schritt im System verankert, wodurch diese Berechnungen
nicht notwendig sind und nur unnötig Zeit kosten. Kirsch- und Sobel-Operator
sind für eine Anwendung im JAST-Projekt ebenfalls ungeeignet, da sie keine
binären Konturen liefern. Es müsste nachträglich ein Schwellwertverfahren auf die
Ergebnisbilder angewendet werden, was wieder unnötig Zeit verbrauchen würde.
Abbildung 4.6: Kantenextraktion im JAST-Projekt
Kantenextraktion mit Hilfe des Canny-Operators (oben) und des Hit-Or-Miss Operators (unten).
(Quelle: Eigene Darstellung)
Zur Kantenextraktion für die JAST-Domäne wird also der Hit-Or-Miss Operator
verwendet, der auf dem segmentierten Bild, einem Binärbild, arbeitet. Positiver
Nebeneffekt dieser Vorgehensweise ist, dass anders als beim Canny-Operator
keinerlei Kanten erkannt werden, die sich innerhalb eines Objektes befinden. Es
38
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
werden ausschließlich Außenkonturen erfasst, siehe Abbildung 4.6 zum Beispiel
beim Rad. Außerdem kann die Anwendung des Operators effizient in die
Segmentierung integriert werden. Beim rekursiven Grouping wird hierzu einfach
jeder Objektpunkt, der als Außenpunkt erkannt wird, der Kontur hinzugefügt.
39
5
Invariantenbasierte
Objekterkennung
Ein gängiges Verfahren zur Erkennung von Objekten in einer Szene, die durch ein
Ein- oder Mehrkamerasystem im System repräsentiert wird, basiert auf der
Extraktion und Analyse charakteristischer Invarianten.
Invarianten sind im mathematischen Sinn mit einem Objekt assoziierte Größen,
die sich bei einer Modifikation des Objektes bezüglich einer Klasse von
Transformationen nicht ändern [InvMa]. Sollen Invarianten für die
Objekterkennung verwendet werden, stellen sie Werte dar, die für ein Bild oder
eine Bildregion bestimmt werden und für die Erkennung eines Objektes
hinreichende Aussagekraft bieten.
In einer frühen Phase des JAST-Projekts wurde bereits ein System implementiert,
das auf der Analyse von geometrischen und logischen Invarianten basiert (siehe
[MüTho]). Anhand dieser Implementierung soll das Prinzip der
invariantenbasierten Verfahren zur Objekterkennung in den folgenden
Abschnitten dargestellt werden.
5 . 1 E x t r a kt i o n d e r In v a r i a n t e n
Bevor Objekte mit Hilfe von Invarianten erkannt werden können, müssen
geeignete Invarianten gefunden werden. Im invariantenbasierten Objekterkennungssystem für das JAST-Projekt können z.B. zwei Kategorien von
Invarianten unterschieden werden:

Logische Invarianten
Zu den logischen Invarianten zählen die häufigste in einer Bildregion
auftretende Farbe, die ermittelte Materialkombination der Objektpunkte,
die in einer Bildregion auftreten und die Anzahl der inneren Objekte, die
in einer bereits gefunden Struktur in einer Bildregion auftreten (z.B.
Löcher in einer Leiste).
41
ERROR! USE
YOU WANT TO

HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
Geometrische Invarianten
Als geometrische Invarianten wurden die Proportionen des die
Objektpunkte einer Bildregion einbeschreibenden minimalen Rechtecks
und die relative Anzahl der extrahierten Objektpunkte einer Bildregion
im Bezug auf alle in einer Szene vorkommenden Objektpunkte gewählt.
Sind die zu verwendenden Invarianten definiert, müssen diese für eine
Eingabeszene bestimmt werden. Dazu müssen zunächst die relevanten
Bildregionen eines Eingabebildes extrahiert werden und anschließend für jede der
Bildregionen die gewählten Invarianten ermittelt werden. Die Bildregionen
werden dann mit Attributen für jede der Invarianten bestückt und die erzeugten
Rohobjekte an den Klassifikator übergeben.
Abbildung 5.1: Invariantenbasierte Objekterkennung
Links:
Verarbeitete Szene (blau dargestellt: innere Objekte)
Rechts: Extrahierte Invariante: Proportion
(Quelle: Eigene Darstellung)
5 . 2 K l a s s i f i ka t i o n
Sind die Invarianten ermittelt und die Rohobjekte erzeugt, gilt es mit Hilfe eines
Klassifikators aus dem Rohobjekt eine für die Weiterverarbeitung geeignete
Objektinstanz zu erzeugen. Die Hauptaufgabe dieses Schrittes ist es also, das
Rohobjekt mit einem Attribut zu versehen, das den Typ des Objektes angibt.
Prinzipiell kann der Klassifikator beliebig realisiert werden. In der für das JASTProjekt implementierten Version wurden zwei Klassifikatoren exemplarisch
umgesetzt:
42
ERROR! USE

HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Fuzzy Klassfikator
Der Fuzzy-Klassifikator wurde im System statisch implementiert und
kann folgendermaßen formalisiert werden:
N

f (v0 ,..., vN )  min  vn  do ,n 
oO
 n 0

Die Funktion
f (v0 ,..., vN )
bestimmt für einen berechneten Satz von
Invarianten v0 ,..., vN , zu welchem Objekt die Invarianten am ehesten passen.
d o , n stellt dabei einen Erwartungswert für die Invariante n  N bezüglich eines
Vergleichsobjektes o  O dar. Ist die Summe der absoluten Differenzen von
tatsächlichem und erwartetem Wert für eine Invariante minimal, so wird der
entsprechende Objekttyp o für den Satz von Invarianten angenommen.

Neuronaler Klassifikator
Für den neuronalen Klassifikator wurde ein einfaches Feed-Forward
Netzwerk mit einer versteckten Schicht verwendet. Prinzipiell ist das
Netz also wie in Abbildung 5.2 aufgebaut, allerdings werden
entsprechend der Invarianten eine andere Anzahl Eingabeknoten und
eine 4-Bit Ausgabekodierung verwendet. Des Weiteren werden acht
Knoten in der versteckten Schicht eingesetzt. Die Aktivierung eines
Ausgabeknotens oi wird in einem solchen Netzwerk folgendermaßen
berechnet:


oi  f net    wij  o j    f net  neti 
 jN

Dabei sind diejenigen der gerichteten Kanten, die nicht im Knoten oi
münden, mit dem Kantengewicht wij  0 gewichtet. f net bezeichnet eine
sigmoide Funktion, z.B. den hyperbolischen Tangens, die
Aktivierung in das leichter handhabbare Intervall ]-1,1[ skaliert.
die
Das Netzwerk wird trainiert, indem vom Benutzer für bestimmte Szenen
die Klassifikation vorgegeben wird. Aus der Klassifikation wird die 4-Bit
Kodierung des Objekttyps abgeleitet und als Aktivierung an den
Ausgabeknoten angelegt. Mit Hilfe der erwarteten Aktivierungen d i wird
eine zu minimierende Fehlerfunktion
E  12   oi  di 
2
iO
43
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
definiert und der Fehler entsprechen der Gewichtung rückwärts durch
das Netz propagiert [WerBey].
Abbildung 5.2: Feed-Forward Netzwerk
Die Abbildung zeigt ein simples Feed-Forward Netzwerk. Ein ähnliches Netzwerk wird im
neuronalen Klassifikator verwendet um den extrahierten Invarianten einen Objekttyp
zuzuordnen.
(Quelle: Eigene Darstellung)
Für die Gewichtsänderung einer in einen Ausgabeknoten mündenden
Kante ergibt sich dann in einem Trainingszyklus durch Anwendung der
Kettenregel:
wij  
E
E oi neti
  



wij
oi neti wij
wij    oi  di   f 'net  neti   o j  
Allgemein kann die Gewichtsänderung eines jeden Kantengewichts wij
in einem Trainingszyklus wie folgt formalisiert werden:


wij      k  wkj  f 'net  neti    o j  
 kN

44
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR HERE.
THE
APPEAR HERE.
Hierbei gibt  k den durch sukzessive Anwendung der Kettenregel
entstehenden Faktor
 i    k  wkj  f 'net  neti 
kN
an, der den Anteil des Knotens am Gesamtfehler wiederspiegelt. Für
detailliertere Ausführungen sei auf [MüTho] verwiesen.
5 . 3 A n a l ys e d e s Ve r f a h r e n s
Es zeigte sich, dass das oben beschriebene invariantenbasierte Verfahren große
Probleme mit der Verarbeitung von Objekten hat, die von anderen Objekten
teilweise überlagert werden. Die Ursache ist dabei nicht in den verwendeten
Klassifikatoren zu suchen, vielmehr ist schon die Extraktion der geometrischen
wie auch der logischen Invarianten in diesem Fall problematisch (siehe Abbildung
5.3).
Abbildung 5.3: Probleme invariantenbasierter Verfahren
Minimale einschließende Rechtecke können nicht korrekt extrahiert werden. Bildregionen lassen
sich daher nicht korrekt bestimmen und erschweren die Berechnung der Invarianten.
(Quelle: Eigene Darstellung)
Die Abbildung zeigt die Anwendung des invariantenbasierten Verfahrens auf sich
überlagernde Objekte. Sowohl die Extraktion der Proportionen als auch die
relative Größe ist nicht ohne weitere geometrische Rekonstruktion möglich. Auch
die Auswertung der logischen Invarianten ist problematisch, da z.B. die
Hauptfarbe der extrahierten Bildregion die in der Region enthaltenen Objekte
nicht hinreichend qualifiziert.
45
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Nicht unerheblichen mathematischen Aufwand vorausgesetzt, kann jedoch auch
das invariantenbasierte Verfahren derart verbessert werden, dass es akzeptable
Ergebnisse liefert (siehe [GraInv]). Dabei werden wieder zunächst Bildregionen
extrahiert und danach die Invarianten für die Klassifikation der Objekte aus den
Bildregionen durch geometrische Rekonstruktion gewonnen.
Abbildung 5.4: Geometrische Rekonstruktion
Mit einigem mathematischen Aufwand ist die Rekonstruktion mancher Invarianten in einigen
Fällen möglich (Links: Originalbild, rechts: Rekonstruierte und erkannte Objekte).
(Quelle: [GraInv], aufbereitet)
46
6
Active Shape Models
Ein weiterer grundsätzlich anderer Ansatz zu Erkennung von Objekten stellt die
Verwendung von sogenannten Active-Shape-Model (ASM) Verfahren dar. ActiveShape-Models wurden eigentlich für die Erkennung von Gesichtern und zur
Auswertung medizinischer Bilder entwickelt. Vorstellbar ist jedoch durchaus auch
der Einsatz für die Erkennung von Objekten der Baufix-Domäne.
Wie der Name schon vermuten lässt, ist die Basis des ASM Verfahrens ein Modell.
Dieses Modell wird im Verlauf des Verfahrens iterativ an einer Stelle des
Eingabebildes so angepasst, dass eine Klassifikation möglich ist. Für die
Erkennung von Objekte der Baufix-Domäne sind also verschieden Basismodelle
nötig, die dann jeweils sukzessive angepasst werden. Schließlich lässt sich für
jedes Modell ein Ähnlichkeitswert berechnen und dasjenige Modell, das den
besten Wert ergibt, wird als Interpretation der Szene gewählt.
6.1 Modellfindung
Bevor ein Modell auf ein ungesehenes Eingabebild angewendet werden kann,
muss das Modell definiert und erzeugt werden. Einem Benutzer werden
verschiedene Beispielbilder gezeigt und dieser setzt auf den Bildern sogenannte
Landmarks. Diese vom Benutzer markierten Punkte spezifizieren das Basismodell.
Auf die Performanz und Genauigkeit der späteren Anpassung wirken sich dabei
die Anzahl und die Qualität der gewählten Landmarks aus.
Gute Landmarks stellen Punkte auf Konturkreuzungen oder Punkte auf
ausgeprägten Rundungen der Kontur dar. Gleichverteilt werden außerdem
Landmarks auf den Objektkonturen zwischen den zuvor definierten
Markierungen erzeugt.
47
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 6.1: ASM-Landmarks
Beispielbild eines Gesichts mit annotierten Landmarks
(Quelle: [CooAS])
Für ein Modell müssen diese Landmarks auf s Beispielbildern festgelegt werden
und danach die Koordinaten der erzeugten Landmarks für jedes Set geeignet in
ein normalisiertes Koordinatensystem transformiert werden, siehe z.B. [CooAS].
Das statistisches Shape-Model ergibt sich aus der Principal-Component-Analyse
(PCA) aller s Sets von Landmarks, wobei jedes der Samples x mit Hilfe des
Vektors x , der gemittelte Werte aller s Samples enthält, approximiert werden
kann:
x  x  P b
P  (p1 | p2 | ...| pt ) enthält hier die t Eigenvektoren der Kovarianzmatrix und der
Vektor
b  PT ( x  x )
spezifiziert einen Satz von Parametern für das deformierbare Modell. Werden die
Parameter von b innerhalb bestimmter Toleranzen variiert, so können mit Hilfe
das Shape-Models die verschiedenen Samples x rekonstruiert, bzw. neue Samples
verglichen werden.
6.2 Anpassung des Modells
Ist ein geeignetes Shape-Model konstruiert, kann mit der Analyse neuer Szenen
begonnen werden. Bei der Analyse wird für die Anpassung eine Grob-Zu-Fein
48
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Strategie verfolgt. Sind die Variationen der Parameter von b anfangs noch sehr
groß, so werden diese immer geringer, je weiter das Verfahren fortschreitet.
Um ein Shape-Model an eine neue Szene anzupassen, d.h. beispielsweise ein
Objekt zu finden, muss zunächst das Model vom normalisierten
Koordinatensystem mit Hilfe einer euklidschen Transformation in das
Bildkoordinatensystem überführt werden. Die einfachste Möglichkeit, die
Koordinaten zu transformieren, besteht in der Verwendung homogener
Koordinaten, da die Transformation dann in einer Matrix formalisiert werden
kann:
 s cos 
 x 
ftx ,t y , s ,     s sin 
 y  0

 s sin 
s cos 
0
t x  x 
   x ' 
t y  y    
  y '
1 
 1 
t x und t y geben die Translationsparameter, s den Parameter für die Skalierung
und  den Rotationsparameter an.
Ziel der Anpassung ist nun sowohl das Finden der besten Transformationsparameter für die Koordinatentransformation als auch die Berechnung
der besten Parameter des Vektors b , der die Deformation des Shape-Models
angibt. Leicht ist nun zu erkennen, dass ein äquivalentes Problem zur
Bestimmung der besten Parameter für b die Minimierung des Ausdrucks
Y  ftx ,t y , s ,  x  P  b 
darstellt, wenn Y einen Satz von Bildpunkten enthält, der verglichen werden soll.
[CooAS] schlägt nun für die Bestimmung der Transformationsparameter und der
Parameter von b folgenden iterativen Ansatz vor:
1. Initialisierung der Parameter von b mit null.
2. Erzeugen der Modellpunkte mit x  x  P  b .
3. Finden der besten Transformationsparameter, die das Modell
geeignet an den gefundenen Punkten Y ausrichten.
4. Projektion von Y in das normalisierte Modellkoordinatensystem
mittels der zu ftx ,t y ,s , inversen Transformationsfunktion:
y  ftx,1t y ,s , Y  .
49
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
5. Projektion der transformierten Punkte y in die Tangentialebene zu x
durch Skalierung:
y'
y
y x
6. Bestimmen der nächsten Näherung der Parameter von b :
b  PT  y ' x 
7. Sofern das Abbruchkriterium noch nicht erfüllt ist, wird das
Verfahren ab Schritt 2 wiederholt.
Das Abbruchkriterium kann als erfüllt angenommen werden, falls sich die
bestimmten Parameter für die Transformation, bzw. für die Deformierung des
Modells nicht mehr signifikant ändern. Das Verfahren konvergiert laut [CooIm]
innerhalb weniger Iterationen.
Abbildung 6.2: Active-Shape-Model
Links:
Initialisierung
Mitte links:
2. Iteration
Mitte rechts:
6. Iteration
Rechts:
18. Iteration
(Quelle: [CooIm])
6 . 3 A n a l ys e d e s Ve r f a h r e n s
Das Active-Shape-Model Verfahren stellt eine interessante Alternative zu den im
letzten Kapitel beschriebenen invariantenbasierten Verfahren dar. Das Verfahren
ist besonders geeignet, wenn eine mögliche Position des Zielobjektes mit einiger
Genauigkeit feststeht. Weitere Voraussetzungen für die Verwendbarkeit des
Verfahrens sind definierte Formen der zu identifizierenden Objekte einer
Eingabeszene. Auch das Vorhandensein von Beispielbildern, aus denen das
Shape-Model generiert werden kann, ist wichtig. All diese Voraussetzungen sind
im Setup des JAST-Projektes gegeben.
50
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Fraglich ist allerdings, ob das Verfahren geeignet ist, die oben dargelegten
Probleme der invariantenbasierten Verfahren zu beseitigen. Vorteil des Ansatzes
im Vergleich zu den invariantenbasierten Verfahren ist in jedem Fall die
Unabhängigkeit der Anpassung gegenüber der Segmentierung, sofern die
Extraktion der Konturen und damit der Landmarks (die Basis der Anpassung)
stabil ist. Allerdings bleibt das große Problem sich überlagernder Objekte
weitgehend bestehen, da sich die oben definierte Ähnlichkeit der
Vergleichspunkte Y  f  x  P  b  zum Modell sehr verschlechtert, wenn der
Ansatz wie beschrieben implementiert wird. Abhilfe könnte hier die Elimination
von extremen Abweichungen schaffen, also Beschränken der Menge der
Vergleichspunkt auf diejenigen, die innerhalb einer gewissen Toleranz liegen.
Beispielsweise könnten für die Schritte drei bis sechs des oben beschriebenen
iterativen Verfahrens lediglich die besten Vergleichspunkte benutzt werden.
Modellpunkte, die durch Überlagerung im Vergleichsbild nicht zu sehen sind,
könnten damit während der Anpassung des Modells unberücksichtigt bleiben.
Ein Nachteil des ASM Verfahrens ist die fehlende Dynamik bezüglich sich
ändernder Objekte, da jedesmal Interaktion des Benutzers erforderlich ist, wenn
neue Objekte analysiert werden sollen. Außerdem ist die Kenntnis der ungefähren
Objektposition essentiell, wie in Abbildung 6.3 dargestellt. Ist dieses Wissen nicht
vorhanden, kann das Verfahren leicht scheitern.
Abbildung 6.3: Probleme bei ASM Verfahren
Links:
Initialisierung
Mitte:
2. Iteration
Rechts: 20. Iteration
ASM ist ein lokales Verfahren, daher schlägt die Anpassung fehl, wenn die Initialposition zu weit
von der Optimalposition entfernt ist.
(Quelle: [CooIm])
Die Umsetzung des Verfahrens ist aufgrund der großen möglichen Exaktheit für
extrahierte Regionen einer Eingabeszene des JAST-Setups durchaus eine
Alternative. In einer späteren Version der Objekterkennung soll ein Active-ShapeModel Verfahren, oder dessen Weiterentwicklung, ein Active-Appearance-Model
(AAM) Verfahren [CooIm] Verwendung finden um die Detektionsgenauigkeit des
51
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Systems zu erhöhen. Um die interaktiven Vorgänge zur Modellfindung zu
automatisieren, sollen die in Kapitel 4 beschriebenen Verfahren zur Extraktion von
Kanten und Ecken zur Anwendung kommen.
52
7
Template-Matching
Aufgrund der Tatsache, dass die zwei bisher beschriebenen Verfahren große
Schwierigkeiten bezüglich der Anforderung an das Objekterkennungssystem des
JAST-Projekts haben, auch teilweise verdeckte Objekte zu erkennen, soll an dieser
Stelle eine dritte Klasse von Verfahren, die Template-Matching Verfahren erläutert
werden. Template-Matching sind mit die bekanntesten und intuitiv erfolgversprechendsten Verfahren zur Erkennung von Objekten vor allem in komplexen
Szenen.
Der grundlegende Ansatz verfolgt das Prinzip des Ähnlichkeitsvergleiches eines
Beispielbildes, des Templates, mit der Eingabeszene. In der einfachsten Version
ergibt eine Analyse der Ähnlichkeit an jeder Stelle der Szene dann eine oder
mehrere Positionen, an denen möglicherweise ein Objekt zu sehen ist. Mit Hilfe
eines Schwellwertes wird dann definiert, ob an den berechneten Positionen
tatsächlich ein Objekt auftritt oder ob die Ähnlichkeit bezüglich eines
Ähnlichkeitsmaßes nicht ausreicht.
Template-Matching Verfahren können strukturell in die vier folgenden Schritte
gegliedert werden:
1. Wahl des Templates
Sollen vom Verfahren mehrere Objekte erkannt werden, so ist für
jedes der Objekte mindestens ein Beispielbild notwendig. Eines der
Templates muss im ersten Schritt jedes Verfahrens ausgewählt
werden, mit dem dann die restlichen Schritte durchgeführt werden.
Auf Basis der Vorverarbeitung und im Sinne der gewählten Strategie
zur Klassifikation ist oft eine Vorauswahl der Templates möglich.
2. Bestimmen einer Pose
Das Template wird entsprechend den Parametern einer Pose
transformiert. Eine Pose ist in Anlehnung an [CooMA] bei
Monookularsystemen durch maximal acht Freiheitsgrade, also
Parameter für Translation, Rotation, Skalierung, Verzerrung und
perspektivische Projektion, bestimmt. Eine Pose wird in diesem
53
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Schritt durch ein geeignetes Verfahren aus der Menge der möglichen
Posen ausgewählt.
3. Bestimmen der Ähnlichkeit
Nachdem eine Transformationsvorschrift entsprechend der
ausgewählten Pose für das Template ermittelt wurde, müssen die
Charakteristika des Templates mit denen des korrespondierenden
Bildausschnitts verglichen werden. Dazu wird ein zuvor definiertes
Ähnlichkeitsmaß an der Pose ausgewertet, d.h. die Ähnlichkeit
zwischen Bildausschnitt und Template in einen möglichst
aussagekräftigen Wert gefasst.
4. Erzeugen des Objektes
Ist der Ähnlichkeitswert des Templates mit dem betrachteten
Bildausschnitt
gut
genug
bezüglich
des
gewählten
Ähnlichkeitsmaßes, so wird angenommen, dass das entsprechende
Objekt an der analysierten Pose auftritt. Eine Objektinstanz wird
erzeugt. Da mehrere Objekte des gleichen Typs in einem Bild
vorkommen können, wird anschließend wieder mit der Suche nach
einer passenden Pose (erster Schritt) begonnen.
In diesem Kapitel wird zunächst dargestellt, wie die Ähnlichkeit eines Templates
zu einem Bildausschnitt bestimmt werden kann. Danach wird erklärt, welche
Möglichkeiten sich zur methodischen Suche nach einer akzeptablen Pose anbieten.
Eine kurze Analyse der Verfahrens erklärt die Implementierung genau dieses
Ansatzes in der Diplomarbeit und schließt das Kapitel ab.
7 . 1 Ä h n l i c h ke i t s m a ß e
In der Literatur sind die verschiedensten Verfahren zur Bestimmung der
Ähnlichkeit eines Templates zu einem Bildausschnitt beschrieben, die im
mathematischen Sinne ja der Abhängigkeit zweier (multivariater) Zufallsgrößen
entspricht. Eine kurze Auflistung zeigt [TekSim]. In der Praxis werden meist
diejenigen Ähnlichkeitsmaße verwendet, die einen auf das Einheitsintervall [0,1]
skalierten Ausgabewert als Maß für die Ähnlichkeit ermitteln und außerdem
effizient zu berechnen sind. Der Ähnlichkeitswert kann als Wahrscheinlichkeit für
das Auftreten eines Objektes interpretiert und dann mit Hilfe eines Schwellwertes
für die Klassifikation verwendet werden. Die Skalierung auf das Einheitsintervall
ermöglicht dabei das problemlose Austauschen der Ähnlichkeitskriterien und
Evaluieren der verschiedenen Maße.
54
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Im Folgenden werden die am häufigsten verwendeten Ähnlichkeitsmaße
beschrieben. Bei den vorgestellten Maßen transformiert eine zur bereits aus
Abschnitt 6.2 bekannte Funktion ftx ,t y ,s , ähnliche Funktion die Koordinaten des
Templates in auszuwertenden Koordinaten des Bildausschnitts, dier verglichen
werden sollen:
 s cos 

ftx ,t y , s ,  x, y    s sin 
 0

 s sin 
s cos 
0
t x  x 
   x ' 
t y  y       x ', y ' 
  y '
1 
 1 
Entsprechend der gewünschten Translationen t x und t y , der Rotation  und der
Skalierung s werden so die zu vergleichenden Bildpunkte bestimmt. Weitere
Freiheitsgrade, die affine Transformationen oder perspektivische Projektionen
erlauben, können bei Bedarf integriert werden. Daher bietet sich die im Folgenden
verwendete allgemeinere Schreibweise f p  x, y  für ftx ,t y , s ,  x, y  an, wobei p einen
Vektor von Transformationsparametern spezifiziert.
Um die berechneten Ähnlichkeitswerte auf das Einheitsintervall zu skalieren,
verwenden die normalisierten Maße folgenden Faktor zur Ermittlung der
korrespondierenden Werte im Einheitsintervall [0,1]:
nT , I , p
Tx Ty
 Tx Ty
2 
2
   T  x, y      I  f p  x, y    

 x 0 y 0 

 x 0 y 0
 12
Die vorgeschlagenen Maße benutzen für die Bestimmung der Ähnlichkeiten ein
Grauwertbild, d.h. jedes der zu vergleichenden Pixel im Template und
Eingabebild
hat
genau
einen
Wert
bzw.
T  x, y  :   0, 255 ,
I  x, y  : 
 0, 255 . Die beschriebenen Ähnlichkeitskriterien lassen sich
jedoch sehr einfach auch derart verallgemeinern, dass sie auf Mehrkanalbildern,
z.B. RGB- oder HSV-Bildern, mit unter Umständen anderen Wertebereichen
beispielsweise aufgrund anderer Farbtiefen ebenfalls funktionieren.
Die nachfolgend beschriebenen Ähnlichkeitsmaße unterscheiden sich in ihrer
Mächtigkeit. Im ersten Abschnitt wird ein Ähnlichkeitsmaß beschrieben, dass
absolute Beziehungen zwischen zwei Vergleichsbildern herstellt, danach ein Maß
zur Bestimmung linearer Beziehungen und im dritten Abschnitt ein Maß, mit
dessen Hilfe selbst nichtlineare Beziehungen extrahiert werden können.
Abschließend wird ein völlig anderes Maß erklärt, das auf dem Konturvergleich
von Template und Bild beruht.
55
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
7 . 1 .1 A b s o l u t e Ä h n l i c h ke i t
Eine Ähnlichkeit zwischen Template und Bildausschnitt wird als absolut
bezeichnet, wenn im Idealfall die Werte eines jeden Pixels im Template und dem
untersuchten Ausschnitt des Eingabebildes übereinstimmen:
x  Tx  y  Ty : T  x, y   I  f p  x, y  
Zur Bestimmung dieser absoluten Ähnlichkeit wird typischerweise das Verfahren
der kleinsten Fehlerquadrate angewendet. Das Maß drückt eine Beziehung
zwischen den Vergleichsbildern aus, indem der Unterschied der Grauwerte der
einzelnen Pixel von Template und zu vergleichendem Bildausschnitt berechnet
wird:
Tx
Ty
SSDT , I , p   T  x, y   I  f p  x, y   
2
x 0 y 0
Die Sum-Of-Square-Differences (SSD) oder das Verfahren der kleinsten
Fehlerquadrate bestimmt die absolute Ähnlichkeit über den quadrierten
Unterschied, damit sich negative und positive Abweichungen nicht gegenseitig
aufheben. Auch die Summe der absoluten Differenzen würde diesen Zweck
erfüllen, wird aber seltener verwendet, weil die Normalisierung in der
Durchführung mathematisch und hinsichtlich der Implementierung aufwendiger
wäre.
Bei Verwendung der quadrierten Differenzen hingegen gestaltet sich die
Normalisierung relativ einfach. Es wird lediglich mit dem eingangs eingeführten
Normalisierungsfaktor nT , I , p multipliziert:
NSSDT , I , p  nT , I , p  SSDT , I , p
NSSDT , I , p
bezeichnet
nun
die
normalisierte
Summe
der
quadratischen
Unterschiede bei gegebener Translation, Rotation und Skalierung. Die beste Pose
NLSET , I (Normalized Least Square Error) für ein Bild I und ein Template T
ergibt sich als Minimalwert aller möglichen Posen:
NLSET , I  min  NSSDT , I , p 
pP
Dabei steht P für die Menge aller
Parametervektoren der zulässigen Posen.
56
zulässigen
Posen,
genauer
aller
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
P  I x  I y  N  N S
I x und I y stellen hier die Mengen der möglichen Breiten- und Höhenkoordinate
des Eingabebildes, N die Menge der möglichen Rotationen und N S die Menge
der möglichen Skalierungen dar. Im Normalfall werden nur diese vier Parameter
verwendet, weil damit beliebige Transformationen im euklidischen Raum möglich
sind. Sollen zusätzlich weitere Freiheitsgrade, z.B. Parameter für affine
Transformation und perspektivische Projektion betrachtet werden, so muss der
NSSDT , I , p natürlich auch bezüglich dieser Parameter minimiert werden. Leicht
erkennt man, dass der Rechenaufwand für dieses Optimierungsproblem
exponentiell mit der Anzahl der Freiheitsgrade wächst. Vorschläge zur
Verbesserung der Performanz bei der Lösung dieses Problems werden in
Abschnitt 7.2 diskutiert.
Allgemein gilt ein Objekt in einer durch Konkretisierung der Freiheitsgrade
bestimmten Pose dann als erkannt, wenn die normalisierte Summe der
quadratischen Unterschiede aller Vergleichspunkte kleiner ist als T  0,1 , dem
Schwellwert für ein Template T :
 true falls: NSSDT , I , p   T
match T , I , p   
sonst
 false
7 . 1 .2 L i n e a r e Ä h n l i c h ke i t
Leider tritt in der Praxis oft das Problem auf, dass sich die Ausleuchtung einer
Szene oder der Kontrast ändert. Beispielsweise beim Einschalten der
Zimmerbeleuchtung oder bei Änderungen der Wetterverhältnisse tritt dieses
Problem auf. Man möchte nun ein Ähnlichkeitsmaß finden, das eine Beziehung
zwischen Template und Bildausschnitt der Eingabeszene auch unter diesen
erschwerten Bedingungen herstellen kann. Allgemein soll das Ähnlichkeitsmaß
die Mächtigkeit besitzen, auch noch Beziehung der folgenden Art aufzulösen:
x  Tx  y  Ty : T  x, y     I  f p  x, y    C
Der Faktor  lässt sich hier als Unterschied im Kontrast und C als
Helligkeitskonstante interpretieren. Um Invarianz gegenüber diesen beiden
Einflussfaktoren zu erhalten soll nun die im letzten Abschnitt beschriebene
Summe der Fehlerquadrate SSDT , I , p genauer untersucht werden:
57
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Tx
Ty
SSDT , I , p   T  x, y   I  f p  x, y   
2
x 0 y 0
Tx

Ty

2
2
  T  x, y   2 T  x, y  I  f p  x, y    I  f p  x, y   

x 0 y 0 
Aus der Umformulierung der Summe der kleinsten Fehlerquadrate lässt sich
folgern, dass der quadratische Beitrag der Summe der Werte der Templatepunkte,
bzw. der Bildpunkte zur Fehlersumme konstant ist. Diese konstanten Terme
repräsentieren die Unterschiede im Kontrast, daher wird auf diese Terme
verzichtet und lediglich das Produkt der Werte der zu vergleichenden Punkte als
relevant betrachtet. Dieses Produkt wird als Kreuzkorrelation oder CrossCorrelation (CC) bezeichnet:
Tx
Ty
CCT , I , p   T  x, y  I  f p  x, y   
x 0 y 0
Um die Kreuzkorrelation nun noch bezüglich des Helligkeitsoffsets invariant zu
formulieren, werden die einzelnen Terme mittelwertbereinigt dargestellt:
Tx

Ty

MCCT , I , p   T  x, y   T   I  f p  x, y    I f 


x 0 y 0
mit dem Durchschnittswert aller Templatepunkte
T
1 Tx y
T
  T ( x, y) ,
TxTy x 0 y 0
und dem Durchschnittswert aller bezüglich der Transformation f p relevanten
Bildpunkte
f
If
Ix
y
1
I f  f f   I  f p  x, y   .
I x I y x 0 y 0
Das normalisierte Maß für die Ähnlichkeit lässt sich nun wie folgt definieren:
NCCT , I , p  nT , I , p  MCCT , I , p
Für die normalisierte Kreuzrelation NCCT , I , p ergibt sich der beste Wert anders als
für die Summe der quadratischen Unterschiede NSSDT , I , p für das Maximum des
58
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR HERE.
THE
APPEAR HERE.
Ausdrucks. Umgekehrt zu NLSET , I wird die beste Pose NBCCT , I (Normalized Best
Cross Correlation) für ein Temlate und ein Bild also definiert als:
NBCCT , I  max  NCCT , I , p 
pP
Ein Objekt wird bei Verwendung der normalisierten Kreuzrelation als
Ähnlichkeitsmaß als detektiert angenommen, falls die folgende Bedingung erfüllt
ist:
 true falls: NCCT , I , p   T
match T , I , p   
sonst
 false
Man beachte hierbei, dass analog zur Bestimmung der besten Pose das Maß nun
einen Wert annehmen muss, der größer als ein für ein Template T spezifischer
Schwellwert T  0,1 ist.
Abschließend kann man also feststellen, dass die normalisierte Kreuzkorrelation
ein geeignetes Ähnlichkeitsmaß definiert, falls zwischen den zu vergleichenden
Bildern eine lineare Abhängigkeit besteht. Die normalisierte Kreuzkorrelation ist
also echt mächtiger als das Maß der kleinsten Unterschiedsquadrate, das eine
Beziehung nur für konstante Abhängigkeiten herstellen kann.
Für viele Anwendungen der Bildverarbeitung reicht die Kreuzkorrelation
vollständig aus und wird dank ihrer einfachen Implementierung und
performanten Berechnung gerne verwendet. Dennoch existieren Szenarien, wo
Beziehungen zwischen Bildern hergestellt werden sollen, die nichtlinearer Natur
sind.
7 . 1 .3 N i c h t l i n e a r e Ä h n l i c h ke i t
Manchmal ist es notwendig, Beziehungen zwischen Bildern herzustellen, die in
nichtlinearem Zusammenhang stehen. Beispielsweise müssen in der
medizinischen Bildverarbeitung oft Bilder, die mit unterschiedlichen Methoden
aufgezeichnet worden sind, z.B. ein Computer-Tomographie-Bild und ein MagnetResonanz-Tomographie-Bild, die aber dasselbe Objekt darstellen, einander
zugeordnet werden.
Solche Bilder sind für den Menschen sofort als Abbildungen des gleichen Objekts
identifizierbar, jedoch versagen in der computergestützten Bildverarbeitung
Verfahren, die eine Beziehung auf linearer oder absoluter Basis, z.B. mit Hilfe der
59
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
oben beschriebenen Kreuzkorrelation, herzustellen versuchen. Offensichtlich kann
also keine lineare Beziehung zwischen den beiden Bildern vorliegen.
Abbildung 7.1: CT und MRT Bild
Dasselbe Objekt dargestellt durch ein MRT-Bild und ein CT-Bild. Die Beziehung zwischen den
Bildern ist nichtlinear und muss daher mit einem nichtlinearen Ähnlichkeitsmaß analysiert
werden.
(Quelle: [GioPa])
Einen möglichen Ansatz zur Analyse nichtlinearer Beziehungen zwischen Bildern
stellt die Berechnung der sogenannten Mutual Information (MI) dar. Zum
Verständnis der Berechnung ist an dieser Stelle jedoch ein kleiner Exkurs in die
Informationstheorie notwendig:
In der Informationstheorie, eine Disziplin der angewandten Mathematik, die sich
damit beschäftigt, große Datenmengen möglichst effizient zu speichern oder zu
übertragen, gibt es ein Maß für den mittleren Informationsgehalt eines (Bit-)
Musters, bzw. für die Beseitigung der Unsicherheit die mit Hilfe einer
Vorabinformation möglich ist. Dieses Maß wird als Entropie bezeichnet und
verhält sich proportional zur verbleibenden Unsicherheit.
Am Beispiel eines Münzwurfs lässt sich dies sehr einfach erklären: Wird eine
Münze z.B. zehnmal geworfen und es liegt fünfmal Kopf und fünfmal Zahl, so
kann aus den relativen Häufigkeiten nahezu kein Rückschluss auf folgende Würfe
gezogen werden. Der Informationsgehalt der Information, dass die Münze fair ist,
P( X  1)  0.5 ,
ist also sehr gering. Die verbleibende Unsicherheit und damit die Entropie sind
hingegen sehr groß. Ist die Münze nicht fair und errechnet sich z.B. eine
Wahrscheinlichkeit von 9:1 für Kopf im nächsten Wurf, so ist diese Information
sehr wertvoll, da für den nächsten Wurf kaum Unsicherheit verbleibt. Die
Entropie dieser Information ist also sehr gering (siehe Abbildung 7.2).
60
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Um das Jahr 1948 erarbeitete Claude E. Shannon in seiner Mathematical Theory of
Communication den informationstheoretischen Begriff der Entropie und definierte
ihre Berechnung [EntInf]:
n
H ( X )   P( X  xi ) log n P( X  xi )
i 1
Dabei bezeichnet n die Anzahl der möglichen Elementarereignisse für die
Zufallsvariable X . Für binäre Kodierung ist damit lediglich die Basis n  2
interessant.
Abbildung 7.2: Entropie für binäre Zufallsvariablen
Entropieverlauf für eine binäre Zufallsvariable X (z.B. beim Münzwurf). Ist die Wahrscheinlichkeit
für ein Ereignis X=1 im nächsten Wurf nahe 100% oder nahe 0%, so ist die Entropie H(X) gering.
Wird eine faire Münze geworfen, so nimmt die Unsicherheit (also auch die Entropie) ein
Maximum an.
(Quelle: [GioPa])
Anschaulich lässt sich diese Definition herleiten, indem man sich überlegt, dass
ein Ereignis xi , das mit einer Wahrscheinlichkeit P( X  xi )  P( xi ) auftritt, eines
von 1/ P( xi ) hypothetisch möglichen Ereignissen darstellt. Damit benötigt die
Kodierung dieses Ereignisses log2 1/ P( xi )    log 2  P( xi )  Bits. Da die Entropie die
Anzahl von Bits zur Kodierung im Durchschnitt angibt, muss  log2  P( xi )  nun
noch mit der Auftrittswahrscheinlichkeit P ( xi ) für das Ereignis xi gewichtet und
anschließend über alle möglichen Ereignisse summiert werden.
61
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
In der Informationstheorie ist nun der Begriff der bedingten Entropie, engl.
Conditional Entropy (CE) noch interessanter. Die bedingte Entropie gibt die
verbleibende Unsicherheit unter der Voraussetzung einer bestimmten gemachten
Beobachtung an. Man schreibt [BedEn]:
n
H ( X | A)   P ( X  xi | A) log n P( X  xi | A)
i 1
Falls A eine diskrete Zufallsvariable ist, kann man H ( X | A) auch analog zur
bedingten Wahrscheinlichkeit als gewichtete Summe der Einzelentropien unter
der Voraussetzung jeweils einer Observation ai definieren durch
m
H ( X | A)   P( A  ai ) H ( X | A  ai )
i 1
mit
H ( X | A  ai )  H ( X | ai )  H  P( x1 | ai ), P( x2 | ai ),..., P( xn | ai )  .
Dies kann man sich am Beispiel des häufigsten Buchstabens e des deutschen
Alphabets sehr anschaulich erklären:
Bekommt man von einem Wort ungeordnet die Buchstaben gesagt, dann trägt die
Information, dass ein e enthalten ist, am wenigsten zum Verständnis bei, da sich
die Menge der möglichen Worte durch die Bekanntgabe des Buchstaben am
geringsten einschränken lässt. Die CE, also die verbleibende Unsicherheit über das
Wort ist demnach für die gemachte Beobachtung e immer noch groß, da die
beseitigte Unsicherheit durch die Beobachtung sehr gering ist.
Abschließend zum Entropie-Exkurs soll noch der Begriff der Verbundentropie
oder auch Blockentropie eingeführt werden [FraSoI]. Die Verbundentropie, auch
engl. Joint Entropy, bezeichnet die verbleibende Unsicherheit für das gleichzeitige
Auftreten bestimmter Werte von mehreren Zufallsvariablen, bzw. das Auftreten
eines Blocks von Zeichen. Zur Definition wird die Verbundwahrscheinlichkeit
Pn (x)  P( x1 ,
, xn )  P( x1 )  P( x2 ,
, xn | x1 )
benötigt, die angibt, mit welcher Wahrscheinlichkeit ein bestimmter Block x mit n
Zeichen in einer Information, z.B. einem Bitstring vorkommt. Die
Verbundentropie lässt sich dann wie folgt definieren:
H n (x)  H ( x1 ,
62
, xn )    Pn (x) log| X n | Pn (x)
xX n
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
X n gibt hier die Menge der möglichen Realisierungen der multivariaten
Zufallsvariablen x an. Die Anzahl der möglichen Realisierungen | X n | , die Basis
des Logarithmus ist durch die kombinatorische Überlegung
| X n |  | L |n
gegeben, d.h. es gibt genau | L |n Möglichkeiten, einen Block mit n Elementen aus
einem Alphabet L mit | L | Zeichen zu formen.
Nach diesem Exkurs in die Informationstheorie stellt sich die Frage, wie die
Entropie für die Berechnung der Ähnlichkeit zwischen zwei Bildern verwendet
werden kann. Dazu muss zunächst untersucht werden, ob sich die Entropie auch
für Bilddaten berechnen lässt.
Wie oben gezeigt, handelt es sich bei der Entropie um ein statistisches Maß. Hätte
man also eine statistische Beschreibung eines Bildes, so könnte die Entropie aus
dieser Information berechnet werden. Die einfachste statistische Beschreibung
eines Bildes erfolgt mit Hilfe eines Histogramms (siehe Abbildung 7.3).
Abbildung 7.3: Entropie und Histogramm
Ein Grauwert-Histogramm (rechts) als statistische Beschreibung eines Bildes (links). Mit Hilfe der
Zufallsvariablen T, deren Werte die möglichen Grauwerte darstellen, kann eine
Wahrscheinlichkeitsverteilung definiert werden, die das Bild links statistisch beschreibt.
(Quelle: [GioPa], aufbereitet)
In der Abbildung beschreibt die rote Linie die kontinuierliche Verteilung der
Grauwerte in [0,255]. Das Histogramm P(T ) kann also als Diskretisierung für die
Grauwertverteilung angenommen werden. Ohne Beschränkung der Allgemeinheit
wird im Folgenden P(T )  P(t0 , , t255 ) , d.h. ein diskreter Wertebereich [0,…,255]
63
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
für T verwendet, da verwendete Eingabebilder meist eine Farbtiefe von acht Bit
besitzen. Für effizientere Berechnungen kann dieser Wertebereich natürlich noch
weiter eingegrenzt werden.
Die Werte von P(T ) müssen nun noch komponentenweise durch Division durch
die Gesamtanzahl aller Pixel L in das Einheitsintervall [0,1] skaliert werden:
P (T ) 
1
1
P(T )  P(t1 ,
L
L
, tn )
Automatisch ist damit die Integritätsbedingung für ein vollständiges System
paarweise disjunkter Elementarereignisse ti erfüllt:
255
1   P (ti )
i 0
Die Bildentropie H (T ) kann nun gemäß der obigen Definition der Entropie wie
folgt berechnet werden:
255
H (T )   P (ti ) log 255 P (ti )
i 0
Um die Ähnlichkeit zwischen zwei Bildern zu berechnen, müssen die
Histogramme der zwei zu analysierenden Bilder bestimmt werden. Diese sind im
Fall von Template-Matching zum einen das Histogramm des Templates, zum
anderen das Histogramm des Bildausschnitts, der sich aus der Transformation der
Koordinaten des Templates bezüglich einer zu evaluierenden Pose ergibt. Aus den
beiden Histogrammen kann dann ein sogenanntes Verbundhistogramm (engl.
Joint Histogram) ermittelt werden.
64
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Abbildung 7.4: Joint Histogram
Oben:
Histogramme der beiden Bilder aus Abbildung 7.1
Unten: Verbundhistogramm in zwei verschiedenen Darstellungen
(Quelle: [GioPa], aufbreitet)
Verbundhistogramme gehen auf Greg Pass und Ramin Zabih [PasZa] zurück. Sie
ermöglichen nebst interessanten Berechnungen auch die anschauliche
Visualisierung absoluter, linearer und nichtlinearer Beziehungen zwischen den
Vergleichsbildern. Abbildung 7.4 beispielsweise zeigt eine nichtlineare Beziehung.
Die Zufallsvariablen T und I in Abbildung 7.4 stellen die Grauwertverteilung der
zu analysierenden Bilder dar. In einem Verbundhistogramm gibt ein Wert
P(T , I )  P(T  t  I  i ) dann die Wahrscheinlichkeit an, an beliebigen
Koordinaten des Templates den Grauwert t und gleichzeitig an den
korrespondierenden Koordinaten des Vergleichsbildes den Grauwert i zu
beobachten.
Zur Analyse der Ähnlichkeit zweier Bilder, also im Sinne von Template-Matching
die Ähnlichkeit zwischen Template und einem zu analysierenden Bildausschnitt,
kann diese mehrdimensionale Wahrscheinlichkeitsverteilung P (T , I ) verwendet
werden. Als erster Schritt soll aus den berechneten Verbundwahrscheinlichkeiten
P (t , i ) die Verbundentropie berechnet werden:
255 255
H (T , I )   P(t , i) log 2552 P(t , i)
t 0 i 0
65
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Ein niedriger Wert für H (T , I ) impliziert eine Beziehung zwischen den beiden
Beispielbildern, da das Joint Histogram nur an wenigen Stellen hohe Werte
aufweist, bzw. viele Stellen hingegen (fast) null sind. Ein so geartetes
Verbundhistogramm kann effizient, d.h. mit wenigen Bits kodiert werden, was die
niedrige Entropie und damit eine Beziehung erklärt.
Allgemein lässt sich sagen, dass die Verbundentropie ein Minimum annimmt, falls
eine Beziehung zwischen den beiden Zufallsvariablen T und I besteht. Diese
Aussage gilt für absolute, lineare und nicht lineare Beziehungen. Ein erster
Versuch zur Konstruktion eines Ähnlichkeitsmaßes für nichtlineare Beziehungen
zwischen zwei Bildern könnte also direkt die Verbundentropie auf Basis eines
Joint Histograms als Berechnungsgrundlage verwenden. Für verschiedene
Sonderfälle kann das so konstruierte Maß durchaus passable Ergebnisse liefern
(siehe Abbildung 7.4 und Abbildung 7.5).
Leider nimmt jedoch definitionsgemäß die Verbundentropie immer ein Minimum
an, sobald die Darstellung des Verbundhistogramms kompakt möglich ist.
Abbildung 7.6 zeigt, dass der kompakten Darstellung jedoch nicht immer eine
Ähnlichkeit der beiden Bilder zugrunde liegen muss.
Abbildung 7.5: Joint Histogramm und Verbundentropie (1)
Beim Vergleich zweier identischer Bilder nimmt die Verbundwahrscheinlichkeit lediglich auf der
Diagonalen Werte größer 0 an. Da das Verbundhistogramm eine kompakte Kodierung ermöglicht,
ergibt sich ein Minimum für die Verbundentropie, was auf eine große Ähnlichkeit der Bilder
schließen lässt.
(Quelle: [GioPa], aufbereitet)
66
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Es ist jedoch die Berechnung eines Ähnlichkeitsmaßes auf Basis der
Verbundentropie möglich, bei dem oben beschriebene Fehler nicht mehr auftreten.
Dieses Maß wird als Mutual Information (MI) oder Transinformation bezeichnet
und wird folgendermaßen berechnet:
MI (T , I )  H ( I )  H ( I | T )
 H ( I )   H ( I , T )  H (T ) 
 H ( I )  H (T )  H ( I , T )
Die Transinformation wird aus den jeweiligen Bildentropien der Histogramme für
Bild und Template und der Verbundentropie auf Basis des Joint Histograms
abgeleitet.
Anschaulich bedeutet dies, dass falls die separate Kodierung der
Einzelhistogramme für Template und Eingabebild in der Summe H ( I )  H (T ) in
etwa gleich viele Zeichen erfordert wie die Kodierung unter der Voraussetzung,
dass das jeweils andere Bild bereits bekannt ist, H ( I , T ) , so liegt keine Beziehung
zwischen den Bildern vor. Falls jedoch die Kenntnis des Templates die Kodierung
des Vergleichsbildes wesentlich vereinfacht, da sie sich kaum unterscheiden, so ist
der Wert der Verbundentropie H ( I , T ) auch wesentlich geringer als die Summe
der Einzelentropien für T und I . In diesem Fall ergibt sich ein hoher Wert für die
Mutual Information MI (T , I ) und eine Beziehung zwischen den Bildern ist
gefunden.
67
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 7.6: Joint Histogramm und Verbundentropie (2)
Obwohl keine visuelle Ähnlichkeit in beiden Beispielbildern auszumachen ist, nimmt die
Verbundentropie wieder ein Minimum an. Einer direkten Verwendung der Verbundentropie als
Ähnlichkeitsmaß steht dies im Wege. Mutual Information kann hier Abhilfe schaffen.
(Quelle: [GioPa], aufbereitet)
Konkret kann man die Transinformation für ein Verbundhistogramm mit den
Wertebereichen [0,255] der Zufallsvariablen T und I auf Basis obiger
Definitionen der Entropie so formulieren:
255 255
MI (T , I )   P(t , i ) log 2552
t 1 i 1
P(t , i )
P(t ) P(i )
Bezüglich der Effizienz der Berechnung der Transinformation im Vergleich zur
Berechnung anderer vorher diskutierter Ähnlichkeitsmaße kann festgestellt
werden, dass die Berechnung zwar einen logarithmischen Term enthält, dieser
jedoch nur relativ selten ausgewertet werden muss. Beim Ähnlichkeitsmaß der
quadratischen Fehlersumme beispielsweise muss zum Vergleich zweier Bilder der
Fehler für jedes Pixel bestimmt werden. Für die Berechnung der Mutual
Information reicht jedoch die Anzahl der Bins (d.h. die Anzahl der Zähler in
einem Histogramm – in den obigen Formeln stets 255) im Template multipliziert
mit der Anzahl der Bins im Vergleichsbild aus. Dadurch kann die relativ
ineffiziente Logarithmusberechnung mehr als wett gemacht werden.
Folgendes Rechenbeispiel für ein Bild der Dimension 1000 × 1000 Pixel soll dies
verdeutlichen:
68
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.

SSD
Der quadratische Fehler muss 10002  106 mal berechnet werden.

NCC
Das Produkt der Pixelwerte muss ebenfalls 10002  106 mal berechnet
werden.

MI
Die Berechnung der Transinformation erfordert lediglich die
Auswertung von 2552  6,5 104 logarithmischen Termen, dies entspricht
nur ungefähr fünfzehn Prozent des Aufwands verglichen mit den Maßen
SSD und NCC.
Abschließend kann man sagen, dass bei der Berechnung der Mutual Information
jede Art von Beziehung zwischen zwei Bildern offenkundig wird. Es können
Korrelationen absoluter, linearer und nichtlinearer Art festgestellt und ihnen ein
Wert zugewiesen werden, der ihre Güte quantifiziert. Auch der auf den ersten
Blick erhebliche mathematische Aufwand zur Berechnung entpuppt sich bei
näherer Betrachtung als nicht allzu komplex. Vielmehr ist die Berechnung der
Mutual Information sogar teils effizienter als die Berechnung der
mindermächtigen Ähnlichkeitsmaße SSD und NCC. Lediglich die Erzeugung des
Histogramms benötigt doch einigen Rechenaufwand.
Mutual Information wird hauptsächlich verwendet, um Beziehungen zwischen
Bildern dort herzustellen, wo andere einfacher handhabbare Verfahren versagen.
Für viele Anwendungen der Praxis ist jedoch die Verwendung der absoluten oder
linearen Ähnlichkeitsmaße vollkommen ausreichend, weshalb häufig auf die
schwieriger zu implementierende Bestimmung der Transinformation verzichtet
wird.
7 . 1 .4 K o n t u r b a s i e r t e Ä h n l i c h ke i t
Einen völlig anderen Weg geht man bei der Bestimmung der Ähnlichkeit zweier
Vergleichsbilder über die Ähnlichkeit der Konturen (engl. Shapebased Matching
oder einfach Shape Matching). Verglichen mit den vorher beschrieben
Ähnlichkeitsmaßen ist die Anwendung dieses Maßes ausgesprochen effizient, da
die Berechnung der Ähnlichkeit nur auf Basis der weniger Konturpunkte erfolgt.
Auch die absoluten Werte der analysierten Punkte sind dabei irrelevant, lediglich
die Klassifikation als Punkt einer Objektkontur ist interessant.
Voraussetzung für die Anwendbarkeit dieses Verfahrens ist natürlich die
Extraktion der Konturpunkte durch geeignete Operationen der Vorverarbeitung
69
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
(siehe Kapitel 4). Ist die Kontur in beiden Bildern bekannt, kann ein
konturbasierter Fehler (engl. contour based error, CBE) wie folgt definiert werden:

CBET , I , p    min
jK I , p
iKT 
x  x   y  y 
2
i
j
i
2
j


mit der Menge der Konturpunkte des Templates K T
KT  x T | K ( x )  true
und analog, aber bezüglich des durch die Transformation
f p festgelegten
Bildausschnitts aus dem Eingabebild, der Menge der Konturpunkte
K I , p   x  I | K ( x )  true  f p1 ( x )  T 
(zur Definition von K ( x ) siehe Abschnitt 4.1). Jeder der Konturpunkte aus dem
Template wird also mit dem nächstgelegenen Konturpunkt aus dem bezüglich der
Pose p ermittelten Bildausschnitt des Eingabebildes verglichen. Die Summe der
Abstände der nächstgelegenen Punkte ergibt dann einen absoluten Fehler für das
konturbasierte Ähnlichkeitsmaß. Dieser Fehler muss jetzt normalisiert werden um
eine Skalierung auf das Intervall [0,1] und einen Optimalwert von 1,0 zu erreichen:
nT , I , p 
1

| KT |  | K I , p | iKT
 x  x   y  y 
2
jK I , p
i
j
i
2
j
Der Faktor nT , I , p gibt den durchschnittlichen Abstand der Konturpunkte eines
Templates zu jedem der Konturpunkte des betrachteten Bildausschnittes an und
dient zur Gewichtung des konturbasierten Fehlers:
NCBST , I , p  nT , I , p 1  CBET , I , p
Die Ähnlichkeit der beiden Konturen NCBST , I , p (engl. normalized contour based
similarity) enthält nun einen skalierten Wert im Einheitsintervall. Dieser Wert
kann als Ähnlichkeitsmaß verwendet werden und ist im Normalfall sehr viel
schneller zu berechnen ist, als die in den letzten Abschnitten beschriebenen Maße,
da die Summen nur noch über Konturpunkte und nicht wie oben über alle Punkte
des Templates und des zu vergleichenden Bildausschnittes gebildet werden
müssen.
Das hier erklärte Ähnlichkeitsmaß ist sehr robust und effizient, solange sich
Objekte nicht überlagern. Eine mögliche Fehlerquelle sind teilweise verdeckte
70
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Objekte deshalb, weil nächstgelegene Konturpunkte nicht zwangsläufig zu der
korrespondierenden Kontur gehören oder diese Konturpunkte in der Szene nicht
sichtbar sind. Eine weitere Fehlerquelle sind Objekte, deren Konturen ähnlich oder
identisch sind. Diese Objekte können durch ein konturbasiertes Ähnlichkeitsmaß
nicht differenziert werden. Im JAST-Projekt kommen beispielsweise rote, gelbe,
grüne und blaue Würfel und Schrauben vor, weshalb diese unter Zuhilfenahme
eines weiteren Unterscheidungskriteriums analysiert werden müssen.
7 . 2 A u s wa h l u n d Po s i t i o n i e r u n g d e r T e m p l a t e s
Wurden im letzten Abschnitt verschiedene Methoden zur Bestimmung der
Ähnlichkeit zwischen einem Template und einem Bildausschnitt diskutiert, so soll
in diesem Abschnitt näher erklärt werden, wie sich die optimale Pose für ein
Template in einem Bildausschnitt finden lässt. Auch wie sich die Menge der zu
vergleichenden Templates einschränken lässt, also nicht in Frage kommende
Objekte von vorneherein ausschließen lassen, soll untersucht werden.
Wie oben in Anlehnung an [CooMA] definiert, ist eine Pose eines Templates im
Vergleichsbild normalerweise durch vier Freiheitsgrade, engl. degrees of freedom
(DOF), d.h. eine bestimmte Verschiebung im Vergleichsbild in der Horizontalen
und Vertikalen sowie eine Skalierung und Rotation, charakterisiert. Projektivische
Transformationen des Templates sind ein weiteres Charakteristikum einer Pose,
allerdings erhöht sich dadurch die Anzahl der Freiheitsgrade auf acht und damit
der Rechenaufwand exponentiell, weshalb diese Transformationen nur verwendet
werden, wenn es unerlässlich ist.
Zunächst soll nun im nächsten Abschnitt ein grundsätzliches Verfahren zur
Bestimmung einer geeigneten Pose erklärt werden, danach werden weiter unten
ausgeklügeltere Verfahren vorgestellt. In der Praxis wird innerhalb eines
Template-Matching Verfahrens oft auch eine Kombination der vorgestellten
Verfahren verwendet.
7 . 2 .1 N a i v e Su c h e
Bei der Bestimmung einer guten Pose ist der Suchraum durch die Kardinalität der
Menge P , der Menge aller möglichen Posen p beschränkt. Durch Diskretisierung
der Wertebereiche für die Freiheitsgrade ergibt sich eine Kardinalität | P | der
Menge für die vier üblichen Freiheitsgrade, die für euklidsche Transformationen
notwendig sind, wie folgt:
71
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
| P |  | I x |  | I y |  | N |  | N S |
| I x | und | I y | stellen dabei die Ausdehnung der Vergleichsbildes in Pixel dar und
repräsentieren die Anzahl möglicher Werte für die Translationen in der
Horizontalen und Vertikalen. | N | gibt die Anzahl der möglichen Rotationen
  N mit N  [0,..., 2 [ und | N S | die Anzahl der möglichen Skalierungen s  N S
an. Es existieren also beispielsweise bereits für zwanzig verschieden Rotationen
und zwanzig verschiedene Skalierungen in einem XGA-Bild (1024×768 Punkte)
circa 3,1108 verschiedene Posen. Sollen noch weitere Freiheitsgrade für affine
Transformation oder perspektivische Projektion betrachtet werden, potenziert sich
diese Zahl noch.
Ein erster naiver Template-Matching Ansatz zur Bestimmung einer geeigneten
Templatepose durchsucht die ganze Menge P . Für jede mögliche Pose p wird
dann mit Hilfe des gewählten Ähnlichkeitsmaßes der Ähnlichkeitswert bestimmt.
Anschließend werden mit einem Schwellwert diejenigen herausgefiltert, die
brauchbar erscheinen. Da jedoch verschiedene Objekte gefunden werden sollen
und für jedes Objekt im Regelfall mehrere Templates vorhanden sind, stellt sich
schnell heraus, dass dieser Ansatz alles andere als optimal ist, da es viel zu viel
Zeit kostet, die Menge P vollständig zu durchsuchen.
Ein Testlauf im JAST-Projekt mit fünfzehn Templates, d.h. das Ähnlichkeitsmaß
musste bereits circa 4,6 109 mal ausgewertet werden, ergab abhängig vom
verwendeten Maß und von der Anzahl auf dem Tisch platzierter Objekte dank der
leistungsfähigen Hardware trotzdem eine erstaunlich niedrige Laufzeit zwischen
zwanzig und dreißig Minuten pro Eingabebild. Da im JAST-Projekt jedoch das
Zielsystem möglichst in Echtzeit funktionieren soll, ist klar, dass verschiedene
Optimierungen eingesetzt werden müssen, um das System den gegebenen
Anforderungen anzupassen und die gewünschten Laufzeiten zu erzielen.
7 . 2 .2 R e gi o n e n b a s i e r t e Su c h e
Eine erste Optimierung gegenüber dem naiven Ansatz stellt die Verwendung
einer regionenbasierten Suchstrategie dar. Bei dieser Strategie wird das
Eingabebild zunächst vorverarbeitet. Dabei wird das Bild, bzw. Ausschnitte des
Bildes bezüglich bestimmter festgelegter Charakteristika bewertet. Die
Charakteristika sind dabei so gewählt, dass sie möglichst gut Regionen
beschreiben, die zu erkennende Objekte enthalten könnten. Sinn dieses Verfahrens
ist die Einschränkung des Wertebereichs für die Translation in der Horizontalen
und Vertikalen.
72
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Können Regionen auf diese Art gefunden werden, so werden sie aus dem
Eingabebild extrahiert und die Suche wird auf diese Regionen beschränkt. Ein
weiterer Vorteil dieses Verfahrens ist, dass sich durch Extraktion der Regionen
auch ungeeignete Templates von der Suche ausschließen lassen. Sind Breite oder
Höhe eines Templates in niedrigster Skalierung größer als die Region, in der die
Suche stattfindet, so müssen die anderen Parameter der Pose für das Template in
der Region nicht mehr betrachtet werden und das Template kann als irrelevant
verworfen werden.
Abbildung 7.7: Regionenbasierte Suche
Kann die Menge der möglichen Posen durch Begrenzung der Wertebereiche für die Translation
eingeschränkt werden, so ergibt dies eine wesentliche Verbesserung der Laufzeiten beim
Template-Matching.
(Quelle: Eigene Darstellung)
Sind die Charakteristika gut gewählt und können Regionen sehr eng eingegrenzt
werden, so lässt sich allein mit dieser Methode die Performanz des
Objekterkennungssystems bereits extrem verbessern. Ein Testlauf im JAST-Projekt
zeigte in einem analog zu Abschnitt 7.2.1 gestalteten Testszenario wieder
abhängig vom Ähnlichkeitsmaß und der Anzahl Objekte auf dem Tisch bereits
Laufzeiten unter zehn Minuten. JAST-spezifische Vorgehensweisen zur Extraktion
relevanter Bildregionen sind in Kapitel 2 nachzulesen.
73
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
7 . 2 .3 F a r b b a s i e r t e Su c h e
Zunächst muss man erklären, dass die Strategie der farbbasierten Suche nicht die
Menge der möglichen Posen P für ein Template einschränkt, sondern die Menge
der zu vergleichenden Templates. Intention des Verfahrens ist es also, Objekte
aufgrund ihres charakteristischen Farbspektrums auszuschließen und für diese
Objekte die Suche in der Menge P überhaupt nicht durchzuführen.
Intuitiv lässt sich diese Strategie als Möglichkeit zur Optimierung erfassen. Basis
der Strategie ist die Auswertung der Farbinformationen. Der Strategie liegt eine
regionenbasierte Suche zugrunde, d.h. aus dem Eingabebild müssen zunächst
relevante Bildregionen extrahiert werden, damit eine geeignete Grundlage für die
Extraktion der Farbinformation vorliegt.
Sinnvoll ist die Strategie trotzdem nur, falls für die zu erkennenden Objekte ein
charakteristisches Farbspektrum verfügbar ist. Da dies aber oft der Fall ist, z.B.
auch im Szenario des JAST-Projektes (siehe Abbildung 7.8), wird die Strategie an
dieser Stelle erläutert.
Abbildung 7.8: Farbbasierte Suche im JAST-Projekt
Auf Basis der Hauptfarbkomponenten einer Region (links oben an der Region) können Templates
von der Suche ausgeschlossen werden. Die Suche kann so auf wenige Objekte pro Region
beschränkt werden.
(Quelle: Eigene Darstellung)
Ist ein charakteristisches Farbspektrum verfügbar, d.h. ist das Objekt im besten
Fall einfarbig, kann nach Extraktion der relevanten Regionen aus den Farbwerten
74
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
an allen Koordinaten in der gewählten Bildregion das Farbspektrum bestimmt
werden und mit allen zu erkennenden Objekten verglichen werden. Ziel ist dann
der Ausschluss aller Objekte von den weiteren Schritten des Template-Matchings,
die dem ermittelten Farbspektrum nicht entsprechen.
Da im JAST Projekt die Extraktion des Farbspektrums möglich ist (Details siehe
Kapitel 3), da die Objekte der Baufix-Domäne meist einfarbig sind und keine
Textur aufweise, kann die Farbinformation hier sehr gut verwendet werden um
aus der Menge der Templates diejenigen auszuwählen, die relevant erscheinen.
7 . 2 .4 K o n t u r b a s i e r t e Su c h e
Neben den obigen Strategien gibt es noch weitere Verfahren zur Beschleunigung
der Positionsbestimmung, bzw. Einschränkung der Wertebereiche der
Freiheitsgrade, also der Beschränkung der Menge aller möglichen Posen p . So
kann der Suchraum zudem durch Beschränkung der Positionsparameter auf die
Konturkoordinaten und deren Umgebung verkleinert werden. Alle anderen
Parameter der zulässigen Posen, also Rotationsparameter oder Parameter für die
Skalierung, etc. bleiben davon unberührt.
Konturpunkte sind oft bereits durch die Vorverarbeitung bekannt, bzw. können
performant extrahiert werden, siehe dazu auch Kapitel 4. Sind sie gegeben, lässt
sich mit ihrer Hilfe die Suche einer geeigneten Pose für ein zu vergleichendes
Template sehr effizient implementieren.
75
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 7.9: Konturbasierte Suche
Eine Strategie zur Verkleinerung des Suchraums, also zur Einschränkung der Zahl der möglichen
Posen ist, als Translationsparameter nur solche Werte zuzulassen, die auf der extrahierten Kontur
eines Objektes (hier gelb dargestellt) liegen.
(Quelle: Eigene Darstellung)
Als zusätzlicher Vorverarbeitungsschritt zur konturbasierten Suche werden die
Templatebilder in eine geeignete Form überführt, d.h. die Beispielbilder der
Objekte werden möglichst in horizontale oder vertikale Lage transformiert.
Außerdem ist es hilfreich, wenn die Objektpunkte möglichst nahe an den Grenzen
der Abbildungen liegen, da die Auswertung der Ähnlichkeitsmaße dann in erster
Iteration bessere Resultate zeigen.
Die konturbasierte Suche ist ein iteratives Verfahren. Wird eine gute
Ausgangspose auf Basis der Konturpunkte gefunden, so wird die lokale
Umgebung der Pose p , d.h. Werte für die verwendeten Parameter der Pose, die
sich nur wenig von denen der Ausganspose unterscheiden, ebenfalls untersucht.
Um die Laufzeit des Verfahrens zu begrenzen wird die Iterationstiefe oder eine
Verschlechterung des Ähnlichkeitswertes als Abbruchkriterium verwendet.
Da die Menge der Konturpunkte im Vergleich zur Menge aller möglichen Punkte
klein ist und nur die Umgebung der Punkte untersucht wird, die gute Werte
liefern, ist die Größe des zu verarbeitenden Suchraums klein bezüglich der
Kardinalität der Menge P . Daher ist auch die Laufzeit des Template-Matching
Verfahrens bei Verwendung der konturbasierten Suche deutlich geringer als bei
Verwendung einer naiven Suchstrategie.
76
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
7 . 2 .5 D o wn h i l l - Si m p l e x Su c h e
Abschließen soll abseits der vorher diskutierten eher intuitiv begründeten Ansätze
nun ein eher mathematischer Ansatz zur Suche optimaler Posen aus der Menge P
erläutert werden. Mathematisch betrachtet stellt das Finden guter Posen ein
nichtlineares Optimierungsproblem in einem durch die verwendeten
Transformationsparameter festgelegten Raum dar. Für diese Art Probleme
existieren eine Reihe von numerischen Verfahren in der Literatur, z.B. das
Newtonsche Näherungsverfahren [DeuNew], das Gauß-Newton Verfahren
[GauNew], der Levenberg-Marquardt Algorithmus [LevMe] [MarAlg], oder
Simulated Annealing [KirSima] [Cern], um nur einige zu nennen.
Exemplarisch soll an dieser Stelle das von Nelder und Mead 1965 vorgestellte
Verfahren erklärt werden. Aufgrund seiner Arbeitsweise wird das Verfahren in
der Literatur zuweilen auch Downhill-Simplex-Verfahren genannt.
Abbildung 7.10: Downhill-Simplex - Initialisierung und Reflexion
Ein 2D-Paramterraum, das Optimum ist durch Höhenlinien gekennzeichnet.
Links:
Zufällige Initialisierung - ein Simplex in 2D ist ein Dreieck.
Rechts: Erster Schritt des Downhill-Simplex-Verfahrens - Reflexion am
Schwerpunkt des Simplex.
(Quelle: [SimNeld], aufbereitet)
Das Verfahren von Nelder und Mead basiert auf einem sogenannten Simplex. Als
Simplex wird ein Gebilde in einem n -dimensionalen Raum bezeichnet, das aus
genau n  1 Punkten besteht. Es stellt damit die einfachste Fläche bei zwei
Dimensionen, bzw. das einfachste (Hyper-)Volumen im 3- bis n -dimensionalen
dar. Das Verfahren wird im Folgenden am Beispiel eines zweidimensionalen
Parameterraumes erklärt, da dieser am anschaulichsten visualisiert werden kann.
Downhill-Simplex zählt zu den randomisierten Verfahren, d.h. die Initialisierung
der zu optimierenden Parameter geschieht zufällig. Im hier betrachteten Fall der
Objekterkennung bedeutet dies, dass aus der Menge P entsprechend der Zahl der
77
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Freiheitsgrade f zufällig f  1 Posen gewählt werden, die das Initialsimplex im
f -dimensionalen Parameterraum bilden (siehe Abbildung 7.10).
Das Downhill-Simplex Verfahren ist ein iteratives Verfahren, d.h. zur
Optimierung werden folgende Schritte wiederholt durchgeführt:
1. Reflexion
Ist ein Simplex S durch f  1 Punkte des Raumes gegeben, wird der
bezüglich des Ähnlichkeitsmaßes schlechteste Punkt gewählt und am
Schwerpunkt xs des Simplex reflektiert (siehe Abbildung 7.10).
xs 
1
f
x
iS
i
Der reflektierte Punkt xr  kann dann mit Hilfe des Schwerpunkts xs
und des schlechtesten Punktes xr wie folgt berechnet werden:
xr  xr  2( xr  xs )
 2 xs  xr
2. Auswertung
Der durch Reflexion entstandene Punkt und die anderen Ecken des
Simplex werden bezüglich des Ähnlichkeitsmaßes ausgewertet. Falls
der beste Wert das Abbruchkriterium erfüllt, wird dieser als Lösung
zurückgegeben und das Verfahren terminiert.
3. Fallunterscheidung
Der durch Reflexion entstandene Punkt wird mit den Werten der
übrigen Punkte verglichen und daraus eine Folgeaktion abgeleitet:
78

Substitution
Liefert der reflektierte Punkt einen Wert, der besser als der bisher
schlechteste Punkt, aber auch kein neuer Bestwert ist, so wird der
bisher schlechteste Punkt durch den reflektierten Punkt ersetzt.
Anschließend wird das Verfahren ab Schritt 1 wiederholt.

Expansion
Falls der reflektierte Punkt den neuen besten Wert liefert, wird
angenommen, dass die Richtung der Reflexion dem Gradienten
entspricht und die Entfernung des Punktes bezüglich der
Verbindung zum schlechtesten Punkt um einen Faktor   1
skaliert. Danach wird das Verfahren ab Schritt 2 wiederholt.
ERROR! USE

HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Kontraktion
Falls der Wert des reflektierten Punktes schlechter als alle anderen
Werte ist, wird der Punkt verworfen und das Simplex
zusammengezogen. Zentrum der Kontraktion ist der Punkt mit
dem bisher besten Wert. Wieder wird das Verfahren ab Schritt 2
wiederholt.
Das Verfahren trägt den Beinamen „Downhill“, da in den Iterationen der Gradient
zu approximieren versucht wird. Wie alle lokalen Verfahren zur Optimierung
birgt es dabei den Fehler, dass das Verfahren gegen ein nur lokales Optimum
konvergiert. Trotzdem ist es aufgrund der einfachen Implementierung, die ohne
die eigentliche Berechnung des Gradienten auskommt, eines der beliebtesten
Verfahren in der Praxis. Es existieren verschieden problemspezifische
Lösungsansätze um das Problem der lediglich lokalen Optimierung in den Griff
zu bekommen, z.B. [LueRi], [MalKar] oder [CheSia].
Abbildung 7.11: Downhill-Simplex – Substitution
Der bisher schlechteste Punkt wird durch den reflektierten Punkt ersetzt.
(Quelle: [SimNeld], aufbereitet)
Abbildung 7.12: Downhill-Simplex – Expansion
Expansion des Simplex, falls der reflektierte Punkt den neuen besten Wert liefert.
(Quelle: [SimNeld], aufbereitet)
79
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Abbildung 7.13: Downhill-Simplex – Kontraktion
Kontraktion des Simplex, falls der reflektierte Punkt den neuen schlechtesten Wert liefert.
(Quelle: [SimNeld], aufbereitet)
Das Verfahren ist bezüglich der Laufzeit für die Optimierung in hochparametrisierten Räumen außerordentlich effizient, da in der Summe nur sehr
wenige Punkte des Raumes betrachtet werden. Im spezifischen Problemfeld der
Objekterkennung ist dies vorteilhaft, da die geringe Laufzeit zugunsten eines nicht
ganz optimalen Ergebnisses oftmals bevorzugt wird.
7 . 3 A n a l ys e d e s Ve r f a h r e n s
Die bezüglich der Anforderung an das Objekterkennungssystem, mit teilweise
verdeckten Objekten umzugehen, am geeignetsten scheinenden Verfahren sind
diein diesem Kapitel erläuterten Template-Matching Verfahren. Charakteristisch
für Template-Matching ist der Vergleich zweier Bilder, ein Bild, das sogenannte
Template, und das andere das zu analysierende Eingabebild.
Verschiedene Ähnlichkeitsmaße erlauben es, dem Template in einer bestimmten
Lage
einen
Ähnlichkeitswert
zuzuordnen.
Die
Auswertung
des
Ähnlichkeitsmaßes an allen oder einer Auswahl der möglichen Posen spezifiziert
dann mit Hilfe eines Schwellwertes das Vorhandensein eines Objektes. Wird dies
für alle Templates durchgeführt, kann eine Aussage getroffen werden, welches
der möglichen Objekte an bestimmten Positionen in bestimmten Orientierungen
und Skalierungen auftritt. Eine Wahrscheinlichkeit gibt dabei die Sicherheit der
Aussage an.
Den Nachteilen des Verfahrens, zum Einen der erhebliche Aufwand zur
Auswertung eines Ähnlichkeitsmaßes bei großen Templates, bzw.
Bildausschnitten und zum Anderen der exponentiell mit der Anzahl der
Freiheitsgrade wachsende Suchraum kann begegnet werden. Die Wahl des
80
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Ähnlichkeitsmaßes muss das Eingabeszenario wiederspiegeln und ebenso die
Performanzkriterien berücksichtigen. Auch bei der Wahl einer Suchstrategie sind
das Performanzkriterium sowie die Entscheidung relevant, ob eine schnelle
Lösung einer genauen Lösung vorzuziehen ist.
In der Praxis, d.h. insbesondere in der Umsetzung für das JAST-Projekt muss sich
also zeigen, welche der vorgeschlagenen Methoden zur Optimierung sinnvoll und
effizient sind (genaueres dazu in Kapitel 10.1).
81
8
JAST-Objekterkennung
In den letzten Kapiteln wurden verschiedene Verfahren und Werkzeuge
diskutiert, die geeignet erscheinen, Objekte in einem Eingabebild des JASTProjektes zu erkennen. In diesem Abschnitt soll nun detailierter auf die konkrete
Implementierung des im Verlauf der Bearbeitung entwickelten Systems
eingegangen werden.
8 . 1 O b j e kt e r e p r ä s e n t a t i o n
In der JAST-Domäne existieren verschiedene Klassen von Objekten, die alle
geeignet repräsentiert werden müssen. Die interessantesten Objekte für ein
Objekterkennungsverfahren auf Basis von Template-Matching sind die Objekte
der Baufix-Domäne. Des Weiteren müssen jedoch auch Gesten und
Roboterfragmente erkannt und in geeigneter Form für die Weiterverarbeitung zur
Verfügung gestellt werden.
8 . 1 .1 B a u f i x - O b j e kt e
Hauptziel der Objekterkennung im JAST-Projekt ist die Erzeugung von logischen
Objekten, die die tatsächlich in einer JAST-Szene vorkommenden Baufix-Objekte
geeignet repräsentieren. Eine solche Repräsentation muss zur Weiterverarbeitung
im multimodalen JAST-System konkret folgende Informationen bereitstellen:

Objekttyp
Der Objekttyp stellt die logische Einordnung des Objektes dar. Im JASTProjekt sind die Basisobjekte „Schraube“, „Würfel“, „Leiste“, „Rad“ und
„Mutter“ vorhanden. Oftmals existieren daneben noch verschiedene
Ausprägungen der einzelnen Objekte. So gibt es z.B. lange, mittellange
und kurze Schrauben, teils mit eckigem teils mit rundem Kopf, sowie
Leisten von unterschiedlicher Länge und mit unterschiedlicher Anzahl
von Löchern.
83
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO

Pose
Neben dem Objekttyp ist die wichtigste Information über ein Objekt
seine Lage. Diese Information wird benötigt, damit der Roboter das
entsprechende Objekt greifen kann. Für die Bestimmung der Lage
werden im JAST-System in der vorliegenden Version von den
Parametern einer Pose nur die Werte für Translation und Rotation
benötigt, da die Kamera in festem Abstand von der zu analysierenden
Szene montiert ist. Da sich alle zu erkennenden Objekte in einer Ebene
unterhalb der Kamera befinden, ist eine Skalierung der Templates nicht
notwendig. Auch eine projektivische Transformation wird in der
implementierten Version nicht benötigt, da Kamera- und Bildebene
parallel sind. Die Parameterwerte für Transformationen dieser Art
werden einmalig bestimmt und als konstant angenommen.

Farbe
Die Farbinformation ist eine weitere sehr wichtige Information für die
Weiterverarbeitung im JAST-System. Objekte wie Würfel können
beispielsweise nur durch ihre Farbe differenziert werden. Andere
Objekte haben zwar noch andere Merkmale, lassen sich aber doch durch
Auswertung der Farbinformation wesentlich exakter bestimmen.
Schrauben z.B. haben eine charakteristische Kopffarbe, die von
Menschen gerne als Unterscheidungsmerkmal verwendet wird. Da die
Interaktion mit dem Menschen ein zentrales Forschungsziel ist, ist die
Bestimmung der Farbinformation durchaus ein wichtiger Aspekt der
Objekterkennung.
Abbildung 8.1: Baufix-Sortiment
Alle Bausteine des Baufix-Sortiments sollen von der Objekterkennung erkannt werden.
(Quelle: Eigene Darstellung)
84
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
8 . 1 .2 G e s t e n
Neben den Baufix-Objekten existieren im JAST-Projekt Objekte, die sich nicht der
Baufix-Domäne zuordnen lassen. Hierzu zählen Gesten, also z.B. Zeigegesten
eines Benutzers auf einen Baustein, der sich auf dem Tisch befindet. Auch diese
Objekte müssen analysiert und interpretiert werden, sei es um Störungen der
Objekterkennung zu verhindern oder um die Geste korrekt auszuwerten.
Abbildung 8.2: Gestenobjekte
Auch Gesten zählen zu den Objekten, die von der Objekterkennung interpretiert werden.
(Quelle: Eigene Darstellung)
Die Repräsentation eines Gestenobjekts beinhaltet für die Weiterverarbeitung
spezifische Information:

Zeigerichtung
Eine wichtige Information für Interpretation ist die Auskunft über die
Richtung, in die der Benutzer zeigt. Die Bestimmung dieser Information
ist nicht ganz trivial und wird, weil sie zu weit vom Thema dieser Arbeit
wegführt nur rudimentär umgesetzt. Prinzipiell wird eine Gerade von
der Fingerspitze zur Basis der Geste, meist das Handgelenk berechnet
und diese Gerade durch das ganze Eingabebild verlängert.

Mögliche Objekte
Neben der Bestimmung der Richtung in die ein Benutzer zeigt, ist die
Information über Objekte, auf die gezeigt wird, die wichtigste
Information für die Weiterverarbeitung. In Abbildung 8.2 rechts wird
der Bereich, auf den die Geste mit großer Wahrscheinlichkeit deutet
durch ein weißes Trapez gekennzeichnet. Die Berechnung dieses
Trapezes erfolgt auf Basis der Zeigerichtung. Die Baufix-Objekte, die am
wahrscheinlichsten das Ziel der Zeigegeste sind, sind hier durch einen
andersfarbigen Rahmen gesondert gekennzeichnet.
85
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
8 . 1 .3 R o b o t e r f r a g m e n t e
Spezifisch für das JAST-Projekt ist außerdem das Erscheinen von
Roboterfragmenten in der Szene. Bewegt sich beispielsweise einer der
Roboterarme über den Tisch um eines der Baufix-Objekte zu greifen oder
niederzulegen, so muss dieses Objekt ebenfalls bestimmt und aus der zu
analysierenden Szene eliminiert werden um Störungen zu vermeiden. Die
Abbildung zeigt eine Szene, in der der Roboterarm einen großen Teil des
Eingabebildes einnimmt. Die Analyse einer solchen Region kostet in einem
Erkennungszyklus viel Zeit, daher bringt ein Ausschluss der Region vom
Template-Matching eine große Verbesserung der Laufzeit.
Abbildung 8.3: Roboterfragment
Roboterfragmente werden von der Objekterkennung erkannt (grauer Rahmen) und vom
Vergleich mit den Templates ausgeschlossen.
(Quelle: Eigene Darstellung)
8 . 2 S ys t e m a r c h i t e kt u r
Die letzten Kapitel diskutierten verschiedene gängige Verfahren zur
Objekterkennung und analysierten ihre Relevanz und Anwendbarkeit bezüglich
des JAST-Projekts. Thema der Arbeit ist die Umsetzung eines Template-Matching
86
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Systems als Erweiterung der früheren Version der Objekterkennung für das JASTProjekt, in der ein invariantenbasiertes System umgesetzt wurde. Damals zeigte
sich als großes Problem des invariantenbasierten Ansatzes die Erkennung von
überlagerten Objekten.
Abbildung 8.4: Systemarchitektur
Die vereinfachte Systemarchitektur mit angedeutetem Flussdiagramm. Ein Template-Matching
Verfahren kann durch Kombination einer Komponente für den Ähnlichkeitsvergleich (orange) und
einer oder mehreren Suchstrategien (grün) erzeugt werden.
(Quelle: Eigene Darstellung)
Dieses Problem zu beseitigen und gleichzeitig die Performanz des Systems
wesentlich zu verbessern war Ziel des in dieser Arbeit umgesetzten TemplateMatching Systems.
Wie in Kapitel 7 erklärt gibt es nicht ein einziges Template-Matching Verfahren,
sondern es existieren verschiedene Komponenten, die zu einem System
kombiniert werden müssen. Die Wahl eines Ähnlichkeitsmaßes in Kombination
mit einer Suchstrategie zur Bestimmung einer guten Pose ist dabei essentiell (siehe
87
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
auch Abbildung 8.4). Um die im letzten Kapitel beschriebenen Kombinationsmöglichkeiten evaluieren zu können, musste das Objekterkennungssystem für das
JAST-Projekt so konzipiert werden, dass durch einfaches Setzen eines
Konfigurationsparameters das Ausprobieren verschiedener Kombinationen
möglich ist. Das System wird also modular strukturiert damit ein Austausch der
Komponenten mit möglichst wenig Aufwand durchzuführen ist.
Trotz des engen zeitlichen Rahmens sind die meisten der in Kapitel 7
beschriebenen Ähnlichkeitsmaße sowie die Suchstrategien implementiert.
Teilweise wurden die Kombinationsmöglichkeiten in der aktuellen Version
aufgrund der schlechten Preformanz jedoch wieder verworfen. Folgende
Kombinationen können in der im Anhang beschriebenen Konfiguration
parametriert werden:

OPEN_CV – NLSE
OpenCV - Referenzimplementierung des Template-Matchings mit
absolutem Ähnlichkeitsmaß.

OPEN_CV – NCC
OpenCV - Referenzimplementierung des Template-Matchings mit dem
linearen Ähnlichkeitsmaß der normalisierten Kreuzkorrelation.

OPEN_CV – CCOEF
OpenCV - Referenzimplementierung des Template-Matchings mit einem
anderen linearen Ähnlichkeitsmaß, den Korrelationskoeffizienten.

STANDARD – NLSE
Die naive Suche in der Implementierung mit kleinsten Fehlerquadraten
als absolutes Ähnlichkeitsmaß.

STANDARD – NCC
Die naive Suche in der Implementierung mit der normalisierten
Kreuzkorrelation als Ähnlichkeitsmaß.

STANDARD – CONTOUR
Die naive Suche mit einem konturbasierten Ähnlichkeitsmaß.

STANDARD – MI
Die naive Suche mit einem nichtlinearen Ähnlichkeitsmaß.

REGION – NLSE
Regionenbasierte
Ähnlichkeitsmaß.
88
Suche
mit
kleinsten
Fehlerquadraten
als
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.

REGION – NCC
Regionenbasierte Suche auf Basis der normalisierten Kreuzkorrelation.

REGION – CONTOUR
Regionenbasierte Suche mit konturbasierter Ähnlichkeit.

REGION – MI
Regionenbasierte Suche mit einem nichtlinearen Ähnlichkeitsmaß.

SHAPE – NLSE
Konturbasierte Suche mit absolutem Ähnlichkeitsmaß.

SHAPE – NCC
Konturbasierte Suche mit linearem Ähnlichkeitsmaß.

SHAPE – CONTOUR
Konturbasierte Suche mit konturbasiertem Ähnlichkeitsmaß.

SHAPE – MI
Konturbasierte Suche mit einem nichtlinearen Ähnlichkeitsmaß.

SIMPLEX – NLSE
Downhill-Simplex Suche mit absolutem Ähnlichkeitsmaß.

SIMPLEX- NCC
Downhill-Simplex Suche mit linearem Ähnlichkeitsmaß.

SIMPLEX – CONTOUR
Downhill-Simplex Suche mit konturbasiertem Ähnlichkeitsmaß.

SIMPLEX – MI
Downhill-Simplex Suche mit nichtlinearem Ähnlichkeitsmaß.
Einige der angegebenen Kombinationen sind aber in der aktuellen Version nicht
mehr oder noch nicht verfügbar.
Nicht verschwiegen werden soll außerdem, dass die farbbasierte Suche in allen
der oben angegebenen Konfigurationsmöglichkeiten als Ausschlusskriterium
verwendet werden kann. Bei der OpenCV-, der Nelder-Mead- und bei der
konturbasierten Suchstrategie kann außerdem der Suchraum zusätzlich durch
Extraktion der relevanten Bildregionen beschränkt werden.
89
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
8 . 3 S p e z i f i s c h e O p t i m i e r u n ge n
Um das Template-Matching System problemspezifisch zu Optimieren werden
noch einige zusätzlich Maßnahmen in der Implementierung für die JASTObjekterkennung umgesetzt:

Merging
Da bei der Bestimmung einer guten Pose oft sehr ähnliche Posen gute
Werte erzielen und sich deshalb die Wahl des Schwellwertes, ab dem ein
Objekt als erkannt klassifiziert wird, schwierig gestaltet, wird eine
Merging-Strategie implementiert. Kernprinzip der Strategie ist das
Verschmelzen von Posen, die sich sehr ähnlich sind, wobei die Parameter
p der besten Pose beibehalten werden. Der Ähnlichkeitswert für eine
Pose wird bei jedem erfolgreichen Merging um einen Faktor  erhöht.
Die Praxis zeigt, dass sich so sehr viel bessere Ergebnisse erzielen lassen.
Abbildung 8.5: Optimierung - Merging
Die Abbildung zeigt das Ergebnis des Template-Matchings ohne (links) und mit (rechts) Merging.
Beim Merging werden ähnlich gute Ergebnisse für ein Template zu einem Ergebnis
zusammengefasst.
(Quelle: Eigene Darstellung)

90
Kategorieauswahl
In der JAST-Objekterkennung werden Templates in Kategorien
verwaltet. Eine Kategorie „Schraube“ enthält dabei z.B. Templates aller
möglichen Schrauben, die Unterkategorie „lange Schraube“ enthält dann
wiederum alle Templates für eine lange Schraube. Aufgrund einer trivial
berechneten Ähnlichkeit einer Region mit der zu vergleichenden
Kategorie mit Hilfe der mittleren Größe der Templates der Kategorie
und der der Vergleichsregion werden zunächst die wahrscheinlichsten
Kategorien gewählt. In mehreren Iterationen wird dann der Schwellwert
für das Vergleichskriterium gesenkt, bis das Verfahren im schlechtesten
Fall auf alle möglichen Kategorien angewandt wurde. Die Ordnung der
Kategorien ermöglicht, dass ungeeignete Kategorien von vorneherein
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
ausgeschlossen werden können und außerdem das Verfahren auch
schon früher terminieren kann, wenn ein sehr gutes Ergebnis gefunden
wird.

Templateauswahl
Wird eine Kategorie als geeignet gewählt und werden die Templates
dieser Kategorie untersucht, so wird zunächst wieder eine Ordnung mit
Hilfe einer trivialen Ähnlichkeit zwischen Template und Bildausschnitt
bestimmt. Die Ähnlichkeit basiert auf der Größe des Templates im
Vergleich zur Größe des Bildausschnitts. Ein Verhältnis bestimmt dann
die Wahrscheinlichkeit für das Auftreten eines bestimmten Templates in
der Region. Entsprechend eines Schwellwertes werden in einer
konfigurierbaren Anzahl von Iterationen n jeweils die nach
Wahrscheinlichkeitswert
geordneten
Templates
mit
einer
Wahrscheinlichkeit pT untersucht:
pT 
i
 pT  
n
Ein Minimalwert für die Wahrscheinlichkeit  kann zusätzlich gesetzt
werden, um ungeeignet erscheinende Templates von der Suche gänzlich
auszuschließen. Bei der Bestimmung der Ähnlichkeit der untersuchten
Posen werden die Ähnlichkeitswerte mit der Iterationstiefe i und einem
Faktor gewichtet. Wird ein Template mit einer bestimmten
Wahrscheinlichkeit in einer Iterationstiefe i untersucht und reicht die
Ähnlichkeit in den untersuchten Posen nicht aus, so werden die
Ähnlichkeitswerte jedoch nicht verworfen, sondern zwischengespeichert
und in der Iteration i  1 entsprechend der Gewichtung der Iterationstiefe
angepasst. Reicht die Ähnlichkeit dann bezüglich des globalen
Schwellwertes aus, so wird ein Objekt für das erkannte Template
erzeugt. So kann also erreicht werden, dass eine Pose eines Templates
nicht doppelt untersucht werden muss, die Laufzeit also nicht größer ist,
als wenn die Templateauswahl und die Bestimmung der
Wahrscheinlichkeit nicht vorgenommen würden.
91
9
Tracking
Objektverfolgung (engl. Tracking) ist eines der wichtigsten Themen der modernen
Bildverarbeitung. In vielen Bereichen des täglichen Lebens kann die Verwendung
von Objektverfolgungsalgorithmen Erleichterung schaffen. So ist beispielsweise
der Einsatz in der Automobilindustrie zur Vermeidung von Personenunfällen
oder automatisierten Steuerung des Fahrzeugs denkbar. Auch in Szenarien der
Verbrechensbekämpfung, z.B. bei der Personenüberwachung kann man ein
mögliches Einsatzgebiet sehen.
Tracking stellt eine Erweiterung der Einzelbildverarbeitung dar. Bei der
Objektverfolgung wird also nicht jedes Eingabebild, also jede Szene oder jeder
Frame, der von den visuellen Eingabegeräten geliefert wird, gesondert untersucht,
sondern die Verarbeitung erfolgt in zeitlich geordneter Folge. Diese
Vorgehensweise kann gegenüber der Einzelbildverarbeitung erhebliche Vorteile
bringen, da z.B. der Suchraum für Objekte eingeschränkt werden kann, indem nur
in der lokalen Umgebung einer zuletzt bekannten Position eines Objektes gesucht
wird. Auch können durch den Einsatz von Trackingalgorithmen bestimmte
Objekte von der Analyse ausgeschlossen werden. Vor allem aber können aus der
Erkennung statischer Eingabeszenen, d.h. Szenen, in denen sich nichts verändert,
große Geschwindigkeitsvorteile für die Objekterkennung resultieren.
Obwohl Objektverfolgung nicht das eigentliche Thema der Arbeit sein soll, kann
an dieser Stelle nicht das ungeheure Potenzial von Trackingalgorithmen für die
Objekterkennung in der Baufix-Domäne verschwiegen werden. Dieses Kapitel ist
daher Algorithmen gewidmet, die für die Verwendung im JAST-Projekt geeignet
erscheinen.
9 . 1 D i s p a r i t ä s t b a s i e r t e s T r a c ki n g
Im JAST-Projekt stellt sich die Frage, an welcher Stelle der Systemarchitektur ein
Trackingalgorithmus sinnvoll implementiert werden kann. Ein möglicher Ansatz
ist die Applikation eines Trackingverfahrens, das auf der Berechnung von
Disparitäten basiert. Solch ein Verfahren beschreibt den Unterschied zwischen
93
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
zwei Bildern einer Eingabesequenz und versucht auf der Basis dieses Unterschieds
korrespondierende Objekte zu finden.
Da die Berechnung des Unterschiedes zwischen zwei Bildern sehr anfällig für
Störungen der Pixelwerte ist, werden die zu verarbeitenden Bilder zunächst
geglättet (siehe auch Abschnitt 2.4.1). Ist störendes Rauschen in den
Eingabebildern beseitigt, kann ein Differenzoperator oX ( xt ) punktweise auf die
zeitlich aufeinanderfolgenden Eingabebilder I t 1 und I t ausgewertet werden:
dt  oX ( xt )  xt  xt 1
X ist dabei ein Vektor, der Werte eines Punktes x an den immer gleichen
Koordinaten in totaler zeitlicher Ordnung hält. Aus der absoluten Differenz dt der
Werte der Punkte zum Zeitpunkt t und t 1 kann eine sogenannte
Disparitätskarte erstellt werden. Eine solche Karte spiegelt Veränderungen von
einem zum nächsten Bild einer Folge wieder (siehe Abbildung 9.1).
Abbildung 9.1: Differenzbild
Links:
Eingabebild zum Zeitpunkt t
Rechts: Eingabebild zum Zeitpunkt t+1
Mitte:
Geglättetes normalisiertes Differenzbild
(Quelle: [NysIn])
Ist eine Dispartiätskarte (engl. disparity map) erstellt, so sollten sporadische
Unterschiede durch Störungen der Pixelwerte, die sich auch durch Anwendung
eines Gauß-Glätters auf die Eingabebilder nicht vollständig beseitigen ließen,
durch nachträgliches erneutes Anwenden des Filters auf das Differenzbild
unterdrückt werden.
94
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Abbildung 9.2: Disparitätsbasiertes Tracking
Wird ein disparitätsbasiertes Tracking implementiert, so kann das Trackingmodul dem
Regionenextraktor vorgeschaltet werden. Eine Extraktion der Regionen ist nur notwendig, wenn
das Differenzbild Bereiche aufweist, die sich signifikant von der zuletzt observierten Szene
unterscheiden.
(Quelle: Eigene Darstellung)
Die errechnete Information aus dem Differenzbild kann auf zweierlei Weise für
die Objekterkennung interpretiert werden.
1. Keine Veränderung
Tritt keine Veränderung im Bereich eines in der letzten Szene
ebenfalls observierten Objekts auf, so kann davon ausgegangen
werden, dass das Objekt noch immer vorhanden ist und seine
Position nicht verändert wurde. Die Repräsentation des Objektes, also
die softwareseitige Instanz der Objektklasse kann daher von der
letzten Szene übernommen werden. Eine erneute Analyse der Region
ist nicht notwendig.
2. Veränderung
Tritt dagegen eine Veränderung im Bereich eines zuletzt erkannten
Objektes auf, so muss davon ausgegangen werden, dass sich die
Position des Objektes verändert, bzw. das Objekt nicht mehr
vorhanden ist. Greift z.B. der Roboter ein Objekt vom Tisch, so
95
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
erscheint der Bereich bei Anwendung des oben formulierten
Operator oX ( xt ) heller in der Disparitätskarte. Trotzdem kann die
Information über ein zuletzt an der Stelle detektiertes Objekt
verwendet werden, um zunächst im Bereich der Veränderung nach
einem Auftreten des gleichen Objektes zu forschen. Wird ein Objekt
beispielsweise durch einen Benutzer auf dem Tisch verschoben, lässt
sich so sehr rasch die neue Position bestimmen, ohne die Analyse der
Bildregion für alle möglichen Templates erneut durchführen zu
müssen.
Durch Verwendung eines Differenzbildes lässt sich also einiger Rechenaufwand
sparen. Allerdings kostet die Berechnung Zeit, da jeweils zwei korrespondierende
Punkte aus den Eingabebildern ausgewertet werden müssen. Da das Verfahren
jedoch recht einfach implementiert werden kann, könnte es zumindest zum
Zweck der Evaluierung in der JAST-Objekterkennung umgesetzt werden.
9 . 2 R e g i o n e n b a s i e r t e s T r a c ki n g
Ein anderer vielversprechender Ansatz im Anwendungsgebiet der JAST-Domäne
stellt
die
Verwendung
eines Trackingalgorithmus auf
Basis der
Regionenverfolgung dar. Da die meisten der im Kapitel 7 beschriebenen
Suchstrategien die Segmentierung als Vorverarbeitungsschritt einbeziehen und
damit relevante Regionen, in denen sich potenziell Objekte befinden, bereits
extrahiert wurden, kann diese Information auch für ein Objektverfolgungsverfahren verwendet werden.
Die Repräsentation einer Region in der JAST-Objekterkennung enthält als
Attribute unter Anderem die Größe, die Position und die Hauptfarbkomponenten
der Region. Für das regionenbasierte Tracking werden die in einer Szene t 1
extrahierten Regionen nicht am Ende der Analysephase verworfen, sondern in die
Szene t übernommen. Die „alten“ Regionen werden dann mit den zum Zeitpunkt
t extrahierten Regionen verglichen. Existiert eine Region zu beiden Zeitpunkten,
d.h. ergibt der Vergleich zweier Regionen zu unterschiedlichen Zeitpunkten eine
nur geringe Abweichung in den Attributen Größe, Farbe und Position, dann wird
angenommen, es sich um die gleiche Region handelt. Gewisse Toleranzen vor
allem für die Position müssen natürlich berücksichtigt werden.
96
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Abbildung 9.3: Regionentracking
Wird ein regionenbasiertes Trackingverfahren verwendet, so müssen zunächst die Regionen
extrahiert werden. Danach kann aber die Analyse auf noch nicht bekannte Regionen beschränkt
werden.
(Quelle: Eigene Darstellung)
Es gibt prinzipiell drei Möglichkeiten für ein Ergebnis des Regionenvergleichs:
1. Korrespondierende Region gefunden
Wird eine Region zum Zeitpunkt t gefunden, die zum Zeitpunkt t 1
ebenfalls relevant schien, so wird die Region übernommen.
Insbesondere die in der Region detektierten Objekte werden also zum
Zeitpunkt t als weiterhin vorhanden angenommen und
übernommen.
2. Korrespondierende Region verloren
Wird eine Region zum Zeitpunkt t nicht mehr gefunden, die zum
Zeitpunkt t 1 noch aus dem Eingabebild extrahiert wurde, so wird
zunächst die Toleranz für die Positionsparameter vergrößert und der
Vergleich noch einmal für alle Regionen durchgeführt. Oft resultiert
nämlich ein Verlust der Region lediglich aus dem Verschieben eines
Objektes durch den Benutzer. Wird die Region nicht wiedergefunden,
so muss die Region als nicht mehr vorhanden angenommen werden.
97
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
3. Keine korrespondierende Region
Falls zum Zeitpunkt t eine Region gefunden wird, die zum Zeitpunkt
t 1 noch nicht vorhanden war, so muss angenommen werden, dass
es sich um eine neue relevante Region mit potenziellen Objekten
handelt. Wird ein Objekt beispielsweise durch einen Benutzer oder
durch den Greifer des Roboters auf dem Tisch abgelegt, so kann die
Region zum Zeitpunkt t 1 noch nicht extrahiert worden sein. Eine
solche Region muss initialisiert und mit Hilfe des gewählten
Template-Matching Verfahrens analysiert werden.
9 . 3 O p t i m i e r u n g f ü r J A ST
Eine zusätzliche Optimierung zum regionenbasierten Tracking soll an dieser Stelle
nicht unerwähnt bleiben. Es kann durchaus vorkommen, dass Regionen für die
Dauer weniger Eingabebilder teils oder vollständig verdeckt sind. Die zum
Tracking verwendeten Attribute sind dann unbrauchbar, da durch das
Fremdobjekt die Größe, Position und die Farbe der eigentlichen Region verfälscht
sind. Dies kann z.B. durch die Hand des Benutzers oder den Greifer des Roboters
vorkommen. Es wäre jedoch unsinnig, eine solche Region sofort zu verwerfen.
Um diesem Sachverhalt zu begegnen wird bei der Initialisierung für jede Region
eine potenzielle Lebensdauer, festgelegt. Diese Lebensdauer verringert sich zu
jedem Zeitpunkt bezüglich mehrerer Kriterien. Die Höhe der Terme zur
Verminderung beruht auf Erfahrungswerten:
1. Wird die Region in einer Szene wiedergefunden, so verringert sich die
Lebenszeit um einen Zähler.
TTLtr  TTLtr1  1
2. Wird die Region in einer Szene nicht wiedergefunden, so verringert sich die
Lebenszeit um die Hälfte der vierten Wurzel der Restlebenszeit.
TTLtr  TTLtr1  12 TTLtr1 
1
4
3. Wird in einer Region kein Objekt detektiert, so verringert sich die Lebenszeit
um die Quadratwurzel der Restlebenszeit.
TTLtr  TTLtr1  TTLtr1
98
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR HERE.
THE
APPEAR HERE.
4. Wird in einer relevanten Region kein Objekt detektiert und ist die Region in
der aktuellen Szene nicht mehr vorhanden, so verringert sich die Lebenszeit
zuerst wie bei 3, dann noch wie bei 2.
TTLtr  TTLtr1  TTLtr1  12 TTLtr1 
1
4
Um zu verhindern, dass bei gleichmäßigen Eingabebildern bei allen Regionen
gleichzeitig die Lebensdauer abläuft, werden die Lebensdauern mit Werten
innerhalb eines gewissen zufälligen Intervalls initialisiert.
Abbildung 9.4: Verdeckung eines Objektes
Großes Bild :
Ist eine Region nur kurzzeitig durch ein anderes Objekt, z.B. eine Hand
verdeckt, so wird die Region beim regionenbasierten Tracking nicht sofort
verworfen (pinkfarbener Rahmen).
Kleines Bild:
Die extrahierten Regionen zum aktuellen Zeitpunkt spiegeln die tatsächlichen
relevanten Regionen nicht wieder (gelber Rahmen).
(Quelle: Eigene Darstellung
99
10 Diskussion
Nachdem in der Arbeit zunächst Objekterkennungssysteme inklusive der
benötigten Vorverarbeitungsschritte von theoretischer Seite beleuchtet wurden
und danach auf die praktische Umsetzung einzelner Methoden und Ansätze
genauer eingegangen wurde, beschäftigt sich dieses Kapitels mit der Auswertung
des implementierten Systems und den durchgeführten Tests.
Im zweiten Abschnitt dieses Kapitels soll dann ein Ausblick auf zukünftige
Forschung im Bereich Objekterkennung des JAST-Projektes gewagt und genauer
dargestellt werden, welche nächsten Schritte zur Verbesserung und
Weiterentwicklung des Systems unternommen werden.
1 0 . 1 E va l u a t i o n
Das Objekterkennungssystem wird mit Hilfe einer mächtigen Software-Bibliothek
für die computergestützte Bildverarbeitung (OpenCV) implementiert. Speziell für
Intel-Prozessoren optimierte Erweiterungen, die sogenannten Intel Performance
Primitives (IPP) werden zusätzlich verwendet. Viele der Basisalgorithmen der
Computer Vision, z.B. für die Konvertierung in unterschiedliche Farbräume, für
euklidsche Transformationen, für Matrix-Operationen, Speicherverwaltung,
Bildrepräsentation und viele mehr, sind hier hardwarespezifisch hochgradig
optimiert und stehen zur Verwendung in dieser Arbeit zur Verfügung. Wo immer
es möglich ist, werden daher diese optimierten Algorithmen verwendet, da eine
möglicherweise effizientere Neuimplementierung den Zeitrahmen einer
Diplomarbeit sprengen würde.
Nichtsdestotrotz
verbleiben
viele
Algorithmen
und
Konzepte
zur
Implementierung im Rahmen dieser Arbeit. Besonders interessant ist sicherlich
die Auswertung der verschiedenen Template-Matching Verfahren. Hier gilt es,
eine für das JAST-Projekt spezifische Konfiguration zu finden, die sowohl hohe
Genauigkeit als auch schnelle Laufzeiten ermöglicht.
101
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
1 0 . 1. 1 E x a kt h e i t
Bezüglich der Wahl des Ähnlichkeitsmaßes legt eine Analyse der Systemvorgaben
die Verwendung eines linearen Maßes nahe. Da die Kamera statisch über dem
Tisch montiert ist und die verwendeten Templates zum Vergleich aus Screenshots
der Kamera extrahiert werden können, ist die Verwendung eines nichtlinearen
Maßes zunächst nicht notwendig, da keine nichtlinearen Ähnlichkeitsbeziehungen
auftreten können. Ein absolutes Ähnlichkeitsmaß hingegen, das sich auf die
Berechnung der absoluten Differenzen der Pixelwerte stützt, scheint nicht
besonders geeignet. Durch Veränderungen der Umgebungshelligkeit, z.B. im
Tagesverlauf oder durch Schließen der Jalousien, können nämlich sehr leicht
große Schwankungen in der Helligkeit und des Kontrasts in den Eingabebildern
auftreten. In der Praxis zeigt dann auch die normalisierte Kreuzkorrelation als
Ähnlichkeitsmaß die verlässlichsten Ergebnisse. Zum Zeitpunkt der Einreichung
dieser Arbeit existieren leider noch keine ausreichenden Testergebnisse bei
Verwendung des konturbasierten Maßes, so dass hierzu noch keine Aussage
getroffen werden soll.
Abbildung 10.1 zeigt ein einfaches Eingabebild ohne nennenswerte
Überlagerungen. Die Auswertung des linearen Ähnlichkeitsmaßes zeigt
erfreuliche Resultate. Alle Objekte der Baufix-Domäne können klassifiziert
werden. Auch die Vorverarbeitungsschritte zur Extraktion der Farbe liefern
korrekte Ergebnisse.
Abbildung 10.1: Ergebnisse Template-Matching
Ein geeignetes Template-Matching Verfahren kann die Objekte der Baufix-Domäne zuverlässig
klassifizieren. Auch die Farbe lässt sich exakt bestimmen. Bei der Bestimmung der Position
können hingegen kleine Fehler auftreten.
(Quelle: Eigene Darstellung)
102
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR HERE.
THE
APPEAR HERE.
Etwas schwieriger stellt sich die Situation dar, falls größere Teile eines Objektes
von einem anderen Objekt verdeckt sind. Ab einem bestimmten Grad von
Überlagerung kann ein Objekt nicht mehr erkannt werden. Abbildung 10.2 zeigt
z.B. im rechten unteren Bereich einen Würfel, in dem eine Schraube steckt. Ein zu
großer Teil der Schraube wird vom gelben Würfel verdeckt, sie kann daher nicht
mehr klassifiziert werden.
Abbildung 10.2: Verdeckung
Die Abbildung zeigt die Probleme bei teilweiser Verdeckung (Schraube im Würfel) und
sogenannte „false positives“, Objekte die fälschlicherweise erkannt werden (Leisten).
(Quelle: Eigene Darstellung)
Abhilfe schafft die Verwendung spezieller Templates für Objektteile, wie z.B. den
Schraubenkopf. Da sich aber mit jedem Template die Laufzeit eines
Erkennungszyklus verlängert, sollten solche Maßnahmen mit Bedacht
durchgeführt werden. Auch ist in einer späteren Ausbauphase des Systems eine
automatisierte Template-Extraktion vorgesehen, eine Online-Learning Strategie,
wo solche Vorgehensweisen sehr schwer zu implementieren sein werden. Eine
andere Möglichkeit zu verhindern, dass Objekte nicht erkannt werden, ist die
Wahl eines geringeren Schwellwertes für die Klassifikation. Allerdings treten
dann verstärkt falsche Positive auf, d.h. Objekte werden erkannt, die an dieser
Stelle nicht im Eingabebild vorkommen. Am Beispiel der Baufix-Leisten, die in
verschiedenen Längen im Sortiment vorhanden sind, wird dies sehr schnell
deutlich. Abbildung 10.2 zeigt sogenannte „false positives“ z.B. im Bereich der 7-
103
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Loch-Leiste. Kleinere Leisten liefern oft innerhalb der großen Leisten sehr gute
Übereinstimmungen und werden fälschlicherweise dort als erkannt angezeigt.
Abschließend kann man zur Genauigkeit feststellen, dass eine geeignete
Konfiguration empirisch zu ermitteln ist, denn einerseits kann durch die Wahl
eines niedrigen Schwellwertes bei der Berechnung der Ähnlichkeit verhindert
werden, dass Objekte nicht erkannt werden. Allerdings werden dann häufiger
Objekte erkannt, die eigentlich nicht da sind, die falschen Positive. Andererseits
kann durch die Festlegung einer hohen Minimalgenauigkeit erreicht werden, dass
kaum falsche Positive auftreten, dann wiederum werden Objekte häufig
überhaupt nicht erkannt.
1 0 . 1. 2 L a u f z e i t
Haupteinflussfaktor auf die Laufzeit eines Erkennungszyklus der JASTObjekterkennung ist sicherlich die Wahl der Suchstrategie für das TemplateMatching. Trotzdem haben auch verschieden andere Faktoren Einfluss auf die
Laufzeit. So sind beispielsweise die Anzahl der zu vergleichenden Templates und
die Größe des Eingabebildes relevant. Während die Größe des Eingabebildes
variabel ist und entweder direkt durch den Kameratreiber gewählt oder per
Software skaliert werden kann, ist die Anzahl der Templates von der gewählten
Domäne abhängig. Glücklicherweise besteht die im JAST-Projekt verwendete
Auswahl aus dem Baufix-Sortiment lediglich aus sechzehn verschiedenen
Objekten (siehe Abbildung 8.1). Daher kann die Anzahl der Templates begrenzt
werden auf ca. zwanzig, da man für die wenigen asymmetrische Objekte mehrere
Templates braucht. Für eine Schraube werden z.B. im JAST-System normalerweise
zwei Templates verwendet, eine Ansicht der Schraube in Längsrichtung und eine
Ansicht, der Schraube, wenn sie auf dem Kopf steht. Im Folgenden wird nun
jedoch hauptsächlich die Wahl einer geeigneten Suchstrategie diskutiert.
OpenCV implementiert eine Suchstrategie für Template-Matching, die aufgrund
der Verwendung von IPP bezüglich der verwendeten Hardware hochgradig
optimiert ist. Diese Referenz-Implementierung wird daher für das Objekterkennungssystem nur als Vergleichswert betrachtet. Die durchgeführten Tests
zeigen wie erwartet sehr schnelle Laufzeiten bei der Verwendung der ReferenzImplementierung.
Ebenso interessant ist jedoch, um welchen Faktor sich die Laufzeiten des
Template-Matchings bezüglich der naiven Suche verbessern lassen, wenn eine
oder eine Kombination der in Abschnitt 7.2 beschriebenen optimierten
104
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
Suchstrategien verwendet wird. Folgende Konfigurationen des TemplateMatchings wurden im Verlauf dieser Arbeit getestet:

Naive Suche + NLSE, bzw. NCC
Die naive Suche ohne vorherige Segmentierung, also Extraktion
relevanter Regionen benötigt für ein XGA-Eingabebild (1024×768 Pixel)
abhängig von der Anzahl der Objekte mehr als zwanzig Minuten.

Regionenbasierte Suche + NLSE, bzw. NCC
Wird vorher segmentiert, so verringert sich die Laufzeit bei der
Verarbeitung um bis zu 95% auf ca. ein bis zwei Minuten.

Nelder-Mead Suche + NLSE, bzw. NCC
Werden die Eingabebilder zunächst segmentiert und danach in den
Regionen eine Downhill-Simplex Strategie angewendet, so kann die
Verarbeitung abhängig von der Größe der Region und der Anzahl der
Templates meist in wenigen Millisekunden (ca. 100ms) abgeschlossen
werden. Allerdings leidet die Qualität des Ergebnisses unter der
Lokalität der Strategie.

Regionenbasierte Suche + OpenCV + NCC
Wird in den Regionen der segmentierten Eingabebilder die OpenCVReferenzimplementierung verwendet, so kann die Analyse in ca. 200ms
durchgeführt werden.

Regionen- und konturbasierte Suche + NCC
Die Verarbeitung auf Basis der Kontursuche inklusive Segmentierung ist
sehr schnell (ca. 50ms) aber so ungenau, dass sie in der Praxis nicht
angewendet werden kann.

Regionen- und farbbasierte Suche + OpenCV + NCC
Wird in den Regionen der segmentierten Eingabebilder zunächst eine
Auswahl der Templates auf Basis der Farbe getroffen und danach die
OpenCV-Referenzimplementierung verwendet, so kann die Analyse in
ca. 100ms durchgeführt werden.

Regionenbasierte Suche + OpenCV + NCC + Tracking
Wird in den Regionen der segmentierten Eingabebilder die OpenCVReferenzimplementierung verwendet und werden die Regionen durch
einen Trackingalgorithmus verfolgt, so kann die Analyse meist in
deutlich unter 100ms durchgeführt werden.
In der aktuellen Demoversion des JAST-Systems wird die letzte der aufgeführten
Varianten eingesetzt. Zu Verbessern sind hier noch die Parallelität der
105
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Verarbeitung sowie die Integration der Farbauswahl. Außerdem soll die SimplexSuche mit Hilfe von Strategien zur Verhinderung lokaler Konvergenz
reimplementiert und evaluiert werden. Tatsächlich sind in solch einer optimalen
Konfiguration sicherlich Laufzeiten möglich, die eine Verarbeitung von 24 Bildern
pro Sekunde erlauben. Dies entspricht einer für den Menschen ohne Ruckeln
wahrnehmbaren Verarbeitungsgeschwindigkeit (Echtzeitbetrieb).
1 0 . 1. 3 A n d e r e D o m ä n e n
Im Zuge der Auswertungen des in dieser Arbeit umgesetzten
Objekterkennungssystems wird auch die Anwendbarkeit des vorgeschlagenen
Ansatzes in anderen Domänen untersucht. Schließlich soll das System nicht nur
für Baufix-Objekte gute Ergebnisse zeigen sondern auch generell als
Objekterkennungssystem einsetzbar sein.
Ein weiteres Forschungsprojekt an der TU München in Zusammenarbeit mit der
Audi AG, das INI.TUM-Projekt, beschäftigt sich mit der Entwicklung eines
Testframeworks
für
Sensorund
Fahrassistenzsysteme
in
der
Automobilherstellung. Hier wird ein experimentelles System zur frühzeitigen
Erkennung von potenziellen Hindernissen beim Führen eines Automobils
benötigt. In einem ersten Versuch wird die Anwendung des implementierten
Objekterkennungssystems auf visualisierte Tiefensensordaten zur Erkennung von
Fußgängern auf der Fahrbahn untersucht.
Abbildung 10.3: Fußgänger Verfolgung
Das für das JAST-Projekt entwickelte Objekterkennungssystem in Anwendung für Fußgänger
Tracking im INI.TUM-Projekt.
(Quelle: Eigene Darstellung)
106
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR HERE.
THE
APPEAR HERE.
Abbildung 10.3 zeigt, dass unter Zuhilfenahme der links gezeigten Templates eine
Erkennung und Verfolgung des Hindernisses möglich ist. Die Abbildung soll
verdeutlichen, dass der in der Arbeit verfolgte Ansatz so generisch ist, dass er
ohne großen Aufwand durchaus auf andere Domänen der Objekterkennung
übertragen werden kann.
1 0 . 1. 4 A n d e r e A n s ä t z e
Der Vollständigkeit halber soll nicht verschwiegen werden, dass neben den in
dieser Arbeit vorgestellten Verfahren zur Objekterkennng noch eine Vielzahl
weiterer Verfahren existiert. Besonders interessant scheinen hier die Extraktion
und das Matching von charakteristischen Objektfeatures.
Das aktuell am meisten verwendete featurebasierte Verfahren ist der sogenannte
SIFT-Algorithmus. SIFT steht für Scale Invariant Feature Transform und wurde 2003
von David Lowe an der University of British Columbia publiziert [LowDi]. Der
Algorithmus kann nicht nur zur Objekterkennung verwendet werden, sondern es
können z.B. auch Transformationsparameter für die Stereoanalyse durch das
Matching rekonstruiert werden. Featurebasierte Objekterkennung ist ein sehr
breites Thema, weshalb an dieser Stelle nur der SIFT-Algorithmus exemplarisch
und in aller Kürze dargestellt werden soll.
Dem SIFT-Algorithmus liegt die Extraktion und Verfolgung von bestimmten
aussagekräftigen Punkten eines Eingabe- oder Vergleichsbildes, die Features, als
Funktionsprinzip zugrunde. Folgende Schritte werden zur Extraktion der
Vergleichspunkte unternommen:
1. Extrema im Skalenraum
Das Eingabebild, also ein Beispielbild für die spätere
Objekterkennung wird untersucht, indem verschiedene Skalierungen
des Bildes analysiert werden. Eine Difference-Of-Gaussian (DoG)
Funktion wird anschließen berechnet [LowDi], um skaleninvariante
Features zu extrahieren.
2. Kandidaten finden
Die gefunden Features werden bezüglich ihrer Stabilität bei der
Skalierung und Rotation bewertet und verworfen, sofern sie den
Ansprüchen nicht genügen[LowOb].
Bevor die extrahierten Features zur Objekterkennung verwendet werden können,
also ein Matching durchgeführt wird, werden die extrahierten Features mit einem
Deskriptor versehen. Der Deskriptor erweitert die Features um Attribute für die
107
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
Hauptrichtung(en), d.h. es werden die stärksten Gradienten in der Umgebung des
betrachteten Punktes ermittelt und deren Gauß-geglätteter Wert im Deskriptor
gewichtet und relativ zur Hauptrichtung verankert. Außerdem werden dem
Deskriptor Attribute für Skalierung, 2D-Position und Orientierung der
Hauptrichtung hinzugefügt.
Die Objekterkennung gliedert sich im SIFT-Algorithmus wie in fast allen
Objekterkennungssystemen in zwei Schritte:
1. Typisierung
Im ersten Schritt bestimmt man den Objekttyp, indem man die
extrahierten Features mit denen eines Modells aus einer Datenbank
vergleicht. Dies ist nur möglich, da die Deskriptoren rotations- und
skalierungsinvariant gespeichert werden. Das Modell, bei dem die
Summe der euklidschen Distanzen aller extrahierten Features zu ihrer
besten Entsprechung minimal und zu ihrer zweitbesten
Entsprechung im Modell maximal ist, wird als Klassifikation des
Objektes angenommen.
2. Bestimmung der Pose
Im zweiten Schritt die Pose des klassifizierten Objektes bestimmt.
Dazu werden die extrahierten Features bezüglich ihrer
Posenparamter im Raum aller möglichen Posen gruppiert. Eine
Signatur auf Basis der Cluster, die dann für ein Objekt
charakteristisch sind, wird dann zur Posenbestimmmung und
verwendet. Von den möglichen Hypothesen für die Pose wird
schließlich noch diejenige ausgewählt, die am stabilsten scheint
[LowDi].
In der Evaluierung, die vor der Implementierung der Template-Matching
Verfahren im Verlauf dieser Arbeit durchgeführt wurde, wurde auch ein
merkmalsbasierter Ansatz für die Objekterkennung ausprobiert. Schnell zeigte
sich aber, dass die Extraktion stabiler Features in der Baufix-Domäne nicht ohne
weiteres möglich ist, da die Objekte der Baufix-Domäne teils sehr ähnliche
Strukturen aufweisen und kaum Textur besitzen. In den durchgeführten Tests
konnten trotz vieler Versuche die Parameter nicht so angepasst werden, dass sich
stabile Features für die Baufix-Bausteine gewinnen ließen, die sich zum Vergleich,
oder zum Tracking eigneten. Auch wurden von den Feature-Extraktoren sehr oft
Hintergrundpunkte als Schlüsselpunkte bestimmt, die dann in den folgenden
Frames über das gesamte Eingabebild streuten.
Aufgrund dieser Ergebnisse wurde von einer Implementierung auf Basis eines
featurebasierten Ansatzes abgelassen. Trotzdem soll an dieser Stelle nicht
108
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
grundsätzlich ausgeschlossen werden, dass, einigen Aufwand vorausgesetzt, auch
eine featurebasierte Objekterkennung implementiert werden kann, die die
gewünschten Ergebnisse zeigt.
1 0 . 2 A u s b l i c ke u n d F o r s c h u n gs a n s ä t z e
Obwohl die Laufzeit und Genauigkeit im Verlauf der Arbeit am
Objekterkennungssystem für das JAST-Projekt enorm verbessert werden konnten,
gibt es noch Entwicklungsbedarf an einigen Stellen im umgesetzten System.
Verschiedene Optimierungen der einzelnen Verarbeitungsschritten, bzw. Module
der Objekterkennung sollen in diesem Abschnitt diskutiert werden. Auch
angedachte Systemerweiterungen werden im Zuge der Ausführungen erläutert.

Posenparamter
In der JAST-Domäne werden zur Transformation der Templates in das
zu analysierende Eingabebild nur Parameter für die euklidsche
Transformationen verwendet. Sollen tatsächlich Kameras an den
Greifern des Roboters für die Detailanalyse montiert werden, so müssen
auch affine Transformationen, bzw. perspektivische Projektionen
berücksichtigt werden. Die Zahl der Freiheitsgrade wächst damit auf
acht. Eine Erweiterung der Suchstrategie ist aber aufgrund der
allgemeinen Formulierung und Implementierung ohne großen Aufwand
möglich. Lediglich die Laufzeit kann sich bei Verwendung einer großen
Zahl von Freiheitsgraden verschlechtern. In der Praxis müssen dann
eventuell optimierte Verfahren zur Verbesserung der Konvergenz im
Suchraum angewendet werden.

Mutual Information
Im bisherigen System sind lediglich absolute und lineare
Ähnlichkeitsmaße implementiert. Ein nichtlineares Ähnlichkeitsmaß auf
Basis der Bildentropie, die Mutual Information, soll in naher Zukunft
nachimplementiert werden. Da das Ähnlichkeitsmaß echt mächtiger ist,
als das lineare Maß und daher auch lineare Ähnlichkeiten analysiert
werden können, ist dieser Schritt sinnvoll, um ein noch allgemeineres
System umzusetzen. Natürlich muss im Zuge der Implementierung die
Performanz bei Verwendung des neuen Ähnlichkeitsmaßes ausgewertet
und evaluiert werden, ob ein Einsatz auch in der JAST-Domäne von
Vorteil ist.
109
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO

Gestenwahrscheinlichkeit
Bisher erfolgt die Entscheidung, ob auf ein Objekt von einer Zeigegeste
gedeutet wird binär. In der nächsten Ausbaustufe der Objekterkennung
ist angedacht, diese Entscheidung durch eine Wahrscheinlichkeit
auszudrücken. So kann der Benutzer durch Setzen eines
Konfigurationsparameters selbst entscheiden, wie tolerant sich das
System gegenüber Abweichungen vom der idealen Zeigerichtung
verhalten soll.

XML-Konfiguration
Im aktuellen Stand der Objekterkennung kann die Konfiguration in der
entsprechenden Klasse geändert werden. Nach einer Änderung muss
das System allerdings neu kompiliert werden. Durch Einlesen der
Konfiguration aus einer XML-Konfigurationsdatei soll die Schwäche
beseitigt werden. Das System kann dann in vorkompilierter Form
installiert werden und der Benutzer muss lediglich die XML-Datei
anpassen um das System entsprechend der Objekterkennungsdomäne zu
konfigurieren.

Parallelisierung
Momentan werden die Zyklen der Objekterkennung strikt sequenziell
und in einer Endlosschleife durchgeführt. D.h. zunächst wird ein Bild
geladen, dann vorverarbeitet und anschließend die extrahierten
Regionen analysiert, sofern sie nicht getrackt werden können. In der
nächsten Version der Objekterkennung soll eine parallele Abarbeitung
der Verarbeitungsschritte möglich sein. So kann dann ein neuer Frame
bereits geladen werden, während das vorherige Eingabebild noch
analysiert wird. Auch kann die Analyse der Regionen parallelisiert
werden, da sie in der aktuellen Version den höchsten Anteil an der
Gesamtlaufzeit eines Zyklus hat. Es sollen dann Regionen initialisiert
werden und die Analyse parallel zur Weiterverarbeitung, z.B. zum
Tracking oder der Propagation an das JAST-Basissystem durchgeführt
werden können. Die Objekterkennung muss dann nicht mehr warten, bis
alle Regionen analysiert sind, sondern ein synchronisierter Pool von
bereits erkannten Objekten steht zu jedem Zeitpunkt zur Verfügung. Aus
diesem Datenpool können Objekte von den Modulen zur
Weiterverarbeitung gelesen und vom Erkennungsmodul parallel
aktualisiert werden.

Online-Learning
In der bisherigen Ausbaustufe der Objekterkennung werden die zu
vergleichenden Templates anfangs vom Benutzer in einem Verzeichnis
110
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
als Screenshots abgelegt. Sollen der Domäne weitere Templates
hinzugefügt werden, so müssen manuell neue Screenshots angefertigt
werden und wieder im Verzeichnis abgelegt werden. Dieser Vorgang
soll in der nächsten Ausbaustufe automatisiert werden. Wird eine
Region dann extrahiert und kann in der Region kein Objekt erkannt
werden, so wird eine Interaktion mit dem Benutzer über die
Sprachausgabe initiiert. Dabei muss ein bereits konzipiertes
Kommunikationsinterface implementiert werden. Die Interaktion ergibt
dann zwei mögliche Folgeaktionen der Objekterkennung: Entweder gibt
der Benutzer an, dass sich in der Region ein bereits bekanntes Objekt
befindet, dann wird automatisch ein Bildausschnitt der Region zu der
Menge der Templates für das bekannte Objekt angelegt. Als zweite
Möglichkeit kann der Benutzer angeben, dass es sich um ein neues
Objekt handelt. In diesem Fall muss ein neuer Objekttyp generiert
werden und der automatisch vom System extrahierte Screenshot wird als
Basistemplate für den neuen Objekttyp abgespeichert. Nach und nach
kann das System so alle Objekte einer Domäne lernen. Auch die
Integration von zusammengesetzten Objekten, bzw. Halbfertigprodukten ist auf diese Weise möglich.

Active-Shape-Models
Zur Verbesserung der Erkennungsgenauigkeit soll in einer der nächsten
Versionen die Verwendung eines ASM-Verfahrens evaluiert werden.
Durch die Anpassung eines aus einem Template zu extrahierenden
Modells können dann weitere Aussagen zur Wahrscheinlichkeit des
Auftretens eines Objektes in einer Szene getroffen. Allerdings muss sich
dabei zeigen, ob das Verfahren nicht zu viel Zeit kostet, so dass die
Integration nicht lohnt.
Abgesehen von diesen großen Erweiterungen sollen noch verschiedene kleine
Verbesserungen auf dem Weg zu einem noch besseren System vorgenommen
werden.
Beispielsweise
die
Implementierung
eines
erweiterten
Kommunikationsinterfaces und eine Erweiterung des Imageloader-Moduls sind
hier zu nennen. Mit Hilfe des Kommunikationsinterfaces soll ein Feedback zur
Interpretation durch das JAST-System möglich werden, damit der Schwellwert für
die Erkennung von Objekten, die minimale Ähnlichkeit, dynamisch angepasst
werden kann. Das Modul zum Laden der Eingabebilder soll in der Lage sein, auch
eine Sequenz von Eingabebildern der Reihe nach zu laden, bzw. die Applikation
der Objekterkennung in ein vorhandenes Video möglich machen.
111
11 Literaturverzeichnis
[CanJo] Canny, John. 1986. A computational approach to edge detection. IEEE
Transactions on Pattern Analysis and Machine Intelligence. 1986, Vol. 8, 6.
[CatPhi] Cattin, Philippe C. 2007. Lecture: Introduction to Signal- and ImageProcessing. Zürich : ETH Zürich, 2007.
[Cern] Cerny, V. 1985. A thermodynamical approach to the travelling salesman
problem: an efficient simulation algorithm. Journal of Optimization Theory and
Applications. 1985, Vol. 45.
[CheSia] Chelouah, R. and Siarry, P. 2003. Genetic and Nelder-Mead algorithms
hybridized for a more accurate global optimization of continuous multiminima
functions. European Journal of Operational Research. 2003, Vol. 148, 2.
[SimNeld] ChemgaPedia. 2007. Simplexverfahren nach Nelder-Mead.
ChemgaPedia. [Online] 4 Juni 2007.
http://www.chemgapedia.de/vsengine/vlu/vsc/de/ch/7/tc/ps/grundlagen/grundlag
en_ps.vlu/Page/vsc/de/ch/7/tc/ps/grundlagen/nichtlineare_opt/nelder_mead_aufb
au.vscml.html.
[CooAS] Cootes, Tim. 2000. An Introduction to Active Shape Models. [book auth.]
J. Graham and Ed. R. Baldock. Image Processing and Analysis. s.l. : Oxford
University Press, 2000.
[CooMA] Cootes, Tim and Taylor, C.J. 2004. Statistical Models of Appearance.
University of Manchester, UK : s.n., 2004.
[CooIm] —. 2001. Statistical models of appearance for medical image analysis and
computer vision. Proc. SPIE Medical Imaging. 2001.
[DeuNew] Deuflhard, P. 2004. Newton Methods for Nonlinear Problems. Affine
Invariance and Adaptive Algorithms. Berlin : Springer, 2004. ISBN 3-540-21099-7.
[GiuMa] Giuliani, Manuel. 2006. A Basic System for Interpretation of Utterances in
Natural Language, Based on the Combinatory Categorial Grammar. München : TU
München, 2006.
113
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1
LITERATURVERZEICHNIS
THE
APPEAR HERE.
TO THE TEXT THAT YOU WANT TO
[GonDi] Gonzalez, Rafael C. and Woods, Richard E. 1992. Digital Image
Processing. s.l. : Addsion-Wesley Publishing Company, 1992. ISBN 0-201-50803-6.
[GraInv] Graf, Thorsten. 2000. Flexible object recognition based on invariant theory and
agent technology. Bielefeld : Technische Universität, 2000.
[KirSima] Kirkpatrick, S., Gelatt, C. D. and Vecchi, M. P. 1983. Optimization by
Simulated Annealing. Science. 1983, Vol. 4598.
[LevMe] Levenberg, K. 1944. A Method for the Solution of Certain Problems in
Least Squares. Quaterly Journal Of Applied Mathematics. 1944, Vol. 2.
[LitOR] Liter, Jeffrey C. and Bülthoff, Heinrich H. 1996. An Introduction to Object
Recognition. Tübingen, Germany : Max-Planck-Institut für biologische Kybernetik,
1996.
[LowDi] Lowe, David. 2003. Distinctive image features from scale-invariant
keypoints. International Journal of Computer Vision. 2003, Vol. 20.
[LowOb] —. 1999. Object Recognition from Local Scale-Invariant Features. Vancouver,
Canada : University of British Columbia, 1999.
[LueRi] Luersen, M. A. and Le Riche, R. 2002. Globalized Nelder-Mead method
for engineering optimization. Proceedings of the third international conference on
Engineering computational technology. Edinburgh, UK : Civil-Comp press, 2002.
[MalKar] Malaek, Mohammad-Bagher and Karimi, Akbar. 2006. Development of
a new global continuous optimization algorithm based on Nelder-Mead Simplex
and evolutionary process concepts. Mathematical Problems in Engineering and
Aerospace Sciences. Budapest, Hungary : Budapest University of Technology and
Economics, 2006.
[MarAlg] Marquardt, Donald W. 1963. An Algorithm for Least-Squares
Estimation of Nonlinear Parameters. SIAM Journal on Applied Mathematics. SIAP,
1963, Vol. 11, 2.
[MüTho] Müller, Thomas. 2006. SEP: Objekterkennung und Klassifikation für JAST.
München : TU München, 2006.
[NysIn] Nyström, Ingela. 2002. Lecture: Image Analysis. Sweden : Universitet
Uppsala, 2002.
[GioPa] Panin, Giorgio. 2007. Lecture: Advanced 3D Visual Tracking Methodologies.
München : TU München, 2007.
114
[PasZa] Pass, Greg and Zabih, Ramin. 1999. Comparing Images Using Joint
Histograms. Multimedia Systems. 1999, Vol. 7, 3.
[WieGe] Quarks & Co. 2007. Wie wir sehen - Teamarbeit im Gehirn. Quarks & Co.
[Online] WDR Fernsehen, 7 Juni 2007. http://www.quarks.de/dyn/pics/2383524225-2-kap2_3.jpg.
[RadBv] Radig, Bernd. 2003. Lecture: Bildverstehen. München : TU München, 2003.
[FraSoI] Schweitzer, Frank. 1997. Selbstorganisation und Information. Komplexität
und Selbstorganisation - "Chaos" in Natur- und Kulturwissenschaften. München :
Wilhelm Fink Verlag, 1997.
[SteRa] Steinbrecher, Rainer. 1993. Bildverarbeitung in der Praxis. München, Wien :
Oldenbourg Verlag, 1993. ISBN 3-489-22372-0.
[TekSim] Teknomo, Kardi. 2007. Similarity Measurement. Kardi Teknomo's Page.
[Online] 9 Juni 2007.
http://people.revoledu.com/kardi/tutorial/Similarity/index.html.
[WerBey] Werbos, P.J. 1974. Beyond Regression. Cambridge, MA, USA : Harvard
University, 1974.
[BedEn] Wikipedia. 2007. Bedingte Entropie. Wikipedia. [Online] 30 Mai 2007.
http://de.wikipedia.org/wiki/Bedingte_Entropie.
[CanAlg] —. 2007. Canny-Algorithmus. Wikipedia. [Online] 8 Juni 2007.
http://de.wikipedia.org/wiki/Canny-Algorithmus.
[EntInf] —. 2007. Entropie (Informationstheorie). Wikipedia. [Online] 30 Mai 2007.
http://de.wikipedia.org/wiki/Entropie_(Informationstheorie).
[GauNew] —. 2007. Gauß-Newton-Verfahren. Wikipedia. [Online] 4 Juni 2007.
http://de.wikipedia.org/wiki/Gau%C3%9F-Newton-Verfahren.
[InvMa] —. 2007. Invariante (Mathematik). Wikipedia. [Online] 4 Juni 2007.
http://de.wikipedia.org/wiki/Invariante_%28Mathematik%29.
[KirOp] —. 2007. Kirsch-Operator. Wikipedia. [Online] 8 Juni 2007.
http://de.wikipedia.org/wiki/Kirsch-Operator.
[SobOp] —. 2007. Sobel-Operator. Wikipedia. [Online] 8 Juni 2007.
http://de.wikipedia.org/wiki/Sobel-Operator.
115
12 Anhang
1 2 . 1 K o n f i gu r a t i o n d e s Sys t e m s
Die Objekterkennung kann über eine Konfigurationsdatei parametriert werden. In
der Datei finden sich Einstellmöglichkeiten für die Verarbeitung allgemein, für die
Segmentierung, für die Extraktion der Farben, für die Gesten- und
Robotererkennung, für das Trackingmodul sowie das Template-Matching Modul.
Insbesondere die Parameter für die Wahl des Ähnlichkeitsmaßes und der
Suchstrategie können hier gesetzt werden.
1 2 . 1. 1 K o n z e p t
Das Konfigurationsmodul ist als Klasse implementiert, in der die Parameter als
Konstanten gesetzt werden können. Zu Beginn, d.h. beim Start des
Objekterknnungssystems wird die Konfiguration eingelesen. Es gibt im laufenden
Betrieb nur eine Instanz der Konfiguration, die in Form einer Referenz an die
Submodule zur Vorverarbeitung, bzw. das Template-Matching Modul und den
Tracker übergeben werden. Die Konfiguration ist in der aktuellen Version statisch
implementiert, d.h. zur Rekonfiguration muss das System neu kompiliert werden.
Es ist jedoch vorgesehen, die Konfiguration über eine XML-Schnittstelle für den
Benutzer transparent zu realisieren. Entsprechende Algorithmen sind bereits
teilweise implementiert und werden im Zuge der weiteren Arbeit am
Objekterkennungssystem für das JAST-Projekt umgesetzt.
Aktuell können Konfigurationsparameter also nur durch Neukompilieren des
Systems übernommen werden. Da auf allen verwendeten Rechnern jedoch eine
entsprechende Umgebung vorhanden ist, stellt dies keine wesentliche
Einschränkung dar.
Für den laufenden Betrieb stellt die Konfiguratorklasse Methoden zur Verfügung,
die den Zugriff auf die gesetzten Parameter erlauben.
117
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
1 2 . 1. 2 S c h n e l l e i n s t i e g
Die Konfiguratorklasse ist strukturell gegliedert und Konstanten für alle
benötigten Module können hier gesetzt werden. D.h. an keiner anderen Stelle im
übrigen Quelltext müssen Parameterwerte angepasst werden, da benötigte
Parameter, wie eingangs erwähnt, aus einer Referenz auf die Konfiguration
gelesen werden.
Im Folgenden werden die möglichen Parameter auf Basis ihrer Kategorie
aufgelistet. Hinter dem Parameter ist der Wertebereich, sowie eventuell sinnvolle,
d.h. Erfahrungswerte aufgelistet:
Allgemeine Parameter

takeCamImage

takeCamImageUni

cameraDeviceUni

inputImageAddress

templateDirectory

saveOutput
118
{true;false}
Der Parameter zeigt an, ob Eingabebilder von der Kamera oder aus einer
Beispieldatei geladen werden sollen.
{true;false}
Der Parameter zeigt im Fall, dass ein Bild von der Kamera geladen
werden soll, ob die im JAST-Projekt verwendete Firewire-Kamera benutz
werden soll. Andernfalls wird das OpenCV-Modul CvCapture zur
Bildakquise verwendet.
"/dev/video1394-0"
Falls Bilder per Firewire-Kamera geladen werden sollen, kann hier das
Device spezifiziert werden.
[Dateiname]
Falls das Eingabebild aus einer Datei geladen werden soll, kann hier der
Pfad zur Bilddatei angegeben werden.
[Pfad]
Der Basispfad zu den Template-Bildern kann hier angegeben werden.
{true;false}, printOutput {true;false}
Die Parameter spezifizieren, ob das Verarbeitungsergebnis in Form von
Bilddateien gespeichert werden soll, bzw. ob eine detailierte Textausgabe
auf die Konsole erfolgt.
ERROR! USE

HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
[0,10]
Der Parameter gibt an, in welcher Skalierung das Eingabebild verarbeitet
warden soll. Ein Wert von 3 gibt beispielsweise an, dass das Bild auf ein
Drittel der ursprünglichen Größe skaliert wird.
resize
Parameter für die Segmentierung

adjustmentInterval

adjustmentTries

maxNumberOfGroups

segmentationChannelOfInterest

hsvSegmentation

h_tol, s_tol, v_tol

minRectSize

maxROIWidth, maxROIHeight
[0,1,…,n]
Der Wert gibt an, nach wie vielen Wiederholungen ein Adaptionszyklus
für die Segmentierung ausgelöst wird. Ein Wert von 0 gibt an, dass keine
Adaption ausgelöst wird, bis eine andere der Bedingungen erfüllt ist
(siehe Abschnitt 2.4.3).
[1,…,n]
Der Parameter gibt an, wie oft in einem Adaptionszyklus neue
Parameterwerte gewählt werden, bis das beste Ergebnis übernommen
wird.
[0,…n]
Ein Adaptionszyklus wird ausgelöst, falls die Anzahl der extrahierten
Regionen, den in diesem Parameter spezifizierten Wert übersteigt.
[0,…,3]
Der Wert gibt an, welcher Farbkanal für die Extraktion der Regionen
verwendet werden soll. Ein Wert von 0 gibt an, dass alle Kanäle
verwendet werden.
{true;false}
Der Parameter gibt an, ob das Eingabebild vor der Segmentierung in den
HSV-Farbraum konvertiert werden soll.
[0,…,255]
Bei acht Bit Farbtiefe kann hier ein Initialwert für die Toleranzen
entsprechenden Kanäle bei der Segmentierung spezifiziert werden.
[0,…,n]
Der Wert gibt an, wie viele Punkte eine Region mindestens haben muss,
damit sie nicht wieder verworfen wird.
[0,…,n]
Die Parameter geben eine Maximalgröße für die extrahierte Region an.
119
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO

searchRadius

enlargeRects
[1,…,n]
Der Parameter spezifiziert den verwendeten Suchradius für den
Grouping-Algorithmus.
[0,…,n]
Hier kann angegeben werden, um wie viel eine Region in jede Richtung
gestreckt wird. Die Bounding-Box und damit die Suchregion für das
Template-Matching wird in x- und in y-Richtung nach links und rechts,
bzw. nach oben und unten um die angegebene Anzahl Pixel vergrößert.
Parameter für die Farbextraktion

minNumberOfColorPoints

useColorsPoints
[0,…,n]
Der Wert legt fest, wie viele Punkte mindestens von einer Farbe
gefunden werden müssen, dass diese als Hauptfarbkomponente zählt.
{true;false}
Der Parameter gibt an, ob die zu einer Farbe gehörigen Punkte
gespeichert werden sollen, oder ob nur die Anzahl der zu einer Farbe
gehörenden Punkte interessiert.
Parameter für die Gestenerkennung

gestureTolerance

gestureWidthStretch
[0,…,n]
Mit diesem Wert kann spezifiziert werden, bis zu welchem Abstand von
der Zeigerichtung einer Geste angenommen wird, dass auf ein
entsprechendes Objekt gedeutet wurde. Mit zunehmender Entfernung
von der Fingerspitze wird der Wert proportional vergrößert. Ein Wert
von 40 liefert meist gute Ergebnisse.
[0,…,n]
Hier kann angegeben werden, wie weit sich eine Zeigeregion öffnet. Der
Wert wird zusammen mit gestureTolerance für die Berechnung der
Objekte, auf die gezeigt wird, verwendet.
Template-Matching Parameter
120
ERROR! USE

HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
tmMethod
Der Parameter spezifiziert die Suchstrategie für das Template-Matching.
OPENCV_METHOD wird für die OpenCV Refernezimplementierung
verwende. STANDAR_METHOD spezifiziert die naive Suche, CONTOUR_METHOD
die konturbasierte Suche und SIMPLEX_METHOD die Downhill-Simplex
Strategie.

similarityMeasure
Hier kann ein Ähnlichkeitsmaß angegeben werden, dass zum Vergleich
eines Templates mit einem entsprechend berechneten Bildausschnitt
verwendet
wird.
NLSE_MEASURE
spezifiziert
das
absolute
Ähnlichkeitsmaß, NCC_MEASURE das lineare Ähnlichkeitsmaß, MI_MEASURE
das nichtlineare Ähnlichkeitsmaß und SHAPE_MEASURE das konturbasierte
Maß.

maxGuesses

maxNumberOfRotations

minCertainty
[1,…,n]
Gibt eine Maximalanzahl von Rateversuchen an. Die Wahrscheinlichkeit,
mit der ein Template in einer Region vorkommt wird einem Wert aus
dem Intervall [1,2,…,maxGuesses] zugeordnet (siehe Abschnitt 8.3).
[0,…,n]
Gibt den Wertebereich für den Rotationsparameter an, d.h. es werden
gleichverteilt maxNumberOfRotations Werte aus dem Intervall [0,…,2π]
für ein Template ausprobiert.
[0,…,1]
Spezifiziert den minimalen Ähnlichkeitswert, ab dem ein Objekt als
erkannt angenommen wird.
1 2 . 2 W i c h t i ge A l go r i t h m e n
Algorithmen, die für die Implementierung des Objekterkennungssystems dieser
Arbeit von Bedeutung sind, sind hier in Pseudocode-Notation aufgeführt.
121
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 1 TO THE TEXT THAT
APPEAR HERE.
THE
APPEAR HERE.
YOU WANT TO
1 2 . 2. 1 R e gi o n G r o wi n g A l go r i t h m u s
function regionGrow(image, tolerance) : vector<region> {
regions := new vector<region>();
classified := new vector<point>();
unclassified := new vector<point>(image);
// loop until every point classified
while (not unclassified.empty()) {
// choose a new seed-point
seed := randomPoint(unclassified);
classified.add(seed);
unclassified.remove(seed);
newRegion := createRegion(seed, tolerance, classified,
unclassified);
regions.add(newRegion);
}
return regions;
}
function createRegion(image, seed, tolerance, classified,
unclassified) : region {
region := new region(seed);
foreach(point := neighborOf(region)) {
// check if point has been classified
if (unclassified.contains(point)) {
if (inTolerance(point, seed, tolerance)) {
region.add(point);
classified.add(point);
unclassified.remove(point);
}
}
}
return region;
}
Algorithmus für Region Growing
Pseudocode für den Algorithmus zur iterativen Verarbeitung aller Bildpunkte eines Eingabebildes
und Erzeugen der Bildsegmente mit Hilfe eines Bereichswachstumsverfahrens.
122
ERROR! USE
HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT YOU WANT TO
ERROR! USE THE HOME TAB TO APPLY ÜBERSCHRIFT 2 TO THE TEXT THAT
YOU WANT TO APPEAR H ERE.
THE
APPEAR HERE.
1 2 . 2. 2 R e ku r s i ve r G r o u p i n g A l go r i t h m u s
function groupRecursive(region, point, searchRadius) {
// termination criteria: point is no object point
if (isObjectPoint(point) && (not region.contains(point))) {
// add point to region
region.add(point);
// recurse 4-neighborhood
if (point.x - searchRadius >= 0) {
temp.x := point.x-searchRadius;
temp.y := point.y;
groupRecursive(region,temp,searchRadius);
}
if (point.x + searchRadius < imageWidth) {
temp.x := point.x + searchRadius;
temp.y := point.y;
groupRecursive(region,temp,searchRadius);
}
if (point.y - searchRadius >= 0) {
temp.x := point.x;
temp.y := point.y-searchRadius;
groupRecursive(region,temp,searchRadius);
}
if (point.y + searchRadius < imageHeight) {
temp.x := point.x;
temp.y := point.y+searchRadius;
groupRecursive(region,temp,searchRadius);
}
}
}
Algorithmus für Recursive Grouping
Pseudocode für den bei der Segmentierung für das JAST-Projekt verwendeten GroupingAlgorithmus. Es werden klassifizierte benachbarte Bildpunkte rekursiv zu einer Regionen
verschmolzen.
123
Herunterladen