Ultralytics YOLO27:

Exportar al formato de modelo TF.js desde un formato de modelo YOLO26#

Obsoleto — reemplazado por LiteRT

A partir de Ultralytics 8.4.83, se ha eliminado el formato de exportación tfjs (TensorFlow.js) y se ha sustituido por el formato unificado Google LiteRT. LiteRT se ejecuta en el navegador mediante LiteRT.js (con aceleración de WebGPU), cubriendo los casos de uso en el navegador y Node.js que gestionaba TF.js, además de dispositivos móviles, integrados y periféricos, desde un único modelo .tflite.

format="tfjs" sigue funcionando, pero muestra una advertencia de obsolescencia y exporta un modelo LiteRT. Usa format="litert" a partir de ahora; para consultar las instrucciones de exportación actuales y la ruta de implementación en el navegador, visita la guía de exportación de LiteRT.

Implementar modelos de aprendizaje automático directamente en el navegador o en Node.js puede resultar complicado. Tendrás que asegurarte de que el formato de tu modelo esté optimizado para ofrecer un rendimiento más rápido, de modo que puedas utilizarlo para ejecutar aplicaciones interactivas localmente en el dispositivo del usuario. El formato de modelo TensorFlow.js, o TF.js, está diseñado para consumir la mínima energía y ofrecer un rendimiento rápido.

La función «exportar al formato de modelo TF.js» te permite optimizar tus modelos de Ultralytics YOLO26 para realizar inferencia de detección de objetos de alta velocidad y local. En esta guía, te explicaremos cómo convertir tus modelos al formato TF.js para que funcionen mejor en diversos navegadores locales y aplicaciones Node.js.

¿Por qué deberías exportar a TF.js?#

Exportar tus modelos de aprendizaje automático a TensorFlow.js, desarrollado por el equipo de TensorFlow como parte del ecosistema más amplio de TensorFlow, ofrece numerosas ventajas para implementar aplicaciones de aprendizaje automático. Ayuda a mejorar la privacidad y la seguridad de los usuarios al mantener los datos confidenciales en el dispositivo. La imagen siguiente muestra la arquitectura de TensorFlow.js y cómo se convierten e implementan los modelos de aprendizaje automático tanto en navegadores web como en Node.js.

TensorFlow.js browser ML inference architecture

Ejecutar los modelos localmente también reduce la latencia y proporciona una experiencia de usuario más ágil. TensorFlow.js también ofrece funciones sin conexión, lo que permite utilizar tu aplicación incluso sin conexión a Internet. TF.js está diseñado para ejecutar eficazmente modelos complejos en dispositivos con recursos limitados, ya que se ha desarrollado para ofrecer escalabilidad y admite aceleración mediante GPU.

Características principales de TF.js#

Estas son las características principales que convierten TF.js en una herramienta potente para desarrolladores:

  • Compatibilidad multiplataforma: TensorFlow.js puede utilizarse tanto en navegadores como en entornos Node.js, lo que proporciona flexibilidad para la implementación en distintas plataformas. Permite a los desarrolladores crear e implementar aplicaciones con mayor facilidad.

  • Compatibilidad con varios backends: TensorFlow.js admite diversos backends de cálculo, incluidos CPU, WebGL para la aceleración mediante GPU, WebAssembly (WASM) para alcanzar una velocidad de ejecución casi nativa y WebGPU para capacidades avanzadas de aprendizaje automático basadas en el navegador.

  • Funciones sin conexión: Con TensorFlow.js, los modelos pueden ejecutarse en el navegador sin necesidad de conexión a Internet, lo que permite desarrollar aplicaciones funcionales sin conexión.

Opciones de implementación con TensorFlow.js#

Antes de profundizar en el proceso de exportación de modelos YOLO26 al formato TF.js, exploremos algunos escenarios habituales de implementación en los que se utiliza este formato.

TF.js ofrece varias opciones para implementar tus modelos de aprendizaje automático:

  • Aplicaciones de aprendizaje automático en el navegador: Puedes crear aplicaciones web que ejecuten modelos de aprendizaje automático directamente en el navegador. Se elimina la necesidad de realizar cálculos en el servidor y se reduce la carga de este.

  • Aplicaciones Node.js: TensorFlow.js también admite la implementación en entornos Node.js, lo que permite desarrollar aplicaciones de aprendizaje automático en el servidor. Resulta especialmente útil para aplicaciones que necesitan la capacidad de procesamiento de un servidor o acceder a datos del servidor.

  • Extensiones de Chrome: Un escenario de implementación interesante es crear extensiones de Chrome con TensorFlow.js. Por ejemplo, puedes desarrollar una extensión que permita a los usuarios hacer clic con el botón derecho en una imagen de cualquier página web para clasificarla mediante un modelo de aprendizaje automático preentrenado. TensorFlow.js puede integrarse en las experiencias de navegación web cotidianas para ofrecer información o ampliaciones inmediatas basadas en el aprendizaje automático.

Exportar modelos YOLO26 a TensorFlow.js#

Puedes ampliar la compatibilidad de los modelos y la flexibilidad de implementación convirtiendo los modelos YOLO26 a TF.js.

Instalación#

