天体写真のキャリブレーションとノイズの伝搬(ver.0.90)

キャリブレーション結果のSN比

加算した画像のSN比

\(n\) 枚の画像を加算した時,その輝度は
$$
x_1+x_2+\cdots+x_n
$$
であり,ノイズの大きさは
$$
\sqrt{{\sigma_1}^2+{\sigma_2}^2+\cdots+{\sigma_n}^2}
$$
であるから,加算した画像のSN比は
$$
(SNR)_n\equiv\frac{x_1+x_2+\cdots+x_n}{\sqrt{{\sigma_1}^2+{\sigma_2}^2+\cdots+{\sigma_n}^2}}~~~~~~~~(4)
$$
ここで単純な場合として,それぞれの画像の撮影条件が同じ,つまり
$$
x_1=x_2=\cdots =x_n=x,~~~\sigma_1=\sigma_2=\cdots =\sigma_n=\sigma
$$
であるとすれば,SN比は
$$
(SNR)_n=\sqrt{n}\frac{\langle x\rangle}{\sigma}~~~~~~~~~~(5)
$$
となる。一枚の画像のSN比が\(\displaystyle\frac{\langle x\rangle}{\sigma}\)だから,上の式は加算して得られた画像のSN比は,1枚の画像の \(\sqrt{n}\) 倍に向上することを意味する。加算平均を考える場合は,分母と分子が両方とも \(n\) で割られることになるので,結果は同じ。

注釈:ライト画像のノイズは輝度のショットノイズが支配的
ライト画像には由来の異なる複数のノイズが含まれていて、ダーク減算で除去できる固定ノイズを除けば、それらは
・輝度信号のショットノイズ
・電子の熱揺らぎに起因するランダムノイズ
・センサーの読み出しエラーに起因するランダムノイズ(バイアスノイズ)
がある。このなかで特に、輝度のショットノイズは飛来する光子の頻度と関係し、これはポアソン分布に従う。ポアソン分布は、分散が平均輝度に等しいという単純な性質を持つので、輝度が大きいほどノイズも大きくなり、極端な短時間露光をおこなっていない限りは、ライト画像のなかで上にあげた残りの二つのノイズに比べて大きいノイズになる。加算処理の最も大きな目的は、このショットノイズを小さくすることにある。

加算平均におけるショットノイズとバイアスノイズの違い

一枚あたり\(t\)秒の露光時間で\(n\)枚の画像を加算平均した場合(総露光時間\(T=nt\))のSN比の向上を,ショットノイズとバイアスノイズに分けて考察しよう。

まず画像がショットノイズだけを含む状況を仮定する。上の注釈に書いたように,分散は輝度の平均値に等しいので,ノイズの大きさは輝度の平方根に比例する。つまり
$$
\sigma = \sqrt{\langle x\rangle}
$$
となる。これを(5)式に代入すれば加算後のSN比は
$$
(SNR)_n^{shot}=\sqrt{n\langle x\rangle}
$$
さらに輝度の平均値\(\langle x\rangle\)は露光時間\(t\)に比例するはずだから,適当な比例係数を\(\alpha\)として\(\langle x\rangle=\alpha t\)と書けば,上の関係は
$$
(SNR)_n^{shot}=\sqrt{n\alpha t}=\sqrt{\alpha T}
$$
となる。つまりこの場合,加算後のSN比は総露光時間\(T\)のみで決まり,一枚あたりの露光時間や\(t\)や画像の枚数\(n\)に依存しない。

次に画像がバイアスノイズだけを含む状況を仮定する。バイアスノイズはショットノイズと異なり,その大きさは露光時間に依存せず,各フレームで等しい。その値を\(\beta\)と書く。この状況でのSN比は,(5)式で\(\sigma=\beta\)と置き換えて\(\langle x\rangle=\alpha t\)を代入すると
$$
(SNR)_n^{bias}=\frac{\alpha}{\beta}\sqrt{n}t
$$
であるが\(n=\displaystyle\frac{T}{t}\)に注意するとこれは
$$
(SNR)_n^{bias}=\frac{\alpha}{\beta}\sqrt{Tt}
$$
となる。つまりこの場合,加算後のSN比は総露光時間\(T\)と一枚あたりの露光時間\(t\)の積の平方根であり,総露光時間が同じでも一枚あたりの露光時間\(t\)が短いと悪化する。

ダーク減算した画像のSN比

ライト画像を \( x \),ダーク画像を \(y\) として画像 \(x-y\) のノイズの大きさを考える。減算後の画像の輝度は\( \langle x-y\rangle=\langle x\rangle-\langle y\rangle\) で、ノイズの大きさは
$$
\sqrt{{\sigma_x}^2+{\sigma_y}^2}
$$
だから、減算後のSN比は
$$
(SNR)_{dark}=\frac{\langle x\rangle-\langle y\rangle}{ \sqrt{{\sigma_x}^2+{\sigma_y}^2} }
$$
ダーク画像はライト画像よりも十分に暗いので\(\langle y\rangle\)は無視して良い。よってダーク減算後のSN比は次のようになる
$$
(SNR)_{dark}=\frac{\langle x\rangle}{ \sqrt{{\sigma_x}^2+{\sigma_y}^2} }
$$
元々の画像 \(x\) のSN比は \(\langle x\rangle/\sigma_x\)だから、ダーク減算によってSN比は必ず小さく(悪く)なる。

nFAQ:じゃあなんでダーク減算するの?
たしかにダーク減算によってノイズは必ず増加する。しかしそれは画像に含まれるランダムノイズだけに着目した場合にそう見えるだけであって、本来のダーク減算の目的は固定ノイズの除去である。固定ノイズ除去のメリットが、ランダムノイズ増加のマイナスを上回るなら、ダーク減算は常に行う価値がある。またほとんどの場合、信号の輝度揺らぎに由来するライト画像のショットノイズは、ダーク画像のもつ熱ノイズよりもずっと大きい。ダーク減算によるランダムノイズの増加は、実は問題にならないくらい小さい。

フラット除算した画像のSN比

ライトフレーム画像を \( x \),フラットフレーム画像を \(y\) として \(z=x/y\) とした \(z\) のノイズの大きさを考える。誤差の伝搬法則を用いて計算すると
$$
{\sigma_z}^2=\frac{1}{\langle y\rangle^2}{\sigma_x}^2+\frac{\langle x \rangle^2}{\langle y\rangle^4}{\sigma_y}^2
$$
となる。ただし,実際にはフラット除算の前後で平均輝度が一定になるようにノーマライズが行われる。それは大雑把には上の結果に\(\langle y\rangle\)をかけてあげればいいので,実際のフラット除算後のノイズの大きさは
$$
\langle y\rangle\sigma_z=\langle x \rangle\sqrt{\frac{{\sigma_x}^2}{\langle x\rangle^2}+\frac{{\sigma_y}^2}{\langle y\rangle^2}}
$$
となる。よってフラット除算後の画像のSN比 \((SNR)_{flat}\) は、
$$
(SNR)_{flat}=\frac{\langle x\rangle}{\langle y\rangle\sigma_z}=\frac{1}{\sqrt{\frac{{\sigma_x}^2}{\langle x\rangle^2}+\frac{{\sigma_y}^2}{\langle y\rangle^2}}}
$$
見通しを良くするためにさらにちょっと変形すると,フラット除算前のSN比 \(\frac{\langle x\rangle}{\sigma_x}\) に対して,フラット除算後のSN比は
\begin{align}
(SNR)_{flat}&=\frac{\langle x\rangle}{{\sigma_x}}\frac{1}{\sqrt{1+\frac{{\sigma_y}^2}{{\sigma_x}^2}\frac{\langle x\rangle^2}{\langle y\rangle^2}}}\\
&=(SNR)_x\frac{1}{\sqrt{1+\frac{{(SNR)_x}^2}{{(SNR)_y}^2}}}
\end{align}
と書くことができる。つまり、フラット除算によってノイズは必ず増える。\((SNR)_y\) が \((SNR)_x\) に比較して大きければ(フラット画像が良いSN比を持てば)上の平方根の中身が1に近づくので、フラット除算によるノイズ増加は抑えられる(これはアタリマエ)。反対に、\((SNR)_y\) が \((SNR)_x\) に比較して小さければ(ライト画像のSN比が悪い)、マスターフラットの質を高めてもあまり意味がない(ほんとか?)。

謝辞

文中の「誤差の伝搬法則」については、Twitterにてお付き合いのあるRamb氏にご教示いただいた。またBlog上の\(\rm\TeX \) 環境はぐらすのすち氏が用意してくれた。若いお二人に感謝いたします。

コメント

タイトルとURLをコピーしました