Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

Una red neuronal para colorizar fotos

Hace años a alguien se le ocurrió que sería una buena idea “modernizar” las viejas películas coloreando las mismas, lo cual significaba un proceso que...

monroe-color00

Hace años a alguien se le ocurrió que sería una buena idea “modernizar” las viejas películas coloreando las mismas, lo cual significaba un proceso que tenía que hacerse cuadro por cuadro. Es evidente que esto no se haría “a mano”, sino con ayuda de un programa de computadora. El problema a resolver no es simple porque cuando hay una imagen en blanco y negro (léase, tonos de gris), la información de color la hemos perdido. Así, por ejemplo, no sabemos si el pantalón de un personaje en un filme es negro, o azul oscuro. Y estrictamente quizás el problema no puede resolverse al cien por ciento.

Ahora se ha hallado una nueva solución a este problema, que produce imágenes brillantes en lugar de por ejemplo, imágenes con colores pastel (como en el caso de los colores de la webpalette). Aparentemente esta nueva solución a esta antigua problemática parece mejor para usos reales.

Todo empieza con TensorFlow, una herramienta de Google que es una red neuronal profunda. Ryan Dahl decidió usarla para colorizar imágenes y el resultado obtenido fue sorprendentemente bueno si consideramos que se usaron recursos muy limitados para este problema. Ahora, un equipo de la Universidad de California, en Berkeley, ha usado una técnica similar para producir resultados que pueden engañar a los seres humanos un 20% de las veces. Pareciera que esta no es una cifra demasiado sorprendente, pero aparentemente es un gran avance comparado con los métodos anteriores.

El enfoque básico es usar una red neuronal para aprender qué colores tienen las cosas, lo cual suena como una idea lógica. Obviamente muchos objetos pueden tener muchos colores, por ejemplo, una camiseta. Las redes neuronales anteriores simplemente sacan el promedio de color y es por eso que los resultados no son tan buenos. Si se quieren mejores resultados, se debe buscar una medida mucho más precisa para cuantificar el error de que un color particular de un objeto sea el correcto. Otra dificultad es que en muchas escenas de ambientes naturales, los colores no están saturados y no son brillantes porque hay grandes áreas con algún color de fondo, por ejemplo, el cielo. De esta forma, los colores brillantes tienden a ocurrir solamente en pequeñas regiones. De nuevo, una red neuronal entrenada de manera tradicional llegará a la conclusión de que estos colores no saturados son la norma y el resultado final no será como el que quisiéramos.

coloradams

La red neuronal de estos investigadores se inicializa a partir de una red de entrenamiento visual existente, para predecir el color de pixel usando para ello 1.3 millones de imágenes de ImageNet. Imaginemos pues que es como darle años de visión de imágenes a una máquina y que de ahí concluya qué fotos y qué pixeles deben tener un color determinado. Esto parece ser un esfuerzo interesante porque de alguna manera entrenan al sistema para que pueda entender qué colores son factibles en un objeto y cuales no. Pongamos un ejemplo: un cubo de Rubik tiene colores que todos conocemos, y bien podrá haber cubos con otras formas en sus caras, con otros colores incluso, pero si la red neuronal ve muchas fotos de cubos de Rubik, podrá acertar en la mayoría de los casos, en términos de probabilidad, con los colores correctos del cubo en una foto.

En el artículo de los investigadores, se considera que la tarea de colorización a partir de ejemplos de entrenamiento se puede mejorar si se reducen las fotos de color a las mismas en escala de grises. Esto quiere decir que la red neuronal ve la imagen en color y después ve la imagen en grises y de ahí llega a concluir que un tono de gris en particular significa un color determinado. Si se tiene una base de imágenes muy grande, como es el caso, una máquina bien podría saber con cierto grado de certidumbre, de qué color es una zona que vemos en tonos de grises.

Para ver qué tan bien la red hace la tarea, se hicieron algunas pruebas. En un 20% de los casos la reconstrucción de la red fue la elección preferida por los seres humanos que evaluaron los resultados. Tal vez, como ya indicamos, es claro que el problema bien no podría tener una solución definitiva a partir de que la información a color, en una imagen en tonos de gris, ya se perdió. Finalmente usando esta técnica, se intentó probar con una serie de fotos clásicas. Los resultados son muy interesantes y en términos generales parece ser un avance en el problema. Claramente se necesita hacer muchas inferencias para llegar a la conclusión correcta. Tal vez no se han dado todos los parámetros para que eventualmente se puedan colorear imágenes con un grado más alto de certidumbre contra el original.
Referencias:

i-programmer 
Artículo técnico sobre la colorización de imágenes (pdf)

Comentarios