Class BIOMETRIE

java.lang.Object
  extended by BIOMETRIE

public class BIOMETRIE
extends java.lang.Object

Diese Klasse enthält wesentlichen Methoden für die Gesichtserkennung und verwaltet die dazu nötigen Datenstrukturen. Dabei kommen insbesondere Felder für die Personen und deren Gesichter zum Einsatz. Diese werden mit Hilfe der Klassen GESICHT und PERSON verwaltet.

Die Klasse GESICHT speichert eine Reihe von biometrischen Merkmale, die für ein Bild erfasst wurden. Im Konstruktor der Klasse werden dazu die erfassten Koordinaten als Feld übergeben. Die Klasse GESICHT berechnet dann daraus die entsprechenden Merkmale. Ansonsten enthält die Klasse diverse Get-Methoden.

In der Klasse PERSON werden pro Person mehrere Gesichter verwaltet (verschiedene Referenzen). Neue Gesichter können dazu mit der Methode addGesicht übergeben werden. Ansonsten enthält die Klasse diverse Get-Methoden.

Version:
1.0

Constructor Summary
BIOMETRIE()
          Erzeugt Objekte der Klasse BIOMETRIE.
 
Method Summary
 double abstand(GESICHT unbekannt, GESICHT bekannt, boolean report)
          Berechnet den Abstand zwischen zwei Gesichtern.
 GESICHT identifiziereGesicht(GESICHT unbekannt, boolean report)
          Identifiziert ein unbekanntes Gesicht indem es in der Liste der bekannten Gesicht nach dem Gesicht sucht, dass dem unbekannten Gesicht am ähnlichsten ist.
 void reportAbstaende(GESICHT unbekannt)
          Test-Methode: Berechnet für das übergeben Gesicht die Abstände zu allen anderen Gesichtern.
 void reportSymmetrie(int merkmal1, int merkmal2, double abweichung)
          Test-Methode: Gesichter sind großteils symmetrisch - die Symmetrie ist jedoch in der Regel nie perfekt.
 void reportZufaelligeGewichte()
          Die Methode erzeugt im Feld gewichte eine zufällige Gewichtung (jedes Gewicht zwischen 0 und 0.9).
 void testIdentifiziereGesicht()
          Identifiziert alle unbekannten Gesichter in des für jedes unbekannte Gesicht die Methode identifiziereGesicht aufruft.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BIOMETRIE

public BIOMETRIE()
Erzeugt Objekte der Klasse BIOMETRIE. Die Demo-Implementierung hält ihre Datenbank im vollständig Speicher und legt dazu Felder für bekannte Personen (d.h. Personen mit bekannter Namen) und für unbekannte Personen (d.h. für Personen, deren Identifizierung erfolgen soll) an. Die Anzahl ist im Konstrukor fest vorgegeben. Werden zu Laufzeit mehr bekannte bzw. unbekannte Personen erzeugt, erfolgt eine Fehlermeldung. Einige Methoden analysieren alle Gesichter aller Personen. Um hier die Schleifenstruktur einfacher zu halten wird zudem ein Feld Gesichter angelegt, in dem alle Gesichter aller Personen referenziert werden. Auch deren maximale Anzahl wird im Konstruktor fest vorgegeben. Zudem initialisiert der Konstruktor das Feld gewichte, mit dessem Hilfe sich die Abstandsberechnung zwischen zwei Gesichtern beeinflussen lässt.

Method Detail

abstand

public double abstand(GESICHT unbekannt,
                      GESICHT bekannt,
                      boolean report)
Berechnet den Abstand zwischen zwei Gesichtern.

Parameters:
unbekannt - Unbekanntes Gesicht
bekannt - Bekanntes Gesicht
report - Gibt an, ob Debug-Informationen ausgegeben werden sollen
Returns:
Abstand der beiden Gesichter

identifiziereGesicht

public GESICHT identifiziereGesicht(GESICHT unbekannt,
                                    boolean report)
Identifiziert ein unbekanntes Gesicht indem es in der Liste der bekannten Gesicht nach dem Gesicht sucht, dass dem unbekannten Gesicht am ähnlichsten ist.

Parameters:
unbekannt - Unbekanntes Gesicht
report - Gibt an, ob Debug-Informationen ausgegeben werden sollen

reportAbstaende

public void reportAbstaende(GESICHT unbekannt)
Test-Methode: Berechnet für das übergeben Gesicht die Abstände zu allen anderen Gesichtern. Die Ausgabe erfolgt für alle Merkmale getrennt und als Summe.


reportSymmetrie

public void reportSymmetrie(int merkmal1,
                            int merkmal2,
                            double abweichung)
Test-Methode: Gesichter sind großteils symmetrisch - die Symmetrie ist jedoch in der Regel nie perfekt. Mit dieser Methode kann die Frage untersucht werden, ob zwei Merkmale symmetrisch sind, d.h. bei jedem Gesicht bis auf geringe Abweichungen gleich groß sind.

Parameters:
merkmal1 - Index des ersten Merkmals
merkmal2 - Index des zweiten Merkmals
abweichung - Maximale Abweichung, die nicht angezeigt werden soll

reportZufaelligeGewichte

public void reportZufaelligeGewichte()
Die Methode erzeugt im Feld gewichte eine zufällige Gewichtung (jedes Gewicht zwischen 0 und 0.9). Anschließend versucht die Methode alle unbekannten Personen zu identifizieren und berechnet die Quote, der korrekten Identifizierung. Die Methode terminiert nicht.


testIdentifiziereGesicht

public void testIdentifiziereGesicht()
Identifiziert alle unbekannten Gesichter in des für jedes unbekannte Gesicht die Methode identifiziereGesicht aufruft.