• Andrey Filippov's avatar
    CLAUDE: FPN second back-propagation iteration (imp.cuas_fpn_iters, default 1 = old behavior) · 3b1049d6
    Andrey Filippov authored
    FPN = mean(scene - backProject(center)) is a fixed point that preserves the
    center's own content residual (the rotating ghost): recomputing against the
    same contaminated center reproduces the same ghost regardless of rot_period
    or photometric vintage (POSE-12 confirmed: 43.1/92.0 unchanged).
    
    Iterate per Andrey's design (internal handoff 2026-07-06):
      1. subtract fpn_k from scenes in memory (setApplyFPN, delta-aware)
      2. rebuild the center IMAGE from the corrected scenes over integer
         rotations - new Cuas.rebuildCenterImageInMemory(): new-average only
         (no parent cumulative fold), NOTHING persisted, center_clt and
         image_center untouched (the .cuas cumulative is upstream state)
      3. back-propagate against the rebuilt center image (swapped in/restored
         around the measurement) -> residual dG = the ghost
      4. fpn_{k+1} = fpn_k + dG in NEW arrays (scenes hold fpn_k references as
         applied-FPN for delta re-apply); prints |dG| RMS/max per iteration
      5. cuas_debug saves per-iteration -FPN-DG-ITERn
    
    Gated by new dialog field "FPN back-propagation iterations" next to
    "Rotation period"; default 1 keeps the POSE-12 baseline bit-reproducible.
    Verify by RT-RENDER horizon/sky pk-pk (43.1/92.0 -> temporal-noise floor).
    
    Data path verified: applyFPN sets hasNewImageData, honored by both
    GpuQuad.setBayerImages and GpuQuadJna, so corrected pixels reach the GPU
    for the rebuild and the second back-propagation.
    Co-Authored-By: 's avatarClaude Fable 5 <noreply@anthropic.com>
    3b1049d6
Name
Last commit
Last update
..
elphel/imagej Loading commit data...