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 surpassent les références SOTA en matière de précision et de vitesse de pointe en IA. Rejoins notre communauté.

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

Lors de la préparation de cette dernière version, nous avons gardé deux objectifs en tête. Le premier était notre mission de rendre l’IA facile d’accès, et le second, notre volonté de redéfinir ce que signifie réellement « l’état de l’art ».
Grâce à des améliorations, des correctifs et des mises à niveau importants, nous y sommes parvenus. En conservant les mêmes flux de travail simples que ceux de nos modèles de détection d’objets Ultralytics YOLOv5 existants, il n’a jamais été aussi facile 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 ainsi 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 importante. Nous devons beaucoup à notre communauté engagée et aux contributeurs qui ont contribué à rendre cette version possible.

Alors, commençons par consulter les notes de version de YOLOv5 v7.0 !
Principales mises à jour d’Ultralytics YOLOv5#
Voici les nouveautés de YOLOv5 depuis notre dernière version, YOLOv5 v6.2, sortie en août 2022.
- Modèles de segmentation ⭐ NOUVEAU : les modèles de segmentation YOLOv5-seg SOTA 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)
- YOLOv5 AutoCache : python train.py --cache ram analysera désormais la mémoire disponible et la comparera à l’utilisation de la RAM prévue pour le jeu de données. Cela réduit les risques liés à la mise en cache et devrait favoriser l’adoption de cette fonctionnalité, qui peut considérablement accélérer l’entraînement. (#10027 par @glenn-jocher)
- Intégration de la journalisation et de la visualisation 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 et des GPU A100. Nous avons exporté tous les modèles en ONNX FP32 pour les tests de vitesse sur CPU, et en TensorRT FP16 pour les tests de vitesse sur GPU. Nous avons effectué tous les tests de vitesse sur des notebooks Google Colab Pro afin de faciliter leur reproduction.
- 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 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 à une seule échelle et à un seul modèle sur le jeu de données COCO. Pour reproduire les résultats : python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
- Vitesse moyenne calculée sur 100 images d’inférence à l’aide d’une instance Colab Pro A100 High-RAM. Les valeurs indiquent uniquement la vitesse d’inférence (NMS ajoute environ 1 ms par image). Pour reproduire les résultats : python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- L’export au format ONNX en FP32 et TensorRT en FP16 a été effectué avec export.py. Pour reproduire les résultats : python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
Nouveaux exemples d’utilisation de la segmentation#
Entraînement#
L’entraînement de segmentation 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#
Valider la précision de YOLOv5m-seg sur le jeu de données COCO :
bash data/scripts/get_coco.sh --val --segments # télécharger la partition val des segments COCO (780MB, 5000 images) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # valider
Prédiction#
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') # charger depuis PyTorch Hub (AVERTISSEMENT : l’inférence n’est pas encore prise en charge)

Exportation#
Exporter 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 soumet une PR dans le dépôt. Tu peux aussi commencer avec notre notebook Colab de segmentation YOLOv5 pour suivre des tutoriels de prise en main.










