Que este es el año en el que la fotografía computacional despega de forma ambiciosa parece bastante claro a estas alturas y los Pixel 3 son un claro ejemplo de ello. Hemos visto cómo 'Night Sight' genera imágenes increíbles en entornos tremendamente oscuros, o cómo se consigue hacer zoom por software que aumenta el detalle recogido utilizando la vibración de nuestra mano.

Lo normal es que los desarrolladores utilicen dos cámaras para triangular las posiciones y distancias de los sujetos, difuminando más cuanto más alejado se encuentra. Hasta ahora, la única cámara de los Pixel lo hacía valiéndose del enfoque por detección de fase (PDAF) de sus sensores Dual Pixel, aplicando una máscara al sujeto principal de la escena –reconocido ta través de técnicas de aprendizaje automático– y desenfocando el resto.

Pero este método únicamente tiene en cuenta el pequeño paralaje entre lo que está enfocado y lo que no. Ahora Google detalla cómo se ha entrenado el nuevo método de predicción de profundidad en los Pixel 3, y cómo se diferencia del que se tenía en el Pixel 2 por el uso de técnicas de aprendizaje automático más potentes.

A la izquierda vemos la imagen sin procesar que generarían estos teléfonos. A la derecha se alternan las versiones 'stereo', con el desenfoque estimado con las técnicas más tradicionales, y 'learned', que trabaja a partir de un modelo de aprendizaje automático más robusto y tiene claramente menos artefactos y un desenfoque más natural y progresivo. En la imagen en su resolución original es fácil apreciar estos cambios.

Un nuevo nivel de complejidad, gracias al machine learning

Además de este pequeño paralaje producto de la diferencia de imagen producida en la mitad superior e inferior de los píxeles de tipo Dual Pixel que utilizan los teléfonos de Google, se están teniendo en cuenta al menos dos tipos de información extra que capta el teléfono y hasta ahora no estaba siendo explotada:

  • De desenfoque. Esta tiene en cuenta que aunque el efecto bokeh de nuestro teléfono sea poco pronunciado, este existe y proporciona información de su distancia. Elementos en el plano del enfoque, a una distancia determinada y con nitidez máxima, no son desenfocados, mientras que los que sí lo son serán más desenfocados en función de la cantidad de desenfoque que ya tengan.

  • Semántica. Aunque viéramos objetos igualmente enfocados, las personas somos capaces de distinguir qué está lejos y qué no en base al tamaño de objetos cotidianos.

Tener en cuenta estos efectos a nivel formal es muy complicado. Es mediante el uso de redes neuronales convolucionales con el que Google consigue unir estas pistas. Pero las redes neuronales han de ser entrenadas, claro. Para ello utilizaron un sistema con cinco teléfonos Pixel disparados simultáneamente mediante Wi-Fi. Con estas imágenes se crean mapas de profundidad mucho más precisos con los que entrenar a la red neuronal, y es el propio modelo generado a partir de ellas el que aplicará el desenfoque final a las imágenes, sin necesidad de las cinco cámaras.

Si nos fijamos, estas cinco cámaras están dispuestas a modo de cruceta, para tener ángulo de visión desde ambos ejes y una imagen centrada que sirva de referencia. La información de todas estas cámaras a máxima resolución con su correspondiente división Dual Pixel es procesada en por el módulo TensorFlow Lite en la GPU Adreno 630 de los Pixel 3.

Desde la versión 6.1 de Google Camera, los mapas de profundidad generados con el modo retrato son almacenados en el mismo archivo que las imágenes. Estos pueden ser explorados a través del editor de profundidad en Google Fotos, e incluso procesarlos a través de aplicaciones de terceros como Depthy. Google muestra también una galería con múltiples ejemplos de estos mapas de profundidad y la gran mejora que ha supuesto el nuevo modelo. Algunos de ellos: