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