Klassifikation mit Neuronalen Netzen in der Bildverarbeitung

Ute Matecki, Fachbereich Mathematik/Informatik, Universität Osnabrück

In der Bildverarbeitung werden künstliche Neuronale Netze in vielfältigen Anwendungen erfolgreich eingesetzt. Dieser Artikel stellt einige Probleme der Objektklassifikation in Bildern vor und zeigt, wie sie mit unterschiedlichen Netzarchitekturen gelöst werden können. Es wird ein Ausblick auf einige, in der Industrie bereits erfolgreich eingesetzte, Verfahren gegeben.

Einleitung

Der Mensch trifft einen Großteil seiner Entscheidungen im täglichen Leben aufgrund von Objektklassifikationen. Ein einfaches Beispiel hierfür ist der Einkauf im Supermarkt: Die zu klassifizierenden Objekte sind hierbei die zu kaufenden Produkte. Sie werden vom Käufer in die Klassen ``benötigt'' und ``nicht benötigt'' eingeteilt und landen damit im Einkaufswagen oder bleiben im Regal liegen. Der Kauf des Produkts Kaffee hängt beispielsweise von Merkmalen wie Geschmack, Geruch, Preis, Packungsaufmachung, Vorratsmenge zu Hause ab.

Rechnergestützte Klassifikation in der Bildverarbeitung funktioniert vom Prinzip her ähnlich wie das oben angeführte Beispiel. Die zu klassifizierenden Objekte werden durch für sie typische Eigenschaften beschrieben und aufgrund dieser Eigenschaften in unterschiedliche Klassen eingeteilt.

Die Klassifikation wird vorwiegend in Bereichen eingesetzt, in denen der Mensch die Datenflut der erzeugten Bilder nicht mehr bewältigen kann oder in denen die Auswertung eine monotone, ermüdende Arbeit ist.

Klassifikation

Die zu klassifizierenden Objekte werden durch ihre Eigenschaften bzw. Merkmale beschrieben. Diese Merkmale spannen einen n-dimensionalen Merkmalsraum auf. Ein Objekt wird also durch eine bestimmte Ausprägung der Merkmale 1, ..., n, d.h. durch einen Merkmalsvektor im Merkmalsraum, repräsentiert. Die Objektklassen ergeben sich durch eine Zerlegung des Merkmalsraums in zusammengehörende Teilmengen sowie einer Restklasse, der alle diejenigen Objekte zugeordnet werden, die keiner der anderen Klassen zugeordnet werden können. Bei der Klassifikation wird nun der Merkmalsvektor eines Objekts genau einer der vorher definierten Klassen oder aber der Restklasse zugeordnet. Hierbei kann eine Klasse durchaus durch mehrere Punktwolken im Merkmalsraum repräsentiert werden. Außerdem kann es durchaus vorkommen, daß die Klassen so angeordnet sind, daß eine Trennung durch einfache Abstandsmaße nicht ohne weiteres möglich ist, siehe Abbildung 1.

Abbildung 1: Darstellung der Klassen 1 und 2 sowie der Restklasse in einem dreidimensionalen Merkmalsraum

Die Definition der Klassen muß natürlich sinnvoll erfolgen. Es wird beispielsweise keinen Sinn machen, bei der Sortierung von Medikamentenflaschen diese in die Klassen ``schwarzes Schild'' und ``weißes Schild'' einzuteilen. Ferner müssen die Merkmale so gewählt werden, daß sie eine Trennung der vorher definierten Klassen im Merkmalsraum ermöglichen. So wäre es beispielsweise nicht sinnvoll, bei Gesichtsaufnahmen Männer und Frauen anhand des Merkmals Haarfarbe zu unterscheiden.

Ein Klassifikator im allgemeinen Sinn ist also eine Verfahrensweise, die eine Zuordnung eines Merkmalsvektors, dessen Klassenzugehörigkeit unbekannt ist, in eine der vorher definierten Klassen bewerkstelligt. Hierzu muß der Klassifikator zunächst so konstruiert werden, daß er noch nicht klassifizierte Merkmalsvektoren der Klasse zuordnet, zu der sie ``am besten passen''. Diese Dimensionierung des Klassifikators bezeichnet man bei neuronalen Klassifikatoren, auf die wir uns im weiteren beschränken werden, auch häufig als Lernen.

Pixelbezogene und segmentbezogene Klassifikation

