Saltar al contenido

Optimizar YOLOv8 Inferencias con Neural Magic's DeepSparse Engine

Al desplegar modelos de detecci贸n de objetos como Ultralytics YOLOv8 en distintos equipos, puedes encontrarte con problemas espec铆ficos, como la optimizaci贸n. Aqu铆 es donde interviene la integraci贸n de YOLOv8 con el motor DeepSparse de Neural Magic. Transforma la forma en que se ejecutan los modelos YOLOv8 y permite un rendimiento de nivel GPU directamente en las CPU.

Esta gu铆a te muestra c贸mo desplegar YOLOv8 utilizando Neural Magic's DeepSparse, c贸mo ejecutar inferencias y tambi茅n c贸mo comparar el rendimiento para asegurarte de que est谩 optimizado.

Neural MagicDeepSparse

Neural MagicVisi贸n general de DeepSparse

Neural Magic's DeepSparse es un tiempo de ejecuci贸n de inferencia dise帽ado para optimizar la ejecuci贸n de redes neuronales en CPU. Aplica t茅cnicas avanzadas como la dispersi贸n, la poda y la cuantizaci贸n para reducir dr谩sticamente las demandas computacionales, manteniendo la precisi贸n. DeepSparse ofrece una soluci贸n 谩gil para la ejecuci贸n eficiente y escalable de redes neuronales en varios dispositivos.

Beneficios de la integraci贸n Neural Magic's DeepSparse con YOLOv8

Antes de sumergirse en c贸mo implementar YOLOV8 usando DeepSparse, entendamos los beneficios de usar DeepSparse. Algunas de las principales ventajas son:

  • Velocidad de inferencia mejorada: Alcanza hasta 525 FPS (en YOLOv8n), acelerando significativamente la capacidad de inferencia de YOLOv8 en comparaci贸n con los m茅todos tradicionales.

Velocidad de inferencia mejorada

  • Eficiencia optimizada del modelo: Utiliza la poda y la cuantizaci贸n para mejorar la eficacia de YOLOv8, reduciendo el tama帽o del modelo y los requisitos computacionales, pero manteniendo la precisi贸n.

Eficiencia del modelo optimizado

  • Alto rendimiento en CPU est谩ndar: Ofrece un rendimiento similar al de GPU en CPUs, proporcionando una opci贸n m谩s accesible y rentable para diversas aplicaciones.

  • Integraci贸n y despliegue racionalizados: Ofrece herramientas f谩ciles de usar para integrar f谩cilmente YOLOv8 en las aplicaciones, incluidas las funciones de anotaci贸n de im谩genes y v铆deos.

  • Compatibilidad con varios tipos de modelos: Compatible tanto con los modelos est谩ndar como con los optimizados para la dispersi贸n YOLOv8 , lo que a帽ade flexibilidad de despliegue.

  • Soluci贸n rentable y escalable: Reduce los gastos operativos y ofrece un despliegue escalable de modelos avanzados de detecci贸n de objetos.

驴C贸mo funciona la tecnolog铆a DeepSparse de Neural Magic?

Neural MagicLa tecnolog铆a Deep Sparse est谩 inspirada en la eficiencia del cerebro humano en la computaci贸n de redes neuronales. Adopta dos principios clave del cerebro de la siguiente manera:

  • Dispersi贸n: El proceso de sparsificaci贸n consiste en podar la informaci贸n redundante de las redes de aprendizaje profundo, lo que da lugar a modelos m谩s peque帽os y r谩pidos sin comprometer la precisi贸n. Esta t茅cnica reduce significativamente el tama帽o de la red y sus necesidades computacionales.

  • Localidad de referencia: DeepSparse utiliza un m茅todo de ejecuci贸n 煤nico, dividiendo la red en Tensor Columnas. Estas columnas se ejecutan en profundidad, encajando totalmente en la cach茅 de CPU. Este enfoque imita la eficiencia del cerebro, minimizando el movimiento de datos y maximizando el uso de la cach茅 de CPU.

C贸mo funciona la tecnolog铆a DeepSparse de Neural Magic

Para m谩s detalles sobre el funcionamiento de la tecnolog铆a DeepSparse de Neural Magic, consulta la entrada de su blog.

Crear una versi贸n dispersa de YOLOv8 entrenada con un conjunto de datos personalizado

SparseZoo, un repositorio de modelos de c贸digo abierto de Neural Magic, ofrece una colecci贸n de puntos de comprobaci贸n de modelos YOLOv8 preespaciados. Con SparseML, perfectamente integrado en Ultralytics, los usuarios pueden ajustar sin esfuerzo estos puntos de control dispersos en sus conjuntos de datos espec铆ficos mediante una sencilla interfaz de l铆nea de comandos.

Consulta la documentaci贸n deNeural Magic's SparseML YOLOv8 para m谩s detalles.

Utilizaci贸n: Despliegue de YOLOV8 utilizando DeepSparse

Desplegar YOLOv8 con Neural Magic's DeepSparse implica unos cuantos pasos sencillos. Antes de sumergirte en las instrucciones de uso, aseg煤rate de consultar la gama de modelosYOLOv8 que ofrece Ultralytics. Esto te ayudar谩 a elegir el modelo m谩s apropiado para los requisitos de tu proyecto. As铆 es como puedes empezar.

Paso 1: Instalaci贸n

Para instalar los paquetes necesarios, ejecuta

Instalaci贸n

# Install the required packages
pip install deepsparse[yolov8]

Paso 2: Exportar YOLOv8 al formato ONNX

El motor DeepSparse requiere modelos YOLOv8 en formato ONNX . Exportar tu modelo a este formato es esencial para la compatibilidad con DeepSparse. Utiliza el siguiente comando para exportar modelos YOLOv8 :

Modelo de exportaci贸n

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

Este comando guardar谩 la yolov8n.onnx modelo a tu disco.

Paso 3: Desplegar y ejecutar inferencias

Con tu modelo YOLOv8 en formato ONNX , puedes desplegar y ejecutar inferencias utilizando DeepSparse. Esto puede hacerse f谩cilmente con su intuitiva API Python :

Desplegar y ejecutar inferencias

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)

Paso 4: Evaluaci贸n comparativa del rendimiento

Es importante comprobar que tu modelo YOLOv8 funciona de forma 贸ptima en DeepSparse. Puedes comparar el rendimiento de tu modelo para analizar el rendimiento y la latencia:

Evaluaci贸n comparativa

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

Paso 5: Funciones adicionales

DeepSparse proporciona funciones adicionales para la integraci贸n pr谩ctica de YOLOv8 en aplicaciones, como la anotaci贸n de im谩genes y la evaluaci贸n de conjuntos de datos.

Caracter铆sticas adicionales

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

Ejecutar el comando anotar procesa tu imagen especificada, detectando objetos y guardando la imagen anotada con cuadros delimitadores y clasificaciones. La imagen anotada se guardar谩 en una carpeta de resultados de anotaci贸n. Esto ayuda a proporcionar una representaci贸n visual de las capacidades de detecci贸n del modelo.

Funci贸n de anotaci贸n de im谩genes

Tras ejecutar el comando eval, recibir谩s m茅tricas de salida detalladas, como la precisi贸n, la recuperaci贸n y la mAP (Precisi贸n media promedio). Esto proporciona una visi贸n completa del rendimiento de tu modelo en el conjunto de datos. Esta funcionalidad es especialmente 煤til para ajustar y optimizar tus modelos YOLOv8 para casos de uso espec铆ficos, garantizando una gran precisi贸n y eficacia.

Resumen

Esta gu铆a explora la integraci贸n de Ultralytics' YOLOv8 con Neural Magic's DeepSparse Engine. Destaca c贸mo esta integraci贸n mejora el rendimiento de YOLOv8 en plataformas CPU , ofreciendo una eficiencia de nivel GPU y t茅cnicas avanzadas de dispersi贸n de redes neuronales.

Para obtener informaci贸n m谩s detallada y un uso avanzado, visita la documentaci贸n deNeural Magic's DeepSparse. Tambi茅n puedes consultar la documentaci贸n de Neural Magic sobre la integraci贸n con YOLOv8 aqu铆 y ver una magn铆fica sesi贸n sobre ello aqu铆.

Adem谩s, para una comprensi贸n m谩s amplia de las diversas integraciones de YOLOv8 , visita la p谩gina de la gu铆a de integraci贸nUltralytics , donde podr谩s descubrir otras interesantes posibilidades de integraci贸n.

PREGUNTAS FRECUENTES

驴Qu茅 es el motor DeepSparse de Neural Magic y c贸mo optimiza el rendimiento de YOLOv8 ?

Neural MagicDeepSparse Engine es un tiempo de ejecuci贸n de inferencia dise帽ado para optimizar la ejecuci贸n de redes neuronales en CPU mediante t茅cnicas avanzadas como la dispersi贸n, la poda y la cuantizaci贸n. Integrando DeepSparse con YOLOv8, puedes conseguir un rendimiento similar al de GPU en CPU est谩ndar, mejorando significativamente la velocidad de inferencia, la eficiencia del modelo y el rendimiento general, manteniendo la precisi贸n. Para m谩s detalles, consulta la secci贸n DeepSparse deNeural Magic.

驴C贸mo puedo instalar los paquetes necesarios para desplegar YOLOv8 utilizando Neural Magic's DeepSparse?

Instalar los paquetes necesarios para desplegar YOLOv8 con Neural Magic's DeepSparse es sencillo. Puedes instalarlos f谩cilmente utilizando el comando CLI. 脡ste es el comando que debes ejecutar:

pip install deepsparse[yolov8]

Una vez instalado, sigue los pasos que se indican en la secci贸n Instalaci贸n para configurar tu entorno y empezar a utilizar DeepSparse con YOLOv8.

驴C贸mo convierto los modelos YOLOv8 al formato ONNX para utilizarlos con DeepSparse?

Para convertir los modelos YOLOv8 al formato ONNX , necesario para la compatibilidad con DeepSparse, puedes utilizar el siguiente comando CLI :

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

Este comando exportar谩 tu modelo YOLOv8 (yolov8n.pt) a un formato (yolov8n.onnx) que puede utilizar el motor DeepSparse. Puedes encontrar m谩s informaci贸n sobre la exportaci贸n de modelos en la p谩gina Secci贸n Exportaci贸n de modelos.

驴C贸mo puedo comparar el rendimiento de YOLOv8 con el motor DeepSparse?

La evaluaci贸n comparativa del rendimiento de YOLOv8 en DeepSparse te ayuda a analizar el rendimiento y la latencia para asegurarte de que tu modelo est谩 optimizado. Puedes utilizar el siguiente comando CLI para ejecutar una prueba comparativa:

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

Este comando te proporcionar谩 m茅tricas vitales de rendimiento. Para m谩s detalles, consulta la secci贸n Evaluaci贸n comparativa del rendimiento.

驴Por qu茅 deber铆a utilizar Neural Magic's DeepSparse con YOLOv8 para tareas de detecci贸n de objetos?

La integraci贸n de Neural Magic's DeepSparse con YOLOv8 ofrece varias ventajas:

  • Velocidad de inferencia mejorada: Alcanza hasta 525 FPS, acelerando significativamente las capacidades de YOLOv8.
  • Eficiencia optimizada del modelo: Utiliza t茅cnicas de sparsity, poda y cuantizaci贸n para reducir el tama帽o del modelo y las necesidades computacionales, manteniendo la precisi贸n.
  • Alto rendimiento en CPU est谩ndar: Ofrece un rendimiento similar al de GPU en el econ贸mico hardware CPU .
  • Integraci贸n racionalizada: Herramientas f谩ciles de usar para una implantaci贸n e integraci贸n sencillas.
  • Flexibilidad: Admite modelos est谩ndar y optimizados para la dispersi贸n YOLOv8 .
  • Rentable: Reduce los gastos operativos mediante una utilizaci贸n eficaz de los recursos.

Para profundizar en estas ventajas, visita la secci贸n Ventajas de integrar Neural Magic's DeepSparse con YOLOv8 .



Creado 2023-12-30, Actualizado 2024-07-05
Autores: glenn-jocher (7), abirami-vina (1)

Comentarios