Overslaan naar inhoud

Configuratie

YOLO Instellingen en hyperparameters spelen een cruciale rol in de prestaties, snelheid en nauwkeurigheid van het model. Deze instellingen en hyperparameters kunnen het gedrag van het model beĆÆnvloeden in verschillende stadia van het modelontwikkelingsproces, waaronder training, validatie en voorspelling.



Kijken: Beheer Ultralytics YOLOv8 : Configuratie

Ultralytics commando's gebruiken de volgende syntaxis:

Voorbeeld

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLOv8 model from a pre-trained weights file
model = YOLO("yolov8n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

Waar:

Standaard ARG waarden worden op deze pagina gedefinieerd vanuit de cfg/defaults.yaml bestand.

Taken

YOLO modellen kunnen worden gebruikt voor verschillende taken, waaronder detectie, segmentatie, classificatie en pose. Deze taken verschillen in het type uitvoer dat ze produceren en het specifieke probleem dat ze moeten oplossen.

  • Detecteren: Voor het identificeren en lokaliseren van objecten of interessante gebieden in een afbeelding of video.
  • Segment: Voor het verdelen van een afbeelding of video in regio's of pixels die overeenkomen met verschillende objecten of klassen.
  • Classificeren: Voor het voorspellen van het klassenlabel van een invoerafbeelding.
  • Houding: Voor het identificeren van objecten en het schatten van hun sleutelpunten in een afbeelding of video.
  • OBB: GeoriĆ«nteerde (d.w.z. geroteerde) bounding boxes die geschikt zijn voor satellietbeelden of medische beelden.
Argument Standaard Beschrijving
task 'detect' Specificeert de uit te voeren taak YOLO . Opties zijn onder andere detect voor objectdetectie, segment voor segmentatie, classify voor classificatie, pose voor het schatten van de houding en OBB voor georiƫnteerde begrenzende vakken. Elke taak is afgestemd op specifieke soorten uitvoer en problemen binnen beeld- en videoanalyse.

Handleiding voor taken

Modi

YOLO modellen kunnen in verschillende modi worden gebruikt, afhankelijk van het specifieke probleem dat je probeert op te lossen. Deze modi zijn onder andere:

  • Trainen: Voor het trainen van een YOLOv8 model op een aangepaste dataset.
  • Val: Voor het valideren van een YOLOv8 model nadat het is getraind.
  • Voorspellen: Voor het doen van voorspellingen met behulp van een getraind YOLOv8 model op nieuwe afbeeldingen of video's.
  • Exporteren: Voor het exporteren van een YOLOv8 model naar een formaat dat kan worden gebruikt voor implementatie.
  • Volgen: Voor het in realtime volgen van objecten met behulp van een YOLOv8 model.
  • Benchmark: Voor het benchmarken van YOLOv8 export (ONNX, TensorRT, enz.) snelheid en nauwkeurigheid.
Argument Standaard Beschrijving
mode 'train' Specificeert de modus waarin het YOLO model werkt. Opties zijn train voor modeltraining, val voor validatie, predict voor inferentie op nieuwe gegevens, export voor het omzetten van modellen naar inzetformaten, track voor het volgen van objecten, en benchmark voor prestatie-evaluatie. Elke modus is ontworpen voor verschillende stadia van de levenscyclus van het model, van ontwikkeling tot implementatie.

Handleiding modi

Treininstellingen

De trainingsinstellingen voor YOLO modellen omvatten verschillende hyperparameters en configuraties die tijdens het trainingsproces worden gebruikt. Deze instellingen beĆÆnvloeden de prestaties, snelheid en nauwkeurigheid van het model. De belangrijkste trainingsinstellingen zijn batchgrootte, leersnelheid, momentum en gewichtsverval. Daarnaast kan de keuze van de optimizer, verliesfunctie en samenstelling van de trainingsdataset het trainingsproces beĆÆnvloeden. Zorgvuldig afstemmen en experimenteren met deze instellingen is cruciaal voor het optimaliseren van de prestaties.

Argument Standaard Beschrijving
model None Specificeert het modelbestand voor training. Accepteert een pad naar een .pt voorgetraind model of een .yaml configuratiebestand. Essentieel voor het definiƫren van de modelstructuur of het initialiseren van gewichten.
data None Pad naar het configuratiebestand van de dataset (bijv, coco8.yaml). Dit bestand bevat dataset-specifieke parameters, waaronder paden naar trainings- en validatiegegevens, namen van klassen en het aantal klassen.
epochs 100 Totaal aantal trainingsepochs. Elke epoch vertegenwoordigt een volledige passage over de hele dataset. Het aanpassen van deze waarde kan de trainingsduur en modelprestaties beĆÆnvloeden.
time None Maximale trainingstijd in uren. Indien ingesteld, overschrijft dit de epochs argument, waardoor de training automatisch stopt na de opgegeven duur. Nuttig voor trainingsscenario's met beperkte tijd.
patience 100 Aantal epochs dat gewacht moet worden zonder verbetering in de validatiemetriek voordat de training vroegtijdig wordt gestopt. Helpt overfitting te voorkomen door de training te stoppen wanneer de prestaties plateaus bereiken.
batch 16 Batchgrootte, met drie modi: ingesteld als een geheel getal (bijv. batch=16), automatische modus voor 60% GPU geheugengebruik (batch=-1), of de automatische modus met een gespecificeerde gebruiksfractie (batch=0.70).
imgsz 640 Doelafbeeldingsgrootte voor training. Alle afbeeldingen worden verkleind tot deze afmeting voordat ze in het model worden ingevoerd. Dit beĆÆnvloedt de nauwkeurigheid van het model en de rekencomplexiteit.
save True Maakt het opslaan van trainingscheckpoints en uiteindelijke modelgewichten mogelijk. Handig voor het hervatten van de training of het uitrollen van het model.
save_period -1 Frequentie van het opslaan van modelcontrolepunten, gespecificeerd in epochs. Een waarde van -1 schakelt deze functie uit. Nuttig voor het opslaan van tussentijdse modellen tijdens lange trainingssessies.
cache False Maakt caching van datasetafbeeldingen in het geheugen mogelijk (True/ram), op schijf (disk), of schakel het uit (False). Verbetert de trainingssnelheid door schijf-I/O te verminderen ten koste van meer geheugengebruik.
device None Specificeert de rekenmachine(s) voor training: een enkele GPU (device=0), meerdere GPU's (device=0,1), CPU (device=cpu), of MPS voor Apple silicium (device=mps).
workers 8 Aantal werker threads voor het laden van gegevens (per RANK als Multi-GPU training). BeĆÆnvloedt de snelheid van gegevens voorbewerken en invoeren in het model, vooral nuttig in multi-GPU opstellingen.
project None Naam van de projectmap waar de trainingsresultaten worden opgeslagen. Hiermee kunnen verschillende experimenten georganiseerd worden opgeslagen.
name None Naam van de trainingsrun. Wordt gebruikt om een submap aan te maken in de projectmap, waar de trainingslogs en uitvoer worden opgeslagen.
exist_ok False Als dit waar is, kan een bestaande map met projectnamen worden overschreven. Nuttig voor iteratieve experimenten zonder dat eerdere uitvoer handmatig moet worden gewist.
pretrained True Bepaalt of de training wordt gestart vanaf een voorgetraind model. Kan een booleaanse waarde zijn of een pad naar een specifiek model van waaruit gewichten moeten worden geladen. Verbetert de trainingsefficiƫntie en modelprestaties.
optimizer 'auto' Keuze van optimizer voor training. Opties omvatten SGD, Adam, AdamW, NAdam, RAdam, RMSProp enzovoort, of auto voor automatische selectie op basis van modelconfiguratie. BeĆÆnvloedt de convergentiesnelheid en stabiliteit.
verbose False Schakelt verbose uitvoer in tijdens de training, met gedetailleerde logbestanden en voortgangsupdates. Nuttig voor het debuggen en nauwlettend in de gaten houden van het trainingsproces.
seed 0 Stelt het willekeurige zaad voor de training in, zodat de resultaten van verschillende runs met dezelfde configuraties reproduceerbaar zijn.
deterministic True Dwingt het gebruik van deterministische algoritmen af, wat reproduceerbaarheid garandeert maar de prestaties en snelheid kan beĆÆnvloeden vanwege de beperking op niet-deterministische algoritmen.
single_cls False Behandelt alle klassen in multi-class datasets als een enkele klasse tijdens de training. Nuttig voor binaire classificatietaken of wanneer je je richt op objectaanwezigheid in plaats van classificatie.
rect False Maakt rechthoekige training mogelijk, waarbij de batchsamenstelling wordt geoptimaliseerd voor minimale opvulling. Kan de efficiĆ«ntie en snelheid verbeteren, maar kan de modelnauwkeurigheid beĆÆnvloeden.
cos_lr False Gebruikt een cosinus leersnelheid scheduler, die de leersnelheid aanpast volgens een cosinuscurve over epochs. Helpt bij het beheren van de leersnelheid voor betere convergentie.
close_mosaic 10 Schakelt het vergroten van mozaĆÆekgegevens in de laatste N epochs uit om de training te stabiliseren voor voltooiing. Instellen op 0 schakelt deze functie uit.
resume False Hervat de training vanaf het laatst opgeslagen controlepunt. Laadt automatisch modelgewichten, optimalisatorstatus en epoch-telling, waardoor de training naadloos wordt voortgezet.
amp True Maakt automatische gemengde precisie (AMP) training mogelijk, waardoor minder geheugen wordt gebruikt en de training mogelijk sneller verloopt met minimale invloed op de nauwkeurigheid.
fraction 1.0 Specificeert de fractie van de dataset om te gebruiken voor training. Hiermee kan worden getraind op een deelverzameling van de volledige dataset, handig voor experimenten of wanneer de middelen beperkt zijn.
profile False Maakt profilering van ONNX en TensorRT snelheden tijdens training mogelijk, handig voor het optimaliseren van de inzet van modellen.
freeze None Bevriest de eerste N lagen van het model of gespecificeerde lagen op index, waardoor het aantal trainbare parameters wordt verminderd. Nuttig voor fine-tuning of transfer learning.
lr0 0.01 InitiĆ«le leersnelheid (d.w.z. SGD=1E-2, Adam=1E-3) . Het aanpassen van deze waarde is cruciaal voor het optimalisatieproces en beĆÆnvloedt hoe snel modelgewichten worden bijgewerkt.
lrf 0.01 Uiteindelijke leersnelheid als fractie van de initiƫle leersnelheid = (lr0 * lrf), gebruikt in combinatie met planners om de leersnelheid in de loop van de tijd aan te passen.
momentum 0.937 Momentumfactor voor SGD of bĆØta1 voor Adam optimizers, die van invloed is op het meenemen van gradiĆ«nten uit het verleden in de huidige update.
weight_decay 0.0005 L2 regularisatieterm, die grote gewichten bestraft om overfitting te voorkomen.
warmup_epochs 3.0 Aantal epochs voor het opwarmen van de leersnelheid, waarbij de leersnelheid geleidelijk wordt verhoogd van een lage waarde naar de initiƫle leersnelheid om de training in een vroeg stadium te stabiliseren.
warmup_momentum 0.8 Initieel momentum voor opwarmfase, geleidelijk aanpassen aan het ingestelde momentum gedurende de opwarmperiode.
warmup_bias_lr 0.1 Leersnelheid voor biasparameters tijdens de opwarmfase, om de modeltraining in de eerste tijdperken te stabiliseren.
box 7.5 Gewicht van de box loss component in de verliesfunctie, die beĆÆnvloedt hoeveel nadruk wordt gelegd op het nauwkeurig voorspellen van bounding box coƶrdinaten.
cls 0.5 Gewicht van het classificatieverlies in de totale verliesfunctie, die het belang van correcte klassevoorspelling beĆÆnvloedt ten opzichte van andere componenten.
dfl 1.5 Gewicht van het focale distributieverlies, gebruikt in bepaalde YOLO versies voor fijnkorrelige classificatie.
pose 12.0 Gewicht van het poseerverlies in modellen getraind voor het schatten van de pose, wat de nadruk op het nauwkeurig voorspellen van poseerpunten beĆÆnvloedt.
kobj 2.0 Gewicht van het verlies aan objectheid van sleutelpunten in modellen voor het schatten van de houding, waarbij de betrouwbaarheid van de detectie in evenwicht wordt gebracht met de nauwkeurigheid van de houding.
label_smoothing 0.0 Past label smoothing toe, waarbij harde labels worden verzacht tot een mix van het doellabel en een uniforme verdeling over labels, wat generalisatie kan verbeteren.
nbs 64 Nominale partijgrootte voor normalisatie van verlies.
overlap_mask True Bepaalt of segmentatiemaskers moeten overlappen tijdens training, van toepassing bij segmentatietaken voor instanties.
mask_ratio 4 Downsample-verhouding voor segmentatiemaskers, die van invloed is op de resolutie van maskers die tijdens de training worden gebruikt.
dropout 0.0 Uitvalpercentage voor regularisatie bij classificatietaken, om overaanpassing te voorkomen door willekeurig eenheden weg te laten tijdens de training.
val True Maakt validatie tijdens training mogelijk, zodat de prestaties van het model periodiek kunnen worden geƫvalueerd op een aparte dataset.
plots False Genereert en bewaart grafieken van trainings- en validatiegegevens, evenals voorspellingsvoorbeelden, om visueel inzicht te geven in de prestaties van het model en de leervorderingen.

Opmerking over instellingen voor batchgrootte

De batch Argumenten kunnen op drie manieren worden geconfigureerd:

  • Vaste batchgrootte: Stel een gehele waarde in (bijv, batch=16), waarbij het aantal afbeeldingen per batch rechtstreeks wordt opgegeven.
  • Automatische modus (60% GPU Geheugen): Gebruik batch=-1 om automatisch de batchgrootte aan te passen voor ongeveer 60% CUDA geheugengebruik.
  • Automatische modus met gebruiksfractie: Stel een breukwaarde in (bijv, batch=0.70) om de batchgrootte aan te passen op basis van de opgegeven fractie van GPU geheugengebruik.

Trein Gids

Instellingen voorspellen

De voorspellingsinstellingen voor YOLO modellen omvatten een reeks hyperparameters en configuraties die van invloed zijn op de prestaties, snelheid en nauwkeurigheid van het model tijdens inferentie op nieuwe gegevens. Zorgvuldig afstemmen en experimenteren met deze instellingen is essentieel om optimale prestaties te bereiken voor een specifieke taak. Belangrijke instellingen zijn onder andere de vertrouwensdrempel, de niet-maximale onderdrukkingsdrempel (NMS) en het aantal klassen dat in aanmerking wordt genomen. Andere factoren die het voorspellingsproces beĆÆnvloeden zijn de grootte en indeling van de invoergegevens, de aanwezigheid van aanvullende kenmerken zoals maskers of meerdere labels per vak en de specifieke taak waarvoor het model wordt gebruikt.

Inferentie argumenten:

Argument Type Standaard Beschrijving
source str 'ultralytics/assets' Specificeert de gegevensbron voor inferentie. Kan een afbeeldingspad, videobestand, map, URL of apparaat-ID voor live feeds zijn. Ondersteunt een breed scala aan formaten en bronnen, zodat het flexibel kan worden toegepast op verschillende soorten invoer.
conf float 0.25 Stelt de minimale betrouwbaarheidsdrempel voor detecties in. Objecten die worden gedetecteerd met een betrouwbaarheid onder deze drempel worden genegeerd. Het aanpassen van deze waarde kan helpen bij het verminderen van vals-positieven.
iou float 0.7 Intersection Over Union (IoU) drempelwaarde voor niet-maximale onderdrukking (NMS). Lagere waarden resulteren in minder detecties door overlappende vakjes te elimineren, handig om duplicaten te verminderen.
imgsz int or tuple 640 Definieert de afbeeldingsgrootte voor inferentie. Kan een geheel getal zijn 640 voor vierkant formaat of een (hoogte, breedte) tupel. De juiste grootte kan de detectienauwkeurigheid en verwerkingssnelheid verbeteren.
half bool False Maakt inferentie met halve precisie (FP16) mogelijk, wat modelinferentie op ondersteunde GPU's kan versnellen met minimale invloed op nauwkeurigheid.
device str None Specificeert het apparaat voor inferentie (bijv, cpu, cuda:0 of 0). Hiermee kunnen gebruikers kiezen tussen CPU, een specifieke GPU of andere rekenapparaten voor het uitvoeren van modellen.
max_det int 300 Maximum aantal toegestane detecties per afbeelding. Beperkt het totale aantal objecten dat het model kan detecteren in een enkele inferentie, waardoor buitensporige uitvoer in dichte scĆØnes wordt voorkomen.
vid_stride int 1 Frame stride voor video-ingangen. Hiermee kunnen frames in video's worden overgeslagen om de verwerking te versnellen ten koste van de temporele resolutie. Een waarde van 1 verwerkt elk frame, hogere waarden slaan frames over.
stream_buffer bool False Bepaalt of alle frames gebufferd moeten worden bij het verwerken van videostreams (True), of als het model het meest recente frame moet teruggeven (False). Nuttig voor real-time toepassingen.
visualize bool False Activeert visualisatie van modeleigenschappen tijdens inferentie, waardoor inzicht wordt verkregen in wat het model "ziet". Nuttig voor foutopsporing en modelinterpretatie.
augment bool False Maakt testtijdvergroting (TTA) mogelijk voor voorspellingen, waardoor de robuustheid van detectie mogelijk verbetert ten koste van de inferentiesnelheid.
agnostic_nms bool False Maakt klasse-agnostische Non-Maximum Suppression (NMS) mogelijk, die overlappende vakken van verschillende klassen samenvoegt. Nuttig in detectiescenario's met meerdere klassen waar overlappende klassen vaak voorkomen.
classes list[int] None Filtert voorspellingen op een set klasse-ID's. Alleen detecties die behoren tot de opgegeven klassen worden geretourneerd. Nuttig om te focussen op relevante objecten in detectietaken met meerdere klassen.
retina_masks bool False Gebruikt hoge-resolutie segmentatiemaskers indien beschikbaar in het model. Dit kan de maskerkwaliteit voor segmentatietaken verbeteren, waardoor fijnere details worden verkregen.
embed list[int] None Specificeert de lagen waaruit kenmerkvectoren of inbeddingen moeten worden geƫxtraheerd. Nuttig voor downstream taken zoals clusteren of zoeken naar overeenkomsten.

Visualisatie argumenten:

Argument Type Standaard Beschrijving
show bool False Als Truegeeft de geannoteerde afbeeldingen of video's weer in een venster. Handig voor directe visuele feedback tijdens het ontwikkelen of testen.
save bool False Maakt het mogelijk om de geannoteerde afbeeldingen of video's op te slaan in een bestand. Handig voor documentatie, verdere analyse of het delen van resultaten.
save_frames bool False Bij het verwerken van video's worden individuele frames opgeslagen als afbeeldingen. Handig voor het extraheren van specifieke frames of voor gedetailleerde frame-voor-frame analyse.
save_txt bool False Slaat detectieresultaten op in een tekstbestand volgens het formaat [class] [x_center] [y_center] [width] [height] [confidence]. Handig voor integratie met andere analysegereedschappen.
save_conf bool False Inclusief vertrouwensscores in de opgeslagen tekstbestanden. Verbetert de beschikbare details voor nabewerking en analyse.
save_crop bool False Bewaart bijgesneden afbeeldingen van detecties. Nuttig voor het vergroten van datasets, analyse of het maken van gerichte datasets voor specifieke objecten.
show_labels bool True Toont labels voor elke detectie in de visuele uitvoer. Biedt direct inzicht in gedetecteerde objecten.
show_conf bool True Toont de betrouwbaarheidsscore voor elke detectie naast het label. Geeft inzicht in de zekerheid van het model voor elke detectie.
show_boxes bool True Tekent begrenzende vakken rond gedetecteerde objecten. Essentieel voor visuele identificatie en locatie van objecten in afbeeldingen of videoframes.
line_width None or int None Bepaalt de lijndikte van bounding boxes. Als NoneDe lijndikte wordt automatisch aangepast op basis van de afbeeldingsgrootte. Biedt visuele aanpassing voor duidelijkheid.

Gids voorspellen

Validatie-instellingen

De val (validatie) instellingen voor YOLO modellen omvatten verschillende hyperparameters en configuraties die worden gebruikt om de prestaties van het model te evalueren op een validatie dataset. Deze instellingen beĆÆnvloeden de prestaties, snelheid en nauwkeurigheid van het model. Gebruikelijke YOLO validatie-instellingen zijn onder andere de batchgrootte, de validatiefrequentie tijdens de training en de prestatie-evaluatiemetriek. Andere factoren die het validatieproces beĆÆnvloeden zijn de grootte en samenstelling van de validatiedataset en de specifieke taak waarvoor het model wordt gebruikt.

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 automatisch wordt aangepast op basis van de beschikbaarheid van GPU geheugen.
save_json bool False Als Trueslaat de resultaten op in een JSON-bestand voor verdere analyse of integratie met andere tools.
save_hybrid bool False Als Trueslaat 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:0enz.). Biedt flexibiliteit in het gebruik van CPU of GPU bronnen.
dnn bool False Als Truemaakt gebruik van de OpenCV DNN module voor ONNX modelinferentie en biedt daarmee een alternatief voor PyTorch inferentiemethoden.
plots bool False Wanneer ingesteld op Truegenereert en bewaart plots van voorspellingen versus de grondwaarheid voor visuele evaluatie van de prestaties van het model.
rect bool False Als Truemaakt 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, testof train). Biedt flexibiliteit bij het kiezen van het gegevenssegment voor prestatie-evaluatie.

Zorgvuldige afstemming en experimenten met deze instellingen zijn cruciaal om optimale prestaties op de validatiedataset te garanderen en overfitting te detecteren en voorkomen.

Gids

Instellingen exporteren

Exportinstellingen voor YOLO modellen omvatten configuraties en opties met betrekking tot het opslaan of exporteren van het model voor gebruik in verschillende omgevingen of platforms. Deze instellingen kunnen de prestaties, grootte en compatibiliteit van het model met verschillende systemen beĆÆnvloeden. Tot de belangrijkste exportinstellingen behoren het bestandsformaat van het geĆ«xporteerde model (bijv. ONNX, TensorFlow SavedModel ), het doelapparaat (bijv. CPU, GPU) en extra functies zoals maskers of meerdere labels per box. Het exportproces kan ook worden beĆÆnvloed door de specifieke taak van het model en de eisen of beperkingen van de bestemmingsomgeving of het platform.

Argument Type Standaard Beschrijving
format str 'torchscript' Doelformaat voor het geƫxporteerde model, zoals 'onnx', 'torchscript', 'tensorflow'of andere, die compatibiliteit definiƫren met verschillende inzetomgevingen.
imgsz int of tuple 640 Gewenste afbeeldingsgrootte voor de modelinvoer. Kan een geheel getal zijn voor vierkante afbeeldingen of een tupel (height, width) voor specifieke afmetingen.
keras bool False Maakt export naar Keras formaat mogelijk voor TensorFlow SavedModel , waardoor compatibiliteit met TensorFlow serving en API's mogelijk is.
optimize bool False Optimalisatie toepassen voor mobiele apparaten bij het exporteren naar TorchScript, waardoor het model kleiner kan worden en de prestaties verbeteren.
half bool False Maakt FP16 (half-precisie) kwantisatie mogelijk, waardoor het model kleiner wordt en de inferentie mogelijk sneller op ondersteunde hardware.
int8 bool False Activeert INT8 kwantisatie, waardoor het model verder wordt gecomprimeerd en de inferentie wordt versneld met minimaal verlies van nauwkeurigheid, voornamelijk voor randapparaten.
dynamic bool False Dynamische invoerformaten voor ONNX en TensorRT export zijn mogelijk, wat de flexibiliteit vergroot bij het verwerken van verschillende afbeeldingsafmetingen.
simplify bool False Vereenvoudigt de modeldiagram voor ONNX export, waardoor de prestaties en compatibiliteit mogelijk verbeteren.
opset int None Specificeert de versie van de ONNX opset voor compatibiliteit met verschillende ONNX parsers en runtimes. Als deze niet is ingesteld, wordt de laatst ondersteunde versie gebruikt.
workspace float 4.0 Stelt de maximale grootte van de werkruimte in GB in voor TensorRT optimalisaties, waarbij geheugengebruik en prestaties in balans worden gebracht.
nms bool False Voegt Non-Maximum Suppression (NMS) toe aan de export CoreML , essentieel voor nauwkeurige en efficiƫnte detectie post-processing.

Het is cruciaal om deze instellingen zorgvuldig te configureren om er zeker van te zijn dat het geƫxporteerde model geoptimaliseerd is voor het beoogde gebruik en effectief functioneert in de doelomgeving.

Export Gids

Vergroting Instellingen

Augmentatietechnieken zijn essentieel voor het verbeteren van de robuustheid en prestaties van YOLO modellen door variabiliteit te introduceren in de trainingsgegevens, waardoor het model beter kan generaliseren naar ongeziene gegevens. De volgende tabel beschrijft het doel en het effect van elk augmentatieargument:

Argument Type Standaard Bereik Beschrijving
hsv_h float 0.015 0.0 - 1.0 Past de tint van de afbeelding aan met een fractie van het kleurenwiel, waardoor kleurvariabiliteit wordt geĆÆntroduceerd. Helpt het model te veralgemenen onder verschillende lichtomstandigheden.
hsv_s float 0.7 0.0 - 1.0 Verandert de verzadiging van de afbeelding met een fractie, waardoor de intensiteit van kleuren wordt beĆÆnvloed. Nuttig voor het simuleren van verschillende omgevingsomstandigheden.
hsv_v float 0.4 0.0 - 1.0 Wijzigt de waarde (helderheid) van de afbeelding met een fractie, waardoor het model goed presteert onder verschillende lichtomstandigheden.
degrees float 0.0 -180 - +180 Roteert de afbeelding willekeurig binnen het opgegeven gradenbereik, waardoor het model objecten met verschillende oriƫntaties beter kan herkennen.
translate float 0.1 0.0 - 1.0 Vertaalt het beeld horizontaal en verticaal met een fractie van de beeldgrootte, wat helpt bij het leren om gedeeltelijk zichtbare objecten te detecteren.
scale float 0.5 >=0.0 Schaalt het beeld met een versterkingsfactor, waardoor objecten op verschillende afstanden van de camera worden gesimuleerd.
shear float 0.0 -180 - +180 Snijdt het beeld in een bepaalde mate, waardoor het effect wordt nagebootst van objecten die vanuit verschillende hoeken worden bekeken.
perspective float 0.0 0.0 - 0.001 Past een willekeurige perspectieftransformatie toe op de afbeelding, waardoor het model objecten in de 3D-ruimte beter kan begrijpen.
flipud float 0.0 0.0 - 1.0 Draai de afbeelding om met de opgegeven waarschijnlijkheid, waardoor de gegevensvariabiliteit toeneemt zonder de kenmerken van het object aan te tasten.
fliplr float 0.5 0.0 - 1.0 Spiegelt de afbeelding van links naar rechts met de opgegeven waarschijnlijkheid, handig voor het leren van symmetrische objecten en het vergroten van de datasetdiversiteit.
bgr float 0.0 0.0 - 1.0 Wisselt de afbeeldingskanalen om van RGB naar BGR met de opgegeven waarschijnlijkheid, handig om de robuustheid voor onjuiste kanaalvolgorde te vergroten.
mosaic float 1.0 0.0 - 1.0 Combineert vier trainingsafbeeldingen in Ć©Ć©n, waarbij verschillende scĆØnecomposities en objectinteracties worden gesimuleerd. Zeer effectief voor het begrijpen van complexe scĆØnes.
mixup float 0.0 0.0 - 1.0 Mengt twee afbeeldingen en hun labels, waardoor een samengesteld beeld ontstaat. Verbetert het vermogen van het model om te generaliseren door labelruis en visuele variabiliteit te introduceren.
copy_paste float 0.0 0.0 - 1.0 Kopieert objecten van een afbeelding en plakt ze op een andere afbeelding, handig voor het vergroten van objectinstanties en het leren van object occlusie.
auto_augment str randaugment - Past automatisch een vooraf gedefinieerd augmentatiebeleid toe (randaugment, autoaugment, augmix), die optimaliseert voor classificatietaken door de visuele kenmerken te diversifiƫren.
erasing float 0.4 0.0 - 0.9 Wist willekeurig een deel van de afbeelding tijdens de classificatietraining, zodat het model zich concentreert op minder voor de hand liggende kenmerken voor herkenning.
crop_fraction float 1.0 0.1 - 1.0 Verkleint de classificatieafbeelding tot een fractie van de grootte om de centrale kenmerken te benadrukken en zich aan te passen aan de schaal van het object, waardoor achtergrondafleidingen worden verminderd.

Deze instellingen kunnen worden aangepast aan de specifieke eisen van de dataset en taak. Experimenteren met verschillende waarden kan helpen bij het vinden van de optimale augmentatiestrategie die leidt tot de beste modelprestaties.

Loggen, controlepunten en plotinstellingen

Loggen, controlepunten, plotten en bestandsbeheer zijn belangrijke overwegingen bij het trainen van een YOLO model.

  • Loggen: Het is vaak handig om tijdens de training verschillende metrieken en statistieken te loggen om de voortgang van het model bij te houden en eventuele problemen te diagnosticeren. Dit kan worden gedaan met een logbibliotheek zoals TensorBoard of door logberichten naar een bestand te schrijven.
  • Controlepunten: Het is een goede gewoonte om tijdens de training regelmatig checkpoints van het model op te slaan. Hierdoor kun je de training hervatten vanaf een vorig punt als het trainingsproces wordt onderbroken of als je wilt experimenteren met verschillende trainingsconfiguraties.
  • Plotten: Het visualiseren van de prestaties van het model en de trainingsvoortgang kan nuttig zijn om te begrijpen hoe het model zich gedraagt en om mogelijke problemen te identificeren. Dit kan worden gedaan met een plotbibliotheek zoals matplotlib of door plots te genereren met een logbibliotheek zoals TensorBoard.
  • Bestandsbeheer: Het beheren van de verschillende bestanden die tijdens het trainingsproces worden gegenereerd, zoals modelcontrolepunten, logbestanden en plots, kan een uitdaging zijn. Het is belangrijk om een duidelijke en georganiseerde bestandsstructuur te hebben om deze bestanden bij te houden en ze indien nodig gemakkelijk te kunnen openen en analyseren.

Effectieve logging, checkpointing, plotten en bestandsbeheer kunnen je helpen om de voortgang van het model bij te houden en het gemakkelijker te maken om het trainingsproces te debuggen en te optimaliseren.

Argument Standaard Beschrijving
project 'runs' Specificeert de hoofdmap voor het opslaan van trainingsruns. Elke run wordt opgeslagen in een aparte submap binnen deze map.
name 'exp' Definieert de naam van het experiment. Als deze niet wordt opgegeven, verhoogt YOLO deze naam automatisch voor elke run, bijv, exp, exp2, etc., om te voorkomen dat eerdere experimenten worden overschreven.
exist_ok False Bepaalt of een bestaande experimenteer map overschreven moet worden als er al een bestaat met dezelfde naam. Als je dit instelt op True staat overschrijven toe, terwijl False voorkomt.
plots False Regelt het genereren en opslaan van trainings- en validatieplots. Ingesteld op True om grafieken te maken zoals verliescurves, precisieterugroepcurves en voorbeeldvoorspellingen. Handig voor het visueel volgen van de prestaties van het model in de loop van de tijd.
save False Schakelt het opslaan van trainingscheckpoints en uiteindelijke modelgewichten in. Ingesteld op True om periodiek modeltoestanden op te slaan, zodat de training vanaf deze controlepunten kan worden hervat of modellen kunnen worden ingezet.

