Ultralytics YOLO27: Únete a la lista de espera.
Get Started

Exporta modelos YOLO a LiteRT para implementarlos en dispositivos periféricos y en la web#

LiteRT edge deployment framework

LiteRT (abreviatura de entorno de ejecución ligero) es el entorno de ejecución de alto rendimiento de Google para la IA en el dispositivo. Es la siguiente generación y el nuevo nombre de TensorFlow Lite (TFLite), y ejecuta el mismo formato de modelo .tflite. Con LiteRT, un único modelo Ultralytics YOLO exportado se implementa en móviles, sistemas integrados, dispositivos periféricos y navegadores: abarca todos los casos que antes gestionaban por separado los formatos de exportación tflite y tfjs, ahora bajo una misma solución.



Ver: Cómo exportar Ultralytics YOLO26 a Google LiteRT | Implementa IA para visión en Android e iOS | IA móvil 📱🚀

El formato de exportación LiteRT optimiza tus modelos para tareas como la detección de objetos, la segmentación, la estimación de pose y la clasificación, para que se ejecuten con rapidez y sin conexión en una amplia variedad de dispositivos.

Ejecuta hoy mismo YOLO en Android con LiteRT mediante el complemento oficial de Flutter

El complemento oficial Ultralytics YOLO para Flutter ejecuta de forma nativa en Android las exportaciones LiteRT .tflite: inferencia de cámara en tiempo real, predicción de imágenes individuales, aceleración por GPU y descarga automática de modelos para las siete tareas de YOLO26, incluida Depth. Para dispositivos Apple, usa la exportación CoreML; para las NPU Qualcomm Snapdragon, consulta la integración Qualcomm QNN.

Tamaños de entrada oficiales para móviles

Exporta los modelos de clasificación en imgsz=224. Exporta los modelos de detección, segmentación, semántica, profundidad, pose y OBB en imgsz=640. Este estándar 224/640 es común a los recursos móviles oficiales de LiteRT, CoreML y QNN.

Ejecuta hoy mismo YOLO en la web con LiteRT.js mediante el paquete npm oficial @ultralytics/yolo

El paquete NPM oficial de Ultralytics YOLO ejecuta las exportaciones LiteRT .tflite directamente en el navegador mediante LiteRT.js, sin necesidad de servidor ni Python, con inferencia de cámara web en tiempo real, predicción de imágenes individuales y aceleración WebGPU (con alternativa automática a CPU/WASM) para seis tareas de YOLO26 (detección, segmentación, semántica, clasificación, pose y OBB). Con WebGPU, suele ser aproximadamente el doble de rápido que ONNX Runtime Web.

npm i @ultralytics/yolo @litertjs/core

¿Por qué exportar a LiteRT?#

LiteRT es un marco de trabajo de código abierto diseñado para la inferencia en el dispositivo, también conocida como computación en el borde. Proporciona a los desarrolladores herramientas para ejecutar modelos entrenados en dispositivos móviles, sistemas integrados e IoT, ordenadores tradicionales y, mediante LiteRT.js, directamente en navegadores web y Node.js.

Un formato de modelo para todos los destinos:

  • Móviles y sistemas integrados: Android, iOS, Linux integrado y microcontroladores (MCU).
  • Aceleradores periféricos: Compatible con Coral Edge TPU para obtener más aceleración.
  • Navegador y Node.js: LiteRT.js ejecuta en la web el mismo modelo .tflite con aceleración WebGPU/WASM, lo que evita tener que exportarlo por separado a TensorFlow.js.

Funciones clave de los modelos LiteRT#

  • Optimización 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: Funciona en Android, iOS, Linux integrado, microcontroladores y navegadores web modernos.
  • Aceleración por hardware: Aprovecha XNNPACK en CPU y la aceleración de GPU mediante OpenCL, Metal y WebGPU. El delegado de GPU funciona en FP16 de forma predeterminada para ofrecer más velocidad.
  • Cuantización: Admite FP32, INT8 estático (quantize=8, pesos int8 + activaciones int8), INT16 estático para las activaciones (quantize="w8a16", pesos int8 + activaciones int16 para una mayor precisión) e INT8 dinámico (quantize="w8a32", pesos int8 + activaciones FP32, sin necesidad de datos de calibración) para comprimir modelos y acelerar la inferencia con una pérdida mínima de precisión.
  • Compatibilidad con diversos lenguajes: Compatible con Java/Kotlin, Swift, Objective-C, C++, Python y JavaScript.

Rendimiento medido#

Hardware: Xiaomi 17 con 12 GB de memoria LPDDR5X y Android 17 / API 37. 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 de rendimiento de hasta 3,62 GHz), una GPU Adreno y una NPU Hexagon.

ModeloTareatamaño
(píxeles)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT FP32
(ms)
YOLO26nDetección64036.9
1.9 / 32.6 / 2.3
10.6
1.8 / 6.2 / 2.6
10.1
3.5 / 4.0 / 2.5
YOLO26n-segSegmentación64050.5
1.9 / 42.9 / 5.8
18.0
1.9 / 9.5 / 6.6
19.2
3.6 / 5.9 / 9.7
YOLO26n-semSemántica64045.7
1.9 / 35.7 / 8.2
30.6
1.9 / 20.5 / 8.3
25.8
3.6 / 11.0 / 11.3
YOLO26n-depthProfundidad64066.8
2.2 / 55.0 / 9.7
21.9
2.1 / 10.1 / 9.8
24.8
4.3 / 6.0 / 14.5
YOLO26n-clsClasificar2243.6
0.3 / 3.3 / 0.0
2.0
0.4 / 1.4 / 0.2
1.5
0.6 / 0.7 / 0.3
YOLO26n-posePose64039.9
2.0 / 36.5 / 1.4
10.0
1.8 / 6.7 / 1.4
11.5
3.5 / 4.2 / 3.8
YOLO26n-obbOBB64036.3
2.0 / 33.2 / 1.2
10.1
2.6 / 5.9 / 1.6
8.2
3.5 / 3.7 / 0.9
  • Los valores de velocidad son latencias de ráfaga para una sola imagen: la media de 15 ejecuciones tras 3 ejecuciones de calentamiento en bus.jpg, medidas con el complemento Flutter de Ultralytics 0.7.1 y los recursos oficiales v0.7.0 (exportaciones de Ultralytics 8.4.188). El orden de CPU/GPU se alternó entre tareas en una única pasada secuencial. Los registros nativos confirmaron que todas las filas de CPU usaron LiteRT CPU/XNNPACK y que todas las filas de GPU delegaron el grafo completo en LiteRT OpenCL (LITERT_CL).
  • La exportación de LiteRT traza directamente el modelo PyTorch y genera un .tflite NCHW con una entrada de tipo float: el delegado de GPU compila todo el grafo (las siete tareas se ejecutan aquí en la GPU Adreno) y w8a32 no necesita datos de calibración. En lugar de dar por hecho que se usa el diseño NHWC heredado de onnx2tf o los nombres de salida Identity, quienes consuman el modelo deben consultar las formas de los tensores y los nombres de las firmas; deben empaquetar los datos RGB directamente como CHW planar o transponerlos antes de la inferencia. Las exportaciones semánticas devuelven logits NCHW y requieren un argmax de clases en el host. Los recursos oficiales para Android están alojados en la versión v0.7.0 de yolo-flutter-app; encontrarás el registro detallado de la evaluación comparativa en el documento de rendimiento de Flutter.
  • La columna NPU corresponde a la ruta NPU propia de LiteRT: una exportación FP32 (yolo export format=litert, sin quantize) compilada en el dispositivo por los tiempos de ejecución litert-npu-runtime-qualcomm y -mediatek 2.3.0, medida con una compilación prototipo para NPU del complemento Flutter (aún no publicada). La primera carga incluye esa compilación (unos 0,3 s para n y hasta 6 s para x). Los recursos w8a32 no se compilan por completo en estas NPU. LiteRT indica que se ha compilado para NPU incluso cuando ejecuta el grafo silenciosamente en la GPU, por lo que se comprobó cada fila de NPU frente al tiempo de GPU; las filas que recurrieron a la GPU se muestran como —.
  • Las cifras correspondientes de la NPU Hexagon de Snapdragon para los recursos oficiales QNN están en la integración de Qualcomm QNN.
  • Compara los resultados de CPU/acelerador de Apple en la integración de CoreML.

Las siguientes pruebas en distintos dispositivos utilizan los mismos recursos oficiales v0.7.0.

Google Pixel 10#

Hardware: Google Pixel 10 con 12 GB de memoria y Android 17 / API 37. Su Google Tensor G5 de 3 nm tiene una CPU de 8 núcleos (1 núcleo Prime de hasta 3,78 GHz, 5 núcleos de rendimiento de hasta 3,05 GHz y 2 núcleos de eficiencia de hasta 2,25 GHz), una GPU PowerVR D-Series y una TPU de Google. Las frecuencias de los núcleos y el nombre del controlador de la GPU se consultaron en el dispositivo de pruebas, ya que Google no los publica en las especificaciones enlazadas.

ModeloTareatamaño
(píxeles)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
YOLO26nDetección64036.6
1.5 / 33.5 / 1.6
36.5
3.5 / 28.4 / 4.6
YOLO26n-segSegmentación64053.1
1.5 / 45.8 / 5.7
51.5
1.6 / 40.1 / 9.9
YOLO26n-semSemántica64057.2
1.5 / 47.7 / 8.0
75.9
1.8 / 63.4 / 10.8
YOLO26n-depthProfundidad64075.0
1.6 / 65.1 / 8.3
50.1
1.7 / 33.5 / 14.9
YOLO26n-clsClasificar2246.1
0.3 / 5.5 / 0.3
12.1
0.9 / 11.0 / 0.1
YOLO26n-posePose64035.2
1.5 / 31.9 / 1.8
38.2
3.5 / 29.3 / 5.4
YOLO26n-obbOBB64032.7
1.5 / 29.3 / 1.9
38.8
3.8 / 29.6 / 5.4

Prueba de rendimiento: media de 15 llamadas predict() tras 3 ejecuciones de calentamiento en bus.jpg, con ultralytics_yolo 0.7.1 y los recursos oficiales v0.7.0. El orden de CPU/GPU se alterna entre tareas en una única pasada secuencial. Los registros nativos confirmaron que todas las filas de CPU usaron LiteRT CPU/XNNPACK y que todas las filas de GPU delegaron el grafo completo en LiteRT OpenCL (LITERT_CL). La TPU Tensor no tiene una fila de LiteRT: el servicio EdgeTPU de Google rechaza las aplicaciones que no están en su lista de permitidas, y LiteRT ejecuta entonces el modelo en la GPU.

Samsung Galaxy S26#

Hardware: Samsung Galaxy S26 (SM-S942B) con 12 GB de memoria y Android 17 / API 37. Su Exynos 2600 de 2 nm tiene una CPU Armv9.3 de 10 núcleos (1 núcleo C1-Ultra de hasta 3,8 GHz, 3 núcleos C1-Pro de rendimiento de hasta 3,26 GHz y 6 núcleos C1-Pro de eficiencia de hasta 2,76 GHz), una GPU Xclipse 960 y una NPU de Samsung.