In der Bildverarbeitung wird eine Objektklassifikation häufig in mehreren Schritten durchgeführt. Eine Verfahrensweise, die unter anderem in der Luftbildauswertung Anwendung findet, funktioniert folgendermaßen:

In einem ersten Schritt führt man eine pixelbasierte Klassifikation durch. Hierbei werden zunächst für jedes Pixel im Bild umgebungsbezogene Merkmale berechnet. Anhand dieser Merkmale ordnet der Klassifikator das Pixel z.B. einer Klasse Wasser, Laubwald oder Nadelwald zu. Die Klassenzugehörigkeiten werden als Grauwerte codiert in einem Ergebnisbild notiert. Im einfachsten Fall können als pixelbezogene Merkmale einfach die Grauwerte einer m x n-Umgebung des zu klassifizierenden Pixels verwendet werden, die in einem m x n-dimensionalen Merkmalsvektor aufgetragen werden. Diese Merkmalsvektoren werden auch als Coocurrence-Vektoren bezeichnet, siehe Abbildung 2, [8].

Abbildung 2: 9-dimensionaler Coocurrence-Vektor des Pixels x, bestehend aus den Grauwerten der Pixel eines 3x3-Fensters um x

Andere Verfahren berechnen auf Basis einer m x n-Umgebung pro Merkmal für jedes Pixel einen Merkmalswert, der dann in einem neuen Bild abgelegt wird. Beispiele hierfür sind der mittlere Grauwert innerhalb eines Fensters um den Aufpunkt oder die Streuung der Grauwerte innerhalb eines Fensters. Im Gegensatz zu Coocurrence-Vektoren wird hier pro Merkmal ein neues Bild, in der Regel ein Float- oder Double-Bild erzeugt, welches als zusätzlicher Kanal an das Originalbild angehängt wird, siehe Abbildung 3.

Abbildung 3: 4-dimensionaler Merkmalsvektor, bestehend aus dem Grauwert des Pixels (x, y) im Originalbild und den Werten an der Koordinate (x, y) in den drei Merkmalbildern

Das Ergebnisbild einer pixelbezogenen Klassifikation bezeichnet man auch häufig als segmentiertes Bild. Die Segmente im Ergebnisbild sind die Regionen, die aufgrund gleicher Klassenzugehörigkeit benachbarter Pixel zusammengefaßt wurden.

In der nächsten Stufe werden für die einzelnen Segmente Merkmale berechnet. Diese Merkmale spiegeln in der Regel nicht nur Grauwerteigenschaften, sondern auch geometrische Eigenschaften der Segmente wider. Einige Beispiele hierfür sind:

Arten von Klassifikatoren

Häufig unterscheidet man zwischen sogenannten traditionellen und neuronalen Klassifikatoren. In den folgenden Abschnitten werden nun kurz einige Unterschiede zwischen neuronalen und konventionellen Klassifikatoren erläutert. Danach werden einige erfolgreich in der Objektklassifikation eingesetzte neuronale Klassifikatoren vorgestellt.

Einige traditionelle Klassifikatoren

Viele der sogenannten traditionellen Klassifikatoren lassen sich in die Kategorien

einteilen. Einer der bekanntesten geometrischen Klassifikatoren ist der Minimum-Distance-Klassifikator. Bei diesem Verfahren müssen die zu bildenden Klassen, wie z.B. in Radarluftaufnahmen Wasser, Wald und landwirtschaftlich genutzte Gebiete, von vornherein bekannt sein. Man sucht sich im Merkmalsraum für jede Klasse einen Merkmalsvektor, von dem bekannt ist, zu welcher Klasse er gehört. Damit ist der Klassifikator bereits auf die Problemstellung eingestellt. Bei der Klassifikation ordnet er jeden Merkmalsvektor, den er präsentiert bekommt, derjenigen Klasse zu, zu deren Beispielvektor er den geringsten Abstand hat. Häufig wird als Abstandsmaß die Euklidische Distanz verwendet.

Statistische Klassifikatoren betrachten die klassenweise Verteilung der Merkmalsvektoren im Merkmalsraum. Die Parameter dieser Verteilung müssen in der Regel mit Hilfe von Stichproben aus dem Merkmalsraum, von denen die Klassenzugehörigkeit bekannt ist, geschätzt werden. Der Klassifikator wird hier aufgrund von Stichproben, die ``von Hand'' zugeordnet werden, dimensioniert. Bei der anschließenden Klassifikation wird ein präsentierter Merkmalsvektor derjenigen Klasse zugeordnet, der er mit der größten Wahrscheinlichkeit angehört.

