KYOEIさんの在庫ありでせっかく手に入れることができたASI294MCですが、すでに一週間何もできずに過ごしてしまっています。昨日の朝起きたら、久しぶりに青空が広がっていて期待したのですが、夕方にはすでに曇り。今日はまたこれから雪みたいです。天気だけはどうしようもないので、相変わらず脳内ミュレーションです。今日はノイズについてもう少し考えてみます。


FullSizeRender

今日も家の外は雪景色。北陸の冬は天体観測には厳しいです。

カメラによる天体撮影をする時、誰もが綺麗な仕上がりになることを目指して撮影に臨むわけですが、最初は何をしたらいいのか、完全に手探りで全くよくわからないものです。それでも調べていくうちに、先人たちの貴重な経験から色々な手法があることがわかり、それに従ってマスターしていけばかなりのレベルで撮影ができるようになってきます。ところが、ある事柄について全く方向性が逆の手法が示されていたり、おまじないのようになぜそれをしなければならないかなど、手法の根拠がよくわからないということがよくあります。何が正しくて何が間違っているかよくわからなくなるのです。その助けになればいいと思って、ノイズのことをいろいろ調べたり考えてみましたので、メモがわりに書いておきます。


0. 天体撮影におけるノイズの一般式

まず一般的に天体撮影をする時にどういったノイズが出てくるかですが、定性的な話は調べるとたくさん出てくるのですが、きちんと式で説明してくれているようなところはなかなか見つかりませんでした。それでも天文系のCCDカメラやCMOSカメラを研究、開発しているようなところは、やはりノイズについても相当定量的に調べていて、我々アマチュア天文家の撮影にも使えそうな定式化をしてくれているので、そこらへんの話を考えてみます。

CCDカメラやCMOSセンサーを使ったカメラでの天体撮影において、信号とノイズの比S/Nは
\[\mathrm{S/N}=\frac{ntS_\mathrm{sig}}{\sqrt{A n \sigma^2 + A n t S_\mathrm{sky} +A n t S_\mathrm{dark} + n t S_\mathrm{sig}}}\propto \sqrt{n}\]
と書くことができます。ここで
  • \(A\) [pix] : 開口面積
  • \(n\) : フレーム枚数
  • \(\sigma\) [e-/pix] : 読み出しノイズ
  • \(t\) [s] : 1フレームの積分時間
  • \(S_\mathrm{sky}\)  [e-/s/pix] : スカイバックグランウンド
  • \(S_\mathrm{dark}\)  [e-/s/pix] : 暗電流
  • \(S_\mathrm{sig}\)  [e-/s] : 天体からの信号
です。この式から様々なことがわかります。

まず、この式は全てのノイズ(分母の方)は枚数\(n\)を増やせば増やすほど、原理的には枚数のルートに比例して増えていくことを示しています。勘違いされている方もいるかもしれませんが、加算するフレームの枚数を増やしていくとノイズは減るのではありません、増えていきます。その代わりに、ターゲットの信号に当たる\(S\)(分子の方)も枚数の1次で比例して増えていくので、結果としてS/Nは
\[\mathrm{S/N} \propto\frac{n}{\sqrt{n}}=\sqrt{n}\]
で向上していきます。もっと簡単に言うと、コンポジットした枚数のルートに比例して綺麗になっていく(SN比が上がっていく)ということです。このことを思いっきり略して「枚数を増やすとノイズが減る」と言ったりしますが、裏には「枚数を増やすとSとN共に増え、Sの増加の方がNの増加に比べて大きいから結果としてノイズが減ったことになる」という意味が隠れていることを意識しておく必要があります。

次に、分母のノイズの中身をもう少し詳しく見ていきましょう。


1. 読み出しノイズ

まず、読み出しノイズは1枚あたりでは露光時間によらず一定です。読み出しノイズは一枚のフレームの読み取りごとに必ず一定量入るようなノイズなので、長く露光しても増えもしなければ減りもしないということを意味します。枚数に関しては他のノイズ同様に枚数のルートでノイズは増えていきます(減るのではないですよ)。もちろん信号Sは枚数と時間の1次に比例して増えていくので、S/Nとして信号とノイズの比をとると
\[\mathrm{S/N}=\frac{ntS_\mathrm{sig}}{\sqrt{A n \sigma^2}} \propto \frac{nt}{\sqrt{n}}=\sqrt{n}t\]
となり、結果として枚数のルートかつ一枚あたりの露光時間の1次で良くなっていきます。

読み出しノイズ以外のその他のノイズのは全て、時間と枚数に関しては良く似た振る舞いなります。読み出しノイズを無視した形でS/Nを再び式を書くと
\[\mathrm{S/N}=\frac{ntS_\mathrm{sig}}{\sqrt{A n t S_\mathrm{sky} +A n t S_\mathrm{dark} + n t S_\mathrm{sig}}} \propto \frac{nt}{\sqrt{n t}} = \sqrt{n t}\]
となります。今度は枚数と時間のルートで全てのノイズが増大(減少ではありませんよ)していって、信号Sは枚数と時間の1次で比例して大きくなっていくので、結果としてS/Nが枚数と時間のルートで向上していくというわけです。

このようにS/Nに対する時間の効きが違うから、読み出しノイズに関してのみ一枚を長時間かけて撮影するならば他のノイズに比べて(十分長い露光時間をとれば)無視できるということになります。一方枚数に関しては、増やしていっても他のノイズと効きが同じで、無視できるようにはなりません。

言い換えると、読み出しノイズは一枚あたりの露光時間を伸ばすことで初めて(SN比で考えると)小さくすることができるノイズと考えることもできます。


2. ダークノイズ

さて、分母に残った3種類のノイズの中で一番馴染みがあるのはダークノイズでしょうか。これはダークフレームを撮影した時にホットピクセルやクールピクセル、アンプの熱雑音ノイズなどに起因して明るくなったりするパターンノイズなどという形で実際に見ることができると思います。ここで注意ですが、そのダークフレームの中に写っている真っ暗に見える部分にも、ある程度の写り方のバラツキが存在するということです。ばらつきに関しては、すぐ下のノイズの説明のところで詳しく説明します。ダークフレームも時間をかけて撮影すると、時間のルートに比例してノイズが大きくなってきます。


3. スカイバックグランドノイズ

スカイバックグラウンドノイズは光害などに起因する背景の明るさのノイズですが、普段の撮影では、最もよく目にしているはずのノイズで、最も問題になるはずなのに、あまり定量的に議論されているのを見たことがありません。実はこれは撮影した画像からきちんと測定できるものなのですが、私もまだ実際に評価したことはないので、機会のある時に真面目に測ってみたいと思っています。撮影したときのある内部ゲインの時の、ADU(ADCのカウント数)からe-(センサーで数えられた電子の数)へのコンバージョンファクター\(f_\mathrm{c}\)が分かっていれば、画像の中での星が写っていない背景部分のADCのカウント数を数えることによって、きちんと定量的に見積もることができ、かつ電子の数として他のノイズと直接大小を比較できるわけです。ただ、ひとつ誤解を招かないようにしておきたいのは、今議論している画像というのは、すでにフラット補正もされて、背景光のオフセット分(DC成分)を差っ引いて、ノイズとなる揺らぎのみを考えているという意味です。なので、背景部分のADCのカウントをそのまま数えるのではなく、ある範囲のピクセルを多数数えて、そのバラつきを測定しなくてはいけません。また、ノイズがバラつきであるということを意識できていない場合が結構あるようなので、少しだけ説明しておきます。


ノイズとは

そもそも天体撮影におけるノイズとは一体どういうことなのでしょうか?ノイズを考えるには統計のことを少し知らなくてはなりません。例えば一台のカメラを使って全く同じ場所、同じ明るさ、同じ温度で多数枚の撮影をすることを考えます。普通に赤道儀に望遠鏡を乗せて、カメラで撮影するという状況で構いません。ゲインや露光時間も同じとします。適当な露光撮影、例えば1秒で、1000枚の画像を撮ったとしましょう。全く同じ状況なので、1000枚とも同じような画像が撮れると思いますが、ある一つのピクセルに注目した場合、1000枚とも全く同じ明るさ、言い換えると全く同じADCのカウントで全て記録されているでしょうか?通常はそんなことはありえません。よく似た明るさにはなるので、1000枚の平均値はある値を持ち、その値がそのピクセルでの明るさと言ってもいいと思います。ノイズというのはその平均値からどれくらいずれているか、そのずれがどれくらいの範囲に散らばっているかということを表す量です。細かい統計の話は教科書のようなものに譲るとして、ここで理解しておきたいことは、一般にノイズというのはバラツキ具合を「標準偏差σ」で表しているということです。標準偏差σという言葉に拒否反応を起こす人もいるかもしれませんが、最低限理解したいことはただ一点のみ。ある測定をしたときに、このバラツキの68%が標準偏差σで表される範囲内に入っているということです。

例えば先日測定したASI294MCの読み出しノイズは1.3[e-]ですが、これは平均値はよくわかりませんが、そのバラツキの68%は1.3[e-]という値の中に入っていますよという意味です。平均値はよくわからないので例えば10[e-]としましょう。ノイズはバラツキなので測定値がたまたま平均値と同じ10[e-]の時もあれば、10.1[e-]の時もあります。11.2の時もあれば11.5のときもあります。たまには12.6という結構外れた値をとることもあるでしょうし、13.9とかいうかなり外れた値をとる可能性も0ではありません。標準偏差のすごいところはここで、この場合10 - 1.3 = 8.7 [e-]から10 + 1.3 = 11.3 [e-]までの間に測定値が来る確率が68%と分かってしまうことです。もっと言うとσ=1.2 [e-]の倍の2.4[e-]、この場合2σ (にしぐま)と言いますが、この範囲に入っている確率は95%ということです。もしそれを超えた12.6[e-]なんていう値が測定されたら、これはありえない方5%に入っているので珍しいというわけです。ちなみに3σ = 3.9 [e-]なんていうと99.87%とほとんどの値が入ってしまうので、今回の場合13.9 [e-]以上なんていうとんでもない値をとるのは1000枚のうち1.3枚ほどしかないのですが、可能性としては0枚では決してないのです。

上は1000枚のフレームのある同じ1ピクセルについてのみ考えましたが、背景光なんかを測定する場合にはある一枚の100x100ピクセル分の平均値とバラツキの標準偏差を測定してやってコンバージョンファクターを使い電子の数に換算してやることで、読み出しノイズなどのその他のノイズとの大小が議論できるようになるというわけです。


4. ショットノイズ

さて式に戻って、分母の最後の残り\( \sqrt{S_\rm{sig}}\)についてです。これは入っている信号のルートに比例して出て来るノイズです。いろいろWebを調べていると、ダークノイズとショットノイズを混同しているケースた多々見受けられます。ショットノイズはセンサーに光を入れた時に、その光の量のルートに比例して出てくるので、真っ暗な時に出て来る限界のようなダークノイズとは別で扱う必要があります。ノイズなので、当然そのバラツキ具合で議論します。具体的な例でいうと、淡い星雲のようなところでは、当然星雲からの明るさがセンサーに入っているので、ダークノイズや、背景光のノイズもありますが、それに加えて星雲そのものの明るさのバラツキ具合もノイズとして考えなくてはいけません。また、天体がない背景の部分では逆に信号としての\( S_\rm{sig}\)が小さいので信号\( S_\rm{sig}\)からのバラツキも小さいため、\( S_\rm{sig}\)起因のショットノイズは無視できるでしょう。


考察

以上のことから、ノイズを考えていくと、定量的にいろいろなことが評価できる可能性が見えてきます。実際には
  1. ある性能を評価したいカメラを使い、あるゲインを設定します。
  2. 既知の明るさが分かっている星を利用して、\( S_\rm{sig}\)を測定してカメラのキャリプレーションのようなことを行い
  3. \( S_\rm{sky}\)を測定することで
  4. そのカメラ、そのゲインでの限界等級を求める。限界等級は測定時間の関数になる。
  5. ゲインを変えて、各ゲインでの限界等級を繰り返し求めていく。
というような経緯で、カメラの性能をきちんと出すことができます。でもこれ真面目にやろうとすると結構大変で、私もそのうち余裕ができたらやろうと思っているくらいです。


定量的な評価まで行かなくても、式からわかる定性的な評価だけでも結構面白いです。例えば分母のノイズの項を考えてみましょう。理想的な暗い空では

Sdark ~ Ssky << \( S_\rm{sig}\)

というような状況かと思います。冷却カメラはこのような状況時に非常に有効です。冷却はダークノイズを下げることができるので

\( A S_\rm{dark}\) << \( A S_\rm{sky}\) << \( S_\rm{sig}\)

というような状況を作り出せてしまい、より高いS/Nを目指せます。

が、こんな状況はまれで普通は光害などがあり、淡い星雲などを写そうとすると

\( A S_\rm{dark}\) << \( A S_\rm{sky}\) ~ \( S_\rm{sig}\)

というようになってしまいます。この場合はもともとダークノイズが十分無視できるため、冷却の効果は期待できません。光害地では冷却はあまり意味がないということになります。都市部などもっとひどい時には淡い天体は

\( A S_\rm{dark}\) << \( S_\rm{sig}\) << \( A S_\rm{sky}\) 

というような状況にもなりますが、こうなってしまうと画像処理で無理やり天体をあぶり出す必要が出てきます。もちろんこのような状況でも撮影枚数や撮影時間を長くとることで、S/Nを改善することはできるということが式の上からわかります。


あとがき

今回色々式から天体撮影のノイズが原理的にどのような振る舞いをするのかを考えましたが、それでもしょせん式から導き出した推測だけに過ぎないことは心に留めて置いてください。なんでもそうなのですが、理論と実測は違います。例えば、S/Nはコンポジット枚数のルートに比例して無限に良くなっていくかと思いがちなのですが、実際にはそんなことはなく、ある程度の枚数に達すると改善しなくなります。例えば考えていなかったノイズに支配されてしまったりするからです。枚数をきちんと重ねられる方は、やはり撮影時の条件がきちんとしていて、多数枚のコンポジットにも耐えうるようなそもそもの素材を作り出していると言えるのでしょう。

もう少し言うと、一般的にどんな実験もそうなのですが、条件をきちんとしてかなり理想的な状況を作り出せば実験は理論に近づいていきます。でも通常は理想的な状態を作るのはものすごく大変なので、なかなかうまくいかないのです。理論が足りなかったり、実験条件が不十分だったりする場合がほとんどです。天体撮影は、夜のしかもとても暗い中でするので、決して環境がいいとは言えません。くれぐれも理想を追い求めるあまり無理をしすぎたりしないで、できないものはできないと割り切って、趣味の範囲で楽しみながら、少なくとも私はそのように進めたいと思っています。


おまけ

最後におまけとして、ノイズを考える例として、コンバージョンファクターを求める時に使った関係式
\[(N\mathrm{[ADU]})^2=\frac{S\mathrm{[ADU]}}{f_{\mathrm{c}}\mathrm{[e-/ADU]}}+\frac{(N_{\mathrm{read}}\mathrm{[e-]})^2}{(f_{\mathrm{c}}\mathrm{[e-/ADU}])^2}\]
の証明をしてみましょう。証明と言ってもあまり数学的にやるのもつまらないので、できるだけノイズの物理的な意味を具体的に理解できるように考えたいと思います。

ものすごく簡単に考えると、スタートはショットノイズの関係式ということになります。ショットノイズは信号のルートに比例するということです。式で書くと
\[N\mathrm{[e-]}=\sqrt{S\mathrm{[e-]}}\]
両辺2乗して
\[(N\mathrm{[e-]})^2=S\mathrm{[e-]}\]
コンバージョンファクター(gain) \(f_\mathrm{c}\) [e-/ADU]を考えると
\[ (f_{\mathrm{c}}\mathrm{[e-/ADU]} \times N \mathrm{[ADU]})^2 = f_{\mathrm{c}}\mathrm{[e-/ADU]} \times S\mathrm{[ADU]} \]
両辺をfcの2乗でわると
\[ (N \mathrm{[ADU]})^2 = \frac{S\mathrm{[ADU]}}{f_{\mathrm{c}}\mathrm{[e-/ADU]}} \]
という求めたい式の読み出しノイズを無視した形が出てきました。これは簡単に信号をショットノイズのみで考えたたためで、信号をきちんとショットノイズと読み出しノイズからなると考えると
\[N\mathrm{[e-]}=\sqrt{S\mathrm{[e-]} + (N_{\mathrm{read}}\mathrm{[e-]})^2}\]
となるので、同様にして求める式がでてきますが、実際にコンバージョンファクターを求める時も読み出しノイズを無視できるくらい長時間をかけて測定するので、前半までの証明でも十分かと思います。