Ce projet utilise le modèle YOLO (You Only Look Once) pour le comptage en temps réel des personnes entrants et sortants d'un train à partir d'un flux vidéo. L'application est construite avec Streamlit pour fournir une interface web interactive.
- Comptage en Temps Réel : Comptage des personnes entrants et sortants d'un train en temps réel en utilisant les modèles YOLO.
- Sources Vidéo Multiples : Supporte l'entrée vidéo depuis des flux YouTube ou des liens vidéo locaux.
- Paramètres Personnalisables : Ajustez la confiance du modèle, l'IOU, le contraste, la luminosité et les classes de détection.
- Options de Visualisation : Visualisez la vidéo traitée avec les détections et la vidéo originale.
- Streamlit : Pour créer une interface web interactive et conviviale.
- YOLO : Pour la détection d'objets en temps réel.
- OpenCV : Pour le traitement d'images et de vidéos.
- VidGear : Pour le streaming vidéo depuis différentes sources.
- Python : Langage de programmation principal utilisé pour le développement du projet.
-
Clonez ce dépôt :
git clone https://github.com/JulienFillatre/TrainAI.git cd TrainAI
-
Créez un environnement virtuel :
python -m venv env
-
Activez l'environnement virtuel :
- Sur Windows :
.\env\Scripts\activate
- Sur macOS et Linux :
source env/bin/activate
- Sur Windows :
-
Installez les dépendances :
pip install -r requirements.txt
Model | size (pixels) |
mAPval 50-95 |
Speed CPU ONNX (ms) |
Speed A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 1.20 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 1.83 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 2.39 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 3.53 | 68.2 | 257.8 |
-
Lancez l'application Streamlit :
streamlit run app.py
-
Configurez les paramètres via l'interface web :
- Type de Lien : Choisissez entre un flux YouTube ou un lien local.
- Lien vers le flux vidéo : Entrez l'URL du flux vidéo.
- Choix du modèle YOLO : Sélectionnez le modèle YOLO à utiliser.
- Processeur de Calcul : Choisissez le dispositif de calcul (CPU, MPS, CUDA).
- Confiance du Modèle : Ajustez le seuil de confiance du modèle.
- IOU : Ajustez le seuil d'Intersection Over Union.
- Contrast et Brightness : Ajustez le contraste et la luminosité de la vidéo.
- Sélection des Classes : Sélectionnez les classes à détecter.
- Résolution Vidéo : Choisissez la résolution de traitement et d'affichage.
- Afficher le stream original : Choisissez d'afficher en plus la vidéo originale.
-
Lancez la détection ou le comptage via les boutons correspondants.
Le projet comprend deux fonctions principales pour la détection et le comptage d'objets :
- Visualize : Lance la détection des classes sélectionnées et active le tracking des résultats en temps réel.
- Counter : Compte les personnes entrants et sortants du train en utilisant une ligne de comptage virtuelle.
Ces fonctions sont intégrées à l'application Streamlit et utilisent OpenCV et VidGear pour le traitement et le streaming vidéo.