Delphi-PRAXiS
Seite 3 von 7     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Webcam Alarmanlage - Neuronales Netz (https://www.delphipraxis.net/108541-webcam-alarmanlage-neuronales-netz.html)

Flips 15. Feb 2008 20:54

Re: Webcam Alarmanlage - Neuronales Netz
 
OK dann weiß ich an was es liegt, fixed version ist in ner minute ersten Post zu finden!

Und noch ein großes Danke euch BEIDEN!!!!!!

luwo 16. Feb 2008 09:38

Re: Webcam Alarmanlage - Neuronales Netz
 
Zitat:

Zitat von Flips
OK dann weiß ich an was es liegt, fixed version ist in ner minute ersten Post zu finden!
Und noch ein großes Danke euch BEIDEN!!!!!!

Ok, dieser Fehler scheint gefunden (bei mir):
Habe das Videoformat von RGB24 auf I420 umgestellt, und siehe da, Normalbild kommt.

Vielleicht noch ein paar kleine Anmerkungen zur Programmbedienung:

Beim Klick auf [Alarm aktivieren] passiert (sichtbar für den Benutzer) erstmal irritierenderweise gar nix.
Da sollte irgendein Feedback sichtbar/hörbar sein (z.b. Countdown in der Caption: "Starte Alarm in 5,4,3,2,... Sekunden")

Wenn der Alarm aktiviert wird (rotes Formular) passiert wiederum für ein paar Sekunden gar nix (oder nur für den Benutzer nicht sichtbar?)
Auch die Anzeige unten bleibt scheinbar stehen, nach ein paar Sekunden gehts dann weiter.

btw: Für die Anzeige des Alarms würde ich ein kleines TShape (Kringel irgendwo auf dem Hauptfenster) verwenden
(ist aber nur meine kleine ästhetische Meinung :-) )



Ein kleiner Bug:
Wenn ohne vorher auf [Normalbild] zuerst auf [x-mal lernen] geklickt wird,
kommt folgende Fehlermeldung: "Bereichsüberschreitung bei Zeilenindex."
Sicherlich nur ne Kleinigkeit :-)

Ansonsten finde ich das Programm und die hinterliegende Idee super! :thumb:

Güße Luwo

igel457 16. Feb 2008 10:37

Re: Webcam Alarmanlage - Neuronales Netz
 
Bei mir funktioniert es jetzt auch. :thumb:

xZise 16. Feb 2008 10:49

Re: Webcam Alarmanlage - Neuronales Netz
 
Eine Frage zu den Programm (ich selber habe keine Webcam, kann es also net testen):
Wie häufig nimmt das Programm ein Bild auf, sobald eine Störung reinläuft?
Nur einmal? Dann müsste man sich ja nur mit dem Rücken voran reinkommen xD

MfG
xZise

Flips 16. Feb 2008 13:37

Re: Webcam Alarmanlage - Neuronales Netz
 
Zitat:

Zitat von luwo
Beim Klick auf [Alarm aktivieren] passiert (sichtbar für den Benutzer) erstmal irritierenderweise gar nix.
Da sollte irgendein Feedback sichtbar/hörbar sein (z.b. Countdown in der Caption: "Starte Alarm in 5,4,3,2,... Sekunden")

:arrow: Ist ja erst ein Prototyp -> Aber trotzdem ne gute Idee :-)
Zitat:

Zitat von luwo
Wenn der Alarm aktiviert wird (rotes Formular) passiert wiederum für ein paar Sekunden gar nix (oder nur für den Benutzer nicht sichtbar?)
Auch die Anzeige unten bleibt scheinbar stehen, nach ein paar Sekunden gehts dann weiter.

:arrow: Da war ursprünglich mal ein Alarmsound, den hab ich allerdings gelöscht, das Delay ist aber noch drin. :oops:
Ich denke nächste Woche kann ich ne Beta releasen, dann wird das schon :-)
Zitat:

Zitat von luwo
btw: Für die Anzeige des Alarms würde ich ein kleines TShape (Kringel irgendwo auf dem Hauptfenster) verwenden
(ist aber nur meine kleine ästhetische Meinung :-) )

:arrow: Prototyp :-) Geht ja erstmal nur um die Nachricht "Achtung, da ist was passiert". In der Beta sollte das dann auch schöner aussehen :-)

Zitat:

Zitat von luwo
Ein kleiner Bug:
Wenn ohne vorher auf [Normalbild] zuerst auf [x-mal lernen] geklickt wird,
kommt folgende Fehlermeldung: "Bereichsüberschreitung bei Zeilenindex."
Sicherlich nur ne Kleinigkeit :-)

:arrow: Jap weiß ich, da man das einfach mit Enabled regeln kann -> Wird in Beta so sein :-)

Zitat:

Zitat von luwo
Ansonsten finde ich das Programm und die hinterliegende Idee super! :thumb:

:arrow: Dankee!! :-)

Zitat:

Zitat von xZise
Eine Frage zu den Programm (ich selber habe keine Webcam, kann es also net testen):
Wie häufig nimmt das Programm ein Bild auf, sobald eine Störung reinläuft?
Nur einmal? Dann müsste man sich ja nur mit dem Rücken voran reinkommen xD

:arrow: Selbst wenn ich ein Video davon aufzeichnen würde, ein Dritter könnte immer noch unerkannt mit dem Rücken zur kamera gehn. Das ist kein Programmfehler an sich.
Allerdings hast du insofern recht, dass mir schon der (Logik-)Fehler aufgefallen ist. Man erkennt ihn in der Reihenfolge, in welcher eine Überschreitung des Grenzwerts abgearbeitet wird.

Bild capturen
Überprüfen
Alarm ausgeben
Bild capturen
Bild speichern

Da die Überprüfung ja einige ms dauern kann sollte ich das 2. "Bild capturen" wohl rauslassen, da dann unter Umständen niemand mehr zu sehen ist :-D

Nikolas 16. Feb 2008 13:46

Re: Webcam Alarmanlage - Neuronales Netz
 
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.

LDericher 16. Feb 2008 13:58

Re: Webcam Alarmanlage - Neuronales Netz
 
Zitat:

Zitat von Flips
OK dann weiß ich an was es liegt, fixed version ist in ner minute ersten Post zu finden!

Und noch ein großes Danke euch BEIDEN!!!!!!

Welches ist denn nun die mehr oder weniger endgültige Version???

Bei mir kommt "Indexüberschreitung" oder so was in der art...

Flips 16. Feb 2008 14:05

Re: Webcam Alarmanlage - Neuronales Netz
 
Zitat:

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:

Zitat von Superwinger
Die Stable-Version ist im ersten Post, wo die Anleitung auch steht


luwo 16. Feb 2008 17:46

Re: Webcam Alarmanlage - Neuronales Netz
 
Zitat:

Zitat von Flips
Hidden-Layers gibt es noch (!) keine, werd ich mich aber jetzt ans Werk machen.

Bin schon gespannt :-)

Hatte auch schon mal ein kleines Projekt zur MotionDetection implementiert.
Prinzipielles Vorgehen war, wie Nikolas schon anmerkte:
Differenzbilder berechnen (möglichst über MEHR als nur 2 Bilder!)
und dann dem Benutzer die Möglichkeit geben innerhalb des Videofensters
Bereiche definieren zu lassen (z.B. Eingangstür) die besonderer Beachtung bedürfen. (Hotspots)
Habe dazu auch erstmal die Bilder in Graustufen umgerechnet, weil die Farbinformation
(in meinem Fall) völlig irrelevant waren.
Wenn ich mich recht erinnere hab ich auch noch ein Histogramm der Bilder errechnet
um möglichen Lichtschwankungen (die ja nicht wirklich am Bildinhalt was ändern) herauszufiltern.
Quasi ein Entschärfen von Bildänderungen.

Tipp: Zum Thema n Pixel zusammenfassen, Graustufenfilter usw.
gibt es viele (schnelle) Routinen in der Graphics32-Library

Grüße Luwo

GeMo 16. Feb 2008 17:51

Re: Webcam Alarmanlage - Neuronales Netz
 
also bei mir funktioniert die anzeige der webcam leider garnicht.
aber anscheinend liegt das wohl irgendwie an meiner kamera (Logitech QuickCam). In anderen Anwendungen wie z.b. Skype oder ICQ geht sie einwandfrei.
Die Funktion aus der CodeLib funktioniert bei mir auch nicht und zeigt immer nur ein blaues Bild an, genau wie bei dieser Anwendung hier..


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:43 Uhr.
Seite 3 von 7     123 45     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz