Schlagwort Archiv: Oachkatzl

Raspberry Video Camera – Teil 17: Exkurs – Wie Computer Farben sehen

Im vorangegangenen Artikel hatte ich gezeigt, wie wir die Raspberry Video Camera durch Farberkennung auslösen können. Dabei analysiert ein Python-Programm die Videobilder auf die typischen Farben der Eichhörnchen hin und generiert dann das Triggersignal. Um die Bildauswertung zu bewerkstelligen, bedienen wir uns einer spezialisierten Software für das maschinelle Sehen. Die nennt sich Computer Vision und in ihrer freien Form OpenCV. Heute möchte ich ein wenig näher darauf eingehen, wie OpenCV Bildimages intern als Zahlen darstellt und was es mit den verschiedenen Farbräumen wie RGB oder HSV auf sich hat.  (mehr …)

Raspberry Video Camera – Teil 16: SW Trigger per Farberkennung

Wie lässt sich der Auslöser der Videokamera durch eine Objekterkennung im Videobild selbst steuern? Das ist die Fragestellung um die es in diesem Artikel geht. In den beiden vorhergegangenen hatten wir bereits Vorarbeiten geleistet. Wir hatten OpenCV als Python Programmbibliothek installiert und das Video-Aufzeichnungsprogramm so erweitert, dass es jede Sekunde ein Bild aus dem aktuellen Videodatenstrom entnimmt und ins Dateisystem legt. Nun können wir diese Bilder einlesen und auf die Fellfarben der typischen deutschen Eichhörnchen hin analysieren. Bei positiver Erkennung soll eine Triggerdatei erzeugt werden – genauso, wie es vorher durch den Bewegungssensor geschehen ist. (mehr …)

Raspberry Video Camera – Teil 15: SW Einzelbilder exportieren für die Farberkennung

Die bisher entwickelte Version der Oachkatzl-Cam verwendet einen Bewegungssensor als Auslöser für die Videoaufzeichnung. Das geht aber auch anders, wie ich in Teil 4 dieser Artikelserie bereits beschrieben hatte. Als nächstes realisiere ich eine Objekterkennung anhand der Farbe der Eichhörnchen. Das ist ein recht umfangreiches Thema und ein größeres Python-Programm. Da braucht es mehrere Artikel um dem gerecht zu werden. Im letzten Artikel hatten wir bereits OpenCV auf dem Raspberry Pi installiert, damit steht das programmiertechnische Rüstzeug bereits zur Verfügung. Heute zeige ich, wie wir aus dem Videodatenstrom einzelne Bilder exportieren können, die dann im nächsten Artikel nach den typischen Eichhörnchenfarben untersucht werden.  (mehr …)

Raspberry Video Camera – Teil 14: SW Installation Computer Vision (OpenCV 3.2)

Eine automatische Videokamera per Bewegungssensor zu triggern ist nur eine von vielen Möglichkeiten. Man kann auch die Bilder der Kamera auswerten und versuchen darin Bewegungen oder Objekte zu erkennen. Eine extra Hardware, wie ein Bewegungssensor, ist dann nicht mehr nötig, allerdings schlaue Software, die bei der Bildauswertung behilflich ist. Computer Vision heißt das Zauberwort, das man mit maschinellem Sehen übersetzen könnte. Und das gibt es auch für den Raspberry Pi und für Python. OpenCV 3.2 wird in diesem Artikel installiert – quasi als Vorarbeit, damit wir dann in den nächsten Artikel Objekterkennung in Python betreiben können. Dann wird die Kamera durch die Farben der Eichhörnchen getriggert. (mehr …)

Raspberry Video Camera – Teil 13: SW Autostart und Überwachung

In den vorangegangenen Artikeln habe ich die Software für die Raspberry Video Camera vorgestellt. Das war jeweils ein Python-Programm für die Raspberry Kamera an sich und für den PIR Bewegungssensor. Nun geht es darum, die Programme automatisch beim Bootvorgang zu starten und dafür Sorge zu tragen, dass das System verlässlich läuft. Dabei muss man es mit der Überwachung nicht übertreiben. Ein nächtlicher Reboot und ein Programm, das das Volllaufen der SD-Karte verhindert, reichen bereits vollkommen aus. Letzteres kann mit ein paar Zeilen Python-Code und einem Eintrag in die Crontab leicht erledigt werden. (mehr …)

Raspberry Video Camera – Teil 12: SW Trigger per Bewegungssensor

Die Hardware ist fertig, die Kamerasoftware auch – jetzt fehlt nur noch der Auslöser – ein automatischer versteht sich. Dafür gibt es viele Möglichkeiten, wie Bewegungserkennung, Bildauswertung oder eine Lichtschranke, einige werde ich später noch eingehender vorstellen. Den Anfang macht eine einfach zu realisierende Variante eines Kamera-Triggers, nämlich ein PIR-Bewegungssensor. Der soll die Bewegung eines Eichhörnchens erkennen, die Info an den Raspberry Pi weiterleiten und dort wird ein kleines Python-Programm die Schnittstelle zum Kameraprogramm ansteuern. Der Nachlauf der Kamera, also die Zeit, die die Kamera noch aufzeichnet nachdem keine Bewegung mehr erkannt wird, wird in dieser Variante auch vom Bewegungssensor gesteuert. Die Nachlaufzeit lässt sich dort mit einem Potentiometer einstellen. (mehr …)

Raspberry Video Camera – Teil 11: SW Python für die Kamera

Nachdem Raspbian Lite auf dem Pi installiert ist, geht es nun an die Programmierung. Raspberry-typisch erfolgt die in Python, eine Sprache, die ich mir auch erst mühsam anlesen musste. Aber inzwischen – ohne behaupten zu wollen, in die Tiefe vorgedrungen zu sein – muss ich sagen, dass mich die Schönheit und die Mächtigkeit von Python begeistert. Ich schicke voraus, dass ich versuchen werde Python3-Syntax zu verwenden. Python 2.7 tue ich mir nicht mehr an und teste die Programme ausschließlich unter Python 3. Was aber niemand abhalten soll, meinen Code auf Python 2.7 umzuschreiben. Angefangen wird heute mit der Programmierung der Raspberry Pi Kamera – unter Verwendung des Picamera-Python-Moduls. (mehr …)

Raspberry Video Camera – Teil 10: SW Installation Betriebssystem und Module

Die Vorstellung der Harwarekomponenten der Raspberry Video Camera ist nunmehr abgeschlossen – jetzt geht es um Software. Da kommt als erstes natürlich das Betriebssystem ins Spiel, nämlich Raspbian Jessie Lite. Dazu habe ich in der Vergangenheit bereits Artikel geschrieben, aber nachdem sich immer mal wieder was ändert, erkläre ich hier noch einmal Schritt für Schritt eine Raspbian headless Installation mit WiFi. „Headless“ bedeutet hier, dass wir von einem Serversystem ausgehen, das weder Tastatur noch Monitor besitzt und so muss auch die komplette Installation ohne Tastatur und Monitor erfolgen. Bei Raspbian ist das kein Problem. Dazu kommt dann im nächsten Schritt die Grundeinrichtung des Systems und die Installation einiger Softwarekomponenten, die wir für das Kamerasystem benötigen. (mehr …)

Raspberry Video Camera – Teil 9: Montage Kamera Modul

Im vorangegangenen Artikel hatte ich mein Konzept für ein wasserdichtes Kameragehäuse vorgestellt, heute geht es um den Einbau des Raspberry Pi Kamera Moduls. Die Frischaltebox, die ich als Gehäuse verwende, ist zwar weitgehend transparent, aber das reicht für gute Bilder nicht aus. Für die Kamera braucht es ein eigenes Sichtfenster und das muss natürlich gut abgedichtet werden, um das Gehäuse an sich wasserdicht zu halten. Man könnte natürlich in Erwägung ziehen, das Raspberry Pi Kamera Modul direkt mit der Objektiv-Öffnung in ein kleines Loch im Gehäuse zu kleben. Das würde vermutlich sogar funktionieren, hätte aber den Nachteil, dass die Kamera nicht einfach entnommen und wieder eingesetzt werden kann. Dafür braucht es eine etwas aufwändigere Lösung. (mehr …)

Raspberry Video Camera – Teil 8: Montage Modell 850

Die Oachkatzl-Cam braucht ein Gehäuse und zwar ein wasserdichtes. Was liegt näher als eine handelsübliche Frischhaltebox aus Plastik zu verwenden? Selbst hochwertige Markenprodukte gibt es für kleines Geld und die sind absolut wasserdicht. Gut, einen Designpreis werden wir mit so einer Tupper-Kamera nicht gewinnen, aber dafür kommen wir wesentlich billiger weg, als mit einem professionellen Außenkameragehäuse. Ich stelle hier beispielhaft mein Modell 850 vor, das seinen Namen von der verwendeten Lock & Lock 850ml Box erhält. Davon habe ich im Moment zwei Varianten im Einsatz ein Modell 850A ohne und ein Modell 850B mit Bewegungssensor. Die Lock & Lock Boxen sind bekannt durch die Flügelchen am Deckel, die nach dem Aufsetzen nach unten geklappt werden. Dadurch drückt es den oberen Rand der Box in den Dichtungsring und der Verschluss ist wasser- und luftdicht arretiert. Bei allen Bohrungen müssen wir allerdings dafür sorgen, dass die Dichtigkeit auch erhalten bleibt. (mehr …)