Installe facilement YoloV9 et rend la détection intelligente

Nico Écris par Nico
  5 min de lecture

Cet Article a été vu ... fois

Installe facilement YoloV9 et rend la détection intelligente

Yolo V9 est un gestionnaire de tâche, détecteur d’objet de pointe, gratuit et ultra performant il analysera les vidéos plus vite que l’éclair et t’évitera de nombreux faux positifs.

Dans ce tuto je vais te montrer comment l’installer facilement grâce à un répertoire github qui dans l’avenir devrait être intégré dans une futur mise à jour de frigate.

Prérequis

Ce tutos est dédié aux utilisateurs linuxiens qui ont certaines connaissances en docker et qui ont préalablement installés un système debian avec une image frigate !

Installation

Pour commencer mon environnement est le suivant:

Simple rapide et efficace, je te laisse consulter.

Répertoire Github

Pour réaliser cette installation facilement et rapidement dbro a créé un répertoire complet qui a été mergé sur frigate, cette installation est paramétré pour ne pas dépasser les 10ms d’analyses sur l’accélérateur google coral et frigate, il a réussi cette prouesse grâce à de nombreux tests qui sont mêmes argumentés sur son référentiel.

https://github.com/dbro/frigate-detector-edgetpu-yolo9

Mise en place

Partons du principe que ton installation Frigate est basée sur docker à l’aide d’un fichier docker-compose

Voici un exemple docker-compose basé sur une de mes installations.

---
services:
  frigate:
    container_name: frigate
    privileged: true # this may not be necessary for all setups
    restart: unless-stopped
    stop_grace_period: 30s # allow enough time to shut down the various services
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "276mb" # update for your cameras based on calculation above
    devices:
      - /dev/apex_0:/dev/apex_0
      - /dev/dri/renderD128:/dev/dri/renderD128 
      - /dev/dri/card0:/dev/dri/card0
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /Frigate/config:/config
      - /export/videosurveillance:/media/frigate

      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "5000:5000" # Internal unauthenticated access. Expose carefully.
      - "8554:8554" # RTSP feeds
      - "8555:8555/tcp" # WebRTC over tcp
      - "8555:8555/udp" # WebRTC over udp
      - "8971:8971"
    environment:
      FRIGATE_RTSP_PASSWORD: "password"

Dans mon fichier tu retrouves les lignes d’accélérations matérielles pour le google coral /dev/apex_0:/dev/apex_0 et /dev/dri/renderD128:/dev/dri/renderD128

Voilà ce que propose Dbro

Tout d’abord installe sur ton NAS et non dans le container frigate les utilitaires après avoir effectué une mise à jour debian sudo apt update && sudo apt upgrade

sudo mkdir -p /opt/frigate-plugins
cd /opt/frigate-plugins
# download weights
sudo wget https://github.com/dbro/frigate-detector-edgetpu-yolo9/releases/download/v1.0/yolov9-s-relu6-best_320_int8_edgetpu.tflite
# download plugin
sudo wget https://raw.githubusercontent.com/dbro/frigate-detector-edgetpu-yolo9/main/edgetpu_tfl.py
# download labels
sudo wget https://raw.githubusercontent.com/dbro/frigate-detector-edgetpu-yolo9/main/labels-coco17.txt

Ensuite met à jour ton docker files en intégrant 3 lignes dans l’onglet volume

# ... other services ...
frigate:
  # ... other frigate configurations ...
  volumes:
    # ... existing volumes ...
    - /opt/frigate-plugins/edgetpu_tfl.py:/opt/frigate/frigate/detectors/plugins/edgetpu_tfl.py:ro
    - /opt/frigate-plugins/labels-coco17.txt:/opt/frigate/models/labels-coco17.txt:ro
    - /opt/frigate-plugins/yolov9-s-relu6-best_320_int8_edgetpu.tflite:/opt/frigate/models/yolov9-s-relu6-best_320_int8_edgetpu.tflite:ro
  # ... rest of frigate service ...

Il ne te reste plus qu’à remonter les volumes

docker-compose down
docker-compose up -d

Dernière étape configurer Frigate

Maintenant que tout est installé sur ton image il ne te reste plus qu’à configurer le fichier config.yml de Frigate. Au dessus de tes ligne du detector intègre le model de détection:

model:
  model_type: yolo-generic
  labelmap_path: /opt/frigate/models/labels-coco17.txt
  path: /opt/frigate/models/yolov9-s-relu6-best_320_int8_edgetpu.tflite
  # Optionally specify the model dimensions (these are the same as Frigate's default 320x320)
  width: 320
  height: 320

# Google coral m2
detectors:
  coral:
    type: edgetpu
    device: pci

Redémarre frigate consulte les journaux et la métrique du système et le tour est joué.

Il ne te reste plus qu’à paramétrer correctement les détections d’objets dans le config.yaml de frigate pour te rendre compte des bonnes performances.

Pour les journaux systèmes tu dois retrouver le message: Initializing edgetpu detector with support for SSD and YOLOv9 models

Consigne yolo v9 pris en charge dans frigate avec google coral

Dans la métrique système tu pourras te rendre compte que la vitesse d’inférence du détecteur est en dessous de 10ms pour la capture ci-dessous c’est 9.34ms ce qui est bon. Et ceci grâce à un model bien défini en capture 320px.

controle de la metrique système et le suivi d'inférence google coral inférieur à 10ms

Conclusion

Voilà en 2 manipulations tu a rendu ton NVR encore plus intelligent le combo Google Coral / Yolo V9 va sublimer les détections et optimiser les performances de frigate et rendre ta domotique Home Assistant plus subtile.

Nico

Nico

Membre fondateur du site Haade, voilà plus de 10 ans que je suis passionné de domotique, informatique et électronique. J'essaie à travers ce blog d'aider d'autres internautes à s'expérimenter en domotique, à trouver des tutos ludiques, bref à évoluer.

commentaires