Mostrando entradas con la etiqueta software. Mostrar todas las entradas
Mostrando entradas con la etiqueta software. Mostrar todas las entradas

18 marzo 2011

[Foto] Cómo superar el problema de la profundidad de campo

De vez en cuando se encuentra uno con artistas de la programación que hacen cosas sorprendentes. Alan Hadley es uno de esos y su producto es CombineZP. CZP intenta solucionar el problema, habitual en macrofotografía, de tomas cuya mínima profundidad de campo impide sacar la totalidad del sujeto enfocado. Si tenemos poca luz, ese problema no tiene solución directa por lo que usaremos una estrategia distinta. La idea es tomar una serie de fotografías enfocando zonas sucesivamente más alejadas. CZP combinará esas fotos tomando la zona enfocada de cada una para generar una imagen final correcta.
Como acabo de enterarme del asunto no he tenido tiempo de hacer una prueba seria pero recordé que hace unos mese había tomado dos fotos de una mosca con cara de pocos amigos y que no había logrado enfocarla bien. Abajo tienen esas dos imágenes (pulsen encima para ampliar).

Toma 1, están enfocados el abdomen, las patas, la parte distal del ala izquierda y la roca. Tórax, cabeza y ala derecha están desenfocadas.  
Toma 2, la cabeza. el tórax y el ala derecha están bastante bien enfocadas, el resto (patas, roca...) está fuera de foco.
Esas fotos se hicieron a mano con el objetivo Hexanon de 50 mm tuneado como les comenté aquí. Como no había automatismos el enfoque se hizo acercando la cámara hasta que todo parecía en foco y la exposición por puro ensayo y error. Menos mal que el sujeto se quedó inmóvil un par de minutos.
Ambas tomas se introducen en CombineZP ("New stack"), se selecciona "All methods" en la lista siguiente y "Go" a continuación.
CZP hace un ajuste de las fotos para una correcta superposición y las combina. Un dato sorprendente es que no parece importarle que el sujeto sea de tamaño algo diferente. Tienen el resultado abajo:

Imagen combinada.
CZP ajusta también con bastante acierto la luminosidad y los contrastes.
Según su autor, el programa está preparado para combinar bastantes más tomas, con el único problema de la disponibilidad de memoria. En las pocas pruebas que he hecho, el programa se ha mostrado algo inestable sobre Windows 7 x64, tal vez por ser una aplicación de 32 bits con algún fleco suelto. Mañana espero probar algo más complejo, ya les contaré.

02 enero 2007

Cuando el software te la juega

Sobre la fragilidad de la cadena: donde todo se va al traste por un cambio de signo

Una noche de hace tres años me desperté con un amago de taquicardia. No era por problemas de salud sino porque, mientras dormía, alguna neurona seguía a lo suyo y me había avisado de que un trabajo que llevábamos meses haciendo podía estar mal. Trabajábamos elaborando cientos de simulaciones de dispersión sobre campos de vientos donde los datos eran miles de vectores medidos por el satélite QuikSCAT durante varios años. Cada vector venía definido por su módulo (velocidad del viento) y su acimut (dirección respecto al Norte geográfico). Y en mi nada pacífico sueño la neurona en vigilia me había preguntado sobre si estaba seguro de que los datos de acimut representaban hacia dónde soplaba el viento y no de dónde. Yo había asumido la primera opción en su momento en su momento y nos habíamos lanzado a una vorágine de cálculos con nuestros flamantes nuevos ordenadores multiprocesador.
En esa noche recordaba vagamente que había leido lo del sentido de los datos en uno de los informes técnicos. Pero si había metido la pata llevábamos meses trabajando sobre datos erróneos y nuestros resultados eran, por tanto, sólo basura (elegante y digital, eso sí). Con sudores fríos busqué el informe y al cabo de un rato pude dar con el párrafo que me confirmaba, menos mal, que había interpretado bien el significado de los valores.
Mi susto de medianoche acabó bien pero otros que no tuvieron tanta suerte. Según leo en el número de Science de antes de Navidad, Geoffrey Chang tenía una trayectoria profesional envidiable. Especializado en cristalografía de proteínas (¿se acuerdan del desentrañamiento de la estructura del ADN?), a los 28 años encontró empleo en un instituto de investigación de gran prestigio (Scripps Research Institute en La Jolla, California), al año siguiente recibió una medalla en la Casa Blanca que supone el máximo reconocimiento para jóvenes investigadores. Su laboratorio en el Departamento de Biología Molecular generó una serie espectacular de publicaciones sobre la estructura de proteínas de las membranas celulares…

