Cheque verde
Enlace copiado en el portapapeles

Containerización mediante Docker para agilizar el despliegue de modelos

Aprende cómo el uso de Docker para la contenerización hace que el despliegue de modelos de visión por ordenador como Ultralytics YOLO11 sea más eficiente y sencillo.

El proceso de creación de una solución de visión por ordenador implica más pasos que simplemente entrenar y probar un modelo. De hecho, una de las partes más emocionantes de la creación de modelos de vanguardia es ver cómo tienen impacto en entornos del mundo real. Utilizar la IA de visión para resolver problemas conduce naturalmente a desplegar en producción los modelos de visión por ordenador que desarrollas.

El despliegue de modelos implica varios pasos, incluida la optimización de los modelos en cuanto a fiabilidad, escalabilidad y rendimiento en diversas condiciones. Un flujo de trabajo de despliegue bien estructurado tiende un puente entre el desarrollo del modelo y el hecho de que el modelo tenga un impacto significativo que marque la diferencia. 

A menudo, al desplegar modelos de visión por ordenador como Ultralytics YOLO11hay múltiples técnicas y opciones de despliegue entre las que puedes elegir, y depende de la aplicación específica que estés construyendo. Por ejemplo, técnicas como la contenedorización pueden simplificar el flujo de trabajo de despliegue. 

La contenerización ayuda a empaquetar un modelo y sus dependencias, como bibliotecas, frameworks y configuraciones, en una única unidad autocontenida llamada contenedor. Una de las formas más eficientes y populares de hacerlo es con Docker, una plataforma de código abierto que facilita la creación, el envío y la ejecución de aplicaciones en contenedores.

En este artículo, exploraremos cómo la contenedorización y Docker agilizan el despliegue de modelos, garantizando una escalabilidad y eficiencia sin fisuras en las aplicaciones Vision AI del mundo real.

¿Qué es la implantación de modelos?

El despliegue del modelo es la fase final del ciclo de vida del aprendizaje automático, en la que el modelo entrenado se introduce en un entorno de producción para hacer predicciones en el mundo real. El éxito del despliegue es un elemento clave para que el modelo funcione de forma fiable en condiciones prácticas. 

Por ejemplo, considera un modelo de visión por ordenador diseñado para identificar matrículas para el cobro automático de peajes. Aunque puede alcanzar una gran precisión en un entorno controlado con conjuntos de datos bien etiquetados, su despliegue en cámaras situadas junto a la carretera puede introducir problemas de latencia debido a factores como el procesamiento de imágenes de alta resolución, los retrasos de la red, las limitaciones del hardware y las restricciones de la inferencia en tiempo real. 

La lentitud de las predicciones puede provocar retrasos en el procesamiento de los peajes, atascos o incluso la omisión de detecciones. Unas estrategias adecuadas de despliegue del modelo pueden ayudar a reducir la latencia, mejorar la eficacia y favorecer un rendimiento fiable en las aplicaciones del mundo real.

Fig. 1. Detección de matrículas con YOLO11.

Además, hay que tener en cuenta varias consideraciones a la hora de desplegar los modelos. Una es la escalabilidad, en la que los modelos funcionan bien durante el entrenamiento, pero pueden tener dificultades para manejar datos a gran escala.

Otra son los desajustes del entorno, como las diferencias de hardware, cuando un modelo se entrena en GPU (Unidades de Procesamiento Gráfico) de alto rendimiento, pero se despliega en dispositivos con una potencia de procesamiento limitada. Estas incoherencias en el despliegue pueden dar lugar a un comportamiento imprevisto del modelo. Para hacer frente a estos retos pueden utilizarse soluciones avanzadas como la contenedorización.

Contenedorización

La contenedorización puede compararse a llevar la fiambrera, que contiene todo lo que necesitas para una comida, como alimentos, cubiertos y condimentos. Puedes comer en cualquier sitio sin preocuparte de encontrar una cocina o utensilios específicos. 

Del mismo modo, la contenedorización empaqueta un modelo con todas sus dependencias, como bibliotecas, frameworks y configuraciones, en una única unidad llamada contenedor. Estos contenedores garantizan que el modelo se ejecute de forma coherente, proporcionando las mismas dependencias en cualquier sistema, independientemente del entorno subyacente. A diferencia de las máquinas virtuales, que transportan sistemas operativos enteros, los contenedores son ligeros y portátiles, lo que los convierte en una alternativa eficaz.

Fig. 2. Una visión general de la contenedorización.

He aquí algunas de las principales ventajas de la contenedorización:

  • Control de versiones: Con la contenedorización, pueden coexistir diferentes versiones de un modelo o pila de software, lo que permite realizar fácilmente retrocesos y actualizaciones sin interrumpir los sistemas de producción.
  • Seguridad: Los contenedores aíslan las aplicaciones del sistema subyacente, reduciendo el riesgo de conflictos, vulnerabilidades y accesos no autorizados.
  • Despliegue rápido: Las imágenes de contenedor preconfiguradas permiten despliegues rápidos y repetibles, reduciendo el tiempo de configuración y minimizando los errores de despliegue.

Docker: simplificar la contenedorización

‍Aunquela contenedorización es una forma estupenda de ejecutar aplicaciones en entornos aislados, configurarla puede ser complicado. Ahí es donde entra Docker. Docker es una plataforma de código abierto que simplifica la creación, despliegue y gestión de aplicaciones en contenedores.

Proporciona un entorno coherente y aislado junto con las herramientas y marcos necesarios para probar el modelo. En concreto, Docker es conocido por su sólido ecosistema y su facilidad de uso. Facilita el despliegue de modelos de IA simplificando el proceso, trabajando sin problemas con plataformas en la nube y permitiendo que los modelos de IA se ejecuten eficientemente en dispositivos periféricos para obtener resultados más rápidos.

Muchas industrias lo están utilizando activamente para desplegar y gestionar aplicaciones en contenedores de forma eficiente.El despliegue de modelos basado en Docker implica generalmente tres componentes principales:

  • Dockerfile: Un archivo de configuración basado en texto que actúa como modelo para crear una imagen Docker. Contiene todas las instrucciones necesarias, incluida la imagen base, las dependencias necesarias, la configuración del entorno y los comandos para ejecutar el modelo.
  • Imágenes Docker: Archivos de paquetes preconfigurados que incluyen todo lo necesario para la ejecución del modelo, como código, bibliotecas, entornos de ejecución y dependencias. Estas imágenes garantizan que el modelo se ejecute con la misma configuración en cualquier sistema.
  • Contenedores Docker: Instancias en ejecución de imágenes Docker que proporcionan un entorno aislado y seguro para la ejecución del modelo. Dentro de este entorno, el modelo puede entrenarse, probarse y ajustarse sin interferir con otras aplicaciones o con el sistema anfitrión.
Fig. 3. Comprender los componentes clave de Docker.

Explorar una aplicación de visión por ordenador utilizando Docker

Supongamos que una ciudad quiere desplegar un sistema de vigilancia del tráfico que utilice la visión por ordenador para detectar y clasificar vehículos en tiempo real. Desplegar este sistema en varias ubicaciones, cada una con un hardware y unas condiciones de red diferentes, puede ser todo un reto. Los problemas de compatibilidad, los conflictos de dependencia y los entornos incoherentes pueden provocar un rendimiento poco fiable.

Utilizando Docker, los desarrolladores pueden empaquetar todo el modelo de visión por ordenador, junto con sus dependencias (como marcos de IA como TensorFlow y scripts personalizados), en un contenedor. Esto garantiza que el modelo se ejecute de forma coherente en distintos entornos, desde el desarrollo local hasta los servidores basados en la nube o incluso los dispositivos de borde instalados en las cámaras de tráfico.

Fig 4. Cómo funciona Docker.

Por ejemplo, desplegando modelos de visión computerizada Dockerizados en múltiples intersecciones, la ciudad puede analizar el flujo de tráfico, detectar infracciones y optimizar las señales de tráfico. Dado que Docker facilita un entorno estandarizado en todas las ubicaciones, el mantenimiento es más sencillo, las actualizaciones son fluidas y el rendimiento se mantiene constante.

Despliegue de YOLO11 con Docker

YOLO11, con su capacidad para realizar tareas complejas de visión por ordenador, puede utilizarse en diversas industrias, como la fabricación, la sanidad, la conducción autónoma y la agricultura. 

Por ejemplo, YOLO11 puede procesar secuencias de vídeo en aplicaciones de fitness para realizar un seguimiento de ejercicios como flexiones mediante la estimación de la postura. Al detectar los movimientos del cuerpo y contar las repeticiones en tiempo real, ayuda a mejorar el seguimiento del entrenamiento y el análisis del rendimiento.

Fig 5. Seguimiento de un entrenamiento con YOLO11.

Si queremos desplegar un modelo así en aplicaciones del mundo real, tenemos que gestionar las dependencias, optimizar el hardware y garantizar un rendimiento coherente en distintos entornos. El uso de Docker simplifica este proceso al empaquetar YOLO11 con todas las bibliotecas y configuraciones necesarias, lo que hace que el despliegue sea más eficiente, escalable y fiable.

He aquí un rápido vistazo a las ventajas de desplegar YOLO11 utilizando Docker:

  • Mantenimiento simplificado: Docker simplifica el proceso de actualización y mantenimiento YOLO11 y sus dependencias. Las actualizaciones pueden aplicarse a la imagen del contenedor sin afectar al sistema anfitrión, lo que garantiza una gestión del modelo fluida y eficaz.
  • Colaboración simplificada: Los desarrolladores e investigadores pueden compartir fácilmente contenedores Docker preconfigurados, garantizando que los equipos trabajen con el mismo entorno y evitando problemas de compatibilidad.
  • Eficiencia de recursos: A diferencia de las máquinas virtuales tradicionales, los contenedores Docker comparten el sistema operativo anfitrión, lo que reduce la sobrecarga y mejora la utilización de los recursos, algo crucial para las tareas de inferencia en tiempo real.

Aplicaciones YOLO11 que pueden desplegarse utilizando Docker

Veamos algunos ejemplos de aplicaciones de visión por ordenador que pueden construirse utilizando YOLO11 y Docker. 

Monitorizar el tráfico con YOLO11

Antes hemos hablado de la supervisión del tráfico mediante visión por ordenador. Curiosamente, la compatibilidad de YOLO11con el seguimiento de objetos puede ayudar a crear un sistema integral de gestión del tráfico. ¿Cómo funciona?

YOLO11 puede analizar las secuencias de vídeo en directo de las cámaras de tráfico para detectar y seguir a los vehículos en tiempo real. Al identificar continuamente las posiciones, velocidades y patrones de movimiento de los vehículos, el sistema puede controlar los niveles de congestión, detectar infracciones de tráfico (como saltarse semáforos en rojo o giros ilegales) y optimizar las señales de tráfico basándose en datos en tiempo real.

Además, desplegar YOLO11 en dispositivos periféricos o plataformas basadas en la nube con la ayuda de Docker garantiza un procesamiento y una escalabilidad eficientes, lo que lo convierte en una valiosa herramienta para la gestión inteligente del tráfico urbano.

Fig. 6. Seguimiento y recuento de vehículos con YOLO11.

Fisioterapia mejorada con YOLO11

Cuando se trata de asistencia sanitaria, la fisioterapia es crucial para la rehabilitación, y la postura y el movimiento adecuados son vitales para una recuperación satisfactoria. La información en tiempo real de un sistema de monitorización del paciente basado en la visión puede ayudar a los terapeutas a detectar problemas como ángulos articulares incorrectos o desequilibrios musculares. 

Por ejemplo, si un paciente realiza una elevación de hombros pero no levanta el brazo a la altura correcta o lo compensa con una postura inadecuada, el sistema puede detectar estos errores y proporcionar correcciones instantáneas. Esto permite a los terapeutas ajustar los tratamientos en tiempo real.

Las capacidades de estimación de la postura de YOLO11pueden utilizarse para detectar puntos clave del cuerpo y analizar los movimientos de las articulaciones. Puede procesar secuencias de vídeo en directo para proporcionar información instantánea, ayudando a los terapeutas a corregir posturas, mejorar la precisión de los movimientos y prevenir lesiones. Esto facilita la creación de planes de tratamiento personalizados basados en el progreso de cada paciente.

Fig 7. Un ejemplo de seguimiento de fisioterapia con YOLO11.

Con respecto al despliegue de este tipo de soluciones, el uso de Docker puede garantizar un funcionamiento sin problemas en distintos entornos, ya sea en clínicas o para la monitorización remota de pacientes. Docker simplifica el despliegue, mejora la escalabilidad y mantiene la coherencia del sistema, haciendo que las herramientas de fisioterapia impulsadas por IA sean más fiables y accesibles.

Puntos clave

Desplegar un modelo de visión por ordenador es un paso fundamental para llevarlo del desarrollo al uso en el mundo real. Un proceso de despliegue sin problemas garantiza que el modelo entrenado funcione de forma fiable en aplicaciones prácticas. Herramientas como Docker y la contenedorización han facilitado este proceso al eliminar muchos de los retos tradicionales. 

Con su naturaleza ligera, portátil y escalable, estas tecnologías están cambiando la forma de construir y desplegar modelos como YOLO11 . Utilizando la contenedorización, las empresas pueden ahorrar tiempo, reducir costes y mejorar la eficiencia, garantizando al mismo tiempo que los modelos se ejecuten de forma coherente en distintos entornos.

Únete a nuestra comunidad y consulta nuestro repositorio de GitHub para aprender más sobre IA. Lee sobre diversas aplicaciones de la visión por ordenador en la sanidad y la IA en la fabricación. Explora nuestras opciones de licencia yolo para empezar con Vision AI.

Logotipo de FacebookLogotipo de TwitterLogotipo de LinkedInSímbolo de enlace de copia

Leer más en esta categoría

¡Construyamos juntos el futuro
de la IA!

Comienza tu viaje con el futuro del aprendizaje automático