NEWS
Linux Tool zur Gesichtserkennung
-
Hallo,
ich wollte mal fragen, ob jemand eine (die) Gesichterkennung in einem Script in ioBroker am Laufen hat?Ich habe eine Personenerkennung am laufen, möchte diese aber nun noch auf Gesichter erweitern.
Als Basis habe ich mir dieses angeschaut:
https://github.com/justadudewhohacks/face-api.jsMir ist aber noch nicht ganz klar was ich exakt tun muss, d.h. welche NPM Module muss ich installieren. Wie ist der JavaScript Code im ioBroker.
Kann mir hier jemand weiterhelfen?
-
@uwe72 ich nutze keine Gesichtserkennung. Habe momentan "Frigate" am Laufen, das hat keine Gesichtserkennung.
-
@coyote Kannst du mir bitte auf die Sprünge bei Frigate helfen:
Mein Ziel ist es, dass ich per Telegram (im eigenen Bot) immer einer Nachricht bekomme, wenn eine Person oder ein Auto erkannt wird.Hab Frigate am laufen und als MQTT Broker den Iobroker integriert. Hier wird dann ja auch gemeldet, dass ein Objekt erkannt wurde. Um mir unnötig arbeit zu ersparen habe ich mir HASS im Docker installiert und dort die Frigate Integration installiert. Zudem lasse ich den HASS MQTT-Broker auf den Iobroker lauschen. Leider komme ich mit HASS hier nicht so recht klar, aber vielleicht hast du einen Tipp wie ich weiter machen sollte um mein Ergebnis zu bekommen.
So wie ich es vermute hast du auch HASS und Iobroker am laufen. Könntest du mal dein Setup vorstellen und sagen wie du benachrichtigt wirst bzw. wie du dir im Zweifel die Clips anschaust?
Danke dir!
-
@iobroker_alex
nein habe kein HASS laufen. Wie du schon sagst, habe ich es auch einfach in MQTT eingebunden in iobroker. Habe mir einfach ein Script gebaut, dass wenn in MQTT ein Objekt erkannt wird, bekomme ich über Telegram eine Nachricht geschickt mit einem Snapshot des aktuellen Kamera Bildes.
Leider funktioniert es nicht, den Snapshot des über MQTT übertragenen Bildes direkt über iobroker zu Telegram zu schicken. Heißt, wenn ein Objekt erkannt wird löst bei mir über das Script direkt einen Snapshot aus und den schicke ich mir per Telegram -
@coyote ja okay, dann ziemlich ähnlich wie ich... Hast du das Skript ggf mal als Beispiel da?
Meine Idee war eigentlich HASS im Hintergrund und genau nur für diese Sache laufen zu lassen, da der Screenshot hier ja anscheinend per MQTT mitübertragen werden kann...
Am besten Wäre natürliche eine Iobroker Integration
-
@iobroker_alex
Mir wäre auch lieber, dass ich direkt den Snap benutzen kann der über MQTT in iobroker kommt, habe ich aber nicht hinbekommen, da stimmt was mit der Codierung nicht. Daher habe ich es so gelöst, dass ein Snapshot der Kamera ausgelöst wird, gespeichert in iobroker und über Telegram verschickt wird.
So://################## Frigate Garage Cam Person ausgelöst #################### var request = require('request'); var fs = require('fs'); var dest_path = '/opt/iobroker/foto/'; on({id: 'mqtt.0.frigate.garage.person', change: "ne"}, function (obj) { if(getState('javascript.0.Sperren.TelegramNotifyAus').val === true){ var time = new Date(); setState('javascript.0.Sperren.time', time); if (obj.state.val === 1){ saveImage(); log('Person erkannt Frigate') } } }); //######### Bild speichern und verschicken für Garagen Cam ########## // Bild speichern function saveImage() { var source_url = 'http://192.168.XX.XX:5000/api/garage/person/best.jpg'; //Frigate IP request.get({url: source_url, encoding: 'binary'}, function (err, response, body) { fs.writeFile(dest_path + 'cambild.jpeg', body, 'binary', function(err) { if (err) { log('Fehler beim Bild speichern: ' + err, 'warn'); } else { log('Webcam Bild gespeichert'); sendImage(dest_path + 'cambild.jpeg'); } }); }); } // Bild an telegram schicken function sendImage (pfad) { var zeit = getState('javascript.0.Sperren.time').val; sendTo('telegram', {text: pfad, caption: 'Person erkannt Garage Frigate ' +zeit}); //Bild mit Text log('Bild gesendet Frigate'); }
Die "Sperren" kannst du natürlich weg lassen, das ist für mich, dass ich die Objekterkennung über Telegram deaktivieren kann.
-
@coyote bist du inzwischen mit Gesichtserkennung schon weiter?
Meine Linux Kenntnisse sind noch eingeschränkt, gibt es irgendwo eine Anleitung zur Installation von Viseron, das ist aus der readme ja irgendwie nicht so erkennbar.kann man Viseron dann via MQTT die Ergebnisse in iobroker abfragen?
Danke!
-
@hohmannc ah ok, die iobrokerfrage hat sich schon geklärt XD
-
@hohmannc nutze viseron schon lange nicht mehr. Gesichtserkennung brauche ich nicht, daher nutze ich "frigate" mit einer Google TPU zur Objekterkennung.
Viseron kannst du in einem Docker Container installieren, so steht es auch unter "Getting started" auf der Viseron Github Seite.
-
@coyote genau sowas hebe ich gesucht, bin von deiner Idee sehr angetan und wollte diese übernehmen. Leider bekomme ich die Sperre nicht raus.
if(getState('javascript.0.Sperren.TelegramNotifyAus').val === true){ var time = new Date(); setState('javascript.0.Sperren.time', time); if (obj.state.val === 1){
diesen Part habe ich entfernt und diesen
zeit = getState('javascript.0.Sperren.time').val;
leider bekomme ich dann folgenden Fehler
javascript.0 (22119) script.js.common.FrigateCAMEingang compile failed: at script.js.common.FrigateCAMEingang
Für einen Tipp wäre ich sehr dankbar,
Gruß anselra -
@anselra probier mal so:
on({id: 'mqtt.0.frigate.garage.person', change: "ne"}, function (obj) { if (obj.state.val === 1){ saveImage(); log('Person erkannt Frigate') } });
-
@coyote vielen dank, jetzt geht es