Para instalar el paquete necesario, 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 argumento tfjs ahora exporta un modelo .tflite de LiteRT, que admite los modos Export, Predict y Validate localmente y se ejecuta en el navegador mediante LiteRT.js. Consulta la guía de exportación de LiteRT para conocer la ruta actual de implementación en el navegador y en el dispositivo.

Exportar
from ultralytics import YOLO

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

# Export the model to TF.js format
model.export(format="litert", imgsz=640)  # use imgsz=224 for classification
Predecir y validar

El modelo .tflite de LiteRT exportado se carga directamente con yolo predict y yolo val, y se ejecuta en el navegador mediante LiteRT.js. Consulta la guía de exportación de LiteRT.

Argumentos de exportación#

ArgumentoTipoPredeterminadoDescripción
formatstr'tfjs'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.

Implementar modelos YOLO26 de TensorFlow.js exportados#

Ahora que has exportado tu modelo YOLO26, el siguiente paso es implementarlo. La exportación genera un modelo .tflite de LiteRT que se ejecuta en el dispositivo y en el navegador mediante LiteRT.js. Consulta la guía de exportación de LiteRT para conocer la ruta actual.

Como referencia, a continuación se muestran los recursos del runtime heredado de TensorFlow.js:

Resumen#

En esta guía, hemos aprendido a exportar modelos Ultralytics YOLO26 al formato TensorFlow.js. Al exportar a TF.js, obtienes la flexibilidad necesaria para optimizar, implementar y escalar tus modelos YOLO26 en una amplia variedad de plataformas.

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

Para obtener más información sobre la integración de Ultralytics YOLO26 con otras plataformas y frameworks, no olvides consultar nuestra página de la guía de integraciones. Incluye numerosos recursos que te ayudarán a sacar el máximo partido a YOLO26 en tus proyectos.

Preguntas frecuentes#

  • Exportar modelos Ultralytics YOLO26 al formato TensorFlow.js (TF.js) es sencillo. Puedes seguir estos pasos:

    Uso
    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export the model to TF.js format
    model.export(format="litert", imgsz=640)  # use imgsz=224 for classification
    
    # The exported '.tflite' model runs in the browser via LiteRT.js or locally with yolo predict/val.

    Para obtener más información sobre las opciones de exportación compatibles, visita la página de la documentación de Ultralytics sobre las opciones de implementación.

  • Exportar modelos YOLO26 a TensorFlow.js ofrece varias ventajas, entre ellas:

    1. Ejecución local: Los modelos pueden ejecutarse directamente en el navegador o en Node.js, lo que reduce la latencia y mejora la experiencia del usuario.
    2. Compatibilidad multiplataforma: TF.js admite varios entornos, lo que proporciona flexibilidad para la implementación.
    3. Funciones sin conexión: Permite que las aplicaciones funcionen sin conexión a Internet, garantizando la fiabilidad y la privacidad.
    4. Aceleración mediante GPU: Aprovecha WebGL para acelerar la GPU y optimizar el rendimiento en dispositivos con recursos limitados.
  • TensorFlow.js está diseñado específicamente para ejecutar eficazmente modelos de aprendizaje automático en navegadores y entornos Node.js. Así es como beneficia a las aplicaciones basadas en el navegador:

    • Reduce la latencia: Ejecuta los modelos de aprendizaje automático localmente y proporciona resultados inmediatos sin depender de cálculos en el servidor.
    • Mejora la privacidad: Mantiene los datos confidenciales en el dispositivo del usuario, minimizando los riesgos de seguridad.
    • Permite el uso sin conexión: Los modelos pueden funcionar sin conexión a Internet, garantizando una funcionalidad uniforme.
    • Admite varios backends: Ofrece flexibilidad con backends como CPU, WebGL, WebAssembly (WASM) y WebGPU para distintas necesidades de cálculo.

    ¿Te interesa obtener más información sobre TF.js? Consulta la guía oficial de TensorFlow.js.

  • Entre las características principales de TensorFlow.js se incluyen:

    • Compatibilidad multiplataforma: TF.js puede utilizarse tanto en navegadores web como en Node.js, lo que proporciona una gran flexibilidad de implementación.
    • Varios backends: Admite CPU, WebGL para la aceleración mediante GPU, WebAssembly (WASM) y WebGPU para operaciones avanzadas.
    • Funciones sin conexión: Los modelos pueden ejecutarse directamente en el navegador sin conexión a Internet, lo que lo hace ideal para desarrollar aplicaciones web adaptables.

    Para consultar escenarios de implementación y obtener información más detallada, visita nuestra sección sobre opciones de implementación con TensorFlow.js.

  • Sí, TensorFlow.js permite implementar modelos YOLO26 en entornos Node.js. Esto permite crear aplicaciones de aprendizaje automático en el servidor que aprovechan la capacidad de procesamiento de un servidor y el acceso a datos del servidor. Entre los casos de uso habituales se incluyen el procesamiento de datos en tiempo real y las canalizaciones de aprendizaje automático en servidores backend.

    Para empezar a implementar en Node.js, consulta la guía Ejecutar TensorFlow.js en Node.js de TensorFlow.

Comentarios