Gesichtserkennung mit ESP32-WLAN-Kameraboards ab 15 Euro

Begonnen von JoWiemann, 09 Januar 2019, 18:54:53

Vorheriges Thema - Nächstes Thema

JoWiemann

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Uwe B.

So richtig spannend wird es bei der Frage, ob/wie eine Kommunikationsschnittstelle (MQTT, REST API, ...?) dabei ist, mit der das Ding dann mit FHEM bzw. anderen Komponenten reden kann?
Grüße - Uwe

Lache nie über die Dummheit der anderen. Sie ist deine Chance.

FHEM 5.9 auf Ubuntu Srv 19.04 u. RasPi Zero W Raspbian Stretch; CUNX mit Modulen HM u. slowRF433; RFXtrx433E; FB 7590; FRITZ!DECT 200; Wetter HM WDS100-C6-O OC3; Xiaomi Flower Sense; Broadlink RM Mini u. Pro; EZcontrol XS1

Nexium

Hat hier mal jemand was gemacht? Gesichtserkennung und dann zb an FHEM melden welches Gesicht erkannt wurde?

Papa Romeo

Hallo Nexium,

Zitat von: Nexium am 31 Juli 2019, 16:04:39
Hat hier mal jemand was gemacht? Gesichtserkennung und dann zb an FHEM melden welches Gesicht erkannt wurde?

... hab mal vor ein paar Wochen angefangen mich damit zu beschäftigen dann aber aus Zeitmangel wieder auf die Seite gelegt.

Hab´s jetzt schnell nochmal aktiviert und Bilder gemacht.

Über einen Jumper kann ausgewählt werden ob die ESP32_CAM im ,,Browser Modus" (Registrierung der Gesichter)
oder im ,,MQTT – Modus" (Überwachung / Gesichtserkennung) und Übermittlung an z.B. FHEM und serieller Ausgabe arbeiten soll.
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Markus M.

Zitat von: Papa Romeo am 20 August 2019, 12:43:24
Hab´s jetzt schnell nochmal aktiviert und Bilder gemacht.
Über einen Jumper kann ausgewählt werden ob die ESP32_CAM im ,,Browser Modus" (Registrierung der Gesichter)
oder im ,,MQTT – Modus" (Überwachung / Gesichtserkennung) und Übermittlung an z.B. FHEM und serieller Ausgabe arbeiten soll.

Sieht sehr interessant aus!
Aber sehe ich das richtig, die Kamera führt die Erkennung anhand nur eines einzelnen Referenzbildes pro Person durch?
Was passiert, wenn du dich rasierst?  ;D
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Uwe B.

#5
a) wieviele Referenzbilder können denn hinterlegt werden? Ich glaube gelesen zu haben, dass es pro "Person" drei sein müssen?
b) Wie groß ist denn die Erkennungsrate (so ungefähr)?
c) @Jumper: so ein richtiger Hardware-Jumper auf dem Board oder eine Variable in der Software?
d) Ist das bei Dir wirklich der Lilygo TTGO T-Camera ?! https://de.aliexpress.com/item/32968683765.html
Grüße - Uwe

Lache nie über die Dummheit der anderen. Sie ist deine Chance.

FHEM 5.9 auf Ubuntu Srv 19.04 u. RasPi Zero W Raspbian Stretch; CUNX mit Modulen HM u. slowRF433; RFXtrx433E; FB 7590; FRITZ!DECT 200; Wetter HM WDS100-C6-O OC3; Xiaomi Flower Sense; Broadlink RM Mini u. Pro; EZcontrol XS1

Nexium

Zitat von: Papa Romeo am 20 August 2019, 12:43:24
Hallo Nexium,

... hab mal vor ein paar Wochen angefangen mich damit zu beschäftigen dann aber aus Zeitmangel wieder auf die Seite gelegt.

Hab´s jetzt schnell nochmal aktiviert und Bilder gemacht.

Über einen Jumper kann ausgewählt werden ob die ESP32_CAM im ,,Browser Modus" (Registrierung der Gesichter)
oder im ,,MQTT – Modus" (Überwachung / Gesichtserkennung) und Übermittlung an z.B. FHEM und serieller Ausgabe arbeiten soll.

Kannst du das etwas genauer beschreiben wie man das umsetzen kann?

Papa Romeo

Hallo Markus, hallo Uwe,

Zitat
a) wieviele Referenzbilder können denn hinterlegt werden? Ich glaube gelesen zu haben, dass es pro "Person" drei sein müssen?

