Cómo exportar a NCNN desde YOLO11 para una implementación fluida
La implementación de modelos de visión artificial en dispositivos con potencia computacional limitada, como sistemas móviles o integrados, puede ser complicada. Debe asegurarse de utilizar un formato optimizado para un rendimiento óptimo. Esto asegura que incluso los dispositivos con potencia de procesamiento limitada puedan manejar bien las tareas avanzadas de visión artificial.
La función de exportación al formato NCNN le permite optimizar sus modelos Ultralytics YOLO11 para aplicaciones ligeras basadas en dispositivos. En esta guía, lo guiaremos a través de cómo convertir sus modelos al formato NCNN, lo que facilita que sus modelos funcionen bien en varios dispositivos móviles e integrados.
¿Por qué debería 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, 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 CPUs móviles y permite la implementación rápida de modelos de aprendizaje profundo en plataformas móviles. Esto facilita la creación de aplicaciones inteligentes, poniendo el poder de la IA al alcance de su mano.
Características principales de los modelos NCNN
Los modelos NCNN ofrecen una amplia gama de características clave que permiten el aprendizaje automático en el dispositivo, ayudando a los desarrolladores a ejecutar sus modelos en dispositivos móviles, integrados y de borde:
-
Eficiente y de alto rendimiento: Los modelos NCNN están hechos para ser eficientes y ligeros, optimizados para ejecutarse en dispositivos móviles e integrados como Raspberry Pi con recursos limitados. También pueden lograr un alto rendimiento con alta precisión en varias tareas basadas en la visión artificial.
-
Cuantización: Los modelos NCNN a menudo admiten la cuantización, que es una técnica que reduce la precisión de los pesos y las activaciones del modelo. Esto conduce a mejoras adicionales en el rendimiento y reduce el espacio de memoria.
-
Compatibilidad: Los modelos NCNN son compatibles con frameworks populares de aprendizaje profundo como TensorFlow, Caffe y ONNX. Esta compatibilidad permite a los desarrolladores utilizar modelos y flujos de trabajo existentes con facilidad.
-
Fácil de usar: Los modelos NCNN están diseñados para una fácil integración en diversas aplicaciones, gracias a su compatibilidad con los frameworks de deep learning más populares. Además, NCNN ofrece herramientas fáciles de usar para convertir modelos entre diferentes formatos, lo que garantiza una interoperabilidad fluida en todo el panorama del desarrollo.
Opciones de implementación con NCNN
Antes de examinar el código para exportar modelos YOLO11 al formato NCNN, comprendamos cómo se utilizan normalmente los modelos NCNN.
Los modelos NCNN, diseñados para la eficiencia y el rendimiento, son compatibles con una variedad de plataformas de implementación:
-
Implementación Móvil: Específicamente optimizado para Android e iOS, lo que permite una integración perfecta en aplicaciones móviles para una inferencia eficiente en el dispositivo.
-
Sistemas integrados y dispositivos IoT: Si considera que ejecutar la inferencia en una Raspberry Pi con la Guía de Ultralytics no es lo suficientemente rápido, cambiar a un modelo exportado NCNN podría ayudar a acelerar las cosas. NCNN es ideal para dispositivos como Raspberry Pi y NVIDIA Jetson, especialmente en situaciones donde necesita un procesamiento rápido directamente en el dispositivo.
-
Implementación en equipos de escritorio y servidores: Capaz de implementarse en entornos de escritorio y servidor en Linux, Windows y macOS, lo que permite el desarrollo, el entrenamiento y la evaluación con mayores capacidades computacionales.
Exportar a NCNN: Convirtiendo su modelo YOLO11
Puede ampliar la compatibilidad del modelo y la flexibilidad de la implementación convirtiendo los modelos YOLO11 a formato NCNN.
Instalación
Para instalar los paquetes necesarios, ejecute:
Instalación
# Install the required package for YOLO11
pip install ultralytics
Para obtener instrucciones detalladas y las mejores prácticas relacionadas con el proceso de instalación, consulte nuestra Guía de instalación de Ultralytics. Mientras instala los paquetes necesarios para YOLO11, si encuentra alguna dificultad, consulte nuestra Guía de problemas comunes para obtener soluciones y consejos.
Uso
Todos los modelos Ultralytics YOLO11 están diseñados para admitir la exportación de fábrica, lo que facilita su integración en tu flujo de trabajo de implementación preferido. Puedes ver la lista completa de formatos de exportación y opciones de configuración compatibles para elegir la mejor configuración para tu aplicación.
Uso
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo11n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
# Run inference with the exported model
yolo predict model='./yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'
Argumentos de exportación
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
format |
str |
'ncnn' |
Formato de destino para el modelo exportado, que define la compatibilidad con varios entornos de implementación. |
imgsz |
int o tuple |
640 |
Tamañ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. |
half |
bool |
False |
Activa 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 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. |
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.
Implementación de modelos NCNN YOLO11 exportados
Después de exportar con éxito tus modelos Ultralytics YOLO11 al formato NCNN, ahora puedes implementarlos. El primer paso principal y recomendado para ejecutar un modelo NCNN es utilizar el método YOLO("yolo11n_ncnn_model/"), como se describe en el fragmento de código de uso anterior. Sin embargo, para obtener instrucciones detalladas sobre cómo implementar tus modelos NCNN en otras configuraciones, consulta los siguientes recursos:
-
Android: Este blog explica cómo utilizar los modelos NCNN para realizar tareas como la detección de objetos a través de aplicaciones Android.
-
macOS: Comprende cómo utilizar los modelos NCNN para realizar tareas a través de macOS.
-
Linux: Explora esta página para aprender a implementar modelos NCNN en dispositivos con recursos limitados como Raspberry Pi y otros dispositivos similares.
-
Windows x64 usando VS2017: Explore este blog para aprender cómo implementar modelos NCNN en Windows x64 usando Visual Studio Community 2017.
Resumen
En esta guía, hemos repasado la exportación de modelos Ultralytics YOLO11 al formato NCNN. Este paso de conversión es crucial para mejorar la eficiencia y la velocidad de los modelos YOLO11, haciéndolos más eficaces y adecuados para entornos informáticos con recursos limitados.
Para obtener instrucciones detalladas sobre el uso, consulta la documentación oficial de NCNN.
Además, si estás interesado en explorar otras opciones de integración para Ultralytics YOLO11, asegúrate de visitar nuestra página de guía de integración para obtener más información.
Preguntas frecuentes
¿Cómo exporto modelos Ultralytics YOLO11 al formato NCNN?
Para exportar su modelo Ultralytics YOLO11 al formato NCNN, siga estos pasos:
-
Python: Utiliza el
export
función de la clase YOLO.from ultralytics import YOLO # Load the YOLO11 model model = YOLO("yolo11n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
-
CLI: Utiliza el
yolo
comando con elexport
argumento.yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
Para obtener opciones de exportación detalladas, consulta la página Exportar en la documentación.
¿Cuáles son las ventajas de exportar modelos YOLO11 a NCNN?
Exportar sus modelos Ultralytics YOLO11 a NCNN ofrece varias ventajas:
- 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.
Para obtener más detalles, consulta la sección Exportar a NCNN en la documentación.
¿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 comprender mejor, visite la descripción general de NCNN en la documentación.
¿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.
Si la ejecución de modelos en una Raspberry Pi no es lo suficientemente rápida, la conversión al formato NCNN podría acelerar las cosas, como se detalla en nuestra Guía de Raspberry Pi.
¿Cómo puedo implementar modelos Ultralytics YOLO11 NCNN en Android?
Para implementar sus modelos YOLO11 en Android:
- Construir para Android: Siga la guía NCNN Build for Android.
- 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 obtener instrucciones paso a paso, consulte nuestra guía sobre Cómo implementar modelos YOLO11 NCNN.
Para obtener guías y casos de uso más avanzados, visita la página de documentación de Ultralytics.