Ir al contenido

Optimización de las inferencias de YOLO11 con el motor DeepSparse de Neural Magic

Al implementar modelos de detección de objetos como Ultralytics YOLO11 en varios hardwares, puede encontrarse con problemas únicos como la optimización. Aquí es donde entra en juego la integración de YOLO11 con el DeepSparse Engine de Neural Magic. Transforma la forma en que se ejecutan los modelos YOLO11 y permite un rendimiento a nivel de GPU directamente en las CPU.

Esta guía le muestra cómo implementar YOLO11 utilizando DeepSparse de Neural Magic, cómo ejecutar inferencias y también cómo evaluar el rendimiento para asegurar que está optimizado.

Fin de vida útil de SparseML

Neural Magic era adquirida por Red Hat en enero de 2025, y está dejando de lado las versiones comunitarias de sus deepsparse, sparseml, sparsezoo, y sparsify bibliotecas. Para obtener información adicional, consulte el aviso publicado en el Readme en el sparseml Repositorio de GitHub.

DeepSparse de Neural Magic

Visión general de DeepSparse de Neural Magic

DeepSparse de Neural Magic es un tiempo de ejecución de inferencia diseñado para optimizar la ejecución de redes neuronales en CPUs. Aplica técnicas avanzadas como la dispersión, la poda y la cuantificació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 DeepSparse de Neural Magic con YOLO11

Antes de profundizar en cómo implementar YOLO11 utilizando DeepSparse, comprendamos los beneficios de usar DeepSparse. Algunas ventajas clave incluyen:

  • Velocidad de inferencia mejorada: Alcanza hasta 525 FPS (en YOLO11n), lo que acelera significativamente las capacidades de inferencia de YOLO11 en comparación con los métodos tradicionales.

Velocidad de inferencia mejorada

  • Eficiencia del modelo optimizada: Utiliza la poda y la cuantización para mejorar la eficiencia de YOLO11, reduciendo el tamaño del modelo y los requisitos computacionales, manteniendo la precisión.

Eficiencia de modelo optimizada

  • Alto Rendimiento en CPU Estándar: Ofrece un rendimiento similar al de la GPU en las CPU, lo que proporciona una opción más accesible y rentable para diversas aplicaciones.

  • Integración e implementación optimizadas: Ofrece herramientas fáciles de usar para una fácil integración de YOLO11 en aplicaciones, incluidas las funciones de anotación de imágenes y vídeos.

  • Soporte para varios tipos de modelos: Compatible con modelos YOLO11 estándar y optimizados para la dispersión, lo que añade flexibilidad de implementación.

  • Solución rentable y escalable: Reduce los gastos operativos y ofrece una implementación escalable de modelos avanzados de detección de objetos.

¿Cómo funciona la tecnología DeepSparse de Neural Magic?

La tecnología Deep Sparse de Neural Magic 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:

  • Sparsity: El proceso de sparsification implica la eliminación de información redundante de las redes de deep learning, lo que lleva 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 las necesidades computacionales.

  • Localidad de referencia: DeepSparse utiliza un método de ejecución único, dividiendo la red en columnas de tensores. Estas columnas se ejecutan en profundidad, encajando completamente dentro de 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

Creación de una versión dispersa de YOLO11 entrenada en un conjunto de datos personalizado

SparseZoo, un repositorio de modelos de código abierto de Neural Magic, ofrece una colección de puntos de control de modelos YOLO11 pre-escasificados. Con SparseML, perfectamente integrado con Ultralytics, los usuarios pueden ajustar fácilmente estos puntos de control dispersos en sus conjuntos de datos específicos utilizando una interfaz de línea de comandos sencilla.

Consulta la documentación de SparseML YOLO11 de Neural Magic para obtener más detalles.

Uso: Implementación de YOLO11 utilizando DeepSparse

La implementación de YOLO11 con DeepSparse de Neural Magic implica unos sencillos pasos. Antes de sumergirse en las instrucciones de uso, asegúrese de consultar la gama de modelos YOLO11 que ofrece Ultralytics. Esto le ayudará a elegir el modelo más adecuado para los requisitos de su proyecto. Aquí le mostramos cómo puede empezar.

Paso 1: Instalación

Para instalar los paquetes necesarios, ejecute:

Instalación

# Install the required packages
pip install deepsparse[yolov8]

Paso 2: Exportación de YOLO11 al Formato ONNX

DeepSparse Engine requiere modelos YOLO11 en formato ONNX. Exportar su modelo a este formato es esencial para la compatibilidad con DeepSparse. Utilice el siguiente comando para exportar modelos YOLO11:

Exportación del Modelo

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

Este comando guardará el yolo11n.onnx modelo a su disco.

Paso 3: Implementación y ejecución de inferencias

Con tu modelo YOLO11 en formato ONNX, puedes implementar y ejecutar inferencias utilizando DeepSparse. Esto se puede hacer fácilmente con su intuitiva API de python:

Implementación y ejecución de inferencias

from deepsparse import Pipeline

