Overslaan naar inhoud

Optimaliseren YOLOv8 Gevolgtrekkingen met Neural Magic's DeepSparse Engine

Bij het inzetten van objectdetectiemodellen zoals Ultralytics YOLOv8 op verschillende hardware, kun je tegen unieke problemen aanlopen, zoals optimalisatie. Dit is waar YOLOv8's integratie met Neural Magic's DeepSparse Engine om de hoek komt kijken. Het verandert de manier waarop YOLOv8 modellen worden uitgevoerd en maakt prestaties op GPU niveau direct mogelijk op CPU's.

Deze handleiding laat je zien hoe je YOLOv8 kunt implementeren met Neural Magic's DeepSparse, hoe je inferenties kunt uitvoeren en ook hoe je de prestaties kunt benchmarken om er zeker van te zijn dat het geoptimaliseerd is.

Neural MagicDeepSparse

Neural MagicOverzicht DeepSparse

Neural MagicDeepSparse is een inferentie-runtime ontworpen om de uitvoering van neurale netwerken op CPU's te optimaliseren. Het past geavanceerde technieken toe zoals sparsity, pruning en kwantisatie om de rekenkracht drastisch te verminderen met behoud van nauwkeurigheid. DeepSparse biedt een flexibele oplossing voor effici├źnte en schaalbare uitvoering van neurale netwerken op verschillende apparaten.

Voordelen van integratie Neural Magic's DeepSparse met YOLOv8

Voordat u zich verdiept in de implementatie YOLOV8 laten we met behulp van DeepSparse de voordelen van het gebruik van DeepSparse begrijpen. Enkele belangrijke voordelen zijn:

  • Verbeterde inferentiesnelheid: Bereikt tot 525 FPS (op YOLOv8n), waardoor de inferentiemogelijkheden van YOLOv8 aanzienlijk sneller zijn dan bij traditionele methoden.

Verbeterde inferentiesnelheid

  • Geoptimaliseerde modeleffici├źntie: Gebruikt snoeien en kwantificeren om de effici├źntie van YOLOv8 te verbeteren, waardoor het model kleiner wordt en er minder rekenkracht nodig is, terwijl de nauwkeurigheid behouden blijft.

Geoptimaliseerde modeleffici├źntie

  • Hoge prestaties op standaard CPU's: Levert GPU-achtige prestaties op CPU's, wat een meer toegankelijke en kosteneffectieve optie biedt voor diverse toepassingen.

  • Gestroomlijnde integratie en implementatie: Biedt gebruiksvriendelijke tools voor eenvoudige integratie van YOLOv8 in applicaties, inclusief annotatiefuncties voor afbeeldingen en video.

  • Ondersteuning voor verschillende modeltypen: Compatibel met zowel standaard als voor sparsity geoptimaliseerde YOLOv8 modellen, voor extra inzetflexibiliteit.

  • Kosteneffectieve en schaalbare oplossing: Verlaagt de operationele kosten en biedt schaalbare inzet van geavanceerde objectdetectiemodellen.

Hoe werkt Neural Magic's DeepSparse technologie?

Neural MagicDe Deep Sparse-technologie is ge├»nspireerd op de effici├źntie van het menselijk brein bij het berekenen van neurale netwerken. Het neemt als volgt twee belangrijke principes van de hersenen over:

  • Spaarzaamheid: Het proces van sparsificatie bestaat uit het verwijderen van overbodige informatie uit deep learning netwerken, wat leidt tot kleinere en snellere modellen zonder afbreuk te doen aan de nauwkeurigheid. Deze techniek vermindert de grootte van het netwerk en de benodigde rekenkracht aanzienlijk.

  • Lokalisatie van referentie: DeepSparse gebruikt een unieke uitvoeringsmethode, waarbij het netwerk wordt opgedeeld in Tensor Kolommen. Deze kolommen worden dieptegewijs uitgevoerd, waarbij ze volledig in de cache van de CPU passen. Deze aanpak bootst de effici├źntie van de hersenen na, waarbij de verplaatsing van gegevens wordt geminimaliseerd en het cachegebruik van de CPU wordt gemaximaliseerd.

Hoe Neural Magic's DeepSparse technologie werkt

Voor meer details over hoe Neural Magic's DeepSparse technologie werkt, bekijk hun blogpost.

Een spaarzame versie van YOLOv8 maken, getraind op een aangepaste dataset

SparseZoo, een open-source modelrepository van Neural Magic, biedt een verzameling vooraf gesparsificeerde YOLOv8 modelcheckpoints. Met SparseML, dat naadloos geïntegreerd is met Ultralytics, kunnen gebruikers deze sparse checkpoints moeiteloos fine-tunen op hun specifieke datasets met behulp van een eenvoudige opdrachtregelinterface.

Bekijk Neural Magic's SparseML YOLOv8 documentatie voor meer details.

Gebruik: YOLOV8 inzetten met DeepSparse

Het implementeren van YOLOv8 met Neural Magic's DeepSparse omvat een paar eenvoudige stappen. Voordat je in de gebruiksinstructies duikt, moet je eerst de reeks YOLOv8 modellen bekijken die Ultralytics aanbiedt. Dit helpt je bij het kiezen van het meest geschikte model voor jouw projectvereisten. Dit is hoe je kunt beginnen.

Stap 1: Installatie

Voer het volgende uit om de vereiste pakketten te installeren:

Installatie

# Install the required packages
pip install deepsparse[yolov8]

Stap 2: YOLOv8 exporteren naar ONNX Formaat

DeepSparse Engine vereist YOLOv8 modellen in ONNX formaat. Het exporteren van je model naar dit formaat is essentieel voor compatibiliteit met DeepSparse. Gebruik de volgende opdracht om YOLOv8 modellen te exporteren:

Model Export

# Export YOLOv8 model to ONNX format
yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

Dit commando slaat de yolov8n.onnx model naar je schijf.

Stap 3: Inferences implementeren en uitvoeren

Met je YOLOv8 model in ONNX formaat kun je inferenties implementeren en uitvoeren met DeepSparse. Dit kan eenvoudig met hun intuïtieve Python API:

Inferences inzetten en uitvoeren

from deepsparse import Pipeline

# Specify the path to your YOLOv8 ONNX model
model_path = "path/to/yolov8n.onnx"

# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)

# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)

Stap 4: Prestatie benchmarken

Het is belangrijk om te controleren of je YOLOv8 model optimaal presteert op DeepSparse. Je kunt de prestaties van je model benchmarken om doorvoer en latentie te analyseren:

Benchmarking

# Benchmark performance
deepsparse.benchmark model_path="path/to/yolov8n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

Stap 5: Extra functies

DeepSparse biedt extra functies voor praktische integratie van YOLOv8 in toepassingen, zoals beeldannotatie en dataset evaluatie.

Extra functies

# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolov8n.onnx"

# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolov8n.onnx"

Het uitvoeren van het annotate commando verwerkt je gespecificeerde afbeelding, detecteert objecten en slaat de geannoteerde afbeelding op met bounding boxes en classificaties. De geannoteerde afbeelding wordt opgeslagen in een map met annotatie-resultaten. Dit helpt om een visuele weergave te geven van de detectiemogelijkheden van het model.

Functie voor beeldannotatie

Na het uitvoeren van het commando eval krijg je gedetailleerde uitvoercijfers zoals precisie, recall en mAP (gemiddelde gemiddelde precisie). Dit geeft een uitgebreid beeld van de prestaties van je model op de dataset. Deze functionaliteit is vooral handig voor het verfijnen en optimaliseren van je YOLOv8 modellen voor specifieke gebruikssituaties, zodat je verzekerd bent van een hoge nauwkeurigheid en effici├źntie.

Samenvatting

Deze gids onderzocht de integratie van Ultralytics' YOLOv8 met Neural Magic's DeepSparse Engine. Er werd benadrukt hoe deze integratie de prestaties van YOLOv8 op CPU platforms verbetert, door effici├źntie op GPU-niveau en geavanceerde sparsiteitstechnieken voor neurale netwerken te bieden.

