0% ont trouvé ce document utile (0 vote)
39 vues17 pages

Test Yolo

Le projet consiste à mettre en place un système de détection automatique des équipements de protection individuelle (EPI) tels que les casques et gilets à l'aide du modèle YOLOv8. Après avoir configuré l'environnement de développement et testé la lecture vidéo, le modèle a été entraîné avec un dataset personnalisé, atteignant un mAP50 de 92,2% après 50 époques. Des améliorations sont envisagées, notamment l'ajout d'images et l'utilisation de modèles plus puissants pour optimiser la détection.

Transféré par

Fatma Azizi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
39 vues17 pages

Test Yolo

Le projet consiste à mettre en place un système de détection automatique des équipements de protection individuelle (EPI) tels que les casques et gilets à l'aide du modèle YOLOv8. Après avoir configuré l'environnement de développement et testé la lecture vidéo, le modèle a été entraîné avec un dataset personnalisé, atteignant un mAP50 de 92,2% après 50 époques. Des améliorations sont envisagées, notamment l'ajout d'images et l'utilisation de modèles plus puissants pour optimiser la détection.

Transféré par

Fatma Azizi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Phase 1 : Configuration de l’environnement :

1) installe Python : "Add Python to PATH" , “pip –version“


2) crée un environnement virtuel pour isoler mon projet cmd :

python -m venv yolov8_env


Activer l'environnement virtuel Sous Windows :

yolov8_env\Scripts\activate

3) installe les bibliothèques nécessaires comme Ultralytics (YOLOv8) et OpenCV :

pip install ultralytics opencv-python


Assurez-vous que YOLO sert :

Yolo
Phase 2 : Tester la lecture de la vidéo avec OpenCV :
1) Vous devez avoir une vidéo .mp4 dans le même dossier de projet :

2) Nous écrivons un script Python qui analyse la vidéo :


3) Pour tester vidéo :
cd C:\Users\Lenovo\Desktop\PFE\Mon_projet_yolo
yolov8_env\Scripts\activate

python test_video_open.py

Dans cette étape, on vérifie si notre fichier vidéo peut être ouvert avec OpenCV. C’est
important avant d’appliquer YOLO. Si la vidéo s’affiche correctement image par image, on
est prêts pour la suite.

Phase 3 : Appliquer YOLOv8 sur vidéo :


Le but :
Nous utilisons YOLOv8 pour détecter des objets (tels qu'un casque et un gilet) à partir d'une vidéo
existante sur l'appareil et générer une nouvelle vidéo avec les résultats.
(yolov8_env) C:\Users\Lenovo\Desktop\PFE\Mon_projet_yolo>
1) Nous importons YOLO de la bibliothèque ultralytics :
pip install ultralytics

2) Nous résolvons la vidéo (la même vidéo que nous avons faite à l'étape 2) :
3) Nous transmettons chaque image à YOLO pour effectuer une détection dessus :
4) Nous créons un nouveau script : detect.py
5) Puisque la vidéo est en cours de diffusion, détectons-la à l'aide de YOLOv8 :

python detect.py

6) Nous publierons les résultats dans une nouvelle vidéo (Une nouvelle vidéo appelée
result.avi est créée dans le même dossier.) :

Dans cette phase, on applique le modèle YOLOv8 pour détecter les objets dans chaque image
de la vidéo. Les détections sont affichées en temps réel et enregistrées dans une nouvelle
vidéo appelée result.avi.
Phase 5 : préparation d'un ensemble de données personnalisé :
Le but de cette étape :
Pour entraîner YOLOv8 à reconnaître les équipements de protection (gilet, casque, etc.) dans les
photos et vidéos que vous choisissez, nous ne parlons plus seulement de modèles prêts à l'emploi.
1) Inscrivez-vous et connectez-vous à Roboflow :

2) Créer compte :
3) Une fois le projet terminé et connecté, Roboflow vous donnera un bouton indiquant : ➔ «
Télécharger des images » :

Sur la page de téléchargement, tu peux soit glisser-déposer tes images, soit cliquer sur
"Sélectionner le(s) fichier(s)" pour les importer. Une fois uploadées, tu pourras commencer à
annoter (marquer) les objets sur les images.

➡️ Démarrer l'étiquetage manuel


 Comment marquer manuellement :

 Clique sur Démarrer l'étiquetage manuel.


 Ouvre une image, dessine un cadre sur le casque ou le gilet.
 Attribue l’étiquette correspondante ("casque" ou "gilet").
 Sauvegarde et passe à l’image suivante
