Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant

Présentation de la segmentation d'instance dans Ultralytics YOLOv5 v7.0

Équipe Ultralytics

3 min de lecture

23 novembre 2022

Découvrez 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. Rejoignez notre communauté.

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

Tout en travaillant sur cette dernière version, nous avons gardé deux objectifs au premier plan. Le premier était notre mission de rendre l'IA facile, et le second était notre objectif de redéfinir ce que signifie réellement « l'état de l'art ».

Ainsi, avec des améliorations, des corrections et des mises à niveau significatives, nous avons fait exactement cela. En conservant les mêmes flux de travail 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 vos modèles avec YOLOv5 v7.0. De plus, nous avons dépassé tous les benchmarks SOTA, faisant effectivement 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 de nombreux remerciements à notre communauté dévouée et à nos contributeurs, qui ont contribué à rendre cette version possible.  

Segmentation d'instance en temps réel SOTA Ultralytics YOLOv5 v7.0

Alors, commençons avec les notes de version YOLOv5 v7.0 !

Mises à jour importantes de YOLOv5

Voici les mises à jour de YOLOv5 depuis notre dernière version de YOLOv5 v6.2 en août 2022.

  • Nouveaux modèles de segmentation ⭐ : Les modèles de segmentation pré-entraînés SOTA YOLOv5-seg COCO sont maintenant disponibles pour la première fois (#9052 par @glenn-jocher, @AyushExel et @Laughing-q)
  • Exportation PaddlePaddle : Exportez 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 maintenant analyser la mémoire disponible et la comparer à l'utilisation de la RAM de l'ensemble de données prévue. Cela réduit le risque de mise en cache et devrait contribuer à améliorer l'adoption de la fonctionnalité de mise en cache de l'ensemble de données, 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 vous permet d'enregistrer des modèles YOLOv5, de reprendre l'entraînement et de visualiser et de déboguer les prédictions de manière interactive. (#9232 par @DN6)

Nouveaux points de contrôle de segmentation

Nous avons entraîné des modèles de segmentation YOLOv5 sur COCO pendant 300 epochs à 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 CPU et vers TensorRT FP16 pour les tests de vitesse GPU. Nous avons exécuté 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 tous les paramètres par défaut. Toutes les exécutions sont enregistrées ici.
  • Les valeurs de précision sont pour un seul modèle à une seule échelle sur l'ensemble de données COCO. Reproduire par python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
  • Vitesse moyenne calculée sur 100 images d'inférence en utilisant une instance Colab Pro A100 High-RAM. Les valeurs indiquent la vitesse d'inférence uniquement (NMS ajoute environ 1 ms par image). Reproduire 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. Reproduire avec la commande : python export.py --weights yolov5s-seg.pt --include engine --device 0 --half

Nouveaux exemples d'utilisation de la segmentation

Train

L'entraînement à la segmentation YOLOv5 prend en charge le téléchargement automatique de l'ensemble de données de segmentation COCO128-seg avec l'argument --data coco128-seg.yaml et le téléchargement manuel de l'ensemble de données COCO-segments avec bash data/scripts/get_coco.sh --train --val --segments, puis python train.py --data coco.yaml.

Mono-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

Val

Valider la précision de YOLOv5m-seg sur l'ensemble de données ImageNet-1k :

bash data/scripts/get_coco.sh --val --segments  # télécharger la division COCO val segments (780MB, 5000 images) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640  # valider

Prédire

Utilisez 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')  # load from PyTorch Hub (WARNING: inference not yet supported)

Segmentation d'instance Ultralytics YOLOv5 v7.0


Exporter

Exporter le modèle YOLOv5s-seg vers ONNX et TensorRT :

python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

Segmentation d'instance Ultralytics YOLOv5 v7.0

Vous avez des questions ? Posez-les sur le forum Ultralytics, soumettez un problème ou proposez une PR sur le dépôt. Vous pouvez également commencer avec notre notebook Colab de segmentation YOLOv5 pour des tutoriels de démarrage rapide.

Construisons ensemble l'avenir
de l'IA !

Commencez votre parcours avec l'avenir de l'apprentissage automatique

Démarrer gratuitement
Lien copié dans le presse-papiers