Gesichtserkennung mit ESP32-WLAN-Kameraboards ab 15 Euro

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

Vorheriges Thema - Nächstes Thema

waage


hops

Hallo und frohe Weihnachten Papa Romeo,
Ich würde ganz gern mein Nuki um die Gesichtserkennung erweitern.
Schickst du mir bitte das Passwort zur ESPcam?

Danke und Gruss
Hops
.... ohne Lachen geht's nicht!

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

hops

.... ohne Lachen geht's nicht!

hops

Sodele,

ich hab ein wenig gebastelt und bin auf die Herausforderung mit den wiederkehrenden Abstürzen des Modules gestoßen.
Das war so schlimm, dass ich kaum eine zuverlässige Erkennung hatte. Aufgefallen ist mir, dass das Modul keine Probleme beim Streamen, Capture oder Detecting hatte.
Es ist stets bei der Erkennung abgestürzt und da immer mit dem gleichen Backtrace.

Nach Installation des ESP Exception Decoders war das dann relativ schnell heraus gefunden.
Es müssen 2 Änderungen in der ESP32_CAM.ino vorgenommen werden.

1. die 4 Zeilen nach Zeile 375 "face_id_node *f = recognize_face_with_name(&st_face_list, out_res.face_id);"
          Serial.print(f->id_name); Serial.print(" erkannt !"); match = match + 1; Serial.print(" Treffer: "); Serial.println(match);
          String idname = String(f->id_name) + " erkannt !";
          const char* Idname = idname.c_str();
          client.publish(FACE, Idname); dtostrf(match , 3, 0, msg); client.publish(BEATS, msg);

    müssen in ein if statement gepackt werden, denn es ist offenbar nicht immer sicher, dass das Objekt f existiert.
          if (f)
          { Serial.print(f->id_name); Serial.print(" erkannt !"); match = match + 1; Serial.print(" Treffer: "); Serial.println(match);
            String idname = String(f->id_name) + " erkannt !";
            const char* Idname = idname.c_str();
            client.publish(FACE, Idname); dtostrf(match , 3, 0, msg); client.publish(BEATS, msg);
          }

2. Das Statement in Zeile 434 "Serial.println(f->id_name);" muss in das darauf folgende if Statement verschoben werden.
              if (f)
              {
                char recognised_message[64];
                sprintf(recognised_message, "RECOGNISED %s", f->id_name);
                client.send(recognised_message);
                Serial.println(f->id_name);
              }

Seither läuft das Modul ohne Abstürze!  ;D

@papa_romeo: Wenn du Lust und Zeit hast, kannst du das bitte in das zip File einarbeiten?

LG Hops
.... ohne Lachen geht's nicht!

Papa Romeo

Hallo Hops,

suuper ... klar kann ich machen und danke für die Zuarbeit.
Ich schreib dir nochmal ne PN.

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

hops

Hallo Papa Romeo,

hab ich gern gemacht. Die neue Datei ist unterwegs.

Hast du ggfs. ein paar Tipps bzw. Links, wo man mehr zum Thema Sicherheit bei Gesichtserkennung heraus finden kann?
Es funktioniert aber wenn man das System ganz schnell mit einem Foto austricksen kann, dann ist das nicht zuträglich für den WAF und die Sicherheit unseres Hauses. ;)

Danke und Gruß und 'n Guten Rutsch
.... ohne Lachen geht's nicht!

Papa Romeo

Hallo hops,

ich hab dir da leider keine weiteren Info´s, da ich mich schon länger mit der CAM nicht mehr beschäftigt habe
und daher auch keine Updates oder weiteres Infomaterial gesucht habe.

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

dirk.k

Bei Windows funktioniert die Gesichtserkennung nur mit ausgewählten Kameras:
ZitatGesichtserkennung: Dieser Typ verwendet spezielle Kameras, die ein Bild im Infrarotlicht (IR) erkennen, wodurch sie zuverlässig den Unterschied zwischen einem Foto oder Scan und einer lebenden Person erkennen können.
Quelle: https://learn.microsoft.com/de-de/troubleshoot/windows-client/user-profiles-and-logon/facial-recognition-logon-not-work-group-policy-setting

Hier wird eine IR-Kamera verwendet, welche angeblich Wärmebereiche prüft. Das wird also zuverlässig mit Billigkamera kaum machbar sein.

Lucky2k12

Man könnte auch zusätzlich die Gegenwart von BLE Beacons/ GTags, Smartphones o.ä. prüfen.
Der ESP32 kann ja auch Bluetooth, fragt sich nur, ob der Speicher dafür auch noch reicht.
HP T610, HM, Jeelink, LGW, mapleCUL868+434

Papa Romeo

... dann muss ich aber wieder immer eine Art "Schlüssel" dabei haben, wenn ich Zugang haben will...

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

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

TomLee

Hab mich mit dem Thema bisher nicht beschäftigt und les nur mit, vlt. ist so ein HLK-TX510 3D Face Recognition Module interessant ?