Inhaltsverzeichnis:
- Schritt 1: Voraussetzungen einrichten
- Schritt 2: Einrichten der Bewegungserkennungssoftware
- Schritt 3: Zugreifen auf die Videos und die Konfiguration über Dropbox
Video: Pizero Motion Detect Webcam-Sicherheitssystem - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Dieses System verwendet einen Pizero, einen WLAN-Dongle und eine alte Webcam in einem maßgeschneiderten Streichholzschachtelgehäuse. Es zeichnet Bewegungserkennungsvideos mit 27 Bildern pro Sekunde von jeder signifikanten Bewegung auf meiner Auffahrt auf. Anschließend werden die Clips in ein Dropbox-Konto hochgeladen. Kann auch die Protokolle anzeigen und die Konfiguration über die Dropbox ändern.
Schritt 1: Voraussetzungen einrichten
Aktualisieren Sie zunächst das Betriebssystem wie hier beschrieben auf die neueste Version.
Richten Sie dann das WLAN wie hier beschrieben ein.
Dann müssen Sie OpenCv einrichten. Auf pyimagesearch gibt es dazu gute Anleitungen. Wenn Sie sich für Version 3.0 entscheiden, müssen Sie damit rechnen, dass es lange dauert. Einer der Schritte dauert 9 Stunden. Sie benötigen auch die Python-Bindungen, die auf dieser Seite erklärt werden.
Wenn Sie dies alles eingerichtet haben, können Sie die Bewegungserkennungssoftware herunterladen.
Schritt 2: Einrichten der Bewegungserkennungssoftware
Der Code ist auf bitbucket zu finden. Kopieren Sie diese Dateien mit
git-Klon
oder wenn Sie es vorziehen, sie einzeln herunterzuladen.
Der Hauptteil dieses Systems ist multiMotionDetect.py. Es verwendet viele der Multiprocessing-Warteschlangen und -Ereignisse.
Zunächst müssen Sie entscheiden, wo die Videobilder MotionVideos gespeichert werden sollen und diesen Wert in der Datei globalConfig.json setzen. Kopieren Sie dann die Datei config.json.txt und maskedAreas.json.txt in das Stammverzeichnis dieses Ordners. Die config.json.txt hat die folgende Einstellung, die remote bearbeitet werden kann.
{ "frameThreshold": "4", "staticThreshold":"100", "min_area":"650", "postSeconds":"7", "readCamNice":"-6", "checkMotionNice":"5", "writeCamNice":"5", "maxqsize":"6"
}
FrameThreshold: ist die Anzahl der signifikanten Frames, bevor eine Bewegung erkannt wird.
staticThreshold: ist die Anzahl der statischen Frames, bevor wir das Filmen ausschalten.
minArea: ist die minimale Größe der Fläche, um als signifikant gewertet zu werden.
postSeconds: Dies ist die Anzahl der Sekunden ab dem Ende des Filmens, bis die Bewegung die Warteschlange durchläuft. readCamNice: So viel Priorität haben die
readCam-Prozess. Dieser liegt zwischen -20 und +20 (je niedriger der Wert, desto höher die Priorität). Aber übertreiben Sie es nicht, sonst stürzen Sie das Betriebssystem ab.
checkMotionNice: Die Priorität für den Bewegungserkennungsprozess.
writeCamNice: Die Priorität des Kamera-Schreibvorgangs.
maxqsize: Dies ist die Anzahl der Sekunden, die dann mit den Bildern pro Sekunde multipliziert wird.
Ich ändere meistens nur die min_area, um den Windbedingungen Rechnung zu tragen.
Wenn Sie lieber einen einfachen Logger als den Socket-Logger (unten) verwenden möchten, ändern Sie den Import miaLogging auf
Protokollierung importieren
Logging.basicConfig(filename='example.log', level=logging. DEBUG)
und entfernen Sie den Protokollempfänger aus der MotionDetect-Datei und alles andere sollte gut funktionieren.
Wenn Sie die Bewegungserkennung beim Start automatisch ausführen möchten.
Bearbeiten Sie zuerst das Skript und überprüfen Sie, ob das Homedir auf multiMotionDetect.py zeigt, dann kopieren Sie die MotionDetect-Datei nach /etc/init.d dh
cp motionDetect /etc/init.d/motionDetect
Sollte schon lauffähig sein aber
chmod +x /etc/init.d/motionDetect
Schließlich registrieren Sie das Skript mit
sudo update-rc.d motionDetect-Standardeinstellungen
Sie können das System auch mit starten, stoppen und neu starten
sudo /etc/init.d/motionDetect start|stop|restart
Standardmäßig wird gleichzeitig die Protokollierung des miaLogReceiver-Sockets gestartet. Die anderen drei Programme sind unabhängig, verwenden aber den gleichen Socket-Logger (könnten aber leicht konvertiert werden). Ich rufe all dies mit einem Cron-Skript mit unterschiedlichen Intervallen auf. Eine Anleitung finden Sie hier.
CheckRunning.py überprüft, ob multiMotionDetect.py ausgeführt wird und führt andernfalls einen Neustart durch.
fileMaint.py verwaltet die Videoordner und entfernt diese nach der angegebenen Anzahl von Tagen. Es entfernt Unterverzeichnisse des im ersten Absatz festgelegten Ordners für bewegte Videos. Es überprüft, ob sie mit "MV" beginnen. Stellen Sie also sicher, dass Sie kein anderes wichtiges Verzeichnis haben, das mit den gleichen Zeichen in diesem Ordner beginnt.
Schritt 3: Zugreifen auf die Videos und die Konfiguration über Dropbox
Wenn Sie Ihre Videos, Protokolle und Konfigurationsdateien aus der Ferne anzeigen möchten, müssen Sie schließlich Dropbox einrichten.
Holen Sie sich zunächst ein kostenloses Dropbox-Konto. Richten Sie dann die API für Python ein – https://www.dropbox.com/developers/documentation/… Dies beinhaltet das Herunterladen des SDK und die Registrierung der App für den Zugriff auf die API.
Wenn Sie einen Schlüssel haben, geben Sie diesen in die Datei globalConfig.json ein. Weitere Informationen zum System finden Sie auf meinem Blog dani cymru - cyber renegade Wenn Sie etwas Interessantes oder Fragen finden, schreiben Sie bitte einen Kommentar in den Blog.
Empfohlen:
Leap-Motion-Controller. (Progetto Arduino): 4 Schritte
Leap-Motion-Controller. (Arduino Progetto): Progetto-Quest-Progetto und Leap-Motion-Steuerung per Kontrolle der Intensität und Farbe der RGB-LEDs in der Bewegungsumgebung des Mani-nello-Spazio.Referenz:Leap Motion SDK: https:// entwicklerarchiv.leapmotion.com/doc
[Arduino-Roboter] Wie erstelle ich einen Motion-Capture-Roboter - Daumen Roboter - Servomotor - Quellcode: 26 Schritte (mit Bildern)
[Arduino-Roboter] Wie erstelle ich einen Motion-Capture-Roboter | Daumen Roboter | Servomotor | Quellcode: Thumbs Robot. Verwendet ein Potentiometer des Servomotors MG90S. Es macht sehr viel Spaß und ist einfach! Der Code ist sehr einfach. Es sind nur etwa 30 Zeilen. Es sieht aus wie ein Motion-Capture.Bitte hinterlassen Sie Fragen oder Feedback![Anleitung] Quellcode https://github.c