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.
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:
- 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.
- 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.
- One-to-Many Head: Genereert meerdere voorspellingen per object tijdens de training om rijke toezichtsignalen te leveren en de leernauwkeurigheid te verbeteren.
- 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
- NMS-vrije training: Maakt gebruik van consistente dubbele toewijzingen om de noodzaak voor NMS te elimineren, waardoor de inferentie latentie wordt verminderd.
- Holistisch modelontwerp: Uitgebreide optimalisatie van verschillende componenten vanuit zowel efficiëntie- als nauwkeurigheidsperspectief, waaronder lichtgewicht classificatiekoppen, ruimtelijk-kanaal ontkoppelde downsampling en blokontwerp met rangschikking.
- 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
- Lichtgewicht classificatiekop: Vermindert de computationele overhead van de classificatiekop door gebruik te maken van dieptescheidende convoluties.
- Ruimtelijk-kanaal ontkoppelde Down sampling: Ontkoppelt ruimtelijke reductie en kanaalmodulatie om informatieverlies en rekenkosten te minimaliseren.
- Ranggestuurd blokontwerp: Past het blokontwerp aan op basis van intrinsieke stage redundantie, zodat parameters optimaal worden gebruikt.
Nauwkeurigheidsverbeteringen
- Convolutie met grote kern: Vergroot het receptieve veld om het vermogen om eigenschappen te extraheren te vergroten.
- 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
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
Voor het trainen van YOLOv10 op een aangepaste dataset:
Voorbeeld
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:
Voor een gedetailleerde implementatie, architectonische innovaties en experimentele resultaten verwijzen we naar het YOLOv10 onderzoeksartikel en de GitHub repository van het Tsinghua University team.