Intelligence Artificielle
Déballage de Yolov8 : le chef-d'œuvre de la vision par ordinateur virale d'Ultralytics

Jusqu'à présent, la détection d'objets dans les images à l'aide modèles de vision par ordinateur Nous avons dû faire face à un obstacle majeur : quelques secondes de retard dû au temps de traitement. Ce retard a freiné l'adoption pratique dans des cas d'utilisation comme la conduite autonome. Cependant, la sortie du modèle de vision par ordinateur YOLOv8 par Ultralytics a permis de surmonter ce retard de traitement. Ce nouveau modèle peut détecter des objets en temps réel avec une précision et une rapidité inégalées, ce qui le rend populaire dans le domaine de la vision par ordinateur.
Cet article explore YOLOv8, ses capacités et comment vous pouvez affiner et créer vos propres modèles via son référentiel Github open source.
Yolov8
YOLO (You Only Live Once) est un modèle de vision par ordinateur populaire capable de détecter et segmenter des objets dans des images. Le modèle a traversé plusieurs mises à jour dans le passé, avec YOLOv8 marquant la 8ème version.
Dans l'état actuel des choses, YOLOv8 s'appuie sur les capacités des versions précédentes en introduisant de nouvelles fonctionnalités et améliorations puissantes. Cela permet une détection d’objets en temps réel dans les données d’image et vidéo avec une exactitude et une précision améliorées.
De la v1 à la v8 : un bref historique
Yolov1 : Sortie en 2015, la première version de YOLO a été introduite en tant que modèle de détection d'objets en une seule étape. Les fonctionnalités incluaient le modèle lisant l'intégralité de l'image pour prédire chaque cadre de délimitation en une seule évaluation.
Yolov2: La version suivante, sortie en 2016, a présenté d'excellentes performances sur des benchmarks comme PASCAL VOC et COCO et fonctionne à des vitesses élevées (67-40 FPS). Il pourrait également détecter avec précision plus de 9000 XNUMX catégories d’objets, même avec des données de détection spécifiques limitées.
Yolov3 : Lancé en 2018, Yolov3 a présenté de nouvelles fonctionnalités telles qu'un réseau fédérateur plus efficace, plusieurs ancres et un regroupement de pyramides spatiales pour une extraction de fonctionnalités à plusieurs échelles.
Yolov4 : Avec la sortie de Yolov4 en 2020, la nouvelle technique d'augmentation des données Mosaic a été introduite, qui offre des capacités de formation améliorées.
Yolov5 : Lancé en 2021, Yolov5 a ajouté de nouvelles fonctionnalités puissantes, notamment l'optimisation des hyperparamètres et le suivi intégré des expériences.
Yolov6 : Avec la sortie de Yolov6 en 2022, le modèle est devenu open source pour promouvoir le développement communautaire. De nouvelles fonctionnalités ont été introduites, telles qu'une nouvelle stratégie d'auto-distillation et une stratégie de formation assistée par ancrage (AAT).
Yolov7 : Sorti la même année, 2022, Yolov7 a amélioré le modèle existant en termes de vitesse et de précision et était le modèle de détection d'objets le plus rapide au moment de sa sortie.
Qu'est-ce qui distingue YOLOv8 ?

