Model exporteren met Ultralytics YOLO
Inleiding
Het uiteindelijke doel van het trainen van een model is om het in te zetten voor echte toepassingen. De exportmodus in Ultralytics YOLOv8 biedt een veelzijdige reeks opties voor het exporteren van je getrainde model naar verschillende formaten, zodat het kan worden ingezet op verschillende platforms en apparaten. Deze uitgebreide gids leidt je door de nuances van het exporteren van modellen en laat zien hoe je maximale compatibiliteit en prestaties kunt bereiken.
Kijken: Hoe exporteer je een op maat gemaakt Ultralytics YOLOv8 model en voer je live-inferentie uit op een webcam.
Waarom kiezen voor YOLOv8's Exportmodus?
- Veelzijdigheid: Exporteer naar meerdere formaten, waaronder ONNX, TensorRT, CoreML, en meer.
- Prestaties: Krijg tot 5x GPU-snelheidstoename met TensorRT en 3x CPU-snelheidstoename met ONNX of OpenVINO.
- Compatibiliteit: Maak je model universeel inzetbaar in verschillende hardware- en softwareomgevingen.
- Gebruiksgemak: Eenvoudige CLI en Python API voor het snel en eenvoudig exporteren van modellen.
Belangrijkste functies van de Exportmodus
Hier zijn enkele van de opvallende functionaliteiten:
- Exporteren met één klik: Eenvoudige commando's voor exporteren naar verschillende formaten.
- Batch export: Modellen exporteren die geschikt zijn voor batchgewijze inferentie.
- Geoptimaliseerde inferentie: Geëxporteerde modellen zijn geoptimaliseerd voor snellere inferentietijden.
- Instructievideo's: Diepgaande gidsen en tutorials voor een soepele exportervaring.
Tip
Voorbeelden
Exporteer een YOLOv8n model naar een ander formaat zoals ONNX of TensorRT. Zie het gedeelte Argumenten hieronder voor een volledige lijst van exportargumenten.
Voorbeeld
Argumenten
Deze tabel beschrijft de beschikbare configuraties en opties voor het exporteren van YOLO modellen naar verschillende formaten. Deze instellingen zijn cruciaal voor het optimaliseren van de prestaties, grootte en compatibiliteit van het geëxporteerde model voor verschillende platforms en omgevingen. De juiste configuratie zorgt ervoor dat het model klaar is voor gebruik in de beoogde toepassing met optimale efficiëntie.
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 GiB 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. |
batch |
int |
1 |
Specificeert de grootte van de batch-inferentie van het geëxporteerde model of het maximum aantal afbeeldingen dat het geëxporteerde model gelijktijdig zal verwerken in predict modus. |
Door deze parameters aan te passen kan het exportproces worden aangepast aan specifieke eisen, zoals de inzetomgeving, hardwarebeperkingen en prestatiedoelen. Het kiezen van het juiste formaat en de juiste instellingen is essentieel voor het bereiken van de beste balans tussen modelgrootte, snelheid en nauwkeurigheid.
Exportformaten
Beschikbare YOLOv8 exportformaten staan in de tabel hieronder. Je kunt naar elk formaat exporteren met de format
argument, d.w.z. format='onnx'
of format='engine'
. Je kunt direct voorspellen of valideren op geëxporteerde modellen, d.w.z. yolo predict model=yolov8n.onnx
. Gebruiksvoorbeelden worden getoond voor je model nadat het exporteren is voltooid.
Formaat | format Argument |
Model | Metagegevens | Argumenten |
---|---|---|---|---|
PyTorch | - | yolov8n.pt |
✅ | - |
TorchScript | torchscript |
yolov8n.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolov8n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolov8n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolov8n.tflite |
✅ | imgsz , half , int8 , batch |
TF Rand TPU | edgetpu |
yolov8n_edgetpu.tflite |
✅ | imgsz , batch |
TF.js | tfjs |
yolov8n_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n_ncnn_model/ |
✅ | imgsz , half , batch |