Introduction à la segmentation d'instance dans Ultralytics YOLOv5 v7.0
Découvre YOLOv5 v7.0 avec de nouveaux modèles de segmentation d'instance, surpassant les benchmarks SOTA pour une précision et une vitesse d'IA optimales. Rejoins notre communauté.

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

En travaillant sur cette dernière version, nous avons gardé deux objectifs au cœur de nos priorités. Le premier était notre mission de rendre l'IA accessible, et le second était notre objectif de redéfinir ce que « state-of-the-art » signifie vraiment.
Grâce à des améliorations, des correctifs et des mises à niveau significatifs, c'est exactement ce que nous avons fait. En conservant les mêmes workflows simples que nos modèles de détection d'objets YOLOv5 existants, il est maintenant plus facile que jamais d'entraîner, de valider et de déployer tes modèles avec YOLOv5 v7.0. De plus, nous avons surpassé tous les SOTA benchmarks, faisant ainsi de YOLOv5 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é dévouée et à nos contributeurs, qui ont contribué à rendre cette version possible.

Alors, commençons avec les notes de version de YOLOv5 v7.0 !
Link to this sectionMises à jour importantes de YOLOv5#
Voici ce qui a été mis à jour dans YOLOv5 depuis notre dernière version de YOLOv5 v6.2 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)
- Exportation 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 : L'utilisation de python train.py --cache ram va désormais scanner la mémoire disponible et comparer avec l'utilisation RAM prédite du dataset. Cela réduit les risques liés à la mise en cache et devrait aider à améliorer l'adoption de la fonctionnalité de mise en cache des datasets, ce qui peut accélérer considérablement l'entraînement. (#10027 par @glenn-jocher)
- Intégration de la journalisation et de la visualisation Comet : Gratuit pour toujours, Comet te permet de sauvegarder tes modèles YOLOv5, de reprendre l'entraînement, et de visualiser et déboguer tes prédictions de manière interactive. (#9232 par @DN6)
Link to this sectionNouveaux points de contrôle (checkpoints) de segmentation#
Nous avons entraîné les modèles de segmentation YOLOv5 sur COCO pendant 300 époques à une taille d'image de 640 en utilisant des GPU A100. Nous avons exporté tous les modèles en ONNX FP32 pour les tests de vitesse CPU et en TensorRT FP16 pour les tests de vitesse GPU. Nous avons effectué tous les tests de vitesse sur des notebooks Google Colab Pro pour une reproductibilité facile.
- Tous les points de contrôle sont entraînés sur 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 Weights & Biases training logs.
- Les valeurs de précision sont pour un modèle unique à échelle unique sur le dataset COCO. Reproduis avec python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
- Vitesse moyenne sur 100 images d'inférence en utilisant une instance Colab Pro A100 High-RAM. Les valeurs indiquent uniquement la vitesse d'inférence (NMS ajoute environ 1ms par image). Reproduis avec python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- Exportation vers ONNX en FP32 et TensorRT en FP16 effectuée avec export.py. Reproduis avec python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
Link to this sectionNouveaux exemples d'utilisation de la segmentation#
Link to this sectionEntraîner#
L'entraînement à la segmentation YOLOv5 prend en charge le téléchargement automatique du dataset de segmentation COCO128-seg avec l'argument --data coco128-seg.yaml et le téléchargement manuel du dataset COCO-segments avec bash data/scripts/get_coco.sh --train --val --segments puis python train.py --data coco.yaml.
Link to this sectionGPU unique#
python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640
Link to this sectionMulti-GPU DDP#
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
Link to this sectionVal#
Valide la précision de YOLOv5m-seg sur le dataset COCO :
bash data/scripts/get_coco.sh --val --segments # télécharger la séparation des segments de validation COCO (780 Mo, 5000 images) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # valider
Link to this sectionPrédire#
Utilise YOLOv5m-seg pré-entraîné pour prédire 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 (ATTENTION : l'inférence n'est pas encore prise en charge)

Link to this sectionExporter#
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 ? Demande sur le forum Ultralytics, ouvre un ticket, ou soumets une PR sur le dépôt. Tu peux aussi commencer avec notre notebook Colab de segmentation YOLOv5 pour des tutoriels de démarrage rapide.






