fullseye

多重反射・多重散乱・反復を収束まで回す

できること

実物に近い順方向モデルは、閉じた式ではなく繰り返しの極限であることが多い —— 溝の壁から壁へ跳ね返り続ける光、濁った媒質の 中で散乱を繰り返す光子、どこかで止めるべき逆畳み込み。この族(converge、6 op)は、どれも収束まで回し、収束した証拠と 残りの誤差を返し、収束しなければ値を返しません。

開き角 24° の V 溝の奥は、直接光だけで計算すると相互反射込みの 1/10 の明るさです(溝全体の反射率 0.198 対 0.745)。直接光だけの モデルを実写に合わせると、この差を係数(アルベド・照明の強さ)が吸い込んで、残差は小さいのに係数が間違います。

What it does

Six ops (converge) run a forward model to convergence and return the evidence: a fixed-point driver with Aitken and Anderson acceleration (Walker & Ni 2011 eq. 3.1; it reproduces GMRES on linear maps, checked) that refuses divergent or oscillating runs; the observed order and grid convergence index of Celik et al. 2008 (Table 1 reproduced); sequential Monte Carlo to a tolerance; MCML-type photon transport in layered turbid slabs with confidence intervals that contain the MCML manual’s Table 6.1 / 6.2 values; and Richardson-Lucy stopped by the Poisson discrepancy principle (tau = 1) or Morozov’s, refusing data outside the model’s range.

向くところ / 向かないところ

推奨パイプライン

iterate_fixed_point → conv_gci

順方向モデルを iterate_fixed_point で収束まで解き(推定残り誤差を読む)→ 格子・帯の数を 3 段振った解を conv_gci に渡して 離散化誤差を GCI で見積もる。確率的なモデルなら mc_sequential_mean、濁った媒質なら mc_photon_slab。

代替

conv_observed_order(次数だけ)、mc_sequential_mean(任意の確率的なモデル)、mc_photon_slab(濁った多層媒質)、 iv_richardson_lucy_until(逆畳み込みの止め時)、iv_richardson_lucy(反復回数を固定する従来版)。

限界

推定残り誤差 L/(1−L)·‖g(x)−x‖ は g が縮小写像である所でだけ意味を持ち、割線の比 L が 1 以上なら出しません(振動する写像の 不安定な不動点を Anderson が解いた場合など)。GCI はモデルの誤りを含みません。モンテカルロの区間は光子ごとの寄与の正規近似で、 逐次に止めると被覆率は名目より少し下がりえます(テストが 400 回で両側に判定)。光子輸送は平行平板の層だけ。Richardson-Lucy の 止め方は雑音モデルが正しいときだけ働き、仮定の PSF が広すぎるとモデルの値域外として像を返しません。

実寸校正

単位は入力のまま。光子輸送は吸収・散乱係数の長さの単位と厚さの単位を揃えること(MCML の表は cm⁻¹ と cm)。反射率・透過率は無次元。

最初の 1 本

import fullseye as fs

r = fs.ledger.iterate_fixed_point("cos", method="anderson")   # x = cos x
print(round(r["x"], 10), r["n_iter"], r["n_evals"])           # 0.7390851332 6 7
g = fs.ledger.conv_gci()                                       # Celik ら 2008 Table 1 の第 1 列
print(round(g["p"], 2), round(g["gci_fine21_pct"], 1))         # 1.53 2.2

裏づけ