Deep Learning fácil: Crea una Aplicación que “colorea” fotos en unos minutos

Paloma Recuero de los Santos    22 enero, 2019
No nos engañemos, el Deep Learning está revolucionando el mundo de la IA porque nos permite hacer cosas increíbles. Cosas que tienen un gran impacto en nuestra vida diaria. Sin embargo, no hace falta ser un experto para poder crear sencillas aplicaciones que usan Deep Learning para hacer todo tipo de cosas. En particular, hoy vamos a “jugar” a colorear una foto creando nuestra propia aplicación en mucho menos de una hora.

¿Qué vamos a necesitar para este sencillo experimento?
  • Tener Python instalado (2 o 3), y unas sencillas nociones. Si no es vuestro caso, no hay problema, porque en este otro post de nuestro blog os explicamos cómo hacerlo paso a paso
  • Tener acceso a internet (vamos a usar una API desarrollada por Algorithmia)
  • Créditos de Algorithmia, que no nos van costar nada porque al registrarnos nos regalan 5000 créditos para que hagamos las pruebas que queramos.
Quizás no esté de más explicar un poco antes, qué es una API y a qué nos referimos cuando hablamos de Algorithmia.

¿Qué es una API?

La abreviatura viene del término en inglés Application Programming Interfaces (Interfaces de programación de aplicaciones), que se aplica a un conjunto de reglas (código) y especificaciones que las aplicaciones pueden seguir para comunicarse entre ellas. Las APIs pueden servir para comunicarse con el sistema operativo (por ejemplo, WinAPI), con bases de datos (DBMS), con protocolos de comunicaciones (Jabber/XMPP), con redes sociales (Twitter, Facebook, Youtube, Linkedin etc), y otras plataformas online (Google Maps, Blogger, etc).
Hacen mucho más fácil el trabajo del programador ya que permiten usar funciones predefinidas para interactuar con otro software u otra plataforma. Incluso, en el caso de herramientas propietarias (es decir, las que no son de código abierto), indican a los programadores de otras aplicaciones cómo incorporar una funcionalidad concreta sin tener que dar información sobre cómo se realiza internamente ese proceso.
En nuestro pequeño experimento con Deep Learning, usaremos una API para crear una sencilla aplicación.

¿Qué es Algorithmia?

Algorithmia fue creado por Diego M. Oppenheimer con el propósito de “democratizar” el acceso a la Inteligencia Artificial.  Algorithmia funciona como una especie de “supermercado” de IA en Internet. Un lugar donde los desarrolladores pueden encontrar algoritmos avanzados en forma de API. Los algoritmos son creados por científicos de datos, que pueden ofrecerlos en formato opensource, o cobrar por ellos. Algorithmia se queda con un porcentaje de las ganancias, pero también ofrece soporte gracias a un servicio en la nube. También permite escalar y poner en producción sistemas basados en IA. Estos algoritmos hacen cosas como extraer automáticamente etiquetas, resumir o detectar el “sentimiento” de un texto, comparar dos imágenes, identificar marca y modelo de un coche, o, darle color a una imagen, que es lo que vamos a probar nosotros.
Página web de Algorithmia.
Figura 1: Página web de Algorithmia.

Paso 1:  nos registramos en Algorithmia

Nos registramos desde la página web Algorithmia. Una vez creado nuestro usuario, le diremos que lo que queremos es desarrollar un modelo “Deploy a model”, y para ello buscaremos el algoritmo que nos interesa “Find an Algoritm” entre los disponibles.  Como bienvenida, nos regalan crédito por 50K.
Registro de usuario.
Figura 2: Registro de usuario.
Como bienvenida, nos regalan crédito por 50K.
Mensaje de bienvenida y créditos de regalo.
Figura 3: Mensaje de bienvenida y créditos de regalo.
En la parte inferior derecha de la pantalla la “Default API Key” que nos han asignado.
Clave API por defecto.
Figura 4: Clave API por defecto.
También podemos encontrar esta información desplegando el menú “Profile” que aparece en la esquina superior derecha:
Menú Perfil Usuario
Figura 5: Menú Perfil Usuario.
Ya podemos echar un vistazo a los algoritmos principales que nos ofrecen, seleccionar los que nos interesan, o incluso crear nuestros propios algoritmos.
Ejemplos de algoritmos disponibles.
Figura 6: Ejemplos de algoritmos disponibles.

Paso 2: Instalamos el cliente de Algorithmia para Python.

Para instalar el cliente, usaremos el comando “pip”  desde una ventana cmd.  Pip es una herramienta escrita en Python  creada para facilitar la descarga e instalación de paquetes del lenguaje que se encuentren en el Python Package Index (PyPI).
Cuando os explicamos cómo instalar Python, elegimos la opción más sencilla, Anaconda, que  no instala pip por defecto. Así que lo primero que tendremos que hacer es instalarlo mediante el comando:
 
conda install pip
 
Instalación de pip.
Figura 7: Instalación de pip.
Si nos da error, lo más probable es que no tengamos agregado el PATH en las variables de entorno. Para ello, en nuestro caso, (Windows10), vamos al Panel de Control, y en las Propiedades del Sistema/Variables de entorno, agregamos como Variable de Sistema:
C:UsersXXXXLocalContinuumanaconda3Scripts
 
Figura 8: Agregamos el PATH.
 
Ya podemos lanzar la instalación del cliente de Algorithmia con pip:
Lanzamos la instalación del cliente con pip.
Figura 7: Lanzamos la instalación del cliente con pip.
 

Paso 3: Elegimos la imagen que queremos colorear y la subimos a Algorithmia.

Para cargar la foto, vamos a la pestaña “Data” del portal de Algorithmia, y en “My hosted Data” seleccionamos la opción “Browse files” para cargar al imagen sobre la que queremos trabajar.
Desde My Hosted Data subo la imagen que quiero colorear
Figura 8: Desde My Hosted Data subo la imagen que quiero colorear.
Creamos una “colección”y la llamamos, por ejemplo, PruebaLUCA.
 Creamos y nombramos una colección de imágenes.
Figura 9: Creamos y nombramos una colección de imágenes.

Una vez creada la colección, para cargar las imágenes no tenemos más que arrastrarlas sobre  “Drop files here to uptload”, 

Cargamos la imagen arrastrandola sobre el cuadro inferior.
Figura 10: Cargamos la imagen arrastrándola sobre el cuadro inferior.

Por cierto, como acabamos de celebrar el segundo cumpleaños de LUCA, vamos a probar a darle color a la foto nos hicimos ese día el equipo de Marcomms (la primera imagen del post).

Paso 4: Abrimos un Jupyter Notebook para crear un pequeño programa en Python.

Usamos Jupiter Notebook por comodidad. También podríamos crear un fichero local con extensión “.py” y ejecutarlo desde línea de comandos. Si nunca has usado los Jupyter Notebooks, no es problema. En este post te explicamos de forma muy sencilla cómo hacerlo. Merece la pena dedicar un rato para aprender a usarlos. Son muy prácticos.Copia y pega las siguientes líneas de código en tu notebook. Sólo tienes que cambiar la ruta a la imagen que quieres colorear y tu Default API key. 

Espacio para código

Espacio para código

Ejecuta el código con “Run Cells” y “et voilá”. Para ver el resultado, abre, dentro de Algorithm Data, la colección temporar“.algo/deeplearning/ColorfulImageColorization”. 
 
Ha quedado un poco “vintage” pero tampoco está mal. ¿no?. Y sobre todo, nos ha servido para comprobar cómo podemos usar algoritmos avanzados de Deep Learning en nuestra aplicaciones sin necesidad de ser expertos en DL.

Imagen coloreada.
Figura 11: Imagen coloreada.
Para mantenerte al día con LUCA visita nuestra página web,  suscríbete a LUCA Data Speaks o síguenos en TwitterLinkedIn YouTube.

Deja un comentario

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