Modelvalidatie met Ultralytics YOLO
Inleiding
Validatie is een kritieke stap in de machine learning pijplijn, waarmee je de kwaliteit van je getrainde modellen kunt beoordelen. De modus Val in Ultralytics YOLOv8 biedt een robuuste reeks hulpmiddelen en statistieken voor het evalueren van de prestaties van je objectdetectiemodellen. Deze gids is een compleet hulpmiddel om te begrijpen hoe je de modus Val effectief kunt gebruiken om ervoor te zorgen dat je modellen zowel nauwkeurig als betrouwbaar zijn.
Kijken: Ultralytics Lesmodi: Validatie
Waarom valideren met Ultralytics YOLO ?
Dit is waarom het gebruik van YOLOv8's Val modus voordelig is:
- Precisie: Krijg nauwkeurige meetgegevens zoals mAP50, mAP75 en mAP50-95 om je model uitgebreid te evalueren.
- Gemak: Maak gebruik van ingebouwde functies die trainingsinstellingen onthouden, wat het validatieproces vereenvoudigt.
- Flexibiliteit: Valideer je model met dezelfde of verschillende datasets en afbeeldingsformaten.
- Hyperparameter afstellen: Gebruik validatiemetrieken om je model te verfijnen voor betere prestaties.
Belangrijkste kenmerken van de modus Val
Dit zijn de opvallende functionaliteiten die worden aangeboden door YOLOv8's Val modus:
- Geautomatiseerde instellingen: Modellen onthouden hun trainingsconfiguraties voor eenvoudige validatie.
- Ondersteuning voor meerdere meetmethoden: Evalueer je model op basis van een reeks nauwkeurigheidsmetingen.
- CLI en Python API: Kies uit de opdrachtregelinterface of Python API op basis van je voorkeur voor validatie.
- Compatibiliteit gegevens: Werkt naadloos met datasets die tijdens de trainingsfase zijn gebruikt en met aangepaste datasets.
Tip
- YOLOv8 modellen onthouden automatisch hun trainingsinstellingen, zodat je een model op dezelfde afbeeldingsgrootte en op de oorspronkelijke dataset eenvoudig kunt valideren met slechts
yolo val model=yolov8n.pt
ofmodel('yolov8n.pt').val()
Voorbeelden
Valideer de nauwkeurigheid van het getrainde YOLOv8n model op de COCO8 dataset. Er hoeven geen argumenten te worden doorgegeven als de model
behoudt zijn training data
en argumenten als modelattributen. Zie het gedeelte Argumenten hieronder voor een volledige lijst van exportargumenten.
Voorbeeld
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n.pt') # load an official model
model = YOLO('path/to/best.pt') # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category
Argumenten voor YOLO Modelvalidatie
Bij het valideren van YOLO modellen kunnen verschillende argumenten worden ingesteld om het evaluatieproces te optimaliseren. Deze argumenten bepalen aspecten zoals de grootte van de invoerafbeelding, batchverwerking en prestatiedrempels. Hieronder staat een gedetailleerd overzicht van elk argument om je te helpen je validatie-instellingen effectief aan te passen.
Argument | Type | Standaard | Beschrijving |
---|---|---|---|
data |
str |
None |
Geeft het pad op naar het configuratiebestand van de dataset (bijv, coco8.yaml ). Dit bestand bevat paden naar validatiegegevens, namen van klassen en het aantal klassen. |
imgsz |
int |
640 |
Bepaalt de grootte van invoerafbeeldingen. Alle afbeeldingen worden verkleind tot deze afmeting voordat ze worden verwerkt. |
batch |
int |
16 |
Stelt het aantal afbeeldingen per batch in. Gebruik -1 voor AutoBatch, die zich automatisch aanpast op basis van de beschikbaarheid van GPU-geheugen. |
save_json |
bool |
False |
Als True slaat de resultaten op in een JSON-bestand voor verdere analyse of integratie met andere tools. |
save_hybrid |
bool |
False |
Als True slaat een hybride versie van labels op die originele annotaties combineert met extra modelvoorspellingen. |
conf |
float |
0.001 |
Stelt de minimale betrouwbaarheidsdrempel voor detecties in. Detecties met een betrouwbaarheid onder deze drempel worden genegeerd. |
iou |
float |
0.6 |
Stelt de drempelwaarde voor Intersection Over Union (IoU) in voor Non-Maximum Suppression (NMS). Helpt bij het verminderen van dubbele detecties. |
max_det |
int |
300 |
Beperkt het maximum aantal detecties per afbeelding. Nuttig in dichte scènes om overmatige detecties te voorkomen. |
half |
bool |
True |
Maakt half-precisie (FP16) berekeningen mogelijk, waardoor minder geheugen wordt gebruikt en de snelheid mogelijk toeneemt met minimale invloed op de nauwkeurigheid. |
device |
str |
None |
Specificeert het apparaat voor validatie (cpu , cuda:0 enz.). Biedt flexibiliteit in het gebruik van CPU- of GPU-bronnen. |
dnn |
bool |
False |
Als True maakt gebruik van de OpenCV DNN module voor ONNX modelinferentie en biedt daarmee een alternatief voor PyTorch inferentiemethoden. |
plots |
bool |
False |
Wanneer ingesteld op True genereert en bewaart plots van voorspellingen versus de grondwaarheid voor visuele evaluatie van de prestaties van het model. |
rect |
bool |
False |
Als True maakt gebruik van rechthoekige inferentie voor batching, waardoor opvulling wordt verminderd en de snelheid en efficiëntie mogelijk worden verhoogd. |
split |
str |
val |
Bepaalt de datasetsplitsing om te gebruiken voor validatie (val , test of train ). Biedt flexibiliteit bij het kiezen van het gegevenssegment voor prestatie-evaluatie. |
Elk van deze instellingen speelt een belangrijke rol in het validatieproces, waardoor een aanpasbare en efficiënte evaluatie van YOLO modellen mogelijk is. Door deze parameters aan te passen aan je specifieke behoeften en middelen kun je de beste balans bereiken tussen nauwkeurigheid en prestaties.
Voorbeeld validatie met argumenten
De onderstaande voorbeelden tonen YOLO modelvalidatie met aangepaste argumenten in Python en CLI.
Voorbeeld
Aangemaakt 2023-11-12, Bijgewerkt 2024-04-18
Auteurs: glenn-jocher (9), Burhan-Q (1), RizwanMunawar (1)