FAQ

Hoe verbeter ik de prestaties van mijn YOLO model tijdens het trainen?

Het verbeteren van de prestaties van het YOLO model omvat het afstemmen van hyperparameters zoals batchgrootte, leersnelheid, momentum en gewichtsverval. Het aanpassen van augmentatie-instellingen, het selecteren van de juiste optimizer en het toepassen van technieken zoals vroegtijdig stoppen of gemengde precisie kunnen ook helpen. Raadpleeg de Trainingsgids voor gedetailleerde richtlijnen voor trainingsinstellingen.

Wat zijn de belangrijkste hyperparameters om te overwegen voor YOLO modelnauwkeurigheid?

De belangrijkste hyperparameters die van invloed zijn op de nauwkeurigheid van het YOLO model zijn onder andere:

  • Partijgrootte (batch): Grotere batchgroottes kunnen de training stabiliseren, maar vereisen mogelijk meer geheugen.
  • Leertempo (lr0): Bepaalt de stapgrootte voor gewichtsupdates; kleinere waarden bieden fijne aanpassingen maar een langzame convergentie.
  • Momentum (momentum): Helpt om gradiĆ«ntvectoren in de juiste richtingen te versnellen, waardoor trillingen worden gedempt.
  • Afbeeldingsgrootte (imgsz): Grotere afbeeldingsformaten kunnen de nauwkeurigheid verbeteren, maar de computerbelasting verhogen.

