Informe de estado · grupo de investigación

FPM multiespectral: estado, validación y límites

pipeline asistido por agentes

Lucas Costilla  ·  Departamento de Física, FCEN – UBA  ·  [fecha]

Tres conclusiones, antes de los detalles

  • El pipeline multiespectral completo está construido y testeado: registro RGB en grilla HR común, reconstrucción por canal, desenvolvimiento multi-λ, ajuste de Cauchy y dos agentes.
  • En sintético funciona y sabemos dónde se rompe: necesita contraste de amplitud (que la muestra atenúe algo), no recupera fase débil (retardos ≤ 0.1π ≈ 26 nm de camino óptico) y el error de posición de los LEDs es la incógnita dominante.
  • En datos reales hay reconstrucciones, pero ninguna confiable: las previas eran la imagen inicial disfrazada (solver congelado, ya arreglado), y la corregida ajusta las mediciones sin parecerse a la muestra. Piso de residuo ~0.29 sin explicar.
1 / 15

Contexto

FPM: resolución por apertura sintética, y lo que agrega el color

Esquema de FPM: una captura por LED y sintesis de apertura en el espacio de frecuencias
esquema_fpm.svg
  • Resolución de alta NA con campo de bajo aumento, y fase cuantitativa: el número de cada píxel es un retardo en radianes, convertible a camino óptico — no un contraste cualitativo.
  • El hardware del laboratorio es un arreglo RGB secuencial (630 / 530 / 470 nm): una captura por posición y por color.
  • La idea propia del proyecto: con tres φ(λ) del mismo objeto, desenvolver la fase por longitud de onda de batido y ajustar una curva de dispersión n(λ). Nada en la bibliografía que revisamos (37 papers curados) lo cubre aplicado a FPM.
2 / 15

Contexto

El pipeline existe de punta a punta, no es un plan

Diagrama de bloques del pipeline multiespectral con los dos agentes
diagrama_pipeline.svg
  • Registro geométrico: el sobremuestreo depende de λ y los tres canales no caían en la misma grilla HR. Con un factor compartido (manda el azul) salen apilables sin ningún resize.
  • Reconstrucción: Wirtinger flow por canal, más un solver por descenso de gradiente con pérdida de amplitud y k continuo (sin redondeo al bin de FFT).
  • Hallazgo teórico propio: n(λ) y espesor son degenerados, sólo se miden los productos A·t y B·t. Y dos agentes cierran el lazo: uno reintenta / acepta / abandona, otro hace QC entre canales.

242 tests automáticos; cada número publicado con procedencia verificable (check_provenance.py, reproduce.sh).

3 / 15

Validación sintética

El solver necesita contraste de amplitud, y las muestras que nos interesan no lo tienen

Correlacion de fase contra contraste de amplitud
fig01_contraste_amplitud.png
  • Con fase fija 0.3π, la correlación de fase cae con el contraste: 20% → 0.75, 10% → 0.58, 5% → 0.42, 2% → 0.15.
  • En contraste cero (fase pura) se vuelve negativo, −0.24. El óptimo está bien: el problema es desde dónde arranca — arrancando en la verdad converge a 0.91.
  • Se arregla inicializando con la fase de TIE: 0.39 → 0.99. Es un límite de estos solvers en este régimen, no de FPM; y las muestras que queremos mirar están justo ahí.

contraste = 1 − mín|A|, con el máximo normalizado a 1.

4 / 15

Validación sintética

Fase débil no se recupera, y por encima de π la métrica deja de medir

Fase debil y techo de pi
fig04_fase_debil_y_techo.png
  • Con φmax ≤ 0.1π ningún solver pasa de ~0.25 de correlación, en ningún objeto ni nivel de fotones.
  • La correlación sobrestima: a 0.05π el RMSE del resultado (0.097) es peor que el de poner fase cero en todos los píxeles (0.022).
  • El aporte novedoso vive arriba de π y el solver no llega ahí: por eso el desenvolvimiento multi-λ se valida con fase inyectada, aparte del solver, y se dice explícitamente.

φmax = retardo máximo del objeto; 0.1π ≈ 26 nm de camino óptico a 530 nm.

5 / 15

Validación sintética

La posición de los LEDs es la incógnita dominante con hardware real

Error de posicion de los LEDs
fig03_error_posicion_leds.png
  • Barrido sintético de geometría (jitter, offset global, error de z) con calibración nominal / rígida / per-LED / oráculo (= reconstruir con las posiciones verdaderas: el techo alcanzable).
  • Jitter 0.2 mm: sólo per-LED rescata algo (0.32 ± 0.05 contra 0.16–0.19; oráculo 0.51). Offset 0.5 mm: la rígida baja el error de k pero no recupera la fase (0.10 contra 0.52).
  • Redondear k al bin de FFT baja la correlación de 0.75 a 0.08: la posición manda más que el operador. En sintético la geometría manda — en los datos reales (slide 14) no se va a sentir.

Números de GD-amplitud, no de WF: la columna WF está excluida por el paso congelado (slide 10). 1 bin de error de k = un paso de la grilla de frecuencias; el acantilado cae entre 0.4 y 0.8 bins.

6 / 15

Validación sintética

Acoplar los tres canales sí gana, pero sólo si se filtran los envolvimientos espurios

Cadena acoplada: acoplado, ingenuo y enmascarado
fig02_cadena_acoplada.png
  • Cadena acoplada completa de punta a punta con el solver real, 4 semillas.
  • Sin filtrar, acoplar pierde contra el baseline ingenuo (0.11/0.30/0.35 contra 0.66/0.82/0.89 en escalas 1/2/4): un puñado de píxeles con envolvimiento espurio domina el Pearson.
  • Filtrando esos píxeles (≤20% de la imagen) acoplar gana limpio: 0.80 / 0.88 / 0.93. Y pair_disagreement ya se calcula como confianza por píxel y nadie lo usa.

Se mide la correlación del mapa de espesor con el verdadero, no fase ni resolución. Escala del espesor = cuántas veces se agranda la señal de OPL; a escala 8 enmascarar ya tira señal real. El 183x del informe es reducción de error de espesor con fase inyectada, y el Pearson es insensible a escala y offset.

7 / 15

Campaña real · los dos errores de método

Datos reales: la referencia con la que medíamos calidad no podía validar nada

  • Sin ground truth validábamos contra una imagen "de alta resolución": es un tile Zeiss 2.5x/0.075, 2.344 µm/px.
  • La captura FPM mantiene señal hasta el Nyquist LR — la máxima frecuencia que la grilla de la cámara puede representar — con −27 dB en el borde; la referencia toca un piso de −43 dB desde ~0.7 de ese límite.
  • O sea: no puede validar superresolución, ni la resolución LR completa. La "mejor reconstrucción" (0.727) era la foto LR sobremuestreada.
  • Segundo error: el objetivo estaba mal en todas las corridas reales (2.5x/0.07 en vez de 2x/NA 0.10). Corregido, y casi no cambió nada.
Espectro de potencia radial de la referencia
fig06_espectro_referencia.png
8 / 15

Campaña real · los dos errores de método

La curva "más iteraciones, peor resultado" no medía el solver

  • Curva reproducible en 4 puntos: la correlación contra la referencia bajaba monótonamente con las iteraciones (0.725 → 0.721 → 0.697 → 0.602) mientras el residuo interno seguía mejorando.
  • Primera lectura: semi-convergencia — fenómeno real en problemas inversos mal condicionados: primero mejora y después empeora.
  • Pero un barrido fino puso el máximo en la iteración 0, antes de cualquier paso del solver: es deriva de un solver congelado medida contra una referencia ciega.
  • Lo que sí se sostiene: convergence_summary no es un proxy confiable de precisión real sobre datos reales.
Correlacion contra la referencia en funcion de las iteraciones
fig13_correlacion_vs_iteraciones.png
9 / 15

Campaña real · los dos errores de método

El solver estaba congelado: paso efectivo ~1/8000 del paso ePIE

Bug del paso: calidad contra tamano de recorte
fig05_bug_del_paso.png
  • reconstruct divide el gradiente espectral por el número de píxeles LR y usa step_max = 20 fijo: el paso efectivo escala como 20/recorte² del de ePIE — 0.078 a recorte 16, 0.0012 a 128, ~1/8000 a los 400 px de los datos reales.
  • Cómo se encontró: con un control sintético del mismo solver a distintos recortes. Con el paso por defecto la calidad se degrada con el recorte (0.53 / 0.17 / 0.23 a 16/64/128); con paso relativo a ePIE (0.3) es independiente del recorte: 0.93 / 0.94 / 0.95.
  • Qué se cae: las corridas reales previas y las columnas WF a recorte ≥ 32. Qué queda en pie: todo lo sintético a recortes 16–32, donde el paso por defecto todavía era razonable, y todo lo de GD-amplitud.
10 / 15

Estado real

Con todo corregido, en sintético con la geometría real, el solver sí funciona

  • Sintético con la geometría de la captura real (2x/NA 0.10, z = 76 mm, 9×9, verde, píxel HR 0.32 µm) y ruido tipo captura, paso ePIE 0.3.
  • Llega al piso de ruido — el residuo que queda cuando el único error restante es el ruido de la cámara — en ~50 iteraciones: residuo 0.035 y correlación de fase 0.93.
  • Control: generar con el centro estimado (17.45, 14.65) y reconstruir con el nominal (17, 15) — medio LED — lleva el residuo a 0.22 y la fase a ruido (−0.003, std 1.80 rad).
  • En sintético los datos sí discriminan geometría, y la firma de un error de geometría es la que vemos en los datos reales.
Sintetico con la geometria real y control de geometria
fig08_sintetico_geometria_real.png
11 / 15

Estado real

En la muestra real, el solver descongelado da fase tipo ruido

Reconstruccion real congelada contra descongelada
fig09_reales_congelada_descongelada.png
  • Congelada: fase con std 0.0075 rad. Descongelada: ~1.6 rad — una fase uniforme aleatoria tiene 1.81 rad. Es ruido, no una reconstrucción.
  • Los LEDs de campo oscuro pasan a ajustar (0.97 → 0.28), así que el solver resuelve algo; pero la amplitud sale como speckle (granulado de interferencia) de ~2 µm, y sólo el 23% de su energía cae dentro de NA 0.10.
  • Imágenes de la muestra sí hay: el primer panel es la captura LR y el objeto se ve. Lo que no está demostrado es el valor agregado de FPM.
12 / 15

Estado real

El piso de residuo ~0.29 no es ruido, ni paso, ni pupila, ni brillo por LED

Residuo por LED contra la prediccion del ruido medido
fig10_residuo_por_led.png

Residuo = media sobre LEDs de ‖estimado − medido‖ / ‖medido‖ en amplitud. Medido: 0.295.

CandidatoQué se midióVeredicto
Ruido de la cámaraganancia 0.30 ADU/e⁻, lectura 7.2 ADU², 12 bits → predice 0.02–0.03descartado (~11×)
Paso del solverePIE 0.3 / 0.1 / 0.03 → 0.295 / 0.311 / 0.335descartado
Campo oscurosólo los 9 LEDs internos → 0.267descartado
Brillo por LEDescala medida/modelo 0.83–0.94, corregida → 0.3098 → 0.3086descartado
PupilaEPRY, 30 it → RMS interno −2%descartado
  • Queda un desajuste modelo–muestra no identificado: muestra gruesa o con dispersión múltiple, un error de geometría fuera de lo probado, o el redondeo de k al bin de FFT a recorte 400.