Kann über die Software eingestellt werden:

#define ENROLL_CONFIRM_TIMES 5   <--   Anzahl der Referenz-Bilder pro Person
#define FACE_ID_SAVE_NUMBER 7     <--  Anzahl der hinterlegten Personen   

Zitat
b) Wie groß ist denn die Erkennungsrate (so ungefähr)?

Wenn ich die vor Kamera gehe, wird so in etwa alle 1 bis 2 Sekunden ausgegeben , dass ich erkannt wurde.

Zitat
c) @Jumper: so ein richtiger Hardware-Jumper auf dem Board oder eine Variable in der Software?

Ja, ein Hardware-Jumper. Ich nutze hier GPIO12, da er einer der wenigen GPIO´s ist, der noch frei war und direkt neben einem GND-Pin liegt.
(kann also direkt auf dem Board gesetzt werden)

Jumper gesetzt  --> BROWSER-Modus
               offen  --> ERKENNUNGS-Modus

Zitat
d) Ist das bei Dir wirklich der Lilygo TTGO T-Camera ?! https://de.aliexpress.com/item/32968683765.html

Nein, ist dieses Modul:  https://www.ebay.de/itm/401752810016
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

gloob

Ist das die Firmware die im ersten Beitrag verlinkt ist?
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Papa Romeo

Wollt ich eigentlich gerade bezüglich Nexium´s Anfrage fortführen.

Nein, ist nicht die "WHO" Software. Das Ganze basiert auf diesem Beitrag: https://robotzero.one/esp-who-recognition-with-names/

Ich hab noch die serielle Ausgabe und den MQTT-Server implementiert und die Software, dann soweit modifiziert, dass über den Jumper
dann die entsprechende "Ausgabeform" gewählt werden kann und der Name, der dem erkannten Gesicht zugeordnet wurde, sowie die Anzahl
der "Erkennungen", dann an Fhem übertragen werden.

Beides parallel laufen zu lassen schien mir nicht so ideal, da die Videoausgabe trotz der relativ geringen Auflösung von, ich glaube 320 x 240,
bei "DETECT" und "RECOGNISE" doch sehr träge ist (bei mir jedenfalls, mag bei einem schneller PC vielleicht besser sein).

STREAMING ist ok.

...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Nexium

Kannst du die Software bereitstellen? Hört sich sehr interessant an.

Papa Romeo

#11
Hallo Nexium,

im Anhang der Sketch.


EDIT: Wer die Serielle Ausgabe benötigt, muss in der Zeile 188 vor "serial.begin()" die Auskommentierung entfernen
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

Hallo Nexium,

noch einige Info´s zur Vorbereitung und zum Sketch:

... unbedingt danach --> https://robotzero.one/esp32-face-door-entry/

             und danach --> https://robotzero.one/esp-who-recognition-with-names/

vorgehen und die SSID und das Passwort nicht hier (das so stehen lassen)

#include "soc/rtc_cntl_reg.h"

const char* ssid = "";
const char* password = "";

#define FLASH_Pin              0


sondern hier eingeben

// Beginn connect_loop
bool connect_loop() {
  const char* ssid = "Meine_SSID_1"; const char* password = "mein_SSID_1_passwort";
  if (connect_wifi(ssid, password, 30) ) {
    return true;
  }
  else {
    ssid = "Meine_SSID_2"; password = "mein SSID_2_passwort";
    if (connect_wifi(ssid, password, 30) ) {
      return true;
    }
    else {
      Serial.println("kann nicht verbinden ");
      return false;
    }
  }
}
// End connect_loop


Über die Variable WIP (entspricht der letzten Stelle der IP-Adresse) kannst Du dem Modul eine feste IP zuweisen.

(z.B.:  WIP = 123  --> IP: 192.178.1.123)

Setzt du für WIP den Wert 0 , ist DHCP aktiv.

LG

Papa Romeo

...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Nexium

Vielen dank, kanns schon kaum erwarten das gane am WE zu testen :)

Papa Romeo

Hallo Nexium,

bezüglich deiner PM-Anfrage und dem IDE-Fehler.

Ich habe eben mal meine Zugangsdaten in den Sketch den ich gepostet habe (meiner ist noch etwas umfangreicher, da ich da mal einiges testen wollte)
eingetragen und ihn kompiliert.

Läuft bei mir sauber durch.

Hab den Sketch hochgeladen und bin ein bisschen vor der Kamera "rumgetanzt"....
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary