L'IA pour une maison plus intelligente

Usage de l’IA avec Home Assistant

Introduction

Usage de l’intelligence artificielle pour renforcer la sécurité des caméra de surveillances. Cet article explore l’utilisation de DOODS (Dedicated Open Object Detection Service) avec Home Assistant pour détecter des objets spécifiques, tels que des humains ou des animaux, et envoyer des notifications via Telegram.

Configuration de DOODS 2 avec Docker

DOODS 2 peut être déployé facilement à l’aide de Docker (qui servira à analyser les images de vos caméras). Voici une configuration Docker Compose de base pour démarrer avec DOODS 2:

version: '3.3'
services:
  doods:
    image: snowzach/doods2:latest
    container_name: doods2
    restart: unless-stopped
    ports:
      - "8082:8080"

Pour plus d’informations, consultez le dépôt GitHub officiel de DOODS 2

Home Assistant

1. configuration.yaml

Après avoir mis en place DOODS 2, configurez-le dans Home Assistant pour traiter les flux vidéo des caméras. Ajoutez la configuration suivante à votre fichier configuration.yaml de Home Assistant:

image_processing:
  - platform: doods
    scan_interval: 1000
    url: "http://<IP_DOODS_2_CONTAINER>:8082"
    timeout: 60
    source:
      - entity_id: camera.<VOTRE_CAMERA>
    file_out:
      - "/config/www/<VOTRE_CAMERA>_latest.jpg"
    confidence: 53
    labels:
      - name: person
        confidence: 53
        area:
          top: 0.1
          left: 0.1
          bottom: 0.8
          right: 0.985
      - dog
      - cat

Assurez-vous de remplacer <IP_DOODS_2_CONTAINER> par l’adresse IP de votre conteneur DOODS 2 et <VOTRE_CAMERA> par l’entité de votre caméra dans Home Assistant.

Pour des exemples de configuration plus détaillés et des instructions, vous pouvez consulter la documentation Home Assistant pour DOODS.

2. automatisation.yaml

Maintenant il nous reste plus qu’a fait une automatisation pour lancer l’analyse dès détecte un mouvement et déclencher la reconnaissance d’objets :

- id: camera_portail_sud_analyse
  alias: camera_portail_sud_analyse
  trigger:
    - type: motion
      platform: device
      device_id: <DEVICE_ID_2>
      entity_id: <BINARY_SENSOR_ENTITY_ID>  # premier capteur pas loin de la caméra qui nous servira de trigger
      domain: binary_sensor
    - type: motion
      platform: device
      device_id: <DEVICE_ID_2>
      entity_id: <BINARY_SENSOR_ENTITY_ID>  # second capteur proche de la caméra qui nous servira aussi trigger
      domain: binary_sensor
  action:
    - service: image_processing.scan
      entity_id: image_processing.doods_<VOTRE_CAMERA>_mediaprofile_channel1_mainstream

Une fois l’analyse effectuée et les résultats obtenus, nous pouvons créer une autre automatisation qui vérifiera si l’objet détecté est une personne :

- id: envoi_camera_portail_sud_analyse
  alias: envoi_camera_portail_sud_analyse
  trigger:
    - entity_id: image_processing.doods_<VOTRE_CAMERA>_mediaprofile_channel1_mainstream
      platform: state
  condition:
    - condition: or
      conditions:
        - condition: template
          value_template: '{{ "person" in state_attr("image_processing.doods_<VOTRE_CAMERA>_mediaprofile_channel1_mainstream","summary") }}'
  action:
    - service: notify.telegram_groupe
      data_template:
        title: 📷Home assistant 📷
        message: "La caméra du portail sud a détecté une personne."
    - service: notify.telegram_groupe
        data:
        title: "Alerte caméra portail sud"
        message: "Détection via DOODS2"
        data:
            photo:
                file: "/config/www/camera_portail_mediaprofile_channel1_mainstream_{{ now().strftime('%Y%m%d_%H%M')}}_latest.jpg"
                capture: snapshoot
    mode: single

Modèles de détection et alternatives

Bien que la détection fonctionne correctement dans environ 90% des cas, elle peut parfois avoir du mal à distinguer les chiens des chats.

DOODS 2 est compatible avec une variété de modèles de détection, et vous avez l’option d’utiliser des modèles pré-entraînés

Entraîner son propre modèle avec TensorFlow

Pour ceux qui veulent une personnalisation avancée, il est possible d’entraîner son propre modèle de détection d’objets avec TensorFlow.

  1. Collecter des données : Obtenez un ensemble de données d’images de chiens et de chats avec des étiquettes précises.
  2. Annoter les images : Marquez les images avec des outils d’annotation pour indiquer l’emplacement et la classification des objets.
  3. Choisir une architecture de modèle : Sélectionnez parmi les architectures de modèles disponibles dans TensorFlow, telles que SSD ou Faster R-CNN.
  4. Entraîner le modèle : Configurez votre environnement d’entraînement et utilisez TensorFlow Object Detection API pour entraîner votre modèle.
  5. Évaluer les performances : Testez votre modèle entraîné et ajustez-le si nécessaire pour améliorer la précision.
  6. Exporter le modèle : Une fois que vous êtes satisfait des performances, exportez le modèle pour l’utiliser dans DOODS ou d’autres applications.

Consultez la documentation TensorFlow Object Detection API pour les instructions.

Solutions alternatives

HASS-Deepstack-object

HASS-Deepstack-object est un composant pour Home Assistant qui permet d’utiliser les capacités de reconnaissance d’objets de DeepStack, une IA qui peut être exécutée localement.

HASS-Deepstack-object s’installe de la même facon que DOODS2

Frigate

Frigate est une solution de reconnaissance d’objets en temps réel pour les caméras de surveillance. Optimisée pour une intégration facile avec Home Assistant et pour fonctionner même sur du matériel peu puissant grâce à l’accélération matérielle avec Google Coral.

Pour démarrer avec Frigate, explorez la documentation de Frigate

Chargement en cours...
Chargement en cours...