Saltar al contenido

C贸mo exportar a TF GraphDef desde YOLOv8 para su despliegue

Cuando despliegas modelos de visi贸n por ordenador de 煤ltima generaci贸n, como YOLOv8, en distintos entornos, puedes encontrarte con problemas de compatibilidad. Los modelos de Google TensorFlow GraphDef , o TF GraphDef , ofrecen una soluci贸n al proporcionar una representaci贸n serializada e independiente de la plataforma de tu modelo. Utilizando el formato de modelo TF GraphDef , puedes desplegar tu modelo YOLOv8 en entornos en los que el ecosistema completo TensorFlow puede no estar disponible, como dispositivos m贸viles o hardware especializado.

En esta gu铆a te explicaremos paso a paso c贸mo exportar tus Ultralytics YOLOv8 modelos al formato de modelo TF GraphDef . Al convertir tu modelo, puedes agilizar la implantaci贸n y utilizar las capacidades de visi贸n por ordenador de YOLOv8 en una gama m谩s amplia de aplicaciones y plataformas.

TensorFlow GraphDef

驴Por qu茅 debes exportar a TF GraphDef ?

TF GraphDef es un potente componente del ecosistema TensorFlow desarrollado por Google. Puede utilizarse para optimizar y desplegar modelos como YOLOv8. Exportar a TF GraphDef nos permite trasladar modelos de la investigaci贸n a aplicaciones del mundo real. Permite que los modelos se ejecuten en entornos sin el marco completo TensorFlow .

El formato GraphDef representa el modelo como un grafo de c谩lculo serializado. Esto permite diversas t茅cnicas de optimizaci贸n, como el plegado de constantes, la cuantizaci贸n y las transformaciones de grafos. Estas optimizaciones garantizan una ejecuci贸n eficaz, un menor uso de memoria y una mayor velocidad de inferencia.

GraphDef pueden utilizar aceleradores de hardware como GPUs, TPUs y chips de IA, desbloqueando importantes ganancias de rendimiento para la tuber铆a de inferencia YOLOv8 . El formato TF GraphDef crea un paquete autocontenido con el modelo y sus dependencias, lo que simplifica el despliegue y la integraci贸n en diversos sistemas.

Caracter铆sticas principales de los modelos TF GraphDef

TF GraphDef ofrece distintas funciones para agilizar la implantaci贸n y optimizaci贸n de modelos.

Aqu铆 tienes un vistazo a sus principales caracter铆sticas:

  • Serializaci贸n de modelos: TF GraphDef proporciona una forma de serializar y almacenar modelos TensorFlow en un formato independiente de la plataforma. Esta representaci贸n serializada te permite cargar y ejecutar tus modelos sin la base de c贸digo Python original, lo que facilita el despliegue.

  • Optimizaci贸n de grafos: TF GraphDef permite optimizar los grafos computacionales. Estas optimizaciones pueden aumentar el rendimiento agilizando el flujo de ejecuci贸n, reduciendo las redundancias y adaptando las operaciones a un hardware espec铆fico.

  • Flexibilidad de despliegue: Los modelos exportados al formato GraphDef pueden utilizarse en diversos entornos, como dispositivos con recursos limitados, navegadores web y sistemas con hardware especializado. Esto abre posibilidades para un despliegue m谩s amplio de tus modelos TensorFlow .

  • Enfoque de producci贸n: GraphDef est谩 dise帽ado para la implantaci贸n en producci贸n. Admite una ejecuci贸n eficiente, funciones de serializaci贸n y optimizaciones que se ajustan a los casos de uso del mundo real.

Opciones de despliegue con TF GraphDef

Antes de sumergirnos en el proceso de exportaci贸n de modelos de YOLOv8 a TF GraphDef , echemos un vistazo a algunas situaciones t铆picas de implantaci贸n en las que se utiliza este formato.

