Beruflich Dokumente
Kultur Dokumente
Bakkalaureatsarbeit
Ben Lorenz
8. August 2012
Betreuer/1. Korrektor:
Prof. Dr.-Ing. Bernhard Jung
2. Korrektor:
Name des Zweitkorrektors
Eidesstattliche Erklärung
Ich versichere, dass ich diese Arbeit selbstständig verfasst und keine anderen Hilfsmittel als die
angegebenen benutzt habe. Die Stellen der Arbeit, die anderen Werken dem Wortlaut oder
dem Sinn nach entnommen sind, habe ich in jedem einzelnen Fall unter Angabe der Quelle
als Entlehnung kenntlich gemacht. Diese Versicherung bezieht sich auch auf die bildlichen
Darstellungen.
Inhaltsverzeichnis
1. Einleitung 5
1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Bestehende Ansätze 7
2.1. Markerbasiertes Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2. Featurebasiertes Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Feature-Tracking durch modellbasierte Objekterkennung . . . . . . . . . . . . 8
2.4. Farb- bzw. Histogrammbasiertes Tracking . . . . . . . . . . . . . . . . . . . . 8
2.4.1. Mean-Shift und CamShift Verfahren . . . . . . . . . . . . . . . . . . . 9
2.4.2. Template Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5. Objekttracking in der humanoiden Robotik . . . . . . . . . . . . . . . . . . . 10
2.6. Auswahl der Verfahren für diese Arbeit . . . . . . . . . . . . . . . . . . . . . . 12
5. Evaluierung/Experimente 43
5.1. Das Testszenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1.1. Kontrollierte Umgebung (CAVE) . . . . . . . . . . . . . . . . . . . . . 43
5.1.2. Umgebung Büro mit guten Bedinungen . . . . . . . . . . . . . . . . . 45
5.1.3. Umgebung Büro mit schlechten Bedingungen . . . . . . . . . . . . . . 48
5.2. Diskussion der Test-Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2.1. Histogrammbasiertes Tracking . . . . . . . . . . . . . . . . . . . . . . 49
5.2.2. Featurebasiertes Tracking . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3. Weitere Experimente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6. Zusammenfassung 51
6.1. Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.2. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
A. Anhang 54
A.1. Roboter Nao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1. Einleitung
Roboter erfüllen heutzutage vielfältige Aufgaben in der Industrie, der Forschung und auch im-
mer mehr im Alltag der Menschen. So werden Roboter häufig da eingesetzt, wo die menschli-
che Ausdauer und Konzentration auf Dauer nachlassen kann, beispielsweise bei der Montage
von Fahrzeugteilen oder der Qualitätskontrolle [GOM10]. Des Weiteren können sie gefähr-
liche oder unangenehme Aufgaben lösen, wie zum Beispiel Bombenentschärfungen, Suche
nach Verschlüssen in Kanalisationssystemen oder Erforschung von unzugänglichen Umge-
bungen, wie der Tiefsee, Vulkanen oder anderen Planeten (Mars - Curiosity [JN12]). Auch
wenn eine hohe Präzision verlangt ist, wie bei schwierigen Operationen in der Medizin, kön-
nen Roboter den Menschen unterstützen. Für den Alltag gibt es bereits Haushaltsroboter die
Staub saugen [Tri], den Boden wischen oder den Rasen mähen können.
Einige dieser Roboter werden noch von Menschen gesteuert, andere können schon weitge-
hend autonom arbeiten. Je höher der Grad der Autonomie eines Roboters wird, desto wichti-
ger wird eine genaue Interpretation seiner Umgebung im Bezug auf seine spezifische Aufga-
be. Reicht einem Roboter, der ein Kanalsystem nach Verschlüssen durchsucht, dazu noch ein
rudimentärer “Tastsinn“, müssen Roboter, die in der Umgebung des Menschen arbeiten, ihre
Umwelt anders erfassen. Da die menschliche Wahrnehmung zu 80 % auf visuellen Informatio-
nen basiert [Car06], ist die von uns geschaffene Umgebung ebenfalls besonders auf Visualität
ausgelegt. Überall gibt es Schilder, Zeichen, Markierungen und Bilder, die wir im Laufe des
Lebens zu interpretieren lernen und deren Bedeutung teilweise unser Handeln bestimmt. Ein
Roboter, der in dieser Umgebung eine Aufgabe zu erfüllen hat, muss also ebenfalls in der
Lage sein visuelle Eindrücke wahrzunehmen und korrekt zu interpretieren.
1.1. Motivation
Robotern, Maschinen und Computern das “Sehen“ beizubringen ist seit vielen Jahren ein
von Forschern und der Industrie verfolgtes Ziel. Dabei entwickelte Techniken ermöglichen es,
aus zweidimensionalen, fotografischen Abbildungen, Informationen der dreidimensionalen
Umgebung zu interpretieren. Als Vorbild dient dabei unsere eigene Fähigkeit zur visuellen
Wahrnehmung. Das menschliche Gehirn ist in der Lage, in Sekundenbruchteilen Signale von
den Augen zu verarbeiten und ein Modell der Umwelt zu erstellen. Der Mensch kann dabei
bekannte, als auch unbekannte Objekte problemlos erfassen, verfolgen und wiedererkennen.
Wenn man die menschliche Leistungsfähigkeit als Maßstab nimmt, stellt dies für Roboter ein
ungelöstes Problem dar. Bei der Forschung wird sich meist auf Teilaspekte des Sehens be-
schränkt, da eine umfassende visuelle Wahrnehmung, wie die des Menschen, nach aktuellem
Stand der Technik nicht möglich ist. Um die Aufgabe für Roboter zu vereinfachen, wird bei-
spielsweise die Umgebung zur Orientierung mit Markern präpariert oder die Wahrnehmung
auf bestimmte Merkmale (Ecken, Kanten, Farben) beschränkt. Das menschliche Sehvermögen
beweist aber immer wieder, dass ein Verstehen der Umgebung anhand von Bildinformationen
auch ohne künstliche Marker oder die Einschränkung auf bestimmte Merkmale möglich ist.
1.2. Zielsetzung
Diese Bachelorarbeit soll einen Überblick über einige Ansätzen geben, die zur visuellen Ob-
jektverfolgung (Objekt-Tracking) verwendet werden können. Dabei wird insbesondere auf die
Vor- und Nachteile einzelner Verfahren im Bezug auf die humanoide Robotik eingegangen. Es
ist Teil der Aufgabenstellung, eine Software zu entwickeln, die auf den vorgestellten Verfahren
basiert. Die Software soll dem Nutzer ermöglichen einen humanoiden Roboter zu steuern.
Die Steuerung erfolgt dabei durch die Selektion eines Bildausschnittes, in einer vom Roboter
stammenden Bildfolge. Der selektierte Bereich repräsentiert ein unbekanntes Objekt aus der
realen Umgebung, auf das sich der Roboter automatisch zubewegen soll. Da es sich um ein
unbekanntes Objekt handelt, wird zur Laufzeit ein passendes Trackingverfahren zur Verfol-
gung dieses Objektes ausgewählt. Die Wahl des Verfahrens erfolgt dabei durch den für diese
Arbeit entwickelten Algorithmus (siehe 4.5).
Die Kombination verschiedener Trackingkonzepte und deren möglichst gute Auswahl zur Lauf-
zeit wurden mit der vorliegenden Software prototypisch umgesetzt. Das entwickelte Gesamt-
verfahren wird des Weiteren durch Experimente in verschiedenen Umgebungen und mit ver-
schiedenen Testobjekten evaluiert.
1.3. Überblick
Das zweite Kapitel gibt einen Überblick über bestehende Ansätze zum visuellen Tracking und
nimmt damit im Zusammenhang Bezug auf die humanoide Robotik.
Kapitel 3 soll zunächst die theoretischen Grundlagen verwendeter Trackingverfahren erläutern
und den Leser mit einigen Begriffen aus dem maschinellen Sehen und der digitalen Bildver-
arbeitung vertraut machen.
Das Kapitel 4 stellt den in dieser Arbeit erarbeiteten Lösungsansatz, sowie dessen Umsetzung
vor. Dabei wird auf Probleme eingegangen, die während der Entwicklung der Software auf-
tauchten und gelöst wurden.
Das entwickelte Tackingverfahren wird in Kapitel 5 evaluiert. Dazu wurden Experimente in
verschieden Umgebungen durchgeführt und ausgewertet.
Das sechste Kapitel soll neben einer kurzen Zusammenfassung dieser Arbeit, einen Ausblick
geben, wie der entwicklete Ansatz zukünftig verbessert und erweitert werden kann.
2. Bestehende Ansätze
Dieses Kapitel gibt eine Übersicht über aktuelle Tracking-Techniken. Es werden die Vor- und
Nachteile der einzelnen Verfahren erläutert und es wird Bezug auf die humanoide Robotik
genommen. Hierbei soll visuelles Tracking im Vordergrund stehen. Sensorbasierte Techniken,
wie beispielsweise GPS, mechanisches, akustisches oder elektro-magnetisches Tracking wer-
den nicht behandelt.
gespeichert, der das selektierte Objekt repräsentiert. Anschließend wird in der Bildfolge nach
diesen Features gesucht. Der Vorteil dieser Verfahren ist also, dass das Tracking dynamisch
funktioniert, da das gewünschte Objekt während der Laufzeit beschrieben wird. Darüber hin-
aus sind einige Feature-Detektoren und Deskriptoren in der Lage, Objekte skalen- und rota-
tionsinvariant zu beschreiben. Dadurch kann das Objekt im Bild erkannt werden, auch wenn
sich seine Distanz zur Bildquelle verändert oder das Objekt planare Rotationen zur Bildebene
vollführt.
Der Nachteil dieses Verfahrens ist, dass nur zweidimensionale Informationen über das Ob-
jekt gesammelt werden. Genau genommen wird also nicht das Objekt mit den Features be-
schrieben, sondern nur der Bildausschnitt, der dieses Objekt beinhaltet. Genauso wird bei
der Suche nicht nach einem Objekt gesucht, sondern nach einem Bildausschnitt, der eine
Feature-Konstellation besitzt, die der des als Objekt selektierten Bildausschnittes entspricht.
Verändert sich der Blickwinkel auf das Objekt, kann es möglicherweise nicht wiedergefunden
werden. Des Weiteren sind diese Verfahren stark von der Qualität der Bildfolge abhängig.
Ist die Bildauflösung zu gering oder entsteht durch schnelle Kamerabewegung Unschärfe im
Bild, können nur noch sehr wenige oder keine Features erkannt werden.
Abb. 2.2: Klassifizierung der Haar-like Features. Das zu trackende Objekt und später das Bild in dem das Objekt
gesucht wird, werden mit diesen Features beschrieben. Die Features repräsentieren bestimmte, gut erkennbare
Bildpunktkonstellationen. Deren Verteilung und Beziehung zueinander bilden die Grundlage für das im classifier
beschriebene Modell des Objektes. [LM02]
Roboter ein rudimentäres SLAM (Simultaneous Localization and Mapping) [LD91] durchzu-
führen. Dabei sind dem Roboter einige Objekte anhand ihrer zweidimensionalen Features
bekannt und in einer Reihe vor ihm plaziert. Der Roboter bewegt sich seitlich und erkennt
somit nach und nach ein weiteres Objekt. Da die Größe der Objekte bekannt ist, kann aus-
gehend von den im Bild gefundenen Objekt-Features, die Pose des Roboters im Raum ermittelt
werden.
Abb. 2.3: Die Bilder zeigen den humanoiden Roboter von G. Taylor und L. Kleeman [TK02] beim Greifen eines
Objektes. Bild (b) zeigt das bearbeitete Range-Image. Farbverläufe wurden hier bereits mit einer einzigen Farbe
versehen, um planare Flächen zu markieren. [TK02]
dessen Kanten können somit vom System “virtuell“ in ein Ausgabebild projiziert werden (sie-
he Abbildung 2.4).
Abb. 2.4: Im Bild sind Teile des T-Elements verdeckt. VVV erkennt mit Hilfe der vorhandenen Geometrie-
Informationen aus dem 3D-Bild und einem Abgleich der Objekt-Geometrie aus einer Datenbank das T-Element.
Es werden die Kanten des rekonstruierten Objektes markiert, um verdeckte Teile sichtbar zu machen.
VVV wurde wiederum weiterentwickelt, um ein 3D-Vision-System für den humanoiden Robo-
ter HRP-2P bereitzustellen [Kaw+02]. Es wurde unter anderem die Erkennung von Kanten und
planaren Flächen verbessert. Die grundlegende modellbasierte Objekterkennung blieb aber
erhalten. Genutzt wurde das System beim HRP-2P beispielsweise um ein Brett zu finden und
zu greifen und im Anschluss kooperativ mit einem Menschen zu transportieren [Yok+03].
3.1.1. Lucas-Kanade-Methode
Die Lucas-Kanade-Methode (LKM) [LK81], ist ein Verfahren um den optischen Fluss an-
hand von Feature-Punkten zu berechnen. Dabei gibt es drei grundlegende Voraussetzungen
[Lag11, S. 270-271]:
• Konstante Helligkeit: Die Helligkeit eines Bildpunktes sollte von Frame zu Frame gleich
bleiben.
• Geringe Bewegung von Frame zu Frame: Entweder durch sehr hohe Framerate, oder
langsame Bewegung des Objektes oder der Kamera.
Wenn man davon ausgeht, dass sich die Helligkeit für einen gewählten Punkt von Frame zu
Frame nicht ändert, dann wird nach einer Verschiebung (u, v) gesucht, für die gilt
Dies führt unter Berücksichtigung der konstanten Helligkeit zu einer neuen Gleichung:
∂I ∂I ∂I
u+ v+ =0. (3.2)
∂x ∂y ∂t
Diese Beziehung ist bekannt als die fundamentale Gleichung des optischen Flusses und wird
von der Lucas-Kanade-Methode ausgenutzt. Dabei wird die oben genannten Annahme vor-
ausgesetzt, dass sich Bildpunkte in der Nachbarschaft des aktuell berechneten Bildpunktes
auf die gleiche Weise bewegen, nämlich um die Verschiebung (u, v). Da man somit die selbe
Gleichung (3.2) für alle Punkte in der Umgebung des aktuellen Bildpunktes verwenden kann,
ergibt sich ein Gleichungssystem mit mehr Gleichungen als Unbekannten. Im zweidimensio-
nalen Fall entspricht dieses Gleichungssystem:
Wobei n den Index der n zusammengehörenden Punkte angibt. Da ein überbestimmtes Glei-
chungssystem vorliegt, gilt:
Ix1 Iy1 −It1
Ix2 Iy2 −It2
u
= .
..
v ..
.
Ixn Iyn −Itn
Zur Lösung
dieses Systems kann nun die Methode der kleinsten Quadrate verwendet werden,
u
mit ~v = gilt: A~v = −b .
v
Der optische Fluss kann somit aus den Ableitungen, also dem Gradienten, ermittelt werden.
Um dem Hauptbildpunkt mehr Bedeutung zu verleihen, werden häufig Wichtungsfunktio-
nen verwendet. Zur Wichtung eignet sich beispielsweise die Gauß’sche Normalverteilung. In
anderen Erweiterungen der Lucas-Kanade-Methode werden auch statistische Methoden ver-
wendet, um das Tracking zu stabilisieren [MGH12].
Ein großes Problem, dass im Zusammenhang mit einem kleinen Suchfenster um einen gut
trackbaren Bildpunkt entsteht, ist das Blenden- oder Aperturproblem, welches in Abbildung
3.1 erläutert wird. Dieses Problem wird durch eine iterative Ausführung der Lucas-Kanade-
Methode bei verschiedenen Bildauflösungen gelöst (engl. Level of Detail - LOD). Dabei wird
erst bei einem niedrig aufgelöstem Bild ein grober optischer Fluss ermittelt. Die Informationen
aus dieser ersten Iteration fließen dann in die nächste Iteration ein, um die Position und Grö-
ße der Fenster um gut trackbare Bildpunkte anzupassen. Somit lassen sich auch Bewegungen
größerer Objekte erfassen [Bou00].
Abb. 3.1: Blendenproblem [BK08] - Der hellgraue Bereich zeigt das gesamte Bild, das durch ein kleines Fens-
ter (Blende) betrachtet wird. Die oberen vier Bilder zeigen die Bewegung durch die Blende. Dabei ist nur eine
Seitwärtsbewegung zu erkennen. Die unteren vier Bilder zeigen die gesamte Szene und es wird deutlich, dass
zusätzlich zur Seitwärtsbewegung eine Abwärtsbewegung stattfindet, die bei der Betrachtung durch die Blende
nicht erkennbar war.
Dabei stellt (u, v) die Verschiebung des Fensters in x bzw. y-Richtung dar, w(x, y) repräsentiert
das Originalfenster und seine Koordinaten und I steht für die Helligkeit an einer Stelle. Diese
Gleichung wird mit Hilfe eines Taylorpolynoms approximiert:
X
E(u, v) ≈ w(x, y)[I(x, y) + uIx + vIy − I(x, y)]2 .
x,y
Nach Auflösen des Quadrates lässt sich die Gleichung in Matrizenform schreiben:
2
X Ix Ix Iy u
E(x, y) ≈ u v w(x, y) .
Ix Iy Iy2 v
Abb. 3.2: Prinzip der Harris-Corner-Detektion - Fenster a kann in jede Richtung bewegt werde, ohne dass sich der
Inhalt ändert. Fenster b und c liegen auf einer Kante und lassen sich jeweils nur in eine Richtung verschieben, ohne
dass sich der Inhalt ändert. Fenster d liegt auf einer Ecke und lässt sich ohne Inhaltsänderung nicht verschieben.
[Esc13, S. 39]
Harris und Stephens [HS88] haben herausgefunden, dass sich die Eigenwerte λ1 , λ2 die-
ser Matrix zur Beurteilung des aktuellen Fensters eignen. Mit Hilfe der Eigenwerte lässt sich
quantifizieren, wie gut sich der Inhalt eines Bildausschnittes als Feature eignet. Um diese
Brauchbarkeit zu klassifizieren wird jedem Fenster ein Wert R zugewiesen, der sich wie folgt
berechnen lässt:
R = det M − k(SpurM )2 ,
det M = λ1 λ2 ,
SpurM = λ1 + λ2 .
R = min(λ1 , λ2 ) .
Shi und Tomasi [ST94] haben experimentell gezeigt, dass ihr Wert R bessere Ergebnisse liefert.
Diese Ergebnisse, also die Positionen der gut trackbaren Featurepunkte, dienen zur Initialisie-
rung der Lucas-Kanade-Methode. (3.1.1)
Abbildung 3.3 zeigt anhand zweier Diagramme die Auswertung der Eigenvektoren bei der
Harris-Corner-Detektion und “Good Features to Track“. GFTT liefert eine formale mathe-
matische Beschreibung von Featurepunkten, die auf der Änderung der Helligkeit in zwei or-
thogonalen Richtungen basiert. Zur Berechnung dieser Änderungen muss der Gradient des
Bildes ermittelt werden, was einen hohen Rechenaufwand darstellt. Des Weiteren ist GFTT
nicht skalen- und rotationsinvariant. Das macht diese Methode nur sehr bedingt tauglich für
eine Wiedererkennung von Features, da sich Objekte im Bild bewegen können, das heißt sich
ihre Größe und Orientierung ändert.
(a) Auswertung der Eigenwerte bei der Harris- (b) Auswertung der Eigenwerte bei GFTT
Corner-Detektion
Abb. 3.3: Die Abbildung zeigt die Klassifizierung der Fenster anhand ihrer Eigenwerte. Bei (a) [HS88, S.150]
entsprechen α und β den Eigenvektoren λ1 und λ2 . Wenn beide Eigenwerte zu klein sind, liegt R in der weißen
mit “flat“ bezeichnete Fläche bei (a) und der roten Fläche bei (b) [Sin10]. Das bedeutet, dass das aktuelle Fenster
einen zum Tracken völlig ungeeigneten Inhalt hat. Ist einer der beiden Eigenwerte zu niedrig, so liegt R bei (a)
im Bereich “edge region“ und bei (b) im grauen bzw. blauen Bereich. Das Fenster beinhaltet also eine Kante.
Sollten beide Eigenwerte groß sein, enthält das Fenster eine Ecke. Bei (a) sind zusätzlich Werte für R (“amplitude
of response function“) und deren Verlauf (“iso-response contours“), in Abhängigkeit von den beiden Eigenwerten,
angeben.
3.2.1. ORB-Feature-Detektion
ORB nutzt zur Feature-Detektion FAST (Features from Accelerated Segment Test) [RD06]. Diese
Methode ist in Echtzeit in der Lage Features zu finden. Dabei macht sie sich das gleiche LOD-
Prinzip zu nutze, dass die Lucas-Kanade-Methode von groben zu immer feiner werdenden
Abb. 3.4: Ein typisches Matching, das durch ORB gefundene und beschriebene Features benutzt. Grüne Linien
zeigen zulässige Matchings, rote Punkte zeigen Features zu denen kein Matching gefunden wurde. Am Bild lässt
sich die Rotations- und Skaleninvarianz von ORB erkennen. [Rub+12, Figure 1]
Auflösungen iterierte. Im Falle von ORB kommt des Weiteren noch ein Harris-Corner-Filter
hinzu, der schlecht gewählte Features ausschließen soll.
FAST findet Features innerhalb eines Bildes anhand eines Helligkeitsschwellwertes, der als
Parameter übergeben wird. Dieser Schwellwert liegt zwischen einem zentralen Bildpunkt und
einem gewissen Radius um diesen Bildpunkt. Bei ORB wird ein Radius von 9 Bildpunkten ge-
wählt (FAST-9). FAST liefert allerdings kein Maß dafür, ob es sich bei einem Feature um eine
Kante oder Ecke handelt. Rublee et al. [Rub+12] haben herausgefunden, dass FAST deshalb
sehr häufig Werte entlang von Kanten findet. Aus diesem Grund werden die FAST-Feature
mit einem Maß versehen und der Größe nach sortiert. Dieses Maß entspricht dem aus 3.1.2
bekannten Wert R für die Harris-Corner-Detektion. Für eine gewünschte Anzahl Features N
wird zuerst ein geringer Schwellwert gewählt, um mehr als N Features zu finden. Diese wer-
den dann mit R bewertet und sortiert. Die höchsten N Features werden zur Weiterberechnung
ausgewählt. Dieses Verfahren wird ähnlich wie die Lucas-Kanade-Methode bei unterschiedli-
chen Bildauflösungen durchgeführt.
FAST erzeugt in seiner normalen Form nur Informationen über die Lage der Features, aber
nicht über deren Ausrichtung. Die Ausrichtung lässt sich auf verschiedene Arten berechnen.
SIFT bestimmt diese beispielsweise über Histogramme entlang der Gradienten, SURF wieder-
um approximiert die Ausrichtung indem er die Umgebung des Features in Blöcke einteilt und
versucht Muster zu erkennen. Die von ORB genutzte Variante verwendet die “centroid techni-
que“ (Schwerpunkttechnik) bzw. “intensity centroid“ von P.L. Rosin [Ros98]. Dabei wird davon
ausgegangen, dass sich der Helligkeitsschwerpunkt einer Ecke nicht auf dem Mittelpunkt die-
ser Ecke befindet. Als Ecke ist hierbei der Bildausschnitt um ein Feature zu verstehen, der
vorher als Ecke erkannt wurde. Der Vektor vom Schwerpunkt zum Mittelpunkt kann nun als
Maß für die Ausrichtung des Features verstanden werden. Zur Berechnung des Schwerpunktes
verwendet Rosin die Momente [Min62] des Bildausschnittes und definiert diese wie folgt:
X
mpq = xp y q I(x, y) .
x,y
Dabei ist I(x, y) der Helligkeitswert an der Stelle (x, y) des Bildausschnittes. p und q geben
den Grad des Momentes an. Mit diesen Momenten lässt sich der Schwerpunkt herleiten:
m10 m01
C= , .
m00 m00
Wobei diese Unterscheidung im Falle von ORB keine Rolle spielt, da nicht die Orientierung
des Vektors von Bedeutung ist, sondern nur sein Winkel. Um die Rotationsinvarianz der ge-
fundenen Werte zu verbessern wird sichergestellt, dass die Momente für x- und y-Richtung
nur innerhalb einer kreisrunden Region mit Radius r berechnet werden. Radius r wurde empi-
risch festgelegt und entspricht hier dem Radius des Bildausschnittes. Der überarbeitete FAST-
Algorithmus wird im Folgenden als oFAST (oriented FAST) bezeichnet.
3.2.2. ORB-Feature-Deskription
Um später besser gleiche oder ähnliche Features zu finden, wird ein Feature-Deskriptor ver-
wendet. Dieser extrahiert aus einem kleinen Bildausschnitt um jedes gefundene Feature herum
Informationen, um dieses genauer zu beschreiben.
Als Feature-Deskriptor kommt bei ORB eine erweiterte Variante von BRIEF (Binary Robust In-
dependent Elementary Features) zum Einsatz [Cal+10]. BRIEF nutzt eine Reihe von einfachen
binären Tests zwischen Bildpunkten in geglätteten Bildausschnitten, um Features zu beschrei-
ben. Rublee et al. [Rub+12] haben nach binären Tests gesucht die besonders die Ausrichtung
der Features berücksichtigen. Der ursprüngliche BRIEF-Deskriptor liefert eine Bitkette für einen
bestimmten Bildausschnitt. Diese Bitkette wird von einem binären Test τ erzeugt:
(
1 : p(x) < p(y)
τ (p; x, y) :=
0 : p(x) ≥ p(y) .
p steht hierbei für den geglätteten Bildausschnitt (engl. Patch) und p(x) für die Helligkeit an
einem Punkt x. Das Feature wird definiert als ein Vektor von n binären Tests:
X
fn (p) := 2i−1 τ (p; xi , yi ) .
1≤i≤n
Die einzelnen Tests bekommen nun noch eine Wichtung ausgehend vom Mittelpunkt des Pat-
ches. Dafür wurde die Gauß’sche Normalverteilung gewählt. Die Länge des Vektors, also die
Anzahl der Tests, wird auf n = 256 festgelegt. Es ist weiterhin wichtig das Bild vor der Aus-
führung der Tests zu glätten. Hierzu wird ein Integralbild verwendet, bei dem jeder Testpunkt
einem (5 × 5)-Ausschnitt eines (31 × 31) Bildpunkte großem Patch entspricht.
Da normalerweise die positiven Matchingergebnisse schon bei sehr geringen Rotationswin-
keln stark zurückgehen (Abbildung 3.5), wurde versucht BRIEF so zu modifizieren, dass er
invariant gegenüber ebener Rotation wird. Dazu schlug Calonder et al.[Cal+10] vor, den
BRIEF-Deskriptor für alle Patches auf eine ganze Reihe von Rotationen und perspektivische
Neigungen anzuwenden. Dieser Lösungsansatz wurde von Rublee et al. [Rub+12] verworfen,
da er einen zu hohen Rechenaufwand erzeugte.
Rublee et al. [Rub+12] wählten einen anderen Ansatz. Sie entwickelten “Steered BRIEF“,
welcher die vorher ermittelte Ausrichtung θ der einzelnen Patches nutzte, um damit einen
steered, also “gesteuerten“, BRIEF-Deskriptor zu berechnen. Ein Vorteil des klassischen BRIEF-
Algorithmus ist, dass jeder Test, also jede Feature-Bitkette, eine große Varianz und ein arith-
metisches Mittel von etwa 0,5 besitzt [Rub+12]. Hohe Varianz macht ein Feature gut unter-
scheidbar. Wenn BRIEF an der Richtung der Features ausgerichtet wird, wie es bei “steered
Abb. 3.5: Die Grafik zeigt die Matchingperformance von rBRIEF, SIFT, SURF und BRIEF bei der (künstlichen) pla-
naren Rotation eines Testobjektes. Gut zu erkennen ist die Rotationsinvarianz des angepassten rBRIEF gegenüber
dem klassischen BRIEF-Algorithmus. [Rub+12, Figure 7]
BRIEF“ der Fall ist, dann verschieben sich die Mittelwerte zu einer relativ gleichmäßigen Ver-
teilung (siehe Abbildung 3.6). Dies geschieht, da die ausgerichteten Features für den binären
Test ein viel gleichförmigeres Aussehen besitzen. Somit sind die von steered BRIEF erkannten
Features schlecht unterscheidbar, was Rublee et al. [Rub+12] zu einer erneuten Überarbei-
tung ihres Algorithmus führte.
Dieser löste nicht nur das Problem der geringen Varianz, sondern gewährleistet darüber hin-
aus auch eine Unkorreliertheit der einzelnen binären Tests. Erreicht wurde das durch eine
Lernmethode, die selbstständig einen guten, also unkorrelierten Teil der binären Tests aus-
wählt. Es wurde ein Trainingsset von 300.000 Features aus einer Reihe von Bildern angelegt.
Des Weiteren wurden alle möglichen binären Tests aus einem (31 × 31) Bildpunkte großem
Patch durchnummeriert. Jeder Test entspricht dabei einem Paar von (5 × 5)-Ausschnitten des
Patches. Wenn man nun die Breite des Patches als (wp = 31) und die Breite des Ausschnittes
als wt = 5 bezeichnet, ergeben sich N = (wp − wt )2 mögliche Ausschnitte. Da ein Test jeweils
einem Paar von Ausschnitten entspricht, gibt es N2 binäre Tests. Werden nun alle Tests elimi-
niert, die sich überschneiden, bleiben M = 205590 mögliche Tests.
Folgender Greedy-Algorithmus sucht nach einer Menge von binären Tests, die unkorreliert
sind und ein arithmetisches Mittel nahe 0,5 liefern:
Abb. 3.6: Verteilung der arithmetischen Mittelwerte für Feature-Vektoren. Die X-Achse gibt hierbei den Abstand
vom Mittelwert 0,5 an. [Rub+12, Figure 3]
Algorithmus:
2. Ordne die Tests nach der Entfernung ihres Mittelwertes von 0.5 und baue daraus einen
Vektor T auf
3. Greedy-Suche:
a Stecke den ersten Test in den Ergebnisvektor R und lösche ihn aus T
b Nimm den nächsten Test von T und vergleiche ihn mit allen Tests in R. Wenn seine
Korrelation größer ist als ein bestimmter Schwellwert, verwerfe ihn; andernfalls
füge ihn in R hinzu
c Wiederhole die vorherigen Schritte so lange, bis sich eine gewünschte Anzahl Test
in R befinden. Sollten es weniger als die gewünschte Ahnzahl sein, setze den
Schwellwert herrunter und starte den Algorithmus von vorn
Das Ergebnis das dieser Algorithmus lieferte, also eine Menge von unkorrelierten binären
Tests, bezeichneten Rublee et al. [Rub+12] als rBRIEF.
rBRIEF, in Kombination mit dem in 3.2.1 beschriebenen oFAST, lieferte nicht nur Rotationsinva-
rianz, sondern in einigen Bereichen eine bessere Trackingperformance als andere Verfahren,
wie zum Beispiel BRIEF, SURF und SIFT. Für eine ausführliche Evaluation sei auf die Veröffent-
lichung von Rublee et al. [Rub+12] verwiesen.
3.3. BruteForce-Feature-Matching
Um Features eines gewählten Objektes in einem Bild wiederzufinden (engl. Matching), gibt
es verschiedene Methoden. Neben dem FLANN-Based-Matching (Fast Library for Approxima-
te Nearest Neighbors [ML09]) findet häufig ein typisches Brute-Force-Matching Anwendung.
Das Brute-Force-Matching beruht auf der Brute-Force-Methode. Diese Methode findet eine
Lösung für ein Problem durch das Testen aller möglichen potenziellen Lösungen. Der Rechen-
aufwand steigt dabei proportional zur Anzahl der möglichen Lösungen, wobei die Anzahl der
möglichen Lösungen mit steigendem Umfang der Probleme exponentiell ansteigt. Vorteil der
Brute-Force-Methode ist, dass sie immer eine korrekte Lösung findet, wenn diese existiert.
Beim Brute-Force-Matching wird also zu jedem beschriebenen Feature vom gewählten Ob-
jekt das ähnlichste Feature aus dem gesamten Bild ermittelt. Da bei rBRIEF die Beschreibung
der Features aus einer binären Zeichenkette
P besteht, wird als Vergleichsmaß der Hamming-
Abstand [Ham50]Pgewählt. Wenn ein endliches Alphabet ist und x = (x1 , . . . , xn ), sowie y =
n
(y1 , . . . , yn ) aus zwei Worte gleicher Länge sind, dann ist der Hamming-Abstand beider
wie folgt definiert: X
∆(x, y) := 1, i = 1, . . . , n .
xi 6=yi
Am ähnlichsten sind sich also zwei beschriebene Features, wenn ihr Hamming-Abstand mini-
mal ist. Wenn der Hamming-Abstand zweier Features 0 ist, handelt es sich im Optimalfall um
das selbe Feature. Dieser Fall liegt jedoch nicht immer vor. Da in komplexen Umgebungen
eine Vielzahl von Features beschrieben werden, können sich zwei Features ähneln, oder gar
gleich sein, aber zu völlig unterschiedlichen Objekten gehören.
3.4. Positionsbestimmung
Wenn man davon ausgeht, dass sich die Lage, Größe und die Orientierung des zu trackenden
Objektes von Bild zu Bild ändern, dann reicht das Finden eines Matchings noch nicht aus, um
die Position eines Objektes im Bild genau zu bestimmen und zu verfolgen. Insbesondere trifft
dies zu, wenn der am Ende von 3.3 erwähnte Optimalfall nicht gegeben ist. Erst die Lage und
Orientierung hinreichend vieler Features zueinander kann Auskunft über die Position geben.
3.4.1. Homographie
Die Veränderung der Lage und Orientierung von Feature-Punkten vom Objekt und vom ge-
samten Bild kann als affine Transformation verstanden werden. Da die Feature-Punkte vom
Objekt und vom Bild in verschiedenen Koordinatensystemen liegen werden die beim Mat-
ching gefundenen Feature-Punkte in homogene Koordinaten transformiert. Homogene Koor-
dinaten erlauben die Darstellung von affinen Transformationen durch die Multiplikation der
Koordinaten mit Matrizen. Für jede affine Transformation gibt es eine Matrix. Die Multiplika-
tion einzelner Transfomationsmatrizen liefert eine Matrix, die die gesamte Transformation in
kompakter Form beschreibt.
Die Überführung der Koordinaten in homogene Koordinaten erfolgt durch Einführung einer
zusätzlichen Dimension: n Dimensionen → n + 1 Dimensionen, also hier von zweidimensio-
nalen Koordinaten zu dreidimensionalen Koordinaten:
Eine zweidimensionale Translation beispielsweise lässt sich wie folgt darstellen, wobei tx und
ty der Verschiebung in x- bzw. y-Richtung entsprechen:
1 0 tx
T = 0 1 ty .
0 0 1
Eine zweidimensionale Rotation um den Koordinatenursprung lässt sich wie folgt darstellen:
cos α sin α 0
R = − sin α cos α 0 .
0 0 1
Für Skalierung S und Scherung P gibt es ebenfalls solche Matrizen. Die Transformation H
einer Menge Feature-Punkte vom Objekt auf eine Menge Feature-Punkte im Bild ist nun die
Kombination aller einzelnen Transformationen, also:
H =T ·R·S·P .
Es gilt eine Matrix H zu finden, welche die Objekt-Features (xi , yi ) möglichst genau auf ge-
matchte Bild-Features (xi 0 , yi 0 ) abbildet:
0
xi xi h11 h12 h13 xi
yi 0 ∼ H yi = h21 h22 h23 yi .
1 1 h31 h32 h33 1
Die Methode, die hier zum Suchen einer solchen Homographie (auch Kollineation) verwen-
det wird, heißt direkte lineare Transformation (DLT) [HZ04, S. 88ff]. Dabei sollte der soge-
nannte "back-projection error", also der Abstand zwischen den Bild-Feature-Koordinaten und
den transformierten Objekt-Feature-Koordinaten, minimiert werden. Als einfachste Möglich-
keit bietet sich dafür die Methode der kleinsten Quadrate an. Bei dieser Methode werden die
Abstände aller Punktpaare berechnet:
X h11 xi + h12 yi + h13 2 h21 xi + h22 yi + h23 2
0 0
xi − + yi − .
h31 xi + h32 yi + h33 h31 xi + h32 yi + h33
i
Wenn jedoch nicht alle Punktpaare auf die Transformation abgebildet werden können, es al-
so Ausreißer gibt, liefert diese Methode schlechte Ergebnisse oder findet keine Homographie-
Matrix H. Im Falle von Ausreißern gibt es unterstützdende Methoden, wie zum Beispiel Schätz-
Funktionen (M-Schätzer), den LMS-Algorithmus (Least-Mean-Squares) [WH60, S. 96-104]
oder den RANSAC-Algorithmus. Diese Verfahren ermitteln aus einem bestehenden Datensatz
(hier Punktkoordinaten) ein Modell, welches weniger, oder gar keine Ausreißer mehr enthält.
Auf dieses Modell kann dann die Methode der kleinsten Quadrate angewendet werden. Im
nächsten Abschnitt soll näher auf den verwendeten RANSAC-Algorithmus eingegangen wer-
den.
3.4.2. RANSAC-Algorithmus
Martin A. Fischler und Robert C. Bolles stellten den RANSAC-Algorithmus (RAndom SAmple
Consensus) 1981 in der Fachzeitschrift “Communications of the ACM“ vor. RANSAC bie-
tet gegenüber klassischer Methoden der Ausgleichsrechnung, wie zum Beispiel der Methode
der kleinsten Quadrate, eine hohe Robustheit gegenüber Ausreißern. Soll beispielsweise eine
Gerade (Modell) an eine Punktwolke angepasst werden, reichen theoretisch zwei Punkte um
diese Gerade zu beschreiben. Es ist aber unwahrscheinlich, dass zwei willkürlich gewählte
Punkte ein brauchbares Modell liefern. Wenn alle Punkte verwendet werden um das Modell
zu errechnen, dann können Ausreißer das Modell stark verzerren (siehe Abbildung 3.7).
Statt alle Punkte gemeinsam auszuwerten, werden bei RANSAC nur so viele Punkte zufällig
ausgewählt, wie zur Bestimmung des Modells gebraucht werden, im Falle einer Gerade also
zwei Punkte. Es wird zunächst angenommen, dass diese Punkte keine Ausreißer sind. Aus
ihnen wird nun ein Modell ermittelt. Die Distanz zwischen diesem Modell und allen ursprüng-
lichen Punkten liefert Informationen über die Qualität des Modells. Ist die Distanz zwischen
dem Modell und einem Punkt kleiner als ein vorher festgelegter Schwellwert, dann ist dieser
Punkt in Bezug auf das berechnete Modell kein grober Fehler, das heißt der Punkt unterstützt
das Modell. Je mehr Punkte das Modell unterstützen, desto unwahrscheinlicher waren die zu-
fällig ausgewählten Punkte Ausreißer. Punkte die ein Modell unterstützen werden gespeichert
und als Consensus set bezeichnet. RANSAC arbeitet iterativ, indem er dieses Verfahren mehr-
mals anwendet:
RANSAC-Algorithmus:
1. Wähle zufällig ausreichend viele Punkte aus, um ein Modell berechnen zu können. An-
nahme: Die ausgewählten Punkte sind keine Ausreißer.
3. Bestimme die Menge der Punkte (Consensus set), deren Abstand zum Modell kleiner als
ein bestimmter Schwellwert ist.
4. Enthält das Consensus set eine Mindestanzahl von Punkten, wurde vermutlich ein gutes
Modell gefunden und das Consensus set wird gespeichert.
Auf das größte gefundene Consensus set, also im Idealfall einer Menge von Punkten, die
keine Ausreißer enthält, wird nun die Methode der kleinsten Quadrate angewandt. Wenn
kein Consensus set gefunden werden konnte, sollte der Algorithmus mit veränderten Parame-
tern erneut gestartet werden. Diese Parameter sind:
3. Mindestgröße des Consensus set (nur in einer speziellen Variante des Algorithmus, nor-
malerweise wird das größte Consensus set gewählt)
Abb. 3.7: Verfälschen des Modells (grüne Gerade) durch einen einzigen Ausreißer (roter Punkt rechts oben), bei
klassischer Ausgleichsrechnung.
3.4.3. Levenberg-Marquardt-Algorithmus
Nachdem mit Hilfe von RANSAC und der Methode der kleinsten Quadrate eine erste Nä-
herung für die Homographiematrix H gefunden wurde, wird diese mit dem Levenberg-
Marquardt-Algorithmus (LMA) verfeinert. Dadurch kann der “back-projection error“ weiter
minimiert werden.
Der Levenberg-Marquardt-Algorithmus ist ein numerischer Optimierungsalgorithmus zur Lö-
sung nichtlinearer Ausgleichsprobleme mit Hilfe der Methode der kleinsten Quadrate. Der
Algorithmus kombiniert dabei das Gauß-Newton-Verfahren mit dem Gradientenverfahren.
Er ist dadurch robuster als das Gauß-Newton-Verfahren, das heißt er konvergiert in den
meisten Fällen mit hoher Wahrscheinlichkeit, auch wenn die Startbedingung weit vom ge-
suchten Minimum entfernt ist. (Man kann den Levenberg-Marquardt-Algorithmus auch als
Gauß-Newton-Verfahren mit einer Trust-Region-Näherung auffassen). Auf die einzelnen Ver-
fahren soll hier nicht im Detail eingegangen werden. Es wird nur die Funktionsweise des LMA
in groben Zügen erläutert.
Es sei eine Menge von m Punkt-Paaren (xi , yi ) gegeben und eine Funktion f , die einen Teil
dieser Punkt-Paare (xi ) transformiert. Diese Funktion f entspricht hier der Homographiematrix
H. Es wird ein Parameter β eingeführt um folgende Summe zu minimieren:
m
X
S(β) = [yi − f (xi , β)]2 .
i=1
Der LMA geht nun iterativ vor. Dabei muss der Parameter-Vektor β bei der ersten Iteration ver-
mutet werden. Ein gute Startwert ist zum Beispiel β T = (1, 1, . . . , 1). Bei jeder weiteren Iteration
wird dieser Parameter durch eine neue Abschätzung, β + δ, ersetzt. Um dieses δ zu ermitteln
wir die Funktion f (xi , β + δ) mit Hilfe ihrer Linearisierung approximiert (Taylorentwicklung):
f (xi , β + δ) ≈ f (xi , β) + Ji δ ,
wobei
∂f (xi , β)
Ji =
∂β
der Gradient der Funktion f im Bezug auf β ist. Wenn die Summe S(β) minimal ist, wird der
Gradient von S im Bezug auf δ null. Mit der Approximation von f (xi , β + δ) ergibt das für die
Summe:
Xm
S(β + δ) ≈ (yi − f (xi , β) − Ji δ)2
i=1
oder in Vektorschreibweise:
S(β + δ) ≈ ky − f (β) − Jδk2 .
J ist die Jacobi-Matrix, in der die i-te Zeile Ji entspricht, f und y sind Vektoren mit der i-ten
Komponente f (xi , β) und yi und k·k ist die euklidische Norm:
v
u n
uX
kxk = t |xi |2 .
i=1
Das gesuchte δ ist somit die Lösung für ein lineares Kleinste-Quadrate-Problem, welches
minimal wird, wenn Jδ − y − f (β) orthogonal zu den Spalten von J ist (das heißt wenn die
Ableitungen nach δ null sind).
J T (Jδ − y − f (β)) = 0! → J T Jδ = J T [y − f (β)] ,
Levenberg fügte dieser Menge von linearen Gleichungen einen Dämpfungsfaktor λ hinzu:
(J T J + λE)δ = J T [y − f (β)]) ,
wobei E der Einheitsmatrix entspricht. Der positive Dämpfungsfaktor λ wird in jeder Iteration
angepasst. Falls die Reduzierung von S schnell verläuft, kann ein kleiner Wert λ → 0 gewählt
werden. Somit ähnelt das Verfahren mehr dem Gauß-Newton-Verfahren. Geschieht die Redu-
zierung zu langsam, wird λ erhöht und das Verfahren nähert sich dem Gradientenverfahren.
Sollte nun entweder δ oder die Summe S(β + δ) unter einen bestimmten Schwellwert fallen,
wird der Algorithmus beendet und der Vektor β ist die Lösung für das Minimierungsproblem
S(β).
Dieser Algorithmus von Levenberg hat den Nachteil, dass er für große λ → ∞ und in Richtung
kleiner Gradienten langsam konvergiert (siehe Gradientenverfahren). Marquardt schlug vor,
einzelne Abschnitte des Gradienten anhand ihrer Krümmung so zu skalieren, dass das Ver-
fahren in Richtung kleiner Gradienten schneller arbeitet. Dazu ersetzte er die Einheitsmatrix E
durch die Diagonalmatrix von J T J. Somit skaliert der Dämpfungsfaktor nicht mehr einheit-
lich, sondern in Abhängigkeit von den Eigenschaften des Gradienten. Aus dieser Erweiterung
resultiert der Levenberg-Marquardt-Algorithmus:
Typische, vom Nutzer bestimmte, Parameter für diesen Algorithmus sind: τ = 10−3 , 1 = 2 =
3 = 10−15 und kmax = 100. Dabei sind 1...3 die Schwellwerte für die Abbruchbedingungen.
Der Algorithmus bricht ab, wenn J T [y − f (β)], die relative Änderung von δβ (von einer Inter-
ation zur nächsten) oder der “back-projection error“ unter diese Werte fallen. kmax entspricht
der Anzahl der maximalen Iterationen.
In der digitalen Bildverarbeitung lässt sich mit einem Histogramm die statistische Häufigkeit
von Grauwerten bzw. Farbwerten in einem Bild darstellen. Im RGB-Farbraum kann so die
Häufigkeitsverteilung der einzelnen Farben in einem Bild dargestellt werden. Jeder Pixel setzt
sich in diesem Farbraum aus den drei Farben (Rot, Blau und Grün) zusammen, wobei jede
Farbe einen Helligkeitswert von 0...255 (8 Bit) besitzt. Die Daten für jeden Farbkanal wer-
den in Klassen (bins) eingeteilt. Im RGB-Farbraum ist eine Einteilung in 256 bins üblich, also
für jeden Helligkeitswert eines Farbkanals genau einen bin. Für jeden dieser bins werden im
Abb. 3.8: Abbildung (a) zeigt ein Graustufenbild und Abbildung (b) das zugehörige Histogramm. Im Histogramm
gibt es ein Maximum ganz links, was schwarz bzw. einem Grauwert von 0 entspricht. Bis zur Hälfte des Histo-
gramms gibt es nur wenige Grauwerte, danach steigen die Häufigkeiten der Grauwerte. Vollständig weiße (Grau-
wert 255) Werte gibt es nicht. Beim Schwellwertverfahren wird nun ein Schwellwert (engl. threshold) festgelegt.
Alle Pixel, die unter diesem Wert liegen, das heißt dunkler sind, werden mit einem Grauwert von 0 versehen,
alle Pixel, die über diesem Wert liegen, werden mit einem Grauwert von 255 versehen. Das resultierende Bild (b)
enthält nur noch zwei Grauwerte (0 und 255). Das zugehörige Histogramm (d) weist jeweils ein Maximum bei
schwarz und weiß auf.
gesamten Bild die zugehörigen Pixel gezählt. Damit lässt sich für jeden Farbkanal ein Histo-
gramm darstellen. Dabei werden die einzelnen bins durch Rechtecke bzw. Linien dargestellt,
deren Höhe abhängig von der Anzahl der zugehörigen Pixel ist. Jeder bin entspricht also der
Menge von Pixeln, die in einem bestimmten Helligkeitsbereich (hier genau ein Helligkeitswert)
liegen.
Anhand der Histogramminformationen lässt sich ein Bild segmentieren, um beispielsweise
bestimmte Bereiche hervorzuheben oder zu unterdrücken. Ein einfache Methode dafür ist das
Schwellwertverfahren (engl. Thresholding), welches in Abbildung 3.8 an einem Graustufen-
bild erläutert wird.
Farbige Bilder lassen sich ebenfalls durch das Schwellwertverfahren segmentieren, allerdings
eignet sich der RGB-Farbraum weniger dafür, da drei Farbkanäle und deren Kombinationen
betrachtet werden müssen. Insbesondere Bilder mit Farbverläufen und Schattierungen lassen
sich so schlecht segmentieren. Ein geeigneterer Farbraum für die Segmentierung farbiger
Bilder ist der HSV-Farbraum.
Abb. 3.9: Die Abbildung zeigt eine grüne Kugel auf der zwei Punkte markiert sind. Punkt a enthält im RGB-
Farbraum die Werte RGB(87,123,63) und im HSV-Farbraum HSV(110°, 70%, 84%). Punkt b enthält RGB(1,6,0)
und HSV(111°, 100%, 2%). Der Farb-Wert ändert sich auf der gesamten Kugeloberfläche nur geringfügig, wäh-
rend die RGB-Werte stark variieren.
3.5.2. Rückprojektion
Rückprojektion (engl. backprojection)2 ist eine weitere Methode um ein Bild zu segmentieren.
Dabei wird berechnet, wie gut die Pixel eines Bildes einem vorher ermitteltem Histogramm
entsprechen. So lassen sich beispielsweise mit einem Histogramm einer Hautfarbe alle Berei-
che im Bild finden, die diesem Histogramm, also letztendlich der Hautfarbe, am ähnlichsten
sind. Es wird jeder Pixel p(x, y) des Bildes betrachtet und seine HSV-Werte (hx,y , sx,y , vx,y ) er-
mittelt. Diese Werte werden nun mit dem vorher ermittelten Histogramm verglichen und der
bin gesucht, dem diese Werte am meisten entsprechen. Der bin-Wert wird nun in einem neuen
Bild gespeichert, der Rückprojektion. Er entspricht dort einem Grauwert und befindet sich an
der gleichen Stelle, wie der im Original-Bild ausgewertete Pixel p(x, y). Ein hoher bin-Wert,
also ein häufiges Auftreten des Farbtones im Bild liefert dabei weiß, niedrigere bin-Werte nur
noch Graustufen und sehr geringe bin-Werte schwarz (siehe Abbildung 3.10).
2
nicht zu verwechseln mit dem “back-projection-error“ (siehe 3.4.1)
Abb. 3.10: Das blaue Rechteck in (a) rahmt den Bereich ein, aus dem das Histogramm für die Rückprojektion er-
rechnet wurde. (b) zeigt die Rückprojektion von (a). Helle Flächen entsprechen dabei am ehesten dem selektierten
Histogramm. Je dunkler die Flächen, desto weniger entsprechen sie dem Histogramm.
Abb. 3.11: Die Abbildungen zeigen die Nachbarschaftsbeziehung des mit X markierten Pixels. Die hellgrauen
Flächen repräsentieren die Nachbarn dieses Pixels.
Der Algorithmus arbeitet nur in einem schwarz-weiß-Bild, das heißt sollen Konturen in einer
Rückprojektion (Graustufenbild) gefunden werden, muss ein Schwellwertverfahren angewandt
werden, um daraus das gewünschte Binärbild zu erzeugen. Die Konturen liegen nach Beendi-
gung des Algorithmus als Folge von Punkten vor. Dieser Polygonzug wird durch den Douglas-
Peucker-Algorithmus [DP73] vereinfacht. Der Grad der Vereinfachung wird dabei durch den
Abstand zwischen dem ursprünglichen und dem approximierten Polygonzug festgelegt. Der
Douglas-Peucker-Algorithmus arbeitet rekursiv nach dem Teile-und-Herrsche-Prinzip (siehe
Abbildung 3.12). Die Fläche, die von jeder Kontur umschlossen wird lässt sich durch das
Zählen der beinhalteten Pixel ermitteln. Die Kontur mit der größten Fläche entspricht dann
dem gesuchten Objekt.
Abb. 3.12: Illustration des Douglas-Peucker-Algorithmus - Die grünen Punkte entsprechen den Punkten des
Original-Polygonzuges, die schwarzen Vierecke denen, des vereinfachten Polygonzuges. Die blaue Linie reprä-
sentiert den approximierten Polygonzug, die rote Linie zeigt jeweils den maximalen Abstand eines Punktes vom
Original-Polygonzug zur approximierten Lösung an. Der Punkt auf dem Original-Polygonzug, der den maximalen
Abstand hat, wird zur approximierten Lösung hinzugefügt. Punkte, die unter einen gewissen Abstandsschwellwert
fallen, werden verworfen.
4.1. Problemdefinition
Der Nutzer soll in einem vom humanoiden Roboter stammenden Video-Stream ein Objekt
markieren können. Dieses Objekt soll daraufhin hervorgehoben und dessen Position im Bild
verfolgt (getrackt) werden. Ausgehend von den Positionsinformationen soll sich der Roboter
auf das selektierte Objekt zubewegen. Bei Verdeckung des Objektes soll diese Bewegung ab-
gebrochen und auf ein erneutes Auftauchen des Objektes gewartet werden. Eine aktive Suche
nach einer Verdeckung oder dem Verschwinden des Objektes aus dem Bild ist vorerst nicht
vorgesehen. Der Roboter soll auf Hindernisse auf seinem Weg zum Objekt reagieren, das
heißt stehen bleiben und nachdem das Hindernis verschwunden ist die Bewegung fortsetzen.
Der Roboter soll die Verfolgung abbrechen, wenn er sich nah am Objekt befindet oder ein
Hindernis auftaucht.
Weiteren gibt es Umsetzungen für .NET, Java, Urbi und MatLab. Diese sind allerdings nicht
nativ auf dem Nao lauffähig, sondern nur zur Programmierung des Nao über ein externes
Gerät geeignet.
Nao
Bewegungs-
anweisung
Bild
Desktop-
Rechner
Selektion
des Objektes
durch Nutzer
Position
Welche
in Nao-
Tracking-
Bewegung
Methode?
umsetzen
Histogramm Feature
Tracking Tracking
Positions-
bestimmung
Desktop − Rechner
Abb. 4.1: Flussdiagramm der Umsetzung - Der Nao schickt ein Bild an den Desktop Rechner. Die Verarbeitung
der Bildinformationen, sowie das Tracking und die daraus abgeleitete Bewegungsanweisung erfolgt auf dem
Desktop Rechner. Dieser schickt die konkrete Bewegungsanweisung an den Nao.
bin mit dem höchsten Wert ermittelt (maxval). Dieser repräsentiert im selektierten Bildaus-
schnitt die dominante Farbe. Des Weiteren werden alle bins gezählt, die einen Wert kleiner
als drei haben (binsnull). Diese bins repräsentieren die Farbbereiche, die im selektierten Bild
eine untergeordnete Rolle spielen, oder garnicht vorkommen. Außerdem werden alle bins
gezählt, die einen Wert haben, der größer ist, als die Hälfte des maximalen bin-Wertes (half-
bins). Diese Werte repräsentieren Farbbereiche, die neben der dominanten Farbe mit einer
ähnlich hohen Häufigkeit existieren. Gibt es zu viele von ihnen, bedeutet das, dass im selek-
tierten Bildbereich mehrere Farben dominant sind. Sind nun maxval und binsnull größer als
jeweils ein bestimmter Schwellwert und halfbins kleiner als ein bestimmter Schwellwert, weist
das darauf hin, dass es im selektierten Bildbereich eine einzige dominante Farbe gibt. So-
mit ist dieser Bereich, also das vom Nutzer ausgewählte Objekt, für das histogrammbasierte
Tracking geeignet und es wird eingeleitet. Andernfalls wird die Anzahl der erkannten Features
im selektieren Bildausschnitt bestimmt. Ist diese Zahl größer als ein bestimmter Schwellwert
wird das featurebasierte Tracking initialisiert. Wenn sich im Bildausschnitt nicht genügend
Features befinden, wird auf eine erneute Selektion des Nutzers gewartet (Flussdiagramm des
Algorithmus, siehe Abbildung 4.2, Seite 37). Die Schwellwerte für diesen Algorithmus wurden
empirisch bestimmt.
Abb. 4.3: Die Abbildung zeigt gefundene ORB-Features im gesamten Bild. Die gelben Punkte entsprechen dabei
den gefundenen Features, die roten Punkte einem gefundenen Matching mit dem grauen Referenzobjekt rechts
oben im Bild. Features wurden nur auf der Zeitschrift entdeckt. Der Hintergrund, sowie der rote Würfel bieten
keine mit ORB erkennbaren Features.
BA von
RGB in HSV
konvertieren
Histogramm
berechnen
(20 bins)
binsnull >
12? nein
ja
halfbins
< 4? nein
ja
Features
maxval >
im BA >
10% BA? nein nein
75?
ja ja
Histogram- Feature-
basiertes basiertes
Tracking Tracking
Abb. 4.2: Entscheidungsfluss zur Auswahl des Trackingverfahrens - Nach der Selektion durch den Nutzer und der
anschließenden Konvertierung des Bildausschnittes in den HSV-Farbraum wird das Histogramm des Farbkanals
berechnet. binsnull ist die Anzahl derbins mit einem Wert kleiner als 8. halfbins ist die Anzahl der bins mit einem
Wert größer als die Hälfte des größten bin-Wertes. maxval ist der größte ermittelte bin-Wert.
BruteForce-Matching (siehe 3.3) mit den beiden Vektoren ausgeführt. Dieses Matching fin-
det für jedes Feature in descriptor_temp das Feature aus descriptor_scene, welches ihm am
ähnlichsten ist. Die errechnete Menge Features wird in einem neuen Vektor matches gespei-
chert. Dieser Vektor enthält die Indizes von Feature-Paaren aus descriptor_scene und des-
criptor_temp. Ist die Menge dieser Paare größer als ein gewisser Schwellwert, so wird nach
einer Homographie gesucht. OpenCV bietet dafür die Funktion findHomography() an, welche
versucht die Feature-Paare geometrisch aufeinander abzubilden. Dazu verwendet die Funk-
tion den RANSAC-Algorithmus (siehe 3.4.2) für eine erste Näherung und verfeinert diese
anschließend mit der Levenberg-Marquardt-Methode (siehe 3.4.3). Als Rückgabewert liefert
findHomography() die Homographie-Matrix, welche die Transformation der im Bildausschnitt
gefundenen Features zu den im gesamten Bild gefundenen Features beschreibt. Wenn eine
solche Matrix gefunden werden kann, bedeutet das, dass sich im Bild eine Menge von Featu-
res befindet, die der Menge der Features des vom Nutzer selektierten Bildausschnittes ähnelt.
Es wird nun davon ausgegangen, dass es sich dabei dann um dasselbe Objekt handelt.
Dieses Verfahren ist aufgrund seiner Berechnungsdauer (siehe 4.4) auf der Testhardware nicht
für den Echtzeitbetrieb geeignet. Deshalb wird es nur alle zehn Frames angewandt. In den
Frames dazwischen wird das Objekt mit der LKM verfolgt. Dazu wird in dem Bereich in dem
sich das mit ORB gefundene Objekt befindet GFTT (siehe 3.1.2) ausgeführt, um LKM zu initia-
lisieren. So kann das Objekt über den optischen Fluss im Bild verfolgt werden. Gehen durch
zu schnelle Bewegungen oder Framerate-Einbrüche zu viele Features für die LKM verloren,
wird automatisch ORB ausgeführt, um das Objekt wiederzufinden. Sind genügend Features
vorhanden, wird die Position des Objektes im Bild ermittelt (siehe 4.8).
Eine Illustration des hier beschriebenen featurebasierten Trackingverfahrens ist in Abbildung
4.4 zu finden.
4.8. Positionsbestimmung
Die Positionsbestimmung erfolgt bei beiden Trackingverfahren auf die gleiche Weise. Um
eine Menge von Punkten wird das kleinste Rechteck gesucht, dass diese Punkte einschließt.
Feature- Feature-
Start Detektion Detektion
ORB Objekt ORB Szene
BruteForce-
Matching
Homographie-
suche mit Anzahl
RANSAC und Matches
Levenberg- ja nein
>x?
Marquardt
Homo-
graphie? nein
ja
Lucas-
Kanade-
Methode alle 10 Frames
in jedem Frame
Genügend
Features? nein
ja
Positions-
bestimmung
Abb. 4.5: Die Abbildung illustriert die Wirkungsweise der OpenCV-eigenen erode-Funktion an einer Rückprojek-
tion. Gut zu erkennen ist, dass in Bild (b) kleine weiße Bereiche aus Bild (a) nicht mehr vorhanden sind. Des
Weiteren wirken die Konturen der Hand insgesamt geglättet.
Im Falle des histogrammbasierten Trackings sind das die Punkte der Kontur, die die größte
Fläche beinhaltet.
Beim featurebasiertem Tracking sind es die Punkte, die beim initialisieren der LKM von GFTT
gefunden werden. Um das kleinste, eine Punktmenge umschließende Rechteck zu finden,
biete OpenCV die Funktion boundingRect(). Der Mittelpunkt P des gefundenen Rechtecks
repräsentiert im Folgenden den Mittelpunkt des gesuchten Objektes.
eingebauten Sonarsensoren. Diese befinden sich links und rechts am Oberkörper. Wenn ei-
ner der Sensoren ein Hindernis entdeckt, befindet es sich entweder links oder recht von Nao.
Registrieren beide Sonarsensoren ein Hindernis befindet es sich direkt vor ihm. Die minimale
Distanz bei der der Nao die Bewegung abbrechen soll beträgt 35 cm. Dies kann jedoch nicht
immer gewährleistet werden, da die Informationen der Sonarsensoren sehr stark von der Be-
schaffenheit des Hindernisses abhängen. Die besten Ergebnisse liefern hier ebene Flächen,
die parallel zur Körperachse des Nao ausgerichtet sind, da sie die Schallimpulse des Sonar
gut reflektieren und die Reflexionen den Nao direkt erreichen.
Abb. 4.6: Die Abbildung zeigt die Einteilung des Gesamtbildes in zwei Zonen. Die innere, grün eingefärbte Zone
entspricht dabei dem “guten“ Bereich. Die äußere, rot eingefärbte Zone repräsentiert den “schlechten“ Bereich.
wieder durch Zone 1 bewegen, was einen Aufruf zur Vorwärtsbewegung zur Folge hat. Dieser
Aufruf wird allerdings erst nach dem Abarbeiten der vorangegangenen Bewegungsbefehle
eingeleitet. Zu diesem Zeitpunkt kann es allerdings sein, dass sich P nun auf der rechten
Seite außerhalb der Zone 1 befindet.
Der nicht-blockierende Aufruf verhindert dies, da er den aktuellen Bewegungsbefehl sofort
überschreibt. Somit lässt sich der Nao dynamischer steuern und er kann schneller auf Verän-
derungen im Bild reagieren.
5. Evaluierung/Experimente
Im folgenden Kapitel wird das entwickelte Tracking-System evaluiert. Dazu wurden Experimen-
te mit verschiedenen Objekten in unterschiedlichen Umgebungen durchgeführt. Des Weiteren
wurde das Tracking bei unterschiedlichen Bildauflösungen und daraus resultierend mit unter-
schiedlicher Bildrate (siehe 4.4) getestet.
Abb. 5.1: Die Abbildung zeigt die Testobjekte. Ball und Würfel sind die Objekte, für die das histogrammbasier-
te Tracking erfolgen soll. Die Zeitschrift und der Nao sollen mit Hilfe des featurebasierten Verfahrens getrackt
werden.
4
http://xsite.tu-freiberg.de
Abb. 5.2: Die Abbildung zeigt die einfache, kontrollierbare Testumgebung CAVE.
die entsprechenden Farbwerte in einigen zu dunklen oder zu hellen Frames nicht finden las-
sen. Des Weiteren ist es möglich, dass die Selektion in einem ungünstigen Frame falsche
oder ungenaue Histogrammwerte des Objektes für das Farbtracking liefert. Dies zeigt sich
beispielsweise in Abbildung 5.3 beim Würfel. Die Abbildung zeigt die Anzahl der dem Objekt
zugeordneten Pixel aus dem Bild zum Zeitpunkt des entsprechenden Frames. Die Messwerte
des Würfels (grüne Kreuze) zeigen eine große Zahl Ausreißer, die durch das Flackern der
Deckenbeleuchtung entsteht. Beim Ball (rote Kreuze) hingegen sind keine Ausreißer in diesem
Ausmaß zu erkennen, da hier bei der Selektion offensichtlich ein guter Frame getroffen wur-
de. Trotz der Probleme verliefen beide Tests erfolgreich. Es wurde das richtige Verfahren vom
Algorithmus gewählt und der Nao erreichte die beiden Objekte. Abbildung 5.3 zeigt eben-
falls, dass beide Messreihen ansteigen, das heißt mit fortlaufenden Frames mehr Pixel im Bild
dem Objekt entsprechen, was zu erwarten ist, wenn der Nao sich auf das Objekt zubewegt
und dieses im Bild größer wird.
Farbtracking CAVE
8000
Ball
7000 Würfel
6000
5000
Pixel
4000
3000
2000
1000
0
0 100 200 300 400 500 600
Frames
Beim featurebasierten Tracking konnten in der CAVE ebenfalls alle Objekte erreicht werden.
Die Zeitschrift wurde in 1,5 m Abstand aufgestellt, der andere Nao in 2 m. Beim Selektieren
konnten 83 (Zeitschrift 1,5 m) und 111 (Nao 2 m) Features erkannt werden. Da der Nao
größer als die Zeitschrift ist und starke Konturen aufweist, können mehr Features bei einem
größeren Abstand an ihm gefunden werden. Die Erhöhung des Abstandes der Zeitschrift auf
2m lässt ORB bei einer Auflösung von 320x240 Pixel nur noch 35 Features erkennen. Da als
untere Grenze für die Features im selektierten Bildausschnitt 75 Features gewählt wurde, wird
kein Tracking eingeleitet. Bei einer Auflösung von 640x480 Pixel und einem Abstand von 2 m
erhöht sich die Anzahl der erkannten Features auf 350. Aus diesem Grund wurde der Abstand
auf 3m vergrößert. Hier konnten noch 187 Features beim Selektieren der Zeitschrift erkannt
werden. Einher mit der Erhöhung der Auflösung geht eine starke Verringerung der Framerate.
140
120
Features
100
80
60
40
20
0
0 50 100 150 200 250 300 350
Frames
Abbildung 5.4 zeigt die Anzahl der mit der LKM verfolgten Features in allen drei Testfällen pro
Frame. Wie in 4.6 beschrieben, dient der mit ORB gefundene Bildausschnitt der Initialisierung
der LKM. Die Anzahl der Features, die mit LKM gefunden und verfolgt werden, sollte also
während des Trackings größer werden, da sich der Nao auf das Objekt zu bewegt und sich so
immer mehr Features im Bild erkennen lassen. Dies ist bei bei den Messreihen zur Zeitschrift
und zum Nao gut zu erkennen. Die Zahl der Features der Zeitschrift steigt stetig bis zum Ende
des Trackings. Die Anzahl der Features beim Nao gehen kurz ab Frame 250 zurück, da sich
der zu trackende Nao sehr nah am anderen Nao befindet und somit nicht mehr vollständig
von der Kamera erfasst werden kann. Beim Tracking mit der höheren Auflösung 640x480
Pixel ist anhand der Einbrüche der Features gut die extrem niedrige Framerate (ca. 2,5 fps) zu
erkennen. Es gehen immer wieder sehr viele oder alle mit KLM verfolgten Features verloren,
da sich in zwei aufeinander folgenden Bildern selten oder nie ähnliche Features finden lassen.
Zwei aufeinander folgende Bilder unterscheiden sich stark, weil die Framerate niedrig ist und
sich der Nao in der langen Zeit zwischen der Entstehung der Bilder weiterbewegt.
Abb. 5.5: Die Abbildung zeigt die Testumgebung Büro bei guten Bedingungen.
also wenig Licht, was sich besonders beim Tracken des Balls bemerkbar macht. In Abbildung
5.6 ist zu erkennen, dass sich bei etwa 60 Frames die Messwerte des Balls und des Würfels
schneiden. Am Ende des Trackings werden sogar bedeutend mehr Pixel vom Würfel erkannt,
als vom Ball. Dies ist eigentlich nicht zu erwarten, da der Ball größer ist als der Würfel und
somit beim gleichen Abstand mehr Fläche, das heißt Pixel im Bild einnehmen müsste. Da die
Beleuchtung hauptsächlich von Oben erfolgt, ist die untere Hälfte des Balls sehr dunkel. Des
Weiteren entstehen auf der glatten Oberfläche Glanzlichter, die wiederum zu hell sind, um
der Farbe des Balles zugeordnet zu werden. Dennoch konnten beide Objekte erreicht werden.
8000
Pixel
6000
4000
2000
0
0 20 40 60 80 100 120 140
Frames
Das featurebasierten Tracking lieferte bei diesem Szenario nur bei der 1,5 m entfernten Zeit-
schrift und dem Nao ein positives Ergebnis. Das Tracking der Zeitschrift bei 640x480 Pixeln
verlief fehlerhaft. Wie in Abbildung 5.7 zu erkennen ist, gibt es starke Einbrüche und keine
eindeutig wachsende Tendenz der Features. Die Einbrüche sind auf die geringe Framera-
te zurückzuführen. Im Gegensatz zu Abbildung 5.4 konnte ORB das Objekt ab Frame 150
nicht mehr wiederfinden. Dies kann zum einen daran liegen, dass die fehlerhaften LKM- bzw.
Optical Flow-Features den Nao von seinem korrekten Kurs abbringen und der zu trackende
Gegenstand aus dem Blickfeld gerät, andererseits birgt die Büro-Umgebung im Zusammen-
hang mit unscharfen Bildern (wegen geringer Framerate) ein größeres Fehlerpotential beim
ORB-Tracking.
120
Features
100
80
60
40
20
0
0 50 100 150 200 250 300
Frames
Abbildung 5.8 zeigt zum Vergleich die Gesamtzahl der vom ORB-Feature-Detektor gefunde-
nen Features im gesamten Bild. Im Büro-Szenario gibt es von Anfang an eine große Zahl
verfügbarer Features im Bild. Das macht das Matching und Finden der Homographie an-
fälliger gegenüber Fehlern und unerwünschten Abweichungen. Beim CAVE-Szenario gibt es
aufgrund des neutralen Hintergrundes anfangs nur wenige Features in der gesamten Szene.
Es werden jedoch immer mehr, während sich der Nao auf das Trackingziel zubewegt. Eine
einfache Umgebung vereinfacht also die Featuresuche- und Erkennung und verringert die
Fehleranfälligkeit des featurebasierten Trackings, wenn eine geringe Framerate vorliegt.
1200
Features
1000
800
600
400
0 50 100 150 200 250 300 350
Frames
Abb. 5.8: Anzahl der von ORB erkannten Features im gesamten Bild im Verlauf der Bewegung des Nao in Rich-
tung des anderen Nao in der CAVE und im Büro.
Abb. 5.9: Die Abbildung zeigt die Testumgebung Büro bei schlechten Bedingungen.
6000
5000
Pixel
4000
3000
2000
1000
0
0 100 200 300 400 500
Frames
Nachdem das featurebasierte Tracking im Büro mit guten Bedingungen und einer hohen
Auflösung bereits ein negatives Ergebnis lieferte, wurde hier auf diesen Versuch verzichtet. Alle
Experimente wurden demnach mit einer Auflösung von 320x240 Pixel und einer Framerate
von 11 fps durchgeführt. Abbildung 5.11 zeigt die Messdaten dieser Versuchsreihe. Neben
den bisherigen Tests der Zeitschrift auf 1,5 m und des Nao auf 2m, wurde hier ein weiterer
Test mit der Zeitschrift und einem Abstand von 2 m durchgeführt. Anzumerken ist hier, dass
der Nutzer das Objekt sehr großzügig markieren musste, da bei der geringen Auflösung
und der Größe der Zeitschrift sonst nicht genügend Features gefunden werden konnten. Alle
Versuche verliefen trotz schwieriger Lichtbedingungen erfolgreich.
80
Features
60
40
20
0
0 20 40 60 80 100 120 140 160 180 200
Frames
Der Versuch im Büro bei guten Bedingungen zeigt des Weiteren, dass das Farbtracking auch
von der Oberfläche des Objektes abhängt. Eine diffuse, nicht spiegelnde Oberfläche verein-
facht das Tracking gegegüber einer stark glänzenden Oberfläche. Ein geringes Rauschen der
Aufnahme und eine höhere Auflösung der Kamera könnten zudem dem Nutzer die Selektion
des Objektes erleichtern.
Abb. 5.12: Die Abbildung zeigt den Nao, der einem Pfad aus grünen Objekten folgt.
6. Zusammenfassung
In dieser Arbeit wurde ein System zur Steuerung eines humanoiden Roboters über verschie-
dene Objekttrackingverfahren entwickelt. Das Programm ermöglicht dem Nutzer ein unbe-
kanntes Objekt in einem vom Roboter stammenden Video-Stream zu markieren. Der Ro-
boter soll sich auf dieses Objekt zubewegen. Während der Bewegung wird das Objekt mit
einem entsprechenden Trackingverfahren im Bild verfolgt. Hierfür wurde in dieser Arbeit zu-
nächst ein Überblick über bestehende visuelle Trackingverfahren gegeben. Danach wurden
die theoretischen Grundlagen verwendeter Ansätze zur Objekterkennung, Objektverfolgung
und Positionsermittlung erläutert. Da das zu verfolgende Objekt unbekannt ist, wurden dabei
zwei verschiedene Tracking-Ansätze gewählt: eine featurebasierte Objekterkennung (ORB) in
Verbindung mit einer auf dem optischen Fluss basierenden Featureverfolgung (Lucas-Kanade-
Methode) und ein Verfahren, das auf der Segmentierung des Bildes anhand von Histogramm-
werten beruht.
Im nächsten Schritt wurde auf Basis dieser Theorie ein Lösungsansatz entwickelt und anschlie-
ßend umgesetzt. Neben der Implementierung der Trackingverfahren und der Ansteuerung
des humanoiden Roboters mussten auch Limitierungen der verwendeten Hardware beachtet
werden. Des Weiteren wurde der Roboter mit einem rudimentären System zur Kollisionsver-
meidung ausgestattet.
Die Evaluierung des implementierten Trackingansatzes ergab, dass in den angegebenen Test-
fällen immer das richtige Verfahren durch den Algorithmus zur Entscheidung über das pas-
sende Trackingverfahren gewählt wurde. Von den beiden Verfahren stellte sich das histo-
grammbasierte Trackingverfahren als robust gegenüber niedriger Framerate und Auflösung
heraus. In allen Experimenten konnten mit dieser Methode positive Ergebnisse erzielt werden.
Schwierige Lichtbedingungen, wie Flackern der Deckenbeleuchtung oder starkes Gegenlicht,
führten nur zu einer Verzögerung des Trackings.
Die featurebasierte Trackingmethode mit ORB und LKM stellte sich als robust gegenüber ver-
schiedenen Lichtbedingungen heraus. Jedoch ist sie stark abhängig von der Framerate und
der Auflösung des Bildes. Bei einer geringen Auflösung sollten sich die Objekte sehr nah
am Nao befinden oder so groß sein, dass sie einen großen Teil des Bildes einnehmen. Bei
höheren Bildauflösungen lassen sich auch weiter entfernte oder kleinere Objekte tracken, al-
lerdings sollte hier die Framerate mindestens 15 fps betragen, was vom Nao über Wi-Fi nicht
geleistet werden kann.
6.1. Fazit
Um ein markerloses Tracking unbekannter Objekte zu realisieren, wurden in dieser Arbeit
zwei grundsätzlich verschiedene Verfahren zur Objekterkennung- bzw. Verfolgung verwendet.
Da das zu trackende Objekt erst während der Laufzeit bekannt wird, kann ein passendes
Trackingverfahren für dieses Objekt ebenfalls erst zur Laufzeit gewählt werden. Diese dyna-
mische Auswahl erlaubt es, eine große Zahl verschiedener Gegenstände visuell zu verfolgen,
ohne sich dabei auf ein bestimmtes Merkmal der Gegenstände zu beschränken. Das ent-
wickelte Verfahren wurde an bestimmte Eigenheiten eines humanoiden Roboters, wie zum
Beispiel Wankbewegungen beim Laufen, angepasst und prototypisch implementiert. In Ex-
perimenten konnte gezeigt werden, dass die umgesetzte Kombination von histogramm- und
featurebasiertem Tracking funktionieren kann. Die Ergebnisse der einzelnen Verfahren sind
jedoch jeweils stark abhängig von Umgebungsbedingungen und verwendeter Hardware.
6.2. Ausblick
Um das bestehende Programm zu erweitern wären folgende Ansätze denkbar:
Erstellen einer Objektdatenbank: Dem Nutzer könnte die Möglichkeit gegeben werden, dem
Roboter während der Laufzeit Objekte “beizubringen“, also Features eines Objektes in einer
Datenbank zu speichern. Es wäre auch denkbar mehrere Feature-Sets für ein Objekt aus meh-
reren Perspektiven aufzunehmen. Das würde ein Wiedererkennen verschiedener vom Nutzer
selektierter Objekte ermöglichen. Mit dieser Methode ließe sich ebenfalls eine Gesichtserken-
nung realisieren.
Objektsuche nach Verschwinden: Ein Suchalgorithmus könnte dem humanoiden Roboter
eine aktive Suche des Objektes nach dem Verschwinden aus dem Bild ermöglichen. Es wäre
auch denkbar erlernte Objekte in einem Raum zu suchen.
Update des Feature-Templates: Nach der Selektion eines Objektes und der anschließenden
Bewegung auf dieses Objekt zu, kann es vorkommen, dass aufgrund der veränderten Distanz
zum Objekt Features verloren gehen oder andere Features erkannt werden. Dies erschwert
das Finden einer Homographie und daraus resultierend die Positionsbestimmung. Es könnte
ein Algorithmus entwickelt werden, der erkennt, wann zu viele Features des Objektes verloren
gehen oder verändert werden. Anschließend könnte ausgehend von der letzten “guten“ Posi-
tion ein neues Feature-Template angelegt werden. Kriterien für diese “gute“ Position müssen
vermutlich empirisch bestimmt werden.
Kombination mit weiteren Trackingverfahren: In einigen Anwendungsfällen können andere
als die verwendeten Trackingverfahren bessere Ergebnisse liefern. Für das Verfolgen von Ge-
sichtern eignet sich beispielsweise das CamShift-Verfahren besonders gut. Template-Matching
könnte eine rudimentäre Schrift- oder Zeichenerkennung ermöglichen. Für Zeichenerkennung
eignen sich auch markerbasierte Trackingverfahren. Diese können ebenfalls dazu verwendet
werden Entfernungen abzuschätzen.
Kollisionsvermeidung und Hindernis-Umgehung: Das Programm könnte durch ein SLAM-
Verfahren [LD91] erweitert werden, das ermöglicht, ein selektiertes Objekt zu verfolgen, auch
wenn es während der Bewegung durch ein Hindernis verdeckt wird. Der Roboter könnte die-
ses Hindernis umgehen und die Verfolgung des Objektes fortsetzen.
Interaktion mit Objekten: Wenn die Größe und Beschaffenheit von Objekten bekannt sind,
könnte der Verfolgung auch eine Interaktion mit dem Objekt folgen. So wäre es denkbar,
dass der Roboter das selektierte Objekt nach dem Erreichen greift, zum Ausgangspunkt der
Verfolgung zurückbringt und dort ablegt.
Portierung auf den Nao: Das entwickelte Trackingsystem könnte nach einem Softwareup-
date des Nao durch Aldebaran Robotics (aktuell OpenCV 2.2, benötigt mind. OpenCV 2.3)
direkt auf den Nao portiert werden. Dies hätte eine bedeutend höhere Framerate zur Folge,
bei gleichzeitig höherer Auflösung. Das histogrammbasierte Tracking könnte dann vor allem
von einer besseren, weil vereinfachten Objekt-Selektion durch den Nutzer profitieren. Das
featurebasierte Verfahren sollte hingegen zuerst auf Performanz getestet und gegebenenfalls
angepasst werden, da die Nao-eigene Hardware deutlich schwächer ist, als die des hier ver-
wendeten externen Rechners.
Nutzereingabe über iPad/Tablet: Für das bestehende System oder die direkte Portierung auf
den Nao kann die Nutzerein- und Ausgabe für iPad oder andere Tablets umgesetzt werden,
um eine intuitivere Bedienung zu ermöglichen.
A. Anhang
A.1. Roboter Nao
Technische Daten des Nao v4 H25 von Aldebaran Robotics:
• Körper
- Maße (H-B-T): 57,3 cm x 27,5 cm x 31,1 cm
- Gewicht: 5.2 Kg
- Material: Kunststoff (ABS-PC / PA-66 / XCF-30)
• Energieversorgung
- Netzteil: 100-240 V 50/60 Hz - Max. 1.2 A
- Batterie: Lithium-Ion 21.6 V/2.15 Ah
- Ladedauer: 5h Betrieb: 60 min (aktiver Betrieb), 90min (normaler Betrieb)
• interne Hardware
- CPU: Intel Atom Z530 1.6 GHz, 512 KB Cache
- RAM: 1 GB
- Flash-Speicher: 2 GB
- Micro SDHC: 8 GB
• Netzwerk
- Ethernet: 10/100/1000 base T
- WiFi: IEEE 802.11b/g
• Software
- OpenNAO - Gentoo-basierte Linux-Distribution
- Architektur: x86
- Programmierbarkeit: intern C++/Python; extern: C++/Python/.NET/Java/MatLab
• Kameras
- Anzahl: 2 übereinander, frontal am Kopf angebracht
- Ausgabe: 960p @ 30 fps
- Farbformat: YUV422
- Fokusbereich: 30 cm - unendlich
- Fokus: fest
• Sonstige Sensoren
- Infrarot-Sensor 2x frontal am Oberkörper
- Mikrofon 4x am Kopf
- Sonar Emitter 2x, Empfänger 2x
- Force Sensing Resistor (FSR) 4x an den Füßen
- Kontaktsensoren an Füßen, Händen, auf dem Kopf, am Oberkörper
- Gyrometer 2 Achsen
- Beschleunigungssensor 3 Achsen
Literatur
[Ald12a] Aldebaran Robotics. ALLandMarkDetection — NAO Software 1.12.5 documen-
tation. 2012. URL: http : / / www . aldebaran - robotics . com / documentation /
naoqi/vision/allandmarkdetection.html?highlight=landmark.
[Ald12b] Aldebaran Robotics. ALVideoDevice — NAO Software 1.12.5 documentation.
2012. URL: http://www.aldebaran- robotics.com/documentation/naoqi/
vision/alvideodevice.html#alvideodevice.
[BTG06] Bay, Herbert, Tuytelaars, Tinne und Gool, Luc van. SURF: Speeded Up Robust
Features. ETH Zurich und Katholieke Universiteit Leuven. 2006.
[BKS11] Boubou, Somar, Kouno, Asuki und Suzuki, Einoshin. „Implementing Camshift on
a Mobile Robot for Person Tracking and Pursuit“. In: 2011, S. 682–688.
[Bou00] Bouguet, Jean-Yves. Pyramidal Implementation of the Lucas Kanade Feature Tra-
cker Description of the algorithm. 2000.
[Bra98] Bradski, Gary R. Computer Vision Face Tracking For Use in a Perceptual User
Interface. Microcomputer Research Lab, Intel Corporation. 1998.
[BK08] Bradski, Gary R. und Kaehler, Adrian. Learning OpenCV. Computer vision with
the OpenCV library. 1. Aufl. Sebastopol und CA: O’Reilly, 2008. xvii, 555. ISBN:
0596516134.
[BBV00] Bruce, James, Balch, Tucker und Veloso, Manuela. Fast and Inexpensive Color
Image Segmentation for Interactive Robots. School of Computer Science, Carne-
gie Mellon University. 2000.
[Cal+10] Calonder, Lepetit, Strecha und Fua. BRIEF: Binary Robust Independent Elementary
Features. 2010.
[Car06] Carl Zeiss AG. Visuelle Wahrnehmung. Hrsg. von Innovation 17, Carl Zeiss AG.
2006.
[DP73] Douglas, David H. und Peucker, Thomas K. „Algorithms for the reduction of the
number of points required to represent a digitized line or its caricature“. In:
Cartographica: The International Journal for Geographic Information and Geovi-
sualization 10 (2 1973), S. 112–122. ISSN: 0317-7173.
[Esc13] Eschenburg, Jonas. „Optisches Kameratracking anhand natürlicher Merkmale“.
Institut für Informatik. Diplomarbeit. Augsburg: Universität Augsburg, 2006-04-
13. 68 S.
[FH75] Fukunaga, K. und Hostetler, L. „The estimation of the gradient of a density functi-
on, with applications in pattern recognition“. In: IEEE Transactions on Information
Theory 21 (1 1975), S. 32–40. ISSN: 0018-9448.
[GOM10] GOM mbH. Application Example: Automated Robot Inspection Cell for Quality
Control on Sheet Metal Components. 2010.
[Ham50] Hamming, W. R. Error Detecting and Error Correcting Codes. 1950.
[HS88] Harris, Chris und Stephens, Mike. A Combined Corner and Edge Detector. 1988.
[HZ04] Hartley, Richard I. und Zisserman, Andrew. Multiple view geometry in computer
vision. 2nd ed., 10th print. Cambridge: Cambridge University Press, 2004. XVI,
655 s. ISBN: 0521540518.
[HS81] Horn, Berthold K.P. und Schunck, Brian G. Determining Optical Flow. 1981.
[JN12] JPL und NASA. Mars Science Laboratory. 2012. URL: http://mars.jpl.nasa.
gov/msl/.
[Kaw+02] Kawai, Yoshihiro, Fukase, Yutaro, Ikeno, Ishiyama und Tomita. „Development of
the Vision System for the HRP-2P Humanoid Robot“. In: (2002).
[Lag11] Laganière, R. OpenCV 2 computer vision application programming cookbook.
Over 50 recipes to master this library of programming functions for real-time
computer vision. Birmingham und UK: Packt Pub., 2011. 1 online resource (iii,
287. ISBN: 1849513252.
[LD91] Leonard, J.J und Durrant-Whyte, H.F. „Simultaneous Map Building and Localiza-
tion for an Autonomous Mobile Robot“. In: Proc. IEEE Int. Workshop on Intelligent
Robots and Systems. Osaka und Japan, 1991, S. 1442–1447.
[LCV10] Liemhetcharat, Somchaya, Coltin, Brian und Veloso, Manuela. Vision-Based Co-
gnition of a Humanoid Robot in Standard Platform Robot Soccer. School of Com-
puter Science, Carnegie Mellon University. 2010.
[LM02] Lienhart, Rainer und Maydt, Jochen. An Extended Set of Haar-like Features for
Rapid Object Detection. Intel Labs, Intel Corporation. 2002.
[Low04] Lowe, David G. „Distinctive Image Features from Scale-Invariant Keypoints“. In:
International Journal of Computer Vision 60 (2 2004), S. 91–110. ISSN: 0920-
5691.
[LK81] Lucas, Bruce D. und Kanade, Takeo. An Iterative Image Registration Technique
with an Application to Stereo Vision. 1981.
[MGH12] Marquez-Valle, Patricia, Gil Debora und Hernandez-Sabate Aura. Error Analy-
sis for Lucas-Kanade Based Schemes. Computer Vision Center and Computer
Science Department, Campus UAB. 2012.
[Mat+02] Mata, J., Chum, O., Urban, M. und Pajdla T. RobustWide Baseline Stereo from
Maximally Stable Extremal Regions. Center for Machine Perception, Dept. of Cy-
bernetics und CVSSP. 2002.
[Met11] Metaio. UnifeyeSDK Tracking Configuration, Marker Tracking. 2011. URL: http:
//docs.metaio.com/bin/view/Main/UnifeyeSDKTracking%5C-Configuration%
5C-Marker%5C-Tracking.
[Min62] Ming-Kuei Hu. „Visual pattern recognition by moment invariants“. In: IEEE Tran-
sactions on Information Theory 8 (2 1962), S. 179–187. ISSN: 0018-9448.
[Mor77] Moravec, Hans P. Techniques Towards Automatic Visual Obstacle Avoidance. 1977.
[ML09] Muja, Marius und Lowe, G. David. Fast approximate nearest neighbors with au-
tomatic algorithm configuration. 2009.
[Ros98] Rosin, P. L. Measuring Corner Properties. 1998.
[RD06] Rosten, Edward und Drummond, Tom. „Machine learning for high-speed cor-
ner detection“. Department of Engineering, Cambridge: Cambridge University,
2006. 14 S.
[Rub+12] Rublee, Ethan, Rabaud, Vincent, Konolige, Kurt und Bradski, Gary. ORB: an effi-
cient alternative to SIFT or SURF. 2012.
[Sán09] Sánchez, Tomás Gonzáles. Artificial Vision in the Nao Humanoid Robot. Master
Thesis. Department of Computer Science and Mathematics, Universitat Povira I
Virgili. 2009.
[ST94] Shi, Jianbo und Tomasi, Carlo, Hrsg. Good features to track - Computer Vision
and Pattern Recognition. 1994. 8 S.
[Sin10] Sinha, Utkarsh. AIShack.in. 2010. URL : http://www.aishack.in/2010/05/the-
shi-tomasi-corner-detector/.
[Sum+01] Sumi, Yasushi, Kawai, Yoshihiro, Yoshimi, Takashi und Tomita, Fumiaki. 3D Ob-
ject Recognition in Cluttered Environments by Segment-Based Stereo Vision. 2001.
[Suz85] Suzuki, Satoshi. Topological Structural Analysis of Digitized Binary Images by Bor-
der Following. 1985.
[TK02] Taylor, Geoffrey und Kleeman, Lindsay. Grasping Onknown Objects with a Hu-
manoid Robot. Intelligent Robotics Research Centre, Department of Electrical and
Computer Systems Engineering, Monash University. 2002.
[Tom+98] Tomita, F., Yoshimi, T., Ueshiba, T., Kawai, Y., Sumi, Y., Matsushita, T., Ichimu-
ra, N., Sugimoto, K. u. a. „R&D of versatile 3D vision system VVV“. In: 1998,
S. 4510–4516.
[Tri] Triplesense GmbH / Hanauer Landstrasse 184 / 60314 Frankfurt. Vorwerk – Sau-
groboter Kobold VR100. de. URL: http://kobold.vorwerk.de/de/produkte/
saugroboter-kobold-vr100/.
[VJ01] Viola, Paul und Jones, Michael. Rapid Object Detection using a Boosted Cascade
of Simple Features. Mitsubishi Electric Research Labs und Compaq CRL. 2001.
[WLS08] Wagner, Daniel, Langlotz, Tobias und Schmalstieg, Dieter. „Robust and unobtru-
sive marker tracking on mobile phones“. In: 2008, S. 121–124.
[WHC10] Wang, Yin-Tien, Hung, Duen-Yan und Cheng, Sheng-Hsien. Monocular SLAM for
a Small-Size Humanoid Robot. Department ofMechanical and Electro-Mechanical
Engineering, Tamkang University. 2010.
[WH60] Widrow, Bernard und Hoff, E. Marcian. Adaptive Switching Circuits. 1960.
[Yok+03] Yokoyama, Kazuhiko, Handa, Hiroyuki, Takakatsu Isozumi, Yutaro Fukase und
Kenji Kaneko. Cooperative Works by a Human and a Humanoid Robot. 2003.