ModeloTareatamaño
(píxeles)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT w8a32 AOT
(ms)
YOLO26nDetección64030.2
1.3 / 27.3 / 1.6
15.9
1.4 / 11.5 / 2.9
12.2
1.3 / 8.6 / 2.2
YOLO26n-segSegmentación64045.6
1.3 / 39.1 / 5.2
30.5
1.3 / 23.6 / 5.6
17.0
1.4 / 9.7 / 5.8
YOLO26n-semSemántica64038.1
1.3 / 28.6 / 8.2
26.1
1.3 / 16.8 / 7.9
28.3
1.7 / 15.1 / 11.5
YOLO26n-depthProfundidad64063.5
1.4 / 53.6 / 8.4
37.3
1.4 / 24.6 / 11.3
28.4
2.1 / 12.9 / 13.4
YOLO26n-clsClasificar2243.8
0.2 / 3.4 / 0.2
2.8
0.2 / 2.6 / 0.0
6.1
0.5 / 5.2 / 0.4
YOLO26n-posePose64031.1
1.3 / 28.4 / 1.4
18.4
1.6 / 13.0 / 3.8
13.5
1.8 / 9.5 / 2.2
YOLO26n-obbOBB64027.9
1.3 / 25.7 / 0.9
15.3
1.9 / 11.4 / 2.1
11.4
1.7 / 8.3 / 1.4

Prueba de rendimiento: media de 15 llamadas predict() tras 3 ejecuciones de calentamiento en bus.jpg, con ultralytics_yolo 0.7.1 y los recursos oficiales v0.7.0. El orden de CPU/GPU se alterna entre tareas en una única pasada secuencial. Los registros nativos confirmaron que todas las filas de CPU usaron LiteRT CPU/XNNPACK y que todas las filas de GPU delegaron el grafo completo en LiteRT OpenCL (LITERT_CL). La columna NPU utiliza los recursos w8a32 compilados de antemano para Exynos 2600 (E9965) con el complemento del compilador de Samsung para LiteRT. Samsung no tiene un compilador en el dispositivo en LiteRT 2.3 y Google aún no publica un entorno de ejecución para la NPU de Samsung, así que estas filas utilizaron una biblioteca de envío creada a partir del código fuente de LiteRT 2.3.

Xiaomi 17T Pro#

Hardware: Xiaomi 17T Pro (2602EPTC0G) con 12 GB de memoria LPDDR5X y Android 16 / API 36. Su MediaTek Dimensity 9500 de 3 nm (MT6993) tiene una CPU Armv9.3 de 8 núcleos (1 núcleo C1-Ultra de hasta 4,21 GHz, 3 núcleos C1-Premium de hasta 3,5 GHz y 4 núcleos C1-Pro de hasta 2,7 GHz), GPU Mali-G1 Ultra MC12 y NPU MediaTek 990.

ModeloTareatamaño
(píxeles)
CPU
w8a32 LiteRT
(ms)
GPU
w8a32 LiteRT
(ms)
NPU
LiteRT FP32
(ms)
YOLO26nDetección64031.4
1.5 / 28.0 / 1.9
25.6
1.4 / 22.2 / 2.0
11.0
1.3 / 7.8 / 1.8
YOLO26n-segSegmentación64077.8
2.6 / 65.3 / 9.9
47.4
2.6 / 33.6 / 11.3
36.5
2.6 / 23.4 / 10.4
YOLO26n-semSemántica64081.3
2.6 / 62.2 / 16.5
79.3
2.6 / 59.5 / 17.1
87.6
2.6 / 68.3 / 16.7
YOLO26n-depthProfundidad640111.3
3.4 / 91.1 / 16.8
55.3
2.8 / 36.3 / 16.1
—
YOLO26n-clsClasificar2246.3
0.5 / 5.4 / 0.4
8.1
0.5 / 7.5 / 0.1
3.2
0.5 / 2.2 / 0.5
YOLO26n-posePose64053.9
2.6 / 49.5 / 1.8
32.8
2.7 / 26.7 / 3.4
16.2
2.9 / 11.1 / 2.3
YOLO26n-obbOBB64049.5
2.7 / 44.4 / 2.4
29.4
2.8 / 22.7 / 3.9
—

Evaluación comparativa: media de 15 llamadas a predict() tras 3 ejecuciones de calentamiento en bus.jpg, usando ultralytics_yolo 0.7.1 y los recursos oficiales de v0.7.0. El orden de CPU/GPU se alterna entre tareas en una única pasada secuencial. Los registros nativos confirmaron que todas las filas de CPU usaron LiteRT CPU/XNNPACK y que todas las filas de GPU delegaron el grafo completo en LiteRT OpenCL (LITERT_CL). Depth y OBB no tienen resultados de NPU: el compilador de NPU de MediaTek rechaza sus operaciones exponenciales y trigonométricas, y LiteRT ejecuta esos grafos en la GPU.

Tareas compatibles#

La exportación a LiteRT es compatible con las siete tareas de Ultralytics. La segmentación semántica y la estimación de profundidad solo están disponibles con YOLO26, la única familia que incluye esos cabezales.

TareaYOLOv8YOLO11YOLO26
Detectar✅✅✅
Segmentar✅✅✅
Semántica❌❌✅
Profundidad❌❌✅
Clasificar✅✅✅
Pose✅✅✅
OBB✅✅✅

Exportar a LiteRT: convierte tu modelo YOLO#

Puedes mejorar la eficiencia de ejecución en el dispositivo y ampliar las opciones de implementación convirtiendo tus modelos al formato LiteRT.

Instalación#

Para instalar el paquete necesario, ejecuta:

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

Para obtener instrucciones detalladas y conocer las prácticas recomendadas, consulta nuestra guía de instalación de Ultralytics. Si tienes algún problema, consulta nuestra guía de problemas frecuentes.

Compatibilidad con plataformas

La exportación a LiteRT es actualmente compatible con Linux x86_64 y macOS. El propio modelo .tflite exportado funciona en todas las plataformas compatibles con LiteRT (móviles, integradas, de borde y navegador).

Uso#

Todos los modelos YOLO de Ultralytics admiten la exportación de forma predeterminada. El formato LiteRT admite los modos Exportar, Predecir y Validar, así que puedes exportar un modelo y, después, cargarlo para ejecutar inferencias o validar su precisión localmente.

Exportar
from ultralytics import YOLO

# Carga un modelo YOLO26
model = YOLO("yolo26n.pt")

# Exporta el modelo al formato LiteRT
model.export(format="litert", imgsz=640)  # crea 'yolo26n.tflite'; usa imgsz=224 para la clasificación
Exportación cuantizada
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# INT8 dinámico: pesos int8, activaciones FP32; no se necesitan datos de calibración
model.export(format="litert", quantize="w8a32", imgsz=640)  # crea 'yolo26n_w8a32.tflite'

# INT8 estático: pesos int8 + activaciones int8; necesita datos de calibración
model.export(format="litert", quantize=8, data="coco8.yaml", imgsz=640)  # crea 'yolo26n_int8.tflite'

# w8a16 estático: pesos int8 + activaciones int16 (mayor precisión); necesita datos de calibración
model.export(format="litert", quantize="w8a16", data="coco8.yaml", imgsz=640)  # crea 'yolo26n_w8a16.tflite'
Predecir
from ultralytics import YOLO

# Carga el modelo LiteRT exportado
model = YOLO("yolo26n.tflite")

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

# Carga el modelo LiteRT exportado
model = YOLO("yolo26n.tflite")

# Valida la precisión con el conjunto de datos COCO8
metrics = model.val(data="coco8.yaml")

Argumentos de exportación#

ArgumentoTipoPredeterminadoDescripción
formatstr'litert'Formato de destino del modelo exportado, que define su compatibilidad con distintos entornos de implementación.
imgszint o tuple640Tamañ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.
quantizeint o strNonePrecisión de cuantización: 8 (INT8 estático, pesos int8 + activaciones int8; necesita datos de calibración data/fraction), 'w8a16' (estático, pesos int8 + activaciones int16; necesita datos de calibración data/fraction), 'w8a32' (INT8 dinámico, pesos int8 + activaciones FP32; no necesita calibración) o 32/sin especificar (FP32). FP16 no se exporta por separado (consulta la nota siguiente). 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.
datastrNoneArchivo YAML del conjunto de datos utilizado para la calibración INT8; en el caso de la clasificación, se indica 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 expresado como proporción, número de imágenes o proporciones/recuentos [train, val, test]. Las listas de dos elementos dejan completo test, mientras que 0 lo omite.
devicestrNoneEspecifica el dispositivo para la exportación. La exportación a LiteRT se ejecuta en CPU (device=cpu).
Precisión FP16

