─░├žeri─če ge├ž

Optimizing YOLOv8 Inferences with Neural Magic's DeepSparse Engine

When deploying object detection models like Ultralytics YOLOv8 on various hardware, you can bump into unique issues like optimization. This is where YOLOv8's integration with Neural Magic's DeepSparse Engine steps in. It transforms the way YOLOv8 models are executed and enables GPU-level performance directly on CPUs.

Bu k─▒lavuz, Neural Magic's DeepSparse kullanarak YOLOv8 adresini nas─▒l da─č─▒taca─č─▒n─▒z─▒, ├ž─▒kar─▒mlar─▒ nas─▒l ├žal─▒┼čt─▒raca─č─▒n─▒z─▒ ve ayr─▒ca optimize edildi─činden emin olmak i├žin performans─▒ nas─▒l k─▒yaslayaca─č─▒n─▒z─▒ g├Âsterir.

Neural Magic'in DeepSparse

Neural Magic's DeepSparse Overview

Neural Magic's DeepSparse is an inference run-time designed to optimize the execution of neural networks on CPUs. It applies advanced techniques like sparsity, pruning, and quantization to dramatically reduce computational demands while maintaining accuracy. DeepSparse offers an agile solution for efficient and scalable neural network execution across various devices.

Benefits of Integrating Neural Magic's DeepSparse with YOLOv8

Before diving into how to deploy YOLOV8 using DeepSparse, let's understand the benefits of using DeepSparse. Some key advantages include:

  • Geli┼čtirilmi┼č ├ç─▒kar─▒m H─▒z─▒: 525 FPS'ye kadar ( YOLOv8n adresinde) ula┼čarak YOLOv8'un ├ž─▒kar─▒m yeteneklerini geleneksel y├Ântemlere k─▒yasla ├Ânemli ├Âl├ž├╝de h─▒zland─▒r─▒r.

Geli┼čtirilmi┼č ├ç─▒kar─▒m H─▒z─▒

  • Optimize Edilmi┼č Model Verimlili─či: YOLOv8 'un verimlili─čini art─▒rmak i├žin budama ve niceleme kullan─▒r, do─črulu─ču korurken model boyutunu ve hesaplama gereksinimlerini azalt─▒r.

Optimize Edilmi┼č Model Verimlili─či

  • Standart CPU'larda Y├╝ksek Performans: CPU'larda GPU benzeri performans sunarak ├že┼čitli uygulamalar i├žin daha eri┼čilebilir ve uygun maliyetli bir se├ženek sunar.

  • Kolayla┼čt─▒r─▒lm─▒┼č Entegrasyon ve Da─č─▒t─▒m: G├Âr├╝nt├╝ ve video a├ž─▒klama ├Âzellikleri de dahil olmak ├╝zere YOLOv8 'un uygulamalara kolay entegrasyonu i├žin kullan─▒c─▒ dostu ara├žlar sunar.

  • ├çe┼čitli Model T├╝rleri i├žin Destek: Hem standart hem de seyreklik i├žin optimize edilmi┼č YOLOv8 modelleriyle uyumludur ve da─č─▒t─▒m esnekli─či sa─člar.

  • Uygun Maliyetli ve ├ľl├žeklenebilir ├ç├Âz├╝m: Operasyonel giderleri azalt─▒r ve geli┼čmi┼č nesne alg─▒lama modellerinin ├Âl├žeklenebilir da─č─▒t─▒m─▒n─▒ sunar.

Neural Magic'un DeepSparse Teknolojisi Nas─▒l ├çal─▒┼č─▒r?

Neural Magic's Deep Sparse technology is inspired by the human brain's efficiency in neural network computation. It adopts two key principles from the brain as follows:

  • Seyreklik: Seyrekle┼čtirme s├╝reci, derin ├Â─črenme a─člar─▒ndaki gereksiz bilgilerin budanmas─▒n─▒ i├žerir ve do─čruluktan ├Âd├╝n vermeden daha k├╝├ž├╝k ve daha h─▒zl─▒ modellere yol a├žar. Bu teknik, a─č─▒n boyutunu ve hesaplama ihtiya├žlar─▒n─▒ ├Ânemli ├Âl├ž├╝de azalt─▒r.

  • Referans─▒n Yerelli─či: DeepSparse, a─č─▒ Tensor S├╝tunlar─▒na b├Âlen benzersiz bir y├╝r├╝tme y├Ântemi kullan─▒r. Bu s├╝tunlar, tamamen CPU'nun ├Ânbelle─čine s─▒─čacak ┼čekilde derinlemesine y├╝r├╝t├╝l├╝r. Bu yakla┼č─▒m, beynin verimlili─čini taklit ederek veri hareketini en aza indirir ve CPU'nun ├Ânbellek kullan─▒m─▒n─▒ en ├╝st d├╝zeye ├ž─▒kar─▒r.

Neural Magic'un DeepSparse Teknolojisi Nas─▒l ├çal─▒┼č─▒r?

Neural Magic'un DeepSparse teknolojisinin nas─▒l ├žal─▒┼čt─▒─č─▒ hakk─▒nda daha fazla ayr─▒nt─▒ i├žin blog g├Ânderilerine g├Âz at─▒n.

├ľzel Bir Veri K├╝mesi ├ťzerinde E─čitilmi┼č YOLOv8 'un Seyrek Bir S├╝r├╝m├╝n├╝ Olu┼čturma

Neural Magic taraf─▒ndan geli┼čtirilen a├ž─▒k kaynakl─▒ bir model deposu olan SparseZoo, ├Ânceden ayr─▒┼čt─▒r─▒lm─▒┼č YOLOv8 model kontrol noktalar─▒ndan olu┼čan bir koleksiyon sunmaktad─▒r. Ultralytics ile sorunsuz bir ┼čekilde entegre olan SparseML ile kullan─▒c─▒lar, basit bir komut sat─▒r─▒ aray├╝z├╝ kullanarak bu seyrek kontrol noktalar─▒na kendi ├Âzel veri k├╝melerinde zahmetsizce ince ayar yapabilirler.

Daha fazla ayr─▒nt─▒ i├žin Neural Magic'un SparseML YOLOv8 belgelerine g├Âz at─▒n.

Kullan─▒m: DeepSparse kullanarak YOLOV8 adresini da─č─▒tma

YOLOv8 adresini Neural Magic's DeepSparse ile da─č─▒tmak birka├ž basit ad─▒m─▒ i├žerir. Kullan─▒m talimatlar─▒na ge├žmeden ├Ânce, Ultralytics taraf─▒ndan sunulanYOLOv8 modelleri yelpazesine g├Âz att─▒─č─▒n─▒zdan emin olun. Bu, proje gereksinimleriniz i├žin en uygun modeli se├žmenize yard─▒mc─▒ olacakt─▒r. ─░┼čte nas─▒l ba┼člayabilece─činiz.

Ad─▒m 1: Kurulum

Gerekli paketleri y├╝klemek i├žin ├žal─▒┼čt─▒r─▒n:

Kurulum

# Install the required packages
pip install deepsparse[yolov8]

Ad─▒m 2: YOLOv8 adresini ONNX Format─▒na Aktarma

DeepSparse Engine, YOLOv8 modellerinin ONNX bi├žiminde olmas─▒n─▒ gerektirir. Modelinizi bu formata aktarmak DeepSparse ile uyumluluk i├žin gereklidir. YOLOv8 modellerini d─▒┼ča aktarmak i├žin a┼ča─č─▒daki komutu kullan─▒n:

Model ─░hracat─▒

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

Bu komut a┼ča─č─▒dakileri kaydedecektir yolov8n.onnx modelini diskinize y├╝kleyin.

Ad─▒m 3: ├ç─▒kar─▒mlar─▒ Da─č─▒tma ve ├çal─▒┼čt─▒rma

YOLOv8 modeliniz ONNX bi├žimindeyken DeepSparse kullanarak ├ž─▒kar─▒mlar─▒ da─č─▒tabilir ve ├žal─▒┼čt─▒rabilirsiniz. Bu, sezgisel Python API'si ile kolayca yap─▒labilir:

├ç─▒kar─▒mlar─▒ Da─č─▒tma ve ├çal─▒┼čt─▒rma

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)

Ad─▒m 4: Performans Kar┼č─▒la┼čt─▒rmas─▒

YOLOv8 modelinizin DeepSparse ├╝zerinde en iyi ┼čekilde ├žal─▒┼č─▒p ├žal─▒┼čmad─▒─č─▒n─▒ kontrol etmek ├Ânemlidir. Verim ve gecikme s├╝resini analiz etmek i├žin modelinizin performans─▒n─▒ k─▒yaslayabilirsiniz:

K─▒yaslama

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

Ad─▒m 5: Ek ├ľzellikler

DeepSparse, g├Âr├╝nt├╝ a├ž─▒klama ve veri k├╝mesi de─čerlendirmesi gibi uygulamalarda YOLOv8 'un pratik entegrasyonu i├žin ek ├Âzellikler sa─člar.

Ek ├ľzellikler

# 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"

Annotate komutunu ├žal─▒┼čt─▒rmak, belirtti─činiz g├Âr├╝nt├╝y├╝ i┼čler, nesneleri alg─▒lar ve s─▒n─▒rlay─▒c─▒ kutular ve s─▒n─▒fland─▒rmalarla birlikte a├ž─▒klamal─▒ g├Âr├╝nt├╝y├╝ kaydeder. A├ž─▒klamal─▒ g├Âr├╝nt├╝ bir annotation-results klas├Âr├╝nde saklanacakt─▒r. Bu, modelin alg─▒lama yeteneklerinin g├Ârsel bir temsilini sa─člamaya yard─▒mc─▒ olur.

G├Âr├╝nt├╝ Ek A├ž─▒klama ├ľzelli─či

eval komutunu ├žal─▒┼čt─▒rd─▒ktan sonra, hassasiyet, geri ├ža─č─▒rma ve mAP (ortalama Ortalama Hassasiyet) gibi ayr─▒nt─▒l─▒ ├ž─▒kt─▒ ├Âl├ž├╝mleri alacaks─▒n─▒z. Bu, modelinizin veri k├╝mesi ├╝zerindeki performans─▒na ili┼čkin kapsaml─▒ bir g├Âr├╝n├╝m sa─člar. Bu i┼člevsellik, YOLOv8 modellerinizi belirli kullan─▒m durumlar─▒ i├žin ince ayar yapmak ve optimize etmek, y├╝ksek do─čruluk ve verimlilik sa─člamak i├žin ├Âzellikle yararl─▒d─▒r.

├ľzet

This guide explored integrating Ultralytics' YOLOv8 with Neural Magic's DeepSparse Engine. It highlighted how this integration enhances YOLOv8's performance on CPU platforms, offering GPU-level efficiency and advanced neural network sparsity techniques.

For more detailed information and advanced usage, visit Neural Magic's DeepSparse documentation. Also, check out Neural Magic's documentation on the integration with YOLOv8 here and watch a great session on it here.

Ayr─▒ca, ├že┼čitli YOLOv8 entegrasyonlar─▒ hakk─▒nda daha geni┼č bir anlay─▒┼č i├žin, bir dizi di─čer heyecan verici entegrasyon olas─▒l─▒─č─▒n─▒ ke┼čfedebilece─činiz Ultralytics entegrasyon k─▒lavuzu sayfas─▒n─▒ ziyaret edin.



Created 2023-12-30, Updated 2024-06-02
Authors: glenn-jocher (6), abirami-vina (1)

Yorumlar