Videoüberwachungssystem mit Frigate und Home Assistant
Wenn Sie Home Assistant haben und ein verdammtes Videoüberwachungssystem einrichten möchten (für Zuhause oder Geschäft), Nun, es gibt keine andere Möglichkeit, als Fregatte zu reiten, was ist opensource. Wir können in Telegram-Nachrichten empfangen (mit Fotos und Videos), wenn die Kameras Personen erkennen, Hunde, Gatos, Vögel, Pferde…
gut, Die Idee ist einfach, Wir haben oder wollen Überwachungskameras haben, Videoüberwachung, IP-Kameras von guter Qualität, aber billig und verwalten das System selbst. Woher Fregatte Es wird uns helfen, jede Kamera zu zentralisieren und zu konfigurieren, was wir brauchen. Fregatte kümmert sich um die Erkennung der Objekte was haben wir gesagt, wie ist die erkennung von personen, jede Art von Tier, Autos, Einschreibung… wird die Clips und Videos so lange speichern, wie wir es angeben. Und dann können wir die generierten Ereignisse an Home Assistant senden, abhängig von einer Reihe von Faktoren (wir sind weg von zu hause, wir schlafen…) um uns per Telegramm oder was auch immer wir wollen zu benachrichtigen.
Frigate wird in einem Docker-Container ausgeführt, und es hängt von der Anzahl der Kameras ab, die wir haben, es wird viel CPU verbrauchen und es ist sogar ratsam, eine Beschleunigerhardware zu verwenden, die die Erkennungsleistung verbessert. Es hängt alles von vielen Faktoren ab., Wenn sich viele Pixel in den Kameras ändern, können wir immer Zonen erstellen, um eine Analyse zu vermeiden; die Anzahl der Kameras oder die Berechnung, die wir geben, da es auf einem Raspberry Pi laufen kann. zu 4-5 Kameras mit Google Coral USB-Beschleuniger wir machen Fortschritte, ist ein Coprozessor, eine externe TPU, die uns hilft, die Last zu bewegen.
Coral USB-Beschleuniger,
gut, naja damit ist der fisch mehr oder weniger verkauft, vamos empezando si os parece 🙂 Lo primero será tener una máquina con Docker, este post está basado en una Raspberry Pi 4, y lo segundo instalar los drivers del Google Coral USB Accelerator (o el que usemos). dies zu tun, descargamos el repositorio de Google:
Echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key hinzufügen - sudo apt-get update
Instalamos el runtime y la librería de PyCoral:
sudo apt-get install libedgetpu1-std #Para máximo rendimiento --> sudo apt-get install libedgetpu1-max sudo apt-get install python3-pycoral -y
Ya estamos listos para probar si la Raspberry Pi ya reconoce al dispositivo, podremos bajarnos un modelo de ejemplo y validarlo:
mkdir coral && cd coral git clone https://github.com/google-coral/pycoral.git CD Pycoral Bash-Beispiele/install_requirements.sh classify_image.py python3-Beispiele/classify_image.py \ --Modell test_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \ --Etiketten test_data/inat_bird_labels.txt \ --Geben Sie test_data/parrot.jpg ein
Und wenn alles gut geht, erhalten wir so etwas:
----SCHLUSSZEIT ---- Hinweis: Die erste Inferenz auf Edge TPU ist langsam, da sie das Laden des Modells in den Edge TPU-Speicher umfasst. 11.8Frau 3,0 ms 2,8 ms 2,9 ms 2,9 ms -------ERGEBNISSE-------- suche macau (Scharlachroter Ara): 0.75781
Fregatte entfalten,
Wie wir bereits angemerkt haben, lässt sich Frigate nicht installieren, Wir werden es in einem Container bereitstellen, Denken Sie also daran, dass Docker zuvor installiert sein muss. Und bevor wir beginnen, müssen wir die Frigate-Konfigurationsdatei erstellen. En mi caso lo dejaré en ‚/mnt/config.yml‘ und das ist ein Minimalbeispiel, wo ich angebe, wer der MQTT-Server ist, der die Ereignisse sendet, der Pfad der DB, LOGs, (optional) Wir geben an, ob wir einen Coral-Beschleuniger haben, und fügen dann die Kameras hinzu, Ich bestehe auf einem Mindestbeispiel:
getötet: Gastgeber: DIRECCIÓN_IP_MQTT Hafen: 1883 Benutzer: USER_MQTT Passwort: VEREINBARUNG_MQTT Datenbank: Pfad: /media/fregatte/fregatte.db Logger: Standard: die Info Protokolle: Fregatte.event: debuggen
Detektoren:
Koralle:
Art: edgetpu
Gerät: USB
Kameras: KAMERA_NAME: ffmpeg: Eingänge: - Pfad: rtsp://USER_RTS:PASSWORT@IP_ADRESSE_KAMERA:554/av_stream / ch0 erkennen: Breite: 1280 Höhe: 720
Fregatte ist derzeit in Version 0.10.1, und das sind die unterschiedlichen Bilder, die sie uns je nach Maschine geben, die wir haben:
- x86: blakeblackshear/Fregatte:0.10.1-amd64
- x86 mit nvidia (nur für ffmpeg): blakeblackshear/Fregatte:0.10.1-amd64nvidia
- Raspberry Pi 3/4 (32Bit): blakeblackshear/Fregatte:0.10.1-armv7
- Raspberry Pi 4 (64Bit): blakeblackshear/Fregatte:0.10.1-aarch64
Wir müssen den Container erstellen und starten, Wir werden Ihnen das USB-Gerät übergeben, Wir vergrößern die memoria compartida, le pasamos el directorio donde nos guardará todos los datos que Frigate necesite (clips, Aufnahmen…), le pasamos el fichero de configuración, Zeit, contraseña de RTSP y el puerto que usaremos para su gestión (5000tcp), seguido de eso, la imagen que queremos; desde una Raspberry Pi 4 ausführen:
sudo docker run -d --name frigate --restart=unless-stopped --mount type=tmpfs,target=/tmp/cache,tmpfs-size=1000000000 --device /dev/bus/usb:/dev/bus/usb --shm-size=128m -v /media/frigate:/media/frigate -v /mnt/config.yml:/config/config.yml:ro -v /etc/localtime:/etc/localtime:ro -e FRIGATE_RTSP_PASSWORD='CONTRASEÑA' -p 5000:5000 -p 1935:1935 blakeblackshear/Fregatte:0.10.1-aarch64
Y tras unos minutos que se descargue todo y arranque el contenedor ya podremos conectar a Frigate, mediante un navegador accedemos a http://DOCKER_IP_ADDRESS:5000 und wir werden so etwas wie dieses Bild oben haben.
Gestatten Sie mir, Ihnen einige Docker-Befehle zu hinterlassen, die Sie möglicherweise für Forschung und Entwicklung benötigen:
sudo docker ps -a # Liste der Container sudo docker stop ID_CONT # Behälter ausschalten sudo docker start ID_CONT # Boot-Container sudo Docker-Neustart ID_CONT # Behälter neu starten sudo docker rm ID_CONT # Behälter löschen sudo docker system prune -a # Beseitigen Sie Caches und anderen Müll, Vorsicht!! sudo-Docker-Protokolle ID_CONT -f # Zeigen Sie vom Container generierte Protokolle an
Und dann muss jeder seine Fregatte nach seinem Geschmack weiterentwickeln, Ich lasse dir die Verknüpfung mit der Konfigurationsdatei und all ihren Möglichkeiten. Wir können alle Kameras von Frigate sehen, oder verwenden Sie das Birdeye, Dies ist ein Bildschirm, der ausgeschaltet ist und sich einschaltet, wenn sich eine Kamera bewegt, oder sehen Sie sich die von Ihnen gesammelten Ereignisse an…
Wir haben viele Möglichkeiten, In jeder Kamera können wir Masken erstellen, um das Scannen von Bereichen zu vermeiden, die nicht interessant sind und sich möglicherweise bewegen, um Fehlalarme zu minimieren, weil es sinnlos ist, eine Person außerhalb zu entdecken, auf der Strasse, oder ein Topf, der sich bewegt und unnötige Berechnungen erzeugt… Zonen erstellen, um verschiedene Kameras zu vereinheitlichen… hat viele Chancen. Ich überlasse es Ihnen, falls die Konfiguration, die ich mit meinen Kameras verwende, als Orientierung dient, und Sie können die Rollen jeder Kamera sehen, welche Art von Objekten verfolgt werden sollen, die Auflösung, FPS, Speicherzeit für Bilder, Die Videos… :
KAMERA03:
ffmpeg:
Ausgabe_Argumente:
Aufzeichnung: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v kopieren -c:ein ac
Eingänge:
- Pfad: rtsp://USER_RTSP:PASSWORT@IP_ADRESSE_KAMERA:554//h264Preview_01_main
Rollen:
- erkennen
- clips
- rtmp
- Aufzeichnung
- Schnappschüsse
Bewegung:
Maske:
- 1136,79,1045,62,683,33,576,55,484,69,213,114,30,161,129,278,221,370,238,673,145,709,187,834,253,960,0,960,0,0,954,0,1040,0,1280,0,1280,122
- 1280,402,901,274,708,224,491,191,473,50,503,53,511,159,690,186,692,149,777,156,789,87,893,120,1083,156,1280,224
erkennen:
Breite: 1280
Höhe: 960
fps: 5
Objekte:
Spur:
- Person
- Katze
- Hund
#- Vogel
Aufzeichnung:
aktiviert: Wahr
behalten_tage: 0
Veranstaltungen:
zuückbehalten:
Standard: 10
Schnappschüsse:
Begrenzungsrahmen: wahr
aktiviert: wahr
Zeitstempel: wahr
zuückbehalten:
Standard: 10
Fregattenintegration mit Home Assistant
wie konntest du sehen, Ich habe Frigate nicht direkt in Home Assistant installiert, was man machen könnte, aber ich denke, es hängt von der Umgebung ab und für Leistungsprobleme ist es besser, die Komponenten zu trennen. Also Fregatte auf Ihrer Seite und Home Assistant auf Ihrer Seite, zumal Fregatte viel Berechnung erfordert.
Um die Frigate-Integration mit Home Assistant zu installieren, ist es am bequemsten, HACKS zu verwenden. „HACKS“ > „Integrationen“ > „Fregatte“ >Laden Sie es herunter, installieren Sie es und starten Sie den Home Assistant anschließend neu. Wenn es nicht auf der Liste steht, Wir werden dieses Repo hinzufügen ‚https://github.com/blakeblackshear/frigate-hass-integration‘.
Sobald die Integration installiert ist, konfigurieren wir sie, Kommen wir zu den Integrationen, und klicken Sie auf Neue Integration hinzufügen, schreiben ‚Fregatte'…
und nichts, wir müssen nur die URL von Frigate angeben, klicken Sie auf „senden“. Dadurch werden alle Entitäten mit den Kameras erstellt, die wir in Frigate definiert haben, und es bleibt uns nichts anderes übrig, als uns zu unserem Steuerpult zu machen!
Ich bin sicher, dass Sie in Kürze etwas Besseres tun werden als ich, dies ist ein Beispiel für 4 Kameras, wo wir in Echtzeit sehen können, was passiert, Wenn wir auf die Kamera klicken und sie ein Mikrofon hat, können wir sie auch problemlos anhören. Wir können einige Clips mit den neuesten Erkennungen der einzelnen Kameras hinzufügen, dass, wenn Sie einen von ihnen drücken, wir das Video setzen…
Und hier hinterlasse ich Ihnen ein Beispiel für eine Home Assistant-Automatisierung, das, wenn es nachts eine Katze entdeckt, mach ein foto von ihm, Er hat es uns per Telegram geschickt und einen Link mit dem Video, falls wir es sehen wollen. Die Automatisierung hört auf ein MQTT-Ereignis und mit einer Vorlage definieren wir das Objekt, das wir erwarten, in diesem Fall eine Katze. Und dann die Aktion, die wir wollen, Ich hinterlasse Ihnen ein Beispiel in YAML, das Sie verwenden können, um ein Foto und einen Link zum Video zu erhalten:
Bedienung: Telegram_bot.send_photo Daten: url: >- http://FRIGATE_IP_ADDRESS:5000/API/Ereignisse/{{trigger.payload_json["gemäß"]["w -a -v bionic-23 -s miclase.midominio.eso -e per"]}}/Schnappschuss.jpg?bbox=0&Ernte = 1 Untertitel: >- {{trigger.payload_json["gemäß"]["Kamera"]|ersetzen("Fregatte_","") | Oberer, höher }} {{trigger.payload_json["gemäß"]["Etikette"] | Oberer, höher }} [VIDEO ANSEHEN](https://DIRECCION_IP_FRIGATE/api/events/{{trigger.payload_json["gemäß"]["w -a -v bionic-23 -s miclase.midominio.eso -e per"]}}/clip.mp4) Auszeit: 1000
Wenn alles gut gegangen ist, das Ergebnis wäre in etwa so, weil wir zu einer bestimmten Zeit die Besuche kennen, die wir erhalten, offensichtlich kann dies auf Personen oder andere Arten von Objekten angewendet werden, Tiere…
Wie Sie sehen können, ist alles, was wir tun können, ziemlich formbar., Jeder hängt von seinen Besonderheiten ab oder davon, was Sie komplizieren möchten… Ich hoffe, Sie haben interessante, Es ist wirklich nicht sehr teuer, ein eigenes System einzurichten, ohne dass private Bilder ins Ausland gebracht oder von Dritten manipuliert werden können. Ich bin mir auch sicher, dass wir einen besseren Nutzen erzielen als mit jeder kommerziellen Lösung.
Frigate ist die Birne und Home Assistant, ein allmächtiger Gott, nichts, Ich hoffe, dass, das dir gefallen hat, Versuch es, Sei glücklich und danke wie immer denen, die diese Art von Inhalten durch soziale Netzwerke bewegen. Eine Umarmung an alle!
empfohlene Beiträge:
- Kalenderverwaltung mit Radicale - 23 von Mai von 2024
- Überwachung der Web-UTM-Regeln unserer Firewall dank Centreon - 21 von Mai von 2024
- Automatisierte Fortigate-Konfigurationssicherung - 16 von Mai von 2024