Geometrische Klassifikatoren haben den Nachteil, daß sie stark ausgeweitet werden müssen, sobald sich die Klassen im Merkmalsraum nicht mehr so leicht trennen lassen, weil z.B. eine Klasse auf mehrere Punktwolken verteilt ist. Bei Minimum-Distance-Klassifikatoren muß beispielsweise für jedes Cluster einer Klasse ein Referenzvektor hinzugefügt werden.

Bei statistischen Klassifikatoren tritt häufig das Problem auf, daß nicht genügend Datenmaterial zur Verfügung steht, um die klassenweise Verteilung der Merkmalsvektoren abschätzen zu können. Weiterhin gehen viele Algorithmen von bestimmten Verteilungen, wie z.B. der Normalverteilung, aus. Wenn die Merkmalsdaten nun nicht einer solchen Verteilung entsprechen, können sie nicht mehr korrekt klassifiziert werden.

Künstliche Neuronale Netze

Neuronale Netze sind lernende Klassifikatoren, die aus einer Vielzahl einfacher Schaltelemente bestehen. Diese Schaltelemente werden als Neuronen bezeichnet. Sie sind durch gewichtete, meist gerichtete Verbindungen miteinander vernetzt. Über diese Verbindungen erhält jedes Neuron von seinen Vorgängern gewichtete Informationen, berechnet einen Funktionswert der eingegangenen Information und reicht diesen wiederum gewichtet an seine Nachfolger weiter, siehe Abbildung 6.

Abbildung 6: Ein Neuron mit Eingangsleitungen und Ausgangsleitungen

Diese sogenannte Aktivierungsfunktion, welche jedes Neuron berechnet, kann -- je nach Netz und Neuronentyp -- sehr unterschiedlich sein. Hierzu wird auf [2], [5] sowie auf den Überblicksartikel [6] von V. Sperschneider verwiesen. Die Dimensionierung bzw. der Lernvorgang dieser Art von Klassifikatoren erfolgt durch die Berechnung der Gewichtung der Verbindungen zwischen den Neuronen.

Klassifikation mit Multilayer-Perceptron-Netzen

Multilayer-Perceptron-Netze, auch kurz als MLP-Netze bezeichnet, werden in ihrer Funktionsweise sowie in ihrer Anwendung in der Prognose von Zeitreihen bereits in dem Artikel von F. M. Thiesing in diesem Heft beschrieben [7]. Er geht auch ausführlich auf das Standard-Backpropagation-Lernverfahren zur Einstellung der Gewichtsverbindungen ein. In diesem Artikel wird daher nur die Anwendung von MLP-Netzen in der Objektklassifikation erläutert. Abbildung 7 zeigt die Anwendung von MLP-Netzen im Bereich der pixelbasierten Klassifikation.

Abbildung 7: Pixelbasierte Klassifikation auf 3 Klassen mit einem MLP-Netzwerk. .br Die Originalaufnahme wurde von der Daimler-Benz-Aerospace, Dornier, zur Verfügung gestellt.

Für jedes beschreibende Merkmal wird ein Eingabeneuron verwendet. Pro Klasse wird ein Ausgabeneuron eingesetzt. Während des Lernvorgangs werden dem Netz die Merkmalsvektoren von Pixeln, deren Klassen bekannt sind, präsentiert. Als Soll-Ausgabewert wird an dem Ausgabeneuron, welches z.B. für die Klasse Wald zuständig ist, eine Eins angelegt, an allen anderen Ausgabeneuronen der Wert Null.

Eine Faustregel besagt, daß die Anzahl der Lernstichproben je nach Aufgabenstellung etwa doppelt bis zehnmal so hoch sein sollte wie die Anzahl der vorhandenen Gewichtsverbindungen im Netz, damit das Netz während des Lernvorgangs nicht die Stichproben ``auswendig'' lernt, sondern die gewünschte Abbildungsvorschrift findet. Um diesen Effekt zu vermeiden, wird beim Training des Netzes außerdem das sogenannte Cross-Validation-Verfahren eingesetzt. Dabei wird das Training selbst mit einer sogenannten Trainingsmenge von bekannten Beispielvektoren aus dem Merkmalsraum vorgenommen. Das Ergebnis des Trainings wird jedoch anhand einer separaten, nicht gelernten Testmenge überprüft. Der Lernalgorithmus, z.B. Standard-Backpropagation, wird so lange auf den Daten der Trainingsmenge angewendet, bis der Ausgabefehler bei Anlegen der Daten aus der Testmenge genügend klein ist.

