Objekterkennung ist ein weit gefächertes Gebiet und umfasst eine Vielzahl von Verfahren zur Vermessung und Kategorisierung von Objekten mittels unterschiedlichster Sensorsysteme, die je nach Umgebung, Beleuchtung und Art der Objekte die detektiert oder vermessen werden sollen, unterschiedlich geeignet sind und ensprechend ihre Vor- und Nachteile besitzen. Diese Diplomarbeit beschäftigt sich mit der Objekterkennung im Rahmen der Robotik, speziell im Roboterfußball, welcher sich in den letzten Jahren, aufgrund der sich daraus ergebenden Forschungsmöglichkeiten, immer größerer Beliebtheit erfreut.
Der Roboter soll den Regeln der Mirosot Kategorie der internationalen Organisation zur Förderung des Roboterfußballs FIRA entsprechen. Als Sensor für die Objekterkennung dient eine Digitalkamera. So wird in dieser Arbeit ausgehend von den Einschränkungen in den Abmessungen, bestimmt durch die Regeln der Kategorie Mirosot, eine geeignete Hardware-Plattform erarbeitet und Gründe für den Entscheid zur Wahl bestimmter Komponenten dargelegt.
Ausgehend von gängigen Methoden der Bildverarbeitung und der Aufwandsabschätzung für diese Algorithmen, wird nach einem Softwarekonzept gesucht, das auf der gewählten Plattform den gestellten Anforderungen entspricht. Ziel ist in erster Linie die Erkennung des Spielballes, ein oranger Golfball und der farbig markierten Tore. Da Standardverfahren aber nicht auf die spezielle Hardware optimiert sind und auch ansonsten hohe Anforderungen an die Rechenleistung stellen, wird ein Konzept vorgestellt, das es erlaubt einfache geometrische Formen wie Kreise oder Rechtecke zu detektieren und zu vermessen.
Dieses neue Konzept greift teilweise auf in der Fachliteratur bekannte Methoden zurück die hierfür entsprechend optimiert werden, enthält aber auch einen neuen Ansatz, der es erlaubt den Anforderungen durch die hohe Dynamik der Bewegung der zu detektierenden Objekte Rechnung zu tragen. So entstand ein Bilderkennungssystem mit einer Erkennungsrate von 60 Bildern pro Sekunde. Für den Spielball liegt die Genauigkeit bei +/- 1 mm in einer mittleren Entfernung von 50 cm. Dies bei einem durchschnittlichen Leistungsverbrauch von 1,5 Watt und Dimensionen der Hardware die in einem Würfel von 7,5 cm Kantenlänge Platz finden.
Inhaltsverzeichnis
Kapitel 1 Aufgabenstellung
1.1 Roboterfußball
1.1.1 FIRA
1.1.2 Robocup
1.2 Anforderungen and das Vision System
Kapitel 2 Begriffsbildung
2.1 Das menschliche Sehen
2.1.1 Der Aufbau des Auges
2.2 Farbton, Helligkeit und Sättigung
2.3 Farbräume und ihre Entstehung
2.3.1 Drei-Komponenten-Theorie
2.3.2 Der RGB-Farbraum
2.3.3 Von der analogen in die digitale Welt
2.3.4 Der FHS-Farbraum
2.3.5 FHS ähnliche Modelle
2.3.6 Das YUV-Farbmodell
2.3.7 Das YCbCr-Farbmodell
2.3.8 Abtastfrequenzen
2.4 Auflösung von digitalen Bildern
2.5 Videoübertragung
2.5.1 Bildübertragung allgemein
2.5.2 ITU-R BT.601
2.5.3 ITU-R BT.656
Kapitel 3 Methoden der Bilderkennung
3.1 Grundlegende Begriffe
3.2 Das Schichtenmodell
3.3 Aufnahme
3.4 Vorverarbeitung
3.4.1 Charakterisierung digitaler Bilder
3.4.2 Punktoperatoren
3.4.3 Globale Operatoren
3.4.4 Operationen im Frequenzbereich
3.4.5 Transformation der Ortskoordinaten
3.5 Segmentierung
3.5.1 Schwellwertverfahren
3.5.2 Kantendetektion
3.5.3 Kantennachbearbeitung
3.5.4 Morphologische Operatoren
3.6 Merkmalsextraktion und Objektidentifikation
3.6.1 Opening und Closing
3.6.2 Vektorisierung
3.6.3 Modellierung
3.7 Interpretation
3.8 Rückkopplungen
Kapitel 4 Systemarchitektur und Wahl der Komponenten
4.1 Rahmenbedingungen
4.1.1 Abmessungen
4.1.2 Leistungsverbrauch
4.2 Architektur des Objekterkennungssystems
4.3 Bildaufnahme
4.3.1 Objektiv
4.3.2 Fotosensor
4.3.3 Image-Sensoren und Kameramodule am Markt
4.3.4 Monokamera gegen Stereokamera
4.3.5 Kameramontage
4.4 Prozessor
4.4.1 Fixkomma gegen Fließkomma
4.4.2 DSPs am Markt
4.5 Speicher
4.5.1 RAM
4.5.2 Flash
4.6 Tinyphoon
Kapitel 5 Realisierung und Ergebnisse
5.1 Entwicklungstools
5.1.1 Altium Designer
5.1.2 VDSP++
5.1.3 JTAG
5.2 Schaltplan und Platinenlayout
5.2.1 Schaltplan
5.2.2 PCB-Layout
5.3 Betriebssystem
5.4 Software-Bibliotheken zur Bilderkennung
5.5 Treibersoftware
5.5.1 PLL
5.5.2 SDRAM-Controller
5.5.3 GPIO
5.5.4 SCCB
5.5.5 Kamerainitialisierung
5.5.6 Kamerkalibrierung
5.5.7 PPI und DMA
5.5.8 Flashspeicher
5.6 Bootvorgang
5.7 Aufnahmetests
5.7.1 AEC und AWB
5.7.2 Auflösung und Objektgrößen
5.8 DMA und Speicherverwaltung
5.8.1 Framebuffer
5.8.2 Cache der Bilddaten
5.8.3 Synchronisation der DMA-Transfers
5.9 Der Objekterkennungsalgorithmus
5.9.1 Vorverarbeitung des Bildes
5.9.2 Wahl eines geeigneten Farbraums
5.9.3 Kantendetektion und Farbklassifizierung
5.9.4 Nachbearbeitung der Segmente
5.9.5 Das „Short Line Detection“ Konzept
5.9.6 Die Modellierung und Objektbestimmung
5.9.7 Bildkoordinaten
5.10 Transformation der Bild- in Roboterkoordinaten
5.10.1 Koordinatentransformation
5.10.2 Testaufbau
5.10.3 Methode der kleinsten Quadrate
5.10.4 Stückweise lineare Approximation
5.11 Ablauf und Timing des Algorithmus
5.12 Performance optimiertes Kodieren
5.13 Evaluierung der Performance
5.13.1 Genauigkeit
5.13.2 Ausführungszeit
5.13.3 Leistungsaufnahme
5.14 Erkenntnisse und Problembereiche
Kapitel 6 Weitere Entwicklungen
6.1 FPGAs
6.2 Drehbarer Stereokopf
6.3 Neue Prozessoren
6.4 Neue Kameramodule
6.5 Autofokus
6.6 Verbesserungen des Monokamerasystems
6.6.1 Verdoppelung der Framerate
6.6.2 Verringerung der Empfindlichkeit gegen Verdeckung
6.6.3 Verbesserte Objektdetektion
6.6.4 Weniger Empfindlichkeit gegenüber Helligkeitsänderungen
6.6.5 Verringerung der Ausführungszeit
6.7 Intelligenter Bildverarbeitungssensor
Kapitel 1 Aufgabenstellung
Objekterkennung ist ein weit gefächertes Gebiet und es gibt mittlerweile zahllose Verfahren mittels unterschiedlichster Sensoren zur Detektion und Vermessung von Objekten. Im vorliegenden Fall geht es um die Entwicklung eines passiven bildgebenden Verfahrens zur Entfernungsbestimmung eines autonomen mobilen Roboters von anderen Objekten. Andere Objekte heißt in diesem Fall, da der Roboter Fußball spielen soll, um den Ball die Tore und evt auch die Gegner. Die Herausforderung liegt in den kleinen Abmessungen des Roboters und der damit verbundenen eingeschränkten Verfügbarkeit von Energie und Rechenleistung. Ziel ist somit die Entwicklung eines „intelligenten Sensors“ der die Abstände des Roboters zu Objekten definierter Größe an einer Kommunikationsschnittstelle zur Verfügung stellt. Die Bildaufnahme soll mittels einer Videokamera erfolgen. Getestet wird dieser Sensor im Rahmen von Roboter Fußballspielen.
1.1 Roboterfußball
Fußball spielende Roboter erfreuen sich immer größerer Beliebtheit, da dieses Spiel ein breites Forschungsfeld bietet und unterschiedlichste Disziplinen und Forschungsschwerpunkte vereint. Nicht nur die Testmöglichkeiten unter „realen“ Bedingungen, sondern auch die hohe Dynamik des Spiels, das höchste Anforderungen an Sensorik und Mechanik stellt, bieten einen Anreiz sich diesem Thema zu widmen.
Es gibt derzeit zwei große konkurrierende Verbände die internationale Meisterschaften im Roboterfußball in den unterschiedlichsten Kategorien veranstalten. Es sind dies die FIRA und der Robocup.
1.1.1 FIRA
FIRA steht für „Federation of International Robosoccer Association“. Sie wurde 1995 von Prof. Jong-Hwan Kim gegründet und organisiert seither jährlich internationale Meisterschaften im Roboterfußball in unterschiedlichen Kategorien [FIRA06]. Die Ligen reichen von einer reinen Simulationsliga bis hin zu humanoiden Robotern die in einem Elfmeterschiessen gegeneinander antreten.
Im folgenden wird die Liga in der der Roboter antreten soll, vorgestellt und die Regeln für die physikalischen Grenzen des Roboters erläutert, um zu zeigen, mit welchen Bedingungen die Objekterkennung zurecht kommen muss.
Mirosot:
Die Roboter der Mirosot-Liga besitzen in der derzeitigen Konfiguration kaum „Intelligenz“. Sie werden von einem externen Host-Rechner gesteuert der das gesamte Spielgeschehen mittels einer über dem Spielfeld montierten Kamera aufnimmt wie es in Abbildung 1.1 dargestellt ist. Jeder Roboter ist obenauf mit einer Farbkodierung gekennzeichnet um im von der globalen Kamera aufgenommenen Bild Gegner und die Spieler der eigenen Mannschaft unterscheiden zu können. Die gesamte Software zur Bildauswertung und Objekterkennung und auch jene Algorithmen zur Steuerung jedes einzelnen Roboters bzw. die „Strategie“ laufen auf einem handelsüblichen Desktop-Rechner. Dieser sendet nur mehr die Steuersignale an jeden einzelnen Roboter.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1.1: Aufbau des MIROSOT Systems
Die Roboter selbst sind würfelförmig mit einer Kantenlänge von maximal 75 mm. Sie werden von zwei unabhängigen Rädern an den Seiten angetrieben.
Gespielt wird mit einem orangen Golfball mit einem Durchmesser von ca. 43 mm [DGV04] auf grünem Untergrund. Die Abmessungen des Spielfelds hängen von der Unterkategorie ab. Derzeit werden Spiele mit 3, 5 oder 11 Spielern pro Mannschaft veranstaltet [FIRA06].
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1.2: Regelschleife eines MIROSOT Roboters
Abbildung 1.2 zeigt ein prinzipielles Problem der Mirosot Roboter. Durch die Funkstrecke zwischen dem externen Host-Rechner und den Robotern entsteht eine Verzögerung die den Roboter entsprechend verspätet auf die im momentan aufgenommenen Kamerabild sich bietende Situation reagieren lässt. Dieser Umstand ließe sich umgehen, würde ein entsprechender Sensor direkt am Roboter montiert und dort eine Bildauswertung und Steuerung vorgenommen, beisbielsweise in besonders zeitkritischen Situation wie etwa den Abfangen sehr schnell geschossener Bälle, die Geschwindigkeiten von 5 m/s [NVK02] erreichen können.
Die Roboter selbst bewegen sich mit Geschwindigkeiten an die 3 m/s [NVK02].
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1.3: Typischer Mirosot Roboter
Die Verbesserung des Mirosot Systems soll jedoch nur ein Zwischenschritt sein auf dem Weg zum vollkommen autonomen Mirosot Roboter um aufzeigen zu können wie weit fortgeschritten die Technologien im Bereich der „Embedded Systems“ schon sind und welche Entwicklungsstufen in den nächsten Jahren noch zu erwarten sind.
1.1.2 Robocup
Robocup ist der zweite große Veranstalter internationaler Turniere im Roboterfußball. Die Organisation hat ihre Anfänge im Jahr 1993 in Japan und wurde dort von einem japanischen Komitee angestoßen. Die ersten offiziellen internationalen Meisterschaften fanden 1997 statt [RBC06]. Die Kategorien des Robocup sind jenen der FIRA Meisterschaften sehr ähnlich.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1.4: Typischer Robocup Roboter
1.2 Anforderungen and das Vision System
In Titel dieses Abschnitts spreche ich zum ersten Mal vom „Vision System“. Dieser Begriff wird im Verlauf der Arbeit noch einige Male gebraucht werden. Gemeint ist damit die gesamte Einheit, Software und Hardware, die notwendig ist, um vom aufgenommenen Bild zu Positionskoordinaten von Objekten zu kommen, relativ zum Ursprung des Roboterkoordinatensystems. Der Begriff beinhaltet selbstverständlich auch den Aufnahmesensor selbst.
Die im Abschnitt 1.1 dargelegten Daten vermitteln bereits einen Eindruck, welch hohe Anforderungen an eine Objekterkennung basierend auf einem bildgebenden Verfahren gestellt werden.
sehr geringe Abmessungen:
Die Außenabmessungen dürfen eine Kantenlänge von 7.5 cm nicht überschreiten
Leistungsverbrauch:
Ein Spiel dauert zwei mal fünf Minuten, die ein Roboter auf jeden Fall ohne Wiederaufladen der Akkus durchhalten muss. Wünschenswert wäre eine halbe Stunde, vielleicht mehr. Es steht ein NiMh Akku-Paket, bestehend aus 9 Zellen zu je 1.2 Volt mit 500 mAh zur Verfügung. In Serie geschaltet ergibt dies eine Nennspannung von 7.2 Volt [NVK02]. Seine Leistung ist durch die zur Verfügung stehenden Abmessungen begrenzt. Der Großteil davon (ca. 60 % bis 70 %) entfällt dabei auf die Motoren. Die Hardwareplattform für die Strategieeinheit und der Mikrokontroller für die Steuerung der Motoren benötigen ebenfalls einen Anteil an der zur Verfügung stehenden Leistung. Unter diesen Gesichtspunkten sollte der Leistungsverbrauch des Vision Systems 2 Watt nicht übersteigen.
Dynamik des Spiels:
Wie im Abschnitt 1.1.1 erwähnt bewegt sich der Ball mit einer Geschwindikeit von an die 3 m/s. Nehmen wir als Beispiel eine Bildwiderholrate von 25 Bildern pro Sekunde wie sie etwa der europäischen Fernsehnorm entspricht, so zeigt eine einfache Rechnung, dass sich der Ball innerhalb zweier aufeinander folgender Bilder bei einer Ball-Geschwindigkeit von 5 m/s um 20 cm weiterbewegt hat. Dies reicht aus um ihn zwischen der Aufnahme der Bilder gänzlich „aus den Augen“ zu verlieren. Gewünscht ist also eine Bildwiederholrate von mindestens 50 Bildern pro Sekunde (engl. „frames per second“), auch im Hinblick darauf einen Geschwindigkeitsvektor der Objektbewegung berechnen zu können, für die das Objekt für mindestens 2 im Zuge einer erhöhten Genauigkeit für 3 oder mehr Bilder im Blickfeld des Sensors sein muss. Nicht berücksichtigt ist dabei die Eigenbewegung des Roboters, sodass sich oben angenommene Ballgeschwindigkeit im schlimmsten Fall zur Geschwindigkeit des Roboters addiert.
Die hohe Dynamik birgt noch einen Nachteil der die Objekterkennung erschwert. In zwei aufeinander folgenden Bildern kann sich die Position des gesuchten Objekts im Bild vollständig ändern, sodass ein vermeintlicher Vorteil bei der Bilderkennung, nämlich dass ein einmal gefundenes Objekt sich im darauf folgenden Bild in der Umgebung der letzten bekannten Position befinden muss, hinfällig. Ein etwaiger daraus resultierender Geschwindigkeitsvorteil ist in vielen Spielsituationen nicht mehr vorhanden. Ob es trotzdem Vorteile bringt die Suche des Objekts bei einem Folgebild, auf die umliegenden Regionen der letzten detektierten Position zu konzentrieren, gilt es zu ermitteln.
Trägheit des Roboters:
Die hohe Dynamik des Spiels bringt einen weiteren Nachteil mit sich. Die Kamera kann immer nur die Szene, die sie gerade im Blickfeld hat, beobachten. Somit sind Vorgänge die hinter dem Roboter passieren nicht erfassbar, bzw. braucht der Roboter bei einer schnellen Ballbewegung die den Ball auf die von der Kamera abgewandte Seite spielt, eine Zeit bis er sich umgedreht hat. Wünschenswert wären somit zwei Kameras eine in jede Fahrtrichtung des Roboters, sodass vielleicht in einem Suchmodus der Bereich vor und hinter dem Roboter abgedeckt werden kann, bzw. sollte der Ball in den „Rücken“ des Roboters gespielt werden, sich dieser nicht umdrehen muss, sondern durch ein einfaches und wesentlich weniger zeitaufwendiges Umschalten der Kamera, der Ball weiter verfolgt werden kann.
Entfernungen:
Die Abmessungen des Spielfeldes ändern sich je nach Anzahl der Roboter pro Mannschaft. Der Golfball ist das kleinste Objekt im Spiel, dieses sollte auf einer Entfernung von einem Meter noch erkennbar sein. Welche Auflösung für dieses Kriterium notwendig sein wird, gilt es zu bestimmen.
Lichtverhältnisse:
Die Regeln der FIRA schreiben die Stärke der Beleuchtung über dem Spielfeld nicht exakt vor. Vorgeschrieben ist eine Beleuchtungsstärke von mindestens 500 Lux. Empfohlen wird eine flimmerfreie Lichtquelle [FIRR06]. Trotzdem kann es aus eigener Erfahrung, von Spielfeld zu Spielfeld zu erheblichen Schwankungen in der Beleuchtungsstärke kommen. Die Bilderkennung soll zu Demonstrationszwecken aber auch unter Lichtverhältnissen wie sie etwa in Büros herrschen, funktionieren. Dies erfordert eine gewisse Robustheit gegenüber Helligkeitsschwankungen. Dadurch, dass die Beleuchtung nicht genau spezifiziert ist, und zwar nicht nur in Art und Stärke sondern vor allem auch in der Position, entfallen von vornehinein alle Verfahren zur Objektidentifikation die mit Reflexionen arbeiten.
Verdeckung:
Da der Blickwinkel der Kamera im Gegensatz zum System mit globaler Kamera parallel zum Spielfeld liegt, kann es bei den Objekten zu Verdeckungen kommen. Ein gewisser Grad an Verdeckung sollte zulässig sein. Zu bedenken gilt es an dieser Stelle auch, dass das gesucht Objekt sich erst in das Blickfeld bewegen bzw. sich daraus entfernen kann, wodurch es möglich ist, dass sich in manchen Bildern das gesuchte Objekt noch nicht vollständig im Blickfeld des Roboters liegt, was einer partiellen Verdeckung gleichkommt. Inwieweit es möglich ist, dies zu berücksichtigen, gilt es zu Untersuchen. Auch inwieweit die Genauigkeit der Erkennung mit dem Grad der Verdeckung verknüpft ist und ob sich diesbezüglich Aussagen treffen lassen, soll ermittelt werden.
Variable Objektgröße:
Ein wichtiger Faktor der bei einer Bilderkennung für bewegliche Roboter im Allgemeinen zu berücksichtigen ist, ist die unterschiedliche Größe der Objekte im Bild je nach Entfernung des Roboters zum Objekt von Interesse. Die ist insofern wichtig da dadurch keine statischen Modelle für die Objekterkennung verwendet werden können, da die Größe des Objekts im Bild nicht im vorhinein feststeht wie sich zeigen wird, scheiden manche Verfahren zur Objektidentifikation bereits aus.
Genauigkeit:
Bei einer Roboterbreite von 7.5 cm und einem Balldurchmesser von 43 mm bedeutet dies, dass die Fläche des Roboters mit der der Ball gespielt wird, nicht einmal doppelt so breit ist wie der Ball selbst. Um dem Ball bei einem Schuss auch noch eine Richtung geben zu können, muss er also mit einer sehr hohen Genauigkeit getroffen werden. Sehr hoch bedeutet in diesem Fall die Abweichung sollte nicht mehr als 10 bis 20 mm betragen um sicher zu stellen, dass dem Ball gezielt eine Richtung gegeben werden kann. Dies gilt für den Nahbereich, wenn es zur Kollision mit dem Ball kommt. Ist der Ball weiter vom Roboter entfernt, reicht auch eine ungenaure Ballposition für die Entscheidungsfindung der Strategie, da im Zuge der Bewegung des Roboters die Positionen der einzelnen Objekte laufend aktualisiert werden.
Die Anforderungen lassen sich somit wie folgt zusammenfassen:
Tabelle 1.1: Anforderungen an die Objekterkennung
Abbildung in dieser Leseprobe nicht enthalten
Kapitel 2 Begriffsbildung
In der Fachliteratur gibt es im Rahmen der Bildverarbeitung eine Reihe von Begriffen, die oft auch fälschlich verwendet werden. Da uns die Bildverarbeitung auch im täglichen Leben immer wieder begegnet und sich viele Begriffe im täglichen Sprachgebrauch wieder finden möchte ich dem Leser vermitteln woher die Begriffe rund um die Bildverarbeitung stammen, und wie sie in dieser Arbeit verstanden und verwendet werden.
Zuallererst aber ein Hinweis über die Schreibweise von Zahlen in dieser Arbeit. Wenn nicht anders angegeben werden Zahlen immer in Dezimalschreibweise verstanden. Da in der Computertechnik jedoch das hexadezimale Zahlensystem sehr häufig verwendet wird, werden auch in dieser Arbeit Zahlen in diesem Zahlensystem gebraucht. Um Verwechslungen vorzubeugen, werden Hexadezimalzahlen immer mit einem vorangestellten „0x“ gekennzeichnet. Entlehnt wird diese Schreibweise aus der sehr weit verbreiteten Programmiersprache „C/C++“.
Da letztendlich immer der Mensch derjenige ist, der ein bearbeitetes Bild oder die Ergebnisse einer Bildverarbeitung interpretiert, sind viele Modelle wie etwa jene der Farbräume dem menschlichen Sehen entnommen oder zumindest an dasselbige angelehnt. Die Bild- oder Objekterkennung versucht letztendlich das menschliche Auge oder allgemeiner das menschliche Sehen als ganzes zu modellieren oder imitieren, wenn das derzeit auch nur bis zu einem gewissen Grad gelingen kann, da hinter dem menschlichen Sehen die Leistungsfähigkeit des menschlichen Gerhirnes sitzt, mit all seinem Wissen, seiner Lernfähigkeit und der Möglichkeit zur Abstraktion. Dinge, die nach heutigem Stand der Forschung auf dem Gebiet der künstlichen Intelligenz nur in sehr stark vereinfachten Modellen verstanden und umgesetzt werden können. Letztendlich ist die Modellierung des menschlichen Sehvermögens in seiner Gesamtheit das Fernziel der Entwicklungen auf dem Gebiet der künstlichen Intelligenz und der Bilderkennung. Beide Gebiete können nicht voneinander getrennt betrachtet werden.
Ich möchte darauf hinweisen, dass viele Begriffe oder Abkürzungen der Bildverarbeitung im allgemeinen Sprachgebrauch aber auch in der deutschen Fachliteratur auf englisch verwendet werden, weshalb ich in dieser Arbeit auch die englischen Begriffe aufführen werde und wo es mir sinnvoll erscheint auch jene anstelle der deutschen im weiteren Verlauf der Arbeit verwenden werde.
2.1 Das menschliche Sehen
Das menschliche Sehen ist in seiner Gesamtheit sehr komplex und noch nicht gänzlich verstanden, da es eng verbunden ist mit der menschlichen „Intelligenz“. Die Interpretation der vom Auge stammenden Bildinformationen hängt sehr mit unseren Erfahrungen unserer Lernfähigkeit zusammen, umfasst also alle Bereiche des menschlichen Denkens. Es soll hier auch nur auf das Auge selbst eingegangen werden und anhand von dessen Aufbau die Aufnahme der Farb- und Helligkeitsinformationen erläutert werden, dessen Verständnis für mehr Anschaulichkeit bei vielen Begriffen der Bildverarbeitung beitragen kann.
2.1.1 Der Aufbau des Auges
Die Bildaufnahme und die Bildverarbeitung sind beim menschlichen Auge untrennbar verbunden, da bereits im Auge eine Vorverarbeitung stattfindet [STN93].
Das menschliche Auge hat einen Durchmesser von ca. 24 mm und liegt in einem Fettpolster eingebettet in der Augenhöhle geschützt durch die es umgebenden Schädelknochen.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.1: Querschnitt durch den Augapfel
Abbildung 2.1 zeigt einen Querschnitt des menschlichen Auges und beschreibt die einzelnen Teile. Die Hülle des Augapfels besteht aus 3 Schichten. Die äußerste ist die Lederhaut die vorne in die durchsichtige Hornhaut (lateinische Bezeichnung Cornea) übergeht. Hinter der Hornhaut liegt die Pupille, eine Lichtdurchlässige Öffnung, die durch eine Veränderung ihres Durchmessers, eine Regulierung der Lichteintrittsmenge erlaubt und somit die Blende des menschlichen Auges darstellt. Direkt an die Pupille grenzt die Linse. Der rund ums sie anliegende Ziliarmuskel erlaubt eine Änderung der Linsenform, sodass damit die Lichtbrechung und letztendlich die Fokussierung verändert werden kann. Innen an die Lederhaut legt sich die Aderhaut, die für eine gute Durchblutung des Auges sorgt. Die innerste Schicht des Auges bildet die Netzhaut (lateinische Bezeichnung Retina), die hinten in den Sehnerv übergeht, der die Reize der Netzhaut an das Gehirn weiterleitet. Licht fällt durch Hornhaut und Pupille und erzeugt im hinteren Teil der Netzhaut ein auf dem Kopf stehendes reelles Bild [BVN96, STN93].
Die Netzhaut:
Spezielle Zellen an der Netzhaut wandeln das eintreffende sichtbare Licht in elektrische Reize um, die über den Sehnerv ins Gehirn geleitet werden. Unterschiedliche Zellen reagieren dabei unterschiedlich stark auf Wellenlänge und Intensität des einfallenden Lichts. Man unterscheidet grundsätzlich zwei unterschiedliche Zellentypen an der Netzhaut: die Stäbchen und die Zäpfchen. Sie liegen in der äußersten Schicht der Netzhaut, darunter liegen die Ganglienzellen angedockt an den Nervenfasern die letztendlich in den Sehnerv münden [BVN96, STN93]. Abbildung 2.2 zeigt einen Querschnitt durch die Netzhaut mit der Lage der Stäbchen und Zäpfchen.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.2: Querschnitt durch die Netzhaut
Die Zäpfchen:
Sie sind die Farbsensoren des Menschen. Sie reagieren also vorwiegend auf Unterschiede in der Wellenlänge des Lichts. Der Mensch besitzt drei verschiedene Arten von Zäpfchen, die sich in ihrer spektralen Empfindlichkeit unterscheiden, das heißt, jede Zapfenart hat ihre maximale Empfindlichkeit in einem anderen Wellenlängebereich. Somit unterteilt man die drei Arten nach dem Maximum der Empfindlichkeit in blaue, rote und grüne Zäpfchen. In der Abbildung 2.3 ist die spektrale Empfindlichkeit bzw. der Absorptionsgrad der drei Arten dargestellt. Die Ordinate stellt die normierte Empfindlichkeit in % dar. Die Kurven der drei Zäpfchen bz für die blauen, rz für die rotempfindlichen und gz für die grünen, sind in dieser Grafik gleich stark gewichtet, was nicht ganz der Realität entspricht. Die blauen Zäpfchen weisen in Wahrheit eine etwas höhere Maximalempfindlichkeit auf [RDG93]. Für das Verständnis ist dies aber von geringerer Bedeutung. Die Zahlen am Scheitelpunkt der Kurven geben jeweils die Wellenlänge an, bei der der entsprechende Zäpfchentypus seine maximale Empfindlichkeit respektive den maximalen Absorptionsgrad hat. Deutlich erkennbar die starke Überlappung der rot- und grünempfindlichen Zäpfchen. Zum Gesamteindruck trägt aber nicht nur die Empfindlichkeit der drei Rezeptoren bei, sondern natürlich auch deren Verteilung auf der Netzhaut. So ist der Anteil der grünempfindlichen Zellen höher als der der blauen oder roten. Zusätzlich ist auch deren Verteilung auf der Netzhaut nicht konstant. Die größte Konzentration findet man im so genannten „Gelben Fleck“ [BVN96]. Die Summe dieser Faktoren bestimmt schlussendlich unser Farbsehen. In der Abbildung 2.4 ist die aufsummierte Gesamtempfindlichkeit für das Tag- und Nachtsehen in Abhängigkeit der Wellenlänge dargestellt. Tagsehen bedeutet in diesem Fall, die Beleuchtungsstärke reicht aus um die Zäpfchen anzuregen. Liegt sie unter einem bestimmten Schwellwert so spricht man von Nachtsehen, da nur mehr die Reize der Stäbchen (siehe unten) im Gehirn verarbeitet werden [RDG93]. In der Literatur wird die Hellempfindlichkeitskurve für Tagsehen auch als fotoptische spektrale Empfindlichkeit bezeichnet, jene für Nachtsehen als skotopische spektrale Empfindlichkeit [RDG93].
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.3: Spektrale Verteilung der Absorption der einzelnen Zäpfchentypen
Die maximale Empfindlichkeit für Tagsehen liegt bei etwa 555 nm. Das menschliche Auge besitzt somit für die Farbe „gelbgrün“ die größte Empfindlichkeit. Dieser wichtige Umstand findet in der Bildverarbeitung allgemein und auch im weiteren Verlauf dieser Arbeit Berücksichtigung.
Die Farbe „gelbgrün“ war in der frühen Periode der Menschheit die dominante Farbe bei der Suche nach pflanzlicher Nahrung. Eine Tatsache, die die Empfindlichkeit genau für diese Farbe evolutionstechnisch erklären könnte [RDG93].
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.4: Normierte spektrale Empfindlichkeit für das Tag- und Nachtsehen
Die Stäbchen:
Liegt die Beleuchtungsstärke unter einem bestimmten Schwellwert, so reagieren die Zäpfchen nicht mehr in ausreichendem Maße auf eintreffendes Licht. An ihrer Stelle treten dann die Stäbchen die einerseits in größerer Zahl auftreten, ca. 75 bis 150 Millionen im Gegensatz zu den 6 bis 7 Millionen Zäpfchen [STN93], andererseits sind auch immer mehrere Stäbchen mit einem Nerv verbunden, im Durchschnitt an die 130 [STN93]. Diesen zwei Faktoren verdanken wir es, dass die Empfindlichkeit der Stäbchen um einige Größenordnungen höher als jene der Zäpfchen liegt, wodurch sehen auch unterhalb des Schwellwertes bei dem Zäpfchen noch angeregt werden, möglich ist. Da es von den Stäbchen aber nur einen Typus gibt ist in der Dunkelheit eine Farbunterscheidung nicht mehr möglich. Die unterschiedliche Anzahl und Verteilung bedingt aber auch, dass das menschliche Auge eine wesentlich bessere räumliche Auflösung für Helligkeits- als für Änderungen im Farbton hat. Ein weiterer Umstand der in der Bildverarbeitung Verwendung findet.
2.2 Farbton, Helligkeit und Sättigung
Die von den drei im Abschnitt 2.1.1 beschriebenen Farbdetektoren des menschlichen Auges ausgesendeten Signale werden unabhängig voneinander in das Gehirn gesendet und dort zu einem Gesamteindruck kombiniert und ergeben somit unser Farbempfinden [HBL89].
Der Mensch charakterisiert eine Farbe im Allgemeinen nach den drei Größen Farbton, Helligkeit und Sättigung. Diese Begriffe finden sich auch in der Bildverarbeitung wieder. Im Folgenden sollen die Begriffe nun erläutert werden. Sie werden im Zuge dieser Arbeit auch noch unter mathematischen Gesichtspunkten betrachtet werden. Da diese Begriffe immer wieder auch in der deutschen Fachliteratur in ihrer englischen Fassung verwendet werden, wird diese ebenfalls angeführt.
Farbton (engl. hue):
Der Farbton definiert die Art der Farbe als solches ohne Berücksichtigung der Helligkeit oder der Sättigung, z.B. Rotton oder Gelbton. Werden als Beispiel nur die grünen und roten Farbrezeptoren stimuliert, empfinden wird den Farbton als Gelb. Werden grüne und blaue Zäpfchen stimuliert sehen wir Cyan. Bei einem gleichmäßigen Reiz aller drei Typen empfindet man den Farbton weiß und je nach Intensität der Strahlung unterscheiden wir die unterschiedlichen Grautöne [RDG93].
Im allgemeinen Sprachgebrauch wird mit dem Begriff Farbe, meistens der Farbton gemeint.
Helligkeit (engl. brightness):
Bleibt das Verhältnis der Erregung der drei unterschiedlichen Zäpfchen konstant, aber die Stärke des auf die Netzhaut treffenden Lichts ändert sich, empfinden wir den durch das spektrale Verhältnis bestimmten Farbton als heller oder dunkler je nachdem ob die Lichtstärke zu- oder abnimmt. Bei den unbunten Farben, wie die Graustufen auch oft genannt werden, verschiebt sich die Empfindung von schwarz über unterschiedlich helles grau bis hin zu weiß [RDG93].
Sättigung (engl. saturation):
Die Sättigung einer Farbe beschreibt salopp ausgedrückt den Weißanteil der Farbe. Reine Spektralfarben, das heißt, Licht das aus nur einer Wellenlänge besteht auch monochromatisches Licht genannt, ist vollständig gesättigt. Es besitzt keinen Weißanteil. Weiß ist ungesättigt [RDG93]. Anders formuliert ist die Sättigung ein Maß für die spektrale Reinheit einer Farbe. Je breiter der Wellenlängebereich der zur farbempfindung beiträgt, desto geringer die Reinheit. Umgekehrt bedeutet ein schmaler Wellenlängebereich eine größere Reinheit und damit Sättigung [KSC96].
Die Sättigung wird in Prozent bzw. normiert mit einem Maximalwert von 1 angegeben. Liegt der Sättigungsgrad zwischen 10 und 20% so spricht man von schwacher Sättigung. Liegt sie zwischen 40 und 60% bezeichnet man sie als stumpf und eine als kräftig bezeichnete Farbe hat einen Sättigungsgrad von 80 bis 100% [RDG93]. Diese Angaben sind in Tabelle 1.1 noch einmal zusammengefasst.
Tabelle 2.1: Interpretation von Sättigungsgraden
Abbildung in dieser Leseprobe nicht enthalten
Im weiteren Verlauf wird auch ein mathematischer Zugang zu den Begriffen im Sinne der Bildverarbeitung erarbeitet.
2.3 Farbräume und ihre Entstehung
Aus der Betrachtung der Funktionsweise des menschlichen Auges erkennt man, dass der Farbeindruck eine Kombination aus dem Grad der Anregung der drei unterschiedlichen Farbrezeptoren ist. Das heißt, fällt Licht auf die drei Zäpfchentypen wird von jedem ein seinem Spektralbereich entsprechender Reiz ins Gehirn übertragen, welches diese drei getrennten Reize zu einem Farbton kombiniert oder „mischt“.
2.3.1 Drei-Komponenten-Theorie
Diese Erkenntnis legt die Vorgehensweise nahe, den Farbraum als eine Kombination dreier linear unabhängiger Basisvektoren zu interpretieren, wie es im Folgenden dargestellt ist.
Als Strahlungsquelle dient ein monochromatischer Sender, der mit einer bestimmten Wellenlänge λ sendet. Seine spektrale Farbvalenz Abbildung in dieser Leseprobe nicht enthalten kann dann wie folgt als ein Vektor im Farbraum dargestellt werden:
Abbildung in dieser Leseprobe nicht enthalten
Die drei Basisvektoren [Abbildung in dieser Leseprobe nicht enthalten], [Abbildung in dieser Leseprobe nicht enthalten] [Abbildung in dieser Leseprobe nicht enthalten]önnen dabei jeweils eine bestimmte Wellenlänge im Farbraum repräsentieren oder selbst wieder eine Vektorsumme darstellen. Im Allgemeinen wird ersteres verwendet. Die Komponenten A, B und C heißen spektrale Farbwerte und hängen von λ ab. Die Farbvalenz stellt sich somit als gewichtete Summe dreier linear unabhängiger Basisvektoren dar [RDG93].
2.3.2 Der RGB-Farbraum
Wie im vorigen Abschnitt beschrieben, ist die Wahl der Basisvektoren für den Farbraum nicht eindeutig. Nahe liegend wäre eine Verwendung der mittleren Wellenlängen der Spektralbereiche Blau, Grün und Rot. Sie liegen für Rot bei 700 nm, 546 nm für Grün und für Blau bei 436 nm. Tut man dies, so spricht man vom RGB-Farbraum [RDG93]. Die Basisvektoren Abbildung in dieser Leseprobe nicht enthalten, Abbildung in dieser Leseprobe nicht enthalten [Abbildung in dieser Leseprobe nicht enthalten] wir [Abbildung in dieser Leseprobe nicht enthalten]ür Rot bei λ = 700 nm, [Abbildung in dieser Leseprobe nicht enthalten]für Grün bei λ = 546 nm [Abbildung in dieser Leseprobe nicht enthalten]ür Blau bei λ = 436 nm. Der Farbraum der damit aufgespannt wird nennt sich RGB-Raum und die Farbvalenz für diesen Raum berechnet sich wie folgt:
Abbildung in dieser Leseprobe nicht enthalten.
Für die spektralen Farbwerte gilt dabei:
Abbildung in dieser Leseprobe nicht enthalten, Abbildung in dieser Leseprobe nicht enthalten, Abbildung in dieser Leseprobe nicht enthalten.
[Abbildung in dieser Leseprobe nicht enthalten], die spektrale Strahlungsdichte beschreibt im Wesentlichen die abgestrahlte Leistung eines monochromatischen Senders bei der Wellenlänge λ pro Flächeneinheit. Sie wird mit der spektralen Empfindlichkeit der Quelle gewichtet. Abbildung 2.5 zeigt die drei spektralen Empfindlichkeiten Abbildung in dieser Leseprobe nicht enthalten, Abbildung in dieser Leseprobe nicht enthaltenund Abbildung in dieser Leseprobe nicht enthaltender Quelle, wie sie für einen Standardbeobachter von der CIE (Commision Internationale de l’Eclairage) 1931 bzw. nach DIN5033 und noch einmal 1964, nach empirischer Ermittlung definiert worden sind.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.5: Normierte spektrale Empfindlichkeiten des RGB-Farbraums
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.6: Normierte spektrale Empfindlichkeiten des XYZ-Farbraums
Deutlich erkennbar ist, [Abbildung in dieser Leseprobe nicht enthalten] Werte annehmen kann, diese Farbwerte zwischen ca. 450 und 550 nm wären somit physikalisch nicht realisierbar. Durch lineare Transformation gelangt man aber zu drei neue Basisvektoren die keine negativen Werte mehr aufweisen, dieser neue Farbraum wird in der Literatur verallgemeinert als XYZ-Farbraum bezeichnet [RDG93].
Mit Hilfe dieses Farbmodells lassen sich nun alle in der Natur vorkommenden Farben darstellen. Dies stellt nur einen kleinen Auszug aus der Theorie der Farbenlehre dar und sollte nur als Hintergrundinformation dienen um zu einem besseren Verständnis zu kommen woher sich, die in heutigen Bildverarbeitungssystemen gebräuchlichen Farbdarstellungen, ableiten. Weiterführende Informationen finden sich in [FBS86].
2.3.3 Von der analogen in die digitale Welt
Die kontinuierlichen analogen Signale des Spektrums des sichtbaren Lichts müssen zur Bildverarbeitung in diskreter Form in der digitalen Welt repräsentiert werden. Dabei wird die von einem Aufnahmegerät aufgenommene Szene in einem Raster digitaler Bildpunkte umgesetzt, wobei jedem Bildpunkt eine Leuchtdichte zugeordnet wird. In der digitalen Bildverarbeitung bezeichnet man diesen Wert jedoch nicht als Leuchtdichte, da er nicht der physikalischen Interpretation des Begriffs, wie im obigen Abschnitt verwendet, entspricht, sondern als Grauwert (siehe folgende Abschnitte). Die digitale Repräsentation der aufgenommenen Szene nennen wir Grauwertbild oder Graubild. Der Grund für diese Bezeichnung wird aus den Erläuterungen der folgenden Abschnitte ersichtlich. Das Grauwertbild stellt somit eine Funktion f(x,y) von Grauwerten dar. Bei farbigen Bildern wird jeder Bildpunkt als ein n-Tupel von Funktionen repräsentiert (f 1 (x,y), f 2 (x,y),…,f n (x,y)). Die Anzahl und Art der Funktionen sind dabei Abhängig vom verwendeten Farbmodell, welche in den folgenden Abschnitten beschrieben werden.
Der digitale RGB-Farbraum
In der praktischen Anwendung in digitalen Bildverarbeitungssystemen ist der verallgemeinerte XYZ-Farbraum ohne Einschränkung nicht unmittelbar verwendbar. In der digitalen Welt muss auf Quantisierung und darstellbarem Wertebereich geachtet werden. In der Praxis wird für die drei Basisvektoren R, G, und B jeweils ein Wertebereich von 0 bis 255 festgelegt. Dieser Bereich ist mittels 8 Bit Datenbreite darstellbar. Die Farbe eines jeden B[Abbildung in dieser Leseprobe nicht enthalten] einem dreikanaligen Farbbild C ist somit eine Funktion der drei Variablen Rot, Grün und Blau auch Primärfarben oder Primärvalenzen genannt [KSC96], die jeweils Werte zwischen 0 und 255 einnehmen. Die Variablen x und y beschreiben hierbei die Position des Punktes im Bild.
Abbildung in dieser Leseprobe nicht enthalten.
Es lassen sich durch oben genannte Einschränkungen nicht mehr alle in der Natur vorkommenden Farben darstellen. Bei drei Byte pro Bildpunkt sind aber immerhin noch 16 772 216 Farben unterscheidbar.
Stellt man den Farbraum als dreidimensionales Diagramm dar, wobei jede der Primärfarben eine Achse einnimmt, so gelangt man zum RGB-Farbwürfel wie er in Abbildung 2.7 dargestellt ist. Schwarz liegt dabei im Koordinatenursprung Abbildung in dieser Leseprobe nicht enthalten, und Weiß an der Hauptdiagonale am Würfelrand Abbildung in dieser Leseprobe nicht enthalten. Die Hauptdiagonale wird auch Unbuntgerade genannt, da ihr entlang die oft auch als unbunte Farben bezeichneten Grauwerte liegen [RDG93].
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.7: Der RGB-Farbwürfel
Die Farbdarstellung soll hier nur als Vorstellungshilfe dienen und nicht als reale Darstellung der Farben, da die Farbwiedergabe von Medium zu Medium unterschiedlich sein kann.
Die Farbechtheit ist in dieser digitalen Form des RGB-Farbraums nicht mehr gegeben, da die Primärfarben von jedem Darstellungsgerät etwas anders wiedergegeben werden.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.8: RGB-Farbbild
Im Folgenden werden andere Farbräume und die Umrechnung aus dem RGB-Raum erläutert. Dabei wird aber nur mehr auf die in der digitalen Bildverarbeitung verwendeten eingegangen, ohne ausführlich auf das theoretische Farbmodell aus Abschnitt 2.3.2 zurückzugreifen.
2.3.4 Der FHS-Farbraum
FHS steht in diesem Fall für die Begriffe Farbton, Helligkeit und Sättigung. Sie dienen als Basis dieses Farbraumes, der näher am menschlichen Farbempfinden angelehnt ist. Im theoretischen Farbmodell werden diese neuen Basisvektoren durch Linearkombinationen aus den verallgemeinerten XYZ Vektoren gebildet (siehe Abschnitt 2.3.1) [RDG93].
Im Folgenden soll nun im Einzelnen erläutert werden, wie man von den im vorigen Abschnitt beschriebenen RGB Werten zu den Werten für Farbton, Helligkeit und Sättigung gelangt.
Farbton:
Der Farbton, englische Bezeichnung hue, charakterisiert die in einem Bildpunkt eines Farbbildes dominant enthaltene Farbe. Er wird in Grad angegeben und besitzt somit einen Wertebereich von 0° bis 360°, wobei beide Werte denselben Farbton beschreiben und dieser Punkt als Rot festgelegt wird. Formal ist H gegeben durch F=δ für alle B≤G und F=360°- δ für alle B>G, wobei gilt:
Abbildung in dieser Leseprobe nicht enthalten.
Für Rottöne gekennzeichnet durch B=G=0 und R≠0 gilt beispielsweise Abbildung in dieser Leseprobe nicht enthalten, das heißt, F=δ=0° [KSC96]. Aus der Gleichung ist ersichtlich, dass es einen undefinierten Wert für R=G=B gibt. Diese RGB-Konstellation definiert einen Grauwert, womit der Farbton obsolet ist. Er wird daher in den meisten Fällen gleich null gesetzt.
Helligkeit:
Die hier beschriebene Helligkeit ist nicht gleich zu setzten mit der im Abschnitt 2.3.1 beschriebenen, da der Begriff im Zusammenhang mit dem FHS-Farbraum keine Aussage über die Leuchtstärke der Quelle erlaubt. Es handelt sich hier eigentlich um den der Farbe entsprechenden Grauton, sprich der Projektion der Farbe auf die Unbuntgerade des RGB-Farbwürfels (siehe Abschnitt 2.3.2). In der Literatur hat sich aber der Begriff Helligkeit durchgesetzt, weshalb er auch in dieser Arbeit für diesen Farbraum verwendet wird. Oft ist auch der Begriff Intensität im Gebrauch, der aber ebenfalls mit der physikalischen Intensität der Strahlung eines Senders verwechselt werden kann und deshalb im Sinne einer konsistenten Terminologie hier genauso wenig verwendet werden sollte. Ebenso verhält es sich auch für die englischen Begriffe für Helligkeit (Brightness) und Intensität (Intensity) [RDG93].
Formal ist der Parameter der Helligkeit gegeben durch
Abbildung in dieser Leseprobe nicht enthalten
und entspricht dem arithmetischen Mittel der drei Farbkanäle R, G und B. Der Wertebereich für die Helligkeit ist derselbe wie jener im RGB-Farbraum.
Sättigung:
Die Interpretation des Begriffs Sättigung ist analog zu der im Abschnitt 2.2 beschriebenen. Der Wert der Sättigung ist abhängig von der Anzahl der Wellenlängen die zum Gesamteindruck der Farbe beitragen. Er lässt sich berechnen aus
Abbildung in dieser Leseprobe nicht enthalten.
Für R=G=B≠0, dies entspricht einem Grauwert ist die Sättigung gleich 0. Ist entweder R, G oder B null, die Summe jedoch ungleich null, so ist S stets maximal. Der Wertebereich für die Sättigung entspricht dem des RGB-Farbraums [KSC96].
Der FHS-Farbraum lässt sich in einer Doppelkegelform darstellen. Abbildung 2.9 zeigt eine solche Darstellung.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.9: Darstellung des FHS-Farbraums
Die Farben des RGB-Farbwürfels sind somit durch die drei Parameter Farbton (F), Sättigung (S) und Helligkeit (H) vollständig beschrieben. Die oben stehenden Gleichungen bieten das Werkzeug um den RGB- vollständig in den FHS-Farbraum überzuführen, mit Ausnahme einiger Singularitäten und etwaiger Rundungsfehler. Die Transformationsgleichungen sind bis auf die erwähnten Singularitäten umkehrbar.
Aufgrund der englischen Begriffe hue, saturation und intensity, wird dieser Farbraum auch als HSI-Farbmodell bezeichnet. Wird anstelle von „intensity“ der englische Begriff „lightness“ für Helligkeit verwendet, spricht man vom HSL-Modell.
2.3.5 FHS ähnliche Modelle
Es sind in der Literatur und auch in diversen Grafikprogrammen noch einige andere dem FHS sehr ähnliche Farbmodelle in Verwendung. Sie unterscheiden sich meistens nur in der Berechnung der Sättigung und des Helligkeitskanals, nicht aber in der Berechnung des Farbtons. Genannt seien an dieser Stelle das HSB („Hue, Saturation, Brightness“) Modell, oftmals auch HSV („Hue, Saturation, Value“) genannt. Das V bezeichnet die Grauwerte. B steht für die absolute Helligkeit (engl. brightness), wobei dieser Begriff hier nicht unbedingt in seiner physikalischen Bedeutung zu verstehen ist. Dieser Farbraum wird im Gegensatz zum FHS in der Form eines einfachen Kegels dargestellt. Die Transformation aus dem RGB in den HSV-Raum erfolgt ähnlich wie beim FHS-Farbmodell. Die Berechnung des S und V-Kanals unterscheiden sich aber.
2.3.6 Das YUV-Farbmodell
Auch das YUV-Modell ist ebenfalls an das menschliche Sehvermögen angelehnt. Der Kanal Y beinhaltet die Helligkeitsinformationen im Sinne des FHS-Farbmodells, wobei in diesem Fall, bei dessen Bildung aus dem RGB-Raum, die Empfindlichkeiten des menschlichen Auges berücksichtigt werden. Der Y-Kanal wird oft auch als Luminanzkanal bezeichnet. U und V beinhalten die Farbinformationen und werden als Chrominanz- oder Farbdifferenzkanäle bezeichnet, was bereits auf die Art und Weise ihrer Bildung aus dem RGB-Raum hindeutet. Der Y-Kanal errechnet sich Formal aus dem RGB-Raum wie folgt:
Abbildung in dieser Leseprobe nicht enthalten.
Aus der Gleichung ersichtlich, errechnet sich der Gesamthelligkeitseindruck zu ca. 60% aus dem Grün-, zu ca. 30% aus dem Rot- und nur zu ca. 10% aus dem Blauanteil der Farbe. Damit berücksichtigt der Y-Kanal im YUV-Farbmodell die spektrale Empfindlichkeitskurve aus Abschnitt 2.1.1 (vergleiche Abbildung 2.4), die ihre maximale Empfindlichkeit in der Nähe des grünen Bereichs aufweist.
Die Chrominanzkanäle entstehen aus der Differenz zwischen Blauanteil und Lumakanal, bzw. aus dem Rotanteil und dem Lumakanal. Formal sieht dies folgendermaßen aus:
Abbildung in dieser Leseprobe nicht enthalten, Abbildung in dieser Leseprobe nicht enthalten.
Wenn man den Wertebereich der RGB-darstellung zugrunde legt liegt der Wertebereich von Y zwischen 0 und 255. U und V können jedoch auch negative werte annehmen.
Auch die Funktionsgleichungen des YUV-Modells sind umkehrbar, womit sich aus der YUV-Darstellung wieder eindeutig das RGB-Modell gewinnen lässt.
Abbildung 2.10 zeigt die drei Kanäle Y, U und V gewonnen aus dem Farbbild aus Abschnitt 2.3.3. Das linke Bild zeigt den Y-Kanal, das mittlere die Farbkomponente U und das rechte den Kanal V.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.10: Das Farbbild aus Abbildung 2.8 in der YUV-Darstellung
2.3.7 Das YCbCr-Farbmodell
Das YCbCr-Modell entspricht im Wesentlichen dem YUV-Modell. Sie unterscheiden sich nur in den geringfügig unterschiedlichen Transformationsgleichungen die in der Norm CCIR601 [ITU94], bzw. in der Norm IEC601 spezifiziert wurden. Sie lauten wie folgt:
Abbildung in dieser Leseprobe nicht enthalten,
Abbildung in dieser Leseprobe nicht enthalten,
Abbildung in dieser Leseprobe nicht enthalten.
Durch die Additionen des Offsets von 128 wird vermieden, dass die Kanäle U und V negative Werte annehmen, was gewisse Vorteile bei der Datenspeicherung oder –übertragung bietet. Die Addition des Wertes 16 zu Y ist notwendig, da die Werte für Y auf den Bereich von 16 bis 235 begrenzt werden. Schwarz liegt somit bei einem Wert von 16 und Weiß entspricht 235. Die Y-Werte aus dem YUV Modell werden damit durch
Abbildung in dieser Leseprobe nicht enthalten
auf die Y-Werte für YCbCr abgebildet. Die Einschränkung erlaubt es in den Datenstrom Steuercodes einzufügen die außerhalb dieses Bereichs liegen und somit eindeutig von den Bilddaten unterschieden werden können. Durch diese Vorkehrungen ist das Modell gut geeignet für die digitale Videoübertragung, wo es auch am häufigsten eingesetzt wird, sowie auch für digitale Videoaufzeichnungen.
2.3.8 Abtastfrequenzen
Das menschliche Auge reagiert auf Veränderungen der Helligkeit wesentlich stärker als auf Veränderungen im Farbverlauf. Dieser Umstand kann ausgenutzt werden um die Datenmenge eines Farbbildes zu reduzieren. Gibt es im verwendeten Farbmodell getrennte Kanäle für die Helligkeit und die Farbinformationen, wie es zum Beispiel im YUV- bzw. YCbCr Farbraum der Fall ist, ist eine Reduzierung der Datenmenge möglich, indem man beispielsweise nur die Farbwerte jedes zweiten Bildpunktes überträgt bzw. speichert, ohne dass die Qualität merklich darunter leidet. In der Signalverarbeitung spricht man hierbei von einer Unterabtastung oder im englischen Sprachgebrauch von subsampling der Chromakanäle. Es gibt dabei mehrere Möglichkeiten eine Unterabtastung vorzunehmen, die in der Fachliteratur wie folgt bezeichnet werden:
4:4:4
In diesem Fall findet keine Unterabtastung statt. Die Auflösung der Chrominanzkanäle ist identisch mit jener der Luminanz.
4:2:2
Hierbei handelt es sich um eine horizontale Unterabtastung der Farbkanäle, indem nur die Farbinformation für jeden zweiten Bildpunkt in horizontaler Richtung übertragen wird. Somit wird das Datenaufkommen für die Chrominanzkanäle halbiert. Diese Kodierung entspricht der „Studioqualität“ und wird in professioneller Videoverarbeitungshardware verwendet.
4:2:0
Bei einer 4:2:0-Kodierung wird die Farbauflösung horizontal und vertikal halbiert. Die Datenmenge der Chromakanäle dadurch geviertelt.
4:1:1
Dies bedeutet nur jede vierte Farbinformation wird verwendet. In vertikaler Bildrichtung bleibt die Auflösung somit unverändert.
Es werden in der Fachliteratur noch andere Farbmodelle beschrieben, die meist den speziellen Anforderungen des Bildverarbeitungssystems angepasst wurden. Sie weisen meist nur geringe Abweichungen zu den oben genannten auf und werden somit an dieser Stelle nicht angeführt.
2.4 Auflösung von digitalen Bildern
Die Auflösung eines digitalen Bildes beschreibt die Anzahl der Bildpunkte (engl. „pixel“) in horizontaler und vertikaler Richtung. Sie kann im Allgemeinen natürlich beliebig groß sein und wird eigentlich nur vom zur Verfügung stehenden Speicherplatz in Verbindung mit dem verwendeten Farbmodell begrenzt. Es haben sich aber im Laufe der Entwicklung, teils aus historischen Gründen, teils durch Normung verschiedene „Standardauflösungen“ durchgesetzt, die eigene Bezeichnungen erhalten haben. In Tabelle 2.2 sind einige aufgelistet.
Tabelle 2.2: Gängige Auflösungen von digitalen Bildern
Abbildung in dieser Leseprobe nicht enthalten
Meist werden digitale Bilder in Zeilen und Spalten eingeteilt, wobei die Spalten die horizontale Unterteilung oder Unterteilung in x-Richtung, die Spalten die vertikale oder Unterteilung in y-Richtung kennzeichnen. Somit ist auch ein zweidimensionales karthesisches Koordinatensystem gegeben, mit dem Ursprung in der linken oberen Bildecke und positiven x in horizontaler und positiven y in vertikaler Richtung. Diese Definition ist nicht verbindlich, wird aber am häufigsten verwendet und soll auch in dieser Arbeit, wenn nicht anders angegeben, das zugrunde liegende Koordinatensystem sein.
2.5 Videoübertragung
Es wurden im Laufe der Zeit eine ganze Menge an Formaten und Technologien für die Übertragung von Bildern entwickelt. Es soll an dieser Stelle kein Überblick über die zahllosen Standards in der analogen und digitalen Übertragungstechnik gegeben werden, denn das würde den Rahmen der Arbeit bei Weitem sprengen. Die analoge Übertragungstechnik wird hierbei sogar vollkommen außer Acht gelassen, da sie für die vorliegende Aufgabe keine Relevanz besitzt. Es soll nur auf zwei standardisierte digitale Verfahren zur Übertragung von Farbbildern über eine Kabelverbindung eingegangen werden, da sie für die diese Arbeit und die Bildbearbeitung auf „embedded systems“ im Allgemeinen wichtig sind: ITU656 und ITU601.
2.5.1 Bildübertragung allgemein
Bei der Übertragung einer Bildfolge bedarf es einer Synchronisation zwischen Sender und Empfänger, um letzteren die Möglichkeit zu geben, zu erkennen, wann im Datenstrom ein neues Bild beginnt. Zu diesem Zweck wurden zwei Steuersignale eingeführt: HSYNC und VSYNC.
HSYNC:
Das Wort HSYNC leitet sich ab aus „horizontal synchronisation“, der englischen Bezeichnung für horizontale Synchronisation. Dieses Signal kennzeichnet den Beginn und das Ende einer Bildzeile.
VSYNC:
VSYNC steht für vertikale Synchronisation und kennzeichnet den Beginn und das Ende eines Bildes, englisch frame.
Progressive und Interleaved:
Es gibt bei manchen Übertragungen auch noch ein drittes Signal, das so genannte „frame sync“. Dies wird manchmal verwendet, wenn es, wie es beispielsweise bei der Fernsehübertragung der Fall ist, das Bild nicht linear von der ersten bis zur letzten Bildzeile übertragen wird (engl. „progressive“), sondern zuerst alle ungeraden Zeilen und dann die geraden (english „interleaved“) gesendet werden. Das Bild wird sozusagen aus zwei Halbbildern aufgebaut. Dies lässt sich aus der historischen Entwicklung der Fernsehübertragung erklären, soll hier aber nicht weiter erläutert werden.
2.5.2 ITU-R BT.601
Dieser 1982 erstmals festgeschriebene Standard, damals noch CCIR601 [ITUCCU04] heute ITU-R BT.601, wurde ursprünglich zur einfachen digitalen Übertragung der beiden Fernsehnormen PAL und NTSC für den europäischen und nordamerikanischen Raum eingeführt. Die Spezifikationen sind auf Grund dessen auf die Parameter dieser beiden Fernsehstandards zugeschnitten. Als Farbmodell für die Übertragung kann YCbCr im 4:4:4 Modus YCbCr 4:2:2 oder RGB verwendet werden (siehe obige Abschnitte dieses Kapitels). In der Praxis wird fast ausschließlich YCbCr im Modus 4:2:2 verwendet [ITU94].
Die Signale für Chrominanz und Luminanz sind mit 8 Bit kodiert, der Wertebereich entspricht den im Abschnitt 2.3.3 beschriebenen.
Im Standard sind zwar weiters die horizontale Auflösung und die Anzahl der Zeilen spezifiziert, genauso wie die Breite der horizontalen Austastlücke und die Anzahl an Zeilen in der vertikalen Austastlücke sowie noch einige andere Parameter, da diese jedoch spezifisch für die beiden Normen PAL und NTSC sind, soll an dieser Stelle nicht weiter darauf eingegangen werden. Wird dies notwendig sein, so werden an entsprechender Stelle im Verlauf der Arbeit nähere Erläuterungen angeführt.
Da ITU601 keine Norm sondern lediglich eine Empfehlung der ITU (International Telecommunication Union) darstellt, wird dieses Übertragungsverfahren heute ohnehin für verschiedenste Auflösungen und Bildwiederholraten verwendet und ist nicht mehr nur an die Übertragung der beiden Fernsehsignale gebunden. Im Einzelnen müssen diese Informationen also den Datenblättern des Bildverarbeitungssystems entnommen werden.
Die Empfehlung der ITU definiert im Standard BT.601 die physischen Eigenschaften der Übertragung nicht. Das heißt, es gibt keine Standardisierung über die Anzahl der Leitungen oder der Synchronisationssignale. Findet man in der Literatur oder in Datenblättern jedoch die Angabe, dass es sich um eine ITU601 kompatible Übertragung handelt, so ist damit meist ein bitparalleles Interface gemeint mit zwei zusätzlichen Signalleitungen für die Synchronisationssignale HSYNC und VSYNC und einem Clocksignal mit dem die Daten übernommen werden.
2.5.3 ITU-R BT.656
Dieser Standard baut auf dem im obigen Abschnitt beschriebenen auf. Somit sind für ITU-R BT.656, meist einfach ITU656 oder CCIR656 genannt, die Spezifikationen von ITU-R BT.601 gültig. Zusätzlich wird aber noch das digitale Interface und die Interfacesignale beschrieben.
Interfacesignale:
Es ist sowohl ein bitparalleles als auch bitserielles Interface spezifiziert. Das bitparallele besteht aus 8 Bit und einer Clockleitung. Die zur Syncronisation erforderlichen Steuersignale sind in den Datenstrom als spezielle Steuercodes eingebettet. Die Werte 0 und 255 sind dafür reserviert, womit sie in den Signalwerten für Helligkeit und Chrominanz nicht vorkommen dürfen. Der Wertebereich für diese Signale ist somit beschränkt auf 254 Werten von 1 bis 254. Für die Werte des Helligkeitskanals gilt ohnehin die Beschränkung aus Abschnitt 2.3.7. Die Signale HSYNC, VSYNC und „frame sync“ sind in den beiden Steuercodesequenzen SAV und EAV codiert [ITU656].
EAV und SAV:
EAV steht für „End of Active Video“ und zeigt das Ende einer sichtbaren Bildzeile, SAV bedeutet „Start of active video“ und zeigt den Beginn einer solchen.
Beide Sequenzen bestehen aus 4 Byte: FF 00 00 XY. Die Werte sind in hexadezimaler Schreibweise notiert. Die ersten drei Byte sind eine fixe Preambel, das vierte Byte enthält die Kodierung der Steuersignale wie sie in Tabelle 2.3 dargestellt ist [ITU656].
Tabelle 2.3: Kodierung der EAV und SAV Steuersequenzen [ITU656]
Abbildung in dieser Leseprobe nicht enthalten
Wobei gilt:
F=0 für das erste Halbbild, F=1 für das zweite. Im „progressive“ Modus ist F immer 0 (siehe Abschnitt 2.5.1).
V=0 während der Übertragung sichtbarer Bildzeilen, V=1 während der vertikalen Austastlücke.
H=0 in SAV, H=1 in EAV
Die Bits P3 bis P0 dienen zur Überprüfung und Fehlerkorrektur. Ihre korrekte Kodierung ist in Tabelle 2.4 aufgelistet.
Tabelle 2.4: Kodierung der Prüfbits in EAV und SAV [ITU656]
Abbildung in dieser Leseprobe nicht enthalten
Clocksignal
Da auch der ITU-R BT.656 Standard mittlerweile nicht mehr nur für die Übertragung genormter Fernsehsignale verwendet wird gilt auch hier eine Einschränkung der Auflösung und der Frequenz des Clocksignales nicht mehr. Sie wird an die jeweilige Auflösung und Framerate angepasst. Die Daten werden mit der steigenden Flanke des Clocksignals übernommen [ITU656].
Die Abbildung 2.11 zeigt einen ITU656 kompatiblen Datenstrom für eine Bildzeile. Die Angaben über die Anzahl der Byte beziehen sich auf ein PAL-Fernsehsignal mit einer Auflösung von 720 Pixel in horizontaler Richtung und einer Austastlücke (engl. blanking) von 268 Byte. Deutlich erkennbar ist die Datensequenz für zwei Pixel: Cb, Y, Cr, Y. Manche Videoverarbeitungs-ICs erlauben die Umstellung auf andere Sequenzen.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.11: Datenstrom einer PAL-Bildzeile im ITU656 Format
Der Standard beschreibt ebenfalls die Anzahl der Zeilen, Pixel pro Zeile und horizontale und vertikale Austastlücken. Aber wie bereits erwähnt, gelten diese Spezifikationen nur im Zusammenhang mit der Übertragung von einem PAL- oder NTSC-Signal, können also bei der Übertragung eines digitalen Videosignals anderer Parametrisierung, unbeachtet bleiben, bzw. den Anforderungen angepasst werden.
Kapitel 3 Methoden der Bilderkennung
Aufgrund steigender Bedeutung der Bildverarbeitung in Industrie und für Überwachungs-aufgaben, wurden eine Reihe von Methoden für die Objekterkennung und –Klassifizierung entwickelt. Die Vorverarbeitungsschritte unterscheiden sich dabei nur wenig und es hat sich im Laufe der Zeit eine Vorgehensweise durchgesetzt, die heute in fast allen Anwendungen der Bilderkennung zu finden sind. Es sollen nun ausgehend von einer Definition der Begriffe Objekt und Bildstruktur der grundsätzliche Ablauf und die gängigsten Möglichkeiten für die einzelnen Verarbeitungsschritte dargestellt werden. Dabei wird natürlich kein Anspruch auf Vollständigkeit gelegt. Es wird weiters versucht, für die dargestellten Bildbearbeitungsoperationen Aufwandsabschätzungen zu machen, um im Zuge einer späteren Betrachtung, einschätzen zu können, ob sich mit diesen Methoden im Rahmen der zur Verfügung stehenden Rechenleistung, die Anforderungen an das Objekterkennungssystems erfüllen lassen oder nicht.
3.1 Grundlegende Begriffe
Wie erwähnt, werden Begriffe von unterschiedlichen Autoren oft unterschiedlich verwendet. Im Sinne einer konsistenten Terminologie sollen an dieser Stelle, für einige Begriffe die die Methodik der Bildverarbeitung betreffen, definiert werden, wie sie in dieser Arbeit verstanden und verwendet werden. Die Definitionen wurden dabei aus [RDG93] entnommen oder an die dort verwendete Definition angelehnt.
Objekt:
Als ein Objekt wird ein realer, beschreibbarer Gegenstand beliebiger Komplexität verstanden. Im Gegensatz zur objektorientierten Programmierung, wo damit eine beliebige Struktur gemeint ist.
Bildelement:
Der Begriff Bildelement fungiert als Oberbegriff für alle Bildkomponenten und findet sich in allen Schichten des in Abbildung 3.1 gezeigten Modells wieder. Ein Bildelement kann dabei sowohl ein einzelnes Pixel im Bild, als auch ein Kreissegment oder Farbverlauf nach der Segmentierung sein.
Bildprimitiven:
Unter dem Begriff Bildprimitiven verstehen wir die nach einer Segmentierung erhaltenen Bildelemente.
Bildstruktur:
Sie beschreibt eine komplexere Struktur, die aus Bildelementen oder Bildprimitiven zusammengesetzt wird und selbst wieder Teil komplexerer Bildelemente sein kann.
Merkmal:
Merkmale sind charakteristische Eigenschaften einer Menge von Bildpunkten nach der Vorverarbeitung, von Bildprimitiven nach der Segmentierung, von Komponenten oder von Bildstrukturen. Sie haben den notwendigen Informationsgehalt um mit ihrer Hilfe Bildelemente klassifizieren oder identifizieren zu können.
Modell:
Unter einem Modell verstehen wir prototypische Eigenschaften für ein Objekt, wie sie sich in den einzelnen Schichten des Modells der Bilderkennung wiederspiegeln. Die formale Beschreibung des Modells kann dabei auf unterschiedliche Art und Weise erfolgen und ist abhängig von der Schicht in der wir uns befinden, sowie vom zu modellierenden Objekt selbst. Die Modellierung von Objekten muss somit dem Bilderkennungssystem angepasst werden.
Bilderkennung und Bildverstehen:
Es kommt vor, dass in der Fachliteratur in Zusammenhang mit Objekterkennung von Bildverstehen die Rede ist. In dieser Arbeit soll jedoch bewusst nur der Begriff Bilderkennung in diesem Zusammenhang verwendet werden. Es geht um die automatisierte Erkennung und Vermessung von Objekten. Die Bildauswertung liefert damit als Ergebnis Messwerte. Die Summe der Verarbeitungsschritte um ausgehend von der Aufnahme einer realen Szene zu, für die Reaktion auf die Szene, relevanten Messwerten zu kommen, wird als Bilderkennung bezeichnet. Wie diese Messdaten weiterverarbeitet werden können, wird nicht weiter untersucht. Der Begriff Verstehen geht aber weit darüber hinaus und bedarf bereits einer Modellierung kognitiver Fähigkeiten und selbst dann muss ausdrücklich darauf hingewiesen werden, dass es nicht oder nur sehr eingeschränkt mit dem menschlichen Verständnis für Bilder und Szenarien in Verbindung gebracht werden kann. Sogar beim Menschen selbst ist dieser Begriff nicht eindeutig anwendbar.
3.2 Das Schichtenmodell
Wie bereits erwähnt hat sich im Laufe der Zeit eine Vorgehensweise bei der Bilderkennung etabliert wie sie in Abbildung 3.1 dargestellt ist. Der Prozess der Bilderkennung lässt sich demnach in einem Schichtenmodell repräsentieren, das von der Aufnahme und damit verbundenen Digitalisierung einer Szene bis hin zur Ausgabe eines Ergebnisses reicht. Wobei das Ergebnis natürlich abhängig ist von der vorher definierten Aufgabe des Bilderkennungssystems.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 3.1: Schichtenmodell der Bilderkennung
Das Schichtenmodell beschreibt die einzelnen Arbeitsschritte ausgehend von einem „realen“ beobachtbaren Szenario bis hin zu einer Reaktion des Systems auf die Szene, wobei dies nicht mehr Teil der Bilderkennung, so wie sie in dieser Arbeit verstanden wird, darstellt, da zur Entscheidungsfindung über die Art der Reaktion auch andere Sensoren bzw. andere Informationsquellen beitragen können. Das eigentliche Bildverarbeitungssystem wird vom Bereich der vom mittleren Rechteck in der Abbildung 3.1 eingeschlossen wird, gebildet. Die rechts stehenden Begriffe sind die jeweils aus dem links daneben stehenden Arbeitsschritt gewonnenen Komponenten. Sie, und die dazu gehörenden Operationen, werden im Folgenden näher erläutert. Die strichlierten Linien sollen gewisse Rückkopplungen zwischen den einzelnen Arbeitsschritten darstellen. So können beispielsweise Erkenntnisse aus einem Verarbeitungsschritt beim nächsten Frame die Parameter des vorhergehenden Schritts beeinflussen. Auch dies wird im Laufe dieser Arbeit untersucht werden [RDG93, STN93].
[...]
- Citar trabajo
- Roland Oberhammer (Autor), 2007, Echtzeit Objekterkennung auf low power embedded systems, Múnich, GRIN Verlag, https://www.grin.com/document/86427
-
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X. -
¡Carge sus propios textos! Gane dinero y un iPhone X.