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.
- Collecter des données : Obtenez un ensemble de données d’images de chiens et de chats avec des étiquettes précises.
- Annoter les images : Marquez les images avec des outils d’annotation pour indiquer l’emplacement et la classification des objets.
- Choisir une architecture de modèle : Sélectionnez parmi les architectures de modèles disponibles dans TensorFlow, telles que SSD ou Faster R-CNN.
- Entraîner le modèle : Configurez votre environnement d’entraînement et utilisez TensorFlow Object Detection API pour entraîner votre modèle.
- Évaluer les performances : Testez votre modèle entraîné et ajustez-le si nécessaire pour améliorer la précision.
- 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