Ir al contenido

Exportación de Ultralytics YOLO NCNN

El despliegue de modelos de visión artificial en dispositivos con potencia computacional limitada, como sistemas móviles o embebidos, requiere una cuidadosa selección del formato. El uso de un formato optimizado garantiza que incluso los dispositivos con recursos limitados puedan manejar tareas avanzadas de visión artificial de manera eficiente.

La exportación al formato NCNN le permite optimizar sus modelos Ultralytics YOLO26 para aplicaciones ligeras basadas en dispositivos. Esta guía cubre cómo convertir sus modelos al formato NCNN para mejorar el rendimiento en dispositivos móviles y embebidos.

¿Por qué exportar a NCNN?

Marco de inferencia de redes neuronales NCNN

El framework NCNN, desarrollado por Tencent, es un framework de computación de inferencia de redes neuronales de alto rendimiento optimizado específicamente para plataformas móviles, incluidos teléfonos móviles, dispositivos integrados y dispositivos IoT. NCNN es compatible con una amplia gama de plataformas, incluyendo Linux, Android, iOS y macOS.

NCNN es conocido por su rápida velocidad de procesamiento en CPU móviles y permite el despliegue rápido de modelos de aprendizaje profundo en plataformas móviles, lo que lo convierte en una excelente opción para construir aplicaciones impulsadas por IA.

Características principales de los modelos NCNN

Los modelos NCNN proporcionan varias características clave que permiten el aprendizaje automático en el dispositivo, ayudando a los desarrolladores a desplegar modelos en dispositivos móviles, embebidos y de borde:

  • Eficientes y de Alto Rendimiento: Los modelos NCNN son ligeros y están optimizados para dispositivos móviles y embebidos como Raspberry Pi con recursos limitados, manteniendo una alta precisión en tareas de visión artificial.

  • Cuantificación: NCNN soporta la cuantificación, una técnica que reduce la precisión de los pesos y activaciones del modelo para mejorar el rendimiento y reducir la huella de memoria.

  • Compatibilidad: Los modelos NCNN son compatibles con frameworks populares de aprendizaje profundo, incluyendo TensorFlow, Caffe y ONNX, lo que permite a los desarrolladores aprovechar modelos y flujos de trabajo existentes.

  • Facilidad de Uso: NCNN ofrece herramientas fáciles de usar para la conversión de modelos entre formatos, asegurando una interoperabilidad fluida en diferentes entornos de desarrollo.

  • Aceleración GPU con Vulkan: NCNN es compatible con Vulkan para la inferencia acelerada por GPU en múltiples proveedores, incluyendo AMD, Intel y otras GPU que no son NVIDIA, lo que permite una implementación de alto rendimiento en una gama más amplia de hardware.

Opciones de implementación con NCNN

Los modelos NCNN son compatibles con una variedad de plataformas de despliegue:

  • Despliegue Móvil: Optimizados para Android e iOS, permitiendo una integración perfecta en aplicaciones móviles para una inferencia eficiente en el dispositivo.

  • Sistemas Embebidos y Dispositivos IoT: Ideales para dispositivos con recursos limitados como Raspberry Pi y NVIDIA Jetson. Si la inferencia estándar en una Raspberry Pi con la Guía de Ultralytics es insuficiente, NCNN puede proporcionar mejoras significativas en el rendimiento.

  • Despliegue en Escritorio y Servidor: Soporta el despliegue en Linux, Windows y macOS para flujos de trabajo de desarrollo, entrenamiento y evaluación.

Aceleración de GPU con Vulkan

NCNN soporta la aceleración por GPU a través de Vulkan, permitiendo una inferencia de alto rendimiento en una amplia gama de GPU, incluyendo tarjetas gráficas AMD, Intel y otras que no son NVIDIA. Esto es particularmente útil para:

  • Soporte de GPU Multi-Proveedor: A diferencia de CUDA, que está limitado a las GPU de NVIDIA, Vulkan funciona con múltiples proveedores de GPU.
  • Sistemas Multi-GPU: Seleccione un dispositivo Vulkan específico en sistemas con múltiples GPU utilizando device="vulkan:0", device="vulkan:1", etc.
  • Despliegues en Edge y Escritorio: Aproveche la aceleración por GPU en dispositivos donde CUDA no está disponible.

Para usar la aceleración de Vulkan, especifique el dispositivo Vulkan al ejecutar la inferencia:

Inferencia con Vulkan

from ultralytics import YOLO

# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")

# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")

# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")
# Run inference with Vulkan GPU acceleration
yolo predict model='./yolo26n_ncnn_model' source='https://ultralytics.com/images/bus.jpg' device=vulkan:0

Requisitos de Vulkan

Asegúrese de tener los controladores de Vulkan instalados para su GPU. La mayoría de los controladores de GPU modernos incluyen soporte para Vulkan por defecto. Puede verificar la disponibilidad de Vulkan utilizando herramientas como vulkaninfo en Linux o el SDK de Vulkan en Windows.

Exportar a NCNN: Conversión de su modelo YOLO26

Puede ampliar la compatibilidad del modelo y la flexibilidad de despliegue convirtiendo los modelos YOLO26 al formato NCNN.

Instalación

Para instalar los paquetes necesarios, ejecute:

Instalación

# Install the required package for YOLO26
pip install ultralytics

Para obtener instrucciones detalladas y mejores prácticas, consulte la guía de instalación de Ultralytics. Si encuentra alguna dificultad, consulte nuestra guía de problemas comunes para encontrar soluciones.

Uso

Todos los modelos Ultralytics YOLO26 están diseñados para soportar la exportación de forma nativa, facilitando su integración en su flujo de trabajo de despliegue preferido. Puede ver la lista completa de formatos de exportación y opciones de configuración compatibles para elegir la mejor configuración para su aplicación.

Uso

from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolo26n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO26n PyTorch model to NCNN format
yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolo26n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

Argumentos de exportación

ArgumentoTipoPredeterminadoDescripción
formatstr'ncnn'Formato de destino para el modelo exportado, que define la compatibilidad con varios entornos de implementación.
imgszint o tuple640Tamaño de imagen deseado para la entrada del modelo. Puede ser un entero para imágenes cuadradas o una tupla (height, width) para dimensiones específicas.
halfboolFalseActiva la cuantización FP16 (media precisión), reduciendo el tamaño del modelo y, potencialmente, acelerando la inferencia en hardware compatible.
batchint1Especifica el tamaño del lote de inferencia del modelo exportado o el número máximo de imágenes que el modelo exportado procesará simultáneamente en predict modo.
devicestrNoneEspecifica el dispositivo para la exportación: GPU (device=0), CPU (device=cpu), MPS para Apple silicon (device=mps).

Para obtener más detalles sobre el proceso de exportación, visita la página de documentación de Ultralytics sobre la exportación.

Despliegue de modelos NCNN YOLO26 exportados

Después de exportar sus modelos Ultralytics YOLO26 al formato NCNN, puede desplegarlos utilizando el YOLO("yolo26n_ncnn_model/") método como se muestra en el ejemplo de uso anterior. Para obtener instrucciones de despliegue específicas de la plataforma, consulte los siguientes recursos:

  • Android: Compile e integre modelos NCNN para la detección de objetos en aplicaciones Android.

  • macOS: Despliegue modelos NCNN en sistemas macOS.

  • Linux: Despliegue modelos NCNN en dispositivos Linux, incluyendo Raspberry Pi y sistemas embebidos similares.

  • Windows x64: Despliegue modelos NCNN en Windows x64 utilizando Visual Studio.

Resumen

Esta guía cubrió la exportación de modelos Ultralytics YOLO26 al formato NCNN para mejorar la eficiencia y velocidad en dispositivos con recursos limitados.

Para detalles adicionales, consulte la documentación oficial de NCNN. Para otras opciones de exportación, visite nuestra página de guía de integración.

Preguntas frecuentes

¿Cómo exporto modelos Ultralytics YOLO26 al formato NCNN?

Para exportar su modelo Ultralytics YOLO26 al formato NCNN:

  • Python: Utiliza el export método de la clase YOLO.

    from ultralytics import YOLO
    
    # Load the YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export to NCNN format
    model.export(format="ncnn")  # creates '/yolo26n_ncnn_model'
    
  • CLI: Utiliza el yolo export comando.

    yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
    

Para opciones de exportación detalladas, consulte la documentación de Exportación.

¿Cuáles son las ventajas de exportar modelos YOLO26 a NCNN?

La exportación de sus modelos Ultralytics YOLO26 a NCNN ofrece varios beneficios:

  • Eficiencia: Los modelos NCNN están optimizados para dispositivos móviles e integrados, lo que garantiza un alto rendimiento incluso con recursos computacionales limitados.
  • Cuantización: NCNN admite técnicas como la cuantización que mejoran la velocidad del modelo y reducen el uso de memoria.
  • Amplia Compatibilidad: Puede implementar modelos NCNN en múltiples plataformas, incluyendo Android, iOS, Linux y macOS.
  • Aceleración GPU con Vulkan: Aproveche la aceleración GPU en AMD, Intel y otras GPU no NVIDIA a través de Vulkan para una inferencia más rápida.

Para más detalles, consulte la sección ¿Por qué exportar a NCNN?.

¿Por qué debería usar NCNN para mis aplicaciones móviles de IA?

NCNN, desarrollado por Tencent, está específicamente optimizado para plataformas móviles. Las razones clave para usar NCNN incluyen:

  • Alto Rendimiento: Diseñado para un procesamiento eficiente y rápido en CPU móviles.
  • Multiplataforma: Compatible con frameworks populares como TensorFlow y ONNX, lo que facilita la conversión e implementación de modelos en diferentes plataformas.
  • Soporte de la comunidad: El soporte activo de la comunidad garantiza mejoras y actualizaciones continuas.

Para más información, consulte la sección Características clave de los modelos NCNN.

¿Qué plataformas son compatibles con la implementación de modelos NCNN?

NCNN es versátil y soporta varias plataformas:

  • Móvil: Android, iOS.
  • Sistemas integrados y dispositivos IoT: Dispositivos como Raspberry Pi y NVIDIA Jetson.
  • Equipos de escritorio y servidores: Linux, Windows y macOS.

Para un rendimiento mejorado en Raspberry Pi, considere usar el formato NCNN como se detalla en nuestra Guía de Raspberry Pi.

¿Cómo puedo desplegar modelos NCNN Ultralytics YOLO26 en Android?

Para desplegar sus modelos YOLO26 en Android:

  1. Construir para Android: Siga la guía NCNN Build for Android.
  2. Intégrelo con su aplicación: Utilice el SDK NCNN Android para integrar el modelo exportado en su aplicación para una inferencia eficiente en el dispositivo.

Para instrucciones detalladas, consulte Despliegue de modelos NCNN YOLO26 exportados.

Para guías y casos de uso más avanzados, visite la guía de despliegue de Ultralytics.

¿Cómo utilizo la aceleración de GPU con Vulkan en modelos NCNN?

NCNN es compatible con Vulkan para la aceleración GPU en AMD, Intel y otras GPU no NVIDIA. Para usar Vulkan:

from ultralytics import YOLO

# Load NCNN model and run with Vulkan GPU
model = YOLO("yolo26n_ncnn_model")
results = model("image.jpg", device="vulkan:0")  # Use first Vulkan device

Para sistemas multi-GPU, especifique el índice del dispositivo (p. ej., vulkan:1 para la segunda GPU). Asegúrese de que los controladores de Vulkan estén instalados para su GPU. Consulte la Aceleración de GPU con Vulkan sección para obtener más detalles.



📅 Creado hace 1 año ✏️ Actualizado hace 4 días
glenn-jocherlakshanthadRizwanMunawarFaerbitpderrengerlakshanthadUltralyticsAssistantMatthewNoyceabirami-vina

Comentarios