Ir al contenido

Guía de exportación de modelos YOLO11 a TFLite para su implantación

Logotipo TFLite

La implantación de modelos de visión por ordenador en dispositivos periféricos o integrados requiere un formato que garantice un rendimiento sin fisuras.

El formato de exportación TensorFlow Lite o TFLite le permite optimizar sus Ultralytics YOLO11 para tareas como la detección de objetos y la clasificación de imágenes en aplicaciones basadas en dispositivos de bordes. En esta guía, explicaremos los pasos necesarios para convertir los modelos al formato TFLite, lo que facilitará su uso en distintos dispositivos de bordes.

¿Por qué exportar a TFLite?

Presentado por Google en mayo de 2017 como parte de su marco TensorFlow , TensorFlow Lite, o TFLite para abreviar, es un marco de aprendizaje profundo de código abierto diseñado para la inferencia en dispositivos, también conocida como edge computing. Proporciona a los desarrolladores las herramientas necesarias para ejecutar sus modelos entrenados en dispositivos móviles, integrados e IoT, así como en ordenadores tradicionales.

TensorFlow Lite es compatible con una amplia gama de plataformas, incluyendo Linux embebido, Android, iOS, y MCU. Exportar tu modelo a TFLite hace que tus aplicaciones sean más rápidas, fiables y capaces de ejecutarse sin conexión.

Características principales de los modelos TFLite

Los modelos TFLite ofrecen una amplia gama de funciones clave que permiten el aprendizaje automático en el dispositivo, ayudando a los desarrolladores a ejecutar sus modelos en dispositivos móviles, integrados y periféricos:

  • Optimización en el dispositivo: TFLite optimiza para ML en el dispositivo, reduciendo la latencia al procesar los datos localmente, mejorando la privacidad al no transmitir datos personales y minimizando el tamaño del modelo para ahorrar espacio.

  • Compatibilidad con múltiples plataformas: TFLite ofrece una amplia compatibilidad de plataformas, con soporte para Android, iOS, Linux embebido y microcontroladores.

  • Compatibilidad con diversos lenguajes: TFLite es compatible con diversos lenguajes de programación, como Java, Swift, Objective-C, C++ y Python.

  • Alto rendimiento: Consigue un rendimiento superior mediante la aceleración por hardware y la optimización de modelos.

Opciones de despliegue en TFLite

Antes de ver el código para exportar modelos YOLO11 al formato TFLite, vamos a entender cómo se utilizan normalmente los modelos TFLite.

TFLite ofrece varias opciones de despliegue en el dispositivo para modelos de aprendizaje automático, entre las que se incluyen:

  • Despliegue con Android y iOS: Tanto las aplicaciones Android y iOS con TFLite pueden analizar la alimentación de cámaras y sensores basados en bordes para detectar e identificar objetos. TFLite también ofrece bibliotecas nativas iOS escritas en Swift y Objective-C. El siguiente diagrama de arquitectura muestra el proceso de despliegue de un modelo entrenado en plataformas Android y iOS utilizando TensorFlow Lite.

Arquitectura

  • Implementación con Embedded Linux: Si la ejecución de inferencias en una Raspberry Pi utilizando la GuíaUltralytics no cumple los requisitos de velocidad para su caso de uso, puede utilizar un modelo TFLite exportado para acelerar los tiempos de inferencia. Además, es posible mejorar aún más el rendimiento utilizando un dispositivo Coral Edge TPU .

  • Despliegue con microcontroladores: Los modelos TFLite también pueden desplegarse en microcontroladores y otros dispositivos con sólo unos pocos kilobytes de memoria. El núcleo de ejecución sólo cabe en 16 KB en un Arm Cortex M3 y puede ejecutar muchos modelos básicos. No requiere soporte del sistema operativo, ni bibliotecas C o C++ estándar, ni asignación dinámica de memoria.

Exportar a TFLite: Conversión de su modelo YOLO11

Puede mejorar la eficacia de la ejecución de modelos en el dispositivo y optimizar el rendimiento convirtiendo sus modelos al formato TFLite.

Instalación

Para instalar los paquetes necesarios, ejecute

Instalación

# Install the required package for YOLO11
pip install ultralytics

Para obtener instrucciones detalladas y buenas prácticas relacionadas con el proceso de instalación, consulta nuestra guía de instalaciónUltralytics . Mientras instala los paquetes necesarios para YOLO11, si encuentra alguna dificultad, consulte nuestra guía de problemas comunes para obtener soluciones y consejos.

Utilización

Antes de entrar en las instrucciones de uso, es importante tener en cuenta que, aunque todos los modelos deUltralytics YOLO11 están disponibles para la exportación, aquí puede asegurarse de que el modelo que seleccione admite la función de exportación.

Utilización

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolo11n_float32.tflite'

# Load the exported TFLite model
tflite_model = YOLO("yolo11n_float32.tflite")

# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TFLite format
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'

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

Argumentos de exportación

Argumento Tipo Por defecto Descripción
format str 'tflite' Formato de destino para el modelo exportado, que define la compatibilidad con varios 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 Permite la cuantización FP16 (media precisión), reduciendo el tamaño del modelo y acelerando potencialmente la inferencia en hardware compatible.
int8 bool False Activa la cuantización INT8, comprimiendo aún más el modelo y acelerando la inferencia con una pérdida mínima de precisión, principalmente para dispositivos de borde.
nms bool False Añade supresión no máxima (NMS), esencial para un postprocesado de detección preciso y eficaz.
batch int 1 Especifica el tamaño de la 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 predict modo.
data str 'coco8.yaml' Camino a la conjunto de datos archivo de configuración (por defecto: coco8.yaml), esencial para la cuantización.

Para más detalles sobre el proceso de exportación, visite la página de documentaciónUltralytics sobre exportación.

Despliegue de modelos TFLite exportados YOLO11

Después de exportar con éxito sus modelos Ultralytics YOLO11 al formato TFLite, ya puede desplegarlos. El primer paso principal y recomendado para ejecutar un modelo TFLite es utilizar la aplicación YOLO("model.tflite") como se indica en el fragmento de código de uso anterior. Sin embargo, para obtener instrucciones detalladas sobre el despliegue de los modelos TFLite en otras configuraciones, eche un vistazo a los siguientes recursos:

  • Android: Una guía de inicio rápido para integrar TensorFlow Lite en las aplicaciones de Android , proporcionando pasos fáciles de seguir para configurar y ejecutar modelos de aprendizaje automático.

  • iOS: Consulte esta guía detallada para desarrolladores sobre la integración y el despliegue de modelos TensorFlow Lite en aplicaciones iOS , que ofrece instrucciones paso a paso y recursos.

  • Ejemplos de extremo a extremo: Esta página proporciona una visión general de varios ejemplos de TensorFlow Lite, mostrando aplicaciones prácticas y tutoriales diseñados para ayudar a los desarrolladores a implementar TensorFlow Lite en sus proyectos de aprendizaje automático en dispositivos móviles y edge.

Resumen

En esta guía, nos centramos en cómo exportar a formato TFLite. Al convertir sus modelosYOLO11 Ultralytics al formato de modelo TFLite, puede mejorar la eficiencia y la velocidad de los modelos YOLO11 , haciéndolos más eficaces y adecuados para entornos de computación de borde.

Para más detalles sobre su uso, visite la documentación oficial de TFLite.

Además, si tienes curiosidad sobre otras integraciones de Ultralytics YOLO11 , asegúrate de consultar nuestra página de guía de integración. Allí encontrarás un montón de información útil.

PREGUNTAS FRECUENTES

¿Cómo se exporta un modelo YOLO11 al formato TFLite?

Para exportar un modelo YOLO11 al formato TFLite, puede utilizar la biblioteca Ultralytics . En primer lugar, instale el paquete necesario utilizando:

pip install ultralytics

A continuación, utilice el siguiente fragmento de código para exportar su modelo:

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolo11n_float32.tflite'

Los usuarios de CLI pueden conseguirlo con:

yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'

Para más detalles, visite la guía de exportaciónUltralytics .

¿Cuáles son las ventajas de utilizar TensorFlow Lite para la implantación del modelo YOLO11 ?

TensorFlow Lite (TFLite) es un marco de aprendizaje profundo de código abierto diseñado para la inferencia en el dispositivo, por lo que es ideal para implementar modelos YOLO11 en dispositivos móviles, integrados y IoT. Entre sus principales ventajas se incluyen:

  • Optimización en el dispositivo: Minimiza la latencia y mejora la privacidad procesando los datos localmente.
  • Compatibilidad de plataformas: Compatible con Android, iOS, Linux embebido y MCU.
  • Rendimiento: Utiliza la aceleración por hardware para optimizar la velocidad y la eficacia del modelo.

Para saber más, consulta la guía TFLite.

¿Es posible ejecutar modelos YOLO11 TFLite en Raspberry Pi?

Sí, puedes ejecutar modelos YOLO11 TFLite en Raspberry Pi para mejorar la velocidad de inferencia. En primer lugar, exporta tu modelo a formato TFLite como se explicó anteriormente. A continuación, utiliza una herramienta como TensorFlow Lite Interpreter para ejecutar el modelo en tu Raspberry Pi.

Para mayores optimizaciones, puedes considerar el uso de Coral Edge TPU. Para conocer los pasos detallados, consulta nuestra guía de implementación de Raspberry Pi y la guía de integración de Edge TPU .

¿Puedo utilizar modelos TFLite en microcontroladores para realizar predicciones en YOLO11 ?

Sí, TFLite admite la implementación en microcontroladores con recursos limitados. El núcleo de ejecución de TFLite sólo requiere 16 KB de memoria en un Arm Cortex M3 y puede ejecutar modelos básicos de YOLO11 . Esto lo hace adecuado para su despliegue en dispositivos con una potencia de cálculo y una memoria mínimas.

Para empezar, visite la guía TFLite Micro para microcontroladores.

¿Qué plataformas son compatibles con los modelos YOLO11 exportados por TFLite?

TensorFlow Lite ofrece una amplia compatibilidad de plataformas, lo que le permite implantar los modelos YOLO11 en una amplia gama de dispositivos, incluidos:

  • Android y iOS: Soporte nativo a través de las bibliotecas TFLite Android y iOS .
  • Linux integrado: Ideal para ordenadores de placa única como Raspberry Pi.
  • Microcontroladores: Adecuado para MCU con recursos limitados.

Para más información sobre las opciones de implantación, consulte nuestra guía detallada de implantación.

¿Cómo puedo solucionar los problemas más comunes durante la exportación del modelo YOLO11 a TFLite?

Si se encuentra con errores al exportar modelos de YOLO11 a TFLite, las soluciones más comunes incluyen

  • Compruebe la compatibilidad de los paquetes: Asegúrese de que utiliza versiones compatibles de Ultralytics y TensorFlow. Consulte nuestra guía de instalación.
  • Modelo compatible: Compruebe que el modelo específico YOLO11 admite la exportación TFLite marcando aquí.
  • Problemas de cuantificación: Cuando utilice la cuantización INT8, asegúrese de que la ruta del conjunto de datos está correctamente especificada en el archivo data parámetro.

Para obtener más consejos sobre la solución de problemas, visita nuestra guía de problemas comunes.

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

Comentarios