Y de repente la pasó lo que tanto temían los galos de Asterix. Un grupo suizo publicó en Nature un artículo donde ponían en duda las estructuras de Chang y colaboradores. Estos revisaron su trabajo y acabaron descubriendo un "pequeño" problema: en uno de sus programas informáticos había un error que invertía dos columnas de datos cambiando parámetros que influían directamente en los resultados finales. Este programa había sido utilizado en varios trabajos más con lo que la catástrofe adquiría enormes dimensiones.
El escrito donde se retractan lo explica:

An in-house data reduction program introduced a change in sign for anomalous differences. This program, which was not part of a conventional data processing package, converted the anomalous pairs (I+ and I-) to (F- and F+), thereby introducing a sign change.
La expresión de Chang también fue expresiva. “I’ve been devastated”. Sus artículos siguen en las páginas de Science pero encabezados por un rótulo en rojo: This article has been retracted.
La comunidad científica ha aceptado que se trata de un error y no de un fraude pero la credibilidad del Chang Lab queda en entredicho por falta de cuidado, suficiente para quitar el sueño durante mucho tiempo y una muestra de que hay que controlar mejor las cosas.

Claro que se trataba de un programa no comercial, hecho por ellos mismos. Pero no, no crean que estamos libres de problemas con los programas comerciales. Por ejemplo, todos usamos hojas de cálculo y algunas funciones estadísticas de Excel tuvieron problemas por el diseño de los algoritmos. Microsoft informó en su momento de había “mejorado” algunos algoritmos en el tránsito de Excel 2002 a 2003 pero tal vez no resolvieron demasiado bien las cosas. Les envío a una crítica sobre el generador de números aleatorios. Yo no he sido capaz de reproducir el problema por lo que supongo que esté resuelto pero, como la duda siempre queda, pueden echar un vistazo a algunas publicaciones del European Spreadsheet Risks Interest Group que ayudan a diseñar y tomar medidas preventivas. O si quieren preocuparse de verdad miren los enlaces al final de esta página empezando, por ejemplo, por este. ¿Alguien sabe si en Open Office hay estos problemas?
Algunos estarán pensando en otras aplicaciones como SPSS, Statistica o R. No se preocupen, seguro que funcionan bien. O no. Prueben siempre que puedan con un par de aplicaciones diferentes y confirmen que los resultados son similares, especialmente si trabajan con grandes matrices, grandes números o millones de datos, que es en los extremos donde los algoritmos se la juegan.

Una de las posibles conclusiones de esta historia es que los trabajos científicos se construyen y apoyan sobre un montón de aplicaciones que suponemos funcionan bien. Esta suposición abarca desde los aparatos de medida hasta el software de cálculo. Por ejemplo, en nuestro caso usamos datos tomados por un satélite. Eso significa asumir que te fías de los ingenieros que lo diseñaron, de los procesos de calibración, de que el software de pretratamiento está bien hecho y bien aplicado... Luego, nuestra cadena de tratamiento de los datos brutos consta de 11 pasos que se realizan con programas hechos por nosotros que, a su vez, usan rutinas programadas por otros. Cada paso arranca sobre los resultados del programa anterior con lo que si existen errores, estos van a propagarse a lo largo de la cadena de forma frecuentemente imprevisible e indetectable.

Lamentablemente, no es posible comprobar fehacientemente el buen funcionamiento de todas las piezas del rompecabezas pero sí es necesario invertir tiempo en hacer pruebas básicas y evitar los errores que en inglés llaman blunders, traducible por patochadas o, en castellano castizo, cagadas. Como Geoffrey Chang.
Para terminar de forma constructiva, voy a recomendarles una aplicación estadística que funciona en MS Excel y que es magnífica, gratuita e, incluso, probablemente bien hecha: Poptools.

Grab this Widget ~ Blogger Accessories
 
º