Das vorliegende Demo- Programm simuliert die Lösung des Video Kamera Tracking Problems mit Hilfe eines Neuronalen Netzwerkes. Ein bewegliches Objekt kann man mit einer Videokamera verfolgen. Die Videokamera liefert in kurzen Zeitabständen Datenstrukturen die dem Bild entsprechen. Eine nachgeschaltete Bildauswertung bestimmt für jedes Bild die Position des auf dem Bild befindlichen Objektes relativ zur Bildmitte. Stellmotoren korrigieren die orthogonalen Winkel der Kamera derart, dass die Abweichung des beobachteten Objektes von der Bildmitte gegen Null gefahren wird. Im Unterschied zu einer stetigen Regelung (z.B. Geschwindigkeitsregelung eines elektrischen Reihenschlussmotors) steht hier nicht zu jedem Zeitpunkt ein aktueller Istwert zur Verfügung, sondern nur der Istwert des letzten Kamerabildes.

Hier wird Kamera auf die Objektposition des letzten Bildes positioniert. Da sich das Objekt zwischenzeitlich bewegt, entsteht beim nächsten Bild immer ein Fehler entsprechend der Geschwindigkeit des Objektes. Das Objekt befindet sich dann ausserhalb der Bildmitte. Ist der Fehler sehr groß, kann sich das Objekt ausserhalb des Bildes befinden, die Kamera verliert dann das Objekt.

Hier wird die Korrektur um den aktuellen Fehler durch die Prognose eines Neuronalen Netzwerkes ergänzt, das den Fehler des nächsten Bildes an Hand der zu erwartenden Bewegung des Objektes vorhersagt. Das Netz erhält dazu einige Werte der Vergangenheit. Es kennt typische Bewegungen des Objektes.

Die nötige Prognose ist durch ein dreischichtiges Radiale Basisfunktion Netzwerk realisiert. Die anfallenden Daten vom Schiebregister werden zunächst in der Inputschicht von Inputneuronen zwischengespeichert. Die Hiddenschicht befinden sich Neuronen mit radialer Basisfunktion als Propagierungsfunktion. Ein Neuron dieser Schicht feuert, wenn sein Inputmuster seinem gelernten Muster stark ähnelt. Somit kann die Schicht Muster in Zahl der vorhandenen Neuronen klassifizieren. Die Outputschicht besteht aus Neuronen mit mit wichtendem Summierer als Propagierungsfunktion. Wenn dieses Netzwerk jedoch auf nicht gelernte Muster trifft, liefert es, im Unterschied zum Backpropagation Netz, keinen Output. Dem kann man zum Teil dadurch abhelfen, dass man den Output jedes Hiddenneurons durch die Summe des Output aller Hiddenneuronen teilt. Das Lernen neuer Muster erfolgt in mehreren Schritten:
· Hiddenschicht: Zwei Schritte für jedes präsentierte Muster:
· Commit: Ist das Muster „neu“ wird ein neues Neuron angelegt, das bei diesem Muster feuert. Sein rezeptives Feld ist in allen Koordinaten gleich groß und reicht bis zum Mittelpunkt des nächstgelegenen Neurons.
· Shrink: Es wird festgestellt, ob ein bereits vorhandenes Neuron den Mittelpunkt dieses Neurons überdeckt, wenn ja wird das rezeptive Feld des vorhandenen Neurons geschrumpft.
· Outputschicht: Mehrmaliges präsentieren der Muster und Anwenden der Deltaregel für jedes Neuron
Anschluss des Netzes an das Simulationsprogramm:
· Prognose n ergibt sich aus Prognose n-3 + Fehler n-3 + ... + Prognose n-1 + Fehler n-1
· Verstellwinkel n ergibt sich aus = Prognose n + Fehler n-1
Aktivierung eines RBF Neuron:

x Eingabevektor
µ Vektor gelerntes Muster des Neurons
s Radius des rezeptiven Feldes
hier
rezeptiver Feldbereich
Propagierungsfunktion Outputneuron:
![]()
Nettoinput
des j ten Neurons
Output
des i ten Neurons
Gewicht
von i zu j
Gewählte Aktivierungsfunktion Outputneuron:
![]()

· Start: >$JDK_HOME/java -jar ctp.jar
·
Generieren der Muster Netz->Lissajous Figuren
generieren
·
Wahl des Kamerafokus Register Parameter->Kamerabild
(„rund“/“quadratisch“)
·
Lernen der Muster Netz->Training (Abbruch möglich)
·
Abruf der Muster Netz->Recall Lissajous Figuren (Abbruch
möglich)
·
Register Bewegungsfeld blauer Kreis/ blaues Quadrat zeigt Kamerafokus, blaues Kreuz zeigt
Objektmittelpunkt, graue Fläche stellt Fehler dar
·
Gerät Objekt aus dem Kamerafokus, bleibt Simulation
stehen und man kann Kamera mit Netz->Kamera korrigieren von Hand nachstellen
·
Verändert man Parameter in Register Lissajous
Parameter und startet Simulation nach Netz->Lissajous Figuren
generieren mit Netz->Recall Lissajous Figuren neu entstehen
kleine Fehler
· Schaltet man das Netz mit Netz->Keine Prognose ab entstehen größere Fehler
Klassen des Neuronalen Netzwerkes

Klassen des Projektes

Zentrale Klasse ist TableArea. Hier werden Objekt und Kamerafokus in Bewegung dargestellt.
Variablen in Klasse
TableArea
Objx, objy Position des Objektes auf der Ebene
Camerax, cameray Position des Bildmittelpunktes auf der Ebene
Sx0...sx3, sy0...sy3 Weg des Objektes zwischen 2 Kamerabildern, ohne Prognose
Cx0...cx3,cy0...cy3 Weg des Objektes zwischen 2 Kamerabildern, Prognose + Restfehler