Noticias

Cómo colorear imágenes en blanco y negro: demostración de OpenVINO ™ en un contenedor de Ubuntu (Parte 1)

Se acerca la Navidad, pero no tienes regalos para tus (abuelos) padres (Mamá, Papá, si estás leyendo este artículo, ¡te garantizo que este artículo no es de la vida real!). Buscando una solucion? Si sus seres queridos han experimentado la era de la fotografía en blanco y negro, siga leyendo. Puede utilizar la distribución del kit de herramientas Intel® OpenVINO ™ para realizar magia en los contenedores de Ubuntu y dar un nuevo aspecto a sus imágenes antiguas. ¡Espero que este blog pueda salvar la Navidad!

Además, suponga que tiene curiosidad acerca de AI / ML y lo que puede hacer con OpenVINO en contenedores de Ubuntu. En este caso, este blog también es una buena lectura para ti.

OpenVINO en el contenedor de Ubuntu: facilitando la vida de los desarrolladores

La seguridad de la imagen de Docker no solo está relacionada con la fuente y la cadena de suministro; también está relacionada con la experiencia del usuario. Más específicamente, la experiencia del desarrollador.

Eliminar el trabajo y la fricción del proceso de implementación, contenedorización y desarrollo de aplicaciones puede evitar alentar a los desarrolladores a usar fuentes no confiables o malas prácticas en nombre de hacer su trabajo. Dado que el desarrollo de AI / ML generalmente requiere dependencias complejas, es una prueba perfecta de una imagen de contenedor segura y estable.

¿Por qué es la imagen de Ubuntu Docker?

Como la imagen de contenedor más popular entre productos similares, Ubuntu Imagen basica Proporcione una experiencia sencilla y sencilla de configurar. Desde hosts de nube pública hasta dispositivos IoT, la experiencia de Ubuntu es siempre la misma, algo que los desarrolladores adoran profundamente.

Una de las principales razones para adoptar imágenes de contenedores basadas en Ubuntu es el ecosistema de software. Un solo comando de «instalación» puede proporcionar más de 30.000 paquetes, y puede optar por suscribirse al soporte corporativo de Canonical. Simplemente facilita las cosas.

En el próximo y último blog (próximamente, continuando publicando …), verá que el uso de imágenes de Ubuntu Docker simplifica enormemente la contenedorización de componentes.Incluso usamos un Imágenes de contenedor preconfiguradas y preconfiguradas Se utiliza para el servidor web NGINX en el portafolio de imágenes LTS mantenido por Canonical durante 10 años.

Además de proporcionar una experiencia segura, estable y consistente a través de imágenes de contenedor, Ubuntu también es una opción segura desde servidores bare metal hasta contenedores. Además, también optimiza el hardware en la nube y localmente, incluido el hardware de Intel.

¿Por qué elegir OpenVINO?

Cuando se está preparando para implementar la inferencia de aprendizaje profundo en producción, el tamaño binario y la huella de memoria son consideraciones clave, especialmente cuando se implementa en el borde. OpenVINO proporciona un motor de inferencia ligero de tamaño binario Más de 40 MB Se utiliza para el razonamiento basado en CPU. También proporciona un servidor modelo para el suministro a gran escala de modelos y la implementación de la gestión.

OpenVINO incluye herramientas de desarrollo de código abierto para mejorar el rendimiento de la inferencia del modelo. El primer paso es usar el optimizador de modelos para convertir el modelo de aprendizaje profundo (entrenado con TensorFlow, PyTorch, etc.) en una representación intermedia (IR).De hecho, reduce el uso de memoria del modelo. mitad Convirtiéndolo de precisión FP32 a precisión FP16. Puede utilizar las herramientas de baja precisión de OpenVINO para desbloquear un rendimiento adicional. La herramienta de optimización posterior al entrenamiento (POT) y el marco de compresión de redes neuronales (NNCF) proporcionan cuantificación, binarización, eliminación de filtros y algoritmos dispersos. Como resultado, aumenta el rendimiento de los dispositivos Intel en la CPU, GPU integrada, VPU y otros aceleradores.

Open Model Zoo proporciona modelos previamente entrenados adecuados para casos de uso prácticos para ayudarlo a comenzar rápidamente. Además, los códigos de muestra de Python y C ++ demuestran cómo interactuar con el modelo. Más de 280 modelos previamente entrenados están disponibles para descargar, desde el reconocimiento de voz hasta el procesamiento del lenguaje natural y la visión por computadora.

En este blog, usaremos modelos de sombreado previamente entrenados de Open Model Zoo y los serviremos a través de Model Server.

Imágenes de contenedor OpenVINO y Ubuntu

De forma predeterminada, el servidor modelo viene con la última versión de Ubuntu LTS, que proporciona un entorno de desarrollo coherente e imágenes base fáciles de colocar en capas. Las herramientas OpenVINO también se pueden utilizar como contenedores de desarrollo y tiempo de ejecución prediseñados fotografía.

Para obtener más información sobre las imágenes de Canonical LTS Docker y OpenVINO ™, lea:

Red neuronal para colorear imágenes en blanco y negro

Ahora, volviendo a la pregunta que nos ocupa: ¿cómo colorearemos las fotos antiguas de la abuela y el abuelo?Gracias Zoológico modelo abiertoNo tenemos que entrenar la red neuronal nosotros mismos, solo enfocarnos en la implementación. (todavía puedes Leerlo.)

Diagrama de arquitectura de la aplicación de demostración de colorizador que se ejecuta en MicroK8s

Nuestra arquitectura consta de tres microservicios: parte trasera, Una especie de Interfaz,al igual que Servidor de modelos OpenVINO (OVMS) Para servicios de predicción de redes neuronales. El componente del servidor modelo aloja dos redes neuronales de demostración diferentes para comparar sus resultados (V1 y V2). Todos estos componentes utilizan la imagen base de Ubuntu para lograr un ecosistema de software coherente y un entorno en contenedores.

Si no está familiarizado con este tipo de arquitectura de microservicio, lea lo siguiente:

API de gRPC y REST

El servidor modelo OpenVINO proporciona inferencia como servicio a través de puntos finales HTTP / REST y gRPC para OpenVINO IR o ONNX Formato. También proporciona una gestión de modelos centralizada, que sirve a varios modelos diferentes o diferentes versiones del mismo modelo y canalización de modelos.

El servidor proporciona dos conjuntos de API para interactuar con él: REST y gRPC. Ambas API son compatibles con TensorFlow Serving y exponen extremos para predecir, verificar metadatos del modelo y monitorear el estado del modelo. Para los casos de uso que requieren baja latencia y alto rendimiento, es posible que desee interactuar con el servidor modelo a través de la API de gRPC. De hecho, presenta muchos menos gastos generales que REST. (leer Más acerca de gRPC.)

Servidor modelo OpenVINO como Imagen de Docker Con mínima dependencia. Para esta demostración, usaremos la imagen de contenedor de servidor modelo implementada en el clúster MicroK8s. Esta combinación de tecnologías ligeras es adecuada para pequeñas implementaciones. Es adecuado para que los dispositivos de computación de borde realicen inferencias donde se generan los datos, para mejorar la privacidad, la baja latencia y el bajo uso de la red.

Imagen de contenedor mínima de Ubuntu

Desde 2019, la imagen base de Ubuntu siempre ha sido la más pequeña y no tiene un sabor «delgado». Aunque hay margen de mejora (mantener la versión), la descarga de la imagen de Ubuntu Docker ocupa menos de 30 MB, lo que la convierte en una de las distribuciones de Linux más pequeñas disponibles en contenedores.

En términos de seguridad de la imagen de Docker, el tamaño es una cosa y la reducción de la superficie de ataque es una inversión justa. Sin embargo, en circunstancias normales, el tamaño no lo es todo. De hecho, el mantenimiento es lo más importante. Las imágenes base de Ubuntu tienen una comunidad de ecosistema de software rica y activa y, en general, son más seguras que las versiones más pequeñas.

Un error común es comenzar poco a poco e instalar una gran cantidad de dependencias de muchas fuentes diferentes. El resultado final tendrá un rendimiento deficiente, utilizará dependencias no optimizadas y no será seguro. Es posible que no desee terminar manteniendo efectivamente su propia distribución de Linux … así que permítanos hacerlo por usted.

Colorear fotos en blanco y negro: ¿que sigue?

En el próximo y último blog de esta serie, comenzaremos a codificar. Le prometo que proporcionará soluciones específicas para los regalos de Navidad después de leer. Ya puede comenzar a escanear libros de fotos antiguos para hacer versiones en color de ellos.

En el blog final, haremos lo siguiente:

  • Prepare el código de back-end y front-end (¡incluido el código fuente!)
  • Cree Dockerfiles para cada componente basado en Ubuntu y duplicación de LTS
  • Descripción general de las mejores prácticas para imágenes de contenedores mediante compilaciones de varias etapas
  • Implementar el servidor modelo OpenVINO en MicroK8s
  • Conecte todos estos microservicios para completar la imagen
  • ¡Colorea algunas fotos en blanco y negro!

tú también puedes Regístrese para nuestra versión conjunta bajo demanda Seminario web de demostración de OpenVINO Con Intel. El lector más avanzado (o impaciente) puede comenzar con el diagrama de arquitectura anterior e implementarlo por su cuenta usando la documentación.

adiós…

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba