Objekterkennung im Smart Home nutzen

Veröffentlicht von Lukas am

Person auf Kamera 1 erkannt. Freilaufender Hund auf Kamera 2. So oder so ähnlich könnte das Smart Home mit Hilfe von Objekterkennung identifizieren, was gerade im eigenen Zuhause passiert. Je nach erkanntem Objekt können daraufhin Automationen und Regeln greifen, die für zusätzlichen Schutz der Bewohner oder des Hauses sorgen. Dabei arbeiten Algorithmen im Hintergrund an den einzelnen Bildern und versuchen sie nach bekannten Pixelzusammensetzungen zu untersuchen.

Klingt utopisch? Ist Realität!

In diesem Artikel möchte ich mit dir gemeinsam auf ein Smart Home blicken, das anhand ausgetüftelter Algorithmen Objekte auf Kameras erkennt und Entscheidungen für dich und deine Sicherheit trifft. Dabei geht es nicht um das nächste große Ding in Sachen Überwachung. Es geht viel mehr darum dir zu zeigen, was die Technologie in Bezug auf Objekterkennung heute leisten kann und wie diese Technologien auch sinnvoll genutzt werden können.

Das oberste Ziel bei einem solchen Projekt muss es immer sein, dass es kein Eingriff in die Privatsphäre anderer Menschen ist. Genauso wenig soll es eine Anleitung dazu sein, wie du gezielt Menschen in deinem Haushalt ausspionieren kannst. Beachte das bitte und handle moralisch und ethisch so, wie es sich für anständige Menschen gehört.

Dedicated Open Object Detection Service

Objekterkennung ist ein Thema, das viele fasziniert. Es erfordert jedoch viel Geschick und nicht jeder Informatiker ist dazu in der Lage, ein solches System umzusetzen. Ganz ehrlich, ich könnte es jedenfalls nicht! Denn dahinter stecken wahnsinnig viele Entwicklungsschritte und der viele kluge Köpfe. Nicht, dass ich nicht klug bin, aber es übersteigt meine Fähigkeiten dann doch bei weitem.

Das mag der Grund dafür sein, weshalb auch ich auf ein System zurückgreife, das mir sowohl die Umgebung, als auch die Algorithmen zur Erkennung von Objekten liefert. Dieses System (beziehungsweise eigentlich dieser Service) nennt sich DOODS2. Ich habe ihn schon einmal angesprochen, als es um meine Server ging. DOODS steht dabei für Dedicated Open Object Detection Service und ist im Grunde genommen ein Dienst, der Bilder nach ihm bekannten Objekten untersucht. Der Dienst kann dabei innerhalb von Docker ausgeführt werden und erfordert kein umfassendes Wissen im Bereich der Objekterkennung.

Besonders spannend daran ist, dass der Service Einzelbilder und ganze Bilderreihen (also Videostreams) untersuchen kann. Dazu muss man wissen, dass aus IT-technischer Sicht ein Video nichts anderes ist als die Aneinanderreihung von Bildern. Das passiert sowohl im TV, beim Streaming und beim Nutzen eines Computers. Oder woher kommt sonst der Begriff Frames per Second (FPS)? 😉

Es ist also anhand einer Konfigurationsdatei möglich, DOODS einen Livestream vorzugeben, der anhand der mitgelieferten Algorithmen auf bekannte Objekte untersucht wird. Je mehr Bilder untersucht werden müssen, desto mehr Leistung ist dafür notwendig.

Stell dir dazu vor, dass deine Kamera 20 Frames per Second liefert. DOODS muss nun 20 Bilder pro Sekunde auf bekannte Objekte untersuchen und die Informationen entweder ausgeben oder an ein anderes System weiterreichen. Das erfordert jede Menge Leistung und kann nicht mal eben von einem 0815 Rechner gemacht werden.

Ein praktisches Beispiel

Um DOODS2 ein wenig besser vorführen zu können, habe ich in einer lokalen Umgebung ein paar Tests gemacht. Als Beispiel habe ich mir ein Bild herausgesucht, das ich vor längerer Zeit auf Instagram gepostet habe. Natürlich habe ich dazu auf die Originalversion des Bildes zurückgegriffen. DOODS hat hier ganze Arbeit geleistet!

Doods Objekterkennung Testbild

