NEWS
Personenerkennung: Aufruf Linux Script mit Parameter
-
@uwe72 kannst du das Ganze etwas mehr erläutern? Momentan nutze ich Zoneminder für die Personenerkennung in einem LXC Container. Die Erkennung Zoneminder -> iobroker ZM Adapter -> Telegram Nachricht ist aber "relativ" langsam. Die Personenerkennung an sich ist recht schnell, nur bis der ZM Adapter es mitbekommen hat und ich eine Nachricht bekomme, dauert recht lange.
Du nutzt also ein Script/Programm für die Erkennung, die auf einem Jetson Nano läuft richtig? Würdest du das Programm bereitstellen? -
@coyote helfe gerne weiter (soweit ich das kann), habe nur gerade wenig Zeit.
Basis für alles ist die reine PErsonenerkennung auf dem Jetson Nano unter Linux. Habe mich da an dem orientiert.
https://pjreddie.com/darknet/install/In Iobroker rufe ich dann per Script "jede Sekunde" die Personenerkennung auf dem jetson auf. Verbinde mich dazu per Script auf den Jetson auf die Konsole und "schreibe da" programmatisch den "Befehl" zur Personenerkennung und übergebe dabei das kurz zuvor neue geladene Bild von der Kamera. Dann lese ich programmatisch die Konsole aus und schaue ob eine Person dabei war. Falls ja, starte ich nachfolgende Aktionen (Ausgabe Alexa, Senden Bild nach Telegram, Ablage Bild Server,...)
Das mal grobe Vorgehensweise.
VT der Lösung: Man bekommt Alarme ohne Bewegungsmelder
NT der Lösung: Bauchschmerzen habe ich, da jede Sekunde was auf die Festplatte (SSD) geschrieben wird, dass diese bald defekt wird?!Kannst Du noch 2-3 Sätze zu Zoneminder schreiben? Vielleicht ist dies ja sogar die bessere Alternative, die ich nicht kannte. Auf welcher Basis erfolgt eine Personenerkennung bzw. Alarmerkennung? Reiner Bildvergleich?
-
@uwe72 ok, schaue ich mir mal an.
Zu Zoneminder und ZMEventnotification schau mal hier: https://zmeventnotification.readthedocs.io/en/latest/guides/hooks.html
Dort ist alles gut erklärt. War meiner Meinung nach ein langer Installationsprozess, aber funktioniert. Hätte es nur gerne etwas schneller, aber ich denke das liegt eher an Zoneminder -> iobroker ZMAdapter.
Erkennung läuft bei Zoneminder auch mit OpenCV, aber wie genau die Erkennung funktioniert bzw ob es reiner Bildvergleich ist, kann ich dir gerade nicht sagen -
@coyote Danke dir. Habe nur mal ganz schnell drüber gescrollt. Vielleicht ist dein Weg sogar der bessere. Ich schaue mir dies definitv mal an! Kannte ich nicht bis jetzt.
-
@uwe72 bei iSpy bzw. Agent DVR kann man glaube ich auch solche Erkennungs-Plugins laufen lassen. Habe ich aber noch nicht getestet bzw. benötige ich nicht.
-
@coyote Wie lange dauert die reine Personenerkennung wenn Du diese auf der Linux Konsole aufrufst? Ist dies ein LXC-Container?
Hat dies Anleitung zu zoneminder bei dir out-of-the-box funktioniert?
-
@uwe72 ja, habe alles in einem lxc Container.
Müsste ich mal genau prüfen, wie lange es dauert. Habe heute morgen nochmal kurz die Uhrzeit verglichen, wann das Bild mit der Person gemacht wurde und wann es bei telegram an kam, Zeitunterschied war ne gute Minute, dass ist einfach viel zu viel.
Ja, funktionierte eigentlich alles recht schnell, dauerte halt ein wenig bis alles installiert war, aber ging dann nachdem die objectconfig.ini eingerichtet war.
Ich schaue mir die Woche noch den iSpy Agent DVR an, dass sieht interessant aus -
@coyote was ist bei dir der "Trigger" wann eine Bilderkennung gestartet wird?
-
@uwe72 bei Bewegung in der definierten Zone
-
@coyote physikalischer BEwegungsmelder oder "bewegungsmelder innerhalb der Kamera"?
-
@uwe72 bei bewegung in der definierten Zone von Zoneminder, also über die Kamera.
Teste gerade noch, ob die Erkennung bzw. die "Nachricht" an iobroker mit mqtt schneller ist, als über den ZM Adapter -
@coyote holt sich zoneminder das bild oder gar stream selber von der kamera oder "fütterst" du zoneminder aktiv mit einem bild.
Bei mir läuft es ja so ab:
Jede Sekunde greife ich von der Kamera ein Bild ab und rufe damit die Bilderkennungssoftware auf. Diese liefert ein Ergebnis zurück. Abhängig des Ergebnisses mache ich weitere Aktionen, z.b. Nachricht an Telegram. Dies alles dauert pro Zyklus ca. 1 Sekunde insgesamt.Bei dir macht das meiste wohl Zoneminder intern (was gut wäre). Die Frage ist nur wo die viele Zeit drauf geht, denn 1 Minute ist natürlich ein NoGo. Dennoch klngt deine Lösung nun erst einmal vernünftiger.
-
@uwe72 genau, in Zoneminder wird die Kamera eingetragen. Zoneminder nimmt dann den Stream für die Erkennung.
Problem bei mir könnte auch noch die fehlende GPU sein, läuft ja im LXC Container, vllt ist es damit schneller, weiß ich aber nicht.
Habe mir jetzt noch die ZMNinja App installiert, die ist vom gleichen Entwickler und empfängt auch Push Nachrichten. Ich versuche noch herauszufinden, was am schnellsten ist. -
@coyote ich kann nur sagen, dass in "meinem Weg" es so ist, wenn ich den PI/NUC nehmen (also ohne GPU) die Bilderkennung von einem Bild zwischen 15 und 20 Sekunden dauert.
Wenn ich das Ganze auf meinem Jetson Nano (GPU) mache die gleiche Bilderkennung 475ms dauert.
-
@uwe72 ohne was ausprobiert zu haben, klingt es so für mich aktuell, dass Zoneminder auf einem GPU (z.B. Jetson Nano) sehr vielversprechend klingt. Bei mir funktioniert es zwar - auch ohne Zoneminder - ist aber halt viel selber gemacht. Insbesondere stört mich, dass jede Sekunde ein Bild auf die Festplatte geschrieben wird. Weiß nicht, ob dies auf Dauer gut ist.
-
@uwe72 ist schon ein kleiner Unterschied mit oder ohne GPU
Ich kannte bis gestern diesen Jetson Nano gar nicht, vllt sollte ich mir sowas zulegen -
@coyote Hi, hast du dir schon eine GPU zugelegt? Bin gerade bei mir auch dabei das in einem Container zu testen.
-
@hansi1234 nein, habe mir eine TPU geholt. Die Google Coral TPU als USB Version und nutze Frigate für die Objekterkennung
-
-
@hansi1234 Nein, nur Frigate. ZM war mir zu langsam, zumindest habe ich es nicht hinbekommen, dass es bei mir schnell genug reagiert