Link to this sectionExportación de Ultralytics YOLO a NCNN#
Desplegar modelos de visión por ordenador en dispositivos con potencia computacional limitada, como sistemas móviles o integrados, requiere una selección cuidadosa del formato. Utilizar un formato optimizado garantiza que incluso los dispositivos con recursos limitados puedan gestionar tareas avanzadas de visión por ordenador 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?#
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, incluyendo 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 CPUs móviles y permite el despliegue rápido de modelos de deep learning en plataformas móviles, lo que lo convierte en una excelente opción para construir aplicaciones basadas en IA.
Link to this sectionCaracterísticas clave de los modelos NCNN#
Los modelos NCNN proporcionan varias características clave que permiten el machine learning en el 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, manteniendo al mismo tiempo una alta precisión en tareas de visión por ordenador.
-
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 uso de memoria.
-
Compatibilidad: Los modelos NCNN son compatibles con marcos de deep learning populares incluyendo 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 Vulkan: NCNN admite Vulkan para la inferencia acelerada por GPU a través de múltiples proveedores, incluyendo AMD, Intel y otras GPUs que no son 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 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 de rendimiento significativas.
-
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 Vulkan#
NCNN admite la aceleración de GPU a través de Vulkan, permitiendo una inferencia de alto rendimiento en una amplia gama de GPUs, incluyendo AMD, Intel y otras tarjetas gráficas que no son de NVIDIA. Esto es particularmente útil para:
- Compatibilidad con GPUs de múltiples proveedores: A diferencia de CUDA, que está limitado a GPUs NVIDIA, Vulkan funciona con 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 y escritorio: Aprovecha la aceleración de GPU en dispositivos donde CUDA no está disponible.
Para usar la aceleración Vulkan, especifica el dispositivo Vulkan al ejecutar la inferencia:
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")Asegúrate de tener instalados los controladores Vulkan para tu GPU. La mayoría de los controladores de GPU modernos incluyen compatibilidad con Vulkan de forma predeterminada. Puedes verificar la disponibilidad de Vulkan usando herramientas como vulkaninfo en Linux o el SDK de Vulkan en Windows.
Link to this sectionExportar a NCNN: Convirtiendo tu modelo YOLO26#
Puedes ampliar la compatibilidad del modelo y la flexibilidad de despliegue convirtiendo 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.
| Tarea | Compatible |
|---|---|
| Detección de objetos | ✅ |
| Segmentación de instancias | ✅ |
| Segmentación semántica | ✅ |
| Estimación de pose | ✅ |
| Detección OBB | ✅ |
| Clasificación | ✅ |
Link to this sectionInstalación#
Para instalar los paquetes necesarios, ejecuta:
# Install the required package for YOLO26
pip install ultralyticsPara 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 desde el primer momento, facilitando su integración en tu flujo de trabajo de despliegue preferido. Puedes ver la lista completa de formatos de exportación admitidos y las opciones de configuración para elegir la mejor configuración para tu aplicación.
El formato NCNN admite los modos Exportar, Predecir y Validar. Exporta tu modelo y luego cárgalo para ejecutar la inferencia o validar su precisión.
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'from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")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#
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
format | str | 'ncnn' | Formato de destino para el modelo exportado, definiendo la compatibilidad con diversos entornos de despliegue. |
imgsz | int o tuple | 640 | Tamañ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. |
half | bool | False | Habilita la cuantización FP16 (media precisión), reduciendo el tamaño del modelo y potencialmente acelerando la inferencia en hardware compatible. |
batch | int | 1 | Especifica el tamaño de inferencia por lote del modelo exportado o el número máximo de imágenes que el modelo procesará simultáneamente en el modo predict. |
device | str | None | Especifica 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.
Link to this sectionDesplegar modelos YOLO26 NCNN exportados#
Después de exportar tus modelos 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 obtener 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 Android.
-
macOS: Despliega modelos NCNN en sistemas macOS.
-
Linux: Despliega modelos NCNN en dispositivos Linux, incluyendo 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ó la exportación de modelos Ultralytics YOLO26 al formato NCNN para mejorar la eficiencia y la velocidad en dispositivos con recursos limitados.
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 sectionFAQ#
Link to this section¿Cómo exporto modelos de Ultralytics YOLO26 al formato NCNN?#
Para exportar tu modelo Ultralytics YOLO26 al formato NCNN:
-
Python: Usa el método
exportde 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 Exportar.
Link to this section¿Cuáles son las ventajas de exportar modelos YOLO26 a NCNN?#
Exportar tus modelos Ultralytics YOLO26 a NCNN ofrece varios beneficios:
- Eficiencia: Los modelos NCNN están optimizados para dispositivos móviles e integrados, garantizando 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 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 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 de IA móvil?#
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 frameworks populares tales como TensorFlow y ONNX, haciendo que sea más fácil convertir y desplegar modelos a través de diferentes plataformas.
- Soporte de la comunidad: El soporte activo de la comunidad garantiza mejoras y actualizaciones continuas.
Para 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 de 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 un mejor 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 de Ultralytics YOLO26 NCNN en Android?#
Para desplegar tus modelos YOLO26 en Android:
- Construir para Android: Sigue la guía de NCNN Build for Android.
- 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 YOLO26 NCNN exportados.
Para obtener guías y casos de uso más avanzados, visita la guía de despliegue de Ultralytics.
Link to this section¿Cómo uso la aceleración de GPU Vulkan con 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 devicePara sistemas multi-GPU, especifica el índice del dispositivo (por ejemplo, vulkan:1 para la segunda GPU). Asegúrate de que los controladores Vulkan estén instalados para tu GPU. Consulta la sección Aceleración de GPU Vulkan para más detalles.