He aqu铆 c贸mo puedes desplegar con TF GraphDef de forma eficiente en varias plataformas.

  • TensorFlow Servir: Este marco est谩 dise帽ado para desplegar modelos TensorFlow en entornos de producci贸n. TensorFlow Serving ofrece gesti贸n de modelos, versionado y la infraestructura para un servicio eficiente de modelos a escala. Es una forma sencilla de integrar tus modelos basados en GraphDef en servicios web o API de producci贸n.

  • Dispositivos m贸viles e integrados: Con herramientas como TensorFlow Lite, puedes convertir los modelos de TF GraphDef en formatos optimizados para tel茅fonos inteligentes, tabletas y diversos dispositivos integrados. Tus modelos pueden utilizarse entonces para la inferencia en el dispositivo, donde la ejecuci贸n se realiza localmente, lo que a menudo proporciona ganancias de rendimiento y capacidades offline.

  • Navegadores web: TensorFlow.js permite desplegar modelos TF GraphDef directamente en los navegadores web. Prepara el camino para las aplicaciones de detecci贸n de objetos en tiempo real que se ejecutan en el lado del cliente, utilizando las capacidades de YOLOv8 a trav茅s de JavaScript.

  • Hardware especializado: TF La naturaleza agn贸stica de la plataformaGraphDef le permite dirigirse a hardware personalizado, como aceleradores y TPU (Tensor Unidades de Procesamiento). Estos dispositivos pueden proporcionar ventajas de rendimiento para modelos de c谩lculo intensivo.

Exportar modelos de YOLOv8 a TF GraphDef

Puedes convertir tu modelo de detecci贸n de objetos YOLOv8 al formato TF GraphDef , que es compatible con varios sistemas, para mejorar su rendimiento en todas las plataformas.

Instalaci贸n

Para instalar el paquete necesario, ejecuta

Instalaci贸n

# Install the required package for YOLOv8
pip install ultralytics

Para obtener instrucciones detalladas y buenas pr谩cticas relacionadas con el proceso de instalaci贸n, consulta nuestra gu铆a de instalaci贸nUltralytics . Mientras instalas los paquetes necesarios para YOLOv8, si encuentras alguna dificultad, consulta nuestra gu铆a de Problemas comunes para encontrar soluciones y consejos.

Utilizaci贸n

Antes de sumergirte en las instrucciones de uso, es importante tener en cuenta que, aunque todos los modelos deUltralytics YOLOv8 est谩n disponibles para exportar, aqu铆 puedes asegurarte de que el modelo que seleccionas admite la funci贸n de exportaci贸n.

Utilizaci贸n

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to TF GraphDef format
model.export(format="pb")  # creates 'yolov8n.pb'

# Load the exported TF GraphDef model
tf_graphdef_model = YOLO("yolov8n.pb")

# Run inference
results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to TF GraphDef format
yolo export model=yolov8n.pt format=pb  # creates 'yolov8n.pb'

# Run inference with the exported model
yolo predict model='yolov8n.pb' source='https://ultralytics.com/images/bus.jpg'

Para m谩s detalles sobre las opciones de exportaci贸n admitidas, visita la p谩gina de documentaci贸nUltralytics sobre opciones de despliegue.

Despliegue de modelos exportados YOLOv8 TF GraphDef

Una vez que hayas exportado tu modelo YOLOv8 al formato TF GraphDef , el siguiente paso es el despliegue. El primer paso principal y recomendado para ejecutar un modelo TF GraphDef es utilizar el m茅todo YOLO("model.pb"), como se ha mostrado anteriormente en el fragmento de c贸digo de uso.

Sin embargo, para obtener m谩s informaci贸n sobre el despliegue de tus modelos TF GraphDef , echa un vistazo a los siguientes recursos:

  • TensorFlow Sirviendo a: Una gu铆a sobre TensorFlow Serving que ense帽a c贸mo desplegar y servir eficientemente modelos de aprendizaje autom谩tico en entornos de producci贸n.

  • TensorFlow Lite: Esta p谩gina describe c贸mo convertir modelos de aprendizaje autom谩tico en un formato optimizado para la inferencia en el dispositivo con TensorFlow Lite.

  • TensorFlow.js: Una gu铆a sobre la conversi贸n de modelos que ense帽a a convertir modelos TensorFlow o Keras al formato TensorFlow.js para utilizarlos en aplicaciones web.

Resumen

En esta gu铆a, exploramos c贸mo exportar modelos Ultralytics YOLOv8 al formato TF GraphDef . Haciendo esto, puedes desplegar de forma flexible tus modelos YOLOv8 optimizados en diferentes entornos.

Para m谩s detalles sobre su uso, visita la documentaci贸n oficial deTF GraphDef .

Para obtener m谩s informaci贸n sobre la integraci贸n de Ultralytics YOLOv8 con otras plataformas y frameworks, no olvides consultar nuestra p谩gina de la gu铆a de integraci贸n. Contiene excelentes recursos e informaci贸n que te ayudar谩n a sacar el m谩ximo partido de YOLOv8 en tus proyectos.



Creado 2024-03-22, Actualizado 2024-05-18
Autores: glenn-jocher (1), RizwanMunawar (1), Burhan-Q (1), abirami-vina (1)

Comentarios