Pas deze waarden aan op basis van je dataset en hardwaremogelijkheden. Lees meer in de sectie Treininstellingen.

Hoe stel ik de leersnelheid in voor het trainen van een YOLO model?

De leersnelheid (lr0) is cruciaal voor optimalisatie. Een veelgebruikt uitgangspunt is 0.01 voor SGD of 0.001 voor Adam. Het is essentieel om de trainingsmetriek in de gaten te houden en zo nodig aan te passen. Gebruik cosinus-leersnelheidsplanners (cos_lr) of opwarmtechnieken (warmup_epochs, warmup_momentum) om de snelheid tijdens de training dynamisch aan te passen. Meer details vind je in de Trein Gids.

Wat zijn de standaard inferentie-instellingen voor YOLO modellen?

Standaard inferentie-instellingen zijn onder andere:

  • Vertrouwensdrempel (conf=0.25): Minimumbetrouwbaarheid voor detecties.
  • IoU-drempel (iou=0.7): Voor niet-maximale onderdrukking (NMS).
  • Afbeeldingsgrootte (imgsz=640): Past de grootte van invoerafbeeldingen aan voorafgaand aan de inferentie.
  • Apparaat (device=None): Kiest CPU of GPU voor inferentie. Ga voor een uitgebreid overzicht naar de Instellingen voorspellen sectie en de Gids voorspellen.

Waarom zou ik gemengde precisietraining gebruiken met YOLO modellen?

Gemengde precisietraining, mogelijk gemaakt met amp=Truehelpt het geheugengebruik te verminderen en kan de training versnellen door gebruik te maken van de voordelen van zowel FP16 als FP32. Dit is gunstig voor moderne GPU's, die van nature gemengde precisie ondersteunen, waardoor meer modellen in het geheugen passen en snellere berekeningen mogelijk zijn zonder significant verlies in nauwkeurigheid. Lees meer hierover in de Trein Gids.



Aangemaakt 2023-11-12, Bijgewerkt 2024-07-04
Auteurs: glenn-jocher (18), fcakyon (2), Laughing-q (2), plashchynski (1), Burhan-Q (1), AyushExel (1), RizwanMunawar (1), tensorturtle (1)

Reacties