Overslaan naar inhoud

YOLOv10: End-to-end objectdetectie in realtime

YOLOv10, gebouwd op het Ultralytics Python pakket door onderzoekers van de Tsinghua Universiteit, introduceert een nieuwe benadering van realtime objectdetectie, waarbij zowel de tekortkomingen in de nabewerking als de modelarchitectuur van eerdere YOLO versies worden aangepakt. Door het elimineren van niet-maximale onderdrukking (NMS) en het optimaliseren van verschillende modelcomponenten, bereikt YOLOv10 state-of-the-art prestaties met aanzienlijk minder rekenoverhead. Uitgebreide experimenten tonen de superieure afweging tussen nauwkeurigheid en latentie aan op meerdere modelschalen.

YOLOv10 consistente dubbele toewijzing voor NMS-vrije training

Overzicht

Real-time objectdetectie is gericht op het nauwkeurig voorspellen van objectcategorieën en -posities in afbeeldingen met een lage latentie. De YOLO serie heeft voorop gelopen in dit onderzoek vanwege de balans tussen prestaties en efficiëntie. De afhankelijkheid van NMS en architectonische inefficiënties hebben optimale prestaties echter in de weg gestaan. YOLOv10 pakt deze problemen aan door consistente dubbele toewijzingen te introduceren voor NMS-vrije training en een holistische efficiëntie-nauwkeurigheidsgedreven modelontwerpstrategie.

Architectuur

De architectuur van YOLOv10 bouwt voort op de sterke punten van eerdere YOLO modellen en introduceert tegelijkertijd een aantal belangrijke innovaties. De architectuur van het model bestaat uit de volgende componenten:

  1. Ruggengraat: De backbone in YOLOv10, die verantwoordelijk is voor de extractie van eigenschappen, gebruikt een verbeterde versie van CSPNet (Cross Stage Partial Network) om de gradiëntstroom te verbeteren en redundantie in de berekening te verminderen.
  2. Neck: The neck is designed to aggregate features from different scales and passes them to the head. It includes PAN (Path Aggregation Network) layers for effective multi-scale feature fusion.
  3. One-to-Many Head: Genereert meerdere voorspellingen per object tijdens de training om rijke toezichtsignalen te leveren en de leernauwkeurigheid te verbeteren.
  4. One-to-One Head: Genereert een enkele beste voorspelling per object tijdens de inferentie om de noodzaak voor NMS te elimineren, waardoor de latentie wordt verminderd en de efficiëntie wordt verbeterd.

Belangrijkste kenmerken

  1. NMS-vrije training: Maakt gebruik van consistente dubbele toewijzingen om de noodzaak voor NMS te elimineren, waardoor de inferentie latentie wordt verminderd.
  2. Holistisch modelontwerp: Uitgebreide optimalisatie van verschillende componenten vanuit zowel efficiëntie- als nauwkeurigheidsperspectief, waaronder lichtgewicht classificatiekoppen, ruimtelijk-kanaal ontkoppelde downsampling en blokontwerp met rangschikking.
  3. Verbeterde modelmogelijkheden: Bevat grote-kernelconvoluties en gedeeltelijke zelfattentiemodules om de prestaties te verbeteren zonder aanzienlijke rekenkosten.

Modelvarianten

De YOLOv10 is verkrijgbaar in verschillende schalen voor verschillende toepassingen:

  • YOLOv10-N: Nano-versie voor omgevingen met extreem beperkte bronnen.
  • YOLOv10-S: Kleine versie met balans tussen snelheid en nauwkeurigheid.
  • YOLOv10-M: Middelgrote versie voor algemeen gebruik.
  • YOLOv10-B: Gebalanceerde versie met grotere breedte voor hogere nauwkeurigheid.
  • YOLOv10-L: Grote versie voor hogere nauwkeurigheid ten koste van meer rekenkracht.
  • YOLOv10-X: Extra grote versie voor maximale nauwkeurigheid en prestaties.

