Einführung der Instanzsegmentierung in Ultralytics YOLOv5 v7.0

Ultralytics-Team

3 Minuten lesen

23. November 2022

Entdecken Sie YOLOv5 v7.0 mit neuen Instanzsegmentierungsmodellen, die die SOTA-Benchmarks für höchste KI-Genauigkeit und Geschwindigkeit übertreffen. Werden Sie Mitglied unserer Community.

YOLOv5 v7.0, die neueste Version unserer KI-Architektur, ist da, und wir freuen uns, unsere neuen Instanzsegmentierungsmodelle vorzustellen!

Bei der Arbeit an dieser neuesten Version haben wir uns zwei Ziele gesetzt. Das erste war unsere Mission, KI einfach zu machen, und das zweite war unser Ziel, neu zu definieren, was "state-of-the-art" wirklich bedeutet.

Mit signifikanten Verbesserungen, Korrekturen und Upgrades haben wir genau das getan. Unter Beibehaltung der gleichen einfachen Arbeitsabläufe wie bei unseren bestehenden YOLOv5-Objekterkennungsmodellen ist es jetzt einfacher denn je, Ihre Modelle mit YOLOv5 v7.0 zu trainieren, zu validieren und einzusetzen. Darüber hinaus haben wir alle SOTA-Benchmarks übertroffen, was YOLOv5 zum schnellsten und genauesten Modell der Welt macht.

Da dies unsere erste Veröffentlichung von Segmentierungsmodellen ist, sind wir ungemein stolz auf diesen Meilenstein. Wir schulden unserer engagierten Community und unseren Mitwirkenden, die diese Veröffentlichung möglich gemacht haben, großen Dank.  

Ultralytics YOLOv5 v7.0 SOTA Echtzeit-Segmentierung von Instanzen

Fangen wir also mit den YOLOv5 v7.0 Release Notes an!

Wichtige YOLOv5 Updates

Hier ist, was in YOLOv5 seit unserer letzten Veröffentlichung von YOLOv5 v6.2 im August 2022 aktualisiert wurde.

  • Segmentierungsmodelle ⭐ NEU: SOTA YOLOv5-seg COCO-pretrained Segmentierungsmodelle sind jetzt erstmals verfügbar(#9052 by @glenn-jocher, @AyushExel, and @Laughing-q)
  • PaddlePaddle Export: Exportiere jedes YOLOv5-Modell (cls, seg, det) in das Paddle-Format mit python export.py --include paddle #9459 von @glenn-jocher)
  • YOLOv5 AutoCache: Mit python train.py --cache ram wird nun der verfügbare Speicher gescannt und mit der vorhergesagten RAM-Nutzung des Datensatzes verglichen. Dies reduziert das Risiko beim Zwischenspeichern und sollte dazu beitragen, die Akzeptanz der Datensatz-Zwischenspeicherfunktion zu verbessern, die das Training erheblich beschleunigen kann.(#10027 von @glenn-jocher)
  • Comet Logging und Visualisierung Integration: Mit Comet, das für immer kostenlos ist, können Sie YOLOv5-Modelle speichern, das Training fortsetzen und Vorhersagen interaktiv visualisieren und debuggen.(#9232 by @DN6)

Neue Segmentierungsprüfpunkte

Wir trainierten YOLOv5-Segmentierungsmodelle auf COCO für 300 Epochen bei einer Bildgröße von 640 mit A100-GPUs. Wir haben alle Modelle in ONNX FP32 für CPU-Geschwindigkeitstests und in TensorRT FP16 für GPU-Geschwindigkeitstests exportiert. Wir führten alle Geschwindigkeitstests auf Google Colab Pro Notebooks durch, um die Reproduzierbarkeit zu gewährleisten.

  • Alle Checkpoints werden auf 300 Epochen mit dem SGD-Optimierer mit lr0=0.01 und weight_decay=5e-5 bei Bildgröße 640 und allen Standardeinstellungen trainiert. Alle Läufe werden hier protokolliert.
  • Die Genauigkeitswerte gelten für ein einziges Modell mit einer einzigen Skala für den COCO-Datensatz. Reproduzieren mit python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
  • Geschwindigkeit gemittelt über 100 Inferenzbilder mit einer Colab Pro A100 High-RAM-Instanz. Die Werte geben nur die Inferenzgeschwindigkeit an (NMS fügt etwa 1 ms pro Bild hinzu). Reproduzieren mit python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
  • Der Export nach ONNX bei FP32 und TensorRT bei FP16 erfolgt mit export.py. Reproduzieren mit python export.py --weights yolov5s-seg.pt --include engine --device 0 --half

Beispiele für die Verwendung der neuen Segmentierung

Zug

Das YOLOv5-Segmentierungstraining unterstützt den automatischen Download des COCO128-seg-Segmentierungsdatensatzes mit dem Argument --data coco128-seg.yaml und den manuellen Download des COCO-segments-Datensatzes mit der Bash data/scripts/get_coco.sh --train --val --segments und dann python train.py --data coco.yaml.

Einzel-GPU

python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640

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

Val

Validierung der Genauigkeit von YOLOv5m-seg auf dem ImageNet-1k-Datensatz:

bash data/scripts/get_coco.sh --val --segments # COCO val Segmente herunterladen (780MB, 5000 Bilder) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validieren

Vorhersage

Verwenden Sie YOLOv5m-seg, um bus.jpg vorherzusagen:

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)

Ultralytics YOLOv5 v7.0 Segmentierung von Instanzen


Exportieren

Exportieren Sie das YOLOv5s-seg Modell nach ONNX und TensorRT:

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

Ultralytics YOLOv5 v7.0 Segmentierung von Instanzen

Haben Sie noch Fragen? Fragen Sie im Ultralytics-Forum, melden Sie ein Problem, oder reichen Sie einen PR im Repo ein. Sie können auch mit unserem YOLOv5 Segmentierung Colab Notebook für Schnellstart-Tutorials beginnen.

Lassen Sie uns gemeinsam die Zukunft
der KI gestalten!

Beginnen Sie Ihre Reise in die Zukunft des maschinellen Lernens

Kostenloser Start
Link in die Zwischenablage kopiert