AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Webcam Alarmanlage - Neuronales Netz

Webcam Alarmanlage - Neuronales Netz

Ein Thema von Flips · begonnen am 15. Feb 2008 · letzter Beitrag vom 29. Nov 2008
Antwort Antwort
Seite 1 von 7  1 23     Letzte » 
Flips
Registriert seit: 17. Feb 2005
Übersicht:
Das Programm ist in der Lage, aus jeder Kamera ein Bildüberwachungssystem zu machen. Es nutzt dazu ein neuronales Netz, vergleichbar mit den Neuronen im Gehirn welche über sog. Synapsen (Gewichte) miteinander verbunden sind, nur sehr viel weniger komplex. (In diesem Fall sind nur 76801 Neuronen im Einsatz)
Das besondere daran ist, dass es v.a. für qualitativ nicht sehr hochwertige (flimmernde) Kamera sehr gut geeignet ist, da die Überwachung eben auf solch einem Netz basiert. Das neuronale Netz fungiert als eine Art KI und flimmernde Pixel zählen daher bei der Bewertung weniger als (relativ) konstant bleibende Pixel.


Beta 0.6
  • Neuronales Netz zur Auswertung der Bilddaten
  • Hotspot-Definition (Ich hoffe luwo hat nichts gegen das "Hotspot" ) zur besseren Überwachung einzelner Bildausschnitte (Hidden-Layer)
  • Minütliche (automatische) Anpassung zur besseren Langzeitüberwachung möglich
  • Quickstart-Funktion für schnellere Bereitschaft
  • Hilfe-Dokument
  • Skalierte Markierung geänderter Pixel (je nach Wichtigkeit mehr oder weniger stark)
  • Es sollten alle Komprimierungen (I420,RGB24,...) möglich sein.
  • Mit Überraschungen!!!! (auch Bugs genannt;wenn du einen findest dann poste ihn und du bekommst ein "Dankeschön")
Neuerungen 0.5 -> 0.6:
  • Verbesserte Lernformel (Modifizierte Delta-Regel)
  • "Schöneres" GUI
  • Visuelle Anzeige der Stärke der Gewichte
  • Veröffentlichung einiger Code-Segmente


Achtung: Bei einem Alarm wird ein Bild im Programmordner gespeichert (output.bmp)

Wahrscheinlich besitzt das Programm noch einige Design -und GUIBugs (falsch deaktivierte Buttons usw...).
Sollte jemand Dinge wie ne AV oder andere schwerwiegende Fehler reproduzierbar erzeugen können, bitte ich um Rückmeldung (+OS).


Beim Start erscheinen zwei Kameradialoge. Bitte im ersten Dialog folgende Daten angeben:
Auflösung: 320 * 240
Komprimierung: I420 oder RGB24 (geht auf jeden Fall, bevorzugt ist allerdings I420)

Eine Anleitung (leider nich ganz aktuell) findet ihr im Programm bei Klick auf den Hilfe-Button



Code-Snippets (PSEUDO-CODE)
Delphi-Quellcode:
procedure Lernen;
begin
(*
Das ist natürlich nicht meine ganze Lernroutine, aber das Grundgerüst.
Die ganze will ich dann doch noch nicht hergeben :-)
*)

for i := 0 to length(InputNeuronen) - 1 do
  begin
    ai := OutputNeuron.Output;
    aj := InputNeuronen[i].NettoInput;

   deltaGewicht := (ai-aj);
   //Damit die Änderungen nicht ZU minimal werden
   if (deltaGewicht < 0.015) and (deltaGewicht > 0) then
     deltaGewicht := 0.015
   else if (dGewicht > -0.015) and (deltaGewicht < 0) then
     deltaGewicht := -0.015;
   
  //Lernkonstante Epsilon wird stetig kleiner um Überlernung vorzubeugen
   neuesGewicht := Lernkonstante * deltaGewicht;

   InputNeuronen[i].Gewicht := InputNeuronen[i].Gewicht + nGewicht;
   if InputNeuronen[i].Gewicht < 0 then
     InputNeuronen[i].Gewicht := 0;
  end;
