Ich möchte mit Bilderkennung per Mikrocontroller herumexperimentieren. Dazu möchte ich erstmal das Bild einer billigen Überwachungskamera einlesen und mit dem Folgebild vergleichen und wenn sich was verändert hat Alarm geben. Die Kamera liefert ein BAS-Signal. Ich habe ein Sam7S256 Entwicklungsboard und die Möglichkeit, an de rUni Professionelle Platinen zu fertigen. Kan ein ARM diese Aufgabe bewältigen? Als ADC kann ich am Einfachsten (bereits aufgebaut) einen MAXIM 40Msps 10Bit ADC mit Parallelem Interface benutzen. Kann das Projekt so funktionieren?
So ein Projekt habe ich schonmal gesehen; aber ich bin mir nicht sicher, ob mit µC und Pixelgenau..
Die Mittelwertbildung des Helligkeitssignals innerhalb einer Zeile geht ja noch mit einfachem RC-Tiefpaß, aber über mehrerer Zeilen muß man etwas mehr Aufwand treiben. "Pixelgenau" würde einen digitalen Bildspeicher bedeuten, der mindestens 2 Bilder fasst,mehrere Megabyte, das geht im ARM nur mit schnellem externem RAM, eher was für FPGAs.
>"Pixelgenau"
kommt auf die Pixelgrösse drauf an.
Wenn man zwei Farb-Bilder von 720*540 vergleichen will ist das
wesentlich aufwendiger als wenn man zwei Schwarz-Weiß-Bilder mit
160x100 vergleicht.
Die Low-Tech-Version: Ich habe hier schon mal irgendwo eine alte Funkschau-Schaltung von 1978 abgelegt, die bestand hauptsächlich aus vier Monoflops, zwei vom Zeilen- und Bildimpuls getriggert, die andern beiden wieder von diesen ausgelöst. Damit wird ein rechteckiger Bildausschnitt markiert, in dessen Inneren mittels Sample-an-Hold (Analogschalter plus Kondensator) der Helligkeits-Mittelwert gemessen wird. Der langfristige Mittelwert, ebenfalls gesampled, wird damit über Komparator verglichen, das alarmiert nur bei großen Helligkeitsschwankungen.
Conrad hat sowas fertig als Vierfach-Bildspeicher mit 48 Rechtecken die sich für die Bewegungserkennung einzeln aktivieren lassen. Der große einzelne Chip darin dürfte ein FPGA oder ASIC sein.
Hi, vor zehn Jahren habe ich in einem Projekt mal mehrere Dutzend Videobewegungsmelder verbaut. Deren Herzstück war ein Z80, und das Detektionsprinzip war eine zeilenweise FFT mit Vergleich des Spektrums einer Zeile mit dem derselben Zeile in einem späteren Bildes. Als einer der Vorzüge wurde genannt, nicht nur das Auftauchen einer Person im Bild würde bemerkt, sondern auch, wenn sich diese bewegt. Aber ich habe keine Informationen über die Anzahl der berücksichtigten Bildpunkte je Zeile und auch nicht, ob der Vergleich zwei direkt aufeinanderfolgende Bilder prüft, oder mit größerem Abstand. Ebensowenig über die Taktfrequenz des Z80 oder ob die eigentliche Arbei in einem ASIC stattfand. Ciao Wolfgang Horn
Ich habe mir Vorgestellt, zuerst ein Frame (352*288Pixel, 8bit) ins RAM zu laden, dann den 2. und anschließend die Unterschiede zu suchen.
Möglicherweise. Aber aus Gründen der späteren Erweiterung möchte ich -wenn möglich- trotzdem das ganze Bild (oder zumindest die geraden Zeilen, die ungeraden können ja wegfallen, was das Problem des Bildzusammensetzens übergeht) einlesen. Das ganze Bild kann ich unkomprimiert ja nie im Speeicher behalten, da es etwa 100kB belegen würde.
'Nabend, die Schaltung mit den Monoflops habe ich sogar noch irgentwo auf Lochraster, hatte ic hier schon mal - in anderem Zusammenhang - vorgestellt (finde ich aber nicht mehr). Heutzutage macht man das annders. :-) Du kannst mit einem AVR das BAS Signal, wie sagt man?Undersamplen? Da der AVR ja Quarzstabil arbeitet, kannst Du den ADC mit Timer1 als Quelle autotriggern. Timer1 lässt Du extern über die Sync Signale (LM1881) takten. Niemand zwingt Dich die komlette Zeile in einem Rutsch in den Ram zu laden. Du bekommst mit jedem Halbbild ein Stück von der jeweiligen Zeile. Eine Mittelwertbildung erübrigt sich. Wie sagte hier letztens jemand: Du faltest die Bildfrequenz ins NF-Band. Ich habe das im Rahmen der Ambilight-Sache (wer erinnert sich?) schon mit einem Mega48/168 erfolgreich probiert. Müsste ich blos mal fertig bauen. Man kommt zu nischt mehr...
Dein Ambilightprojekt habe ich mir schon angesehen. Aber ich möchte eben trotzdem möglichst viel Bild im Ram halten um später mal eine primitive Kantenerkennung durchzuführen. Aber dafür reicht der ARM7 ja nicht ganz... Also mal nach was größeren umsehen.
@dunundich: Man beachte, dass die Kamera bzw. ein Chip auf deren Platine die digitalen Daten ausspuckt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.