Après avoir téléchargé tes images, tu dois les annoter. Pour chaque image :

 Dessine un cadre autour de l'objet d'intérêt.


 Attribue un label précis (par exemple "casque" ou "gilet"). Il faut être précis et
cohérent dans tes annotations pour garantir un dataset de qualité.

Dans ton cas, l'étiquetage manuel est obligatoire au début.


Car l'étiquetage automatique nécessite un modèle pré-entraîné que tu n'as pas encore.
Donc tu dois d'abord annoter manuellement (délimiter et nommer les objets comme "casque"
ou "gilet") pour garantir la qualité de ton jeu de données.

Phase 6 : Préparation des données et formation du modèle :

1) Créer une version formable des données :


 Dans Roboflow, appuyez sur « Versions » dans le menu latéral :
 Cliquez sur le bouton « Créer une version ».
✅ Vérifiez les paramètres :
 Images : 98 images taguées.
 Fractionnement : Roboflow Bash divise automatiquement les images en
Training set
Validation set
Test set
 La préparation :
Orientation automatique
Redimensionner à 640×640 (qui est la taille correcte pour YOLOv8).
2) Télécharger les données :

o YOLOv8
o Télécharger ZIP

 Crée une version de dataset depuis Roboflow en format YOLOv8.


 Télécharge le zip une fois généré.
 Utilise ce dataset dans ton environnement Python avec la commande YOLOv8
d'entraînement.

3) Utilisation des données dans YOLOv8 , Ouvrez CMD et tapez :

cd C:\Users\Lenovo\Desktop\PFE\Mon_exp_yolo
4) Entraînement du modèle YOLOv8 :
yolo task=detect mode=train model=yolov8n.pt data=data.yaml epochs=50
imgsz=640
Explication des commandes :
 task=detect : signifie entraîner un modèle de détection d'objets.
 mode=train : Mode d'entraînement.
 model=yolov8n.pt : Utilisez le modèle plus petit pour accélérer la formation.
 data=data.yaml : fichier de données.
 epochs=50 : Nombre de séances d'entraînement (peut être modifié).
 imgsz=640 : Taille de l'image.

 YOLOv8 entraîne le modèle pendant 50 époques.


 Vous donne les pertes par lot :
box_loss : Perte des coordonnées de la boîte.
cls_loss : Perte de classification (pour les classes).
dfl_loss : Perte de distribution de distance (YOLOv8 utilisé pour améliorer la
qualité des carrés).
Analyse des résultats de la formation :
YOLOv8 vous a donné les statistiques suivantes après 50 époques :

Interprétation Valeur Indicateur

Précision : Parmi les prédictions correctes, 88,9 % étaient réellement


0.889 Box(P)
correctes.
Rappel : Près de 100 % des objets détectés. 0.999 R
Précision moyenne globale à 0,5 IoU : Très bonne (> 90 %) 0.922 mAP50
Précision (à différents angles IoU) : Très bonne (> 0,7) 0.714 mAP50-95

Cours en détail :
Casque :
Précision : 91,1 %
Rappel : 99,8 %
mAP50 : 93,4 %
Gilet :
Précision : 86,7 %
Rappel : 100 %
mAP50 : 91,1 %
5) Où pouvez-vous trouver le résultat ? YOLOv8 est diplômé en :
Mon_exp_yolo/runs/detect/train3/
runs\detect\train3\weights\best.pt
Il y a reçu :
Photos des étiquettes (labels.jpg)
Modèle d'apprenant :
weights/best.pt → Meilleur modèle.
weights/last.pt → Dernière version de la formation.
Pour tester le modèle, vous pouvez l'utiliser comme ceci :

 Sur la photo :

yolo task=detect mode=predict model=runs/detect/train3/weights/best.pt source=


C:\Users\Lenovo\Desktop/image.jpg

C:\Users\Lenovo\Desktop\PFE\Mon_exp_yolo\runs\detect\predict

 Sur vidéo :
yolo task=detect mode=predict model=runs/detect/train3/weights/best.pt
source=chemin/vers/video.mp4
 Sur camera (webcam):
yolo task=detect mode=predict model=runs/detect/train3/weights/best.pt source=0

Le modèle a été entraîné avec succès pendant 50 époques. Les résultats montrent une
excellente performance (mAP50 = 92.2%). Cela signifie que ton modèle est désormais
capable de détecter efficacement les casques et les gilets sur des images ou vidéos. Tu peux
maintenant l’utiliser pour tester sur des sources réelles (images, vidéos ou caméra).
Pour améliorez la formation et faites en sorte que le modèle reconnaisse
plus d’une personne avec précision :

 Augmentez la qualité du modèle.


 Cela fonctionne bien même sur les photos avec plus d'une personne.
 Reconnaît le casque et le gilet avec précision et sans oubli.
 Envisager un modèle plus puissant (yolov8m.pt)
 Augmenter le nombre d’epochs à 100 ou plus.

1) Ajoutez plus d’images à votre dataset (Roboflow ou Internet) :


https://universe.roboflow.com/joseph-nelson/hard-hat-workers

2) Pour entraîner le modèle sur cet ensemble de données, utilisez cette commande depuis
le dossier Mon_exp_yolo :

Cd C:\Users\Lenovo\Desktop\PFE\Mon_exp_yolo\datasets\data.yaml
Cd C:\Users\Lenovo\Desktop\PFE\Mon_exp_yolo\datasets

yolo task=detect mode=train model=yolov8n.pt


data=C:/Users/Lenovo/Desktop/PFE/Mon_exp_yolo/data.yaml epochs=50
Vous pouvez remplacer yolov8n.pt par une autre version (comme yolov8s.pt) en
fonction de votre puissance de traitement.
Vous pouvez modifier epochs=50 en fonction de votre temps et du résultat que vous
souhaitez obtenir.
Une fois que le modèle a terminé l'entraînement sur 50 époques, il reçoit automatiquement les
résultats dans le chemin suivant de YOLOv8 :
Mon_exp_yolo\runs\detect\trainX\
trainX = train, train1, train2... selon le nombre de fois que vous avez entraîné le modèle.
Si vous vous entraînez pour la quatrième fois, le résultat sera :
Mon_exp_yolo\runs\detect\train2\
Interprétation
Meilleur modèle (données enregistrées weights/best.pt
automatiquement)
Le modèle de la dernière époque (peut-être weights/last.pt
pas le meilleur)
Graphique montrant la perte et le mAP sur results.png
les 50 époques
Image montrant comment les cadres de labels.jpg
délimitation sont définis dans les données.
Si vous activez la visualisation des predictions.jpg
tests/valeurs, cela vous donne des exemples
réels.
Résumé de l'avancement du projet PFE - Détection des équipements de
sécurité (casque et gilet) avec YOLOv8 :

Depuis le début du projet, j’ai suivi une approche méthodique pour mettre en place un
système de détection automatique des équipements de protection individuelle (EPI), en
particulier les casques et gilets, à l’aide du modèle YOLOv8 :

1. Mise en place de l’environnement de développement :


o Installation de Python et création d’un environnement virtuel (yolov8_env).
o Installation des bibliothèques nécessaires comme ultralytics (YOLOv8) et
opencv-python.
2. Test de lecture vidéo avec OpenCV :
o Vérification de la bonne lecture des vidéos .mp4 pour préparer l’étape
d’inférence.
3. Application de YOLOv8 sur vidéo :
o Création d’un script detect.py pour appliquer la détection image par image et
enregistrer les résultats dans une vidéo (result.avi).
4. Création d’un dataset personnalisé avec Roboflow :
o Téléversement manuel de mes propres images.
o Annotation manuelle des casques et gilets (bounding boxes + étiquettes).
o Génération automatique des dossiers train, valid, test.
o Téléchargement du dataset au format YOLOv8.
5. Entraînement du modèle YOLOv8 :
o Utilisation de la commande :

yolo task=detect mode=train model=yolov8n.pt data=data.yaml epochs=50


imgsz=640

 Résultats obtenus après 50 époques :


o mAP50 = 92.2%, Précision = 88.9%, Rappel = 99.9%
→ Cela prouve que le modèle détecte bien les casques et gilets.

6. Test du modèle entraîné sur image & vidéo :


 Image :
yolo task=detect mode=predict model=runs/detect/train3/weights/best.pt
source=image.jpg

 Vidéo :
yolo task=detect mode=predict model=runs/detect/train3/weights/best.pt
source=video.mp4

7. Amélioration du modèle (prévue ou en cours) :


o Ajout d’images supplémentaires (via Roboflow ou Internet).
o Réduction des erreurs d’annotations et amélioration de la diversité du dataset.
o Envisager des modèles plus puissants comme yolov8m.pt.
o Augmentation du nombre d’époques à 100 pour un meilleur apprentissage.

Vous aimerez peut-être aussi