Un equipo del equipo Brain Team de Google Research ha dado a conocer su más reciente trabajos sobre algoritmos para mejorar imágenes de baja resolución convirtiéndolas en imágenes de superresolución, lo que significa que con un pequeño puñado de píxeles se puede obtener una foto «bastante realista» mejorada, sin ruido ni basteces y bastante asombrosa a simple vista. Es un poco como haber dado un paso hacia el futuro aproximándonos a las predicciones del irrepetible zoom de C.S.I.:
El software en cuestión se llama S3 (Image Super-Resolution via Iterative Refinement) y la explicación completa está en un trabajo lleno de ecuaciones y tablas en Arxiv: Image Super-Resolution via Iterative Refinement. En palabras de los propios investigadores (y traducción de DeepL, otra IA):
SR3 es una aproximación a la superresolución de imágenes a través del refinamiento repetido. SR3 adapta los modelos probabilísticos de difusión de eliminación de ruido a la generación condicional de imágenes y realiza la superresolución mediante un proceso estocástico de eliminación de ruido. La inferencia comienza con ruido gaussiano puro y refina iterativamente la salida utilizando un modelo U-Net entrenado en filtrar diversos niveles de ruido. SR3 muestra un estupendo rendimiento en tareas de superresolución con diferentes factores de aumento, en rostros e imágenes naturales.
Explicado en modo fácil de entender quiere decir que el modelo matemático parte de una imagen a baja resolución, genera una a mayor resolución que es ruido puro (píxeles aleatorios) y lo va filtrando descartando lo que no cuadra. El problema de esto es que hay muchas más imágenes de mayor resolución que imágenes que podrían generarse a tamaños más pequeños (incluyendo diferentes detalles, colores, etcétera) así que hay que probar cuáles pueden ser válidas y consistentes. Otros algoritmos hacen algo parecido utilizando «trozos» de las características faciales o de la piel y texturas de millones de fotografías reales. En el ejemplo de arriba se ven distintos algoritmos: algunos generan al mismo chico con y sin gafas, pelo canoso o barba; las de la chica son todas más parecidas, excepto la central que parece de un cantante de rock o quizá el Rubius en versión melena morena.
La técnica de muchos de estos algoritmos es emplear imágenes reales que proceden de fotografías de objetos existentes (rostros, animales, vehículos, etcétera) y que se utilizan para ir probando y así crear más imágenes «falsas» pero de modo realista a la vez. En el S3 se parte del ruido aleatorio absoluto pero se filtran y refiltran unas 100 veces hasta que el resultado queda limpio. Además el algoritmo parece potente porque puede pasar de 64×64 a 256×256 y 512×512 o 1024×1024 de forma bastante eficiente.
Una curiosidad de este método de «zoom» es que se puede entender como un truco casi de magia o de autoengaño. Si lo pruebas con imágenes de tu archivo y de personas que conozcas verás que es menos creíble que si observas fotos de personas desconocidas como las de las demos. Así que es un poco cuestión de cuánto te dejes engañar.
De hecho la forma de comprobar si funciona o no es validarlo con personas, que puntúan humanamente si las imágenes generadas son válidas y creíbles o no. Se hace una especie de prueba doble ciego con imágenes reales (es decir, de las que existe el original a alta resolución) y las generadas por el algoritmo, y se mira a ver cuántas «cuelan». Los resultados son que la tasa de engaño del SR3 ya supera el 50%, es decir, a día de hoy la mayoría son creíbles, parecen el zoom de la imagen pequeña.
¿Si el 90 o el 99% de las personas creyera que algo es creíble, sería entonces real y «cierto»? ¿Es esto una especie de test Voight-Kampff para engañar la percepción visual ser humano? ¿Qué sucedería si la IA pudiera hacer esto mismo pero con otros aspectos de nuestra percepción? Como siempre un sencillo algoritmo del campo de la IA puede abrir un melón de un montón de cuestiones interesantes.
(Vía @CristobalVila + @Edulix.)
Relacionado: