Meet YOLO26: next-gen vision AI.

Link to this sectionExportación de Ultralytics YOLO a NCNN#

Desplegar modelos de visión artificial en dispositivos con potencia computacional limitada, como sistemas móviles o integrados, requiere una selección cuidadosa del formato. Usar un formato optimizado asegura que incluso los dispositivos con recursos restringidos puedan manejar tareas avanzadas de visión artificial de manera eficiente.

Exportar al formato NCNN te permite optimizar tus modelos de Ultralytics YOLO26 para aplicaciones ligeras basadas en dispositivos. Esta guía cubre cómo convertir tus modelos al formato NCNN para mejorar el rendimiento en dispositivos móviles e integrados.

Link to this section¿Por qué exportar a NCNN?#

NCNN high-performance neural network inference framework

El marco de trabajo NCNN, desarrollado por Tencent, es un marco de computación de inferencia de redes neuronales de alto rendimiento optimizado específicamente para plataformas móviles, incluidos teléfonos, 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 CPUs móviles y permite un despliegue rápido de modelos de aprendizaje profundo en plataformas móviles, lo que lo convierte en una excelente opción para crear aplicaciones basadas en IA.

Link to this sectionCaracterísticas clave de los modelos NCNN#

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

  • Eficiente y de alto rendimiento: Los modelos NCNN son ligeros y están optimizados para dispositivos móviles e integrados como Raspberry Pi con recursos limitados, mientras mantienen una alta precisión en tareas de visión artificial.

  • Cuantización: NCNN admite la cuantización, una técnica que reduce la precisión de los pesos y activaciones del modelo para mejorar el rendimiento y reducir el consumo de memoria.

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

  • Facilidad de uso: NCNN proporciona herramientas fáciles de usar para convertir modelos entre formatos, asegurando una interoperabilidad fluida a través de diferentes entornos de desarrollo.

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

Link to this sectionOpciones de despliegue con NCNN#

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

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

  • Sistemas integrados y dispositivos IoT: Ideal para dispositivos con recursos restringidos 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 de rendimiento.

  • Despliegue en escritorio y servidor: Admite el despliegue en Linux, Windows y macOS para flujos de trabajo de desarrollo, entrenamiento y evaluación.

Link to this sectionAceleración de GPU con Vulkan#

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

  • Soporte de GPU multiplataforma: A diferencia de CUDA, que está limitado a las GPUs de NVIDIA, Vulkan funciona a través de múltiples proveedores de GPU.
  • Sistemas multi-GPU: Selecciona un dispositivo Vulkan específico en sistemas con múltiples GPUs usando device="vulkan:0", device="vulkan:1", etc.
  • Despliegues en el borde (Edge) y escritorio: Aprovecha la aceleración de GPU en dispositivos donde CUDA no está disponible.

Para usar la aceleración de Vulkan, especifica 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")
Requisitos de Vulkan

Asegúrate de tener instalados los controladores de Vulkan para tu GPU. La mayoría de los controladores de GPU modernos incluyen soporte para Vulkan de forma predeterminada. Puedes verificar la disponibilidad de Vulkan usando herramientas como vulkaninfo en Linux o el Vulkan SDK en Windows.

Link to this sectionExportar a NCNN: Convirtiendo tu modelo YOLO26#

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

Link to this sectionTareas compatibles#

La exportación a NCNN admite el conjunto estándar de tareas de Ultralytics YOLO26.

Link to this sectionInstalación#

Para instalar los paquetes necesarios, ejecuta:

Instalación
# Install the required package for YOLO26
pip install ultralytics

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

Link to this sectionUso#

Todos los modelos de Ultralytics YOLO26 están diseñados para admitir la exportación de forma nativa, lo que facilita integrarlos en tu flujo de trabajo de despliegue preferido. Puedes ver la lista completa de formatos de exportación admitidos y opciones de configuración para elegir la mejor configuración para tu aplicación.

El formato NCNN admite los modos Export, Predict y Validate. Exporta tu modelo, luego carga el modelo exportado para ejecutar la inferencia o validar su precisión.

Exportar
from ultralytics import YOLO

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

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolo26n_ncnn_model'
Predecir
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validar
from ultralytics import YOLO

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

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionArgumentos de exportación#

ArgumentoTipoPredeterminadoDescripción
formatstr'ncnn'Formato de destino para el modelo exportado, que define la compatibilidad con varios entornos de despliegue.
imgszint o tuple640Tamaño de imagen deseado para la entrada del modelo. Puede ser un número entero para imágenes cuadradas o una tupla (height, width) para dimensiones específicas.
halfboolFalseHabilita la cuantización FP16 (precisión media), reduciendo el tamaño del modelo y acelerando potencialmente la inferencia en hardware compatible.
batchint1Especifica el tamaño de inferencia por lotes del modelo de exportación o el número máximo de imágenes que el modelo exportado procesará simultáneamente en modo predict.
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 exportación.

Link to this sectionDesplegar modelos NCNN de YOLO26 exportados#

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

  • Android: Construye e integra modelos NCNN para detección de objetos en aplicaciones de Android.

  • macOS: Despliega modelos NCNN en sistemas macOS.

  • Linux: Despliega modelos NCNN en dispositivos Linux, incluidos Raspberry Pi y sistemas integrados similares.

  • Windows x64: Despliega modelos NCNN en Windows x64 usando Visual Studio.

Link to this sectionResumen#

Esta guía cubrió cómo exportar modelos de Ultralytics YOLO26 al formato NCNN para mejorar la eficiencia y la velocidad en dispositivos con recursos restringidos.

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

Link to this sectionPreguntas frecuentes#

Link to this section¿Cómo exporto modelos de Ultralytics YOLO26 al formato NCNN?#

Para exportar tu modelo de Ultralytics YOLO26 al formato NCNN:

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

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

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

Para opciones de exportación detalladas, consulta la documentación de Export.

Link to this section¿Cuáles son las ventajas de exportar modelos YOLO26 a NCNN?#

Exportar tus modelos de Ultralytics YOLO26 a NCNN ofrece varios beneficios:

  • Eficiencia: Los modelos NCNN están optimizados para dispositivos móviles e integrados, asegurando 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: Puedes desplegar modelos NCNN en múltiples plataformas, incluyendo Android, iOS, Linux y macOS.
  • Aceleración de GPU con Vulkan: Aprovecha la aceleración de GPU en AMD, Intel y otras GPUs que no son de NVIDIA a través de Vulkan para una inferencia más rápida.

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

Link to this section¿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 CPUs móviles.
  • Multiplataforma: Compatible con marcos populares como TensorFlow y ONNX, lo que facilita convertir y desplegar modelos en diferentes plataformas.
  • Soporte de la comunidad: El soporte activo de la comunidad asegura mejoras y actualizaciones continuas.

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

Link to this section¿Qué plataformas son compatibles para el despliegue de modelos con NCNN?#

NCNN es versátil y admite varias plataformas:

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

Para mejorar el rendimiento en Raspberry Pi, considera usar el formato NCNN como se detalla en nuestra Guía de Raspberry Pi.

Link to this section¿Cómo puedo desplegar modelos NCNN de Ultralytics YOLO26 en Android?#

Para desplegar tus modelos YOLO26 en Android:

  1. Construir para Android: Sigue la guía de NCNN Build for Android.
  2. Integrar con tu aplicación: Usa el SDK de NCNN para Android para integrar el modelo exportado en tu aplicación para una inferencia eficiente en el dispositivo.

Para obtener instrucciones detalladas, consulta Desplegar modelos NCNN de YOLO26 exportados.

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

Link to this section¿Cómo uso la aceleración de GPU con Vulkan en modelos NCNN?#

NCNN admite Vulkan para la aceleración de GPU en AMD, Intel y otras GPUs que no son de 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, especifica el índice del dispositivo (por ejemplo, vulkan:1 para la segunda GPU). Asegúrate de que los controladores de Vulkan estén instalados para tu GPU. Consulta la sección Aceleración de GPU con Vulkan para más detalles.

Comentarios