Türöffnung mit Gesichtserkennung

  • So noch eins meiner Projekte zur Inspiration :-)

    Ich wollte schon immer einmal meine Wohnungstür nur mit meinem Gesicht öffnen können und hab mich die letzten Tage mal rangesetzt und überlegt, wie man das wohl am besten umsetzen könnte.


    Hängen geblieben bin ich bei einem Rasberry Pi Zero W, der mit einer Pi Cam ausgestattet ist.

    Rasbian Sketch ist installiert und darauf läuft OpenCV. Das ist eine der Größen Open Source Projekte zur Bildverarbeitung.


    Das coole is, dass es im Internet schon viele gute Beispiele gibt, anhand man sich schnell mit der Materie vertraut machen kann :-)


    Ich hab jetzt einen Workflow der aus drei Dateien besteht:


    1. Daten Sammeln:

    Hier kann man ein neues Gesicht einlernen. Der Pi schießt 30 Fotos und speichert sie in einem bestimmten Ordner ab


    2. Gesichtserkennung trainieren

    Hier werden alle Bilder in eine Trainer Datei umgewandelt mithilfe eines schon bestehenden Algorithmus


    3. aktive Gesichtserkennung

    Das ist der Hauptpart des Projektes.

    Der Pi sucht mit Hilfe des Videostreams der Camera nach Gesichtern und vergleicht diese mit der Datenbank. Wird ein bekanntes Gesicht erkannt, wird automatisch eine MQTT Nachricht an den Broker weitergeleitet.

    Diese greife ich dann mit dem Homebridge Plug in MQTTthing ab und hab mir einen Bewegungsmelder angelegt, der dann auslöst, wenn mein Gesicht erkannt wird.


    Ab hier kann man alle Spielereien dann in HomeKit machen. z.B Danalock öffnen unter der Bedingung, dass mein Handy im Geofence ist.

    Aber das ist natürlich nur ein Anwendungsbereich, wenn ihr noch kreative Ideen habt lasst es mich wissen 😬

  • Ich seh schon wir sind hier unter gleichgesinnten... :/:D


    Wo steht das Projekt aktuell? Bei welchem Punkt?


    Und noch ne Ideen die mir spontan durch den Kopf geht.


    Wenn du Zuhause bist und den Raum betreten hast. Wäre es sinnvoll, deine Erkennung abzuschalten. Während die abwesenden Personen aktiv bleiben.


    Aus Sicherheitsgründen...? Sonst könnte ja jeder mit nem Foto von dir Zuhause rein. Du bist zwar anwesend, dank Geofence, ist aber glaub trotzdem nicht so nice wenn da jemand reinspaziert. :D

  • Hardware und Software technisch ist es eigentlich fertig, jetzt werde ich es mal installieren an der Tür.

    Das klingt gut!


    Die Sicherheit werde ich vermutlich aber in Node Red oder über Homebridge realisieren müssen, weil die Gesichterkennung so gesehen keine rückwirkende Verbindung zu HomeKit hat.

    Sie weiß also nicht ob die Tür geöffnet wurde oder nicht...


    aber das werde ich auf jeden Fall versuchen zu implementieren!

    Wenn du evtl. schon eine Vorgehensweise im Kopf hast lass es mich wissen 😬

  • Rasberry Pi Zero W mit einer Pi Cam und OpenCV?
    Benutzt zu hier auch ein Neuronales Netzwerk? Trainierst du das Modell auf dem PI oder auf einer externen GPU? Hast du eventuell auch hier einen Blogeintrag? (Ich steh auf Anleitungen und Beispiele)

    Ich mag deine Projekte... Die kommen so nah an meine Vorstellungen ran.
    Ich wollte eine Handgestensteuerung realisieren um meinen TV vom Sofa aus mit den Händen steuern zu können. Allerdings hatte ich das Gefühl, dass alle Projekte, die irgendwas mit Bildverarbeitung zu tun hat unglaubliche Leistungsanforderungen haben... und Leistung hab ich nicht... also nicht in Hardwareform :D

    Gruß

  • Genau! Wobei ich die ersten Tests noch auf einem Pi4 gemacht und jetzt gerade das Image für den Zero bespiele und dann das gleiche da versuche :-)


    Es gibt von OpenCV schon vorgefertigte Trainer, die dein Bildmaterial nehmen und dann verarbeiten anhand ihrer Kriterien :-)


    aber mit einem neuronalen Netzwerk wäre es sicher akkurater ;-)


    gerne hier ist ein guter Beitrag!


    https://www.hackster.io/mjrobo…end-to-end-project-a10826


    Das ist auch sehr geil! Mit Gesten setze ich mich mit Sicherheit auch noch auseinander!

  • Die Sicherheit werde ich vermutlich aber in Node Red (...).


    Sie weiß also nicht ob die Tür geöffnet wurde oder nicht...


    aber das werde ich auf jeden Fall versuchen zu implementieren!

    Wenn du evtl. schon eine Vorgehensweise im Kopf hast lass es mich wissen 😬

    Ich hab keine Ahnung was Node Red ist ehrlich gesagt. Will auch nicht googlen. Aber wenn du den Status hinterlegt für:

    person_1 = 0;

    person_2 = 1;


    ala deine PIR Sensoren. Sollte das doch 1:1 übertragbar sein oder nicht.

    Notfalls mit ner lokalen Datenbank arbeiten.


    Aber bevor ich mein fundiertes halb wissen hier kundgebe muss ich mich mal Informieren was Node Red ist... :D:D:D

  • Node Red ist ein grafisches Werkzeug um Programmabläufe zu gestallten. Diese Art von "Wir lernen programmieren, indem wir Bauklötze zusammen setzen". Also wie Blockly bei IoBroker oder Scratch.

    Das ganze ist aber ein ganz kleines bisschen anders gestaltet und sehr mächtig. Basiert auf JavaScript / Nodejs.
    Und dafür gibt es uuuuuunmengen zusätzlicher Module. Zum Beispiel eins für MQTT :)


    Gruß


  • Danke!


    Ja muss ich mich unbedingt mal mit beschäftigen. Hab vorhin schon mal geschaut nach Node RED - übergreifend dann auch gleich mal was über mqtt gelesen. Ist komplett an mit vorbeigegangen. ^^

  • PhilippCF Coole Idee! Hört sich super an. Habe nach der Einbindung meiner Garagentore in die Home App (via Homebridge auf nem Raspberry Pi Zero) auch das Projekt "Automatische Kennzeichenerkennung" in der Pipeline, da gibt es nämlich gute Tools und Tutorials zu (z.B. hier). Da wird auch primär mit Node RED gearbeitet - vielleicht interessiert es dich ja.

    Grüße gehen raus ;)

  • Scheitert es schon an den Fotos, oder ist es der Algorithmus?


    Alternativ was mir in den Sinn kam: für das Foto den ESP/PI Zero - für den Algorithmus nen Pi. Aber so wie ich das verstanden habe ist OpenCV ein komplett eigenes image oder?

    Sonst könntest du das parallel auf deiner Homebridge laufen lassen und nur auswerten, sobald der ESP ein Bild an den RPi sendet...

  • Ne es scheitert am Algorithmus... der Pi Zero ist schlichtweg nicht schnell genug um eine höhere FPS Zahl zu verarbeiten, dadurch hat sie Gewichtserkennung einen ziemlichen Versatz..

    Ich hab mir jetzt ein längeres Kameralabel bestellt, das anstatt eines Flachbandkabels, rund ist und damit werde ich dann die Kamera nach außen bringen und den pi4 in der Wohnung betreiben :-)

  • PhilippCF

    Hat das Label Beta hinzugefügt
  • Pascal

    Hat das Label SmartHome hinzugefügt
  • Pascal

    Hat das Label Homebridge hinzugefügt