martes, 10 de marzo de 2026

La fotografía de 'Better Call Saul' y validaciones Montecarlo

La mejor serie de TV de todos los tiempos se llama 'Better Call Saul' y destaca por muchas cosas, entre ellas por su fotografía. Podrían extraerse decenas de fotogramas de ella que constituirían por sí mismos buenas composiciones fotográficas.

En 'Calculando la focal con la que se hizo una fotografía' vimos un método matemático con el cual, a partir de una imagen en la que aparezca alguna forma trapezoidal que corresponda a un rectángulo en el mundo real, puede estimarse la distancia focal con que fue tomada la imagen y la relación de aspecto del objeto rectangular real. Usando este método he estimado la distancia focal en 10 fotogramas de la serie para ver si podemos desenmarañar algunos de los "secretitos" del director de fotografía..

Esta serie es especialmente conocida por su profusión de tomas angulares, abarcando amplios ángulos de visión que deben saber manejarse bien para que no distraigan del visionado. Se rodó en el habitual formato 16:9 lo que se comprueba en todas las imágenes elegidas. La distancia focal se da normalizada a la de una cámara FF por ser el valor más estándar en fotografía. En amarillo se indica el trapezoide usado en cada cálculo (hacer clic sobre cada imagen para verlas en alta resolución):




















~~~

Como vimos el método es muy sensible a errores en la localización de las esquinas del trapezoide de referencia y requiere que contenga fugas muy claras (ausencia de lados paralelos o casi paralelos), o de lo contrario las ecuaciones se tornan inestables arrojando resultados dispares. A priori no sabemos cómo de fiable es el cálculo en cada una de las imágenes.

En un ejercicio de honestidad vamos utilizar simulaciones Montecarlo alrededor de los puntos definitorios de cada trapezoide para tratar de averiguar estadísticamente en qué casos el cálculo puede considerarse fiable y en cuales no.

La validación Montecarlo consistirá en añadir ruido o jitter a las coordenadas de los 4 vértices del trapezoide definido por el usuario, siguiendo una distribución normal en cada eje, y ejecutar el algoritmo para cada variación. En la siguiente imagen se ha usado una varianza grande y un bajo número de iteraciones (500) para entender la metodología:



Sobre las coordenadas definidas por el usuario ejecutaremos 100.000 simulaciones con una varianza más contenida y adaptada a la resolución de cada imagen. He compilado en C++ el bucle crítico de "dibujado" de los 100.000 trapezoides solapados para acelerar la ejecución en casi dos órdenes de magnitud.

Usaremos las siguientes tres imágenes como ejemplos tipo: una escena sintética creada con una distancia focal de 24mm medida sobre un trapezoide de relación de aspecto 2, una escena donde el trapezoide de referencia presenta claras fugas en los dos ejes además de un tamaño generoso, y una tercera escena donde el trapezoide presenta dos lados cercanos a ser paralelos.







A continuación se muestra el solape de los 100.000 trapezoides simulados en cada caso así como los histogramas de las distribuciones de distancia focal y relación de aspecto obtenidas. Empezamos por la escena sintética de 24mm (haciendo clic sobre cualquiera de las imágenes puede verse la comparación de las tres simulaciones):



Aquí los histogramas equivalentes para la escena con un trapezoide ideal:



Y finalmente los histogramas de la tercera imagen donde el trapezoide escogido nos juega una mala pasada:



Los histogramas de los dos primeros casos aparecen muy concentrados y son simétricos respecto al valor inicial calculado con las esquinas definidas por el usuario (USR), que coincide con la mediana. Las distancias focales y relaciones de aspecto estimadas son por lo tanto fiables y son los valores con mayor probabilidad de ser los correctos.

Sin embargo en el tercer caso la presencia de dos lados casi paralelos del trapezoide hace que las ecuaciones resulten inestables, arrojando valores tanto de distancia focal como relación de aspecto repartidos en un amplio rango. Los 103,78mm de distancia focal y el 0,96 de relación de aspecto que se tuvieron con las coordenadas introducidas por el usuario son tan probables o improbables como cualquier otro valor. Por lo tanto el método no es aplicable a este caso.

Hay otro indicador que nos da pistas de que todo ha ido bien con los primeros dos ejemplos, y es que se pudo realizar el cálculo en el 100% de las 100.000 iteraciones realizadas. En cambio en la tercera imagen casi 1/3 del total de los trapezoides simulados derivaron en alguna de las ecuaciones en NaN's, teniendo que ser descartados.

En conclusión el algoritmo solo es fiable cuando logramos encontrar un trapezoide con claras fugas en ambos ejes. Las simulaciones Montecarlo y posterior observación de las distribuciones permiten validar cómo de buena puede ser la estimación, y desecharla en su caso.

Repositorio con el código R: GitHub.

No hay comentarios:

Publicar un comentario

Por claridad del blog, por favor trata de utilizar una sintaxis lo más correcta posible y no abusar del uso de emoticonos, mayúsculas y similares.