Formbasierte Ballerkennung für humanoide Fußball

Transcrição

Formbasierte Ballerkennung für humanoide Fußball
Bachelorarbeit
Formbasierte Ballerkennung für humanoide
Fußball-Roboter
Max Maria Losch
Freie Universität Berlin
Fachbereich Mathematik und Informatik
Institut für Informatik
Bachelorarbeit
Formbasierte Ballerkennung für humanoide
Fußball-Roboter
von
Max Maria Losch
[email protected]
Berlin, den 31. August 2012
Gutachter:
Betreuer:
Prof. Dr. Raúl Rojas
Dr. Hamid Reza Moballegh
Zusammenfassung
Diese Bachelorarbeit befasst sich mit der Entwicklung eines Algorithmus zur formbasierten Ballerkennung für Fußball spielende, humanoide Roboter im RoboCup Kontext. Die
Regeln des RoboCups werden jährlich um bestimmte Punkte erschwert, um neue Methoden
zu erproben und dem Ziel näher zu kommen, bis zum Jahr 2050 gegen den Menschen als
Gegner zu gewinnen. Ein nächster Schritt in diese Richtung ist das Erkennen eines Balls
beliebiger Farbe mit beliebigem Muster, da der Ball bisher anhand seiner spezifischen Farbe
detektiert wurde.
Der in dieser Arbeit vorgestellte Algorithmus basiert auf der Idee, einen Ball anhand seiner Kantenrichtungen zu erkennen. Bei einem Ball wird angenommen, dass alle Kantenrichtungen vorkommen und diese gleichverteilt sind. Ziel ist es, diese Idee möglichst gut
auszubauen, sodass die Ballerkennung eine gute Erkennungsrate und eine geringe Laufzeit
erreicht.
iii
Inhaltsverzeichnis
1
Einleitung
1.1
1.2
1.3
1.4
1.5
2
2.2
2.3
2.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Strukturen im Bild erkennen . . .
2.1.1 Farben . . . . . . . . . .
2.1.2 Helligkeitsunterschiede . .
2.1.3 Gradienten . . . . . . . .
Kantendetektion im Detail . . . .
Hough-Transformation für Kreise
Verwandte Arbeiten . . . . . . . .
2.4.1 RoboCup-Domäne . . . .
2.4.2 Fremde Domänen . . . . .
3.2
3.3
1
2
3
4
4
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formbasierte Ballerkennung
3.1
4
.
.
.
.
.
Grundlagen
2.1
3
1
Motivation . . . . . . . . . . . . . .
RoboCup . . . . . . . . . . . . . .
Die Technical Challenge „Dribbling“
Berlin United - FUmanois . . . . .
Wie Roboter sehen . . . . . . . . .
Anforderungen . . . . . . . . . . . . .
3.1.1 Universalität . . . . . . . . . .
3.1.2 Qualität . . . . . . . . . . . . .
3.1.3 Performance . . . . . . . . . .
Konzept . . . . . . . . . . . . . . . . .
3.2.1 Kantendetektion . . . . . . . .
3.2.2 Hypothesensuche . . . . . . . .
3.2.3 Verifizierung . . . . . . . . . .
Optimierung . . . . . . . . . . . . . . .
3.3.1 Optimieren der Kantendetektion
3.3.2 Integrales Histogrammbild . . .
3.3.3 Rekursive Suche . . . . . . . .
3.3.4 Kandidatenverifizierung . . . .
6
6
7
9
11
15
17
17
19
20
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
20
21
21
21
22
23
26
28
28
34
36
37
Auswertung
41
4.1
4.2
41
42
Laufzeitanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Erkennungsrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
Inhaltsverzeichnis
5
Fazit
5.1
5.2
6
43
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vor- und Nachteile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
43
Ausblick
45
6.1
6.2
6.3
45
45
45
Verbesserungsmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anwendbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alternativen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
v
1 Einleitung
1.1 Motivation
Die RoboCup - Initiative sieht vor, dass humanoide Roboter bis zum Jahr 2050 gegen Menschen im
Fußball gewinnen [Rob12a]. Dabei sollen sie unter Einhaltung der offiziellen FIFA-Regeln spielen. Um
dieses Ziel zu erreichen werden die RoboCup-Regeln immer weiter angeglichen. 2012 wurde daher die
Technical Challenge „Dribbling“ der Kid-Size-Liga um den Einsatz eines Balls beliebiger Farbe erweitert
[Rob12b]. In dieser Challenge muss der Roboter den Ball um Hindernisse und schlussendlich in das Tor
dribbeln können.
Das Entwickeln eines Algorithmus um Bälle unabhängig von der Farbe und damit formbasiert zu
erkennen ist Thema dieser Arbeit. Sie basiert auf einem Methodenvorschlag der Dissertation von Hamid
Reza Moballegh [Mob11].
Abb. 1.1: Aufbau des Fußballfelds 1
Humanoide Roboter oder allgemeiner die künstliche Intelligenz ist ein Thema, das die Informatik seit
Jahrzehnten intensiv beschäftigt. Ein elementares Teilgebiet davon ist das Sehen, welches analog zum
menschlichen Auge mit Kameras geschehen kann. Das Sehen ist eine der komplexesten Aufgaben, die
das menschliche Gehirn mit erstaunlicher Genauigkeit vollbringt. Das Auswerten von Kamerabildern ist
demzufolge ein anspruchsvolles Thema, vor allem wenn versucht werden soll, die Erkennung auch bei
erschwerten Bedingungen, wie in dunklen Räumen zu gewährleisten.
Auch bei den humanoiden Fußballrobotern spielt das Sehen eine grundlegende Rolle, da dass Auswerten von Kamerabildern die einzige Möglichkeit der Orientierung auf dem Spielfeld ist. Denn nur dadurch
können Objekte wie Tore, Gegner oder Bälle erkannt und lokalisiert werden.
1 Quelle:
[Rob12b, Seite 4]
1
1 Einleitung
Abb. 1.3: Aldebaran NAO 2
Abb. 1.4: NimbRo Teen-Size 3
1.2 RoboCup
1997 wurde die wissenschaftliche Initiative RoboCup mit dem ultimativen Ziel gegründet, Menschen
als Gegner im Fußball unter den offiziellen FIFA-Regeln, bis zum Jahr 2050, zu besiegen. Seit dem
hat sich der jährlich stattfindende RoboCup zu einem der wichtigsten Events für die Wissenschaft der
künstlichen Intelligenz und der autonomen Roboter entwickelt. Dabei gibt es heute nicht mehr nur das
Gebiet des Fußballs, sondern auch neue Gebiete wie zum Beispiel Home sind hinzukommen, in welchen
Roboter entwickelt werden, welche den Menschen beim alltäglichen Haushalt unterstützen sollen. Die
damit verbundenen Wettkämpfe erweitern jährlich die Grenzen der autonom agierenden Roboter und
beeinflussen damit auch die Einsetzbarkeit für kommerzielle Bereiche [Bos12].
Abb. 1.2: Logo der RoboCup Initiative
Die RoboCup-Liga Soccer umfasst mehrere kleinere Ligen, in denen Teams aus der ganzen Welt
ihre Roboter im Fußball gegeneinander antreten lassen. Sie unterteilt sich in die Bereiche Simulation,
Small Size, Mid Size, Standard Platform League (SPL) und Humanoid League. Die Small- und Mid Size
Ligen spielen mit Robotern, welche sich auf Rädern und Rollen fortbewegen und sind auf Grund der
vereinfachten Fortbewegungsart besonders weit in taktischem Verhalten und Koordination im Team. Die
Simulationsliga simuliert komplette Spiele mit Robotern.
In der SPL und der Humanoid League hingegen, treten Roboter mit menschlichen Proportionen und
Merkmalen an, wobei in der SPL nur der gleiche Typ verwendet wird. Bei diesem handelt es sich um den
Aldebaran NAO, bei dem die Software von den Teams jedoch eigenständig entwickelt werden muss. In
2
1 Einleitung
der humanoiden Liga können dagegen jegliche Roboter teilnehmen, solange sie mit den RoboCup - Regeln konform sind. Ausgeschlossen ist hier nur die Verwendung der SPL-Roboter. Die von der Initiative
festgelegten Regeln werden jährlich immer stärker an menschliche Proportionen angepasst. Vorher große
quadratische Füße oder zu lange Arme sind z.B. Merkmale von Robotern, welche noch vor einigen Jahren häufig von Teams verwendet wurden, um unter anderem die Stabilität beim Laufen zu erhöhen. Die
stetige Verschärfung der Regeln zwingt die Teilnehmer ihre Forschungen voranzutreiben und vermischt
die Chancen von bisher schlechten oder guten Teams auf jedes Jahr erneut.
Die schon angesprochene Vielseitigkeit beim RoboCup ergibt sich auch aus der Unterteilung der humanoiden Liga in drei weitere Klassen. Die Kid-Size-Klasse beinhaltet dabei Roboter der Größe (30 60cm), Teen-Size (100 - 120cm) und Adult-Size (>130cm).
Dabei ist die Kid-Size-Klasse die am schnellsten fortschreitende Klasse, in welcher bis zu 3 Roboter
pro Team antreten. Aufgrund der niedrigen Bauhöhe und des leichten Gewichts, sind die ausgetragenen
Spiele bereits relativ schnell.
Neben den regulären Fußball-Wettkämpfen, gibt es noch zusätzliche Herausforderungen, sogenannte Technical Challenges, welche den Robotern neue Fertigkeiten beibringen sollen. Die Absicht dieser
Technical Challenges ist die Vorbereitung auf zukünftige Regeln und die Erprobung dieser Fertigkeiten.
In der Kid-Size-Liga gab es im offiziellen RoboCup 2012 insgesamt 4 verschiedene Technical Challenges: Einwurf, Doppel-Pass, Hochschuss und Dribbling um Hindernisse. Das am besten abschneidende
Team beim RoboCup erhält den Titel "Best Humanoid", muss dafür aber auch gute Ergebnisse bei den
Technical Challenges erreicht haben.
Die Technical Challenge "Dribbling" wurde für 2012 um den Einsatz eines Balls beliebiger Farbe
erweitert.
1.3 Die Technical Challenge „Dribbling“
In der Dribbling-Challenge werden sechs schwarze Gegenstände von 20cm Durchmesser und 90cm Höhe
zufällig auf dem Spielfeld verteilt. Dabei beträgt der Abstand zwischen den Gegenständen mindestens
50cm. Der Schiedsrichten wählt vor Anpfiff einen Ball beliebiger Farbe und beliebigen Musters aus und
legt ihn vor den Roboter in den zentralen Kreis des Spielfelds. Ab diesem Zeitpunkt wird dem Roboter
eine beliebige Zeit zum initialen erkennen des Balls gewährleistet. Währenddessen, darf der Roboter
aber nicht programmiert werden.
Nach Anpfiff muss der Roboter den Ball auf möglichst kurzem Wege durch die Hindernisse und ins
Tor dribbeln. Die Challenge gilt als gewonnen, wenn der Roboter die Torlinie berührt und der Ball vollständig im Tor ist.
Die Größe des zufällig ausgewählten Balls in der Kid-Size-Liga beträgt etwa 7cm und ist von gleicher
Masse und ähnlicher Oberfläche wie der eines Standard-Tennisballs (siehe Abbildung 1.5). Zur Farbe des
Balls wird in den RoboCup-Regeln lediglich die Zusicherung gemacht, dass weder eine ähnliche Farbe
zum Feld noch eine ähnliche Farbe zum bisher eingesetzten, orangenen Ball verwendet wird [Rob12b].
3 Quelle:
http://www.aldebaran-robotics.com/en/Discover-NAO/images-gallery.html#
!ARGallery%5Bgallery1%5D/5/
3 Quelle:
http://www.ais.uni-bonn.de/nimbro/Humanoid/images/RC12/RC12_NimbRo_vs_
DARwIn-XOS_1.jpg
3
1 Einleitung
Abb. 1.5: Standardball der Kid-Size-Liga
1.4 Berlin United - FUmanois
Das Berlin United - FUmanoids - Team ist ein studentisches Projekt der Freien Universität Berlin, in
der Gruppe Künstliche Intelligenz. Entstanden im Jahr 2006, nehmen sie seit 2007 mit ihren eigens
entworfenen humanoiden Robotern an den offiziellen RoboCup-Wettkämpfen in der Kid-Size-Liga teil.
Seitdem konnten sie viele der Wettkämpfe sehr erfolgreich abschließen. Zu nennen sind dabei der 3.
Platz in den USA im Jahr 2007 des ersten Antritts, den 1. Platz bei den Iran Open von 2008 bis 2011 und
viele mehr [FUm12]. Das Entwickeln von humanoiden Fußball spielenden Robotern bietet eine große
Abb. 1.6: Logo der Berlin United - FUmanoids
Bandbreite an erforschbaren Gebieten. Mechanik, Lokalisierung, Vision und weitere Gebiete treiben
noch wenig untersuchte Themen der Robotik voran.
Das Gebiet der Mechanik und der Hardware bei den Berlin United - FUmanoids brachte dieses Jahr
die 5. Generation von Robotern hervor, welche nicht nur leichter und damit stabiler sind, sondern auch
auf Grund eines stärkeren Prozessors Algorithmen schneller ausführen können und damit auch genügend
Leistungsreserven für komplexere Aufgaben besitzen.
1.5 Wie Roboter sehen
Roboter können ihre Umwelt mit einer Vielzahl verschiedener Sensoren wahrnehmen. Dazu zählt das
Aussenden von Laser- oder Ultraschallimpulsen, welche eine gute Rekonstruktion der Umwelt in einem
dreidimensionalen Koordinatensystem ermöglichen, da sie die Entfernung zu jedem Punkt im Raum
messen. Diese Art von Sensorik ist gut geeignet um Hindernisse zu erkennen, nicht jedoch um Farben
oder Helligkeiten zu unterscheiden. Farben und Helligkeiten lassen sich mit Bildsensoren erfassen, welche das einfallende Licht auf eine Ebene abbilden.
4
1 Einleitung
Der Aufbau des Roboters und damit auch die Art wie der Roboter seine Umwelt wahrnehmen darf, ist
in den RoboCup-Regeln festgelegt. Diese besagen, dass der Roboter nur Sinne besitzen darf, welche den
Sinnen des Menschen entsprechen [Rob12b]. Aus diesem Grund beschränkt sich die visuelle Sensorik
auf Kameras, welche die Augen imitieren.
Eine naheliegende Entwicklung wäre der Einsatz von zwei Kameras um räumliches Sehen zu ermöglichen. Da der Rechenaufwand für die Auswertung von zwei Bildern jedoch zu hoch für die aktuell
eingesetzte Hardware ist, beschränkt sich das Sehen bei den Robotern der Berlin United - FUmanoids
auf eine Kamera. Aufgrund der dem Roboter bekannt gemachten Umgebung beim Spiel, ist räumliches
Sehen jedoch nicht notwendig, hätte aber den Vorteil der Tiefenwahrnehmung. Die eingesetzte Kamera
ist in Abbildung 1.7 zu sehen und befindet sich, dem Menschen nicht unähnlich, auf dem Oberkörper des
Roboters.
Abb. 1.7: Roboter 2012
Bei der eingesetzten Kamera handelt es sich um eine Logitech Quickcam C910 mit einer Auflösung
von 640x480 Pixeln. Je nach Lichtverhältnis der Umgebung kann sie bis zu 30 Bilder pro Sekunde liefern
[SOK+ 12]. Das Ausgabeformat der Kamera ist YCbCr (siehe Kapitel 2.1.1).
5
2 Grundlagen
Bevor das Konzept der formbasierten Ballerkennung vorgestellt wird, wird in diesem Kapitel eine Übersicht über einige der wichtigsten Methoden zur Objektdetektion präsentiert. Einige davon werden im
Anschluss auch für diesen Anwendungsfall verwendet und verbessert. Besondere Aufmerksamkeit soll
dem Erzeugen von Kanten gelten, welche im Anschluss die Grundlage für die Balldetektion darstellen
werden.
2.1 Strukturen im Bild erkennen
Das Kamerabild stellt Farben und Helligkeitswerte als Basisinformationen bereit. Mit diesen lassen sich
durch verschiedenste Verfahren Strukturen extrahieren, welche sich wiederum als Objekte interpretieren
lassen. Die gängigsten Methoden beschränken sich auf die Zuordnung von Farben zu Objekten, den Vergleich von Helligkeitswerten oder dem Bestimmen und Auswerten von Kanten.
2.1.1 Farben
Wenn in der Bildverarbeitung vom Begriff Farbe gesprochen wird, ist meist ein Tripel gemeint, welches die Farbe in einem Farbraum definiert. Mit diesen Farbräumen werden, die durch das Licht für den
Menschen visuell wahrnehmbaren Reize abgebildet. Der bekannteste Farbraum ist der RGB-Farbraum,
bestehend aus den Komponenten Rot, Grün und Blau. Dieser wurde zur Darstellung von Farben in Bildschirmen entworfen, da nur durch Intensitätsjustierungen der drei Grundfarben, alle wahrnehmbaren
Farben dargestellt werden können.
Jeder Farbraum erfüllt in bestimmten Domänen einen spezifischen Zweck. Der YCbCr-Farbraum zum
Beispiel , bestehend aus den Komponenten Helligkeit (Y), Blau-Gelb-Sättigung (Cb) und Rot-GrünSättigung (Cr) (siehe Abbildung 2.1), lässt sich auf Grund der Eigenschaften des menschlichen Sehsinns
Farbunterabtasten. Der menschliche Sehsinn kann leichter zwei Helligkeiten, als zwei Farbtöne unterscheiden. Das Farbunterabtasten macht sich dies zu nutze und speichert z.B. für zwei Pixel zwei Y-, aber
nur je einen Cb- und Cr-Wert. Auf diese Weise können ohne subjektiven Verlust die Hälfte an Informationen gespart werden. Der YCbCr-Farbraum wird auch von den Berlin United - FUmanoids verwendet,
da er von der Kamera geliefert wird. Um nun Farben als Grundlage der Objekterkennung verwenden zu
können, benötigt es Methoden, welche die Unterschiede zwischen zwei oder mehreren Werten bestimmt
(siehe Seite 7 und 9) oder bestimmte Farben anhand von Farbraum-Teilmengen klassifiziert.
1 Quelle:
Christoph Peters, http://en.wikipedia.org/wiki/File:YCbCrColorSpace_Perspective.png
, CC0 1.0
6
2 Grundlagen
Abb. 2.1: YCbCr - Farbraum 1
Die Teilmengen-Klassifizierung kann relativ einfach umgesetzt werden. Soll zum Beispiel ein roter
Ball extrahiert werden, kann im YCbCr Farbraum eine Teilmenge selektiert werden, welche die rötlichen
Farben abdeckt. Alle Punkte im Bild, welche Elemente dieser Menge sind, werden als Rot und damit als
Ball markiert. Das Bestimmen der Teilmengen kann auf zwei verschiedene Arten geschehen.
Manuelles Bestimmen führt zu festen Teilmengen, welche nur für sich sehr wenig verändernde Lichtverhältnisse funktioniert. Ändern sich die Lichtverhältnisse schon in geringem Maße, müssen die Teilmengen gänzlich neu bestimmt werden, da nicht mehr alle Farbtöne abgedeckt sind. Bei schlecht ausgeleuchteten oder überbelichteten Umgebungen, sammeln sich die Farben des Bildes nur in einem kleinen
Bereich des Farbraums (siehe Abbildung 2.2b). Hier ist das Zuordnen von Farben erschwert und in den
schlimmsten Fällen gar nicht mehr möglich, da die Farben so stark verlaufen, dass keine ausreichende
Abgrenzung durch die Teilmengen möglich ist. Neben der Bestimmung der Farbräume ist also auch ein
gut belichtetes Kamerabild elementar.
Das Umgehen der manuellen Bestimmung der Teilmengen lässt sich mit dynamischer Schwellwertanpassung lösen. Die Berlin United - FUmanoids benutzen seit 2012 ein sich automatisch kalibrierenden
Algorithmus zur Detektion von Feld, Toren, Seitenpfosten, Ball und Hindernissen. Er wurde im Rahmen
einer Masterarbeit von Lisa Dohrmann entwickelt [Doh12]. Erneut die Detektion des Balls betrachtet,
klassifiziert der Algorithmus von Dohrmann zwar ebenso mit Hilfe einer Teilmenge, welcher jedoch auf
dem HSV-Farbraum definiert ist. Der HSV-Farbraum definiert eine Farbe anhand seines Farbtons, der
Sättigung und der Helligkeit. Da die Farbe des Balls bekannt ist, kann demnach ein Intervall auf dem
Farbton festgelegt werden. Um sich nun automatisch an die Lichtverhältnisse anpassen zu können, ist das
Intervall zu Beginn großzügig definiert, deckt also einen großen Farbtonbereich ab. Wurde ein Ball gefunden, wird der am häufigsten vorkommende Bereich bestimmt und das ursprünglich gesetzte Intervall
darauf angepasst.
2.1.2 Helligkeitsunterschiede
Eine weitere Möglichkeit, Objekte zu erkennen, ist das Vergleichen von durchschnittlichen Helligkeitsoder Farbwerten in disjunkten Bildregionen. Um damit ein Objekt zu klassifizieren, muss ein Durchschnittswert größer oder kleiner als der andere sein. Diese Methode wurde erstmals von Papageorgiou,
Oren und Poggio zur Detektion von Gesichtern eingeführt [POP98]. Inzwischen wird die Methode in der
7
2 Grundlagen
(a) Gut beleuchtetes Spielfeld
(b) Schlecht beleuchtetes Spielfeld
Abb. 2.2: YCbCr Farbverteilung von zwei unterschiedlichen beleuchteten Spielfeldern
Abbildungserläuterung:
Weiße Achse: Y
Blaue Achse: Cb
Rote Achse: Cr
Bildverarbeitung häufig angewendet, da sie sich relativ einfach übertragen lässt.
Das Vergleichen von Helligkeitswerten von Flächen lässt sich formell zusammenfassen. Im folgenden
werden dabei die Hell-Dunkel-Flächen als Haar-like Feature bezeichnet.
AD :
AH :
YD :
YH :
θ:
Dunkle Fläche
Helle Fläche
Durchschnittlicher Intensitätswert von AD
Durchschnittlicher Intensitätswert von AH
Schwellwert
Wert(pixel)
∑
YD =
pixel∈AD
YH =
pixel∈AH
AD
Wert(pixel)
∑
AH
Klassi f ikator(YD ,YH , θ ) :=
−1 f alls YH −YD < θ
1
sonst
(2.1)
Abbildung 2.3a, 2.3b und 2.3c illustriert eine stark vereinfachte Methode, mit durchschnittlichen Helligkeitswerten von Flächen einen Ball zu erkennen. Abbildung 2.3b ist der Extrahierte Cr-Teil des Bildes
2.3a, auf welchem sich die Haar-like Features für dieses Beispiel am deutlichsten anwenden lassen. Liegt
wie hier ein rotes Objekt vor, liefert der Cr Teil einen hellen Wert für rötliche Werte und einen dunklen
für die umgebenden grünen Werte. Ein einfacher Klassifikator könnte nun aus einer Kreisfläche, welche
helle Intensitätswerte erwartet, und einer Ringfläche, welche dunkle Werte erwartet (folglich Abbildung
2.3c), bestehen. Der rote Ball lässt sich daraufhin sehr einfach durch Gleichung (2.1) bestimmen. Um
einen Ball in einem beliebigen Bild zu erkennen, bewegt man den Klassifikator über jeden Pixel, um jede
mögliche Position des Balls abzudecken.
8
2 Grundlagen
(a) Ball (YCbCr-Farbraum)
(b) Cr - Teil des Bildes
(c) Applikation der Hell-Dunkel
Flächen
Abb. 2.3: Exemplarische Balldetektion mit Hell-Dunkel-Flächen
Ein Problem dieser Methode ist, dass das Muster, welches zur Detektion eines Objekts zuständig ist,
nur für eine feste Skalierung funktioniert. Dies impliziert, dass das Muster für einen großen Bereich an
Skalierungen auf das Bild angewendet werden muss. Zusätzlich fällt bei der Detektion das Berechnen
der durchschnittlichen Intensitätswerte ins Gewicht, welche je nach Flächenkomplexität zu einem sehr
hohen Aufwand führen kann. Der Klassifikator des roten Balls als Beispiel führt in einer Abschätzung
zu folgender Komplexität:
t:
c1 :
c2 :
n:
m:
Anzahl Skalierungen
Anzahl der durchschnittlichen Pixel in der dunklen Fläche pro Skalierung
Anzahl der durchschnittlichen Pixel in der hellen Fläche pro Skalierung
Breite des zu durchsuchenden Bildes
Höhe des zu durchsuchenden Bildes
O(Klassi f ikator) = n · m · t · c1 · c2
(2.2)
Für ein Bild mit 640x480 Pixeln und der Annahme, dass der kleinste zu findende Balldurchmesser 10
Pixel und der größte Durchmesser 200 Pixel beträgt, kann eine Abschätzung der Menge an Operationen
gemacht werden. Für c1 und c2 wird an dieser Stelle angenommen, dass die Komplexität konstant ist.
n · m · t · c1 · c2 = 640 · 480 · 190 · 1 · 1 = 58.368.000
Naiv gelöst benötigt das Durchsuchen des Bildes mit diesem Klassifikator also über 58 Millionen Operationen, in welche das Berechnen der Fläche selber noch nicht mit einbezogen ist. Für einfache Flächenformen, insbesondere Rechtecke, ist die Komplexität durch Verwenden eines Integralbildes jedoch
tatsächlich konstant (siehe Kapitel 3.3.2).
2.1.3 Gradienten
Das Vergleichen von Intensitätswerten lässt sich per Vergleich von einzelnen Bildpunkten weiter spezialisieren. Vereinfacht ist dies eine Lösung um Kanten in Bildern zu bestimmen. Dabei werden benachbarte
Bildpunkte verglichen. Ist der eine Wert viel grösser als der andere, muss es sich um eine Kante handeln.
Abbildung 2.4a zeigt ein einfaches Beispiel anhand einer Reihe von Grauwerten.
9
2 Grundlagen
(a) Deutliche Kante
(b) Undeutliche Kante
Abb. 2.4: Schematische Darstellung von Intensitätsverläufen
Abb. 2.5: Graustufenbild mit Vergößerung einer Pixelreihe des linken Torpfostens
Erschwert wird die Kantendetektion, wenn der Kontrast zwischen zwei benachbarten Bildpunkten
nicht mehr eindeutig ist (siehe Abbildung 2.4b). Dies ist kein triviales Problem und wurde bereits in verschiedenen Ausarbeitungen, wie z.B. [Sch00] behandelt und untersucht. Allgemein lässt sich die Kantendetektion durch ableiten einer Reihe oder Spalte eines Bildes beschreiben. Formell lässt sich dies wie
folgt zusammenfassen:
Der Intensitätsverlauf zwischen zwei Punkten im Bild wird als Gradient bezeichnet, welcher die Richtung des größten Anstiegs sowie die Stärke der Änderung definiert. Der Gradient lässt sich als Operator
∇ definieren, welcher angewendet auf ein Bild, ein Gradientenfeld erzeugt.
δ I(x, y) δ I(x, y)
∇I(x, y) =
,
δx
δy
T
= [Gx , Gy ]T
(2.3)
Das Ergebnis sind zwei eindimensionale Gradienten je Bildpunkt, welche die Stärke der Änderung
durch die Beträge und die Richtung durch die Vorzeichen bestimmen. Mit Hilfe der Inversen des Tangens
lässt sich zusätzlich die Richtung der stärksten Änderung im zweidimensionalen Bild bestimmen und mit
Hilfe der euklidischen Norm die Stärke (Magnitude).
Gx q 2
= Gx + Gy 2
mag = Gy Gy
φ = arctan
Gx
(2.4)
(2.5)
Zur Verdeutlichung wird der Differentialoperator auf eine ausgewählte Reihe in Bild 2.5 appliziert.
Die Reihe von Intensitäten lässt sich als stetige Funktion interpretieren. Abbildung 2.6a ist der eine ver-
10
2 Grundlagen
3
3
2
2
1
1
0
1
2
3
4
5
6
7
8
9
0
1
-1
-1
-2
-2
-3
-3
(a) Funktion
2
3
4
5
6
7
8
9
(b) Erste Ableitung (In Rot)
Abb. 2.6: Beispielfunktion und erste Ableitung
einfachte Darstellung, welche die hellen Bildpunkte als Null interpretiert und die dunklen Bildpunkte im
Intervall ]0, −1]. Wird diese Funktion abgeleitet, ergibt sich Abbildung 2.6b. Zu erkennen ist jeweils ein
Extrema bei einem Wechsel von Hell nach Dunkel und einem Wechsel von Dunkel nach Hell. Die Ableitung „reagiert“ also auf Wechsel zwischen Intensitäten und das umso stärker, je schneller der Wechsel
in der Funktion geschieht.
Da das Bild keine stetige Funktion ist, die abgeleitet werden kann, greift man auf Approximationen
zurück, welche auf diskreten Mengen wie Bildern funktionieren. Dafür wird für jeden Bildpunkt lokal
die Differenz zweier Nachbarpixel berechnet, wie bereits zu Beginn dieses Kapitels eingeführt. Durch
Anwenden der Approximation auf die diskrete Bildmenge in x sowie in y Richtung, ergeben sich für
jeden Bildpunkt die Gradienten Gx und Gy .
Folgend ein einfacher Operator, der die erste Ableitung ∇I(x, y) implementiert (siehe Faltungsmatrizen
(2.6). Er berechnet durch Konvolution mit der Bildmatrix die Ergebnisbilder 2.7a und 2.7b. Durch Bestimmung der Magnituden der Gradienten durch Gleichung (2.4) kann ein Kantenbild berechnet werden
(siehe Abbildung 2.8). Die Kantenerkennung der Berlin United - FUmanoids basiert derzeit auf diesem
Operator.

Gx = Kx · I = 1/2 0 −1/2 · I
und

1/2
Gy = Ky · I =  0  · I
−1/2
(2.6)
Einfacher Operator zur Berechnung der Gradienten in horizontaler und vertikaler Richtung
2.2 Kantendetektion im Detail
Ein Problem der besprochenen Kantendetektion ist die Empfindlichkeit gegenüber Bildrauschen. Der
Operator ∇I(x, y) erzeugt auch bei kleinen Intensitätsänderungen einen Ausschlag, welche zu einer sehr
11
2 Grundlagen
(a) Kx aus (2.6)
(b) Ky aus (2.6)
Abb. 2.7: Ergebnisse der Konvolution mit dem horizontalen und dem vertikalen Kantendetektions Operator. (Normiert um negative Gradienten darstellen zu können)
Abb. 2.8: Kantenbild der Abbildung 2.5
12
2 Grundlagen
Abb. 2.9: Robotersicht auf Hinderniss, Ball und Tor (in Grautönen)
(a) θ = 0
(b) θ = 5
(c) θ = 20
Abb. 2.10: Auswirkung des Schwellwertfilters
großen Menge an Kanten im Ergebnisbild führen. Diese durch Rauschen entstandenen Kanten sind für
die Auswertung in der Regel unwichtig, erschweren aber die Analyse. Ziel ist es, diese überflüssigen
Kanten zu filtern. Abbildung 2.10a verdeutlicht die entstandene Menge an Kanten des Beispielbilds 2.9.
In dieser ist jeder Gradient mit einer Magnitude größer als Null mit Weiß markiert, der Rest mit Schwarz.
Ein Ansatz ist das Filtern anhand der Kantenstärke. Dabei werden alle Kanten, die eine kleinere Magnitude als ein festgelegter Schwellwert haben, entfernt (siehe Funktion (2.7)). Oft werden dadurch aber
auch wichtige Kanten entfernt, weil sie sich nicht genug vom Hinter- oder Untergrund abheben. Dazu
Ein Beispiel:
Wirft ein größeres Objekt einen Schatten auf das zu untersuchende Objekt, so sinkt der Kontrast an
dieser Stelle zwischen Umgebung und Objekt. Demzufolge ist der Intensitätsanstieg gemindert, was zu
kleineren Magnituden führt. Ist nun der Schwellwert zu groß eingestellt, um auch schwache Kanten zu
akzeptieren, eliminiert dieser viele der Kanten im Schatten. Abbildung 2.10c zeigt eine stark ausgedünnte
Kantenmenge, in der die unteren Kanten des linken Balls bereits durch den Schattenwurf verschwinden.
0 f alls mag < θ
Schwellwert f ilter(mag, θ ) :=
(2.7)
1 sonst
Eine bessere Methode, das Rauschen in Bildern zu minimieren, ist für jeden Bildpunkt einen Mittelwert aus sich und seinen Nachbarn zu berechnen. Auf diese Weise werden auch die Werte umgebener
Bildpunkte mit einbezogen und sorgen so für eine Glättung des Bildes. Eine einfache Glättung mit Hilfe
des arithmetischen Mittels über alle acht Nachbarn kann mit folgender Faltungsmatrix berechnet werden:
13
2 Grundlagen
(a)
(b)
(c)
Abb. 2.11: Strategien zur Minimierung der Kantenmenge. a) und b) Mit Operator (2.8) Geglättes Bild
und anschließende Schwellwertfilterung mit θ = 5, c) Mit Sobel-Operator nach Schwellwertfilterung
mit θ = 5


1 1 1
1
SA =  1 1 1  · I
9
1 1 1
(2.8)
Im Ganzen betrachtet, wirkt das Bild nach der Glättung unscharf (siehe Abbildung 2.11a). Sehr kleine
Strukturen und Körnungen unterscheiden sich im Anschluss weniger von der Umgebung, alle dominanten Kanten sind aber weiterhin sichtbar. Besonders deutlich wird die Auswirkung durch den Vergleich
zwischen Abbildung 2.10b und Abbildung 2.11b. Bei gleichem Schwellwert θ = 5 sind im geglätteten
Bild ein vielfaches weniger an Kanten als im normalen Bild. Um mit dem normalen Bild ein äquivalentes
Ergebnis zu erhalten, muss der Schwellwert des Filters erhöht werden (siehe Abbildung 2.10c). Hier sind
die unteren Kanten des linken Balls jedoch schon teilweise eliminiert.
Durch das Glätten des Bildes lässt sich also das Problem der Eliminierung von schwachen Kanten in
dunklen Bildbereichen durch den Schwellwertfilter verbessern. Üblicherweise wird anstelle eines arithmetischen Mittels eine Normalverteilung angewendet, um umgebene Pixel weniger stark zu gewichten
als den oder die zentralen Pixel (siehe Faltungsmatrix (2.9)). Im Folgenden wird bei der Glättung mit
Hilfe einer Normalverteilung von einem Gauß-Filter gesprochen.


1 2 1
1 
2 4 2 ·I
SG =
(2.9)
16
1 2 1
3x3 Gauß-Filter
Neben Gradientenbestimmung und Glättung getrennt zu betrachten, gibt es auch Faltungsmatrizen die
beides in sich vereinen. Ein bekanntes Beispiel dafür ist der Sobel-Operator, welcher für horizontale
Kanten die x-Richtung glättet und für vertikale Kanten die y-Richtung (siehe nachfolgende Gleichungen
(2.10) und (2.11)). Der Sobel-Operator bietet zwar ein etwas schlechteres Ergebnis als das Verwenden
von getrennten Faltungsmatrizen (siehe Abbildung 2.11c, ist dafür aber besser als die reine Faltung mit
Operator (2.6).
14
2 Grundlagen




1 0 −1
1
2
1
0
0 ·I
Gx = 2 0 −2 · I
(2.10)
Gy =  0
(2.11)
1 0 −1
−1 −2 −1
Sobel-Operator zur Berechnung der Gradienten in horizontaler und vertikaler Richtung
2.3 Hough-Transformation für Kreise
Richard Duda und Peter Hart evaluierten 1972, basierend auf einem Patent von Paul Hough [Hou62],
ein Verfahren zur Detektion von beliebigen parametrisierbaren geometrischen Formen durch ein VotierVorgang in dessen Parameterraum [DH72].
Der erste Schritt ist dabei das Aufstellen einer geeigneten Formel, welche die geometrische Form
möglichst einfach und mit wenig Parametern beschreibt. Im Falle des Kreises, lässt sich die Formel für
eine zweidimensionale Ebene durch die Gleichungen in (2.12) beschreiben. Er berechnet sich demnach
aus einem Kreismittelpunkt (xM und yM ) und einem Radius (r). Für den Winkel α wird das Invervall
[0, 360) Grad angenommen, um den vollständigen Rand des Kreises abbilden zu können. Es ergeben
sich also drei zu bestimmende Parameter, welche aufgefasst als Parameterraum, einen dreidimensionalen
Raum aufspannen. Dieser Raum wird im Folgenden als Akkumulator (Sammler) bezeichnet. Initial ist
jeder Wert im Akkumulator mit Null gesetzt.
x = xM + r · cos α
y = yM + r · sin α
(2.12)
Für jeden Pixel eines Bildes wird nun angenommen, dass es sich um den Mittelpunkt eines Kreises
handelt. Damit sind bereits die Parameter xM und yM definiert. Für jeden dieser Kreismittelpunkte wird
im Anschluss für eine vorher festgelegte Menge an Radien, alle Werte nach Gleichung (2.12) mit (xM =
x, yM = y, r = ri )(ri , i ∈ N) im Akkumulator um eins erhöht. Der Pixel (x, y) votiert also für verschiedene
Radien. Nach dem Votieren zweier Pixel ergibt sich im Akkumulator die Abbildung 2.12. Jeder Pixel
erzeugt also einen Kegelmantel. Schneiden sich zwei oder mehrere solcher Kegelmantel an einem Punkt
im Akkumulator, liegt an diesem Punkt ein hoher Wert und deutet damit auf einen potentiellen Kreis hin.
Die Hough-Transformation für Kreise ist ein robustes aber zeitintensives Verfahren. Vor jedem Detektionsschritt muss der gesamte Akkumulator reinitialisiert werden. Zudem votiert jeder Punkt für eine
unter Umständen große Zahl an Radien, dessen Kreisränder durch Formel (2.12) oder Approximationen,
berechnet werden müssen. Um den Aufwand größtmöglich einzuschränken, wird die Methode nicht auf
dem Bild direkt angewendet, sondern appliziert im ersten Schritt zunächst eine Kantendetektion, wie
z.B. den Sobel-Operator aus Kapitel 2.2. Ein Schwellwertfilter kann auch hier für eine Verminderung der
Informationsmenge dienen. Schlussendlich begrenzt sich die Anzahl der zu prüfenden Pixel nur noch auf
die Kanten des Bildes.
Es existieren weitere Methoden die Performance der Hough-Transformation für Kreise zu steigern.
Zum Beispiel ist es möglich anhand der Gradienten des Kantenbilds eine Vorhersage über den Kreismittelpunkt zu treffen. So muss im Akkumulator nicht der vollständige Kreis abgebildet werden.
15
2 Grundlagen
r
Ps
x
P1=(x1,y1)
P2=(x2,y2)
y
Abb. 2.12: Hough-Transformation für Kreise: Die Punkte P1 und P2 als Kreismittelpunkte votieren für
eine Menge an Radien (hier: r = (0, ∞)). Schnittpunkte der erzeugten Kegelmantel weisen auf
potentielle Kreise hin. Die Parameter des gefundenen Kreises ergeben sich aus den Koordinaten des
Schnittpunktes (Ps ). In Anlehnung an [Höf08, Doh12]
16
2 Grundlagen
2.4 Verwandte Arbeiten
Aufgrund der stetigen Anpassung der RoboCup Regeln an die originalen FIFA-Regeln werden seit einiger Zeit Methoden zu farbloser, bzw. formbasierter Ballerkennung entwickelt und präsentiert. Aber auch
abseits der RoboCup-Domäne werden für viele Bereiche formbasierte Ball- oder Kreiserkennungen benötigt. Auf einige dieser vorgeschlagenen Methoden soll in diesem Abschnitt eingegangen werden, da
sie auch für diese Ausarbeitung von Interesse sind.
2.4.1 RoboCup-Domäne
Auf Basis von Farben
Aufgrund des bisherigen RoboCup-Reglements ist die Ballerkennung aller Kid-Size-Teams auf der Farbe
basierend. Dafür sprachen bisher die einfache Umsetzung des Algorithmus, die gute Performance und
natürlich die gleichbleibende Farbe des Balls. Auch die Berlin United - FUmanoids besitzen seit jeher
eine farbbasierte Ballerkennung. Eine Zeit lang wurden die Farben des Feldes manuell mit Hilfe eines
Programms kalibriert [Gui07]. Seifert führte später eine automatisierte Methode der Farbkalibrierung
ein [Sei10], welche jedoch auf Grund wechselnder Kameras, durch fortschreitende Weiterentwicklung
der Roboter, nicht adaptiv genug gewesen ist sich schnell auf veränderte Parameter einzustellen und sich
so nicht auf Dauer etablieren konnte. Zuletzt führte Dohrmann die vollständig kalibrierfreie Vision ein,
welche die Klassifikation der Farben während des Spiels ausführt (siehe Kapitel 2.1.1). Diese Methode
wurde nun mit guten Ergebnissen unter anderem während des offiziellen RoboCup 2012 in Mexiko
verwendet.
Auf Basis von Helligkeitsunterschieden
Im vorherigen Abschnitt 2.1.2 wurde bereits eine Art der formbasierten Ballerkennung auf Grundlage
von Helligkeitsunterschieden beschrieben. Treptow, Masselli und Zell adaptierten dafür die Methode zur
Objektdetektion von Viola und Jones [TMZ03, VJ01]. Dafür wurden vier verschiedene Haar-like Features (siehe Abbildung 2.13) als Basis verwendet, welche durch ein Integralbild (siehe Kapitel 3.3.2)
jeweils in konstanter Zeit berechnet werden können. Durch Skalierung und Verschiebung der einzelnen
Features auf den Trainingsdaten wurde die bestmögliche Kombination bestimmt, welche im Anschluss
den Ball-Klassifikator bilden. Dieser Klassifikator wurde durch Verwendung des Adaboost-Algorithmus
[FS95] auf einer Testmenge von Bildern automatisch antrainiert. Der Adaboost-Algorithmus ist ein Verfahren, welches aus vielen schwachen Klassifikatoren2 die Besten anhand einer Trainingsdatenmenge
auswählt und sie linear zu einem starken Klassifikator3 kombiniert.
Der gebildete Klassifikator zur Erkennung des Balls, bestand im Anschluss aus 137 schwachen Klassifikatoren [TMZ03, Seite 3] und benötigt nach eigenen Angaben etwa 35ms4 bei einer Bildauflösung von
320x240 Pixeln. Da das verwendete System, mehr Rechenleistung als die der Berlin United - FUmanoids
Roboter bietet und das Bild vier mal kleiner ist, ist dieses Verfahren als zu rechenaufwändig anzusehen.
2 Schwache
Klassifikatoren haben eine Erkennungsrate schlechter als 100% und besser als 50%.
resultierende starke Klassifikator hat eine bessere Erkennungsrate als der beste schwache Klassifikator aus denen er
gebildet wird. Er muss keine 100% erreichen.
4 Bei 35ms kann die Klassifikation b 1000ms c = 28 mal pro Sekunde ausgeführt werden. 15 mal pro Sekunde wären bereits
35ms
ausreichend für eine flüssige Erkennung.
3 Der
17
2 Grundlagen
Abb. 2.13: Vier verschiedene Kombinationen von Hell-Dunkel-Flächen (Haar-like Features),
entnommen aus [TMZ03, Abbildung 1]
Ein größerer Nachteil ist jedoch, dass der trainierte Klassifikator nur bei einer begrenzten Menge an
verschiedenen Bällen funktioniert. Ein schwarzer Ball z.B. hätte eine invertierte Helligkeitsverteilung zu
dem getesteten Ball, die trainierten Haar-like Feature-Klassifikatoren wären darauf nicht angepasst. Man
bräuchte demnach also für verschiedene Bälle verschiedene Klassifikatoren, welche die Laufzeit und die
Wahrscheinlichkeit einer Falsch-Klassifizierungen erhöhen.
Auf Basis von Kanten
Eine Methode die Kanten eines Bildes als Grundlage zur Detektion von Bällen zu verwenden ist von
Coath und Musumeci vorgeschlagen worden [CM03]. Die Kernidee ist dabei sogenanntes Arc-Fitting
(Kreisbogen-Anpassung). Dabei wird versucht den kreisförmigen Kantenverlauf eines Balls durch eine
Menge von zweidimensionalen Punkten bestmöglich anzugleichen (siehe Abbildung 2.14). Dabei wird
im Bild oder innerhalb einer Region nach einem Gradient mit großer Magnitude gesucht. Ist dieser gefunden gibt die Inverse des Tangens die Richtung an, welche zum Kreismittelpunkt oder vom Kreismittelpunkt weg zeigt. Es kann nun orthogonal dazu nach einem weiteren Gradienten mit großer Magnitude
gesucht werden. Dabei wird die Suche innerhalb eines festgelegten Radius eingegrenzt, um möglichst
eine zum Ball zugehörige Kante zu finden. Um eine möglichst genaue Aussage treffen zu können, ob
es sich um einen Ball handelt, werden mindestens drei, besser mehr, solcher Punkte bestimmt. Durch
paarweises verbinden der Punkte zu Linien, lassen sich aus den Orthogonalen die Schnittpunkte bestimmen, welche auf einen Kreismittelpunkt hindeuten können (siehe Abbildung 2.15). Handelt es sich bei
der gefundenen Kante um einen Kreis liegen alle bestimmten Schnittpunkte nahe beieinander. Durch den
mittleren Abstand zwischen Schnittpunkt und Punkten, kann abschließend die Größe berechnet werden.
Coath und Musumeci beschreiben in ihrer Ausarbeitung leider keine Ansätze wie das Bild intelligent
nach Kreisen durchsucht werden kann. Ohne Hypothesen, wo sich ein Ball im Bild befinden kann, ist es
sehr Wahrscheinlich eine große Menge an Kreisförmigen Objekten zu detektieren. Dies ist aber ebenso
ein Vorteil der vorgeschlagenen Methode. Der Algorithmus ist auch in der Lage unvollständige Kreise
und Bälle, also auch jene Bälle die teilweise verdeckt sind, zu erkennen. In Kapitel 3.3.4 wird diese
Methode näher betrachtet und für eine Verbesserung der Größenabschätzung des Balls herangezogen.
Auf Basis von Hough-Transformation
Die vorgestellte Form der Hough-Transformation für Kreise in Kapitel 2.3, wird in dieser oder ähnlicher
Weise häufig in der Literatur zur Detektion von Kreisen oder Bällen angewendet. Eine interessante Ausarbeitung zur Detektion von Bällen im RoboCup Kontext wurde von Höferlin erstellt [Höf08]. In dieser
18
2 Grundlagen
Ballkante
Gefundener
Gradient mit Richtung
Suchregion nach
nächstem Gradient
Schnittpunkt
Orthogonalen
Abb. 2.14: Arc-Fitting: Bestimmen von
Punkten auf dem Kreisbogen (nach [CM03,
Abbildung 5])
Abb. 2.15: Arc-Fitting: Bestimmen des
potentiellen Kreismittelpunktes durch
Schnittpunkte
vergleicht er verschiedene Arten von Hough-Transformationen für Kreise und kommt zum Schluss, dass
sich die Standard Variante am besten eignet [Höf08, Seite 100]. Hoeferlin verwendet für die Detektion
nicht ausschließlich die Hough-Transformation, sondern setzt als zweiten nachträglichen Schritt noch
eine Klassifikation über Farbverteilungen ein. Der Ball muss dafür initial mehrere Sekunden im Zentrum
des Kamerabildes liegen und gut sichtbar sein. In dieser Zeit wird durch die Hough-Transformation der
Ball zunächst bestmöglich detektiert. Im Anschluss werden über diesen Bereich die Farbinformationen
extrahiert und gespeichert. Für künftige Detektionen des gleichen Balls kann so sichergestellt werden,
dass falsch erkannte Bälle anhand der Farbe aussortiert werden können.
2.4.2 Fremde Domänen
Außerhalb der RoboCup Domäne gibt es vor allem eine Vielzahl an Evaluationen zu Kreisdetektionsalgorithmen wie die Hough-Transformation. Anwendungsfälle sind hier z.B. die Erkennung von Verkehrsschildern [BCMM08] oder das Erkennen von Bällen in anderen Sportarten wie z.B. Cricket [VK10]. In
den meisten Fällen sind vorgestellte domänenspezifische Methoden stark abhängig von Umgebung und
verwendeten Kameras und damit nur bedingt auf die RoboCup Domäne übertragbar.
19
3 Formbasierte Ballerkennung
Wie aus den Grundlagen ersichtlich, kann ein Objekt auf viele verschiedene Arten anhand seiner Form
oder zumindest farblos detektiert werden. Die in der Dissertation von Moballegh vorgestellte Methode zur Ballerkennung ist eine gänzlich neue und vielversprechende Idee und wurde zur Evaluation in
dieser Arbeit aufgegriffen. Sie basiert im Wesentlichen auf den Ideen zweier Arbeiten von [DT05] und
[VJ01]. Im folgenden Kapitel dieser Arbeit wird dieser Konzeptvorschlag nicht nur präsentiert, sondern
zusätzlich versucht zu verbessern.
3.1 Anforderungen
Neben der sich selbsterklärenden Anforderung den Ball zu erkennen, ist es ebenso relevant keine falschen
Bälle zu erkennen. Falsche Klassifizierungen führen dazu, dass der Roboter in eine falsche Richtung
läuft. Dies kann vor allem dann schmerzhaft sein, wenn der Ball auf der Torlinie liegt und der Roboter im
letzten Moment abdreht und versucht den Torpfosten zu treten. Vor allem wenn die Falschklassifikation
über mehrere Bilder oder sogar Sekunden anhält, ist der Roboter unter Umständen vollständig aus dem
Spielgeschehen ausgeschieden.
3.1.1 Universalität
Aufgrund der Tatsache, dass Farbe und Muster des Balls in der Technical Challenge zufällig sind und
keine genaue Aussage darüber getroffen werden kann, welchen Farbton der grüne Boden, oder unter
welchen Lichtverhältnissen gespielt wird, gibt es eine Vielzahl von Farbkombinationen aus Ball und
Hintergrund. Zusätzlich liegt der Ball nicht immer nur auf grüner Fläche, sondern kann auch auf einer
weißen Feldlinie oder vor einem Gegner liegen. Alle diese Kombinationen sollten im Idealfall zu einer
guten Erkennungsrate führen. Ob dieser Idealfall erreichbar ist, liegt jedoch nicht nur an der Software,
sondern auch an der verwendeten Kamera, die hauptsächlich über die Qualität des Bildes entscheidet.
Sind auftretende Störungen wie Rauschen zu häufig oder zu stark vertreten, ist eine gute Detektion demnach erschwert.
Die Technical Challenge bietet eine sehr statische Umgebung, in der sich keine bewegende Gegner
befinden. Dies impliziert, dass auch der Ball nicht durch fremde Einwirkung bewegt wird. Weiterhin
besagen die Regeln der Challenge, dass der Ball zum Start in etwa 1m Entfernung zum Roboter platziert
wird. Zusammen mit dem Wissen, dass der Ball nur durch den eigenen Roboter bewegt wird und er
gedribbelt werden muss, kann die Annahme getroffen werden, dass sich der Ball nie weiter als 3 m1 vom
Roboter entfernt.
16
m ist die Distanz zwischen beiden Toren auf dem Spielfeld
20
3 Formbasierte Ballerkennung
Der entworfene Algorithmus sollte letztendlich unter den verschiedensten Bedingungen eine ausreichend gute Erkennungsrate besitzen. Das bedeutet, der Ball sollte zumindest in jedem zweiten Bild erkannt werden, damit fortwährend eine gute Abschätzung über die Position des Balls gemacht werden
kann.
3.1.2 Qualität
Zur Detektion des Balls soll der Algorithmus nicht nur die Aussage treffen, ob ein Ball im Bild existiert
oder nicht, sondern auch wo im Bild er sich befindet. Diese Information ist für den weiteren Verlauf
des Verhaltens der künstlichen Intelligenz sehr wichtig. Bestimmt der Algorithmus den Ort des Balls im
Bild zu ungenau, kann dies in der anschließenden Berechnung seiner Weltkoordinaten zu einem nicht zu
vernachlässigenden Fehler führen. Liegt der erkannte Ball 30 cm näher an den Füßen des Roboters als
der tatsächliche Ball wird der Roboter ihn an dieser Position ohne Erfolg versuchen zu treten.
Die zweite Anforderung ist demnach eine gute Positionsermittlung des Balls im Bild.
3.1.3 Performance
Neben einer guten Erkennungsrate ist auch die Rechenintensität ein wichtiger Faktor. Da die Ressourcen des verwendeten Systems stark begrenzt sind, darf der Algorithmus nicht beliebig komplex sein.
Der bisher von den Berlin United - FUmanoids eingesetzte Algorithmus zur Balldetektion benötigt laut
Dohrmann im Mittel nur 1 ms. Die durchschnittliche Frequenz der gesamten Bildbearbeitung beläuft
sich auf etwa 10-15 Bilder pro Sekunde.
Die statische Umgebung der Technical Challenge ermöglicht auch hier die Anforderung abzuschwächen. Da der Roboter relativ viel Zeit hat, den Ball ins Tor zu Dribbeln und nicht im direkten Wettstreit
mit Gegnern auf dem Feld ist, kann die Laufzeit der Ballerkennung großzügiger ausfallen. Anzustreben
sind mindestens 10 ausgewertete Bilder pro Sekunde. Weniger Bilder pro Sekunde würden sich negativ
auf die Qualität der Auswertung der restlichen Software auswirken.
Trotz der vereinfachten Anforderungen durch die Challenge, sollte der Nutzen für die Zukunft nicht
außer acht gelassen werden. In absehbarer Zeit ist es wahrscheinlich, dass die RoboCup-Wettkämpfe der
Kid-Size-Liga standardmäßig mit einem Ball beliebiger Farbe ausgetragen werden. Bis dahin wird die
Stärke des Prozessors und des restlichen Systems der Berlin United - FUmanoids zugenommen haben
und so den Einsatz einer komplexen formbasierten Erkennung verträglich machen.
3.2 Konzept
Basierend auf dem Wissen zu Gradienten lässt sich die Basis-Idee der Ballerkennung relativ einfach
beschreiben. Sie basiert auf der Annahme, dass alle Gradientenrichtungen zwischen 0 und 360 Grad
gleichverteilt in der Kante des Balls vorkommen. Anschaulich ist dies in Abbildung 3.1 dargestellt. In
dieser sind die durch Kantendetektion erzeugten Gradienten durch Pfeile dargestellt. Je nach Farbe des
Balls können die Gradienten dabei vom oder zum Kreismittelpunkt zeigen.
Auf Basis dieser Annahme lässt sich nun im Bild nach Bereichen suchen, in welchen alle Gradientenrichtungen vorkommen (im folgenden als Hypothesen bezeichnet). Aufgrund von starkem Rauschen
21
3 Formbasierte Ballerkennung
Ballkante
Gradient
Abb. 3.1: Schematische Darstellung von
Gradienten am Rand eines Kreises
Abb. 3.2: Schematischer Ablauf der
formbasierten Ballerkennung
oder komplexen Strukturen findet diese Vorgehensweise aber nicht nur kreisförmige Objekte. Im gesamten Bild z.B., kommen in so gut wie jedem Fall alle Gradientenrichtungen vor. Es ist daher wichtig diese
Hypothesen zusätzlich noch zu verifizieren.
Zusammenfassend, lässt sich das Konzept in drei große Bereiche aufteilen (siehe Abbildung 3.2).
Welche Anforderungen die einzelnen Bereiche zu erfüllen haben und wie sie erreicht werden können,
wird in den nachfolgenden Abschnitten erläutert.
3.2.1 Kantendetektion
Die bisher besprochene Kantendetektion wurde auf Graubildern angewendet. Da es in Graubildern jedoch dazu kommen kann, dass zwei verschiedene Farbtöne zu dem gleichen Grauton konvertiert werden
(siehe Abbildung 3.3), muss für die Kantendetektion der formbasierten Ballerkennung auch die Farbe
mit einbezogen werden. Dies macht Sinn, wenn die Farbe des eingesetzten Balls zum gleichen Grauton
umgerechnet und die Kantendetektion keine Kanten erkennen würde.
Um nun also die Kanten im Farbbild zu erkennen, wird das Bild in seine Komponenten zerlegt (z.B.
YCbCr in Y, Cb und Cr) und der Kantendetektions-Operator auf jede Komponente einzeln angewendet. Der Gradient an Position (x, y) ergibt sich dann aus dem Gradienten mit der größten Magnitude
MAX(mag(GY ), mag(GCb ), mag(GCr ).
Um die Ausrichtung eines Gradienten zu bestimmen eignet sich die Inverse des Tangens nicht, da
diese nur auf dem Intervall ] − π2 , π2 [ definiert ist. Für diesen Anwendungsfall wird jedoch das Intervall
] − π, π2 ] benötigt. Es eignet sich dafür die Verwendung des Arkustangens mit zwei Argumenten (3.1).

y
arctan
f alls x > 0

x

 arctan y + π f alls x < 0 ∧ y ≥ 0


x


arctan xy − π f alls x < 0 ∧ y < 0
atan2(y, x) =
(3.1)
+ π2
f alls x = 0 ∧ y > 0





−π
f alls x = 0 ∧ y < 0

 2
unde f iniert
x = 0∧y = 0
22
3 Formbasierte Ballerkennung
(a)
(b)
Abb. 3.3: Verlust von Farbinformation bei der Konvertierung von Farbwert zu Grauwert
3.2.2 Hypothesensuche
Die Hypothesensuche sollte Teilbilder mit tatsächlichen Bälle nicht ausschließen, gleichzeitig jedoch
möglichst alle Teilbildern ohne Bälle eliminieren. Weiterhin sollten die Größen der Teilbild-Hypothesen
nahe an den realen Ausmaßen des beinhaltenden Balls liegen.
Es ist nun zu klären, wie intelligent nach Hypothesen gesucht werden kann. Die Suche nach Teilbildern, in denen alle Gradientenrichtungen vorkommen, gestaltet sich ohne Diskretisierung als schwierig,
da die Funktion atan2(y, x) in den reellen Zahlenraum abbildet. Unter der Annahme, dass Kamerabild ist
ebenso aus R, gäbe es sogar überabzählbar viele Richtungen. Die Lösung ist hier das Diskretisieren in
eine feste Anzahl an Schubfächern. Alle Gradienten eines Teilbilds sollen entsprechend ihres Winkels in
ihr zugehöriges Schubfach einsortiert werden. Sind alle Schubfächer mit mindestens einem Gradienten
gefüllt, so kann potentiell davon ausgegangen werden, dass in diesem Teilbild ein kreisförmiges Objekt
vorhanden ist. Diese These ist nachfolgend weiter zu untersuchen: wird z.B. das Intervall [0,360) in vier
gleichgroße Schubfächer geteilt, würde das Prüfen der Schubfächer also nur eine Antwort auf die Frage
geben, ob Gradienten in jeden Quadranten zeigen. In diesem Fall würden aber auch andere Formen wie
Rechtecke oder Kreuze akzeptiert werden (siehe Abbildung 3.5a). Das Erhöhen der Schubfach-Anzahl
vermindert diese ungewollten Fälle (siehe Abbildung 3.5b). Hier würde das umschließende Teilbild verworfen werden, da nicht alle Fächer gefüllt sind. Moballegh verwendet in seiner Ausarbeitung 18 Fächer
und minimiert damit noch weiter die Chance, falsche Hypothesen aufzustellen. Beliebiges erhöhen der
Fächeranzahl ist nicht ratsam, da sich im Kapitel 3.3.2 zeigen wird, dass das Berechnen bereits mit 18
Fächern sehr teuer ist.
In der Praxis wird nun jeder Gradient eines Teilbilds in die Schubfächer einsortiert. Es entsteht ein
Vektor von Klassen und deren Häufigkeiten. Dieser wird als Histogramm bezeichnet. Die Aussagekraft
dieser Histogramme zeigt sich in der Abbildung 3.4. Hier sind mehrere Teilbilder und deren Histogramme aufgetragen. Es zeigt sich, dass in Teilbildern ohne Ball mehrere Histogrammkomponenten 0 oder
sehr klein sind, sodass hier ein Tal entsteht. Weiterhin ist auch zu erkennen, dass verdeckte Bälle ebenso
zu leeren Komponenten führen. Dies ist ein wesentliches Problem dieser Methode. Besondere Beachtung
wird diesem jedoch erst im weiteren Verlauf dieser Arbeit zuteil.
Im nächsten Schritt ist ein Verfahren zu finden, welches mit Hilfe der Histogrammbildung das Kame-
23
3 Formbasierte Ballerkennung
0.2
0.2
0.15
0.15
0.12
0.1
0.08
0.1
0.1
0.05
0.05
0.06
0.04
0.02
0
0
-180
-160
-140
-120
-100
-80
-60
-40
-20
0
20
40
60
80
100
120
140
160
0
-180
-160
-140
-120
-100
-80
-60
-40
(a)
-20
0
20
40
60
80
100
120
140
160
-180
-160
-140
-120
-100
-80
-60
-40
(b)
0.5
-20
0
20
40
60
80
100
120
140
160
20
40
60
80
100
120
140
160
(c)
0.16
0.2
0.14
0.4
0.12
0.15
0.1
0.3
0.08
0.1
0.2
0.06
0.04
0.05
0.1
0.02
0
-180
-160
-140
-120
-100
-80
-60
-40
-20
0
20
40
60
80
100
120
140
0
160
0
-180
(d)
-160
-140
-120
-100
-80
-60
-40
-20
0
20
40
60
80
100
120
140
160
-180
-160
-140
-120
-100
-80
-60
-40
(e)
-20
0
(f)
Abb. 3.4: Beispiel-Teilbilder und ihre zugehörigen Histogramme der Gradientenrichtungen
Gradient
1
0-89°
1
Gradient
Kante
1
1
0
90-179° 180-269° 270-359°
0-44°
1
45-89°
0
Kante
1 0
1 0
Schubfächer
Schubfächer
(a) 4 Schubfächer
(b) 8 Schubfächer
Abb. 3.5: Zuordnen von Gradientenrichtung in Schubfächer
24
1
90-134° 135-179° 180-224° 225-269°270-314°315-359°
3 Formbasierte Ballerkennung
Level 0
9
7
Level 1
8
6
Teilbilder
5
3
Level n
1
Lv. 1
4
5
2
2
8
(a) Rekursive Suche mit 4
Kindern
(b) Rekursive Suche mit 9
Kindern (nach [Mob11,
Abbildung 11.13b])
Lv. 1
1
2
7
(c) Redundanter Fall. Hier:
Teilbild mit Nummer 7 und 8 sind
identisch
Abb. 3.6: Überlappende rekursive Suche
rabild geeignet durchsucht. Moballegh schlägt hier eine rekursive Suche auf dem Bild vor. Das gesamte
Bild wird dabei sukzessive in mehrere kleine Teilbilder unterteilt (siehe Abbildung 3.6a). Es ist nun
von Vorteil, nicht nach kreisförmigen Objekten zu suchen, sondern Teilbilder auszuschließen in denen
kein kreisförmiges Objekt vermutet wird. Dies ergibt sich aus der Tatsache, dass für die Suche nur Histogramme auf Vollständigkeit geprüft werden. Mit dem Histogramm geht ein Verlust an Information
einher, da nicht interpretiert werden kann, ob alle Gradientenrichtungen tatsächlich auf einen Kreis oder
nur auf eine Normalverteilung oder ähnliches schließen. Um auch Fälle wie teilweise verdeckte Bälle
oder nicht vollständig erkennbare Kanten abzudecken, wird das Kriterium vollständiger Histogramme
abgeschwächt, sodass eine festgelegte Anzahl an Schubfächern mit weniger als z.B. 5 Einträgen toleriert
werden.
Ein Problem der rekursiven Suche ist in dieser einfachen Form, dass jedes Bild nur in 4 Teilbilder
aufgeteilt wird. Dabei kann es dazu kommen, dass der Ball auf den Rändern dieser Teilbilder liegt und
somit von keinem Teilbild ganz eingeschlossen ist. Abbildung 3.6a stellt diese Problematik dar. In diesem
Fall schließt zwar noch die darüber liegende Teilbildebene den Ball voll ein, die Anforderung an eine gute
Größenabschätzung des Balls wäre aber nur schwach erfüllt. Moballegh schlägt daher eine Suche mit 9
Teilbildern vor (siehe Abbildung 3.6b). Auf diese Weise wird ein Einschließen des Balls sichergestellt
und die kleinstmögliche Größe einer Hypothese hat sich halbiert.
Es lässt sich nun ein Algorithmus für die Hypothesensuche aufstellen. Rekursionsanker ist neben
dem Prüfen des Histogramms auch eine maximale Tiefe. Bei einer Tiefe größer als 5 ist ein Teilbild
bereits 10x7 Pixel groß und so klein, dass ein Ball in dieser Größe nicht mehr erkennbar wäre. Dies liegt
vor allem daran, dass in dieser Größe nicht zwingend alle Gradientenrichtungen vorkommen. Rauschen
bewirkt einen sehr großen Fehler in diesen Dimensionen. Eine weitere Abbruchbedingung ergibt sich
aus der Tatsache, dass die Rekursion ein Teilbild unter Umständen mehr als einmal untersucht (siehe
Abbildung 3.6c). Dies basiert auf dem Überlappen der Teilbilder und lässt sich durch eine LookupTabelle vermeiden. Zu Beginn jedes Funktionsaufrufs muss also getestet werden, ob das Teilbild schon
überprüft wurde.
Ist keine der Abbruchbedingungen gültig, wird für jedes der 9 erzeugten Teilbilder die rekursive Funktion erneut aufgerufen. Ein Teilbild wird als Ballkandidat akzeptiert, wenn alle seine Kinder Blätter sind
und somit abgelehnt wurden. Wird ein Teilbild zum zweiten Mal überprüft, so wird durch die LookupTabelle verhindert, dass das Eltern-Teilbild in den Kandidatenpool aufgenommen wird. Es wird davon
ausgegangen, dass dieses Teilbild bereits bearbeitet wurde. Diese Vorgehensweise birgt jedoch ein Pro-
25
3 Formbasierte Ballerkennung
blem in bestimmten Fällen. Näheres dazu im Kapitel 3.3.3.
Algorithmus 1: Überlappende Rekursive Suche
1 b o o l e a n o v e r l a p p i n g S e a r c h ( window , l e v e l )
2 begin
3
i f window i s a l r e a y s c a n n e d t h e n
4
return true
5
6
window <− s c a n n e d
7
8
i f l e v e l > 5 then
9
return f a l s e
10
11
h i s t o g r a m <− c a l c u l a t e H i s t o g r a m ( window )
12
13
i f h i s t o g r a m h a s a t l e a s t one z e r o component t h e n
14
return f a l s e
15
16
b <− f a l s e
17
18
f o r a l l 9 s u b windows
19
b <− b or o v e r l a p p i n g S e a r c h ( s u b window , l e v e l + 1 )
20
21
i f not b t h e n
22
p u s h _ b a l l _ c a n d i d a t e ( window )
23 end
3.2.3 Verifizierung
Der an dieser Stelle erzeugte Kandidatenpool muss auf Grund der schon erläuterten Fälle weiter verifiziert werden. Ziel ist es demnach alle realen Bälle als solche zu verifizieren und die restlichen Kandidaten
abzulehnen. Als Basis sollen dafür möglichst nur die bereits erzeugten Histogramme sein, um die Rechenintensivität zu minimieren. Zugriffe auf das Bild sollten vermieden werden, da sie je nach Größe der
Teilbilder und damit mit steigender Anzahl zu prüfender Pixel sehr rechenintensiv werden.
Da Histogramme keine genaue Auskunft über Position und Anordnung der einzelnen Gradienten geben, können sie weder Position des Balls noch deren Durchmesser bestimmen. Um mit Hilfe der Histogramme ein Teilbild nun aber dennoch verifizieren zu können, bedient sich Moballegh zweier Beobachtungen.
Kriterium 1
Die erste Beobachtung basiert auf der Tatsache, dass alle Gradientenrichtungen um einen Kreis gleich
häufig auftreten (siehe z.B. Abbildung 3.1). Es ist demnach ein Maß für die Gleichverteilung eines Histogramms zu finden. Betrachtet man die Gaußverteilung verschiedener Histogramme, so lässt sich feststellen, dass eine perfekte Gleichverteilung eine hohe Standardabweichung bedeutet (siehe Abbildung 3.7a).
Eine Normalverteilung hingegen, besitzt eine geringe Standardabweichung (siehe Abbildung 3.7b). Auf
Basis dieser Beobachtung schlägt Moballegh nun eine Ungleichung aus Mittelwert und Standardabweichung vor (siehe (3.2)). Alpha ist ein empirisch zu bestimmender Schwellwert, welcher die Akzeptanz
26
3 Formbasierte Ballerkennung
Histogramm aus Abbildung
Gauß-Funktion
Ball
3.7a
3.7b
3.7c
N (170, 1042 )
N (161, 482 )
N (166, 882 )
Ja
Nein
Ja
Größtes α für wahre Aussage
b σµ c
0.61
0.29
0.53
Tabelle 3.1: Übersicht über den kleinst anzunehmenden Schwellwert α, um ein Histogramm als Ball zu
bewerten
0.06
0.35
0.25
0.3
0.05
0.2
0.25
0.04
0.15
0.2
0.03
0.15
0.1
0.02
0.1
0.05
0.01
0.05
0
0
-180
-160
-140
-120
-100
-80
-60
-40
-20
0
20
40
60
80
100
120
140
160
(a) Gleichverteilung und
N (−10, 1042 )
0
-180
-160
-140
-120
-100
-80
-60
-40
-20
0
20
40
60
80
100
120
140
160
(b) Annähernde Normalverteilung
und N (−21, 482 )
-180
-160
-140
-120
-100
-80
-60
-40
-20
0
20
40
60
80
100
120
140
160
(c) Annähernde Gleichverteilung
mit 4 Ausreißern und
N (−14, 882 )
Abb. 3.7: Beispielhistogramme und deren Gaußfunktionen N (µ, σ 2 ). Die Summe der y-Werte ist auf 1
normiert, die Gaußglocke zur besseren Übersicht vertikal skaliert.
beeinflusst. Ein hoher Schwellwert bedeutet demnach eine hohe Akzeptanz. Damit die Formel für die
Beispiele aus Abbildung 3.7 funktioniert, muss der Mittelwert µ um den Wert 180 verschoben werden.
Der Schwellwert α lässt sich anhand der Beispielhistogramme bestimmen. Dafür sollen Histogramm
3.7a und 3.7c als Ball akzeptiert werden, 3.7b jedoch nicht. Durch Bestimmen des kleinsten α für jedes
Histogramm lässt sich betrachten, in welchen Dimensionen der endgültige Schwellwert anzulegen ist
(siehe Tabelle 3.1). Basierend auf diesen Werten, sollte der Schwellwert α zumindest größer als 0.30
sein, um eine Normalverteilung auzuschließen. In der Praxis hat sich ein Wert von 0.50 als gut erwiesen.
µ:
σ:
α:
Mittelwert des Histogramms
Standardabweichung des Histogramms
Schwellwert
σ < αµ
(3.2)
Kriterium 2
Des weiteren lässt sich feststellen, dass innerhalb eines Teilbilds nur eine bestimmte Größe an Bällen auftreten kann. Die obere Grenze ist hier die kleinste Seite des Teilbildes, da dies der maximale
Durchmesser ist, den ein Kreis in diesem Teilbild einnehmen kann ohne dass die Histogrammanalyse
27
3 Formbasierte Ballerkennung
fehlschlägt. Die untere Grenze ist die kleinste Seite halbiert, da jedes Teilbild gegenüber seinem ElternTeilbild eine halbierte Breite und eine halbierte Höhe besitzt. Auf Basis dieser zweiten Beobachtung
und der Information, dass jede Kante nur 1 Pixel breit ist, muss die Anzahl der Gradienten in einem
Teilbild also mit seinem Umfang korrelieren. Moballegh stellt demnach die Bedingung (3.3) auf, die ein
Histogramm zu erfüllen hat, um als Ball akzeptiert zu werden. Als Schwellwert eignet sich auch hier
eine empirische Bestimmung. β sollte jedoch nicht größer als 0.5 sein, damit nicht auch zu kleine Bälle
akzeptiert werden.
d:
n:
β:
Länge der kleinsten Seite des Teilbildes
Anzahl an Gradienten im Teilbild
Schwellwert
π
d(1 − β ) < n < 4d(1 + β )
2
(3.3)
3.3 Optimierung
Das erläuterte Kozept der formbasierten Ballerkennung, soll in diesem Kapitel näher auf die Anforderungen untersucht werden. Dafür werden Kantenbild, Hypothesensuche und Verifizierung auf ihre Qualität
untersucht und versucht, jeden Schritt bestmöglich zu optimieren.
3.3.1 Optimieren der Kantendetektion
Um möglichst gute Hypothesen aus dem Bild extrahieren zu können ist ein gutes Gradientenbild die
nötige Basis. Je besser die Qualität der Kanten, desto einfacher ist es für die Hypothesensuche gute
Entscheidungen treffen zu können.
In den Grundlagen wurden bereits einige wichtigen Aspekte der Kantendetektion erläutert. Neben
diesen postulierte John Canny in seiner Abhandlung zur Kantendetektion drei Kriterien für eine optimale
Detektion [Can86, Seite 680]:
1. Gute Erkennung - Die Kantendetektion sollte möglichst alle, tatsächlich im Bild vorhandene, Kanten finden.
2. Gute Lokalisierung - Die gefundenen Kanten sollten möglichst mittig in den realen Kanten verlaufen.
3. Minimale Kantendicke - Die gefundenen Kanten sollten nur ein Pixel breit sein und nicht mehrmals
gefunden werden.
Diese Kriterien sollen auch für die formbasierte Ballerkennung erfüllt werden. Es ist daher zu untersuchen, welche Schritte vor der Kantendetektion geeignet sind um das Kamerabild in Hinsicht der Deutlichkeit der Kanten zu verbessern. Weiterhin ist zu untersuchen, welcher Kantendetektions-Operator in
Hinsicht auf Performance und Qualität die besten Eigenschaften bietet und wie eine Minimierung der
Kantenbreite erreicht werden kann.
28
3 Formbasierte Ballerkennung
Vorverarbeitung des Kamerabilds
Das Kamerabild sollte möglichst von jeglichen Störungen befreit sein und zusätzlich sollten alle wichtigen Kanten erhalten bleiben. Selbstverständlich sollte auch hier die Verarbeitung in so geringer Zeit wie
möglich geschehen. Neben der Glättung mit dem Gauß-Filter eignet sich auch der sogenannte MedianFilter2 . Gegeben eine Fenstergröße, z.B. 3x3, sortiert der Median-Filter alle Werte innerhalb dieses Fensters und belegt den Wert in der Mitte des Fensters mit dem Median. Für ein vollständiges Bild, wird das
Fenster über jeden Pixel iteriert. Das dadurch gefilterte Bild besitzt je nach Größe des Fensters eine
besonders gute Rauschunterdrückung und erhält zusätzlich die Kanten und verbessert sogar noch den
Kontrast. Eine mit dem Median-Filter gefilterte Bilderreihe ist in Abbildung 3.8 aufgeführt. Wird nun
im Anschluss noch ein Sobel-Operator angewendet, zeigt sich die Stärke des Filters. Besonders interessant ist das Ergebnis mit einer 15x15 Fenstergröße 3.8d, bei welchem die Kanten beider Bälle sehr gut
konserviert und dabei Auswirkungen von Schatten stark vermindert sind. Zusätzlich werden sehr kleine
Strukturen wie auch dünne Linien vollständig eliminiert, was zu einer stark vereinfachten Hypothesensuche führt.
Aufgrund der Sortierung, welche für jeden Pixel des Bildes ausgeführt werden muss, ist die Komplexität des Median-Filters relativ hoch. Die Laufzeit ist fast vollständig vom verwendeten Sortierverfahren
abhängig. Mit einem linearen Sortierverfahren ist die Komplexität für jeden Pixel immer noch O(n · m),
bei quadratischem Fenster also O(n2 ). Wie in der Abbildungsreihe 3.8 ersichtlich, ist ein großes Fenster von Vorteil, um ein gutes Kantenbild erzeugen zu können und die Laufzeit dementsprechend hoch.
Tabelle 3.2 zeigt die Zeit, die der Median-Filter für zwei verschiedene Fenstergrößen beno"tigt. Markant ist der enorm hohe Aufwand von 56.2ms für die Medianfilterung eines RGB-Bildes von 640 mal
480 Pixelgröße. Diese Laufzeit ist bereits auf dem Testsystem nicht für die Vorverarbeitung tragbar, der
Median-Filter eignet sich demnach nicht für den Einsatz auf dem Roboter.
Alternativ eignet sich zum Filtern auch der Gauß-Filter. Die Ergebnisse mit Faltungsmatrizen der
Größe 5x5 und 15x15 sind in Abbildung 3.9 zu sehen. Im Vergleich zum Median-Filter sind viel mehr
Details zu erkennen und die Menge an Kanten dementsprechend höher. Der 5x5 Gauß-Filter eliminiert
aber zumindest fast alle unwichtigen Details auf der grünen Fläche und konserviert auch hier genügend
viele Kanten der Bälle. Nachteilig ist hier jedoch, dass die Kanten breiter sind als beim Median-Filter. Die
breite erhöht sich zusätzlich, wenn die Fahltungsmatrixgröße zunimmt. Bei einer Faltungsmatrixgröße
von 15x15 sind die Kanten breiter, dafür aber in der Menge vermindert. Zusätzlich fehlen aber bereits
einige wichtige Kanten des hinteren Balls. Trotz der Nachteile des Gauß-Filters besitzt er eine moderate,
noch vertretbare Laufzeit (siehe Tabelle 3.2). Der 5x5 Gauß-Filter eignet sich demnach zur Glättung des
Eingabebildes.
Nachbearbeitung des Kantenbilds
Bevor ein optimaler Kantendetektions-Operator bestimmt wird, soll zunächst eine Lösung für die Minimierung der Kantendicke vorgestellt werden. Diese wird im Anschluss für die Bewertung und den
Vergleich der Operatoren verwendet.
Unabhängig davon, welcher Operator verwendet wird, beinhaltet das erzeugte Kantenbild immer noch
eine große Menge an Informationen. Diese erschweren das Verifizieren der Hypothesen. Soll die Anzahl
an Pixeln in einem Teilbild gezählt werden, weil diese mit dem Umfang des Kreises korreliert, so ist es
2 Der
Median ist der mittlere Wert einer sortierten Datenmenge. Bei n Daten ist der Median also der Wert an Index
29
n
2
3 Formbasierte Ballerkennung
(a)
(b)
(c)
(d)
Abb. 3.8: Mit dem Median-Filter geglättete Bilder und deren Sobel-Kantenbilder nach
Schwellwertfilterung mit θ = 5. Oben: Fenstergröße 5x5. Unten: Fenstergröße 15x15
(e)
(f)
(g)
(h)
Abb. 3.9: Mit dem Gauß-Filter geglättete Bilder und deren Sobel-Kantenbilder nach
Schwellwertfilterung mit θ = 5. Oben: Faltungsmatrixgröße 5x5. Unten: Faltungsmatrixgröße 15x15
30
3 Formbasierte Ballerkennung
Filter
Median 5x5
Median 15x15
Gauß 5x5
Gauß 15x15
Ø Laufzeit in ms
4.8
56.2
1.7
6.9
Tabelle 3.2: Qualitativer Vergleich der Laufzeiten des Gauß- und des Median-Filters. (Testprozessor:
3Ghz Intel CPU)
Kantenrichtung
(Gradientenorthogonale)
125 216 238
0
0
0
0
238
37
105 212 246 199
0
0
0
246
0
82
212 239 212 125
0
0
239
0
0
37
37
212 246 212
50
37
0
246
0
0
0
227
37
37
227
0
0
0
0
76
125
(a) Ausschnitt eines Kantenbilds
mit deren Kantenrichtungen und
Magnituden
(b) Erzeugtes
Non-maxima-suppressed-Bild
(c) Endergebnis
Abb. 3.10: Applikation von Non-maxima-suppression auf einem Kantenbild
schwer eine Annahme zu treffen, da die Breite des potentiellen Kreises mehr als 1 Pixel breit ist. Zusätzlich vermindern ein Pixel breite Kanten die Wahrscheinlichkeit einer falschen Klassifizierung. Die
Minimierung der Kantendicke erfüllt Cannys geforderten Punkt 3 und je nach Umsetzung zusätzlich
Punkt 2. Um Punkt 2 zu erfüllen, muss die Kante möglichst nahe im Zentrum der ursprünglichen dicken
Kante verlaufen.
Canny schlägt dafür zwei aufeinander basierende Techniken vor, welche die stärksten Kanten aus
einem Kantenbild extrahieren und damit auf eine Breite von einem Pixel reduzieren. Die erste Technik ist
"Non-maxima-suppression"(Unterdrückung von Nicht-Maxima). Dabei wird jede Kante im Bild verfolgt
und deren lokale Maxima extrahiert. Entscheidend dafür ist die Kantenrichtung, welche sich aus der
orthogonalen der Gradientenrichtung ergibt. Trifft das Verfahren nun auf eine Kante, wird sie anhand
ihrer Kantenrichtung verfolgt. Verläuft adjazent zu der verfolgten Kante eine weitere Kante in die gleiche
Richtung, besitzt aber kleinere Gradientenmagnituden, so wird diese adjazente Kante auf 0 gesetzt (siehe
Abbildung 3.10). Im zweiten Schritt sollen nun zu schwache Kanten, ähnlich zu einem Schwellwertfilter,
eliminiert werden. Um nun aber nur Kanten zu entfernen, welche vollständig aus kleinen Magnituden
bestehen und nicht auch solche, die sich auch aus Teilen mit großen Magnituden zusammensetzen, wird
ein Hysterese-Schwellwertfilter verwendet (siehe Funktion 3.4). Dieser setzt sich aus einem unteren
31
3 Formbasierte Ballerkennung
Schwellwert θlow und einem oberen Schwellwert θhigh zusammen. Wird nun durch das Ausgabebild der
Non-maxima-suppression iteriert, so wird eine Kante mit Wert 1 akzeptiert, wenn ihre Magnitude größer
als θhigh ist. Die gefundene Kante wird nun in Kantenrichtung verfolgt. Jeder Gradient in Kantenrichtung
mit einer Magnitude größer als θlow wird ebenso mit Wert 1 akzeptiert. Erst wenn θlow unterschritten
wird, wird die verfolgte Kante mit Wert 0 beendet. Somit werden innerhalb einer starken Kante auch
Teile mit kleinen Magnituden im Ergebnis markiert.
Dieser zweite Schritt ist besonders wichtig für den Fall, dass Teile der Ballkante keine ausreichend
großen Magnituden besitzen.

0 f alls ¬onEdge ∧ mag < θlow



1 f alls onEdge ∧ mag ≥ θlow
Hysterese(mag, onEdge, θlow , θhigh , ) :=
(3.4)
1 f alls mag ≥ θhigh



0 sonst
Das von Canny vorgeschlagene Verfahren bietet ein gutes Endergebnis und eignet sich auf Grund minimal breiter Kanten gut für die Balldetektion. Ebenso ist eine gute Lokalisierung gegeben, da für die
endgültige Kante nur die Maxima einer Kante verwendet werden, welche im Allgemeinen im Kantenzentrum liegen. Wird der Hysterese-Filter für die Kantendetektion verwendet, kann das Filtern durch einen
Standard-Schwellwertfilter ausbleiben, da auch hier alle Magnituden kleiner als θlow eliminiert werden.
Das endgültige Ergebnis am Beispielbild ist in Abbildung ?? dargestellt.
Geeigneter Kantendetektions-Operator
Mit Hilfe der Kantenminimierung kann nun ein geeigneter Operator für die Kantendetektion bestimmt
werden. Sie ermöglicht es, einen Operator anhand einer Fehlerfunktion zu vergleichen. Wird ein Testsatz
von Bildern mit Bällen so annotiert, dass die vorkommenden Bälle jeweils in möglichst eng umschließenden Teilbildern liegen, ist die Größe des Balls damit bekannt und damit ebenso die optimale Anzahl
an Gradienten pro Schubfach. Diese Tatsache beruht auf dem Wissen, dass die Kante des Balls im optimalen Fall ein Pixel breit ist und dass sich die Gesamtanzahl an Gradienten durch den Umfang berechnen
lässt. Die Fehlerfunktion kann damit aufgestellt werden (siehe Gleichung (3.5)). ei unterscheidet dabei
drei Fälle: ist die Summe an Gradienten eines Schubfachs sum(Hi ) größer als die optimale Anzahl n,
so wird die Differenz aus beiden zum Gesamtfehler E hinzu addiert. Dieser Fall sollte weniger streng
bewertet werden, da überflüssige Einträge oft durch Schatten oder umgebene Muster auftreten. Ist die
Summe hingegen kleiner als n, so wird das Quadrat der Differenz zu E hinzu addiert. Ist die Summe null,
wird konstant 10 hinzu addiert. Die beiden letzten Fälle sorgen dafür, dass zu wenig Gradienten in einem
Schubfach einen hohen Fehler bewirken. Um große Bälle nicht stärker zu gewichten als kleine, wird die
Summe der Gradienten auf n normiert.
h, b:
H:
|H|:
N:
n:
Höhe h und Breite b des Teilbilds, wobei h = b
Histogramm
Anzahl Schubfächer des Histogramms
Optimale Summe an Gradienten im Teilbild
Optimale Summe an Gradienten in einem Schubfach des Histogramms
N := πb
N
n := |H|
32
3 Formbasierte Ballerkennung
|H|
E := ∑ ei
(3.5)
i=1
 sum(Hi )
i)

f alls sum(H
≥1
1
−

n
n
 2
i)
i)
ei :=
f alls 1 > sum(H
1 − sum(H
>0

n
n


10
sonst
Ziel des optimalen Kantendetektions-Operators ist es, vor allem alle Kanten von Bällen zu finden und
damit ein vollständiges und gleichverteiltes Histogramm zu induzieren. Neben der Bewertung durch die
Fehlerfunktion E, sollen zusätzlich zwei subjektive Kriterien bewertet werden:
1. Zusammenhängend: Existiert eine zusammenhängende Kante um den Ball?
2. Keine überflüssigen Kanten: Ist die Anzahl an Kanten in Regionen ohne echte Kante möglichst
gering?
Auf Basis von 52 Bildern mit beinhalteten Bällen, werden folgende drei Operatoren verglichen:
• Einfacher Operator: Aufgrund der kleinen Faltungsmatrix ist die Komplexität dieses Operators
sehr klein und die Rechenintensität dementsprechend gering. Zusätzlich würde er sich eignen, da
die restlichen kantenbasierten Algorithmen der Berlin United - FUmanoids auf diesem Operator
aufbauen und demnach keine weiteren Anpassungen vorgenommen werden müssten.


1/2
Gx = 1/2 0 −1/2
Gy =  0 
−1/2
• Sobel-Operator: Der Sobel-Operator ist der wahrscheinlich am Häufigsten eingesetzte KantendetektionsOperator und wird auch in der Implementierung des ebenso bekannten Canny-Algorithmus der
OpenCV-Bibliothek3 verwendet.




1
2
1
1 0 −1
0
0
Gx = 2 0 −2 Gy =  0
−1 −2 −1
1 0 −1
• Scharr-Operator: Der Scharr - Operator ist der von Hanno Scharr optimierte Sobel-Operator
in Hinsicht auf eine perfekte Rotationssymmetrie[Sch00]. Rotationssymmetrie bedeutet für einen
Kantenfilter, dass er keine Gradientenrichtungen bevorzugt. Um einen perfekten, einen Pixel breiten Kreis, besäßen also alle Gradienten die gleiche Magnitude.




3 0 −3
3
10
3
0
0
Gx = 10 0 −10 Gy =  0
3 0 −3
−3 −10 −3
Vor dem Berechnen des Fehlers E, wird noch die Minimierung der Kantendicke angewendet. Da hier die
Schwellwerte θlow und θhigh maßgebend zum Ergebnis beitragen, werden zusätzlich für jeden Operator
3 OpenCV
ist eine Bibliothek von Algorithmen zur Bildverarbeitung. Sie ist kostenlos unter der BSD-Lizenz nutzbar.
33
3 Formbasierte Ballerkennung
verschiedene Schwellwert-Kombinationen ausgetestet, um so das globale Minimum für E zu finden. In
der Ergebnistabelle 3.3 ist der durchschnittliche Fehler ØE pro Teilbild angegeben, das Minimum ist
grau markiert.
Operator
θlow
θhigh
ØE
Einfach
20
21
22
23
24
25
26
27
28
29
16.48
15.86
15.44
15.46
15.94
Sobel
140
160
180
200
220
190
210
230
250
270
16.75
15.19
14.70
20.29
23.80
Scharr
200
220
240
260
280
250
270
290
310
330
21.52
20.61
19.69
22.14
25.26
Tabelle 3.3: Vergleich dreier Kantendetektions-Operatoren mit Hilfe einer Fehlerfunktion. Kleineres E
ist besser.
Die Ergebnisse zeigen, dass der Sobel-Operator den kleinsten Fehler erreicht. Aber auch der einfache
Operator hat nur einen marginal schlechteren Fehler. Einen unerwartet hohen Fehler erreicht der ScharrOperator. Da er laut [Sch00] eine perfekte Rotationssymmetrie besitzt, wurde das beste Ergebnis zur
Detektion von Kreisen erwartet. Aufgrund des hohen Fehlers scheidet er jedoch als optimaler Operator
aus.
Es sind nun der einfache und der Sobel-Operator noch subjektiv zu bewerten. Der Sobel-Operator bietet hier ein wesentlich besseres Gesamtbild, da er nach Kriterium 2 wenig ungewollte Kante produziert.
Dies lässt sich durch die Kombination mit dem Gauß-Filter erklären. Beide Operatoren produzieren jedoch ausreichend gute Kanten um die Bälle.
Zusammengefasst verspricht der Sobel-Operator also die besten Ergebnisse für diesen Anwendungsfall. Er wird im Folgenden daher als optimaler Kantendetektions-Operator angesehen.
3.3.2 Integrales Histogrammbild
Die angesprochene schlechte Laufzeit der Hypothesensuche, basiert auf dem Erzeugen der Teilbildhistogramme. Auf die vorgestellte unoptimierte Art und Weise würde diese Methode zu einer sehr schlechten
Laufzeit führen. Grundlegendes Problem ist hier, dass die überlappende Suche zu redundanten Operationen führt. Wird das Histogramm des gesamten Kamerabilds berechnet, so wurde bereits jeder Pixel
einmal angefasst. Im nächsten Level würden insgesamt 9 Teilbilder betrachtet werden. Bereits 4 davon
34
3 Formbasierte Ballerkennung
x
x
y
y
I(x,y)
I(x',y')
I(x,y')
i(x,y,x',y')
(x,y)
I(x',y)
(a) Berechnung des Integralbilds
I(x,y)
(b) Berechnung einer Teilsumme mit Hilfe des
Integralbilds
Abb. 3.11: Berechnung und Verwendung des Integralbilds (nach [Mob11, Abb. 11.12])
fassen in der Summe erneut alle Pixel des Gesamtbilds an. Diese redundanten Operationen lassen sich
mit dem Verwenden eines Integralbilds verhindern.
Das Integralbild, erstmals eingeführt 1984 [Cro84] und erstmals in der Bildverarbeitung von Viola &
Jones verwendet [VJ01], ist ein Verfahren um schnell Summen von rechteckigen Bildausschnitten zu
berechnen. Dies wird erreicht, indem jeder Bildpunkt die Summe aller Werte des Rechtecks zwischen
sich und Punkt (0,0) speichert (siehe Gleichung (3.6) und Abbildung 3.11a).
x
y
I(x, y) = ∑ ∑ I(i, j)
(3.6)
i=0 j=0
Die nun vorliegende integrale Repräsentation vereinfacht das Berechnen eines beliebigen Rechtecks auf
konstant 4 Speicherzugriffe und drei arithmetischen Operationen (siehe Gleichung (3.7) und Abbildung
3.11b).
(3.7)
i(x, y, x0 , y0 ) = I(x, y) + I(x0 , y0 ) − (I(x0 , y) + I(x, y0 ))
Selbstverständlich muss zusätzlich das Integralbild berechnet werden, welches jedoch in einem Bilddurchlauf berechnet werden kann. Dafür wird eine temporäre Variable S eingeführt, die die Summe der
aktuell bearbeiteten Bildzeile y speichert. I(x, y) berechnet sich dann aus der Summe von S, des Bildpunkts B(x, y) und I(x, y − 1). Als rekursive Funktion lässt sich die Berechnung folgend auffassen:
S(x, y) = S(x − 1, y) + B(x, y)
(3.8)
I(x, y) = I(x, y − 1) + S(x, y)
Bezogen auf die formbasierte Ballerkennung wird nun ein Integralbild von Histogrammen benötigt. Auf
diese Weise kann das Histogramm eines Teilbilds ebenfalls mit nur 4 Speicherzugriffen erfolgen. Alle
vorgestellten Gleichungen gelten weiterhin für die Verwendung mit Histogrammen, wobei die Addition zweier Histogramme komponentenweise zusätzlich zum Aufwand des Integralen Histogrammbilds
zuzurechnen ist. Bei 18 Komponenten bedeutet dies bei der Berechnung des Bildes einen Aufwand von
35
3 Formbasierte Ballerkennung
Lv. 1
Lv. 1
1
5
2
8
2
7
Abb. 3.12: Defekt der rekursiven Hypothesensuche: Der Ball in Teilbild 5 wird ausgeschlossen, weil
das Teilbild des 2. Levels zum zweiten Mal bearbeitet wird.
2·18 arithmetischen Operationen, anstatt von 2. Und auch bei der Berechnung eines Teilbildhistogramms
erweitert sich der Aufwand von 3 auf 3 · 18 Operationen. Es wird somit deutlich, dass das Berechnen des
Integralen Histogrammbilds zwar einen enormen Vorteil, aber immer noch einen sehr hohen Aufwand
bedeutet. Welchen Einfluss dies auf die Performance der Ballerkennung hat, wird im Kapitel Auswertung
besprochen.
3.3.3 Rekursive Suche
Der von Moballegh vorgeschlagene Algorithmus zur Hypothesensuche birgt einen Defekt, der an dieser
Stelle korrigiert werden soll. Zunächst sei an dieser Stelle noch einmal auf den Algorithmus 1 in Kapitel
Hypothesensuche auf Seite 26 verwiesen, auf welchen sich hier bezogen wird.
Der Defekt entsteht durch Rückgabe des booleschen Wertes true in Zeile 4 und tritt damit auf, wenn
ein Teilbild zum zweiten Mal bearbeitet wird. Mit dieser Rückgabe wird das Eltern-Teilbild aus dem
Kandidatenpool ausgeschlossen, da die Variable b durch die Veroderung in jedem Fall ebenso zu true
ausgewertet wird. Kommt es nun jedoch zu dem Fall, dass innerhalb dieses Eltern-Teilbilds ein Ball
eingeschlossen ist, so wird es trotzdem ausgeschlossen. Abbildung 3.12 verdeutlicht diesen Fall.
Die Lösung dieses Problems ist das zusätzliche Speichern des Ergebnis, ob das Teilbild ausgeschlossen werden kann oder nicht. Zwar erwähnt Moballegh diese Idee, der Algorithmus ist aber unvollständig.
Algorithmus 2 auf Seite 36 zeigt die neuen Modifizierungen. Das Speichern der Information, ob ein Teilbild ausgeschlossen ist oder nicht wird in Zeile 18 durch die Variable hasChildren ermöglicht. Diese wird
initial auf true gesetzt und durch die beiden Rekursionsanker in Zeile 8 und 14 je nach Fall verändert. Die
ursprüngliche Variable b wurde in diesem Algorithmus umbenannt zu childrenHaveChildren, um den
Nutzen zu verdeutlichen. Das Ergebnis der rekursiven Suche ist durch die Markierung von akzeptierten
Teilbildern in Abbildung 3.15a zu sehen.
Algorithmus 1b: Optimierte überlappende Rekursive Suche
1 b o o l e a n o v e r l a p p i n g S e a r c h ( window , l e v e l )
2 begin
3
i f window i s a l r e a y s c a n n e d t h e n
4
r e t u r n window −> h a s C h i l d r e n
5
6
h a s C h i l d r e n <− t r u e
7
8
i f l e v e l > 5 then
9
h a s C h i l d r e n <− f a l s e
10
11
i f hasChildren
12
h i s t o g r a m <− c a l c u l a t e H i s t o g r a m ( window )
13
36
3 Formbasierte Ballerkennung
14
15
16
17
18
19
20
21
22
23
24
25
26
i f h i s t o g r a m h a s a t l e a s t one z e r o component t h e n
h a s C h i l d r e n <− f a l s e
window <− s c a n n e d
window <− h a s C h i l d r e n
i f not h a s C h i l d r e n
return f a l s e
c h i l d r e n H a v e C h i l d r e n <− f a l s e
f o r a l l 9 s u b windows
c h i l d r e n H a v e C h i l d r e n <− c h i l d r e n H a v e C h i l d r e n or o v e r l a p p i n g S e a r c h ( s u b window ,
level + 1 )
27
28
i f not c h i l d r e n H a v e C h i l d r e n t h e n
29
p u s h _ b a l l _ c a n d i d a t e ( window )
30
31
return true
32 end
3.3.4 Kandidatenverifizierung
Ein zu optimierender Punkt der Kandidatenverifizierung ist das zweite Kriterium (3.3) der Verifizierung.
Sie verwendet nur einen Schwellwert β für die untere und die obere Grenze. Besser ist es hier jedoch für
die obere Grenze einen anderen Schwellwert zu nehmen, da die Menge an Kanten in einem Ball theoretisch erst durch seine Fläche begrenzt wird. Bisher wurde davon ausgegangen, dass der Ball einfarbig ist
und die Kante somit nur um den Rand entsteht. Aufgrund den Vorgaben der Technical Challenge kann
aber auch das Muster beliebig sein. Es ist also davon auszugehen, dass auch innerhalb des Balls eine
große Menge an Kanten vorkommen kann. Die Einführung eines weiteren Schwellwerts ist demnach
eine einfache Möglichkeit damit umgehen zu können. Zusätzlich ist an dieser Stelle anzumerken, dass
der Durchmesser des kleinsten Balls in einem Teilbild nicht halb so groß ist wie die kürzeste Seite des
Teilbilds, sondern im schlimmsten Fall etwa viermal so klein. Abgebildet ist dieses Problem in Abbildung 3.13. Hier ist der Ball gerade großgenug um nicht vom bestmöglichen Teilbild eingeschlossen zu
werden. Das Eltern-Teilbild muss demnach einen etwa viertel so großen Ball verifizieren. In Abbildung
3.14 tritt dieser Fall in einem Testbild auf. Der untere Schwellwert muss mit 0.3 also niedriger angesetzt
werden als zunächst besprochen. Die neue Ungleichung ist abschließend:
d:
n:
βlow :
βhigh :
Länge der kleinsten Seite des Teilbildes
Anzahl an Gradienten im Teilbild
Schwellwert für die untere Grenze
Schwellwert für die obere Grenze
π
d(1 − βlow ) < n < 4d(1 + βhigh )
2
(3.9)
Die neue Erkenntnis beeinflusst auch das erste Kritierium der Verifizierung in der Annahme, dass die
Schubfächer in einem Histogramm gleich verteilt sein müssen. Hat der Ball das typische Muster beste-
37
3 Formbasierte Ballerkennung
100%
50%
28%
Abb. 3.13: Kleinstmöglicher Ball in einem Teilbild. Die roten Teilbilder lehnen ab, daher muss das
grüne Eltern-Teilbild den Ball verifizieren
hend aus Pentagons oder ähnlichen Polygonen, kommen je nach Lage des Balls viele weitere Gradienten
dazu, welche die Verteilung der Richtungen streuen. Dieses Problem lässt sich mit dem Histogramm
als Information nicht ohne Weiteres lösen. Für die Auswertung wurde daher der Schwellwert α auf den
Wert 0.8 erhöht. Das so geschwächte Kriterium resultiert in einer höheren Anzahl an akzeptierten Kandidaten. Um dem entgegen zu wirken, muss daher ein dritter Schritt zur Verifizierung eingeführt werden.
Zusätzlich ist dieser Schritt wichtig, da in Abbildung 3.15 zu erkennen ist, dass die Größe des Balls unter
Umständen sehr schlecht durch ein Teilbild approximiert wird. Für den Fall, dass mehr als eine Teilbild
als Ball verifiziert wird, würde eine Plausibilitätsprüfung der Größe wenig Sinn machen, wenn ungewiss
ist wie groß der Ball nun wirklich ist.
Das Histogramm als Informationsquelle bietet sehr wenig Spielraum zur Verifizierung von Formen.
Für den dritten Schritt soll daher das Kantenbild ausgewertet werden. Dazu wurde bereits die HoughTransformation (siehe Seite 16) und das Arc-Fitting (siehe Seite 19) vorgestellt. In erster Linie sollte
ein möglichst schnelles Verfahren angewendet werden, da sich bereits andeutet, dass die notwendigen
Schritte zur Kantendetektion und zum Erzeugen des Integralen Histogrammbildes insgesamt sehr rechenaufwändig sind. Aus diesem Grund wurde eine Implementierung der Hough-Transformation aus
der OpenCV Bibliothek und eine eigene Implementierung des Arc-Fittings verwendet, um eine grobe
Abschätzung der Laufzeiten dieses zusätzlichen Schritts machen zu können. Dafür wurde das größtmögliche Teilbild (640x480) als Worst-Case-Szenario ausgewählt und beide Algorithmen bestmöglich
justiert, so dass sie den vorkommenden Ball schnellst möglich erkennen. Dieses Vorgehen soll das Potential der Algorithmen zeigen, wobei selbstverständlich zu beachten ist, dass im praktischen Gebrauch, die
Algorithmen auch mehr als doppelt so lange benötigen könnten. Die Laufzeiten beider Algorithmen sind
stark von der Menge an Kanten abhängig. Die Hough-Detektion bietet den Vorteil einer stets akkuraten
Detektion in Bezug auf Position und Größe des Balls, der Arc-Fitting-Algorithmus ist schnell, hat aber
Probleme wenn viele unwichtige Kanten im Bild vorhanden sind. Die Laufzeit der Algorithmen ist in
Tabelle 3.4 aufgetragen, wobei sie aus dem Mittel von 20 Durchläufen eines Algorithmus gebildet wird.
Das visuelle Ergebnis der Balldetektion ist in Abbildung 3.14 aufgetragen.
38
3 Formbasierte Ballerkennung
(a) Hough-Circle-Detektion
(b) Arc-Fitting-Detektion
Abb. 3.14: Ergebnis der Kreisdetektions-Algorithmen: Hough-Circles und Arc-Fitting
Algorithmus
Hough-Circles
Arc-Fitting
Ø Laufzeit in ms
9.234
0.062
Tabelle 3.4: Vergleich der Laufzeiten der Kreisdetektions-Algorithmen: Hough-Circles und Arc-Fitting
(Testprozessor: 3Ghz Intel CPU)
Der Laufzeitvergleich zeigt einen beachtlichen Unterschied. Die Hough-Circle-Detektion benötigt für
das gleiche Bild 100 mal mehr Zeit und ist damit als dritte Verifikation völlig ungeeignet. Das ArcFitting-Verfahren verspricht hier ein besseres Ergebnis, welches jedoch unter Vorbehalt zu betrachten ist.
Durch Beobachtung einiger verschiedener Testbilder ist zu erkennen, dass die Erkennungsrate für einen
echten Einsatz noch nicht ausreichend gut ist. Falsche Klassifikationen sind zwar nicht oder nur selten zu
erwarten, eine richtige Klassifikation wird aber durch umgebene Feldlinien oder Gegenstände erschwert.
Demzufolge müsste der implementierte Arc-Fitting-Algorithmus hinsichtlich der Robustheit verbessert
werden. Da dies den Rahmen dieser Bachelorarbeit sprengt, ist die Verbesserung an dieser Stelle ein
Vorschlag für eine weitere Ausarbeitung.
Aufgrund der unzuverlässigen Erkennungsrate, wird der dritte Verifikationsschritt im Folgenden nicht
eingesetzt. Das Ergebnis des gesamten Prozesses inklusive Arc-Fitting ist anhand eines Beispielbilds in
der Abbildungsreihe 3.15 zu sehen.
39
3 Formbasierte Ballerkennung
(a) Hypothesen
(b) Verifizierte Hypothesen
(c) Ergebnis des Arc-Fittings
Abb. 3.15: Ergebnis der rekursiven Suche, der Hypothesenverifizierung und des Arc-Fittings
40
4 Auswertung
Nachdem nun alle Punkte der formbasierten Ballerkennung erläutert und optimiert wurden, steht nun
noch die Auswertung der Erkennungsrate und die der Laufzeit aus.
Die Laufzeitanalyse wird auf der Zielhardware ausgeführt und unter möglichst vielen verschiedenen
Szenen getestet. Ziel ist es ein repräsentatives Ergebnis der mittleren Laufzeit zu erhalten, um den praktischen Einsatz des Algorithmus bewerten zu können.
Die Auswertung der Erkennungsrate erfolgt offline mit einem Testsatz von 73 Bildern. Unter den
73 Bildern sind bis zu drei verschiedene Bälle zu finden: ein glänzend roter mit starken Reflektion,
ein weißer matter um Komplikationen mit den weißen Feldlinien zu prüfen und der orangene StandardTennisball (siehe Bälle in Abbildung 3.4). Erschwert werden die Bedingungen durch aufgestellte schwarze Hindernisse.
4.1 Laufzeitanalyse
Zur Messung der Laufzeiten wurde ein 2012er - Roboter (siehe Abbildung 1.7) an mehrere, möglichst
unterschiedliche Positionen auf dem Spielfeld gestellt. An jeder Position wurde der Ball vom weit entferntesten Punkt langsam in Richtung Roboter gerollt, sodass der Ball in verschiedenen Größen sichtbar
war. Die gesamte Prozedur wurde drei Minuten ausgeführt.
Gemessen wurden alle elementaren Schritte des Algorithmus. Diese sind die Glättung des Bildes,
die Kantendetektion, die Minimierung der Kantendicke, die Erzeugung des integralen Histogrammbilds,
die rekursive Suche und die Verifizierung. Um ein repräsentatives Ergebnis der einzelnen Laufzeiten zu
erhalten, wird der Durchschnitt aus allen gemessenen Laufzeiten gebildet.
Bildglättung
Kantendetektion
Minimierung der Kantendicke
Integrales Histogrammbild
Rekursive Suche
Kandidatenverifizierung
Summe
Gesamt Vision
Ø Laufzeit in ms
113.96
152.80
22.50
144.64
1.66
1.15
436.71
2.05 Bilder pro Sekunde
Bildglättung, Kantendetektion und Erzeugen des integralen Histogrammbilds benötigen jeweils über
100ms. In der Summe liegt die Laufzeit des gesamten Algorithmus zur formbasierten Ballerkennung
zwischen 400 und 450ms, sodass letztendlich etwa 2 Bilder pro Sekunde verarbeitet werden können.
Die Bildglättung und die Kantendetektion benötigen viel Zeit, da die Konvolutionsmatrizen auf alle
41
4 Auswertung
drei Farbkomponenten des Bilds angewendet werden müssen. Bei der Kantendetektion kommt zusätzlich die Berechnung des Arkustanges hinzu. Das erzeugen des integralen Histogrammbilds ist wie auf
Seite 35 bereits erwartet ebenso sehr zeitintensiv, da pro Bildpunkt zwei Histogramme mit 18 Schubfächern summiert werden müssen. Die restlichen Teile des Algorithmus haben relativ gesehen, keinen
nennenswerten Einfluss auf die Gesamtlaufzeit.
4.2 Erkennungsrate
Für die Erkennungsrate wurden alle vorkommenden Bälle mit umschließenden Quadraten annotiert. Um
sie auszuwerten, werden die annotierten Bilder mit den verifizierten Teilbildern verglichen. Überlappen
sich die Rechtecke und teilen sich mehr als 50 Prozent ihrer Fläche, so wird die Detektion als wahr deklariert. Alle anderen werden als falsch deklariert.
Sei G die Summe an detektierbaren Bällen1 in allen Testbildern und W die Summe an erkannten
Bällen. Dann ist Wp = W ·100
der prozentuale Anteil an korrekt erkannten Bällen. Sei F die Summe an
G
falsch erkannten Bällen im Bild.
G
W
Wp
100 −Wp
F
59
32
54.24%
45.76%
62
Tabelle 4.1: Erkennungsrate der formbasierten Ballerkennung
Neben der geringen Anzahl an richtig erkannten Bällen fällt besonders die Anzahl an falschen Klassifikationen auf. Bei 73 Bildern beläuft sich das auf fast eine falsche Klassifikation pro Bild. Eine große
Anzahl an falschen Klassifikationen wäre akzeptabel, wenn zumindest ein sehr großer Teil korrekt erkannt werden würde. Hier könnte durch zusätzliche Verifikation nachfolgend noch aussortiert werden.
Die schlechte Erkennungsrate ist vor allem auf die selten zutreffende Anforderung eines vollständigen
Histogramms oder einer fehlenden Gleichverteilung zurückzuführen. Neben teilweise verdeckten Bällen,
besitzt vor allem der rote Ball ein großen Glanzpunkt, welcher viele Gradientenrichtungen zum Teilbild
hinzufügt und die Gleichverteilung abschwächt. Auch der weiße Ball wird im Normalfall nicht erkannt,
wenn er direkt auf einer weißen Feldlinie liegt. In diesem Fall ist die Ballkante, auf Grund zu geringer
Intensitätsdifferenzen, unvollständig.
Die hohe Rate an falschen Klassifikationen ergibt sich aus der Tatsache, dass besonders Hindernisse
und teilweise auch sich kreuzende Feldlinien zu einem gefüllten Histogramm und damit zu einer wahren
Aussage führen.
In Bezug auf die ungenügende Erkennungsrate, ist es an dieser Stelle hinfällig ein Vergleich mit der
aktuell eingesetzten farbbasierten Ballerkennung zu ziehen.
1 Detektierbar
meint hier, dass mehr als etwa 33% der Ballfläche sichtbar ist.
42
5 Fazit
5.1 Zusammenfassung
In dieser Arbeit wurde ein Ansatz zur formbasierten Ballerkennung auf dem Methodenvorschlag von
Hamid Reza Moballegh vorgestellt und evaluiert. Ziel war es, die Anforderung der für 2012 geänderten
Technical Challenge zu erfüllen und einen Ball beliebiger Farbe und beliebigem Musters um Hindernisse
in das Tor zu dribbeln.
Dafür wird die Eigenschaft ausgenutzt, dass alle Gradientenrichtungen an einer Ballkante eines idealen Kreises gleich verteilt oft vorkommen, um einen Klassifikator zu bilden. Durch rekursives Einteilen
des Bildes und anschließender Eliminierung von Teilbildern, welche die Bedingung nicht erfüllen, werden uninteressante Bereiche aussortiert. Übrig gebliebene Teilbilder werden durch das Kriterium der
Gleichverteilung und durch das Kriterium der Kreisumfang-Gradientenanzahl-Korrelation gefiltert.
Zur Optimierung wurde eine optimale Kantendetektion evaluiert, sowie die rekursive Suche in ihrer
Funktion verbessert. Zusätzlich wurden Ansätze wie Hough-Transformation für Kreise und Arc-Fitting
versucht zu verwenden, um das Endergebnis zu verbessern.
Die Auswertung der Erkennungsrate und der Performance des entwickelten Algorithmus zeigen jedoch, dass ein praktischer Einsatz eher begrenzt möglich ist. Gründe dafür sind eine zu rechenintensive
Vorverarbeitung und die zu selten zutreffenden Annahme, eines perfekten Kreises.
5.2 Vor- und Nachteile
In diesem Abschnitt sollen nun zusammenfassend alle Vor- und Nachteile der evaluierten formbasierten
Ballerkennung dargelegt werden.
Vorteile:
• Vorselektierung: Viele Bereiche lassen sich mit Hilfe des Integralen Histogrammbilds und der
rekursiven Suche vollkommen ausschließen. Die Menge an zu bearbeitenden Informationen reduziert sich.
• Universalität: Das erzeugte integrale Histogrammbild ist nicht nur für eine Balldetektion anwendbar. Vorstellbar sind verschiedene Methoden, welche sich die Auswertung von Gradientenrichtungen zu nutze machen.
Nachteile:
• Langsam: Die Berechnungen vor der Detektion wie das Glätten, das Ausführen der Kantenminimierung und das Erzeugen des integralen Histogrammbilds dauern sehr lange, sind aber notwendig
um ein gutes Kantenbild zu erhalten und damit die Histogramme verifizieren zu können.
43
5 Fazit
(a)
(b)
(c)
(d)
Abb. 5.1: Detektionsproblem bei bestimmten Ballhintergründen. a) Problematischer Hintergrund c)
Problemloser Hintergrund b) und d) Gefärbtes Gradientenbild. Grün: Gradienten zeigen nach oben,
Blau: Gradienten zeigen nach unten.
• Schlecht approximierte Ballgröße: Der kleinst mögliche Balldurchmesser von einem Viertel
der kürzesten Teilbildseite ist für eine gute Abschätzung der echten Ballgröße unzureichend ohne
weitere Klassifikation.
• Unzureichende Verifikation: Die Verifikation des Histogramms ist auf Grund des stark variierenden Balldurchmessers und des unvorhersehbaren Ballmusters schlecht durchführbar.
• Detektionsproblem bei zwei verschiedenen Hintergründen: Die Eigenschaft der ersten Ableitung, je nach Intensitätsan- oder abstieg positiv oder negative Werte zu erzeugen, kann zu einem
Problem bei zwei verschiedenen Ball-Hintergründen führen. Abbildung 5.1b zeigt dies anhand
eines Beispielbilds. Gradienten mit positiver y-Komponente sind Blau und Gradienten mit negativer y-Komponente Grün markiert. Es ist zu erkennen, dass alle Gradienten eine positive yKomponente besitzen. Es kann damit nicht zu einem vollständig gefüllten Histogramm kommen.
Dieser Fall könnte auftreten, wenn der Ball vor einem Gegenstand oder einem Gegner liegt.
Es ist abschließend festzustellen, dass die vorgeschlagene Annahme zwar ein Aussortieren von Regionen im Bild ermöglicht, aber keine vertrauenswürdige Klassifikation für einen Ball ist. Es gibt zu
viele Fälle in denen der Ball nur teilweise sichtbar ist. Durch Schattenwurf, Glanzpunkte, Muster oder
ungenügenden Kontrast zwischen Ball und Hintergrund kommt es zu fehlenden Gradientenrichtungen,
die die Auswertung der Histogramme erschwert. Folgerichtig muss eine Abschwächung von Bedingungen vorgenommen werden, welche daraufhin die Anzahl der Hypothesen wesentlich erhöht. Notwendig
wäre dann eine weitere Klassifikation. Durch die hohe Laufzeit jedoch, ist es nicht ertragreich die Histogrammanalyse als Basis zu verwenden.
44
6 Ausblick
Trotz des negativen Fazits, muss das Verfahren nicht vollständig verworfen werden. Die Eliminierung
von Suchbereichen könnte weiterhin von Interessen sein und müsste lediglich schneller berechnet werden.
6.1 Verbesserungsmöglichkeiten
Um dies zu erreichen gibt es verschiedene Ansätze. Möglich ist eine Unterabtastung des Bildes um das
Integrale Histogrammbild in seiner Größe zum Beispiel zu halbieren. Auch das Auslagern auf weitere
ungenutzte Hardware ist sinnvoll, da dadurch das Erzeugen parallel geschehen kann. Im Rahmen dieser
Arbeit wurde dieser Ansatz versucht auf dem noch ungenutzten DSP1 auf dem IGEP-Board anzubinden.
Leider konnte jedoch das Kamerabild dem DSP nicht verfügbar gemacht werden. Auch der Beispielcode
des Herstellers Texas Instruments funktionierte nicht. Ein Nachteil bei der Verwendung des DSP’s ist
jedoch, dass bei einem Wechsel der Hardware, auch das Programm portiert werden muss und unter
Umständen auch wieder auf dem Hauptprozessor laufen muss.
Einen besseren Ansatz zur Verbesserung verspricht das Paper von Müller, Lenz, Barner und Knoll,
welche das Integrale Histogrammbild adaptiv erzeugen [MLBK08]. Dabei wird durch Einteilen des Bildes in gleichfarbige Bereiche nicht für jeden Pixel ein Histogramm erzeugt, sondern nur für jedes dieser
besagten Bereiche.
6.2 Anwendbarkeit
Das integrale Histogrammbild bietet, eine entsprechende Performance vorausgesetzt, eine gute Grundlage für jegliche Objektdetektionen. Durch zukünftige Verschärfung der RoboCup-Regeln werden in
absehbarer Zeit auch die Tore einfarbig. Auch beliebige Farben sind möglich. Hier könnten mit einer
ähnlichen Methode uninteressante Bereiche aussortiert werden.
Außerhalb der doch sehr kontrollierten RoboCup-Umgebung ist der Einsatz der vorgestellten Methode
nur denkbar, wenn der Hintergrund des zu detektierenden Objekts sehr wenige Informationen beinhaltet.
6.3 Alternativen
Da sich die evaluierte Methode nicht zur Detektion von Bällen im RoboCup eignet, werden im letzten Abschnitt dieser Arbeit mögliche Alternativen vorgeschlagen. Aus den gewonnen Erkenntnissen zu
1 Digitaler
Signalprozessor
45
6 Ausblick
Verfahren und deren Laufzeiten ist vor allem entscheidend, eine Alternative zu finden, welche weniger
zeitintensiv ist. Dabei sollte die Erkennungsrate selbstverständlich nicht mit sinken.
Die Detektion auf Basis der Kanten erscheint als sinnvoll, da Farben oder Helligkeitsunterschiede wenig universell sind. Da die Kante des Balls nicht immer vollständig ist, sollte auch ein etwa halb verdeckter Ball erkannt werden. Um dies zu erreichen, könnte die Hough-Transformation für Kreise verwendet
werden. Zwar ist diese ebenso zeitintensiv, jedoch ist sie sehr robust. Hier sollte evaluiert werden, ob
die Bildglättung wegfallen kann. Die Applikation des Kantendetektions-Operators kann zur Beschleunigung, je nach Bereich im Bild, auf jeden zweiten oder dritten Pixel erfolgen. Hier kann die Annahme
getroffen werden, dass ein Ball im unteren Teil des Bildes größer erscheint, als im oberen Teil. In den
oberen Bildbereichen müssen daher mehr Bildpunkte ausgewertet werden, als in den unteren. Die Verifizierung der produzierten Hypothesen sollte anschließend durch eine Plausibilitätsprüfung geschehen.
Dabei gilt eine Hypothese als Plausibel, wenn ihre Größe gleich der errechneten Größe an dieser Position
ist. Da die Ballgröße bekannt ist und die Annahme getroffen werden kann, dass der Ball auf dem Boden
liegt, kann durch geeignete Matrix-Transformation ein Bildpunkt in Weltkoordinaten umgerechnet werden und umgekehrt. Der unterste Punkt der Ballhypothese wird also in Weltkoordinaten umgerechnet,
um die Höhe des Balls verschoben und anschließen wird der höchste Punkt zurück in Bildkoordinaten
umgerechnet. Die Differenz zwischen unterstem und errechnete Punkt ist dann die erwartete Größe des
Balls an dieser Position.
Eine weitere Alternative, wäre das Verwenden der bereits eingesetzten Kantendetektion der Berlin
United - FUmanoids. Das eingesetzte Gradient Vector Griding [Sch11, Mob11] bestimmt dabei den
Verlauf von Kanten innerhalb der Zellen eines Rasters. Eine Zelle ist dabei in der aktuell eingesetzten
Version 16 mal 16 Pixel groß. Auf diese Weise wird pro Zelle ein Kantenverlauf zugeordnet und anschließend mit umliegenden Zellen anhand ihrer Farbe und Ausrichtung verbunden. Während dieses Ablaufs
kommt es auch zu Zellen, welche nicht durch ihre Nachbarn und deren Farbe zugeordnet werden können. Diese Zellen gehören dann meist zu einem Hindernis oder zu einem Ball und können als Grundlage
für die weitere Balldetektion verwendet werden. Eignen würde sich dafür besonders das in dieser Arbeit
vorgestellte Arc-Fitting.
Unabhängig von dem verwendeten Verfahren, sollte ein Tracking in Betracht gezogen werden. Das
Tracking prädiziert anhand von letzten Ballpositionen und der Eigenbewegung des Roboters die nächste
Ballposition. Im ersten Schritt sollte also die Detektion um den Bereich des prädizierten Balls vollzogen
werden, da hier die Wahrscheinlichkeit am höchsten ist. Auf diese Weise kann im normalen Spielverlauf
die Rechenzeit stark vermindert werden.
46
Literaturverzeichnis
[BCMM08] BARRILE, Vincenzo ; C ACCIOLA, Matteo ; M EDURI, Giuseppe M. ; M ORABITO, Francesco C.: Automatic recognition of road signs by Hough transform. In: International archives
of the photogrammetry, remote sensing and spatial information sciences (2008)
[Bos12] B OSCH, Torie: Why You Should Care About RoboCup. http://www.slate.
com/articles/technology/future_tense/2012/06/robocup_2012_
how_robot_soccer_has_led_to_robotics_breakthroughs_.html.
Version: Juni 2012, Abruf: 07.07.2012
[Can86] C ANNY, John F.: A Computational Approach to Edge Detection. In: IEEE Transactions on
pattern analysis and machine intelligence 8 (1986), November, Nr. 6, S. 679–698
[CM03] C OATH, Genevieve ; M USUMECI, Phillip: Adaptive Arc Fitting for Ball Detection in RoboCup. In: APRS Workshop on Digital Image Computing (2003), Februar
[Cro84] C ROW, Franklin C.: Summed-Area Tables for Texture Mapping. In: Computer Graphics
18 (1984), Juli, Nr. 3
[DH72] D UDA, Richard O. ; H ART, Peter E.: Use of the Hough transformation to detect lines and
curves in pictures. In: Commun. ACM 15 (1972), Januar, Nr. 1, 11–15. http://dx.doi.
org/10.1145/361237.361242. – DOI 10.1145/361237.361242. – ISSN 0001–0782
[Doh12] D OHRMANN, Lisa: Kalibrierungsfreie Vision für humanoide Fußball-Roboter, Freie Universität Berlin, Diplomarbeit, 2012
[DT05] DALAL, N. ; T RIGGS, B.: Histograms of oriented gradients for human detection. In: IEEE
Computer Society Conf. Computer Vision and Pattern Recognition CVPR 1 (2005), S. 886–
893
[FS95] F REUND, Yoav ; S CHAPIRE, Robert E.: A decision-theoretic generalization of on-line learning and an application to boosting. In: Proceedings of the Second European Conference
on Computational Learning Theory. London, UK, UK : Springer-Verlag, 1995 (EuroCOLT
’95). – ISBN 3–540–59119–2, 23–37
[FUm12] Berlin United - FUmanoids - Awards and Scores. http://www.fumanoids.de/
awards-and-scores/. Version: 2012, Abruf: 06.07.2012
[Gui07] G UILBOURD, R.: Entwurf und Implementierung eines Programms zur manuellen Farbkalibrierung im Rahmen des Projekts "Humanoide Fußballroboter". Studienarbeit, Freie
Universität Berlin, 2007
47
Literaturverzeichnis
[Höf08] H ÖFERLIN, Markus: Anpassungsfähige Ballerkennung im RoboCup. Universität Stuttgart,
2008
[Hou62] H OUGH, P.V.C.: Method and means for recognizing complex patterns. U. S. Patent 3, 069
654, Dezember 1962
[MLBK08] M ÜLLER, Thomas ; L ENZ, Claus ; BARNER, Simon ; K NOLL, Alois: Accelerating Integral
Histograms Using an Adaptive Approach. Version: 2008. http://dx.doi.org/10.
1007/978-3-540-69905-7_24. In: E LMOATAZ, Abderrahim (Hrsg.) ; L EZORAY,
Olivier (Hrsg.) ; N OUBOUD, Fathallah (Hrsg.) ; M AMMASS, Driss (Hrsg.): Image and Signal Processing Bd. 5099. Springer Berlin, 2008. – ISBN 978–3–540–69904–0, 209-217
[Mob11] M OBALLEGH, Dr. Hamid R.: Development of an Autonomous Humanoid Robot Team,
Freie Universität Berlin, Diss., 2011
[POP98] PAPAGEORGIOU, Constantine P. ; O REN, Michael ; P OGGIO, Tomaso: A General Framework for Object Detection. In: International Conference on Computer Vision (1998)
[Rob12a] RoboCup Soccer Humanoid League - About. http://www.tzi.de/humanoid/
bin/view/Website/WebHome. Version: Juli 2012, Abruf: 08.07.2012
[Rob12b] RoboCup Soccer Humanoid League Rules and Setup.
http://www.tzi.
de/humanoid/bin/view/Website/Downloads.
Version: Juni 2012, Abruf:
08.07.2012
[Sch00] S CHARR, Dr. H.: Optimale Operatoren in der Digitalen Bildverarbeitung, Ruprecht-KarlsUniversität Heidelberg, Diss., August 2000
[Sch11] S CHMUDE, Naja v.: Farb- und Kantenbasierte Objekterkennung Humanoider Roboter im
RoboCup-Szenario, Freie Universität Berlin, Diplomarbeit, 2011
[Sei10] S EIFERT, Daniel: Automatische Farbkalibrierung fußballspielender Roboter, Freie Universität Berlin, Diplomarbeit, 2010
[SOK+ 12] S EIFERT, Daniel ; OTTE, Stefan ; K ULICK, Johannes ; S CHMUDE, Naja v. ; D OHRMANN,
Lisa ; H EINRICH, Steffen ; D OHRMANN, Lisa ; M OBALLEGH, Hamid ; M IELKE, Sebastian
; F REITAG, Lutz ; H OHBERG, Simon ; AUER, Julius ; L OSCH, Max ; ROJAS, Raul: Berlin
United - FUmanoids Team Description Paper 2012. In: RoboCup 2012: Robot Soccer World
Cup XVI Preproceedings (2012)
[TMZ03] T REPTOW, André ; M ASSELLI, Andreas ; Z ELL, Andreas: Real-Time Object Tracking for
Soccer-Robots without Color Information. In: European Conference on Mobile Robotics
(2003), S. 33–38
[VJ01] V IOLA, Paul ; J ONES, Michael: Robust Real-time Object Detection. In: International
Journal of Computer Vision (2001), Juli
[VK10] V ELAMMAL, B.L. ; K UMAR, P. A.: An Efficient Ball Detection Framework for Cricket. In:
IJCSI International Journal of Computer Science Issues 7 (2010), Mai, Nr. 2
48
Abbildungsverzeichnis
1.1
1.3
1.4
1.2
1.5
1.6
1.7
Aufbau des Fußballfelds . . . . . .
Aldebaran NAO . . . . . . . . . . .
NimbRo Teen-Size . . . . . . . . .
Logo der RoboCup Initiative . . . .
Standardball der Kid-Size-Liga . . .
Logo der Berlin United - FUmanoids
Roboter 2012 . . . . . . . . . . . .
.
.
.
.
.
.
.
1
2
2
2
4
4
5
2.1
2.2
2.3
2.4
2.5
2.6
2.7
YCbCr - Farbraum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
YCbCr Farbverteilungen von zwei unterschiedlichen beleuchteten Spielfeldern . . . . .
Exemplarische Balldetektion mit Hell-Dunkel-Flächen . . . . . . . . . . . . . . . . . .
Schematische Darstellung von Intensitätsverläufen . . . . . . . . . . . . . . . . . . . .
Graustufenbild mit Vergößerung einer Pixelreihe des linken Torpfostens . . . . . . . . .
Beispielfunktion und erste Ableitung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ergebnisse der Konvolution mit dem horizontalen und dem vertikalen Kantendetektions
- Operator. (Normiert um negative Gradienten darstellen zu können) . . . . . . . . . . .
Kantenbild der Abbildung 2.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Robotersicht auf Hinderniss, Ball und Tor (in Grautönen) . . . . . . . . . . . . . . . . .
Auswirkung des Schwellwertfilters . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Strategien zur Minimierung der Kantenmenge . . . . . . . . . . . . . . . . . . . . . . .
Hough-Transformation für Kreise . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vier verschiedene Kombinationen von Hell-Dunkel-Flächen (Haar-like Features), entnommen aus [TMZ03, Abbildung 1] . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Arc-Fitting: Bestimmen von Punkten auf dem Kreisbogen (nach [CM03, Abbildung 5]) .
Arc-Fitting: Bestimmen des potentiellen Kreismittelpunktes durch Schnittpunkte . . . .
7
8
9
10
10
11
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Schematische Darstellung von Gradienten am Rand eines Kreises . . . . . . . . . . . .
Schematischer Ablauf der formbasierten Ballerkennung . . . . . . . . . . . . . . . . . .
Verlust von Farbinformation bei der Konvertierung von Farbwert zu Grauwert . . . . . .
Beispiel-Teilbilder und ihre zugehörigen Histogramme der Gradientenrichtungen . . . .
Zuordnen von Gradientenrichtung in Schubfächer . . . . . . . . . . . . . . . . . . . . .
Überlappende rekursive Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Beispielhistogramme und deren Gaußfunktionen . . . . . . . . . . . . . . . . . . . . .
Mit dem Median-Filter geglättete Bilder und deren Sobel-Kantenbilder nach Schwellwertfilterung mit θ = 5. Oben: Fenstergröße 5x5. Unten: Fenstergröße 15x15 . . . . . .
49
12
12
13
13
14
16
18
19
19
22
22
23
24
24
25
27
30
Abbildungsverzeichnis
3.9
3.10
3.11
3.12
3.13
3.14
3.15
Mit dem Gauß-Filter geglättete Bilder und deren Sobel-Kantenbilder nach Schwellwertfilterung mit θ = 5. Oben: Faltungsmatrixgröße 5x5. Unten: Faltungsmatrixgröße 15x15
Applikation von Non-maxima-suppression auf einem Kantenbild . . . . . . . . . . . . .
Berechnung und Verwendung des Integralbilds . . . . . . . . . . . . . . . . . . . . . .
Defekt der rekursiven Hypothesensuche . . . . . . . . . . . . . . . . . . . . . . . . . .
Kleinstmöglicher Ball in einem Teilbild . . . . . . . . . . . . . . . . . . . . . . . . . .
Ergebnis der Kreisdetektions-Algorithmen: Hough-Circles und Arc-Fitting . . . . . . .
Ergebnis der rekursiven Suche, der Hypothesenverifizierung und des Arc-Fittings . . . .
30
31
35
36
38
39
40
5.1
Detektionsproblem bei bestimmten Ballhintergründen . . . . . . . . . . . . . . . . . . .
44
50
Tabellenverzeichnis
3.1
3.3
3.4
Übersicht über den kleinst anzunehmenden Schwellwert α, um ein Histogramm als Ball
zu bewerten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Qualitativer Vergleich der Laufzeiten des Gauß- und des Median-Filters. (Testprozessor:
3Ghz Intel CPU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vergleich dreier Kantendetektions-Operatoren mit Hilfe einer Fehlerfunktion . . . . . .
Vergleich der Laufzeiten der Kreisdetektions-Algorithmen: Hough-Circles und Arc-Fitting
31
34
39
4.1
Erkennungsrate der formbasierten Ballerkennung . . . . . . . . . . . . . . . . . . . . .
42
3.2
51
27
Selbständigkeitserklärung
Ich erkläre, dass ich die vorliegende Arbeit selbständig und nur unter Verwendung der angegebenen
Literatur und Hilfsmittel angefertigt habe.
Berlin, den 28.01.2008
Max Maria Losch
52

Documentos relacionados