13 / 15

Estado real

Los datos reales no distinguen la geometría, y la reconstrucción no generaliza

Sobreajuste: residuo de entrenamiento contra LEDs excluidos
fig12_sobreajuste_leds_excluidos.png
  • Barrido ancho de geometría (169 offsets de centro, rotación ±5°, z de 40 a 120 mm) puntuado por validación cruzada: se reconstruye sin 20 de los 81 LEDs y se mide el residuo justo sobre esos 20 — separa "ajusta los datos" de "reconstruye el objeto".
  • Dentro de ±1.5 LED y ±5° el residuo de entrenamiento se mueve ~0.006, sin mínimo (en sintético medio LED lo lleva de 0.035 a 0.22); el control con LEDs al azar sí se separa (0.36–0.39 contra 0.68–1.00).
  • Sobreajuste fuerte: 0.29 en entrenamiento contra 0.50 en los LEDs excluidos. Algo que no es geometría domina el residuo real y tapa la sensibilidad a la geometría.
14 / 15

Qué sigue

Estado y qué sigue

Lo que ya está firme

  • Pipeline multiespectral completo, testeado, con procedencia de números.
  • Validación sintética con límites cuantificados: contraste, fase débil, techo de π, posición de LEDs.
  • Solver descongelado y validado contra la geometría real de la captura.
  • Metrología: procedencia de la referencia, objetivo real, ruido de cámara medido.

Lo que todavía NO tenemos

  • No hay reconstrucción confiable de la muestra real: piso de residuo ~0.29 sin explicar.
  • No llegamos al régimen del aporte novedoso: la dispersión n(λ) necesita fase > π.

Próximos pasos — los dos primeros son un pedido al grupo

  1. pedidoCaptura FPM de un target USAF (muestra fina, poco dispersiva): separa "muestra gruesa" de "geometría/modelo" y calibra NA, aumento y centro del arreglo de una sola vez.
  2. pedidoMosaico Zeiss 10x/0.25 (~0.59 µm/px) del mismo campo: la referencia genuina que hoy no tenemos, para poder medir superresolución.
  3. Confirmar con el laboratorio paso, altura y centrado del arreglo LED.
  4. Usar pair_disagreement para filtrar/ponderar el acople (ya calculado, sin usar).
  5. Decidir el default del paso ePIE (hoy opt-in, a propósito).
15 / 15

Material de respaldo

Figuras de respaldo

Dos figuras que no van en el cuerpo de la charla, para contestar preguntas puntuales: cómo sabemos que el objetivo estaba mal (slide 8) y si se probó mover la geometría (slide 14).

Respaldo

Respaldo · "¿cómo saben que el objetivo estaba mal?"

Aumento efectivo y NA·px medidos contra cada hipótesis

Aumento efectivo y NA por pixel medido
fig07_aumento_efectivo.png
  • Dónde cae la referencia dentro del tile Zeiss, y el NA·px medido contra cada hipótesis de aumento / NA.
  • Corte del espectro de intensidad en rojo: rc = 690 px → NA·px = 0.194 ± 0.003 µm; la lectura más consistente es aumento ~1.83x con NA ~0.11.
Respaldo

Respaldo · "¿probaron mover la geometría?"

El paisaje de geometría es plano en todo el rango razonable

Paisaje de residuo contra offset de centro, rotacion y z
fig11_paisaje_geometria.png
  • Residuo contra offset de centro, rotación y z, con el control aleatorio marcado en la barra de color.
  • Offset de centro ±1.5 pasos (169 puntos): entrenamiento 0.310–0.316, plano. Rotación ±5°: 0.287–0.288. Centro nominal / estimado: 0.287 / 0.292.
Respaldo
← → espacio / PageUp / PageDown · tecla n: notas del orador · Ctrl+P: imprimir a PDF