Una guía sobre la exportación del modelo YOLO11 a TFLite para la implementación
La implementación de modelos de visión artificial en dispositivos periféricos o dispositivos integrados requiere un formato que pueda garantizar un rendimiento perfecto.
El formato de exportación TensorFlow Lite o TFLite le permite optimizar sus modelos Ultralytics YOLO11 para tareas como la detección de objetos y la clasificación de imágenes en aplicaciones basadas en dispositivos periféricos. En esta guía, lo guiaremos a través de los pasos para convertir sus modelos al formato TFLite, lo que facilitará que sus modelos funcionen bien en varios dispositivos periféricos.
¿Por qué debería exportar a TFLite?
Presentado por Google en mayo de 2017 como parte de su framework TensorFlow, TensorFlow Lite, o TFLite para abreviar, es un framework de aprendizaje profundo de código abierto diseñado para la inferencia en el dispositivo, también conocido como computación perimetral. Proporciona a los desarrolladores las herramientas necesarias para ejecutar sus modelos entrenados en dispositivos móviles, integrados y de IoT, así como en ordenadores tradicionales.
TensorFlow Lite es compatible con una amplia gama de plataformas, incluyendo Linux integrado, Android, iOS y MCU. Exportar tu modelo a TFLite hace que tus aplicaciones sean más rápidas, más fiables y capaces de ejecutarse sin conexión.
Características clave de los modelos TFLite
Los modelos TFLite 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 en el borde:
-
Optimización en el dispositivo: TFLite se optimiza para el 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.
-
Soporte para múltiples plataformas: TFLite ofrece una amplia compatibilidad con plataformas, soportando Android, iOS, Linux integrado y microcontroladores.
-
Soporte para diversos lenguajes: TFLite es compatible con varios lenguajes de programación, incluyendo Java, Swift, Objective-C, C++ y Python.
-
Alto rendimiento: Alcanza un rendimiento superior a través de la aceleración por hardware y la optimización de modelos.
Opciones de implementación en TFLite
Antes de examinar 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 implementación en el dispositivo para modelos de aprendizaje automático, incluyendo:
- Implementación con Android e iOS: Tanto las aplicaciones Android como iOS con TFLite pueden analizar las fuentes de cámaras y sensores basados en el borde para detectar e identificar objetos. TFLite también ofrece bibliotecas nativas de iOS escritas en Swift y Objective-C. El siguiente diagrama de arquitectura muestra el proceso de implementación de un modelo entrenado en plataformas Android e iOS utilizando TensorFlow Lite.
-
Implementación con Linux integrado: Si la ejecución de inferencias en una Raspberry Pi utilizando la Guía de Ultralytics no cumple con 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.
-
Implementación con microcontroladores: Los modelos TFLite también se pueden implementar en microcontroladores y otros dispositivos con sólo unos pocos kilobytes de memoria. El tiempo de ejecución del núcleo cabe en sólo 16 KB en un Arm Cortex M3 y puede ejecutar muchos modelos básicos. No requiere soporte del sistema operativo, ninguna biblioteca estándar de C o C++, ni asignación dinámica de memoria.
Exportar a TFLite: convertir su modelo YOLO11
Puede mejorar la eficiencia de la ejecución del modelo 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 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 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 | Predeterminado | Descripción |
---|---|---|---|
format |
str |
'tflite' |
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. |
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 la supresión no máxima (NMS), esencial para un post-procesamiento de detección preciso y eficiente. |
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. |
data |
str |
'coco8.yaml' |
Ruta al conjunto de datos archivo de configuración (por defecto: coco8.yaml ), esencial para la cuantificación. |
fraction |
float |
1.0 |
Especifica la fracción del conjunto de datos que se utilizará para la calibración de la cuantificación INT8. Permite calibrar en un subconjunto del conjunto de datos completo, útil para experimentos o cuando los recursos son limitados. Si no se especifica con INT8 habilitado, se utilizará el conjunto de datos completo. |
device |
str |
None |
Especifica el dispositivo para la exportación: 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 YOLO11 TFLite exportados
Después de exportar con éxito tus modelos Ultralytics YOLO11 al formato TFLite, ahora puedes implementarlos. El primer paso principal y recomendado para ejecutar un modelo TFLite es utilizar el YOLO("model.tflite")
método, como se indica en el fragmento de código de uso anterior. Sin embargo, para obtener instrucciones detalladas sobre cómo implementar sus modelos TFLite en otros entornos, consulte los siguientes recursos:
-
Android: Una guía de inicio rápido para integrar TensorFlow Lite en aplicaciones Android, que proporciona 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 e implementación de modelos TensorFlow Lite en aplicaciones iOS, que ofrece instrucciones paso a paso y recursos.
-
Ejemplos End-To-End: 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 en el borde.
Resumen
En esta guía, nos centramos en cómo exportar al formato TFLite. Al convertir sus modelos Ultralytics YOLO11 al formato de modelo TFLite, puede mejorar la eficiencia y la velocidad de los modelos YOLO11, haciéndolos más efectivos y adecuados para entornos de computación perimetral.
Para obtener más detalles sobre el uso, visite la documentación oficial de TFLite.
Además, si tiene curiosidad acerca de otras integraciones de Ultralytics YOLO11, asegúrese de consultar nuestra página de guía de integración. Allí encontrará toneladas de información útil y perspectivas esperando por usted.
Preguntas frecuentes
¿Cómo exporto un modelo YOLO11 al formato TFLite?
Para exportar un modelo YOLO11 al formato TFLite, puede utilizar la biblioteca Ultralytics. Primero, instale el paquete requerido usando:
pip install ultralytics
Luego, use 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'
Para los usuarios de la CLI, puede lograr esto con:
yolo export model=yolo11n.pt format=tflite # creates 'yolo11n_float32.tflite'
Para obtener más detalles, visite la guía de exportación de Ultralytics.
¿Cuáles son los beneficios de usar TensorFlow Lite para la implementación del modelo YOLO11?
TensorFlow Lite (TFLite) es un framework de aprendizaje profundo de código abierto diseñado para la inferencia en el dispositivo, lo que lo hace ideal para implementar modelos YOLO11 en dispositivos móviles, integrados y de IoT. Los beneficios clave incluyen:
- Optimización en el dispositivo: Minimice la latencia y mejore la privacidad procesando los datos localmente.
- Compatibilidad de plataforma: Compatible con Android, iOS, Linux integrado y MCU.
- Rendimiento: Utiliza la aceleración de hardware para optimizar la velocidad y la eficiencia del modelo.
Para obtener más información, consulte la guía de TFLite.
¿Es posible ejecutar modelos YOLO11 TFLite en Raspberry Pi?
Sí, puedes ejecutar modelos YOLO11 TFLite en Raspberry Pi para mejorar las velocidades de inferencia. Primero, exporta tu modelo a formato TFLite como se explicó anteriormente. Luego, utiliza una herramienta como TensorFlow Lite Interpreter para ejecutar el modelo en tu Raspberry Pi.
Para optimizaciones adicionales, podrías considerar el uso de Coral Edge TPU. Para conocer los pasos detallados, consulta nuestra guía de implementación en Raspberry Pi y la guía de integración de Edge TPU.
¿Puedo usar modelos TFLite en microcontroladores para predicciones YOLO11?
Sí, TFLite admite la implementación en microcontroladores con recursos limitados. El runtime central de TFLite requiere solo 16 KB de memoria en un Arm Cortex M3 y puede ejecutar modelos YOLO11 básicos. Esto lo hace adecuado para la implementación en dispositivos con mínima potencia computacional y memoria.
Para comenzar, visite la guía de TFLite Micro para microcontroladores.
¿Qué plataformas son compatibles con los modelos YOLO11 exportados a TFLite?
TensorFlow Lite proporciona una amplia compatibilidad de plataforma, lo que le permite implementar modelos YOLO11 en una amplia gama de dispositivos, incluyendo:
- Android e iOS: Soporte nativo a través de las bibliotecas TFLite para Android e iOS.
- Linux integrado: Ideal para ordenadores de placa única como Raspberry Pi.
- Microcontroladores: Adecuado para MCU con recursos limitados.
Para obtener más información sobre las opciones de implementación, consulte nuestra guía de implementación detallada.
¿Cómo soluciono los problemas comunes durante la exportación del modelo YOLO11 a TFLite?
Si encuentra errores al exportar modelos YOLO11 a TFLite, las soluciones comunes incluyen:
- Verificar la compatibilidad de los paquetes: Asegúrese de que está utilizando versiones compatibles de Ultralytics y TensorFlow. Consulte nuestra guía de instalación.
- Soporte de modelos: Verifique que el modelo YOLO11 específico admita la exportación de TFLite consultando la página de documentación de exportación de Ultralytics.
- Problemas de cuantificación: Cuando utilices la cuantización INT8, asegúrate de que la ruta de tu conjunto de datos esté correctamente especificada en el
data
parámetro.
Para obtener consejos adicionales para la resolución de problemas, visite nuestra guía de problemas comunes.