MLP-Klassifikatoren werden häufig erfolgreich bei Klassifikationsproblemen eingesetzt, in denen die Klassen im Merkmalsraum nicht mehr ohne weiteres linear trennbar sind. Je komplexer jedoch die Trennungsfunktion aussieht, die mit dem MLP modelliert werden soll, desto mehr verborgene Schichten werden benötigt [2]. Da das vorhandene Datenmaterial häufig nicht genügend Lernstichproben zur Verfügung stellt, kann die Generalisierungsleistung bei diesen Klassifikatoren unter Umständen herabgesetzt sein. Hier hilft man sich mit sogenannten Pruning-Verfahren, die während oder nach dem Training entweder Neuronen oder Gewichte aus dem bereits trainierten Netz ``kappen''. In [10] wird eine Auswahl solcher Verfahren dargestellt.

Alles eine Frage der Selbstorganisation -- Kohonen's Self-Organizing Feature-Map

Bei dem Training eines MLP-Klassifikators muß die Klassenzugehörigkeit der Lernstichproben von vornherein bekannt sein. Für Anwendungen, bei denen noch nicht bekannt ist, wie tief man klassifizieren will, ist dieser Ansatz jedoch nicht geeignet. So kann sich beispielsweise bei der pixelbasierten Klassifikation die Frage stellen, ob es reicht, Wald von landwirtschaftlich genutzten Flächen zu unterscheiden, oder ob auch zwischen Laub- und Nadelwald unterschieden werden muß. Bei Problemstellungen dieser Art werden häufig selbstorganisierende Karten nach Kohonen eingesetzt. Sie werden unüberwacht trainiert, d.h., sie lernen im Laufe des Trainings selbständig, anhand der präsentierten Merkmalsdaten, zusammenhängende Punktwolken zu erkennen und später präsentierte, unbekannte Merkmalsvektoren einer dieser Punktwolken zuzuordnen.

Die Kohonen-Feature-Map besteht aus einer Eingabeschicht und einer Ausgabeschicht von Neuronen. Die Anzahl der Neuronen in der Eingabeschicht entspricht, wie auch beim MLP-Netzwerk, der Anzahl der Merkmale, die das zu klassifizierende Objekt beschreiben. Sie reichen die Merkmalswerte gewichtet durch.

Die Ausgabeschicht besteht aus einer in der Regel ein- oder zweidimensionalen Schicht von Neuronen, von denen jedes über gewichtete Verbindungen mit jedem Eingabeneuron verbunden ist, siehe Abbildung 8.

Abbildung 8: Zweidimensionale 4x4-Kohonen-Feature-Map mit n-dimensionalem Eingangsvektor

Der Gewichtsvektor eines Ausgabeneurons hat also die gleiche Dimension wie die Eingabevektoren.

Bei der Klassifikation berechnet nun jedes Ausgabeneuron den euklidischen Abstand seines Gewichtsvektors zum Merkmalsvektor, der an der Eingabeschicht anliegt. Dasjenige Ausgabeneuron, welches den geringsten Abstand berechnet, ist ``zuständig'' für den Eingabevektor und feuert eine ``1''. Alle anderen geben den Wert ``0'' aus. In der Lernphase werden ebenfalls die euklidischen Abstände der Gewichtsvektoren zu den angelegten Eingabevektoren berechnet. Der Gewichtsvektor desjenigen Ausgabeneurons mit dem kleinsten Abstand zum Eingabevektor wird so modifiziert, daß er in die Richtung des Eingabevektors ``gezogen'' wird. Außerdem werden die Gewichtsvektoren in einer vorher definierten Nachbarschaft um das Gewinner-Neuron in gleicher Weise modifiziert:
wij(n + 1) = wij(n) + eta(n) [mi(n) - wij(n)]
Hierbei ist eta (n) der Lernfaktor zum Zeitpunkt n. Sowohl die Nachbarschaft als auch der Lernfaktor werden in der Regel während des Trainings von großen Werten auf kleine Werte heruntergesetzt. Abbildung 9 zeigt die Nachbarschaftsbeziehungen von Neuron i zu verschiedenen Zeitintervallen.

Abbildung 9: Nachbarschaften um Ausgabeneuron i zu den Zeitpunkten 0 und n sub 1

