Salta para o conte√ļdo

Otimizar YOLOv8 Inferências com o motor DeepSparse de Neural Magic

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 YOLOv8com o DeepSparse Engine do Neural Magic. Transforma a forma como os modelos YOLOv8 s√£o executados e permite o desempenho ao n√≠vel da GPU diretamente em CPUs.

Este guia mostra-te como implementar YOLOv8 utilizando Neural Magic's DeepSparse, 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 do DeepSparse de Neural Magiccom YOLOv8

Antes de mergulhar em como implantar YOLOV8 usando DeepSparse, vamos entender os benefícios de usar DeepSparse. Algumas das principais vantagens 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 da 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 MagicA tecnologia Deep Sparse da Microsoft é inspirada na eficiência do cérebro humano na computação de redes neurais. Adopta dois princípios-chave do cérebro, como se 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 da CPU. Essa abordagem imita a efici√™ncia do c√©rebro, minimizando a movimenta√ß√£o de dados e maximizando o uso do cache da 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 da 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

Implantar o YOLOv8 com o DeepSparse do Neural Magic envolve algumas etapas 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 essa integração melhora o desempenho do YOLOv8 em plataformas de CPU, oferecendo eficiência no nível da GPU e técnicas avançadas de esparsidade de rede neural.

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 Magicsobre 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.



Criado em 2023-12-30, Atualizado em 2024-03-03
Autores: glenn-jocher (2), abirami-vina (1)

Coment√°rios