Fingerprint
Detection System
Auf der Basis von Neuronalen Netzen
| Inhalt | |||||||||||||||||||||||||
| Vorbetrachtungen |
|||||||||||||||||||||||||
| Im Rahmen
der Lehrveranstaltung "Neuroinformationsverarbeitung" bei Prof.
Dr. rer. nat. habil. Iwe sollte ein Beleg angefertigt werden. Dieser sollte
eine Anwendung von Neuronalen Netzen beinhalten. Da Graphikbearbeitung
eines meiner Hobbies ist, entschied ich mich für das Gebiet der Mustererkennung.
Hierbei wollte ich ein praktisch sinnvolles Programm entwickeln, weshalb
ich die Fingerabdruckserkennung wählte. Der Prozeß einer Mustererkennung, auf der Basis von Bildinformation, teilt sich in zwei Hauptgebiete auf. Zum einen muß das Bildmaterial optisch aufgewertet werden, um sinnvolle Unterscheidungskriterien finden zu können und zum anderen das eigentliche Training des Neuronalen Netzes sowie die anschließende Erkennung von unbekannten Informationen. - Inhalt - |
|||||||||||||||||||||||||
| Bildbearbeitung | |||||||||||||||||||||||||
| In dem
Bereich der Bildbearbeitung oder Bildvorbereitung wird das Bild so aufgewertet,
daß die ausgewählten Erkennungskriterien leicht abgeleitet
werden können. Deshalb muß als erstes festgelegt werden, welches
diese Kriterien sind. In diesem Fall soll das Ausgangsbild in Segmente
eingeteilt werden, die alle für sich zwei Merkmale aufweisen. Zum
einen die Anzahl der Linienenden des Fingerabdruckes in diesem Segment
und zum anderen die Anzahl der Kreuzungspunkte, also die Abzweigungen,
die ein Fingerabdruck besitzt in diesem Segment.
Um diese so schnell und gut wie möglich zu finden, ist dieser vorbereitende
Schritt notwendig. - Inhalt - |
|||||||||||||||||||||||||
| Umwandlung des 24 Bit Farbbildes in ein 8 Bit Graustufenbild | |||||||||||||||||||||||||
| Zunächst
müssen die Bilder von 24 Bit Farbe in 8 Bit Grausstufen umgewandelt
werden. Dies ist zum einen nötig, um den Speicherbedarf der Bilder
zu reduzieren und zum anderen, um den Zeitbedarf, zur Bearbeitung der
Bilder, zu verringern. Desweiteren läßt sich mit einem Byte-Wert
besser arbeiten, als mit 3. Die Umwandlung wird dadurch realisiert, daß die 3 Farbwerte addiert und dann durch 3 geteilt werden. Der dadurch gewonnene Wert repräsentiert die Helligkeit des Punktes. In den nachfolgenden Algorithmen wird immer mit diesem Graustufenbild gerechnet. - Inhalt - |
|||||||||||||||||||||||||
| Kontrasterhöhung/Kantendetektion | |||||||||||||||||||||||||
|
Um den
Kontrast eines Bildes zu erhöhen, nimmt man jeden Punkt des Bildes,
ermittelt dessen Intensität, also seine Helligkeit und vergleicht
diese mit einem vorher festgelegten Schwellwert. Dann entscheidet man
anhand dieses Wertes, ob es mehr zu dem hellsten oder mehr zu dem dunkelsten
Bereich gehört. In Abhängigkeit davon, wird die Intensität
des Punktes entsprechend auf das Maximum oder das Minimum gelegt.
Dieser Aufbau ergibt eine vertikale Kantenerkennung. Das heißt, alle vertikalen Linien werden verstärkt. Bei der Art dieser Kantenerkennung besteht leider der Nachteil, daß die horizontalen Linien verloren gehen. Das führt natürlich zum Verlust von Eigenschaften des Fingerabdruckes. Wie die nachfolgenden Tests aber beweisen, ist es nicht nötig, alle Eigenschaften in das Netz zu geben. Es muß nur darauf geachtet werden, daß alle errechneten Vektoren, also die zum Trainieren und die zum Erkennen, mit dem gleichen Verfahren gebildet wurden. - Inhalt - |
|||||||||||||||||||||||||
| Skelettieren der gefunden Linien | |||||||||||||||||||||||||
| Da das Bild
eingescannt wurde, besitzt der Fingerabdruck sehr dicke Linien. Dies ist
aber für die weitere Bearbeitung des Bildes unvorteilhaft. Deshalb
wird hier ein Linien-Skelettierungsalgorithmus eingesetzt. Hierbei wird
wieder jeder Bildpunkt des Abdruckes betrachtet und mit einem bestimmten
Muster verglichen. Stimmt dieses Muster überein, wird dieser Bildpunkt
als Linienpunkt markiert. Stimmt es nicht überein, wird der zu bearbeitende
Bildpunkt zum Löschen markiert. Ist das ganze Bild bearbeitet, werden
alle löschbaren Punkte entfernt. Danach beginnt der Vorgang des Skelettierens
über das gesamte Bild von neuem. Somit wird eine breite Linie Pixel
für Pixel, bis nur noch 1 Pixel vorhanden ist, verdünnt. Jetzt werden alle Linien noch einmal auf ihre Größe hin geprüft. Besitzen sie nicht ein bestimmte Größe in X oder Y Richtung, werden sie ausmaskiert. Damit erreicht man, daß durch die Kantendetektion, die ja nur in vertikaler Richtung funktioniert, in horizontaler Richtung entstandene Artefakte, nicht mit betrachtet werden. - Inhalt - |
|||||||||||||||||||||||||
| Segmentieren des Bildes und Errechnung der Eingabevektoren | |||||||||||||||||||||||||
| Jetzt haben
wir das Bild soweit bearbeitet, daß es möglich ist, die Eigenschaften
des Fingerabdruckes auszulesen. Dabei wird das Bild in 100 x 100 große Bildabschnitte unterteilt. In diesen Abschnitten wird jeder Bildpunkt daraufhin getestet, ob er ein Linienendpunkt oder eine Linienabzweigung ist. Durch die vorherige Skelettierung, ist dies kein Problem mehr. Es wird einfach nur geprüft, wieviele Nachbarn er besitzt. Gibt es einen Nachbar, ist der Punkt ein Endpunkt. Sind es mehr als zwei, ist er eine Abzweigung. Hierbei findet zusätzlich eine Wichtung statt. Linienenden werden mit einem Faktor von 0,1 gezählt und Linienabzweigungen mit einem Faktor von -0,05. Da in einem Neuronalen Netz die Größe eines Eingabeneurons über dessen Relevanz entscheidet, werden hierbei die Linienenden als wichtigeres Kriterium betrachtet. Dies ist jedoch eine willkürliche Auswahl und kann andersherum genauso gut funktionieren. Nachdem ein Abschnitt bearbeitet wurde, wird er um die Hälfte seiner Größe, in diesem Fall in X-Richtung 50 und in Y-Richtung 50 Pixel, weitergeschoben. Dadurch werden einige Eigenschaften zwar doppelt gezählt, aber es wird damit erreicht, daß eine geringe Verschiebung des Fingerabdruckes keine so große Änderung in den Eingabedaten verursacht. Nachdem dies für das gesamte Eingabebild gemacht wurde, haben wir, bei einer Größe von 500 x 800 Pixel, 270 Eingabeneuronen (135 Linienenden und 135 Linienabzweigungen). - Inhalt - |
|||||||||||||||||||||||||
| Das Neuronale Netz | |||||||||||||||||||||||||
| Nun beginnt
der zweite Schritt der Bearbeitung, die gefundenen Eingabeneuronen mit
dem Neuronalen Netz zu verarbeiten. Dabei gibt es zwei Situationen, die
beide verschiedene Vorgehensweisen benötigen. Die erste ist das Trainieren
des Netzes und die zweite das Erkennen eines unbekannten Fingerabdruckes. - Inhalt - |
|||||||||||||||||||||||||
| Warum Feed-Forward Netz mit Backpropagation ? | |||||||||||||||||||||||||
| Die Wahl
fiel auf Feed-Forward Netze, da es eine ähnliche Implementation schon
mit Kohonen Maps gibt. Kohonen Maps werden für diese Aufgaben häufiger
genutzt, da sie bessere Ergebnisse liefern. Da wir aber in dieser Lehrveranstaltung
Kohonen Maps nicht behandelten, wollte ich das ganze mit den Feed-Forward
Netzen probieren, um zu testen, ob man damit ähnliche Ergebnisse
erzielt. - Inhalt - |
|||||||||||||||||||||||||
| Aufbau des Netzes | |||||||||||||||||||||||||
| Das
Netz besitzt eine Inputschicht mit jeweils 270 Neuronen. Desweiteren können
die Anzahl der Neuronen in der Hiddenschicht frei gewählt werden
und die Outputschicht läßt sich auf eine 3 Bit oder 7 Bit Kodierung
einstellen. Zusätzlich enthält die Inputschicht und die Hiddenschicht
noch den Biaswert von 1. Als Aktivierungsfunktion kommt die sigmoide Funktion
y = 1 / (1 + exp (- x)) zum Einsatz.
Die Ausgabe liegt dabei zwischen 0 und 1. Die Gewichte werden bei jedem
Start des Programms, zwischen -1 und 1, zufällig initialisiert. Bei
der Backpropagation kann ein Momentum zwischen 0 und 1 gesetzt werden. - Inhalt - |
|||||||||||||||||||||||||
| Abschließende Bemerkungen | |||||||||||||||||||||||||
|
Es zeigt
sich, daß also auch mit Feed-Forward Netzen ein Fingerabdruck-Erkennungssystem
programmiert werden kann. Die Erkennungsrate hängt sehr vom Aufbau
des Netzes ab. Tests mit einer Hiddenschicht haben eine Trefferwahrscheinlichkeit
von circa 70% erzeugt. Es hat sich ebenfalls gezeigt, daß die Erkennungsrate im wesentlichen von der Art der Bildvorbereitung abhängt. Dabei muß eine bessere und genauere Bildvorbereitung, nicht unbedingt bessere Ergebnisse in der Erkennung liefern. Der Grund dafür ist wahrscheinlich, daß sich mit einer zu guten Bildvorbereitung, die Eigenschaften der einzelnen Fingerabdrücke zu sehr unterscheiden. - Inhalt - |
|||||||||||||||||||||||||
| Quellen | |||||||||||||||||||||||||
- Inhalt - |