Salta para o conte√ļdo

Otimizando YOLOv8 Inferências com Neural Magic Motor DeepSparse do

Ao implementar modelos de dete√ß√£o de objectos como o Ultralytics YOLOv8 em v√°rios hardwares, podes esbarrar em quest√Ķes √ļnicas como a otimiza√ß√£o. √Č aqui que entra a integra√ß√£o do YOLOv8 com o DeepSparse Engine do Neural Magic. Transforma a forma como os modelos YOLOv8 s√£o executados e permite um desempenho de n√≠vel GPU diretamente em CPUs.

Este guia mostra-te como implementar YOLOv8 utilizando o DeepSparse de Neural Magic, como executar inferências e também como avaliar o desempenho para garantir que está optimizado.

Neural Magic's DeepSparse

Neural MagicVis√£o geral do DeepSparse da 's

Neural MagicO DeepSparse da Microsoft é um tempo de execução de inferência projetado para otimizar a execução de redes neurais em CPUs. Aplica técnicas avançadas como esparsidade, poda e quantização para reduzir drasticamente as demandas computacionais, mantendo a precisão. O DeepSparse oferece uma solução ágil para a execução eficiente e escalável de redes neurais em vários dispositivos.

Benefícios da integração Neural Magic do DeepSparse com YOLOv8

Antes de mergulhar em como implantar YOLOV8 usando DeepSparse, vamos entender os benefícios de usar DeepSparse. Algumas vantagens principais incluem:

  • Velocidade de infer√™ncia melhorada: Atinge at√© 525 FPS (em YOLOv8n), acelerando significativamente as capacidades de infer√™ncia de YOLOv8 em compara√ß√£o com os m√©todos tradicionais.

Velocidade de inferência melhorada

  • Efici√™ncia optimizada do modelo: Usa a poda e a quantiza√ß√£o para melhorar a efici√™ncia do YOLOv8, reduzindo o tamanho do modelo e os requisitos computacionais, mantendo a precis√£o.

Eficiência do modelo optimizado

  • Alto desempenho em CPUs padr√£o: Oferece um desempenho semelhante ao do GPU em CPUs, proporcionando uma op√ß√£o mais acess√≠vel e econ√≥mica para v√°rias aplica√ß√Ķes.

  • Integra√ß√£o e implementa√ß√£o simplificadas: Oferece ferramentas f√°ceis de utilizar para uma integra√ß√£o f√°cil de YOLOv8 em aplica√ß√Ķes, incluindo funcionalidades de anota√ß√£o de imagem e v√≠deo.

  • Suporte para v√°rios tipos de modelos: Compat√≠vel com modelos YOLOv8 padr√£o e otimizados para esparsidade, adicionando flexibilidade de implanta√ß√£o.

  • Solu√ß√£o econ√≥mica e escal√°vel: Reduz as despesas operacionais e oferece uma implementa√ß√£o escal√°vel de modelos avan√ßados de dete√ß√£o de objectos.

Como funciona a tecnologia DeepSparse da Neural Magic?

Neural Magic A tecnologia Deep Sparse da é inspirada na eficiência do cérebro humano na computação de redes neurais. Ele adota dois princípios-chave do cérebro, como segue:

  • Esparsidade: O processo de esparsifica√ß√£o envolve a poda de informa√ß√Ķes redundantes de redes de aprendizagem profunda, levando a modelos menores e mais r√°pidos sem comprometer a precis√£o. Esta t√©cnica reduz significativamente o tamanho da rede e as necessidades computacionais.

  • Localidade de refer√™ncia: O DeepSparse usa um m√©todo de execu√ß√£o exclusivo, dividindo a rede em Tensor Colunas. Essas colunas s√£o executadas em profundidade, cabendo inteiramente no cache do CPU. Essa abordagem imita a efici√™ncia do c√©rebro, minimizando a movimenta√ß√£o de dados e maximizando o uso do cache do CPU.

Como funciona a tecnologia DeepSparse da Neural Magic

Para mais informa√ß√Ķes sobre o funcionamento da tecnologia DeepSparse da Neural Magic, consulta a publica√ß√£o no blogue.

Criando uma vers√£o esparsa de YOLOv8 treinada em um conjunto de dados personalizado

O SparseZoo, um repositório de modelos de código aberto criado por Neural Magic, oferece uma coleção de pontos de controlo de modelos YOLOv8 pré-esparsos. Com o SparseML, perfeitamente integrado em Ultralytics, os utilizadores podem afinar sem esforço estes pontos de verificação esparsos nos seus conjuntos de dados específicos, utilizando uma interface de linha de comandos simples.

Consulta a documentação SparseML YOLOv8 deNeural Magic para obteres mais detalhes.

Usa: Implementando YOLOV8 usando DeepSparse

A implementa√ß√£o do YOLOv8 com o DeepSparse do Neural Magic envolve alguns passos simples. Antes de mergulhar nas instru√ß√Ķes de utiliza√ß√£o, n√£o te esque√ßas de verificar a gama de modelosYOLOv8 oferecidos por Ultralytics. Isto ir√° ajudar-te a escolher o modelo mais apropriado para os requisitos do teu projeto. Eis como podes come√ßar.

Passo 1: Instalação

Para instalar os pacotes necess√°rios, executa:

Instalação

# Install the required packages
pip install deepsparse[yolov8]

Passo 2: Exportar YOLOv8 para o formato ONNX

O DeepSparse Engine requer modelos YOLOv8 no formato ONNX . Exportar o teu modelo para este formato é essencial para a compatibilidade com o DeepSparse. Usa o seguinte comando para exportar modelos YOLOv8 :

Modelo de exportação

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

Este comando guarda o yolov8n.onnx para o teu disco.

Etapa 3: Implantação e execução de inferências

Com o teu modelo YOLOv8 em formato ONNX , podes implementar e executar inferências utilizando o DeepSparse. Isso pode ser feito facilmente com sua intuitiva Python API:

Implantação e execução de inferências

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)

Passo 4: Aferição do desempenho

√Č importante verificar se o teu modelo YOLOv8 tem um desempenho ideal no DeepSparse. Podes comparar o desempenho do teu modelo para analisar a taxa de transfer√™ncia e a lat√™ncia:

Avaliação comparativa

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

Passo 5: Características adicionais

O DeepSparse fornece funcionalidades adicionais para a integra√ß√£o pr√°tica de YOLOv8 em aplica√ß√Ķes, como a anota√ß√£o de imagens e a avalia√ß√£o de conjuntos de dados.

Características adicionais

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

A execu√ß√£o do comando de anota√ß√£o processa a imagem especificada, detectando objectos e guardando a imagem anotada com caixas delimitadoras e classifica√ß√Ķes. A imagem anotada ser√° armazenada em uma pasta de resultados de anota√ß√£o. Isto ajuda a fornecer uma representa√ß√£o visual das capacidades de dete√ß√£o do modelo.

Recurso de anotação de imagens

Depois de executar o comando eval, receber√°s m√©tricas de sa√≠da detalhadas, como precis√£o, recupera√ß√£o e mAP (precis√£o m√©dia m√©dia). Isto fornece uma vis√£o abrangente do desempenho do teu modelo no conjunto de dados. Essa funcionalidade √© particularmente √ļtil para ajustar e otimizar seus modelos YOLOv8 para casos de uso espec√≠ficos, garantindo alta precis√£o e efici√™ncia.

Resumo

Este guia explorou a integração de Ultralytics' YOLOv8 com Neural Magic's DeepSparse Engine. Destacou como esta integração melhora o desempenho de YOLOv8'em CPU plataformas, oferecendo GPU-level efficiency and advanced neural network sparsity techniques.

Para informa√ß√Ķes mais detalhadas e utiliza√ß√£o avan√ßada, visita Neural Magic's DeepSparse documentation. Al√©m disso, consulta a documenta√ß√£o de Neural Magic sobre a integra√ß√£o com YOLOv8 aqui e assiste a uma excelente sess√£o sobre o assunto aqui.

Al√©m disso, para uma compreens√£o mais ampla das v√°rias integra√ß√Ķes de YOLOv8 , visita a p√°gina do guia de integra√ß√£o deUltralytics , onde podes descobrir uma s√©rie de outras possibilidades de integra√ß√£o interessantes.

FAQ

O que é o motor DeepSparse do Neural Magic e como optimiza o desempenho do YOLOv8 ?

Neural MagicO DeepSparse Engine do DeepSparse é um tempo de execução de inferência projetado para otimizar a execução de redes neurais em CPUs por meio de técnicas avançadas, como esparsidade, poda e quantização. Ao integrar o DeepSparse com YOLOv8, é possível obter um desempenho semelhante ao de GPU em CPUs padrão, melhorando significativamente a velocidade de inferência, a eficiência do modelo e o desempenho geral, mantendo a precisão. Para mais detalhes, consulta a secção DeepSparse deNeural Magic.

Como posso instalar os pacotes necess√°rios para implementar YOLOv8 utilizando o DeepSparse de Neural Magic?

Instalar os pacotes necessários para implantar o YOLOv8 com o DeepSparse do Neural Magic é simples. Podes instalá-los facilmente usando o CLI. Aqui está o comando que precisas de executar:

pip install deepsparse[yolov8]

Uma vez instalado, segue os passos fornecidos na secção Instalação para configurar o teu ambiente e começar a utilizar o DeepSparse com YOLOv8.

Como é que converto modelos YOLOv8 para o formato ONNX para utilização com o DeepSparse?

Para converter os modelos YOLOv8 para o formato ONNX , que é necessário para compatibilidade com DeepSparse, podes utilizar o seguinte comando CLI :

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

Este comando exportar√° o teu modelo YOLOv8 (yolov8n.pt) para um formato (yolov8n.onnx) que pode ser utilizado pelo DeepSparse Engine. Mais informa√ß√Ķes sobre a exporta√ß√£o de modelos podem ser encontradas no Sec√ß√£o Exporta√ß√£o de modelos.

Como faço para avaliar o desempenho do YOLOv8 no DeepSparse Engine?

Benchmarking YOLOv8 desempenho no DeepSparse ajuda-te a analisar o rendimento e a latência para garantir que o teu modelo está optimizado. Podes usar o seguinte comando CLI para executar um benchmark:

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

Este comando fornece-te métricas de desempenho vitais. Para obter mais detalhes, consulte a secção Desempenho de avaliação comparativa.

Por que razão devo utilizar o DeepSparse de Neural Magic com YOLOv8 para tarefas de deteção de objectos?

A integração de Neural Magic's DeepSparse com YOLOv8 oferece vários benefícios:

  • Velocidade de infer√™ncia melhorada: Atinge at√© 525 FPS, acelerando significativamente as capacidades do YOLOv8.
  • Efici√™ncia optimizada do modelo: Usa t√©cnicas de esparsidade, poda e quantiza√ß√£o para reduzir o tamanho do modelo e as necessidades computacionais, mantendo a precis√£o.
  • Alto desempenho em CPUs padr√£o: Oferece um desempenho semelhante ao de GPU em hardware CPU econ√≥mico.
  • Integra√ß√£o simplificada: Ferramentas f√°ceis de utilizar para uma f√°cil implementa√ß√£o e integra√ß√£o.
  • Flexibilidade: Suporta modelos YOLOv8 padr√£o e otimizados para esparsidade.
  • Rent√°vel: Reduz as despesas operacionais atrav√©s da utiliza√ß√£o eficiente dos recursos.

Para uma análise mais aprofundada destas vantagens, visita a secção Benefícios da integração do DeepSparse de Neural Magic com YOLOv8 .



Criado em 2023-12-30, Atualizado em 2024-07-05
Autores: glenn-jocher (7), abirami-vina (1)

Coment√°rios