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 YOLOmodel = YOLO("best.pt") # Charger le meilleur modèleresults = model.predict(source="chemin_vers_votre_image/image.jpg", conf=0.25) # N'oubliez pas de spécifier le seuil de confiance optimal iciL'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'imageprint(r.boxes.xyxy) # récupération des coordonnées des coinsprint(r.boxes.xywh) # récupération des coordonnées du centre et de la taille de la boîteprint(r.boxes.conf) # scores de confianceprint(r.boxes.cls) # index qui correspond à la classe de l'objet en questionVous 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.