Overslaan naar inhoud

Inzichten over modelevaluatie en fine-tuning

Inleiding

Als je eenmaal je computervisiemodel hebt getraind, is het essentieel om het te evalueren en te verfijnen zodat het optimaal presteert. Alleen je model trainen is niet genoeg. Je moet ervoor zorgen dat je model nauwkeurig en efficiƫnt is en voldoet aan de doelstelling van je computervisieproject. Door je model te evalueren en te verfijnen, kun je zwakke punten identificeren, de nauwkeurigheid verbeteren en de algehele prestaties verbeteren.

In deze gids delen we inzichten over modelevaluatie en fine-tuning die deze stap van een computervisieproject toegankelijker maken. We bespreken hoe je evaluatiemetrieken kunt begrijpen en finetuningtechnieken kunt toepassen, zodat je de kennis krijgt om de capaciteiten van je model te verbeteren.

Modelprestaties evalueren met behulp van metrische gegevens

Door te evalueren hoe goed een model presteert, begrijpen we hoe effectief het werkt. Er worden verschillende meetmethoden gebruikt om de prestaties te meten. Deze prestatiecijfers geven duidelijke, numerieke inzichten die verbeteringen kunnen sturen om ervoor te zorgen dat het model de beoogde doelen haalt. Laten we een paar belangrijke meetgegevens eens nader bekijken.

Betrouwbaarheidsscore

De betrouwbaarheidsscore vertegenwoordigt de zekerheid van het model dat een gedetecteerd object tot een bepaalde klasse behoort. Het varieert van 0 tot 1, waarbij hogere scores duiden op meer vertrouwen. De betrouwbaarheidsscore helpt bij het filteren van voorspellingen; Alleen detecties met betrouwbaarheidsscores boven een opgegeven drempelwaarde worden als geldig beschouwd.

Snelle tip: Als je bij het uitvoeren van inferenties geen voorspellingen ziet en je hebt al het andere gecontroleerd, probeer dan de betrouwbaarheidsscore te verlagen. Soms is de drempel te hoog, waardoor het model geldige voorspellingen negeert. Door de score te verlagen kan het model meer mogelijkheden overwegen. Dit voldoet misschien niet aan je projectdoelen, maar het is een goede manier om te zien wat het model kan en om te beslissen hoe je het verder kunt verfijnen.

Kruispunt over Unie

Intersection over Union (IoU) is een metriek in objectdetectie die meet hoe goed het voorspelde begrenzingsvak overlapt met het grondwaarheidsbegrenzingsvak. IoU-waarden variƫren van 0 tot 1, waarbij ƩƩn staat voor een perfecte match. IoU is essentieel omdat het meet hoe nauw de voorspelde grenzen overeenkomen met de werkelijke objectgrenzen.

Kruising over Union Overzicht

Gemiddelde gemiddelde precisie

Mean Average Precision (mAP) is een manier om te meten hoe goed een objectdetectiemodel presteert. Er wordt gekeken naar de precisie van het detecteren van elke objectklasse, het gemiddelde van deze scores en het geven van een totaalgetal dat laat zien hoe nauwkeurig het model objecten kan identificeren en classificeren.

Laten we ons concentreren op twee specifieke mAP-statistieken:

  • mAP@.5: Meet de gemiddelde nauwkeurigheid bij een enkele IoU (Intersection over Union) drempelwaarde van 0,5. Deze metriek controleert of het model objecten correct kan vinden met een lossere nauwkeurigheidseis. Het richt zich op de vraag of het object ruwweg op de juiste plaats staat, niet of het perfect geplaatst hoeft te zijn. Het helpt om te zien of het model over het algemeen goed is in het vinden van objecten.
  • mAP@.5:.95: Berekent het gemiddelde van de mAP-waarden bij meerdere IoU-drempels, van 0,5 tot 0,95 in stappen van 0,05. Deze metriek is gedetailleerder en strikter. Het geeft een vollediger beeld van hoe nauwkeurig het model objecten kan vinden op verschillende niveaus van striktheid en is vooral nuttig voor toepassingen die precieze objectdetectie nodig hebben.

Andere mAP-metrieken zijn mAP@0.75, die een striktere IoU-drempel van 0,75 gebruikt, en mAP@small, medium en large, die de precisie evalueren voor objecten van verschillende groottes.

Gemiddelde Gemiddelde Precisie Overzicht

Evaluatie YOLOv8 Prestaties van het model

Met betrekking tot YOLOv8 kun je de validatiemodus gebruiken om het model te evalueren. Neem ook zeker een kijkje in onze gids die dieper ingaat op YOLOv8 prestatiecijfers en hoe ze geĆÆnterpreteerd kunnen worden.

Veelgestelde vragen van de community

Bij het evalueren van uw YOLOv8 model, kun je een paar haperingen tegenkomen. Op basis van veelgestelde vragen uit de community volgen hier enkele tips om u te helpen het meeste uit uw YOLOv8 model:

Omgaan met variabele afbeeldingsformaten

Het evalueren van uw YOLOv8 Model met afbeeldingen van verschillende grootten kan u helpen inzicht te krijgen in de prestaties op verschillende gegevenssets. Met behulp van de rect=true validatie parameter, YOLOv8 Past de pas van het netwerk voor elke batch aan op basis van de afbeeldingsformaten, waardoor het model rechthoekige afbeeldingen kan verwerken zonder ze tot Ć©Ć©n formaat te forceren.

De imgsz De validatieparameter stelt de maximale afmeting voor het verkleinen van afbeeldingen in, die standaard 640 is. Je kunt dit aanpassen op basis van de maximale afmetingen van je dataset en het beschikbare geheugen op GPU . Zelfs met imgsz set rect=true Hiermee kan het model verschillende afbeeldingsformaten effectief beheren door de pas dynamisch aan te passen.

Toegang krijgen tot YOLOv8 Statistieken

Als je een dieper inzicht wilt krijgen in je YOLOv8 prestaties van het model, kunt u eenvoudig toegang krijgen tot specifieke evaluatiestatistieken met een paar regels Python code. Met het onderstaande codefragment kunt u uw model laden, een evaluatie uitvoeren en verschillende statistieken afdrukken die laten zien hoe goed uw model het doet.

Gebruik

from ultralytics import YOLO

# Load the model
model = YOLO("yolov8n.pt")

# Run the evaluation
results = model.val(data="coco8.yaml")

# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)

Het resultatenobject bevat ook snelheidsstatistieken zoals voorprocestijd, inferentietijd, verlies en naprocestijd. Door deze statistieken te analyseren, kunt u uw YOLOv8 model voor betere prestaties, waardoor het effectiever wordt voor uw specifieke gebruikssituatie.

Hoe werkt fijnafstemming?

Fine-tuning houdt in dat een vooraf getraind model wordt genomen en de parameters worden aangepast om de prestaties van een specifieke taak of dataset te verbeteren. Het proces, ook wel modeltraining genoemd, stelt het model in staat om de resultaten beter te begrijpen en te voorspellen voor de specifieke gegevens die het in real-world toepassingen zal tegenkomen. U kunt uw model opnieuw trainen op basis van uw modelevaluatie om optimale resultaten te bereiken.

Tips voor het verfijnen van uw model

Het verfijnen van een model betekent veel aandacht besteden aan verschillende essentiƫle parameters en technieken om optimale prestaties te bereiken. Hier zijn enkele essentiƫle tips om u door het proces te leiden.

Beginnen met een hoger leertempo

Gewoonlijk begint het leertempo tijdens de eerste trainingsperioden laag en neemt het geleidelijk toe om het trainingsproces te stabiliseren. Aangezien uw model echter al enkele functies van de vorige gegevensset heeft geleerd, kan het voordeliger zijn om meteen met een hogere leersnelheid te beginnen.

Bij het evalueren van uw YOLOv8 model, kunt u de warmup_epochs validatieparameter naar warmup_epochs=0 om te voorkomen dat de leersnelheid te hoog begint. Door dit proces te volgen, gaat de training verder met de meegeleverde gewichten en past u zich aan de nuances van uw nieuwe gegevens aan.

Afbeeldingstegels voor kleine objecten

Afbeeldingstegels kunnen de detectienauwkeurigheid voor kleine objecten verbeteren. Door grotere afbeeldingen op te splitsen in kleinere segmenten, zoals het splitsen van afbeeldingen van 1280 x 1280 in meerdere segmenten van 640 x 640, behoudt u de oorspronkelijke resolutie en kan het model leren van fragmenten met een hoge resolutie. Bij gebruik YOLOv8, zorg ervoor dat u uw labels voor deze nieuwe segmenten correct aanpast.

Werk samen met de gemeenschap

Door uw ideeƫn en vragen te delen met andere computervisie-enthousiastelingen, kunt u creatieve oplossingen voor wegversperringen in uw projecten inspireren. Hier zijn enkele uitstekende manieren om te leren, problemen op te lossen en verbinding te maken.

