Saltar al contenido

Optimizaci贸n de las inferencias de YOLOv8 con el motor DeepSparse de Neural Magic

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 entra en juego la integraci贸n de YOLOv8con el motor DeepSparse de Neural Magic. Transforma la forma en que se ejecutan los modelos YOLOv8 y permite un rendimiento a nivel de 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 MagicDeepSparse 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.

Ventajas de integrar Neural Magic's DeepSparse con YOLOv8

Antes de sumergirnos en c贸mo desplegar YOLOV8 utilizando DeepSparse, vamos a entender las ventajas de utilizar DeepSparse. Algunas ventajas clave 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 la 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 Magicse inspira en la eficacia del cerebro humano en el c谩lculo de redes neuronales. Adopta dos principios clave del cerebro:

  • 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 la CPU. Este enfoque imita la eficiencia del cerebro, minimizando el movimiento de datos y maximizando el uso de la cach茅 de la 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 de CPU, ofreciendo eficiencia a nivel de GPU y t茅cnicas avanzadas de sparsity 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 Magicsobre 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.



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

Comentarios