Búsqueda

martes, septiembre 06, 2005

Ampliando imágenes

Foto promocional con el reparto de CSI: NYAyer pusieron el primer episodio de la serie CSI: NY, largamente esperada por los seguidores de CSI y CSI: Miami. Había una escena en la que los protas ven la grabación de la cámara de seguridad de una tienda de empeños. El cliente (y sospechoso) iba con una gorra y agachaba la cabeza, por lo que no se le podía ver la cara. Entonces se les ocurre ampliar la imagen para ver la cara del cliente en el reflejo del ojo del vendedor. "No hay problema" dice uno, y ¡voilà! vemos una ampliación de ojo en cuestión con un reflejo perfectamente nítido de la gorra del cliente. Lástima, no se le ve la cara.

El ampliar una imagen para ver algún detalle revelador es un recurso explotado hasta la saciedad en las películas o series policiacas o de intriga, que en la inmensa mayoría de los casos se realiza de forma totalmente irreal. Aunque lo del reflejo en el ojo se lleva la palma. Y es que no se puede ampliar una imagen de la manera que se ve en las películas.

Cualquier dispositivo capaz de tomar imágenes, ya sean estáticas o en movimiento, tiene un límite de resolución. En una cámara convencional, viene determinado por el grano de la película fotográfica. En una cámara digital, por la resolución del CCD. Esta limitación de resolución puede entenderse como una limitación de la información que captura la cámara. Y no se puede ir más allá, o estaríamos "inventando" información que no está presente en el original.

Bueno, esto es un poco lioso, así que vamos con un ejemplo.

Pinchando en la pequeña imagen de la izquierda, tenemos una foto del Palacio de Comunicaciones, en Madrid, que obtuve de madridman.com, una página con fotos de esta ciudad que encontré navegando por la web. Es bastante grande, de 1024 píxeles de ancho por 768 de alto. No es la más alta que se puede obtener con una buena cámara digital, pero es bastante mayor que la de una cámara de seguridad normalita. Supongamos que queremos saber cuál es la matrícula del taxi blanco que mira hacia nosotros. Pues vamos a ampliar...

¡Oh, vaya! No se distingue. Lógico, pues la resolución de la imagen no es suficiente. Lo único que hemos conseguido es ampliar el tamaño de los pequeños cuadraditos (píxeles) que forman la imagen. Si ampliamos más, simplemente veremos cuadrados más grandes.

¡Eh, un momento! En las pelis siempre hay algún programita que mejora la calidad de la imagen. Cierto. Podemos intentar mejorar el aspecto de la imagen mediante distintas técnicas de interpolación. Bien, utilicemos por ejemplo la interpolación cúbica que está presente en el editor de imagenes GIMP.

Bueno, la cosa ha mejorado sensiblemente, pero seguimos sin poder distinguir la matrícula. Es más, en esta nueva imagen, ni siquiera distinguimos bien el rectángulo blanco de la misma. Esto es debido a que la interpolación no puede suplir la ausencia de información. Lo único que hace cualquier algoritmo de interpolación, por bueno que sea, es "inventar" información a partir de la existente.

"Ya, pero es que has usado un programa gratuito. Seguro que con el Photoshop o algún programa profesional se pueden mejorar más la cosa" pensarán algunos. Tal vez (aunque en mi opinión, el GIMP tiene poco que envidiar al Photoshop), pero pese a todo, no se podrá distinguir la matrícula. Pensemos por ejemplo que nos dan una novela con sólo el 10% de las páginas, estando las demás arrancadas. Podemos imaginar en mayor o menor medida algo de lo que ocurre en los capítulos que nos faltan, a partir de lo que tenemos, pero no coincidirá con lo que en realidad había escrito. Ni en nuestros mejores sueños podremos reconstruir todo el libro. Nos falta información.

Dado que en la mayoría de las películas lo que se amplía es una cara, vamos a probar con caras en vez de con matrículas. Tal vez se consigan mejores resultados. Bueno, pues vamos a probar con unos tipos que cruzan la calle (justo debajo del autobús).

Por supuesto, no basta con ampliar la imagen así sin más. Así que vamos a realizar la misma interpolación que con la matrícula.

Otra cosa ¿verdad? Pero aún así no podemos distinguir las caras. Sólo podemos apreciar que el del fondo es calvo, y tal vez tenga perilla (aunque puede ser una sombra), que la chica de blanco lleva un moño, que el chico de violeta no tiene barba... Poco más. Desde luego, nunca sabremos quienes eran esas personas.

Este pequeño experimento lo hemos realizado con una imagen relativamente buena y con bastante resolución. En CSI: NY se utilizaba una imagen congelada de la grabación en vídeo de una cámara de seguridad, por lo que los resultados serían peores. Y no es una cuestión de tener ordenadores más potenes o mejor software. Los algoritmos de interpolación no hacen milagros. Es una cuestión de pura y simple matemática. De donde no hay, no se puede sacar.

18 comentarios:

  1. Muchas gracias por las explicaciones, esta vez has confirmado plenamente algo que siempre sospeche.

    Un saludo

    ResponderEliminar
  2. no me creeréis, pero en cuanto vi esa secuencia estaba por escribir aqui para comentarla...

    el "reescaneado" de imagen siempre sirve para ver lo invisible y de paso solucionar la papeleta al guionista

    ResponderEliminar
  3. En Enemigo público (con Will Smith), con una imagen de una cámara de seguridad enfocan sobre la bolsa que lleva el prota...¡y giran la foto para ver los bultos que se notan por el otro lado!

    Odiooooo esta magia con las imágenes. En capítulos de CSI ha salido varias veces, cada cual más inverosímil.

    Por cierto, el capítulo emitido de CSI NY era el tercero, no el primero. Bravo, Tele 5, bravo.

    ResponderEliminar
  4. su bi recuerdo mal en una peli con will smith se realizaba algo parecido pero mas inverosimil aun. ademas de aumentar hasta extermos inverosimiles la resolucion de una camara de seguridad de una tienda conseguian pasar a 3D el objeto (una bolsa de la compra) y estudiar incluso su parte de atras.

    ResponderEliminar
  5. Se me adelantó criptoburg en recordar la escena de Blade Runner, donde no solo amplía una imagen sino que cambia la perspectiva para acceder a ángulos muertos en la imagen original. Siempre me pareció un gazapo para una gran película, ¿o para 2019 se puede prever alguna tecnología que posibilite eso?

    ResponderEliminar
  6. es cuestion de resolucion una foto a 12mpx estate seguro que veras reflejado en el ojo de alguien hasta los pelos de la nariz del que le mira xDDD

    ResponderEliminar
  7. Sinceramente, no me hago una idea de si eso sería realmente posible... aunque, como tú, me muero de ganas de defender "Blade Runner".

    ResponderEliminar
  8. Veamos...

    - Las imágenes en el infrarrojo o en el ultravioleta no son muy distintas de las imágenes normales. Lo que es opaco al visible suele ser opaco en el espectro de alrededor. No parece fácil conseguir mejorar mucho ese asunto. Bajar la frecuencia (infrarrojo lejano) no mejora y, además, se va perdiendo definición (al aumentar la longitud de onda). Los rayos X y demás, al tener menor longitud de onda, atraviesan más superficies. Pero no creo que sea fácil de captar nada en ese espectro con facilidad (¿dónde están las fuentes de radiación?).

    - Lo de la cámara con resolución brutal... bueno, el sensor no es suficiente. Llega un momento en que, por muy buen CCD que tenga uno, la óptica de la cámara limita la calidad de la imagen obtenida. Una ópica buena es muy cara y, normalmente, aparatosa. No es fácil de meter en una cámara de vigilancia (necesariamente barata). Se irá mejorando con los años, pero es un proceso lento.

    - Para hacer reconstrucción 3D de una escena no se puede usar una sola cámara fija. Las imágenes tienen que estar tomadas por dos cámaras (al menos) o por una cámara en movimiento (que se mueva su centro óptico: no vale con rotaciones o zoom).

    - Se puede mejorar la resolución de una cámara usando técnicas de super resolución. Naturalmente, no permiten las maravillas que nos muestran en las películas. Y no violan eso de que "de donde no hay, no se puede sacar". Usan información de varias imágenes para crear una imagen mejor o bien utilizan cierto conocimiento a priori de las características de la cámara.

    ResponderEliminar
  9. Poner fuentes de radiación de alta frecuencia en los edificios cercanos no es muy sano ;-) Las embarazadas no podrían salir de casa sin un traje de plomo. Pero bueno, a lo mejor se consigue algo en un futuro, tampoco es imposible ;-) Sólo anotaba un poco lo lejos que estamos de ello.

    Para ver si es físicamente posible habría que intuir cuál es la tecnología y tratar de hacer algunos números sobre ella.

    Y lo de la reconstrucción 3D a partir de una imagen estática... Estrictamente es imposible. Quizás se podría hacer que la máquina se engañara a sí misma a partir de un conocimiento previo del mundo que le permitiera modelar lo que está viendo (es decir, lo mismo que hacemos nosotros cuando interpretamos una escena 3D). Pero es mucho más barato poner una segunda cámara. :-D

    ResponderEliminar
  10. La solución es tener un ordenata con una potencia inimaginable que convierta lo que grabe en gráficos vectoriales, con la precisión que uno quiera.

    Es ficción, puede hacerse.

    ResponderEliminar
  11. Lamento desilusionaros pero puede hacerse. No tan rápido como en el CSI ni tan precisos. Eso si olvidaros del photoshop y del GIMP. La palabra mágica es deconvolución o deconvolution, http://en.wikipedia.org/wiki/Deconvolution.
    Existen aplicaciones, carisimas por cierto aunque hay algunas versiones gratuitas (limitidita en cuanto a resultados), y su uso, civil, es principalmente para la astronomía, analisís sismicos y fotografia científica. En técnicas militares pues.....
    Demos unos ejemplitos:
    http://www.ovniaventura.cl/foto_parque.htm (aunque aparezca ovni el articulo es serio)
    http://math.nist.gov/mcsd/highlights/blinddeconvolution.html
    http://www.cv.nrao.edu/~abridle/deconvol/deconvol.html

    ResponderEliminar
  12. Se me pasaba, en:
    http://www.cfis-usa.com/video.htm, podeis ver algunos ejemplos de como recuperar algunas imagenes borrosas. Eso si no mireis los precios. Es más barato creerse la serie del CSI.

    ResponderEliminar
  13. Realmente impresionante.

    Ya has puesto en mí la semilla de la duda. En la wikipedia o en los ejemplos, se habla de distorsión introducida por la atmósfera, imágenes borrosas por estar en movimiento, y cosas así. Pero no sé hasta qué punto se puede aplicar esto cuando el problema es de resolución.

    Me ha picado la curiosidad. Ahora necesito saber más...

    ResponderEliminar
  14. Hola!

    Muy bueno tu blog, realmente es entretenido y, sobre todo, realista :D

    Pero tienes un pequeñito detalle que sale a menudo, y es decir que las cámaras digitales tienen un CCD... Digamos que sería más correcto hablar, simplemente, de un sensor.

    Y es que existen cámaras digitales con sensores CMOS, que consumen menos, ofrecen menos ruido, y dan, por lo general, mejores resultados...

    Un saludo!
    Luis

    ResponderEliminar
  15. Bueno, lo que tengo que alegar es que aqui no tenemos una imagen congelada, sino una serie de ellas que forman un video de seguridad. Seguramente tendremos mejores resultados procesando estas imagenes.

    Por otra parte reconoceré que por más algoritmos, videos en HD y recursos, lo que presenta CSI en cualquiera de sus presentaciones es absurdo.

    ResponderEliminar
  16. Excelente demostracion para refutar las cosas vistas en TV donde se hace magia con la television.
    Adicionalmente me pregunto, A usado algoritmos de Fractal para mejorar la imagen de una foto?

    Saludos... LD

    ResponderEliminar
  17. Perdon le di al boton antes de tiempo.
    Obviamente es un parodia, pero mejor no hacer spoiler.
    PD:Si no leen este comentario antes de ver el video, claro.

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.