Wie du sehen kannst, erkennt man auf dem Bild Kekse (ich liebe Kekse!), einen Kaffee und mein Notebook. DOODS hat hierbei eine Tasse (58 Prozent), die Tastatur (57 Prozent) und das Notebook (71 Prozent) erkannt und entsprechend markiert. Da das Bild etwas klein geraten ist, kann man das unter Umständen nicht ganz so gut erkennen. Aber du kannst mir glauben, das System lag richtig!

Der Lila-Bereich gibt übrigens den Erkennungsbereich von Objekten an. Die grünen Kästchen sind klassifizierte Objekte, die ich bereits aufgezählt habe.

Natürlich ist das Bild für eine Demonstration nicht unbedingt ideal. Doch es zeigt sich schon, wie viel Potenzial in der Erkennung steckt. Und nun musst du dir vorstellen, dass wir keine Einzelbilder analysieren wollen, sondern ganze Videostreams. Das ist definitiv eine sehr spannende Angelegenheit!

DOODS im Smart Home

Nun fragst du dich sicherlich zurecht, wie sich das ganze System denn in das Smart Home integrieren lässt. Ich möchte dir das anhand eines praktischen Beispiels erklären, welches ich bei mir im Moment ausprobiere.

Und zwar existiert im Gartenbereich (ein nicht-öffentlicher Bereich) eine Kamera, die für mehr Sicherheit sorgen soll. Diese Kamera sendet ihre Daten an einen zentralen Recorder, welcher mit dem eigenen Netzwerk verbunden ist. Innerhalb einer virtuellen Maschine läuft nun das System Motion, da ich darüber das Bildsignal abgreifen kann. Direkt gibt es leider in meinem konkreten Fall keine Möglichkeit.

Motion schleust also nun das Bild auf Wunsch in das eigene Netzwerk ein und bietet eine Schnittstelle, damit auch andere Systeme diese Informationen nutzen können. In einer weiteren virtuellen Maschine ist DOODS in einem Docker-Container installiert. Von dort aus greift DOODS auf Motion zu und holt sich den Kamerastream, um ihn zu analysieren. Die notwendige Konfiguration erfolgt auf Basis einer YAML-Datei, die ebenfalls in der virtuellen Maschine liegt. YAML kennt man vielleicht schon durch Home Assistant.

Vertiefe dein Wissen:  Meine Smart Home Beleuchtung

DOODS analysiert also nun mehrere Bilder in der Sekunde und verarbeitet die Informationen anhand einer vorgegebenen Routine. So ist zum Beispiel eingestellt, dass ausschließlich Menschen erkannt werden sollen, sofern die Wahrscheinlichkeit über 40 Prozent liegt. Tritt dieser Fall ein, übergibt DOODS diese Information an den eigenen MQTT-Broker. Dort laufen also alle Erkennungen zusammen und können weiterverarbeitet werden.

Ebenfalls an MQTT angeschlossen ist das zentrale Smart Home System auf Basis von ioBroker. ioBroker kann also nun die Erkennungen auslesen und entscheiden, welche Automationen ausgelöst werden, wenn ein Mensch im Garten erkannt wurde. Das Smart Home weiß also nun zu jeder Zeit, wann sich eine Person im Garten befindet.

Einrichtung im Schnelldurchlauf

Wer sich für DOODS2 entscheidet, braucht eine funktionsfähige Docker-Umgebung. Ich selbst habe mir hierzu eine virtuelle Maschine eingerichtet und in dieser auf Basis von Ubuntu Docker installiert. Das hilft mir persönlich dabei, die Ressourcen zu begrenzen und andere Systeme weiterhin am Leben zu erhalten. Denn DOODS braucht bei mir eine große Menge an Ressourcen.

Anhand der offiziellen Anleitung auf GitHub bin ich dann weitergegangen und habe das System erstmalig ans Laufen gebracht. Das hat soweit auch ganz gut funktioniert und ich konnte mit der weiteren Einrichtung fortfahren. Und für die habe ich ganz schön lange gebraucht.

Grundsätzlich gestartet wird die Umgebung mit dem folgenden Befehl:

docker run -it -p 8080:8080 snowzach/doods2:latest

Hierbei wird die Umgebung mit dem Port 8080 gestartet, so dass du direkt im Anschluss sehen kannst, ob alles funktioniert hat. Rufe dazu einfach die IP des Servers auf mit dem Port 8080. Danach solltest du zur entsprechenden Seite gelangen. Hier lassen sich einzelne Bilder überwachen und auch Kamerastreams übergeben.

Für ein automatisches Überwachen ist das so allerdings keine Lösung. Hierfür müssen Modifikationen vorgenommen werden, die in der Konfigurationsdatei erfolgen. Eine exemplarische Konfigurationsdatei habe ich dir am Ende des Artikels beigefügt. Sie wird dann mit dem folgenden Befehl gestartet:

docker run -v /home/doods/home_doods.yaml:/opt/doods/home_doods.yaml -e CONFIG_FILE=home_doods.yaml -p 8080:8080 snowzach/doods2:latest mqtt

Wichtig für die Nutzung von MQTT ist, dass du bei diesem Befehl das mqtt am Ende nicht vergisst. Ansonsten wird keine Verbindung zu deinem Broker aufgebaut und es werden keine Informationen zwischen Doods und dem Broker ausgetauscht.

Nur wenn die Verbindung zum MQTT-Broker besteht, kannst du die Informationen aus deinem Smart Home System abgreifen. Ein Beispiel für eine Erkennung sieht dann wie folgt aus:

chair = {"top": 0.3227604230244954, "left": 0.3508979320526123, "bottom": 0.5218171755472819, "right": 0.4143247127532959, "label": "chair", "confidence": 40.01728296279907, "image":

Aus Gründen der Sicherheit und der Länge, habe ich an dieser Stelle das Base64-Bild entfernt. Du siehst außerdem, dass für jedes erkannte Objekt ein eigenes Topic erstellt wird.

Die Server-Ressourcen im Überblick

Wie bereits erwähnt, braucht die eigene Objekterkennung eine Menge Ressourcen. So läuft meine virtuelle Maschine aktuell am Limit und ich muss mir Gedanken machen, ob sie nicht nochmal erweitert wird.

Aktuell verfügt sie über 6 CPU-Kerne, wobei immer etwa 99 % der CPU genutzt werden. Arbeitsspeicher steht insgesamt 4 GB zur Verfügung und auch dieser läuft am Limit. Die Festplatte der virtuellen Maschine ist 32 GB groß und reicht für meine Bedürfnisse voll aus.

Der wohl wichtigste Faktor bei diesem Projekt ist, dass der Server selbst nicht über eine eigene GPU verfügt und sämtliche Berechnungen daher in der CPU laufen. Aus diesem Grund verschlingt DOODS jede Menge an wertvoller CPU-Kapazität und es ist mir persönlich wichtig, den Verbrauch ein wenig einzudämmen. Dazu sei aber auch gesagt, dass das Projekt sich inzwischen auf ganze 5 Kameras ausgeweitet hat und der Server so pro Sekunde etwa 100 Bilder verarbeiten muss. Für diese Menge an Informationen ist die CPU-Auslastung meiner Meinung nach völlig in Ordnung.

Proxmox Übersicht der Ressourcen

Der sinnvolle Einsatz von Objekterkennung

Für viele Menschen klingt der Einsatz einer automatischen Überwachung beängstigend. Und ich verstehe das, denn man weiß so nie, wann man beobachtet wird. Doch es gibt in meinen Augen auch sinnvolle Anwendungszwecke, die gerade in der eigenen Umgebung gut sein können.

Eines der wohl klassischsten Anwendungsszenarien ist der Schutz vor Einbruch. Nehmen wir an, dass mitten in der Nacht im Garten eine Person erkannt wird, während alle Hausbewohner schlafen. Ein ungutes Gefühl würde sich breit machen, wenn man davon erfährt. Hier kann nun das Smart Home gezielt eingreifen. Denn eine der möglichen Konsequenzen wäre es, dass das Smart Home völlig eigenständig die Beleuchtung im Garten einschaltet und den Eindringling buchstäblich im Spotlight stehen lässt.

Wem das noch nicht genug ist, kann dem Eindringling auch noch eine selbst aufgenommene Sprachnachricht ausgeben lassen, so dass dieser wohl kein zweites Mal mehr auf das Grundstück kommt.

Du siehst also, dass Objekterkennung im Smart Home durchaus für mehr Sicherheit sorgen kann. Die Frage dabei ist natürlich immer, wie man damit umgeht.

Wo Objekterkennung schwierig wird

Natürlich muss man bei all den Vorzügen auch erwähnen, dass Objekterkennung schwierig sein kann. Zum Beispiel wenn es darum geht, seine Mitmenschen im Auge zu behalten, ohne dass diese etwas davon wissen. Zwar ist dann in meinen Augen auch etwas fragwürdig, was man selbst für ein Verständnis von seinen Liebsten hat, jedoch ist das ein wichtiger Punkt.

Vertiefe dein Wissen:  Apple iOS 14 und Smart Home

Nehmen wir an, du als IT-Geek möchtest eine Objekterkennung für dein Zuhause einführen. Das bedeutet, dass du auf Basis dieser Informationen immer dann ein Bild zugeschickt bekommst, wenn sich jemand im Garten befindet. Zwar kannst du das nun machen und stillschweigend diese Informationen nutzen, doch wie ergeht es deinen Mitmenschen damit?

Du musst dir daher auf jeden Fall die Frage stellen, ob das zum Beispiel deiner Familie gegenüber fair ist. Rechtliche Aspekte klammern wir an der Stelle mal aus, denn davon habe ich offen gestanden zu wenig Ahnung. Doch ich glaube diese Aspekte braucht man auch gar nicht. Denn es sollte in der Regel schon genügen sich die Frage zu stellen, wie man selbst damit umgehen würde, wenn der eigene Partner einen heimlich überwacht. Höchstwahrscheinlich löst das ein sehr ungutes Gefühl aus. Zurecht!

Ebenso schwierig ist (dann aufgrund rechtlicher Schwierigkeiten) die Überwachung im öffentlichen Raum. Meines Wissens nach ist das in Deutschland so nicht gestattet und darf daher auch nicht durchgeführt werden. Doch auch hier kann man sich wieder fragen wie man sich selbst fühlen würde, wenn man auf offener Straße von fremden Leuten automatisch beobachtet wird. Es kann sich dabei ja auch um Menschen handeln, die das nicht aus Nächstenliebe tun. Hier wird es schnell grenzwertig, wenn nicht sogar strafbar.

Wie ich die Objekterkennung nutze

Mit allen Hausbewohnern abgesprochen (und mit Einverständnis!) werden die Kamerabilder auf dem Infomonitor angezeigt. So behält man stets den Überblick und kann auch einen kurzen Kontrollblick auf alle wichtigen Bereiche werfen.

Sobald DOODS nun eine Person erkennt, wird die Kamera auf dem Monitor rot umrahmt und es wird direkt visualisiert, dass sich dort eine Person aufhält. Gerade in der Nacht ist das äußerst hilfreich und kann schon für ein besseres Gefühl sorgen. Denn die Technik behält alles rund um die Uhr im Auge. Öffentliche Bereiche sind selbstverständlich nicht betroffen, ist ja klar?

Ebenso einstellbar ist, dass die erfassten Bilder automatisch an das eigene Smartphone gesendet werden. Hierzu gibt es in ioBroker einen virtuellen Schalter, der bei Bedarf aktiviert werden kann. Ist dieser aktiviert, erhält man sofort ein Bild zugesandt, sobald eine Person erkannt wurde. Ist der Schalter ausgeschaltet, werden diese Informationen einzig und allein für die Monitore verwendet und niemand wird benachrichtigt.

Du siehst also, dass auch du einen sinnvollen Einsatz schaffen kannst. Natürlich nur dann, wenn du auch das Einverständnis aller Betroffenen hast. Denn das ist – wie schon so oft angesprochen – sehr wichtig. Wenn du einmal ein paar Tage von daheim weg bist, entgeht dir mit dieser Möglichkeit auch nichts. Einbruch wird damit bei dir daheim nur sehr schwer möglich, sofern immer alles im Blick ist. Denn du kannst dir sicher sein, dass dir nichts entgeht.

Vollständige YAML-Konfiguration für DOODS2

Nachfolgend siehst du nun meine eigene Konfiguration für DOODS2, die ich im Laufe meines Testprojekts angelegt habe. Aus Gründen der Sicherheit habe ich an dieser Stelle Informationen entfernt, die Rückschlüsse auf die eigene IT zulassen oder Passwörter und Benutzernamen enthalten. Diese Platzhalter musst du bei Bedarf ersetzen oder den gesamten Block entfernen.

doods:
  log: error
  boxes:
    enabled: True
    boxColor: [0, 255, 0]
    boxThickness: 1
    fontScale: 1.2
    fontColor: [0, 255, 0]
    fontThickness: 1
  regions:
    enabled: True
    boxColor: [255, 0, 255]
    boxThickness: 1
    fontScale: 1.2
    fontColor: [255, 0, 255]
    fontThickness: 1
  globals:
    enabled: True
    fontScale: 1.2
    fontColor: [255, 255, 0]
    fontThickness: 1
  detectors:
    - name: default
      type: tflite
      modelFile: models/coco_ssd_mobilenet_v1_1.0_quant.tflite
      labelFile: models/coco_labels0.txt
    - name: tensorflow
      type: tensorflow
      modelFile: models/faster_rcnn_inception_v2_coco_2018_01_28.pb
      labelFile: models/coco_labels1.txt
    - name: pytorch
      type: pytorch
      modelFile: ultralytics/yolov5,yolov5s
mqtt:
  metrics: true
  broker: 
    host: "IP DES MQTT-BROKERS"
    port: 1883
    user: "BENUTZERNAME ZUM LOGIN"
    password: "PASSWORT DES BENUTZERS"
  requests:
    - id: Kamera1
      detector_name: pytorch
      data: b64
      image: jpeg
      throttle: 0
      preprocess: []
      separate_detections: true
      crop: false
      binary_images: false
      detect:
        "*": 40
      regions:
      - id: Kamera1-Area
        top: 0.1
        left: 0
        bottom: 1
        right: 0.75
        detect:
          "*": 40
        covers: false
      data: IP UND PORT AUS MOTION
    - id: Kamera2
      detector_name: pytorch
      data: b64
      image: jpeg
      throttle: 0
      preprocess: []
      separate_detections: true
      crop: false
      binary_images: false
      detect:
        "*": 40
      regions:
      - id: Kamera2-Area
        top: 0
        left: 0
        bottom: 0
        right: 0
        detect:
          "*": 40
        covers: false
      data: IP UND PORT AUS MOTION
    - id: Kamera3
      detector_name: pytorch
      data: b64
      image: jpeg
      throttle: 0
      preprocess: []
      separate_detections: true
      crop: false
      binary_images: false
      detect:
        "*": 40
      regions:
      - id: Kamera3-Area
        top: 0
        left: 0
        bottom: 0
        right: 0
        detect:
          "*": 40
        covers: false
      data: IP UND PORT AUS MOTION
    - id: Kamera4
      detector_name: pytorch
      data: b64
      image: jpeg
      throttle: 0
      preprocess: []
      separate_detections: true
      crop: false
      binary_images: false
      detect:
        "*": 40
      regions:
      - id: Kamera4-Area
        top: 0
        left: 0
        bottom: 0
        right: 0
        detect:
          "*": 40
        covers: false
      data: IP UND PORT AUS MOTION
    - id: Kamera5
      detector_name: pytorch
      data: b64
      image: jpeg
      throttle: 0
      preprocess: []
      separate_detections: true
      crop: false
      binary_images: false
      detect:
        "*": 40
      regions:
      - id: Kamera5-Area
        top: 0
        left: 0
        bottom: 0
        right: 0
        detect:
          "*": 40
        covers: false
      data: IP UND PORT AUS MOTION

Avatar-Foto

Lukas

Als Softwareentwickler und Projektmanager mit einem Master of Science in Wirtschaftsinformatik weiß ich genau, wie die Dinge in der IT zu funktionieren haben. In meinem Blog kombiniere ich seit mehr als 7 Jahren mein Wissen mit meiner Neugier im Bereich Smart Home. Transparenz und Praxisnähe stehen für mich dabei im Vordergrund. Mein Fokus liegt vor allem auf der Software ioBroker, da ich mein eigenes Smart Home damit betreibe. Meine Beiträge basieren somit nicht nur auf theoretischem Know-how, sondern auch auf praktischen Erfahrungen aus meinem vernetzten Zuhause. Mein persönliches Ziel ist es, dir Einblicke in das Smart Home zu geben, die dich wirklich voranbringen.

15 Kommentare

Avatar-Foto

Michael · 9. Februar 2024 um 00:27

Hallo Lukas,
danke für deinen Beitrag, der hat mir geholfen.
Wenn ich Doods über das Terminal starte (und am ende auch mqtt in den Terminal Aufruf mit eingebe), bekomme ich auch eine Meldung in meinem iobroker mqtt adapter.
Wenn ich doods aber über eine docker-compose.yml starte, bekomme ich diese Meldung nicht.
Was muss ich also in der docker-compose.yml zusätzlich eintragen, damit auch dann der mqtt broker eine Verbindung zu meinem Server aufbaut?
irgend eine environment Eintragung=?

Hat jemand Ideen oder es gar geschafft mit der docker-compose.yml?

Viele Grüße
Michael

    Avatar-Foto

    Lukas · 9. Februar 2024 um 07:57

    Hallo Michael,

    es freut mich, dass dir mein Artikel geholfen hat. Danke für das positive Feedback! 🙂

    Mit Doods und docker-compose habe ich ehrlich gesagt nie experimentiert. Wahrscheinlich wäre das für mich damit auch stabiler gelaufen.
    Ich vermute, dass da irgendein Aufruf noch nicht korrekt ist. Leider kann ich dir aber auch gar nicht sagen, welcher das ist.
    Inzwischen bin ich von Doods auf Frigate umgestiegen. Damit habe ich bislang etwas mehr Glück.
    Auch dazu findest du bei mir einen Artikel: https://hobbyblogging.de/frigate-videoueberwachung
    Vielleicht ist es ja auch für dich eine Idee, sich diese Software mal anzusehen, um die Probleme mehr oder weniger elegant zu umgehen.

    Smarte Grüße

Avatar-Foto

Udo · 13. September 2023 um 15:46

Wie sieht es denn mit DOODS2 im Vergleich zu Frigate aus?
Zu Frigate gibt es sogar einen ioBroker Adpater.

LG

    Avatar-Foto

    Lukas · 13. September 2023 um 17:00

    Hallo Udo,

    dazu kann ich dir aktuell tatsächlich gar nichts sagen. Ich habe Frigate nie ausprobiert, auch wenn ich es schon mal auf dem Schirm hatte.
    Ich könnte mir aber frei aus dem Bauch heraus vorstellen, dass Frigate etwas leichter in der Handhabung ist.

    Smarte Grüße

Avatar-Foto

Dirk Beckers · 10. August 2022 um 06:46

Guten Morgen!

Meine Erkennung über API läuft jetzt. Funktioniert eigentlich sehr gut. Ja, Doods ist ein geniales Tool, um schnell in die Nutzung von Bilderkennungs-KI reinzukommen.

Nächste Idee von mir: ich will die InsightFace_TF nutzen, um über meine Ring Türklingel Gesichtserkennung zu machen. Dann kann Alexa mir gleich sagen, wer geklingelt hat. 🙂

Aber das wird u.U. etwas dauern…

https://github.com/auroua/InsightFace_TF

Viele Grüße
Dirk

    Avatar-Foto

    Lukas · 10. August 2022 um 07:30

    Hallo Dirk,

    das klingt sehr interessant. Wenn du das umgesetzt bekommen würdest, wäre das sicherlich ein riesiger Meilenstein und auch für die praktische Anwendung (vom Datenschutz abgesehen?) mehr als spannend.
    Da stellt sich gleich bei mir die Frage, ob die Kameras dafür eine Mindestauflösung brauchen oder ob das theoretisch auch bei mir funktioniert. 😀

    Smarte Grüße

Avatar-Foto

Dirk Beckers · 7. August 2022 um 20:09

Hi Lukas!

Zunächst mal danke für die kurze Einführung in Doods! Ich spiele gerade damit herum.
Nun gibt es ja inzwischen Doods2, welches ich verwende. Irgendwie funktioniert das bei mir nicht mit der config,yaml. Ich bin mir nicht sicher, ob diese verwendet wird. Ich kann auch Deinen Aufruf mit der config Yaml nicht so ganz nachvollziehen.
Und einen mqtt connect scheint Doods auch nicht zu machen.

Hast Du Tips oder Ideen?

Viele Grüße
Dirk

    Avatar-Foto

    Dirk Beckers · 7. August 2022 um 23:47

    Schon selbst gefunden. Alles läuft.

      Avatar-Foto

      Lukas · 8. August 2022 um 07:25

      Hallo Dirk,

      da warst du wohl schneller als ich! 😉

      Ich vermute es lag am Befehl, dass die Config nicht richtig in Docker geladen wurde? Oder hast du an der Stelle andere Erkenntnisse, die du gerne mit den anderen Lesern teilen möchtest?

      Smarte Grüße

        Avatar-Foto

        Dirk Beckers · 9. August 2022 um 06:58

        Hallo Lukas!

        Ja genau, das war das Problem. Dummer Fehler.

        Aber es geht leider weiter: Doods2 bleibt nach 1-2 Stunden hängen, meldet vorher so ca. 200 Dekodierunhsfehler von den Stream-Bildern und muss dann neu gestartet werden:

        „[h264 @ 0xffff1988f820] left block unavailable for requested intra mode
        [h264 @ 0xffff1988f820] error while decoding MB 0 72, bytestream 38651“

        Keine Ahnung, ob das an der Auflösung oder der Qualität meines Streams liegt.

        Ich schreibe jetzt ein Programm, welches regelmäßig alle 2 Sekunden ein Einzelbild von der Kamera abholt und dann über die REST-API an Doods zur Analyse schickt. Für Personenerkennung nachts in meinem Garten reicht das.

        Außerdem bekomme ich dann auch das Bild mit dem Detection-Ergebnis zurück, denn so, wie ich den Code verstanden habe, macht Doods das im Stream-Mode nicht.

        Viele Grüße
        Dirk

          Avatar-Foto

          Lukas · 9. August 2022 um 08:56

          Hallo Dirk,

          Abstürze habe ich in letzter Zeit auch festgestellt. Allerdings nach mehreren Tagen. Da arbeite ich noch an einer Lösung.
          Von Dekodierungsfehlern ist dabei aber meines Wissens nach nichts zu finden. Jedenfalls bei mir.

          Das mit dem Stream-Mode ist richtig. Ich habe dazu den Umweg gebaut, dass ioBroker bei Motion nach einem Bild anfragt und es dann über Telegram versendet. Das sorgt zwar dafür, dass das Bild von der Erkennung abweicht, aber für meine Zwecke wiederum reicht das. Viele Wege führen eben nach Rom.
          An sich ist Doods aber ein wirklich geniales Tool und es ist absolut interessant, was damit angestellt werden kann.

          Smarte Grüße

          Avatar-Foto

          Mark · 5. Oktober 2022 um 09:21

          Hallo Lukas,
          wie benutzt du doods2 im iobroker?
          Hättest du ein blockly script`?

          Danke und Gruß
          Mark

          Avatar-Foto

          Lukas · 5. Oktober 2022 um 10:25

          Hallo Mark,

          doods übergibt an MQTT die Info, ob/wo eine Bewegung erkannt wurde. Über den MQTT-Adapter kann ich diese Information entsprechend auslesen.
          Wird also nun eine Bewegung bzw. eine Person erkannt, so kann ich auf Basis dieses Datenpunkts eine Automation triggern. Welche Automation das ist, ist natürlich sehr individuell.
          Aktuell lasse ich selbst keine Automation davon steuern, sondern blende nur ein entsprechendes Icon in der VIS ein, sobald eine Bewegung stattfindet bzw. eine Person erkannt wurde.

          Smarte Grüße

          Avatar-Foto

          Mark · 5. Oktober 2022 um 11:26

          Ah ok also ganz „normal“.
          Bei mir „stürzt“ das doods2 auch nach einer Zeit ab.

          Eventuell muss ich mir die REST-API mal anschauen….hatte ich bis jetzt noch nicht richtig verstanden, wie ich dort ein Bild zur Auswertung übergeben kann.

          Avatar-Foto

          Lukas · 5. Oktober 2022 um 11:28

          Hallo Mark,

          genau ganz normal sozusagen. Habe da keine spezielle Logik dahinter.
          Das mit der REST-API habe ich nicht umgesetzt. Da ich in meinem Fall wirklich den Livestream übergebe und mir das genügt. Sollte aber eigentlich kein großes Problem sein denke ich.

          Smarte Grüße

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert