Présentation de la segmentation d’instances dans Ultralytics YOLOv5 v7.0
Découvre YOLOv5 v7.0 et ses nouveaux modèles de segmentation d’instances, qui dépassent les benchmarks SOTA en matière de précision et de vitesse pour l’AI. Rejoins notre communauté.

YOLOv5 v7.0, la dernière version de notre architecture d’IA, est disponible, et nous sommes ravis de présenter nos nouveaux modèles de segmentation d’instances !

Pendant le développement de cette dernière version, nous avons gardé deux objectifs au premier plan. Le premier était notre mission de rendre l’IA accessible, et le second était notre objectif de redéfinir ce que signifie réellement « état de l’art ».
Ainsi, grâce à des améliorations, des corrections et des mises à niveau importantes, nous y sommes parvenus. En conservant les mêmes workflows simples que ceux de nos modèles de détection d’objets Ultralytics YOLOv5 existants, il est désormais plus facile que jamais d’entraîner, de valider et de déployer tes modèles avec YOLOv5 v7.0. De plus, nous avons dépassé tous les benchmarks SOTA, faisant effectivement de YOLOv5 le modèle le plus rapide et le plus précis au monde.
Comme il s’agit de notre première version de modèles de segmentation, nous sommes extrêmement fiers de cette étape. Nous devons beaucoup à notre communauté engagée et à nos contributeurs, qui ont contribué à rendre cette version possible.

Alors, commençons avec les notes de version de YOLOv5 v7.0 !
Mises à jour importantes d’Ultralytics YOLOv5#
Voici ce qui a été mis à jour dans YOLOv5 depuis notre dernière version, YOLOv5 v6.2, publiée en août 2022.
- Modèles de segmentation ⭐ NOUVEAU : les modèles de segmentation SOTA YOLOv5-seg préentraînés sur COCO sont désormais disponibles pour la première fois (#9052 par @glenn-jocher, @AyushExel et @Laughing-q)
- Export PaddlePaddle : exporte n’importe quel modèle YOLOv5 (cls, seg, det) au format Paddle avec python export.py --include paddle #9459 par @glenn-jocher)
- AutoCache de YOLOv5 : l’utilisation de python train.py --cache ram analyse désormais la mémoire disponible et la compare à l’utilisation prévue de la RAM par le jeu de données. Cela réduit les risques liés à la mise en cache et devrait favoriser l’adoption de la fonctionnalité de mise en cache des jeux de données, qui peut accélérer considérablement l’entraînement. (#10027 par @glenn-jocher)
- Intégration de la journalisation et de la visualisation avec Comet : gratuit pour toujours, Comet te permet d’enregistrer des modèles YOLOv5, de reprendre l’entraînement et de visualiser et déboguer les prédictions de manière interactive. (#9232 par @DN6)
Nouveaux checkpoints de segmentation#
Nous avons entraîné les modèles de segmentation Ultralytics YOLOv5 sur COCO pendant 300 époques, avec une taille d’image de 640, en utilisant des GPU A100. Nous avons exporté tous les modèles vers ONNX FP32 pour les tests de vitesse sur CPU et vers TensorRT FP16 pour les tests de vitesse sur GPU. Nous avons effectué tous les tests de vitesse dans des notebooks Google Colab Pro afin de faciliter la reproductibilité.
- Tous les checkpoints sont entraînés pendant 300 époques avec l’optimiseur SGD, avec lr0=0.01 et weight_decay=5e-5, à une taille d’image de 640 et avec tous les paramètres par défaut. Toutes les exécutions sont consignées dans les journaux d’entraînement Weights & Biases.
- Les valeurs de précision correspondent à un modèle unique et une seule échelle sur le jeu de données COCO. Reproduis les résultats avec python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
- La vitesse est calculée sur la moyenne de 100 images d’inférence avec une instance Colab Pro A100 High-RAM. Les valeurs indiquent uniquement la vitesse d’inférence (NMS ajoute environ 1 ms par image). Reproduis les résultats avec python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- L’export vers ONNX en FP32 et vers TensorRT en FP16 a été effectué avec export.py. Reproduis les résultats avec python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
Nouveaux exemples d’utilisation de la segmentation#
Entraîner#
L’entraînement de segmentation avec Ultralytics YOLOv5 prend en charge le téléchargement automatique du jeu de données de segmentation COCO128-seg avec l’argument --data coco128-seg.yaml, ainsi que le téléchargement manuel du jeu de données COCO-segments avec bash data/scripts/get_coco.sh --train --val --segments, puis python train.py --data coco.yaml.
Un seul GPU#
python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640
DDP multi-GPU#
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3
Validation#
Valide la précision de YOLOv5m-seg sur le jeu de données COCO :
bash data/scripts/get_coco.sh --val --segments # télécharge le sous-ensemble de validation COCO avec segmentation (780 Mo, 5000 images) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # valide
Prédire#
Utilise YOLOv5m-seg préentraîné pour effectuer une prédiction sur bus.jpg :
python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg
model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt') # charge depuis PyTorch Hub (AVERTISSEMENT : l’inférence n’est pas encore prise en charge)

Exporter#
Exporte le modèle YOLOv5s-seg vers ONNX et TensorRT :
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

Tu as des questions ? Pose-les sur le forum Ultralytics, signale un problème ou soumets une PR sur le dépôt. Tu peux également commencer avec notre notebook Colab de segmentation YOLOv5 pour suivre des tutoriels de démarrage rapide.