end;
Delphi-Quellcode:
procedure BerechneOutput;
begin
  OutputNeuron.Output:= 0;
   for i := 0 to length(InputNeuronen) - 1 do
     begin
        a := InputNeuronen[i].NettoInput * InputNeuronen[i].Gewicht;
        //Evtl. Aktivierungsfunktion ??
        //a := f(a);
        OutputNeuron.Output:= OutputNeuron.Output + a;
     end;
   OutputNeuron.Output := OutputNeuron.Output / length(InputNeuronen);
end;
Thx, lg Flips
Miniaturansicht angehängter Grafiken
screen3_106.png  
Angehängte Dateien
Dateityp: zip beta_108.zip (697,7 KB, 201x aufgerufen)
 
Nuclear-Ping
 
#2
  Alt 15. Feb 2008, 16:14
Habs mir nicht angeschaut, da ich keine Webcam hab. Aber für die Umsetzung. Die gleiche Idee hatte ich vor zig Jahren, allerdings mangels Wissen und Erfahrung wieder seingelassen.
  Mit Zitat antworten Zitat
Flips

 
Delphi 7 Professional
 
#3
  Alt 15. Feb 2008, 16:20
Gut, du weißt ja, dass ich hier schonmal ein neuronales Netz (OOP, du glaubst gar nicht wie froh ich jetzt darüber bin) programmiert und daher war es nicht allzu schwer es zu portieren.

Die Umsetzung ist erst die Spitze des Eisbergs (hoffe ich jedenfalls ).
Zur noch besseren Analyse möchte ich noch ein paar Hidden-Layers (zusätzliche Zwischenneuronen) einbauen, zur Zeit arbeite ich ja nur mit ner Inputschicht und einem (hab auch ne Version mit zwei) Outputneuronen.
Aber alles zu seiner Zeit
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von luwo
luwo

 
Delphi XE2 Enterprise
 
#4
  Alt 15. Feb 2008, 18:52
Hallo Flips,

schau mir gerade mal dein Alarm-Programm an, sieht vielversprechend aus!

Webcam läuft, und wird angezeigt. Bei Normbild gibts nur ein schwarzes Bild.
Ist das beabsichtigt?


lg Luwo
  Mit Zitat antworten Zitat
Flips

 
Delphi 7 Professional
 
#5
  Alt 15. Feb 2008, 19:07
Hehe nein ist es nicht
Haste die Checkbox SW aktiviert? dann kanns sein das du erstmal den kontrast umstellen musst (mit der Trackbar im Normbild-Fenster)
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von luwo
luwo

 
Delphi XE2 Enterprise
 
#6
  Alt 15. Feb 2008, 19:20
Zitat von Flips:
Hehe nein ist es nicht
Dann bin ich ja beruhigt

Zitat von Flips:
Haste die Checkbox SW aktiviert? dann kanns sein das du erstmal den kontrast umstellen musst (mit der Trackbar im Normbild-Fenster)
CheckBox SW ist deaktiviert.
Kontrast rauf-runter-fahren ändern nix am Bild, bleibt kompletto schwarz.

Hast Du ne Idee woran es liegen könnte?

Luwo
  Mit Zitat antworten Zitat
Flips

 
Delphi 7 Professional
 
#7
  Alt 15. Feb 2008, 19:34
Probiers mal mit dieser Version
Angehängte Dateien
Dateityp: zip alarm_101.zip (272,6 KB, 84x aufgerufen)
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von luwo
luwo

 
Delphi XE2 Enterprise
 
#8
  Alt 15. Feb 2008, 19:37
Zitat von Flips:
Probiers mal mit dieser Version
Nö, leider kein Unterschied, Normalbild ist/bleibt schwarz.
Kann das vielleicht mit der Webcam selbst zusammenhängen?
Oder capturest du das Bild aus dem Cam-stream?
  Mit Zitat antworten Zitat
Flips

 
Delphi 7 Professional
 
#9
  Alt 15. Feb 2008, 19:38
Ich capture das aus dem Stream.
Was für ein OS hast du?
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von luwo
luwo

 
Delphi XE2 Enterprise
 
#10
  Alt 15. Feb 2008, 19:39
Zitat von Flips:
Ich capture das aus dem Stream.
Was für ein OS hast du?
Benutze XP SP 2.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf