Einzelnen Beitrag anzeigen

Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#28

Re: Webcam Alarmanlage - Neuronales Netz

  Alt 16. Feb 2008, 14:05
Zitat von Nikolas:
Ich habe gerade keinen Zugriff auf Windowsrechner, finde den Ansatz mit einem NN aber interessant. Könntest du vielleicht etwas über den Aufbau sagen (inputNeuronen, wieviele verdeckte Schichten, Anzahl OutputNeuronen, Lernfunktion,usw)?

Warum hast du dich überhaupt für ein NN entschieden? Einfach so, weil die Teile lustig sind, und du es ausprobieren wolltest?
Spontan wäre mir bei einer Alarmanlage eingefallen, die Differenz zweier Bilder zu berechnen und dann den Fehler aufzusummieren.
Genau das habe ich ja vorher gemacht
Habe auch einen eigenen Interpolierungsalgorithmus für SW-Bilder geschrieben, damit das Flimmern ein wenig gefiltert wird. Das geht auch gut, aber dann ist mir der Gedanke mit einem NN gekommen, zumal ich ja schonmal ein Programm mit einem NN hier vorgestellt habe.
Ein NN arbeitet ja eigentlich ganz grob gesagt danach: Lerne, wichtiges von unwichtigem zu unterscheiden bzw. was welcher Zustand aussagt.
Und das NN ist jetzt so programmiert, dass es lernt, Pixel die sich stark verändern (Beispielsweise ein Blinklicht) oder einfach nur stark flimmernde Pixel weniger zu zählen als Pixel die nahezu konstant bleiben.

Zur Veranschaulichung:
Ich ordne jedem Pixel ein Inputneuron zu. (Eine gute Idee für einen Hidden-Layer wäre, 4 Pixel die ein Quadrat bilden zu einem Neuron zusammenzufassen).
In der Lernfunktion wird nun die Abweichung jedes aktuellen Pixels zum Normbild geprüft. Vorgabe ist : Unterschied soll 0 sein. Wenn der Unterschied jetzt einen gewissen Toleranzwert (5% hier) überschreitet, dann hat das Neuron die Anforderung nicht erfüllt -> es bekommt den Output 1, anders bekommt es den Output 0.

Dann in der eigentlichen Lernfunktion wird jenachdem ob ein Neuron sich verändert (=1) oder gleich geblieben ist (=0) die Synapse (das Gewicht) zum Endergebnis berechnet.
Als Beispiel:

2 Neuronen, das eine flimmert, das andere bleibt relativ konstant.
Beide haben zu Anfang ein Gewicht von 0.
Das flimmernde Neuron ist beim Vergleich mit dem Normbild durchgefallen, das andere hat bestanden.
D.h. das konstane Neuron bekommt Gewicht gutgeschrieben, das andere Gewicht abgezogen.
Wenn dieser Lernvorgang oft genug gemacht wurde, weiß das NN wie es die Pixel einzustufen hat.


Inputneuronen gibts 320*240 stück,
Outputneuronen gibt es 1.
Hidden-Layers gibt es noch (!) keine, werd ich mich aber jetzt ans Werk machen.

Zitat von Superwinger:
Die Stable-Version ist im ersten Post, wo die Anleitung auch steht
Philipp F.
  Mit Zitat antworten Zitat