# Specify the path to your YOLO11 ONNX model
model_path = "path/to/yolo11n.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 verificar que tu modelo YOLO11 esté funcionando de manera óptima en DeepSparse. Puedes evaluar el rendimiento de tu modelo para analizar el rendimiento y la latencia:

Evaluación comparativa

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

Paso 5: Características adicionales

DeepSparse proporciona características adicionales para la integración práctica de YOLO11 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/yolo11n.onnx"

# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolo11n.onnx"

Al ejecutar el comando annotate se procesa la imagen especificada, se detectan objetos y se guarda la imagen anotada con cuadros delimitadores y clasificaciones. La imagen anotada se almacenará en una carpeta de annotation-results. Esto ayuda a proporcionar una representación visual de las capacidades de detección del modelo.

Función de anotación de imágenes

Después de ejecutar el comando eval, recibirás métricas de salida detalladas como precisión, recall y mAP (precisión media promedio). Esto proporciona una visión completa del rendimiento de tu modelo en el conjunto de datos. Esta funcionalidad es particularmente útil para ajustar y optimizar tus modelos YOLO11 para casos de uso específicos, garantizando una alta precisión y eficiencia.

Resumen

Esta guía exploró la integración de YOLO11 de Ultralytics con el motor DeepSparse de Neural Magic. Destacó cómo esta integración mejora el rendimiento de YOLO11 en plataformas CPU, ofreciendo eficiencia a nivel de GPU y técnicas avanzadas de esparcimiento de redes neuronales.

Para obtener información más detallada y un uso avanzado, visite la documentación de DeepSparse de Neural Magic. También puede explorar la guía de integración de YOLO11 y ver una sesión explicativa en YouTube.

Además, para una comprensión más amplia de las diversas integraciones de YOLO11, visite la página de la guía de integración de Ultralytics, donde podrá descubrir una variedad de otras posibilidades de integración interesantes.

Preguntas frecuentes

¿Qué es el motor DeepSparse de Neural Magic y cómo optimiza el rendimiento de YOLO11?

El motor DeepSparse de Neural Magic es un entorno de ejecución de inferencia diseñado para optimizar la ejecución de redes neuronales en las CPUs mediante técnicas avanzadas como la dispersión, la poda y la cuantificación. Al integrar DeepSparse con YOLO11, puede lograr un rendimiento similar al de la GPU en las CPUs estándar, mejorando significativamente la velocidad de inferencia, la eficiencia del modelo y el rendimiento general, manteniendo la precisión. Para obtener más detalles, consulte la sección DeepSparse de Neural Magic.

¿Cómo puedo instalar los paquetes necesarios para implementar YOLO11 usando DeepSparse de Neural Magic?

La instalación de los paquetes necesarios para implementar YOLO11 con DeepSparse de Neural Magic es sencilla. Puede instalarlos fácilmente utilizando la CLI. Aquí está el comando que necesita ejecutar:

pip install deepsparse[yolov8]

Una vez instalado, siga los pasos proporcionados en la sección de instalación para configurar su entorno y comenzar a usar DeepSparse con YOLO11.

¿Cómo convierto los modelos YOLO11 al formato ONNX para usarlos con DeepSparse?

Para convertir modelos YOLO11 al formato ONNX, que es necesario para la compatibilidad con DeepSparse, puedes utilizar el siguiente comando de la CLI:

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

Este comando exportará tu modelo YOLO11 (yolo11n.pt) a un formato (yolo11n.onnx) que puede ser utilizado por el motor DeepSparse. Puede encontrar más información sobre la exportación de modelos en el Sección de Exportación del Modelo.

¿Cómo evalúo el rendimiento de YOLO11 en el motor DeepSparse?

La evaluación comparativa del rendimiento de YOLO11 en DeepSparse le ayuda a analizar el rendimiento y la latencia para garantizar que su modelo esté optimizado. Puede utilizar el siguiente comando de la CLI para ejecutar una prueba comparativa:

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

Este comando te proporcionará métricas de rendimiento vitales. Para obtener más detalles, consulta la sección Benchmarking Performance section.

¿Por qué debería usar DeepSparse de Neural Magic con YOLO11 para tareas de detección de objetos?

Integrar DeepSparse de Neural Magic con YOLO11 ofrece varias ventajas:

  • Velocidad de inferencia mejorada: Alcanza hasta 525 FPS, lo que acelera significativamente las capacidades de YOLO11.
  • Eficiencia del modelo optimizada: Utiliza técnicas de esparcimiento, 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 la GPU en hardware de CPU rentable.
  • Integración optimizada: Herramientas fáciles de usar para una fácil implementación e integración.
  • Flexibilidad: Admite modelos YOLO11 estándar y optimizados para la dispersión.
  • Rentable: Reduce los gastos operativos mediante la utilización eficiente de los recursos.

Para un análisis más profundo de estas ventajas, visite la sección de Beneficios de integrar DeepSparse de Neural Magic con YOLO11.



📅 Creado hace 1 año ✏️ Actualizado hace 7 días

Comentarios