Résumé de section

  • Vous avez fini d'entraîner votre modèle et vous vous demandez maintenant comment vous en servir ou comment l'intégrer à votre code déjà existant.

              

    Si vous êtes dans un environnement Python, vous pouvez garder le modèle tel quel, sinon vous devez l'exporter. L'exportation permet de convertir un modèle YOLO (initialement en PyTorch .pt) dans un format optimisé pour des matériels spécifiques, améliorant ainsi la vitesse d'inférence (jusqu'à cinq fois plus rapide sur GPU avec TensorRT par exemple) et réduisant la consommation de ressources sur les appareils mobiles ou embarqués. Vous pouvez trouver tous les formats dans lesquels YOLO peut exporter sur cette page dédiée au sujet, ainsi que les arguments d'export expliqués juste au dessus.

                      

    Si vous restez dans l'environnement Python que vous aviez lors de l'entrainement, pour utiliser votre modèle, il suffit d'utiliser les lignes suivantes :

    from ultralytics import YOLO 

    model = YOLO("best.pt") # Charger le meilleur modèle

    results = model.predict(source="chemin_vers_votre_image/image.jpg", conf=0.25) # N'oubliez pas de spécifier le seuil de confiance optimal ici

                     

    L'objet results contient l'objet boxes. Et cet objet regroupe les informations suivantes pour chaque détection :

    • coordonnées : accessibles via xyxy (coordonnées coin haut gauche et bas droite), xywh (coordonnées du centre/largeur/hauteur), ou leurs versions normalisées xyxyn et xywhn.
    • confiance : l'attribut conf donne le score de probabilité (0 à 1) pour chaque boîte.
    • classes : l'attribut cls contient l'index de la classe prédite (vous pouvez retrouver à quoi correspondent les indices dans le fichier data.yaml utilisé pour l'entrainement)
    • tracking : Si vous utilisez model.track(), l'attribut id contient les identifiants de suivi.

        

    Voyons un exemple de code :

    results = model("image.jpg")

    for r in results: # vous aurez autant de résultats qu'il y a d'objets détectés sur l'image

    print(r.boxes.xyxy) # récupération des coordonnées des coins

    print(r.boxes.xywh) # récupération des coordonnées du centre et de la taille de la boîte

    print(r.boxes.conf) # scores de confiance

    print(r.boxes.cls) # index qui correspond à la classe de l'objet en question

             

    Vous pouvez donc récupérer les informations qui vous intéresse de cette manière et les utiliser pour des calculs ou autre dans la suite de votre code.