Ultralytics YOLO27:

Exportación de modelos TFLite para implementación (obsoleto)#

Obsoleto — reemplazado por LiteRT

A partir de Ultralytics 8.4.83, se ha eliminado el formato de exportación independiente tflite y se ha reemplazado por el formato unificado Google LiteRT. LiteRT (entorno de ejecución Lite) es la próxima generación y el nuevo nombre de TensorFlow Lite, y exporta el mismo modelo .tflite, que ahora cubre la implementación en móviles, sistemas embebidos, dispositivos edge y navegadores en un solo formato.

format="tflite" todavía funciona, pero muestra una advertencia de obsolescencia y exporta un modelo LiteRT en su lugar. Usa format="litert" a partir de ahora; para consultar las instrucciones y opciones de exportación actuales, consulta la guía de exportación de LiteRT.

TensorFlow Lite edge deployment framework

Implementar modelos de visión artificial en dispositivos edge o dispositivos embebidos requiere un formato que garantice un rendimiento fluido.

El antiguo formato de exportación TensorFlow Lite o TFLite optimizaba los modelos Ultralytics YOLO26 para tareas como la detección de objetos y la clasificación de imágenes en aplicaciones edge. Esta guía conserva el contexto de implementación heredado de TFLite; usa LiteRT para las nuevas exportaciones.

¿Por qué se utilizaba TFLite para la exportación?#

Presentado por Google en mayo de 2017 como parte de su framework TensorFlow, TensorFlow Lite, o TFLite para abreviar, era un framework de aprendizaje profundo de código abierto diseñado para la inferencia en el dispositivo, también conocida como computación edge. Proporcionaba a los desarrolladores herramientas para ejecutar modelos entrenados en dispositivos móviles, embebidos y del IoT, así como en ordenadores tradicionales.

TensorFlow Lite era compatible con una amplia variedad de plataformas, como Linux embebido, Android, iOS y microcontroladores (MCU). Las exportaciones de TFLite permitían que las aplicaciones ejecutaran modelos localmente y sin conexión.

Características principales de los modelos TFLite#

Los modelos TFLite ofrecen una amplia variedad de características clave que permiten el aprendizaje automático en el dispositivo al ayudar a los desarrolladores a ejecutar sus modelos en dispositivos móviles, embebidos y edge:

  • Optimización en el dispositivo: TFLite optimiza los modelos para el aprendizaje automático en el dispositivo, reduce la latencia al procesar los datos localmente, mejora la privacidad al no transmitir datos personales y minimiza el tamaño del modelo para ahorrar espacio.

  • Compatibilidad con varias plataformas: TFLite ofrece una amplia compatibilidad con plataformas, como Android, iOS, Linux embebido y microcontroladores.

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

  • Alto rendimiento: logra un rendimiento superior mediante la aceleración por hardware y la optimización del modelo.

Rendimiento medido (histórico)#

Registro de migración congelado antes y después

Estos resultados se registraron con el plugin de Flutter de Ultralytics 0.6.8 y LiteRT 2.1.5 en Android 16/API 36 en un Xiaomi 17 con 12 GB de memoria LPDDR5X. Su Snapdragon 8 Elite Gen 5 de 3 nm (SM8850) tiene una CPU Qualcomm Oryon de 8 núcleos (2 núcleos Prime de hasta 4,6 GHz y 6 núcleos Performance de hasta 3,62 GHz), GPU Adreno y NPU Hexagon. Estas tablas comparan los recursos TFLite INT8 heredados de onnx2tf con las exportaciones candidatas de litert-torch evaluadas durante la migración. Posteriormente, los recursos de la versión se sobrescribieron con las exportaciones estandarizadas, por lo que estos números no describen los bytes actuales del recurso v0.6.6. Consulta las tablas de rendimiento de LiteRT para ver las mediciones actuales.

Ambos formatos se ejecutaron en la misma prueba consecutiva de GPU con los tamaños de entrada mostrados. Cada celda muestra el tiempo total (preprocesamiento + inferencia + posprocesamiento), con el desglose por etapa debajo; los registros nativos confirmaron que ambos formatos delegaron el grafo completo en LiteRT OpenCL (LITERT_CL) en la GPU Adreno.

ModeloTareatamaño
(píxeles)
Heredado
onnx2tf INT8 TFLite
(ms)
Candidato
w8a32 LiteRT
(ms)
YOLO26nDetect64014.0
1.8 / 8.1 / 4.2
13.5
1.9 / 8.1 / 3.5
YOLO26n-segSegment64030.1
1.9 / 20.3 / 8.0
28.6
1.8 / 20.1 / 6.7
YOLO26n-semSemántica64026.4
1.9 / 16.4 / 8.1
32.9
1.8 / 23.0 / 8.2
YOLO26n-clsClasificación2243.5
0.9 / 2.2 / 0.4
3.2
1.0 / 2.2 / 0.1
YOLO26n-posePose64017.4
2.4 / 9.9 / 5.1
14.0
1.9 / 9.3 / 2.8
YOLO26n-obbOBB64013.9
3.0 / 8.3 / 2.7
13.0
2.9 / 7.9 / 2.3

