AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Webcam Alarmanlage - Neuronales Netz
Thema durchsuchen
Ansicht
Themen-Optionen

Webcam Alarmanlage - Neuronales Netz

Ein Thema von Flips · begonnen am 15. Feb 2008 · letzter Beitrag vom 29. Nov 2008
Antwort Antwort
Seite 4 von 7   « Erste     234 56     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, 209x aufgerufen)
 
Flips

 
Delphi 7 Professional
 
#31
  Alt 16. Feb 2008, 17:56
Die Idee die du "Hotspots" nennst ist mir auch schon eingefallen.
So könnte ich eine Hidden-Layer Schicht für Pixel die einen Hotspot bilden erstellen...Das wäre echt nicht schlecht^^

@GeMo
Hast du noch andere Geräte wie beispielsweise eine TV-Karte?
Die schieben sich nämlich meistens vor Webcams.

Ich bau in der Beta noch einen Dialog ein, mit dem Mann die Quelle des Signals wählen kann, dann solltest du deine Quickcam (die ich auch habe ) auswählen können.
Philipp F.
  Mit Zitat antworten Zitat
Flips

 
Delphi 7 Professional
 
#32
  Alt 16. Feb 2008, 17:59
Wenn du diesen Code hier unter die anderen SendMessage Aufrufe in dem Codelyb-Code schreibst und die Quelle richtig auswählst, dann sollte es gehen!
Delphi-Quellcode:
const
  WM_CAP_DLG_VIDEO_SOURCE = WM_USER + 42;
[..]
SendMessage (capHandle, WM_CAP_DLG_VIDEO_SOURCE, 1, 0);
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

 
Delphi 7 Personal
 
#33
  Alt 16. Feb 2008, 18:06
hi

finde es ganz toll
nur wenn man es startet, dann ist die zweite Checkbox (in...) enabled, wenn man SW checked auf true setzt und dann wieder auf false geht, ist die zweite Checkbox disabled
Sebastian
  Mit Zitat antworten Zitat
GeMo

 
Delphi 7 Professional
 
#34
  Alt 16. Feb 2008, 18:16
Zitat von Flips:
@GeMo
Hast du noch andere Geräte wie beispielsweise eine TV-Karte?
Die schieben sich nämlich meistens vor Webcams.
ja ich besitze noch eine tv-karte! wie kann man denn selbst die quelle auswählen per code?

EDIT:
hat sich schon erledigt mit meiner frage
dann hat sich wohl die tv-karte vor die kamera gesetzt..
  Mit Zitat antworten Zitat
Flips

 
Delphi 7 Professional
 
#35
  Alt 19. Feb 2008, 17:06
*Push*

BETA online

Erfolgreich getestet!
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

 
Delphi 10.2 Tokyo Starter
 
#36
  Alt 1. Mär 2008, 23:28
Läuft super (nachdem ich endlich den Treiber für meine Webcam gefunden habe )!
  Mit Zitat antworten Zitat
Flips

 
Delphi 7 Professional
 
#37
  Alt 3. Apr 2008, 19:09
So, die Version 5 ist online.
Features sind unter anderem eine skalierte Rot-Färbung geänderter Pixel und eine neue Lernformel, sowie diverse kleine Änderungen.
Wäre schön wenn ihr es testen würdet
Achso und noch was: Auch interessant wäre die CPU-Auslastung während des Lernens...die ist bei mir nämlich nur ~20%, trotz while-schleife
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von Xzeer
Xzeer
 
#38
  Alt 6. Apr 2008, 17:57
wenn ich die anwendung starte kommt von windows die meldung "beta.exe" funktioniert nicht mehr und das programm wird beendet.

Mein System:
Windows Vista Home Premium 32bit -> kein Sp1
Logitech QuickCam
Marvin
  Mit Zitat antworten Zitat
Flips

 
Delphi 7 Professional
 
#39
  Alt 6. Apr 2008, 22:02
Hmm scheinbar ist das ganze nicht Vista kompatibel.
Kann es leider nicht ändern, habe kein Vista zur Verfügung.
Philipp F.
  Mit Zitat antworten Zitat
DelphiNub
 
#40
  Alt 13. Apr 2008, 17:55
Hmm, beim start kommt der besagte Dialog für Auflösung, Komprimierung und Größe (?!) allerdings hab ich nur MJPG als Auswahl.
Wenn ich nu ok drück kommt ein Dialog zur Auswahl der Videoquelle wo die Kamera auch angezeigt wird. Wenn ich erneut auf OK drück dauert es ne weile bis dann "Kein passender Codec gefunden" kommt. Form wird angezeigt allerdings ohne bilder (verständlich).
Beim beenden meldet sich dann der liebe Just-In-Time Debugger von VS

moep ^^

OS: win xp pro
kamera ist ne panasonic video kamera die über usb/firewire als webcam dient.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    


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:20 Uhr.
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