Durch die Berücksichtigung der Nachbarschaftsbeziehung wird erreicht, daß Punktwolken, die im Merkmalsraum nebeneinander liegen, in der Ausgabeschicht von ebenfalls benachbarten Ausgabeneuronen detektiert werden. Da eine Klasse im Merkmalsraum auch durch mehrere Punktwolken repräsentiert werden kann, wird durch die Anzahl der Ausgabeneuronen die Maximalanzahl der detektierbaren Klassen festgelegt. Es können aber durchaus mehrere Ausgabeneuronen für die gleiche Klasse zuständig sein. In der praktischen Anwendung werden die Ausgabeneuronen nach dem Training anhand der Trainingsdaten entsprechend der Klassen, die sie repräsentieren, gekennzeichnet, siehe Abbildung 10.

Abbildung 10: Trainierte Kohonen-Feature-Map mit Kennzeichnung der Klassenzuständigkeit der Ausgabeneuronen

Sowohl MLP-Netze als auch Kohonen-Feature-Maps werden, mit einigen Erweiterungen versehen, bereits seit längerer Zeit in der Industrie und in der anwendungsbezogenen Forschung, unter anderem in der Luftbildauswertung, eingesetzt.

Auswahl der ``richtigen'' Merkmale für eine Klassifikation

Anfangs haben wir bereits erwähnt, daß die Auswahl geeigneter Merkmale ein entscheidender Faktor für eine gute Klassifikation ist. Diese Auswahl wird in der Bildverarbeitung häufig in einer separaten Experimentierphase von Experten getroffen. Es gibt jedoch auch Ansätze, die Auswahl geeigneter Merkmale zu automatisieren und auf diese Weise den Aufbau ganzer Verfahrensketten zu automatisieren. Einige dieser Ansätze betrachten, unabhängig vom Klassifikator, die klassenweisen Verteilungen der Merkmalsvektoren [4]. Basierend auf diesen Verteilungen werden Abstandsmaße für die paarweise Entfernung der Verteilungen voneinander definiert. Wenn die Klassen ``weit'' voneinander entfernt sind, ist dies ein Indiz für gute Klassentrennungseigenschaften der Merkmale. In der Neuroinformatik werden für diese Problematik häufig die weiter oben schon erwähnten Pruning-Verfahren verwendet [3]. Sie entfernen nach dem Training eines Netzes die am wenigsten benötigten Eingabeneuronen und damit eben auch Merkmale. Ein weiterer Artikel wird ausführlicher auf diese Problematik eingehen.

Fazit

Neuronale Klassifikatoren haben den Vorteil, daß sie sich mit relativ wenig Aufwand, insbesondere ohne besonderen problembezogenen Programmieraufwand, auf die später zu klassifizierenden Daten trainieren lassen. Weiterhin verhalten sie sich auch bei unvollständigen und verrauschten Datensätzen äußerst fehlertolerant. Daher werden sie in der industriellen Bildverarbeitung in vielfältigen Anwendungsgebieten erfolgreich eingesetzt. Es gibt allerdings nicht den neuronalen Klassifikator, der alle Klassifikationsaufgaben in der Bildverarbeitung ``erschlägt'', sondern eine Vielzahl von sehr unterschiedlichen Architekturen, von denen hier einige der bekanntesten vorgestellt wurden.

Literatur

  1. P. Haberäcker Digitale Bildverarbeitung 4. Auflage, Carl-Hanser-Verlag.
  2. J. Hertz, A. Krogh, R. Palmer Introduction to the Theory of Neural Computation Addison-Wesley, Redwood City.
  3. U. Matecki, V. Sperschneider ``Solving Classification Problems in SAR-Images Using Feature-Selection-Techniques for Backpropagation Networks'' EUFIT 1996, Aachen.
  4. H. Niemann Klassifikation von Mustern Springer-Verlag, 1983.
  5. R. Rojas Theorie der Neuronalen Netze: Eine systematische Einführung Springer-Verlag, 1993.
  6. V. Sperschneider ``Zutaten und Rezepte aus der Neuroküche'' unix/mail 4/96.
  7. F. M. Thiesing ``Vorhersagen mit Neuronalen Netzen'' unix/mail 5/96.
  8. K. Valkealahti, E. Oja ``Optimal Texture Feature Selection for the Co-Occurence-Map'' ICANN 1996, Bochum,
    S. 245-250.
  9. S. Vey ``Objekterkennung in Grauwertbildern'' Dissertation, Technische Hochschule Darmstadt, Fachbereich 19, 1992.
  10. A. Zell Simulation Neuronaler Netze Addison-Wesley, 1994.