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