YOLOv5 dans PyTorch : détection, segmentation et classification
YOLOv5 d'Ultralytics basé sur PyTorch pour la détection d'objets, la segmentation d'instances et la classification, avec entraînement et export vers ONNX, TensorRT, TFLite et CoreML.
En bref
- De quoi s’agit-il ?
- Un aperçu technique du dépôt ultralytics/yolov5 : installation, entraînement, modèles pré-entraînés et licence.
- À qui s’adresse-t-il ?
- Le dépôt fournit un flux de travail complet pour l'entraînement et le déploiement de modèles YOLOv5 pour la détection, la segmentation et la classification, avec des commandes documentées et des tableaux de performance. Le README est la seule source des affirmations sur la vitesse et la précision ; il ne discute ni de la sécurité ni de la garantie.
- Puis-je l’utiliser commercialement ?
- Oui, sous conditions strictes. AGPL-3.0 est une licence à copyleft réseau : si des personnes utilisent une version modifiée via un réseau, par exemple comme service hébergé, vous devez leur proposer son code source sous la même licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 1 jour.
- En quel langage est-il écrit ?
- Principalement Python, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Le périmètre de YOLOv5 : détection, segmentation, classification
Ultralytics YOLOv5 est un modèle de vision par ordinateur implémenté dans PyTorch. Selon la description du dépôt, il prend en charge la détection d'objets, la segmentation d'instances et la classification d'images. Le README indique qu'il est rapide, précis et facile à utiliser, et qu'il intègre des informations issues de la recherche et du développement. Le dépôt renvoie également à une documentation pour l'entraînement, les tests et le déploiement, ainsi qu'à un package séparé pour les derniers modèles Ultralytics YOLO, qui incluent des tâches supplémentaires telles que l'estimation de pose et la détection d'objets orientés. YOLOv5 lui-même, comme décrit ici, couvre les trois tâches mentionnées ci-dessus.
Installation et chemins d'inférence
Le README fournit deux façons d'exécuter l'inférence. La première est via un script appelé detect.py, qui accepte des sources comme une webcam, des fichiers image, des fichiers vidéo, une capture d'écran, des répertoires, des listes de texte, des motifs glob, des URL YouTube et des flux RTSP/RTMP/HTTP. La seconde est via PyTorch Hub, où un modèle peut être chargé avec torch.hub.load puis appelé sur une image, avec des options pour imprimer, afficher, enregistrer, recadrer ou renvoyer les résultats sous forme d'objet pandas. Avant cela, le dépôt est cloné et les dépendances sont installées avec pip install -r requirements.txt. Le README spécifie Python 3.8.0 ou supérieur et PyTorch 1.8 ou supérieur, mais ne donne pas les commandes d'installation pour PyTorch lui-même ; celles-ci sont liées en externe.
Entraînement et reproduction
Pour l'entraînement, le README donne des commandes pour entraîner YOLOv5n, s, m, l et x sur COCO pendant 300 époques avec des tailles de lot spécifiques. Il note que les modèles et les ensembles de données sont téléchargés automatiquement depuis la dernière version. Les temps d'entraînement sont d'environ 1, 2, 4, 6 et 8 jours sur un seul GPU NVIDIA V100 pour les cinq tailles de modèle. Le README recommande d'utiliser la plus grande taille de lot que le matériel permet, et mentionne une fonction AutoBatch invoquée avec --batch-size -1. L'entraînement multi-GPU est couvert dans un tutoriel lié. Le README fournit également une commande pour reproduire les résultats de validation avec val.py, mais ne fait aucune garantie sur les résultats d'entraînement au-delà des temps rapportés.
Points de contrôle pré-entraînés et performance mesurée
Le dépôt comprend des tableaux de points de contrôle pré-entraînés pour la détection, la segmentation et la classification. Pour la détection, les modèles entraînés sur COCO à 640 pixels sont répertoriés avec les valeurs mAP, les vitesses CPU et V100, les nombres de paramètres et les FLOPs. Un deuxième ensemble de modèles utilise 1280 pixels. Le README note que les liens 640 pixels pointent vers des modèles successeurs YOLOv5u sans ancrage sur la plateforme Ultralytics, tandis que les liens 1280 pixels téléchargent directement les points de contrôle hérités. Les métriques de vitesse sont moyennées sur des images de validation COCO sur une instance AWS p3.2xlarge V100, et le temps de suppression non maximale n'est pas inclus. Ces détails sont fournis pour que les nombres puissent être reproduits avec les commandes val.py fournies.
Modèles de segmentation et de classification
Le support de la segmentation a été introduit dans la version v7.0, et la classification dans la version v6.2, selon le README. Les modèles de segmentation sont entraînés sur COCO à 640 pixels pendant 300 époques, et les modèles de classification sur ImageNet à 224 pixels pendant 90 époques. Le README fournit des exemples d'utilisation pour chacun, y compris l'entraînement, la validation, la prédiction et l'exportation vers ONNX et TensorRT. Pour la segmentation, un répertoire segment séparé contient train.py, val.py et predict.py. Pour la classification, un répertoire classify est utilisé. Le README liste également des modèles de comparaison tels que ResNet et EfficientNet pour la classification.
Intégrations, environnements et licence
Le README liste les intégrations avec des plateformes telles que Weights & Biases, Comet ML, Roboflow et Intel OpenVINO, et renvoie à une page d'intégrations dédiée. Il montre également des environnements préconfigurés pour Paperspace Gradient, Google Colab, Kaggle, Docker, AWS et GCP. La section licence explique qu'Ultralytics propose deux options : la licence open source AGPL-3.0, décrite comme adaptée à la recherche académique et aux projets personnels, et une licence Enterprise pour les applications commerciales. L'extrait de licence indique que l'AGPL-3.0 est une licence copyleft qui exige que les opérateurs de serveurs réseau fournissent le code source des versions modifiées aux utilisateurs. Le README ne mentionne aucune garantie ni sécurité.
Conclusion éditoriale
Le dépôt fournit un flux de travail complet pour l'entraînement et le déploiement de modèles YOLOv5 pour la détection, la segmentation et la classification, avec des commandes documentées et des tableaux de performance. Le README est la seule source des affirmations sur la vitesse et la précision ; il ne discute ni de la sécurité ni de la garantie. Pour une décision propre à yolov5, commencez par le chemin documenté avec python detect.py, observez l'entrée et la sortie produites, puis vérifiez la licence AGPL-3.0 avant toute redistribution ou intégration.
Notes de la communauté