Le projet YOLOv5, développé par Ultralytics, est une soultion avancée et performante pour la détection d'objets en temps réel. Basé sur le framework PyTorch, il vise à offrir une approche rapide, précise et facile à intégrer pour diverses tâches de vision par ordinateur, y compris la détection d'objets, la segmentation d'instances et la classification d'images. Sa nature open-source et sa forte communauté garantissent un accès facile à sa documentation et à son support.
Démarrage rapide
Prérequis système
Pour commencer, assurez-vous que votre environnement Python est configuré avec les versions suivantes :
- Python >= 3.8
- PyTorch >= 1.7
Vous pouvez installer PyTorch via pip :
pip install torch torchvision
Clonage du dépôt
Clonez le référentiel YOLOv5 depuis GitHub sur votre machine locale :
git clone https://github.com/Tony0726/yolov5.git
cd yolov5
Installation des dépendances
Installez toutes les bibliothèques nécessaires au bon fonctionnement de YOLOv5 :
pip install -r requirements.txt
Exemple d'utilisation avec un modèle pré-entraîné
Voici comment effectuer une détection d'objets en utilisant un modèle pré-entraîné directement via PyTorch Hub :
import torch
# Chargement du modèle pré-entraîné (yolov5s est la version la plus petite et rapide)
detector = torch.hub.load('ultralytics/yolov5', 'yolov5s')
# Spécification de l'image source (peut être une URL ou un chemin local)
image_source = 'https://ultralytics.com/images/zidane.jpg'
# Exécution de l'inférence sur l'image
detection_results = detector(image_source)
# Affichage des résultats de la détection (boîtes englobantes, labels, scores)
detection_results.show()
Cas d'application et bonnes pratiques
Détection d'objets
YOLOv5 excelle dans la détection d'objets, trouvant des applications dans des domaines tels que les véhicules autonomes, la surveillance de sécurité et l'inspection industrielle. Pour exécuter la détection en temps réel à partir d'une webcam, utilisez la commande suivante :
python detect.py --source 0
Segmentation d'instances
Le modèle supporte également la segmentation d'instences, utile pour des tâches comme l'analyse d'images médicales ou la détection dans l'agriculture. Pour effectuer une segmentation, vous pouvez utiliser :
python segment/predict.py --weights yolov5s-seg.pt --source data/images/bus.jpg
Classification d'images
YOLOv5 peut être appliqué à la classification d'images, par exemple pour la reconnaissance d'images ou l'analyse de sentiments. Un exemple de script de classification est :
python classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg
Projets de l'écosystème
Roboflow
Roboflow est une plateforme spécialisée dans l'annotation de données et la gestion de datasets. Elle s'intègre facilement avec YOLOv5, facilitant la création et l'entraînement de modèles personnalisés.
ClearML
ClearML est un outil open-source pour la gestion d'expériences d'apprentissage automatique. Il permet de suivre et d'enregistrer les processus d'entraînement et d'inférence de YOLOv5.
Comet
Comet est une plateforme de visualisation dédiée à l'entraînement et au déploiement de modèles d'apprentissage automatique. Elle offre des fonctionnalités de suivi d'expériences et de gestion de modèles pour YOLOv5.
L'intégration avec ces outils de l'écosystème permet aux utilisateurs de YOLOv5 d'optimiser leurs flux de travail pour l'entraînement, la validation et le déploiement de modèles, améliorant ainsi la valeur applicative de leurs projets.