Exportar al formato de modelo TF.js desde un formato de modelo YOLO11
La implementación de modelos de aprendizaje automático directamente en el navegador o en Node.js puede ser complicada. Deberá asegurarse de que el formato de su modelo esté optimizado para un rendimiento más rápido, de modo que el modelo pueda usarse para ejecutar aplicaciones interactivas localmente en el dispositivo del usuario. El formato de modelo TensorFlow.js, o TF.js, está diseñado para usar la mínima energía y, al mismo tiempo, ofrecer un rendimiento rápido.
La función 'exportar a formato de modelo TF.js' te permite optimizar tus modelos Ultralytics YOLO11 para una inferencia de detección de objetos de alta velocidad y ejecución local. En esta guía, te guiaremos a través de la conversión de tus modelos al formato TF.js, facilitando que tus modelos tengan un buen rendimiento en varios navegadores locales y aplicaciones Node.js.
¿Por qué debería exportar a TF.js?
Exportar sus modelos de aprendizaje automático a TensorFlow.js, desarrollado por el equipo de TensorFlow como parte del ecosistema TensorFlow más amplio, ofrece numerosas ventajas para la implementación de aplicaciones de aprendizaje automático. Ayuda a mejorar la privacidad y la seguridad del usuario al mantener los datos confidenciales en el dispositivo. La imagen de abajo muestra la arquitectura de TensorFlow.js y cómo los modelos de aprendizaje automático se convierten e implementan tanto en navegadores web como en Node.js.
La ejecución de modelos localmente también reduce la latencia y proporciona una experiencia de usuario más receptiva. TensorFlow.js también viene con capacidades sin conexión, lo que permite a los usuarios utilizar su aplicación incluso sin conexión a Internet. TF.js está diseñado para la ejecución eficiente de modelos complejos en dispositivos con recursos limitados, ya que está diseñado para la escalabilidad, con soporte de aceleración de GPU.
Características principales de TF.js
Estas son las características clave que hacen de TF.js una herramienta poderosa para los desarrolladores:
-
Soporte multiplataforma: TensorFlow.js se puede utilizar tanto en el navegador como en entornos Node.js, lo que proporciona flexibilidad en la implementación en diferentes plataformas. Permite a los desarrolladores crear e implementar aplicaciones más fácilmente.
-
Soporte para múltiples backends: TensorFlow.js admite varios backends para la computación, incluidos CPU, WebGL para la aceleración de GPU, WebAssembly (WASM) para una velocidad de ejecución casi nativa y WebGPU para capacidades avanzadas de aprendizaje automático basadas en navegador.
-
Capacidades sin conexión: Con TensorFlow.js, los modelos pueden ejecutarse en el navegador sin necesidad de una conexión a Internet, lo que permite desarrollar aplicaciones que funcionan sin conexión.
Opciones de implementación con TensorFlow.js
Antes de profundizar en el proceso de exportación de modelos YOLO11 al formato TF.js, exploremos algunos escenarios de implementación típicos donde se utiliza este formato.
TF.js proporciona una variedad de opciones para implementar sus modelos de aprendizaje automático:
-
Aplicaciones de ML en el navegador: Puede crear aplicaciones web que ejecuten modelos de aprendizaje automático directamente en el navegador. Se elimina la necesidad de computación del lado del servidor y se reduce la carga del servidor.
-
Aplicaciones Node.js: TensorFlow.js también admite la implementación en entornos Node.js, lo que permite el desarrollo de aplicaciones de aprendizaje automático del lado del servidor. Es particularmente útil para aplicaciones que requieren la potencia de procesamiento de un servidor o acceso a datos del lado del servidor.
-
Extensiones de Chrome: Un escenario de implementación interesante es la creación de extensiones de Chrome con TensorFlow.js. Por ejemplo, puede desarrollar una extensión que permita a los usuarios hacer clic derecho en una imagen dentro de cualquier página web para clasificarla utilizando un modelo de ML pre-entrenado. TensorFlow.js se puede integrar en las experiencias cotidianas de navegación web para proporcionar información inmediata o aumentos basados en el aprendizaje automático.
Exportando modelos YOLO11 a TensorFlow.js
Puede ampliar la compatibilidad del modelo y la flexibilidad de la implementación convirtiendo los modelos YOLO11 a TF.js.
Instalación
Para instalar el paquete requerido, 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 TF.js format
model.export(format="tfjs") # creates '/yolo11n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO("./yolo11n_web_model")
# Run inference
results = tfjs_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF.js format
yolo export model=yolo11n.pt format=tfjs # creates '/yolo11n_web_model'
# Run inference with the exported model
yolo predict model='./yolo11n_web_model' source='https://ultralytics.com/images/bus.jpg'
Argumentos de exportación
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
format |
str |
'tfjs' |
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. |
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 TensorFlow.js YOLO11 exportados
Ahora que has exportado tu modelo YOLO11 al formato TF.js, el siguiente paso es implementarlo. El primer paso principal y recomendado para ejecutar un modelo TF.js es utilizar el YOLO("./yolo11n_web_model")
método, como se mostró anteriormente en el fragmento de código de uso.
Sin embargo, para obtener instrucciones detalladas sobre cómo implementar sus modelos TF.js, consulte los siguientes recursos:
-
Extensión de Chrome: Aquí está la documentación para desarrolladores sobre cómo implementar sus modelos TF.js en una extensión de Chrome.
-
Ejecutar TensorFlow.js en Node.js: Una publicación de blog de TensorFlow sobre cómo ejecutar TensorFlow.js en Node.js directamente.
-
Implementación de TensorFlow.js - Proyecto Node en Cloud Platform: Una publicación de blog de TensorFlow sobre la implementación de un modelo TensorFlow.js en Cloud Platform.
Resumen
En esta guía, aprendimos cómo exportar modelos Ultralytics YOLO11 al formato TensorFlow.js. Al exportar a TF.js, obtiene la flexibilidad de optimizar, implementar y escalar sus modelos YOLO11 en una amplia gama de plataformas.
Para obtener más detalles sobre su uso, visite la documentación oficial de TensorFlow.js.
Para obtener más información sobre la integración de Ultralytics YOLO11 con otras plataformas y frameworks, no olvides consultar nuestra página de la guía de integración. Está repleta de excelentes recursos para ayudarte a aprovechar al máximo YOLO11 en tus proyectos.
Preguntas frecuentes
¿Cómo exporto modelos Ultralytics YOLO11 al formato TensorFlow.js?
Exportar modelos Ultralytics YOLO11 al formato TensorFlow.js (TF.js) es sencillo. Puede seguir estos pasos:
Uso
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF.js format
model.export(format="tfjs") # creates '/yolo11n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO("./yolo11n_web_model")
# Run inference
results = tfjs_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF.js format
yolo export model=yolo11n.pt format=tfjs # creates '/yolo11n_web_model'
# Run inference with the exported model
yolo predict model='./yolo11n_web_model' source='https://ultralytics.com/images/bus.jpg'
Para obtener más detalles sobre las opciones de exportación admitidas, visita la página de documentación de Ultralytics sobre las opciones de implementación.
¿Por qué debería exportar mis modelos YOLO11 a TensorFlow.js?
Exportar modelos YOLO11 a TensorFlow.js ofrece varias ventajas, incluyendo:
- 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.
- Soporte multiplataforma: TF.js es compatible con múltiples entornos, lo que permite flexibilidad en la implementación.
- Capacidades sin conexión: Permite que las aplicaciones funcionen sin conexión a Internet, lo que garantiza la fiabilidad y la privacidad.
- Aceleración por GPU: Aprovecha WebGL para la aceleración por GPU, optimizando el rendimiento en dispositivos con recursos limitados.
Para obtener una visión general completa, consulta nuestras Integraciones con TensorFlow.js.
¿Cómo beneficia TensorFlow.js a las aplicaciones de aprendizaje automático basadas en el navegador?
TensorFlow.js está diseñado específicamente para la ejecución eficiente de modelos ML en navegadores y entornos Node.js. Aquí se explica cómo beneficia a las aplicaciones basadas en navegador:
- Reduce la Latencia: Ejecuta modelos de aprendizaje automático localmente, proporcionando resultados inmediatos sin depender de cálculos del lado del 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 operar sin conexión a Internet, lo que garantiza una funcionalidad consistente.
- Admite múltiples backends: Ofrece flexibilidad con backends como CPU, WebGL, WebAssembly (WASM) y WebGPU para diferentes necesidades computacionales.
¿Le interesa obtener más información sobre TF.js? Consulte la guía oficial de TensorFlow.js.
¿Cuáles son las principales características de TensorFlow.js para implementar modelos YOLO11?
Las características clave de TensorFlow.js incluyen:
- Soporte multiplataforma: TF.js se puede utilizar tanto en navegadores web como en Node.js, lo que proporciona una amplia flexibilidad de implementación.
- Múltiples backends: Soporta CPU, WebGL para aceleración de GPU, WebAssembly (WASM) y WebGPU para operaciones avanzadas.
- Capacidades sin conexión: Los modelos pueden ejecutarse directamente en el navegador sin conectividad a Internet, lo que los hace ideales para desarrollar aplicaciones web con capacidad de respuesta.
Para escenarios de implementación e información más detallada, consulta nuestra sección sobre Opciones de implementación con TensorFlow.js.
¿Puedo implementar un modelo YOLO11 en aplicaciones Node.js del lado del servidor utilizando TensorFlow.js?
Sí, TensorFlow.js permite la implementación de modelos YOLO11 en entornos Node.js. Esto permite aplicaciones de aprendizaje automático del lado del servidor que se benefician de la potencia de procesamiento de un servidor y del acceso a datos del lado del servidor. Los casos de uso típicos incluyen el procesamiento de datos en tiempo real y las canalizaciones de aprendizaje automático en servidores backend.
Para empezar con la implementación en Node.js, consulta la guía Ejecutar TensorFlow.js en Node.js de TensorFlow.