Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant

Introduction de la segmentation des instances dans Ultralytics YOLOv5 v7.0

L'équipe Ultralytics

3 min de lecture

23 novembre 2022

Découvrez YOLOv5 v7.0 avec de nouveaux modèles de segmentation d'instances, surpassant les benchmarks SOTA pour une précision et une vitesse d'IA de haut niveau. 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'instances !

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 ».

C'est ce que nous avons fait en apportant des améliorations, des corrections et des mises à jour significatives. 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é toutes les références SOTA, faisant 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.  

Ultralytics YOLOv5 v7.0 SOTA Realtime Instance Segmentation

Commençons donc par les notes de version de YOLOv5 v7.0 !

Mises à 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 COCO sont maintenant disponibles pour la première fois(#9052 par @glenn-jocher, @AyushExel, et @Laughing-q).
  • ExportationPaddlePaddle : Exporter 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 analysera désormais la mémoire disponible et la comparera à l'utilisation prévue de la mémoire vive de l'ensemble de données. Cela réduit le risque de mise en cache et devrait aider à améliorer l'adoption de la fonctionnalité de mise en cache du jeu de données, qui peut accélérer de manière significative la formation.(#10027 par @glenn-jocher)
  • Intégration de l'enregistrement et de la visualisation desComet : Gratuit pour toujours, Comet vous permet de sauvegarder les 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 points de contrôle 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 vers ONNX FP32 pour les tests de vitesse CPU et vers TensorRT FP16 pour les tests de vitesse GPU . Nous avons effectué tous les tests de vitesse sur des ordinateurs portables Google Colab Pro pour faciliter la reproductibilité.

  • Tous les points de contrôle sont entraînés à 300 époques avec l'optimiseur SGD avec lr0=0.01 et weight_decay=5e-5 à la taille d'image 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 le jeu de données COCO . Reproduction par python segment.py --data cocoyaml --weights yolov5s-seg.pt
  • Vitesse moyenne sur 100 images d'inférence en utilisant une instance Colab Pro A100 High-RAM. Les valeurs indiquent la vitesse d'inférence uniquementNMS ajoute environ 1ms par image). Reproduction par python segment.py --data cocoyaml --weights yolov5s-seg.pt --batch 1
  • Exportation vers ONNX en FP32 et TensorRT en FP16 réalisée avec export.py. Reproduction par python export.py --weights yolov5s-seg.pt --include engine --device 0 --half

Nouveaux exemples d'utilisation de la segmentation

Train

La formation à la segmentation de YOLOv5 prend en charge le téléchargement automatique du jeu de données de segmentation COCO128 avec l'argument --data coco128-segyaml et le téléchargement manuel du jeu de données COCO avec bash data/scripts/get_coco.sh --train --val --segments et ensuite python train.py --data cocoyaml.

GPU

python segment.py --model yolov5s-seg.pt --data coco128-segyaml --epochs 5 --img 640

DDP GPU

python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment.py --model yolov5s-seg.pt --data coco128-segyaml --epochs 5 --img 640 --device 0,1,2,3

Val

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

bash data/scripts/get_coco.sh --val --segments # download COCO val segments split (780MB, 5000 images) python segment.py --weights yolov5s-seg.pt --data cocoyaml --img 640 # validate

Prédire

Utilisez YOLOv5m-seg pré-entraîné pour prédire bus.jpg :

python segment.py --weights yolov5m-seg.pt --data data/images/bus.jpg

model = torch.hub.load(ultralyticsyolov5', 'custom', 'yolov5m-seg.pt') # load from PyTorch Hub (WARNING : inference not yet supported)

Ultralytics YOLOv5 v7.0 Segmentation des instances


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

Ultralytics YOLOv5 v7.0 Segmentation des instances

Vous avez des questions ? Interrogez le forumUltralytics , soulevez un problème ou soumettez un PR sur le repo. Vous pouvez également commencer avec notre carnet de notesYOLOv5 Colab sur la segmentation 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