Hulp en ondersteuning vinden

  • GitHub problemen: Verken de YOLOv8 GitHub repository en gebruik de Issues tab om vragen te stellen, bugs te melden en features voor te stellen. De community en beheerders zijn beschikbaar om je te helpen met alle problemen die je tegenkomt.
  • Ultralytics Discord-server: Word lid van de Ultralytics Discord server om in contact te komen met andere gebruikers en ontwikkelaars, ondersteuning te krijgen, kennis te delen en ideeĆ«n te brainstormen.

Officiƫle documentatie

  • Ultralytics YOLOv8 Documentatie: Bekijk de officiĆ«le YOLOv8 documentatie voor uitgebreide handleidingen en waardevolle inzichten in verschillende computer vision taken en projecten.

Conclusie

Het evalueren en verfijnen van uw computer vision-model zijn belangrijke stappen voor een succesvolle implementatie van het model. Deze stappen helpen ervoor te zorgen dat uw model nauwkeurig, efficiƫnt en geschikt is voor uw algehele toepassing. De sleutel tot het trainen van het best mogelijke model is continu experimenteren en leren. Aarzel niet om parameters aan te passen, nieuwe technieken uit te proberen en verschillende datasets te verkennen. Blijf experimenteren en verleg de grenzen van wat mogelijk is!

FAQ

Wat zijn de belangrijkste maatstaven voor het evalueren van de prestaties van het YOLOv8 model?

Om de prestaties van het YOLOv8 model te evalueren, zijn belangrijke maatstaven onder andere Confidence Score, Intersection over Union (IoU) en Mean Average Precision (mAP). Confidence Score meet de zekerheid van het model voor elke gedetecteerde objectklasse. IoU evalueert hoe goed de voorspelde begrenzende box overlapt met de grondwaarheid. Gemiddelde Gemiddelde Precisie (mAP) aggregeert precisiescores over klassen, waarbij mAP@.5 en mAP@.5:.95 twee gangbare types zijn voor het variƫren van IoU drempelwaarden. Meer informatie over deze metriek vind je in onze YOLOv8 prestatiemetriek gids.

Hoe kan ik een voorgetraind YOLOv8 model fine-tunen voor mijn specifieke dataset?

Het fine-tunen van een voorgetraind YOLOv8 model bestaat uit het aanpassen van de parameters om de prestaties op een specifieke taak of dataset te verbeteren. Begin met het evalueren van je model met behulp van metriek, stel dan een hogere initiƫle leersnelheid in door de warmup_epochs parameter op 0 voor onmiddellijke stabiliteit. Gebruik parameters als rect=true om effectief om te gaan met verschillende afbeeldingsformaten. Raadpleeg voor meer gedetailleerde richtlijnen ons gedeelte over YOLOv8 modellen verfijnen.

Hoe kan ik omgaan met variabele afbeeldingsformaten bij het evalueren van mijn YOLOv8 model?

Gebruik de optie rect=true parameter in YOLOv8, die de stride van het netwerk voor elke batch aanpast op basis van de afbeeldingsgrootte. De imgsz De parameter stelt de maximale afmeting in voor het wijzigen van het formaat van de afbeelding, standaard 640. Aanpassen imgsz to suit your dataset and GPU memory. For more details, visit our gedeelte over het omgaan met variabele afbeeldingsformaten.

Welke praktische stappen kan ik nemen om de gemiddelde precisie voor mijn YOLOv8 model te verbeteren?

Het verbeteren van de gemiddelde precisie (mAP) voor een YOLOv8 model omvat verschillende stappen:

  1. Hyperparameters afstemmen: Experimenteer met verschillende leersnelheden, batchgroottes en beeldvergrotingen.
  2. Gegevensuitbreiding: Gebruik technieken als Mosaic en MixUp om diverse trainingsvoorbeelden te maken.
  3. Afbeelding verdelen: Splits grotere afbeeldingen op in kleinere tegels om de detectienauwkeurigheid voor kleine objecten te verbeteren. Raadpleeg onze gedetailleerde gids over het verfijnen van modellen voor specifieke strategieƫn.

Hoe krijg ik toegang tot YOLOv8 model evaluatie statistieken in Python?

Je kunt de metriek van YOLOv8 modelevaluatie opvragen met Python door de volgende stappen uit te voeren:

Gebruik

from ultralytics import YOLO

# Load the model
model = YOLO("yolov8n.pt")

# Run the evaluation
results = model.val(data="coco8.yaml")

# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)

Het analyseren van deze statistieken helpt bij het afstemmen en optimaliseren van je YOLOv8 model. Bekijk voor een diepere duik onze gids over YOLOv8 metrics.



Aangemaakt 2024-06-29, Bijgewerkt 2024-07-05
Auteurs: glenn-jocher (1), Laughing-q (1), abirami-vina (1)

Reacties