Ga voor meer gedetailleerde informatie en geavanceerd gebruik naar Neural Magic's DeepSparse documentatie. Bekijk ook Neural Magic's documentatie over de integratie met YOLOv8 hier en bekijk een geweldige sessie erover hier.

Ga voor een breder begrip van de verschillende YOLOv8 integraties naar de Ultralytics integratiegids pagina, waar je een reeks andere interessante integratiemogelijkheden kunt ontdekken.

FAQ

Wat is Neural Magic's DeepSparse Engine en hoe optimaliseert het de prestaties van YOLOv8 ?

Neural MagicDeepSparse Engine is een inferentie runtime ontworpen om de uitvoering van neurale netwerken op CPU's te optimaliseren door middel van geavanceerde technieken zoals sparsity, pruning en kwantisatie. Door DeepSparse te integreren met YOLOv8 kun je GPU-achtige prestaties bereiken op standaard CPU's, waardoor de inferentiesnelheid, modeleffici├źntie en algehele prestaties aanzienlijk verbeteren met behoud van nauwkeurigheid. Kijk voor meer details op Neural Magic's DeepSparse sectie.

Hoe kan ik de benodigde pakketten installeren om YOLOv8 te implementeren met Neural Magic's DeepSparse?

Het installeren van de benodigde pakketten voor het inzetten van YOLOv8 met Neural Magic's DeepSparse is eenvoudig. Je kunt ze eenvoudig installeren met de CLI. Dit is het commando dat je moet uitvoeren:

pip install deepsparse[yolov8]

Volg na de installatie de stappen in het hoofdstuk Installatie om je omgeving in te stellen en begin DeepSparse te gebruiken met YOLOv8.

Hoe converteer ik YOLOv8 modellen naar ONNX formaat voor gebruik met DeepSparse?

Om YOLOv8 modellen te converteren naar de indeling ONNX , die nodig is voor compatibiliteit met DeepSparse, kun je de volgende opdracht CLI gebruiken:

yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

Deze opdracht exporteert je YOLOv8 model (yolov8n.pt) naar een formaat (yolov8n.onnx) die kan worden gebruikt door de DeepSparse Engine. Meer informatie over modelexport is te vinden in de Model export sectie.

Hoe benchmark ik YOLOv8 prestaties op de DeepSparse Engine?

Het benchmarken van YOLOv8 prestaties op DeepSparse helpt je bij het analyseren van doorvoer en latentie om ervoor te zorgen dat je model geoptimaliseerd is. Je kunt de volgende opdracht CLI gebruiken om een benchmark uit te voeren:

deepsparse.benchmark model_path="path/to/yolov8n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

Dit commando geeft je vitale prestatiecijfers. Zie voor meer details de sectie Prestatiebenchmarks.

Waarom zou ik Neural Magic's DeepSparse met YOLOv8 gebruiken voor objectdetectietaken?

De integratie van Neural Magic's DeepSparse met YOLOv8 biedt verschillende voordelen:

  • Verbeterde inferentiesnelheid: Bereikt tot 525 FPS, waardoor de mogelijkheden van YOLOv8 aanzienlijk worden vergroot.
  • Geoptimaliseerde modeleffici├źntie: Gebruikt sparsity, pruning en kwantisatietechnieken om de grootte van het model en de benodigde rekenkracht te reduceren met behoud van nauwkeurigheid.
  • Hoge prestaties op standaard CPU's: Biedt GPU-achtige prestaties op kosteneffectieve CPU hardware.
  • Gestroomlijnde integratie: Gebruiksvriendelijke tools voor eenvoudige implementatie en integratie.
  • Flexibiliteit: Ondersteunt zowel standaard als voor sparsity geoptimaliseerde YOLOv8 modellen.
  • Kosteneffectief: Verlaagt de operationele kosten door effici├źnt gebruik van bronnen.

Ga voor een diepere duik in deze voordelen naar de sectie Voordelen van de integratie van Neural Magic's DeepSparse met YOLOv8 .



Aangemaakt 2023-12-30, Bijgewerkt 2024-07-05
Auteurs: glenn-jocher (7), abirami-vina (1)

Reacties