La précision inégalée et la vitesse élevée de YOLOv8 distinguent le modèle de vision par ordinateur des versions précédentes. Il s’agit d’une réussite majeure car les objets peuvent désormais être détectés en temps réel et sans délai, contrairement aux versions précédentes.
Mais à part cela, YOLOv8 est doté de fonctionnalités puissantes, notamment :
- Architecture personnalisable : YOLOv8 offre une architecture flexible que les développeurs peuvent personnaliser pour répondre à leurs besoins spécifiques.
- Formation adaptative : Les nouvelles capacités de formation adaptatives de YOLOv8, telles que l'équilibrage des fonctions de perte pendant la formation et les techniques, améliorent le taux d'apprentissage. Prenez Adam, qui contribue à une meilleure précision, une convergence plus rapide et de meilleures performances globales du modèle.
- Analyse d'images avancée : Grâce à de nouvelles capacités de segmentation sémantique et de prédiction de classe, le modèle peut détecter les activités, la couleur, la texture et même les relations entre les objets en plus de sa fonctionnalité principale de détection d'objets.
- Augmentation des données : Les nouvelles techniques d’augmentation des données aident à aborder certains aspects des variations d’image tels que la faible résolution, l’occlusion, etc., dans des situations réelles de détection d’objets où les conditions ne sont pas idéales.
- Support de base : YOLOv8 offre la prise en charge de plusieurs backbones, notamment CSPDarknet (backbone par défaut), EfficientNet (backbone léger) et ResNet (backbone classique), parmi lesquels les utilisateurs peuvent choisir.
Les utilisateurs peuvent même personnaliser la dorsale en remplaçant le CSPDarknet53 par n'importe quelle autre architecture CNN compatible avec les dimensions d'entrée et de sortie de YOLOv8.
Formation et mise au point de YOLOv8
Le modèle YOLOv8 peut être soit affiné pour s'adapter à certains cas d'utilisation, soit entièrement formé à partir de zéro pour créer un modèle spécialisé. Plus de détails sur les procédures de formation peuvent être trouvés dans le documentation officielle.
Voyons comment vous pouvez réaliser ces deux opérations.
Affiner YOLOV8 avec un ensemble de données personnalisé
L'opération de réglage fin charge un modèle préexistant et utilise ses poids par défaut comme point de départ pour l'entraînement. Intuitivement parlant, le modèle mémorise toutes ses connaissances antérieures et l'opération de réglage fin ajoute de nouvelles informations en ajustant les poids.
Le modèle YOLOv8 peut être affiné avec votre code Python ou via l'interface de ligne de commande (CLI).
1. Affiner un modèle YOLOv8 à l'aide de Python
Commencez par importer le package Ultralytics dans votre code. Ensuite, chargez le modèle personnalisé que vous souhaitez entraîner à l'aide du code suivant :
Tout d’abord, installez la bibliothèque Ultralytics à partir de la distribution officielle.
| # Installez le package ultralytics depuis PyPI pip installer les ultralytiques |
Ensuite, exécutez le code suivant dans un fichier Python :
| de l'importation d'ultralytiques YOLO
# Charger un modèle # Entraîner le modèle sur l'ensemble de données MS COCO |
Par défaut, le code entraînera le modèle à l'aide de l'ensemble de données COCO pendant 100 époques. Cependant, vous pouvez également configurer ces paramètres pour définir la taille, l'époque, etc. dans un fichier YAML.
Une fois que vous avez entraîné le modèle avec vos paramètres et votre chemin de données, surveillez les progrès, testez et ajustez le modèle, et continuez à vous entraîner jusqu'à ce que les résultats souhaités soient obtenus.
2. Affinez un modèle YOLOv8 à l'aide de la CLI
Pour entraîner un modèle à l'aide de la CLI, exécutez le script suivant dans la ligne de commande :
| yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640 |
La commande CLI charge le modèle « yolov8n.pt » pré-entraîné et l'entraîne davantage sur l'ensemble de données défini dans le fichier « coco8.yaml ».
Créer votre propre modèle avec YOLOv8
Il existe essentiellement 2 façons de créer un modèle personnalisé avec le framework YOLO :
- Formation à partir de zéro : Cette approche vous permet d'utiliser l'architecture YOLOv8 prédéfinie mais n'utilisera AUCUN poids pré-entraîné. La formation se déroulera à partir de zéro.
- Architecture personnalisée : Vous modifiez l'architecture YOLO par défaut et entraînez la nouvelle structure à partir de zéro.
La mise en œuvre de ces deux méthodes reste la même. Pour entraîner un modèle YOLO à partir de zéro, exécutez le code Python suivant :
| de l'importation d'ultralytiques YOLO
# Charger un modèle # Former le modèle |
Notez que cette fois, nous avons chargé un fichier « .yaml » au lieu d'un fichier « .pt ». Le fichier YAML contient les informations d'architecture du modèle et aucun poids n'est chargé. La commande d'entraînement commencera à entraîner ce modèle à partir de zéro.
Pour former une architecture personnalisée, vous devez définir la structure personnalisée dans un fichier « .yaml » similaire au « yolov8n.yaml » ci-dessus. Ensuite, vous chargez ce fichier et entraînez le modèle en utilisant le même code que ci-dessus.
Pour en savoir plus sur la détection d'objets à l'aide de l'IA et pour rester informé des dernières tendances en matière d'IA, visitez unir.ai.