A diferencia de la exportación heredada a tflite, LiteRT no requiere una exportación FP16 independiente. Un modelo .tflite FP32 funciona con precisión de 16 bits en tiempo de ejecución cuando se utiliza un delegado de GPU (WebGPU, OpenCL, Metal): este es el método oficial de LiteRT para la inferencia FP16.

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

Inferencia en CPU y NPU de Intel#

Los modelos .tflite exportados se ejecutan en hardware Intel mediante el complemento LiteRT Intel OpenVINO. Pasa device=intel:cpu o device=intel:npu, y Ultralytics instalará ai-edge-litert>=2.3.0 y ai-edge-litert-sdk-intel la primera vez que los uses. La NPU necesita un procesador Intel Core Ultra con el controlador de NPU de Intel instalado.

Predecir
from ultralytics import YOLO

model = YOLO("yolo26n.tflite")
results = model("https://ultralytics.com/images/bus.jpg", device="intel:npu")  # o "intel:cpu"

Hardware: Intel Core Ultra X7 358H (Panther Lake) e Intel AI Boost NPU 5010, Fedora Linux, controlador de NPU 1.38.0, ai-edge-litert 2.3.0.

ModeloTareatamaño
(píxeles)
CPU
w8a32 LiteRT
(ms)
CPU
w8a32 Intel
(ms)
NPU
w8a32 Intel
(ms)
YOLO26nDetección64017.5
0.8 / 16.1 / 0.6
22.6
1.2 / 20.6 / 0.8
4.8
1.0 / 3.3 / 0.4
YOLO26n-segSegmentación64024.2
0.9 / 22.1 / 1.3
32.6
1.0 / 30.1 / 1.5
6.2
0.8 / 4.2 / 1.2
YOLO26n-semSemántica64025.2
1.0 / 14.2 / 10.0
33.1
1.1 / 21.9 / 10.2
16.5
1.0 / 5.5 / 10.0
YOLO26n-depthProfundidad64031.7
0.9 / 30.2 / 0.5
76.6
0.9 / 75.2 / 0.5
9.1
1.0 / 7.5 / 0.5
YOLO26n-clsClasificar2244.6
2.8 / 1.7 / 0.0
7.3
3.3 / 3.9 / 0.0
4.1
3.2 / 0.9 / 0.0
YOLO26n-posePose64020.3
0.8 / 19.0 / 0.5
28.6
1.1 / 26.8 / 0.8
6.3
0.8 / 4.9 / 0.5
YOLO26n-obbOBB64017.2
0.8 / 16.1 / 0.3
22.1
1.2 / 20.5 / 0.4
4.6
0.9 / 3.4 / 0.3

Prueba de rendimiento: Media de 15 llamadas a predict() tras 3 calentamientos en bus.jpg, con ultralytics 8.4.174 y ai-edge-litert 2.3.0 mediante exportaciones de w8a32. Cada celda muestra el tiempo total y, debajo, el desglose entre preprocesamiento, inferencia y posprocesamiento.

Implementación de modelos YOLO LiteRT exportados#

Después de exportar tu modelo Ultralytics YOLO a LiteRT, puedes implementarlo en distintas plataformas. La forma más rápida de comprobarlo localmente es el método YOLO("yolo26n.tflite") mostrado arriba. Para implementarlo en otros entornos, consulta los siguientes recursos:

Móviles e integrados#

  • Android: Guía de inicio rápido para integrar LiteRT en aplicaciones de Android.
  • iOS: Guía para integrar y desplegar modelos LiteRT en aplicaciones de iOS.
  • Linux integrado y Raspberry Pi: Ejecuta modelos LiteRT en ordenadores de placa única, con aceleración opcional mediante una Coral Edge TPU.
  • Microcontroladores: Despliega en MCU con solo unos pocos kilobytes de memoria: el entorno de ejecución principal ocupa aproximadamente 16 KB en un Arm Cortex-M3.

Navegador y Node.js (LiteRT.js)#

  • Descripción general de LiteRT.js: Ejecuta el mismo modelo .tflite directamente en el navegador con aceleración WebGPU/WASM, eliminando los cálculos en el servidor y manteniendo los datos en el dispositivo del usuario.
  • Ejemplos integrales: Ejemplos prácticos y tutoriales para implementar LiteRT en dispositivos móviles, periféricos y la web.

Resumen#

En esta guía hemos explicado cómo exportar modelos Ultralytics YOLO al formato LiteRT. Al unificar el despliegue en móviles/periféricos (antes TFLite) y en navegadores (antes TF.js) en un único modelo .tflite, LiteRT hace que tus modelos YOLO sean más rápidos, compactos y portátiles en prácticamente cualquier dispositivo.

Para obtener más información, visita la documentación oficial de LiteRT.

Además, si te interesan otras integraciones de Ultralytics YOLO, consulta nuestra página de guías de integración, donde encontrarás muchos recursos útiles.

Preguntas frecuentes#

  • Usa la biblioteca Ultralytics para exportar un modelo YOLO a LiteRT (.tflite). Primero, instala el paquete:

    pip install ultralytics

    A continuación, exporta tu modelo:

    from ultralytics import YOLO
    
    # Carga un modelo YOLO26
    model = YOLO("yolo26n.pt")
    
    # Exporta el modelo al formato LiteRT
    model.export(format="litert", imgsz=640)  # usa imgsz=224 para clasificación

    Para usuarios de la CLI:

    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.

  • LiteRT es el nuevo nombre de TensorFlow Lite: mismo formato de modelo .tflite, misma línea evolutiva del entorno de ejecución, con un cambio de marca de Google. En Ultralytics, el formato de exportación único litert ahora cubre los dos casos de uso que antes requerían formatos distintos:

    • El antiguo formato tflite → despliegue en móviles, dispositivos integrados y periféricos.
    • El antiguo formato tfjs → despliegue en navegadores y Node.js, ahora gestionado por LiteRT.js, que ejecuta el mismo archivo .tflite.

    Si ya tienes un archivo .tflite, puedes cargarlo directamente con YOLO("model.tflite") y se ejecutará mediante el backend LiteRT.

  • Sí. Exporta tu modelo al formato LiteRT y ejecútalo en una Raspberry Pi para mejorar la velocidad de inferencia. Para optimizarlo aún más, puedes usar una Coral Edge TPU. Consulta nuestra guía de despliegue en Raspberry Pi para ver los pasos detallados.

  • Sí. LiteRT.js ejecuta el mismo modelo exportado .tflite directamente en un navegador web o una aplicación Node.js, con aceleración WebGPU/WASM. Esto sustituye al flujo de trabajo anterior de TensorFlow.js: no hace falta exportar por separado para el navegador; solo tienes que desplegar tu modelo LiteRT con el entorno de ejecución LiteRT.js.

  • Sí, durante la ejecución. Un modelo LiteRT FP32 se ejecuta automáticamente en FP16 cuando se ejecuta en un delegado de GPU (WebGPU, OpenCL o Metal), que es el enfoque oficial de LiteRT. Por tanto, no necesitas una exportación FP16 específica; para comprimirlo aún más, usa la cuantización INT8 con quantize=8.

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

    • Comprueba la plataforma: La exportación a LiteRT es compatible con Linux x86_64 y macOS. Comprueba que tu entorno cumpla este requisito.
    • Comprueba la compatibilidad del paquete: Asegúrate de usar una versión compatible de Ultralytics. Consulta nuestra guía de instalación.
    • Problemas de cuantización: Si usas 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 solución de problemas, visita nuestra guía de problemas habituales.

Comentarios