¿Cómo conseguir que una Inteligencia Artificial coloree las fotos del abuelo?

Cuando hablamos  de Inteligencia Artificial, es fácil pensar en sistemas muy complejos y caros. Sin embargo, lo más complejo es crear un modelo para resolver una clase de problemas. Ese modelo, una vez creado, es fácil de aplicar para solucionar un problema concreto usando un poco de imaginación. Hoy veremos como usar un modelo creado por otra persona, para nuestro objetivo: colorear las fotos que tengamos en blanco y negro de nuestros abuelos.

Imagen en blanco y negro coloreada por una Inteligencia Artificial
De una postal antigua, republicada en eldiariomontanes.es

Para la creación de un modelo, hay que saber mucho del ámbito de aplicación, hay que tener una buena base de matemáticas estadísticas y hay que conocer los diferentes algoritmos e invertir un buen tiempo probando cosas distintas. Mucha gente está creando distintos modelos, ya sea para practicar, para investigar o con otros objetivos.

Algunos de estos modelos son liberados por sus creadores, como el que nos ocupa hoy:

DeOldify es un proyecto basado en Deep Learning para colorear y restaurar imágenes antiguas. Su creador (Jason Antic) lo liberó bajo licencia MIT, lo cual nos permitirá hacer casi cualquier cosa con él.

Por tanto, para conseguir nuestro objetivo de hoy, que no es ni más ni menos que colorear las fotos antiguas de nuestros abuelos que tengamos por casa, podremos hacer uso de este proyecto.

Pero ¡ojo! También podríamos usarlo para montar un servicio online de coloreado automático de imágenes antiguas a razón de euro cada una, o para colorear las imágenes captadas por una cámara de visión nocturna (de las baratas que se ven en verde y negro).

¿Qué podemos esperar de esta Inteligencia Artificial?

En mis pruebas, que podéis ver en la foto de cabecera o en el mini-hilo que parte del siguiente twit, podéis ver los resultados con algunas fotos muy distintas. Probablemente, trabajando un poco sobre el modelo para afinar algunos puntos o incluso reentrenándolo (siguiendo los pasos de Jason) con imágenes similares a sobre las cuales queremos aplicar el modelo, podríamos obtener resultados mejores aún.

¿Cómo podemos usar esta Inteligencia Artificial?

Cuando estuve haciendo mis pruebas (hace un mes aprox.), y dado que quería jugar mucho, opté por instalar todo lo necesario en mi máquina. En ese momento no es algo que habría aconsejado porque no era trivial, pero ahora parece que con unas pocas instrucciones lo puedes tener funcionando en cualquier lado. ¡Ojo! No las he probado, pero Jason dice que en su ordenador funciona ;).

git clone https://github.com/jantic/DeOldify.git DeOldify
cd DeOldify
conda env create -f environment.yml

#Then run it with this:

source activate deoldify
jupyter lab

Sin embargo hay un modo mucho más sencillo y es ejecutarlo online partiendo del notebook subido a la plataforma de Google Colab.  Ten en cuenta que es una plataforma que no está pulida del todo y que no siempre funciona bien, por lo que si no te funciona a la primera: no te desesperes.

Los pasos serían:
  1. Visita la url.
  2. Abajo, donde ves las fotos de Lincoln y demás, cambia los links de los wget por links a las fotos que quieras (tienen que estar en internet en una url accesible a cualquiera, por ejemplo puedes compartirlas mediante un enlace de Google Drive). Si lo necesitases podrías copiar más bloques para procesar más fotos: un wget y un vis.plot_transformed_image por imagen.
  3. Ejecuta la opción de menú Runtime>Run all.
  4. Cuando el script llegue a la mitad (al bloque de auth.authenticate_user…) te pedirá que sigas un link y copies un código para autenticarte con una cuenta de Google. Esto es porque necesita descargarse los pesos que se han obtenido en los entrenamientos del modelo para que la red neuronal pueda usarlos con las nuevas fotos, cuando te lo instalas en tu equipo es un paso que se puede saltar, pero con este script de Colab es necesario.
  5. Espera a que procese las imágenes.
  6. Comparte conmigo tus resultados ya sea con un comentario, un twit o lo que veas.

Con estos pasos tan sencillos, obtendrás unas imágenes antiguas que antes sólo tenías en blanco y negro, coloreadas por una Inteligencia Artificial. Cuando tu familia te pregunte como lo has hecho, puedes hablarles de Inteligencia Artificial, Deep Learning, etc. o bien puedes usar el comodín de «magia de informático».