Prestaties

YOLOv10 presteert beter dan eerdere YOLO versies en andere geavanceerde modellen in termen van nauwkeurigheid en efficiëntie. YOLOv10-S is bijvoorbeeld 1,8x sneller dan RT-DETR-R18 met vergelijkbare AP op de COCO dataset, en YOLOv10-B heeft 46% minder latentie en 25% minder parameters dan YOLOv9-C met dezelfde prestaties.

Model Invoergrootte APval FLOP's (G) Vertraging (ms)
YOLOv10-N 640 38.5 6.7 1.84
YOLOv10-S 640 46.3 21.6 2.49
YOLOv10-M 640 51.1 59.1 4.74
YOLOv10-B 640 52.5 92.0 5.74
YOLOv10-L 640 53.2 120.3 7.28
YOLOv10-X 640 54.4 160.4 10.70

Latency gemeten met TensorRT FP16 op T4 GPU.

Methodologie

Consistente dubbele toewijzingen voor NMS-vrije training

YOLOv10 maakt gebruik van dubbele labeltoewijzingen, waarbij één-op-veel en één-op-één strategieën worden gecombineerd tijdens de training om een uitgebreide supervisie en efficiënte end-to-end inzet te garanderen. De consistente matching metric stemt de supervisie tussen beide strategieën op elkaar af, waardoor de kwaliteit van de voorspellingen tijdens de inferentie wordt verbeterd.

Holistisch, op efficiëntie en nauwkeurigheid gebaseerd modelontwerp

Efficiëntieverbeteringen

  1. Lichtgewicht classificatiekop: Vermindert de computationele overhead van de classificatiekop door gebruik te maken van dieptescheidende convoluties.
  2. Ruimtelijk-kanaal ontkoppelde Down sampling: Ontkoppelt ruimtelijke reductie en kanaalmodulatie om informatieverlies en rekenkosten te minimaliseren.
  3. Ranggestuurd blokontwerp: Past het blokontwerp aan op basis van intrinsieke stage redundantie, zodat parameters optimaal worden gebruikt.

Nauwkeurigheidsverbeteringen

  1. Convolutie met grote kern: Vergroot het receptieve veld om het vermogen om eigenschappen te extraheren te vergroten.
  2. Partial Self-Attention (PSA): Bevat zelf-attentie modules om het leren van de globale representatie te verbeteren met minimale overhead.

Experimenten en resultaten

YOLOv10 is uitgebreid getest op standaard benchmarks zoals COCO en heeft superieure prestaties en efficiëntie laten zien. Het model behaalt state-of-the-art resultaten in verschillende varianten en laat aanzienlijke verbeteringen zien in latentie en nauwkeurigheid in vergelijking met eerdere versies en andere hedendaagse detectoren.

Vergelijkingen

YOLOv10 vergelijking met SOTA object detectors

Vergeleken met andere geavanceerde detectoren:

  • YOLOv10-S / X zijn 1,8× / 1,3× sneller dan RT-DETR-R18 / R101 met vergelijkbare nauwkeurigheid.
  • YOLOv10-B heeft 25% minder parameters en 46% lagere latentie dan YOLOv9-C bij dezelfde nauwkeurigheid
  • YOLOv10-L / X presteert 0,3 AP / 0,5 AP beter dan YOLOv8-L / X met 1,8× / 2,3× minder parameters.

Hier volgt een gedetailleerde vergelijking van de YOLOv10-varianten met andere geavanceerde modellen:

Model Params (M) FLOP's (G) APval (%) Vertraging (ms) Latency (vooruit) (ms)
YOLOv6-3.0-N 4.7 11.4 37.0 2.69 1.76
Goud-YOLO-N 5.6 12.1 39.6 2.92 1.82
YOLOv8-N 3.2 8.7 37.3 6.16 1.77
YOLOv10-N 2.3 6.7 39.5 1.84 1.79
YOLOv6-3.0-S 18.5 45.3 44.3 3.42 2.35
Goud-YOLO-S 21.5 46.0 45.4 3.82 2.73
YOLOv8-S 11.2 28.6 44.9 7.07 2.33
YOLOv10-S 7.2 21.6 46.8 2.49 2.39
RT-DETR-R18 20.0 60.0 46.5 4.58 4.49
YOLOv6-3.0-M 34.9 85.8 49.1 5.63 4.56
Goud-YOLO-M 41.3 87.5 49.8 6.38 5.45
YOLOv8-M 25.9 78.9 50.6 9.50 5.09
YOLOv10-M 15.4 59.1 51.3 4.74 4.63
YOLOv6-3.0-L 59.6 150.7 51.8 9.02 7.90
Goud-YOLO-L 75.1 151.7 51.8 10.65 9.78
YOLOv8-L 43.7 165.2 52.9 12.39 8.06
RT-DETR-R50 42.0 136.0 53.1 9.20 9.07
YOLOv10-L 24.4 120.3 53.4 7.28 7.21
YOLOv8-X 68.2 257.8 53.9 16.86 12.83
RT-DETR-R101 76.0 259.0 54.3 13.71 13.58
YOLOv10-X 29.5 160.4 54.4 10.70 10.60

Voorbeelden

Voor het voorspellen van nieuwe afbeeldingen met YOLOv10:

Voorbeeld

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model("image.jpg")

# Display the results
results[0].show()
# Load a COCO-pretrained YOLOv10n model and run inference on the 'bus.jpg' image
yolo detect predict model=yolov10n.pt source=path/to/bus.jpg

Voor het trainen van YOLOv10 op een aangepaste dataset:

Voorbeeld

from ultralytics import YOLO

# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a YOLOv10n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov10n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv10n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov10n.yaml source=path/to/bus.jpg

Ondersteunde taken en modi

The YOLOv10 models series offers a range of models, each optimized for high-performance Object Detection. These models cater to varying computational needs and accuracy requirements, making them versatile for a wide array of applications.

Model Bestandsnamen Taken Inferentie Validatie Training Exporteer
YOLOv10 yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt Objectdetectie

Exporting YOLOv10

Due to the new operations introduced with YOLOv10, not all export formats provided by Ultralytics are currently supported. The following table outlines which formats have been successfully converted using Ultralytics for YOLOv10. Feel free to open a pull request if you're able to provide a contribution change for adding export support of additional formats for YOLOv10.

Export Format Supported
TorchScript
ONNX
OpenVINO
TensorRT
CoreML
TF SavedModel
TF GraphDef
TF Lite
TF Rand TPU
TF.js
PaddlePaddle
NCNN

Conclusie

YOLOv10 stelt een nieuwe norm in realtime objectdetectie door de tekortkomingen van eerdere YOLO versies aan te pakken en innovatieve ontwerpstrategieën toe te passen. Het vermogen om hoge nauwkeurigheid te leveren tegen lage rekenkosten maakt het een ideale keuze voor een breed scala aan toepassingen in de echte wereld.

Citaten en Erkenningen

We willen de YOLOv10 auteurs van de Tsinghua Universiteit bedanken voor hun uitgebreide onderzoek en belangrijke bijdragen aan het Ultralytics raamwerk:

@article{THU-MIGyolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Ao Wang, Hui Chen, Lihao Liu, et al.},
  journal={arXiv preprint arXiv:2405.14458},
  year={2024},
  institution={Tsinghua University},
  license = {AGPL-3.0}
}

Voor een gedetailleerde implementatie, architectonische innovaties en experimentele resultaten verwijzen we naar het YOLOv10 onderzoeksartikel en de GitHub repository van het Tsinghua University team.



Created 2024-05-25, Updated 2024-06-24
Authors: RizwanMunawar (3), Burhan-Q (1), glenn-jocher (3)

Reacties