La misma ejecución de migración también comparó los formatos de cuantización de detección de YOLO26n. La inferencia es la métrica comparable y dependiente del formato:

Formato de AndroidInferencia en GPU (ms)Compilación en GPU
onnx2tf INT8 (TFLite heredado)8.6
LiteRT w8a32 (candidato)8.4
LiteRT INT8 (quantize=8)11.0
LiteRT FP328.8
LiteRT w8a16 (quantize="w8a16")Alternativa de CPUno

En esta ejecución, w8a16 recurrió a la CPU, con un total aproximado de 660 ms frente a unos 17 ms de los formatos de GPU. Estos resultados motivaron el envío de w8a32, pero la compatibilidad y el rendimiento del delegado dependen del dispositivo y de la versión del entorno de ejecución. Haz pruebas en el dispositivo de destino y confirma la asignación del acelerador en sus registros del entorno de ejecución.

Opciones de implementación en TFLite#

Antes de ver el ejemplo de exportación de reemplazo de LiteRT, entendamos cómo se suelen utilizar los modelos TFLite.

TFLite ofrece varias opciones de implementación en el dispositivo para modelos de aprendizaje automático, entre ellas:

  • Implementación con Android e iOS: Tanto las aplicaciones Android como las iOS con TFLite pueden analizar imágenes de cámaras y sensores basadas en edge para detectar e identificar objetos. TFLite también ofrece bibliotecas nativas para 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 mediante TensorFlow Lite.

TensorFlow Lite deployment architecture for mobile

  • Implementación con Linux embebido: Si ejecutar inferencias en una Raspberry Pi usando la Guía de Ultralytics no cumple los requisitos de velocidad de tu caso de uso, puedes utilizar un modelo TFLite exportado para acelerar los tiempos de inferencia. Además, puedes mejorar aún más el rendimiento utilizando un dispositivo Coral Edge TPU.

  • Implementación con microcontroladores: Los modelos TFLite también pueden implementarse en microcontroladores y otros dispositivos con solo unos pocos kilobytes de memoria. El entorno de ejecución principal ocupa solo 16 KB en un Arm Cortex M3 y puede ejecutar muchos modelos básicos. No requiere compatibilidad con sistemas operativos, bibliotecas estándar de C o C++ ni asignación de memoria dinámica.

Reemplazar la exportación de TFLite por LiteRT#

Para las nuevas exportaciones, convierte tu modelo a LiteRT. El modelo resultante conserva la extensión de archivo .tflite.

Instalación#

Para instalar los paquetes necesarios, ejecuta:

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

Para consultar instrucciones detalladas y buenas prácticas relacionadas con el proceso de instalación, revisa nuestra guía de instalación de Ultralytics. Si encuentras dificultades al instalar los paquetes necesarios para YOLO26, consulta nuestra guía de problemas comunes para obtener soluciones y consejos.

Uso#

Todos los modelos Ultralytics YOLO26 están diseñados para admitir la exportación de forma nativa, lo que facilita su integración en tu flujo de trabajo de despliegue preferido. Puedes consultar la lista completa de formatos de exportación y opciones de configuración compatibles para elegir la configuración más adecuada para tu aplicación.

El formato de reemplazo LiteRT admite los modos Exportar, Predecir y Validar. Exporta tu modelo y, después, carga el modelo .tflite exportado para ejecutar inferencias o validar su precisión.

Exportar
from ultralytics import YOLO

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

# Export the model to LiteRT format
model.export(format="litert", imgsz=640)  # use imgsz=224 for classification
Predecir
from ultralytics import YOLO

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

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

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

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

Argumentos de exportación#

ArgumentoTipoPredeterminadoDescripción
formatstr'litert'Formato de destino del modelo exportado, que define la compatibilidad con diversos entornos de despliegue.
imgszint o tuple640Tamañ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.
quantizeint o strNonePrecisión de cuantización: 8 (INT8 estático, pesos int8 + activaciones int8; necesita calibración data/fraction), 'w8a16' (estático, pesos int8 + activaciones int16; necesita calibración data/fraction), 'w8a32' (INT8 dinámico, pesos int8 + activaciones FP32; no necesita calibración) o 32/sin establecer (FP32). FP16 no se exporta por separado: un modelo FP32 se ejecuta automáticamente en FP16 en delegados de GPU. Sustituye a las marcas obsoletas half/int8.
batchint1Especifica 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 el modo predict.
datastrNoneRuta al YAML del conjunto de datos, esencial para la cuantización; en clasificación, en su lugar, se acepta un directorio de conjunto de datos o el nombre de un conjunto de datos integrado. Si se omite con quantize=8 o 'w8a16', Ultralytics selecciona el conjunto de datos de calibración predeterminado para la tarea del modelo.
fractionfloat, int o list1.0Subconjunto de calibración como proporción, número de imágenes o proporciones/números de [train, val, test]. Las listas de dos elementos dejan test completo, mientras que 0 lo omite.
devicestrNoneEspecifica el dispositivo para la exportación: CPU (device=cpu), MPS para Apple silicon (device=mps).

Para obtener más información sobre el proceso de exportación, visita la página de la documentación de Ultralytics sobre exportación.

Implementación de modelos YOLO26 TFLite exportados#

Después de exportar tu modelo Ultralytics YOLO26 al formato LiteRT, puedes implementar el modelo .tflite resultante. El primer paso principal y recomendado para ejecutar un modelo TFLite es utilizar el método YOLO("model.tflite"), como se indica en el fragmento de código de uso anterior. Sin embargo, para consultar instrucciones detalladas sobre la implementación de tus modelos TFLite en otros entornos, echa un vistazo a los siguientes recursos:

  • Android: Guía de inicio rápido para integrar TensorFlow Lite en aplicaciones Android, con pasos sencillos para configurar y ejecutar modelos de aprendizaje automático.

  • iOS: Consulta esta guía detallada para desarrolladores sobre la integración y la implementación de modelos TensorFlow Lite en aplicaciones iOS, con instrucciones paso a paso y recursos.

  • Ejemplos de principio a fin: Esta página ofrece una visión general de varios ejemplos de TensorFlow Lite, con 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#

Esta guía conserva el flujo de trabajo de implementación heredado de TFLite. Para las nuevas exportaciones, usa LiteRT para crear modelos .tflite destinados a entornos de computación edge.

Para obtener más información sobre el uso, visita la documentación oficial de TFLite.

Además, si quieres conocer otras integraciones de Ultralytics YOLO26, consulta nuestra página de la guía de integraciones. Allí encontrarás mucha información y datos útiles.

Preguntas frecuentes#

  • Para una nueva exportación, usa el formato LiteRT. Primero, instala el paquete necesario con:

    pip install ultralytics

    Después, utiliza el siguiente fragmento de código para exportar tu modelo:

    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export the model to LiteRT format
    model.export(format="litert", imgsz=640)  # use imgsz=224 for classification

    Si usas la CLI, puedes hacerlo con:

    yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classification

    Para obtener más información, visita la guía de exportación de Ultralytics.

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

    • Optimización en el dispositivo: minimiza la latencia y mejora la privacidad al procesar los datos localmente.
    • Compatibilidad con plataformas: admite Android, iOS, Linux embebido y MCU.
    • Rendimiento: utiliza la aceleración por hardware para optimizar la velocidad y la eficiencia del modelo.

    Para obtener más información, consulta la guía de TFLite.

  • Sí, puedes ejecutar modelos YOLO26 TFLite en Raspberry Pi para mejorar las velocidades de inferencia. Primero, exporta tu modelo al formato LiteRT como se ha explicado anteriormente. Después, utiliza una herramienta como TensorFlow Lite Interpreter para ejecutar el modelo en tu Raspberry Pi.

    Para optimizaciones adicionales, puedes considerar el uso de Coral Edge TPU. Para consultar los pasos detallados, visita nuestra guía de implementación en Raspberry Pi y la guía de integración de Edge TPU.

  • Sí, TFLite admite la implementación en microcontroladores con recursos limitados. El entorno de ejecución principal de TFLite solo requiere 16 KB de memoria en un Arm Cortex M3 y puede ejecutar modelos YOLO26 básicos. Esto lo hace adecuado para la implementación en dispositivos con una capacidad de cálculo y memoria mínimas.

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

  • TensorFlow Lite ofrece una amplia compatibilidad con plataformas, lo que permite implementar modelos YOLO26 en una gran variedad de dispositivos, entre ellos:

    • Android e iOS: compatibilidad nativa mediante las bibliotecas TFLite para Android e iOS.
    • Linux embebido: ideal para ordenadores de placa única, como Raspberry Pi.
    • Microcontroladores: adecuados para MCU con recursos limitados.

    Para obtener más información sobre las opciones de implementación, consulta nuestra guía detallada de implementación.

  • Si encuentras errores al exportar modelos YOLO26 a LiteRT, algunas soluciones habituales son:

    • Comprueba la compatibilidad de los paquetes: asegúrate de utilizar versiones compatibles de Ultralytics, litert-torch y ai-edge-litert. Consulta nuestra guía de instalación.
    • Compatibilidad del modelo: verifica que el modelo YOLO26 específico admita la exportación a LiteRT consultando la página de documentación de exportación de Ultralytics.
    • Problemas de cuantización: Al utilizar la cuantización INT8, asegúrate de especificar correctamente la ruta del conjunto de datos en el parámetro data.

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

Comentarios