ほしぞloveログ

天体観測始めました。

タグ:ダーク補正

少し間が空いてしまいましたが、SWAgTiで撮影したパックマン星雲について補足です。


実は上の記事にする前に、画像処理ははるか以前に終わっていたんです。でもダーク補正の有り無しで比較した時のノイズの大きさが、理論と全然合わなくて、ずっと検証していました。その結果、かなり面白い考察となったので、その経緯を書いておきます。


ダーク補正ありなしの、数値的な比較

前回示した記事の繰り返しですが見た目ではダーク補正の有り無しは差がわからないようです。

comp_dark

ちなみに左がダーク補正無し、右がダーク補正ありですが、差はあったとしても本当にごくわずかでしょう。でも、ノイズを実際に測定しても同じくらいなのでしょうか?数値で見てみましょう。

ノイズの測定には、いつものようにPixInsightのImageInspectionのStatisticsを使います。各画像で「プレビュー」で
  1. 恒星が入っていない
  2. 背景に近い一番暗い部分
を、小さな領域でいいので選びます。そのプレビュー画面をStatistics上で選択肢、「stdDev」を見ます。stdDevなど、見たい情報の項目が出ていない場合は、スパナマークのアイコンを押して必要な項目を選択してください。その際、左上の単位がきちんとカメラと合っているか確認してください。今回の場合、カメラが14bitなので、「14bit [0,16383]」を選びます。単位は [ct] すなわち、ADCのカウントになります。コンバージョンファクターがわかっていれば、これを電荷の[e]に変換することができます。

上のエリアを選ぶ二つのことは、ノイズを正確に、安定に測定するために必要な条件です。

恒星が入っていると、恒星は飛び抜けて明るいので、バラツキ(=ノイズそのもの)が大きくなり、本来より大きなノイズの値が出てしまいます。

一番暗い部分を選ばないということは、何らかの天体などの明るさを測定していることになります。明るさがあると、そのバラツキからくるショットノイズが大きくなり、本来見たいダークノイズや読み出しノイズが隠れてしまう可能性があります。

これらのことは基本なのですが、その他にも注意すべきことがあります。今回の測定中にやらかした失敗も含めて、反省の意味も込めて今後の測定のために細かく書いておきます。


撮影と画像処理の条件

前の記事の繰り返しになりますが、一応撮影と画像処理の条件も書いておきます。

撮影はRedCat51+DBPでカメラはUranus-C Proで-10℃に冷やしています。架台はSWAgTi (SWAT350 V-SPEC PremiumにAZ-GTiを載せたもの)で、撮影ソフトはNINA。ガイドは無しで、NINAの特殊機能のガイド無しディザーで最初のうちだけ1枚に一回、途中から3枚に1回ディザリングしています。

ライトフレームは露光時間が1枚当たり3分で、カメラのゲインは100、オフセットは40で撮影しています。94枚画像処理に回したので、合計282分 = 4時間42分ぶんです。この間、NINAでも順調に動いて、特にSWAgTiの長時間撮影で縞ノイズを避けるために必須であるディザリングも問題なく動いていました。ライトフレームは10月9日に合計139枚撮影しそのうち94枚を使い、ダーク補正比較のためのダークフレームは後日77枚撮影して使いました。
がそう処理は、SWAgTiの簡単撮影の特徴を活かすために、バイアス補正、フラット補正などは無しです。解像度を上げたいので、drizzle x2を選択しておきます。

というような条件で、この記事ではダーク補正の有り無しを比較します。


測定失敗1

「Bayer配列画像はノイズ測定に用いるべきではない。」

  1. まず正しくスタックされているかどうか確かめるために、ライトフレームのRAW画像1枚のノイズを測定します。結果は12.5 [ct]でした。
  2. 次に、スタック後のダーク補正なしのマスターライト画像のノイズを測定します。予測だと94枚スタックした場合、ノイズが1/√94 = 0.103倍に近い値の12.5 x 0.103 = 1.29程度になるはずです。でも実際測定してみると、1.08 [ct]と予想よりかなり小さい値になってしまいます。
でもこれはすぐに気づきました。1枚画像はBayer配列のままなので、RGGBでそれぞれ平均値が違ってしまっているために、その平均値のばらつきでノイズが大きいと勘違いしてしまっているのです。解決策としては、Debayerしてからノイズを測ります。PIでDebayerして、再度Statisticで恒星のない部分のノイズを測定すると、6.44[ct]となり、これを0.103倍すると0.663[ct]となります。でもまだマスターライトファイルのノイズ1.08[ct]とはかけ離れています。


測定失敗2

「Drizzle画像はノイズ測定に用いるべきではない。」

Debayer同士で比べているのに、なぜスタック後のノイズが予想より大きすぎるのか?これも少し考えてすぐにわかりました。Drizzleした画像は微妙にずらして重ねたりして解像度を増やしているので、そもそもノイズがどうなっているのかよくわかりません。ここはDrizzle前の画像で評価すべきでしょう。Drizzleはオプションなので、Drizzle前のマスターファイルもきちんと保存されています。Drizzle前のマスターファイルのノイズを測定すると、0.620[ct]で、今度は予測値の0.663[ct]とほぼ一致しました。

これで少なくともダーク補正なしで1枚画像を94枚スタックした場合、ノイズが理論通りの1/√94 = 0.103倍に近い値になることがわかりました。


ダーク補正でノイズは数値でどうなるか

さて、いよいよ別途77枚のダークファイルで作ったマスターダークファイルを使って、各ライトフレームをダーク補正して、WBPPでスタックまでしてマスターライトファイルのノイズを測定します。今回は最初からDrizzleされていない方を選び、Preview機能で恒星がない部分のノイズを測定します。結果は、目で見て比べた時と同様に、ノイズの値はダーク補正がない時の0.620[ct]と比べて、ダーク補正ありだと0.625[ct]となり、ほとんど同じなのでものの見事に一致したと言っていいでしょう。

結論としては、ダーク補正ありでも無しでも、ノイズはほとんど変わらないというのが今回の結果から言えることです。

見た目でダーク有無でほとんど差がないのが、数値でも同様に、ほとんど差がないと示されたわけです。


本当にダーク補正の影響はないの?
.
.
.
え???
.
.
.
でも、

なんでここまで同じなの?ダーク補正の影響は全くないの?

ランダムノイズであるダークノイズを持つ画像で補正しているわけです。ランダムなので引こうが足そうが、補正すればノイズは必ず2乗和のルートで「増える」はずでは?何も増えないのは少なくともおかしいのでは?

とここから長い迷走が始まりました。


スカイノイズが大きいのでダーク補正のノイズ増加が無視できる?

パッと考えられることは、明るい環境で撮っているので、スカイノイズが大きすぎてダークノイズが無視でき、たとえダーク補正してもほとんど影響がないというシナリオです。でも今回はサイトロンのDBPを使っているので、光害はかなり軽減されているはずで、スカイショットのいずの影響は少ないはずです。もしかして、DBPを入れていてもスカイノイズが大きすぎるくらい明るい環境なのでしょうか?

こちらも定量的にきちんと比較してみましょう。そのためにはライトフレームの背景領域の全ノイズに比べて、ダークノイズがどれくらい貢献しているかを比較すればわかるはずです。簡単のために、1枚撮影したファイルで比較します。

まずはダークフレームのノイズですが、今回もきちんとDebayerすることを忘れずに、これまでと同様にPreviewで領域を選択して、Statisticで測定します。結果は5.30[ct]でした。ここにはダークノイズと、バイスノイズ(読み出しノイズ)が含まれていることに注意です。

一方、ライトフレームの1枚画像のノイズは上の測定でわかっていて、6.44[ct] 程度です。

5.30[ct] と6.44[ct] なので、少なくともダークノイズと読み出しノイズが含まれたものは、ライトフレームに含まれるスカイノイズ(+ダークノイズ+読み出しノイズ)に比べて、無視できるくらい小さなものではないことがわかります。

ライトフレームは94枚、ダークノイズは77枚でスタックするので、予測では
  1. ダーク補正無しだと6.44 x1/√94 = 6.44 x 0.103 = 0.663[ct]というノイズと、
  2. ダークフレームの5.30 x 1/√77= 5.30 x 0.114 = 0.60のノイズが2乗和のルートで加わるため、
  3. sqrt(0.663^2 + 0.60^2) = 0.90[ct]
程度になるはずです。でも実測は0.625[ct]と、予想の0.90[ct]1.5分の1くらいで、これは有意に小さすぎます。この矛盾を見つけるのに、相当な時間がかかってしまいました。


なぜダークノイズは増加しない?

1週間以上考えていたでしょうか。答えがわかったあとは、まあ当たり前のことでしたが、これまであまり考えたことはありませんでした。いや、概念としてはおそらく考えていましたが、どう適用するとか、数値で確かめるというようなことは全くしてきませんでした。他に同じようなことを考えた例はないかと思って検索しましたが、定量的な評価はおろか、それに関する記述も見つけることができませんでした。

さてここでクイズです。

今回、なぜダーク補正しても
背景のノイズが増えなかったのでしょうか?

一見不思議ですが、きちんと説明することができます。答えは下の方に書いていますので、自分で考えてみたい方は、ここでスクロールするのを一旦止めてください。答えに必要な条件は上の「撮影と画像処理の条件」のところに全て書いてあります。

答えがまとまった、もしくは答えを見てみたい場合は、下に進んでください。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
と、答えに行く前に、一つヒントを出します。ヒントはディザリングです。これで答えに辿り着きますでしょうか?

答えがまとまったら、さらにスクロールしてみてください。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

はい、もうわかりましたでしょうか?答えは「マスターダークファイルも、ディザリングでノイズが散らされる」からですよね。

まだ、ちょっと言葉足らずかもしれません。そもそも今回はPIのWBPP処理に則っているので、先にマスターダークファイルを作って、それを各1枚1枚のライトフレームにおいてそれぞれダーク補正しています。マスターダークファイルを使っての補正の効果は、個々のライトフレームで補正してから重ね合わせても、ライトフレームを(位置がズレることなく)重ね合わせてからマスターダークファイルで補正しても、数学的には同じことです。証明はここ


「ダーク補正の定量的な扱い」あたりから読んでもらえるとわかるかと思います。

ところが実際の撮影では、それぞれのライトフレームは、ディザーをしてライトフレーム時に画面を少し散らして撮影しているので、画像処理の際に「星の位置が合うように」重ね合わると、当然背景はディザーの分だけ散らして重ね合わせられます。個々に補正したマスターダークファイルが、全く位置をずらさずに重ね合わせられるなら、先ほどいった数学的な証明の通り、マスターダークファイルのノイズが2乗和のルートで増えます。ところが、マスターダークファイルがディザーの効果でずれて重ねあってしまうと、個々のライトフレームで補正されたマスターダークファイルのノイズはコヒーレントに重なることはなく、ランダムに重なってしまうことになります。そのため、個々のライトフレームに対して、マスターダークファイル1枚(元のダークノイズの)のノイズ分増加したものが、ライトフレームの枚数のルート分軽減されてしまうのと同じことにになるので、今回の場合さらに1/√94 = 0.103倍となり、ほぼ無視できてしまうというわけです。

実際に、マスターダークファイルで補正した個々のライトフレームを、星の位置合わせをせずに、重ねただけの画像を示します。
integration

小さな揺れが見えることからディザーはされているのはわかりますが、7時間にわたる長時間露光なので、一方向にドリフトしていっている様子も伺えます。この画像の恒星の無いところの背景ノイズを測定してみると、0.938 [ct]となり、見事に予測値の0.90[ct]とかなり近い値で一致します。


結論

というわけで、「ディザーをしているために、マスターダークファイルを使ったダーク補正では、マスターダークファイルの相関のある部分が散らされすために、補正後のダークノイズが増えることはない」というのが今回の結論です。

また、そもそものダーク補正の目的であるホットピクセルですが、
  • Uranus-C ProはDPS (Dead Pixel Suppression)機能のために元々ホットピクセルが緩和されていること
  • PixInsightでCosmeticCorrectionでホット/クールピクセルが緩和されること
と2つの効果で、実際の画像比較でもダーク補正の本来のホットピクセルの緩和の効果がほとんどわからないのかと思われます。


少し見直し

以前の解析で、ライトフレームに対して、ダークフレームは何枚くらい撮影したらいいかを検討していますが、


ディザリングの効果を考慮考えるとこのダークフレームの必要枚数の条件は遥かに緩和されることになります。これを数学的にどう表せばいいのか?ディザリングでどれくらい散らされるかに依るので、統計的な表現が必要になりそうです。かなり複雑になりそうなので、ここではこれ以上の計算はちょっと諦めます。

ただし、このディザリングがあればダークフレームの枚数を減らすことができるというのも、ある程度の制限があるはずで、例えばライトフレームの背景のノイズが、ダークノイズが支配的な場合は、少ない枚数のダークフレームで補正すると、今回考えたようなディザリングによる散らしの効果はあまり聞かなくなるはずです。

極端な例を示します。非常に暗い空で超長時間露光などして、ライトフレームがダークノイズに比べて読み出しノイズも背景のスカイノイズも無視できるとします。ダークフレームは1枚だけ撮影し、それでライトフレームを補正します。個々のライトフレームのダークノイズは√2~1.4倍になります。ライトフレームをスタックする際に、ディザリング効果でどう散らそうが、ダーク補正によって加えられたダークノイズはスタック枚数のルートで軽減されるだけで、ライトフレームに元々あったダークノイズのスタックによる軽減と同じ効果なので、結局のところダーク補正をした場合はダーク補正しない場合に比べて1.4倍程度ノイジーになります。

もしディザーしなかった場合は、ダーク補正によって加えられたダークノイズは、スタックによって軽減されないので、スタック枚数のルート倍大きくまります。例えば、100枚ライトフレームをスタックすると、ダーク補正しない場合に比べて10倍ダークノイズが大きくなります。

極端な場合の比較ですが、ディザーの有り無しで、1.4倍の悪化から10倍の悪化までと、非常に大きな差が出ます。必要ダークフレームの枚数に対して、ディザリングの効果が相当影響すると思っていいでしょう。

ネットを検索すると、ディザリングでホットピクセルが散らされて軽減されるというような記述はたくさん見つかりましたが、調べた限り、ディザリングがマスターダークフレームを散らすので、ダークフレームの枚数を減らすことができるというような記述を見つけることはできませんでした。定性的に考えたら至極当たり前だと直感的にもわかるのですが、定量的な話はおろか、定性的な話もこれまでほとんど言及されてこなかったようです。今後興味があるのは、これをどう定量的に示すかです。言い換えると、ディザリングの効果をどう数学的に記述するかです。また機会があれば考えてみたいと思います。


ダークノイズについて

天文関連の画像処理のページを検索すると、所々に、ダークノイズ = ホットピクセルとか、ダークノイズにはホットピクセルやクールピクセルのような固定ノイズと、ランダムなノイズがあるというような表現を見かけます。私も後者のような表現を使ってきました。でも、ダークノイズというのは本来はダークカレント(暗電流)の揺らぎが起因のノイズのはずです。ダークカレントも、ホットピクセルも、温度の増加とともに増えてくるものですが、ホットピクセル自身がダークノイズというのは、やはり少し強引な気がします。

「ダークフレームを撮影すると、(ランダムに振る舞う) ダークノイズとともに、ホットピクセルも顕著に見えるようになり、そのダークフレームを使うことで固定ノイズであるホットピクセルをライトフレームから除去することができるが、ダークノイズはランダムに揺らぐ(インコヒーレントな、コヒーレントでない、相関の無い) 「ノイズ、揺らぎ」なので、引くことはできずに、必ず2乗和のルートで増える。」

というのがある程度正確な記述かと思います。ホットピクセルはダークカレント起因ではないはずなので、やはりダークノイズとははっきり区別した方がいいのではないでしょうか?


まとめと日記

ここしばらく悩んでいたことが、やっと解決して、ブログ記事にまでまとめることができました。つうじょうに撮影していて、ディザリングもしていて、ダーク補正されている方は、ダークフレームの枚数がより少なくてもいいという話なので、これまで特に問題がないようならば、今回の話は特に気にする必要はないです。でもこういった解析はやはりしておくべきだと思います。しかも、できるだけ定量的に評価できるようにというのが重要だと思います。こういった積み重ねが、どんなノイズが支配的で、どこを改善すればより良くなるかなどに、効率的につながっていくのかと思います。ディザリングの数学的な表現をどうすればいいのか、今後の課題です。

ついでに日記です。今日11月8日(金)から小海において星フェスが開催されています。例年だと諸手を挙げて参加なのですが、今年は体調があまり良くなく、全然予定が立っていませんでした。ここしばらく調子は良かったのですが、先週の長野の泊まりで少し疲れてしまって、今週はあまり調子が良くありません。明日の朝起きて、調子が良ければあまり長居しない程度で行こうと思っています。天気はすごくいいみたいなので、できれば行きたいのですが...。



黒天リフさんがX上でバイアス補正について迷っている投稿がありました。


詳しいことはリンク先を読んでもらうとして、ここで上がっている疑問は大きく2つに収束して、
  1. 元々暗いダークファイルからマスターバイアスを引く際に、引きすぎになって0以下の値になり、真っ暗なピクセルが多数出てくるのではないか?
  2. ダークファイルにバイアスが含まれているなら、ライトファイルをダーク補正するだけで良さそうだが、本当にそれでいのか?それではいったいバイアス補正とはなんなのか?
というものかと思います。フラットおよび、フラットダークについては今回の範疇でないので、ここでは考えないことにします。

今回の記事は、これら2つの疑問が動機です。ちょうど今やっているノイズ解析でバイアスを考えるいい機会となりました。前回の記事のダーク補正をもう少し発展させ、バイアス補正を通して、ライトファイルを補正する場合まで考えます。



バイアス補正とは

ここではバイアスファイルとは、センサーに光が入らないようにして、露光時間を設定できる最小の値にして撮影した画像のこととします。ある意味実現しうる最小の輝度値を記録したファイルとなります。

ただし、実際のバイアスファイルの「輝度値」は注意が必要です。なぜなら、撮影時にSharpCapなどのアプリ側で設定できるオフセットを含んだ輝度値になるので、下駄をはかされた状態で記録されます。例えばASI294MM Proなら、設定したオフセットの値の16倍の値がADCの値となって輝度としてカウントされます。私はSharpCapでもNINAでも、大抵オフセット値を40として撮影いるので、撮影画像には60x16=640の値がオフセットとして記録されています。

「バイアス」の元の意味では、この定数のオフセットの意味が強いですね。

バイアスファイルの輝度値にも当然ばらつきがあります。このばらつきは「読み出しノイズ」と一致すると考えて差し支えないでしょう。極端に短い露光時間で撮影するためにセンサーからの信号は何も出てこないので、読み出し回路などから来る「読み出しノイズ」が支配的になります。また、極端に短い露光時間で撮影するということで、(時間に比例するダークカレント起因の)ダークノイズは無視できます。

バイアス補正によくある誤解で「バイアス補正はオフセットのみを引く」と捉えられがちですが、これはノイズのことを何も考えていないので、十分ではありません。オフセットに加えて、ノイズというばらつきを引く(実際には2乗和で足されるのですが)ことになるので、ばらつきの幅によっては補正した後の値が0以下になる可能性があります。特に極端に暗いファイルを補正する場合、例えばダークフレームからバイアスを引いた場合などです。最初の疑問そのものですね。

バイアスファイルを重ねてマスターバイアスを作ると、そこに含まれる「読み出しノイズ」も小さくなります。ばらつきの幅が小さくなるというイメージです。それでもマスターバイアスファイルにはばらつきが残っています。マスターバイアスに含まれる読み出しノイズはランダムで無相関なので、当然のことながら、バイアス補正をする際にはその読み出しノイズを「増やして」しまいます。一方オフセットは実際に引かれるので、平均輝度は下がります。元々暗いファイルなら、平均輝度は0付近になってしまうでしょう。そこにノイズが増えることになるので、補正後に輝度を0以下にする可能性が残ります。

注意: 今ここで、ノイズが増えるなら0以下にならないのではと思った方いませんか?もしそう思われたかがいるなら、まだノイズのイメージが正しくないです。ノイズが増えるということは、ばらつきが増えるということなので、平均輝度からのズレがより大きくなり、0以下になるピクセルが出てくる可能性がより多くなります。ヒストグラムで表すと、山の幅が大きくなるイメージです。

ちなみに、バイアスファイルの撮影は短時間で済むので、ライトファイルに比べて十分多数枚を容易に撮影することができ、読み出しノイズの増加をほとんど影響がない範囲に抑えることができるでしょう。例えば私の場合、バイアスファイルは512枚とか、1024枚撮影します。ライトファイルに比べてバイアスフレームの枚数が例えば10倍ならば、補正による読み出しノイズの増加は2乗和のルートで効くので、\(\sqrt{1^2+0.1^2} = \sqrt{1.01} \sim 1.005\)倍とほとんど無視できます。3倍の枚数のバイアスファイルでも\(\sqrt{1^2+(1/3)^2} = \sqrt{1.11} \sim 1.05\)倍と、これでも十分無視できます。ライトファイルと同枚数のバイアスファイルだと読み出しノイズは1.41倍となるので、無視できなくなってきます。

でもバイアス補正で読み出しノイズを増やしてしまうのならば、そもそもバイアスファイルを引くことのメリットってなんなのでしょうか?単純には、もし複数枚のバイアスファイルに(ホットピクセルやアンプグローのような固定ノイズ的な)コヒーレントな成分があるならば、それをさっ引くことができるのですが、そもそも本当にコヒーレントな成分なんてあるのでしょうか?

バイアスファイルはよく横縞や縦縞になって見えますが、これらがコヒーレントで決まったパターンになるならば、バイアス補正は有効です。逆にこれらの縞がランダムでどこに現れるかわからないならば、そもそもバイアス補正の意味なんて無くなってしまいます。

さらに、撮影時にディザーを適用すれば、恒星による位置合わせでバイアスのコヒーレントの部分は散らされる可能性もあります。それでも事前に取り除いて、パターンを小さくしておいた方が有利という考えでバイアス補正をしているのかと思われます。今回は試しませんが、いずれバイアスファイルにコヒーレント成分があるかどうかはきちんと検証してみたいと思います。


マスターバイアスファイル

まずは1枚のバイアスファイルを考えてみます。

1枚のバイアスファイルを

Bias:
\[B+\sigma_\text{B}\]
のように表すことができるとします。\(B\)は輝度の平均値、\(\sigma_\text{B}\)は輝度のStandard deviationで読み出しノイズそのものです。

\(N_\text{b}\)枚のバイアスファイルでスタックして、同枚数で割ったマスターバイアスのランダムノイズは、枚数のルート分の1になります。輝度の平均値は足し合わせたバイアスファイルを同じ枚数で割るので、同じ\(B\)のままです。マスターバイアスは以下のように書けます。平均輝度は同じですが、ばらつきは\(\sqrt{N_\text{b}}\)分の1に小さくなっています。

Master bias:
\[B + \frac{\sigma_\text{B}}{\sqrt{N_\text{b}}}\]


バイアスファイルをマスターバイアスファイルで補正してみる

ここで、各バイアスファイルからマスターバイアスを引くこと考えてみるのは面白いでしょう。今後の見通しがよくなるはずです。

Bias - Master bias:
\[\sqrt{\sigma_\text{B}^2+\frac{\sigma_\text{B}^2}{N_\text{b}}} = \sqrt{1+\frac{1}{N_\text{b}}} \sigma_\text{B} \]
で\(N_\text{b}\)が多数の枚数だとすると、元々1だったノイズが\( \sqrt{1+1/N_\text{b}} \)とごく僅か増えて、平均輝度値の\(B\)は消えてしまいます。

これを2枚スタックする場合、バイアスフレームの中の読み出しノイズは無相関ですが、マスターバイアスに含まれる読み出しノイズは正の相関を持つので、
\[ \sqrt{ \left( \sqrt{\sigma_\text{B}^2 + \sigma_\text{B}^2} \right)^2 +\left(\frac{\sigma_\text{B}}{\sqrt{N_\text{b}}} + \frac{\sigma_\text{B}}{\sqrt{N_\text{b}}}\right)^2} = \sqrt{2 + \frac{2^2}{N_\text{b}}} \sigma_\text{B}  \]
となります。前回の記事の、ダーク補正したライトフレームをスタックするときと同じ考え方ですね。大外のルートの中の、1項目が無相関で2乗和のルートで足し合わさるノイズ。2項目が正の相関を持ってそのまま足し合わさるノイズ。それぞれがさらに2乗和となり大外でルートになるというわけです。

3枚スタックしたら、
\[ \sqrt{ \left( \sqrt{\sigma_\text{B}^2 + \sigma_\text{B}^2 + \sigma_\text{B}^2} \right)^2 +\left(\frac{\sigma_\text{B}}{\sqrt{N_\text{b}}} + \frac{\sigma_\text{B}}{\sqrt{N_\text{b}}} + \frac{\sigma_\text{B}}{\sqrt{N_\text{b}}} \right)^2} = \sqrt{3 + \frac{3^2}{N_\text{b}}} \sigma_\text{B}  \]
となります。同じようにして、\( N_\text{a} \)枚スタックしたら
\[ \sqrt{N_\text{a} + \frac{N_\text{a}^2}{N_\text{b}}} \sigma_\text{B}  \]
となります。ここまでは足し合わせを考えていただけなので、輝度をスタックする前の画像に合わせるように\( N_\text{a} \)枚で規格化すると、
\[ \frac{\sqrt{N_\text{a} + \frac{N_\text{a}^2}{N_\text{b}}}\sigma_\text{B}  }{N_\text{a}} =  \sqrt{\frac{1}{N_\text{a}} + \frac{1}{N_\text{b}}} \sigma_\text{B} \]
となります。
 
ここまでわかったので、例えば具体例として\(N_\text{a} = N_\text{b}\)として、マスターバイアスを作った時と同じ枚数の\( N_\text{b} \)枚スタックしたら
\[ \sqrt{N_\text{b} + \frac{N_\text{b}^2}{N_\text{b}}} \sigma_\text{B} =  \sqrt{N_\text{b} + N_\text{b}} \sigma_\text{B} = \sqrt{2 N_\text{b}} \sigma_\text{B} \]
となることがわかり、読み出しノイズは\( \sqrt{2 N_\text{b}} \)倍になります。これも輝度をスタックする前の画像に合わせるように\( N_\text{b} \)枚で規格化すると、 
\[ \frac{\sqrt{2 N_\text{b}}}{N_\text{b}} \sigma_\text{B} = \sqrt{\frac{2}{N_\text{b}}} \sigma_\text{B} \]
となり、読み出しノイズの貢献度は\( \sqrt{2/N_\text{b}} \)倍、すなわち\( \sqrt{N_\text{b}} \)分の1の2回分となることがわかり、直感的かと思います。


0以下の値の存在

さてここで、最初の疑問の1について少し考えてみましょう。1枚の バイアスファイルをマスターバイアスで補正した段階で、すでに輝度の平均値は0になっています。そこに正負に広がりのあるノイズが存在するので、当然0以下の値が存在してしまうことになります。ファイルのフォーマットとしては0以下の値はとることができないので、丸め込んで0となってしまいます。これはまずいです。そのため、通常は計算過程で適当なオフセットを加えて、値を0以上に保ったまま補正などすることが必要となってきます。ここではバイアス補正を見ていますが、ダーク補正の際にもマスターダークファイルの輝度の平均値でさっ引くので、暗いライトファイルを補正する時には同じように輝度が0以下になる可能性が十分にあります。

例えばPixInsightのWBPPでは明示的にPedestal(下駄)という値を設定することができて、ここを適した値に設定することで負の値にならないように0以上にしているため、おかしな結果にはならないです。ただし、全ての計算過程で0以上が保たれて以下どうかは不明です。ここも検証ポイントなので、いつか検証したいと思います。

いずれにせよ、補正の際に何も手当をしなければ0以下の値になることは明白で、そもそもバイアスファイルを撮影する際に適したオフセットを設定すること、ダークファイルや極端に暗いライトフファイルを、バイアス補正やダーク補正する際には適当なペデスタルを加算して処理することが必須でしょう。これが最初の疑問1の答えになるかと思います。


バイアス補正は意味があるのか?

ここまではバイアスファイルを補正した話でしたが、次は実際の画像処理に相当するライトファイルの補正を考えてみましょう。

1枚のライトファイルを撮影すると、自動的にバイアス相当とダーク(バイアスを除いたもの)相当が含まれていると考えることができます。そのためライトファイルは
\[L + D + B + \sqrt{\sigma_\text{L}^2+ \sigma_\text{D}^2 +\sigma_\text{B}^2} \]
のように書くことができるとします。ここで、\( L \)、\( D \)、\( B \)はそれぞれ1枚のライト単体、ダーク単体、バイアス単体の平均輝度、\( \sigma_\text{L} \) はスカイノイズを含む、輝度のばらつきからくるショットノイズ、\( \sigma_\text{D} \)はダークノイズ、\( \sigma_\text{B} \)は読み出しノイズとします。各ノイズは無相関と考えられるので、これらは2乗和のルートの貢献となります。

ここで2つのバイアス処理を考えます。黒天リフさんの疑問の2に相当しますが、比較すべきものは
  1. ライトとダークからそれぞれマスターバイアスを引いて、できたライトからマスターダークを引く。
  2. ライトから(バイアスを引いていない)マスターダークを引く -> バイアスはダークに含まれているので、ダーク補正のみでバイアス補正も自動的にされる。
になります。例えば旧来のPixInsightでは1の方法が主にとられていて、バイアスファイルは必須とされてきました。他の画像処理も1を推奨しているのかと思われます。いつの頃からでしょうか、最近のPixInsightではあからさまに1はダメだと言い、2を推奨しています。なぜ2が明らかにいいというのか、ここではそれを検証してみたいと思います。

1と2の共通項目として、個々のバイアスファイルとマスターバイアスは以下のように表されるとします。

Bias:
\[B+\sigma_\text{B}\]

Master bias:
\[B + \frac{\sigma_\text{B}}{\sqrt{N_\text{b}}}\]
\(N_\text{b}\)はバイアスフレームの枚数です。


1のダークファイルのバイアス補正

1. 旧来の方法です。まず、1枚のダークライフからマスターバイアスを引く事を考えます。前回の記事と違い、ダークライフの平均輝度と、ダークノイズをあらわに考えていることに注意です。マスターバイアスの平均輝度分だけライトファイルの平均輝度が下がり、マスターバイアスに含まれる(スタックされ多分の小さな)読み出しノイズが増えます。1枚のダークファイルは以下のように表すことができます。

Dark:
\[(D + B) + \sqrt{\sigma_\text{D}^2 +\sigma_\text{B}^2} \]
これを、マスターバイアス

Master bias:
\[B + \frac{\sigma_\text{B}}{\sqrt{N_\text{b}}}\]
で補正します。

ダークノイズも、ダークファイル中に含まれるバイアスノイズも、マスターバイアスに含まれるノイズも、全て無相関として2乗和のルートになり、

Dark - Master bias:
\[D+\sqrt{ \sigma_\text{D}^2+\sigma_\text{B}^2 + \left( \frac{\sigma_\text{B}}{ \sqrt{N_\text{b}} } \right) ^2 } = D+ \sqrt{\sigma_\text{D}^2+\sigma_\text{B}^2 + \frac{\sigma_\text{B}^2}{N_\text{b}} }\]
となります。

ここからスタックしていきます。まずバイアス補正したダークファイルを2枚足し合わせて、明るさを合わせるために2で割ると、マスターバイアス起因のノイズは正の相関を持つことに注意して、
\[ D+ \left( \sqrt{ \left( \sqrt{2 \sigma_\text{D}^2 + 2 \sigma_\text{B}^2} \right)^2 + \left( 2 \frac{\sigma_\text{B}}{\sqrt{N_\text{b}}} \right)^2 } \right)/2 \] \[ \begin{eqnarray} &=& D+ \left(\sqrt{ \left(2 \sigma_\text{D}^2 + 2 \sigma_\text{B}^2 \right) + 2^2 \frac{\sigma_\text{B}^2}{N_\text{b}} } \right) /2\\  &=& D+ \left(\sqrt{ \left(\sigma_\text{D}^2 + \sigma_\text{B}^2 \right) + 2 \frac{\sigma_\text{B}^2}{N_\text{b}} } \right) /\sqrt{2} \end{eqnarray}\]

3枚足し合わせて、明るさを合わせるために3で割ると、
\[ D+ \left( \sqrt{ \left( \sqrt{3 \sigma_\text{D}^2 + 3 \sigma_\text{B}^2} \right)^2 + \left( 3 \frac{\sigma_\text{B}}{\sqrt{N_\text{b}}} \right)^2 } \right)/3 \] \[ \begin{eqnarray} &=& D+ \left(\sqrt{ \left(3\sigma_\text{D}^2 + 3 \sigma_\text{B}^2 \right) + 3^2 \frac{\sigma_\text{B}^2}{N_\text{b}} } \right) /3\\  &=& D+ \left(\sqrt{ \left(\sigma_\text{D}^2 + \sigma_\text{B}^2 \right) + 3 \frac{\sigma_\text{B}^2}{N_\text{b}} } \right) /\sqrt{3} \end{eqnarray}\]


\( N_\text{d} \)枚足し合わせて、明るさを合わせるために\( N_\text{d} \)で割ると、
\[ D+ \left(\sqrt{ (\left(\sigma_\text{D}^2 + \sigma_\text{B}^2 \right) + N_\text{d} \frac{\sigma_\text{B}^2}{N_\text{b}} } \right) /\sqrt{N_\text{d}} = D+ \sqrt{ \frac{\sigma_\text{D}^2}{N_\text{d}} + \frac{\sigma_\text{B}^2}{N_\text{d}} + \frac{\sigma_\text{B}^2}{N_\text{b}} } \]
となります。3項目が\(N_\text{d}\)ではなく\(N_\text{b}\)で割られていることに注意です。

ここで、例えば\(N_\text{d} = N_\text{b}\)としてバイアスとダークのスタック枚数を合わせてやると簡単になって、
\[ D+ \sqrt{ \frac{\sigma_\text{D}^2}{N_\text{b}} + \frac{\sigma_\text{B}^2}{N_\text{b}} + \frac{\sigma_\text{B}^2}{N_\text{b}} } = D+ \sqrt{ \frac{\sigma_\text{D}^2}{N_\text{b}} + 2 \frac{\sigma_\text{B}^2}{N_\text{b}} } \]

となり、ダークノイズの2乗と「2倍」のバイアスノイズの2乗の和のルートが、スタック枚数分のルートで小さくなったことわかり、直感的にもわかりやすくなるかと思います。ここで、2倍のバイアスノイズが貢献することは重要です。ダークファイルをバイアス補正した段階で、バイアスノイズが増えてしまっています。

結局、マスターダークはダークのスタック枚数\(N_\text{d}\)とバイアスのスタック枚数\(N_\text{b}\)を用いて

Master dark:
\[D+ \sqrt{ \frac{\sigma_\text{D}^2}{N_\text{d}} + \frac{\sigma_\text{B}^2}{N_\text{d}} + \frac{\sigma_\text{B}^2}{N_\text{b}} } \]
のように書けることがわかりました。


1のライトファイルのバイアス補正

次に1枚のライトファイルからマスターバイアスを引く事を考えます。マスターバイアスの平均輝度分だけライトファイルの平均輝度が下がり、マスターバイアスに含まれる(スタックされた分の小さな)読み出しノイズが増えます。上と同様の計算をして

Light - Master dark:
\[L+ D+ \sqrt{\sigma_\text{L}^2+\sigma_\text{D}^2+\sigma_\text{B}^2 + \frac{\sigma_\text{B}^2}{N_\text{b}} }\]
となります。


1のバイアス補正したライトファイルを、バイアス補正したダークファイルで補正する

次に、ここからバイアス補正済みのダークを引きます。ここでダークの平均輝度Dは無くなります。

(Light - Master bias) - bias compensated Master Dark:
\[ L+\sqrt{ \left( \sqrt{ \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 + \frac{\sigma_\text{D}^2}{ N_\text{d}} + \frac{\sigma_\text{B}^2}{ N_\text{b}} }\right)^2 + \left( 2 \frac{\sigma_\text{B}}{ \sqrt{N_\text{b}} } \right) ^2 }\]
\[= L+\sqrt{ \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 + \frac{\sigma_\text{D}^2}{ N_\text{d}} + \frac{\sigma_\text{B}^2}{ N_\text{b}} + 2^2 \frac{\sigma_\text{B}^2}{N_\text{b}} }\]

これを2枚スタックして2で割ると
\[ L+\left( \sqrt{ \left( \sqrt{ 2 \left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right) } \right) ^2  + \left( 2 \frac{\sigma_\text{D}}{ \sqrt{N_\text{d}}} \right)^2 + \left( 2 \frac{\sigma_\text{B}}{ \sqrt{N_\text{b}}} \right)^2 + \left( 2 \left( 2 \frac{\sigma_\text{B}}{\sqrt{N_\text{b}}} \right) \right)^2} \right) /2 \]
\[ = L+\left( \sqrt{ 2 \left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right)  + 2^2 \frac{\sigma_\text{D}^2}{ N_\text{d}} + 2^2 \frac{\sigma_\text{B}^2}{ N_\text{b}} + 2^2 \left( 2^2 \frac{\sigma_\text{B}^2}{N_\text{b}} \right)} \right) /2 \]
\[ = L+\left( \sqrt{\left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right)  + 2\frac{\sigma_\text{D}^2}{ N_\text{d}} + 2 \frac{\sigma_\text{B}^2}{ N_\text{b}} + 2 \left( 2^2 \frac{\sigma_\text{B}^2}{N_\text{b}} \right)} \right) /\sqrt{2} \]

3枚スタックして3で割ると
\[ L+\left( \sqrt{ \left( \sqrt{ 3 \left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right) } \right) ^2  + \left( 3 \frac{\sigma_\text{D}}{ \sqrt{N_\text{d}}} \right)^2 + \left( 3 \frac{\sigma_\text{B}}{ \sqrt{N_\text{b}}} \right)^2 + \left( 3 \left( 2 \frac{\sigma_\text{B}}{\sqrt{N_\text{b}}} \right) \right)^2} \right) /3 \]
\[ = L+\left( \sqrt{ 3 \left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right)  + 3^2 \frac{\sigma_\text{D}^2}{ N_\text{d}} + 3^2 \frac{\sigma_\text{B}^2}{ N_\text{b}} + 3^2 \left( 2^2 \frac{\sigma_\text{B}^2}{N_\text{b}} \right)} \right) /3 \]
\[ = L+\left( \sqrt{\left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right)  + 3\frac{\sigma_\text{D}^2}{ N_\text{d}} + 3 \frac{\sigma_\text{B}^2}{ N_\text{b}} + 3 \left( 2^2 \frac{\sigma_\text{B}^2}{N_\text{b}} \right)} \right) /\sqrt{3} \]

\(N_\text{l}\)枚スタックして同数枚で割るとマスターライトとなり、

Master light:
\[ L+\left( \sqrt{\left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right)  + N_\text{l} \frac{\sigma_\text{D}^2}{ N_\text{d}} + N_\text{l} \frac{\sigma_\text{B}^2}{ N_\text{b}} + N_\text{l} \left( 2^2 \frac{\sigma_\text{B}^2}{N_\text{b}} \right)} \right) /\sqrt{N_\text{l}} \]
となります。

2項目分母の\(\sqrt{N_\text{l}}\)を分子のルートの中に入れたほうがわかりやすいでしょうか、

\[ L+\sqrt{\left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right) /N_\text{l}  + \frac{\sigma_\text{D}^2}{ N_\text{d}} + \frac{\sigma_\text{B}^2}{ N_\text{b}} + 2^2 \frac{\sigma_\text{B}^2}{N_\text{b}} } \]

簡単のため、\(N_\text{l}=N_\text{d}=N_\text{b}\)としてライトとバイアスとダークのスタック枚数を合わせてやると少し見やすくなって

\[ L+\sqrt{\left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right) /N_\text{l}  + \frac{\sigma_\text{D}^2}{ N_\text{l}} + \frac{\sigma_\text{B}^2}{ N_\text{l}} + 2^2 \frac{\sigma_\text{B}^2}{N_\text{l}} } \] \[ \begin{eqnarray} &=& L+\sqrt{ \left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 + \sigma_\text{D}^2 + \sigma_\text{B}^2 + 2^2 \sigma_\text{B}^2  \right) /N_\text{l} }\\ &=& L+\sqrt{ \left( \sigma_\text{L}^2 + 2 \sigma_\text{D}^2 + 6 \sigma_\text{B}^2 \right) /N_\text{l} }\end{eqnarray} \]

となります。6倍の\(\sigma_\text{B}\)と2倍の\(\sigma_\text{D}\)の貢献あることがわかります。6倍の\(\sigma_\text{B}\)はマスターダークを作る際のバイアス補正で2倍、マスターライトを作る際のバイアス補正で2倍、ダークにもとからあるバイアスノイズが1倍、ライトに元からあるバイアスノイズが1倍で、計6倍となるわけです。\(\sigma_\text{D}\)はマスターライトを作る際の、ダークに元からあるものとライトに元からあるもので、2倍となります。


2の最近の手法の場合

こちらは1の計算に比べ、ずいぶんシンプルになります。ダークはバイアスを含んだままなので、マスターダークは、ダークとバイアスの輝度とダークノイズとバイアスノイズがダークの枚数のルート分小さくなった項が加わり、

Master Dark:
\[ D+B+ \sqrt{ \frac{\sigma_\text{D}^2}{N_\text{d}} + \frac{\sigma_\text{B}^2}{N_\text{d}} }\]
となり、これを1枚のライト
\[L + D + B + \sqrt{\sigma_\text{L}^2+ \sigma_\text{D}^2 +\sigma_\text{B}^2} \]
から引くと

Light - Master dark:
\[ L+ \sqrt{\sigma_\text{L}^2+\sigma_\text{D}^2+\sigma_\text{B}^2 + \frac{\sigma_\text{D}^2}{N_\text{d}} + \frac{\sigma_\text{B}^2}{N_\text{d}}}\]
となります。これを2枚スタックして、2枚で割ると
\[ L+\left( \sqrt{ \left( \sqrt{ 2 \left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right) } \right) ^2  + \left( 2 \frac{\sigma_\text{D}}{ \sqrt{N_\text{d}}} \right)^2 + \left( 2 \frac{\sigma_\text{B}}{ \sqrt{N_\text{d}}} \right)^2} \right) /2 \]
\[ = L+\left( \sqrt{ 2 \left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right)  + 2^2 \frac{\sigma_\text{D}^2}{ N_\text{d}} + 2^2 \frac{\sigma_\text{B}^2}{ N_\text{d}}} \right) /2 \]
\[ = L+\left( \sqrt{\left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right)  + 2\frac{\sigma_\text{D}^2}{ N_\text{d}} + 2 \frac{\sigma_\text{B}^2}{ N_\text{d}}} \right) /\sqrt{2} \]

3枚の場合
\[ L+\left( \sqrt{ \left( \sqrt{ 3 \left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right) } \right) ^2  + \left( 3 \frac{\sigma_\text{D}}{ \sqrt{N_\text{d}}} \right)^2 + \left( 3 \frac{\sigma_\text{B}}{ \sqrt{N_\text{d}}} \right)^2} \right) /3 \]
\[ = L+\left( \sqrt{ 3 \left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right)  + 3^2 \frac{\sigma_\text{D}^2}{ N_\text{d}} + 3^2 \frac{\sigma_\text{B}^2}{ N_\text{d}}} \right) /3 \]
\[ = L+\left( \sqrt{\left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right)  + 3 \frac{\sigma_\text{D}^2}{ N_\text{d}} + 3 \frac{\sigma_\text{B}^2}{ N_\text{d}}} \right) /\sqrt{3} \]

\(N_\text{l}\)枚の場合

Master light:
\[L+\left( \sqrt{\left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right)  + N_\text{l} \frac{\sigma_\text{D}^2}{ N_\text{d}} + N_\text{l} \frac{\sigma_\text{B}^2}{ N_\text{d}}} \right) /\sqrt{N_\text{l}} \]
\[=L+\left( \sqrt{\left( \sigma_\text{L}^2 + \sigma_\text{D}^2+\sigma_\text{B}^2 \right) /N_\text{l} + \frac{\sigma_\text{D}^2}{ N_\text{d}} + \frac{\sigma_\text{B}^2}{ N_\text{d}}} \right) \]
となります。

やっと全ての計算が終わりました。最後の式は直接1の結果と比較することができます。


何が違うのか?

ここで振り返って、1と2の違いを比べてみましょう。

バイアス補正を個別にした1の方式ではルートの中に
\[2^2 \frac{\sigma_\text{B}^2}{N_\text{b}} = 4 \frac{\sigma_\text{B}^2}{N_\text{b}}\]
が余分に加わっています。バイアス補正の回数が1の方が2回多いので、最初にルート2倍、次にルート2倍でルート4倍損をしてしまっているというわけです。

ここで、黒天リフさんの疑問への回答をあらわに書くとすると、
  1. 個別のバイアス補正をすると、4つ分の読み出しノイズ\(\sigma_\text{B}/\sqrt{N_\text{b}}\) のだけの「余分な」ノイズが加わる。バイアス補正なしのライトフレームとダークフレームで補正した方が、バイアス補正の回数が少ないため、明らかに得をすることがわかる。
  2. それに加え、ダークファイルにバイアス補正を加える際に、元々暗い可能性があるダークファイルなので、補正によって輝度の値が0以下になる可能性がある。
以上の2つの理由から、単体のバイアス補正は原理的に不利で、ダークフレームに含まれるバイアスで自動的にライトフレームを補正する方が得するという結論です。

PixInsightでは以前は単体のバイアス補正が必須に近かったのですが、現在はDark frameに含まれるバイアスを考慮し、Dark補正のみで処理をするのが標準となっていますが、その根拠も今回の計算ではっきりしたことになります。

また、ライトフレームの補正まで考えているのでかなり実用的になり、今後の計算に具体的に使えそうです。ただし、フラットに関しては十分明るいと考えたので、無視できるとしています。

かなり長い記事と長い計算になってしまいましたが、そうはいってもこれも他のノイズとの比較で決定すべきで、例えば明るい空の撮影でスカイノイズが大きいなら、読み出しノイズの補正などはしてもしなくても誤差の範囲となるはずです。


まとめと、今後したいこと

今回のバイアス補正の計算はかなり大変でした。計算ミスが繰り返しみつかって、何度記事を書き直したことか。前回のダーク補正はまだまだ布石で、今回の計算でやっと、スタックを含めたノイズ評価ができるようになったのかと思います。式もTeX化したので、見やすくなったかと思います。前回の記事も余裕があったらTeX化しておきます。

今回の計算でやっとスタックを含めていろいろ計算できる準備ができたと言っていいので、今後スタック済みの画像のノイズと信号を、色々パラメータをいじることで、どんな状況が有利になるのかなど、具体的に考えていきたいと思います。

それとは別に、前回と今回の考察から、いくつか検証したいことが出てきました。そもそもバイアス補正というものが本当に意味があるかということです。ダーク補正はいずれにせよするので、バイアス補正必ずはされるのですが、バイアスにコヒーレント成分がなければ、補正そのものが意味がない気がします。なので、以下のようなことで検証したいと思っています。
  1. 100枚のバイアスファイルで作ったマスターバイアスを複数作る。複数のマスターバイアスで、模様が一緒になるかを見る。
  2. 下駄を履かせるか、履かせないかで差が出るかを見てみる。具体的にはバイアスファイルをマスターバイアスファイルで補正する過程を細かく見てみる。
などです。











ここしばらくは別の記事でしたが、再び実画像のノイズ解析です。前回の記事はこちらになります。


ここまでで、画像1枚の中にある各ノイズの貢献度が定量的にわかるようになりました。


また天体部分の信号にあたる大きさも定量的に評価でき、S/Nが評価できるようになりました。


S/Nは1枚画像では評価しきれなかったので、スタック画像で評価しましたが、あくまで簡易的な評価にすぎません。簡易的という意味は、ダーク補正はフラット補正でノイズの貢献度がどうなるかをまだ評価できていないということです。

今回の記事では、ダーク補正やフラット補正で画像の中にあるノイズがどうなるかを評価し、他数枚をインテグレートしたときに信号やノイズがどうなるのかを議論してみたいと思います。


スタック(インテグレーション)

そもそも、天体写真の画像処理で言うスタック(PixInsightではインテグレーションですね)とはどういったことなのでしょうか?

基本的には以下のように、重ね合わせる枚数に応じて、信号SとノイズNで、それぞれ個別に考えることができます。
  1. 画像の天体などの「信号部分」Sに関しては、多数枚の画像同士で相関がある(コヒーレントである)ので、そのまま足し合わされるために、信号Sは枚数に比例して増えます。
  2. 画像の天体以外の「ノイズ部分」Nに関しては多数枚の画像同士で相関がない(インコヒーレントである、コヒーレンスが無い)ので、統計的には2乗和のルートで重なっていきます。例えば5枚のノイズNがあるなら、sqrt(N^2 + N^2 + N^2 + N^2 + N^2) = sqrt(5) x Nとなるので、√5倍となるわけです。
そのSとNの比(S/N、SN比、SNR (Signal to Noise ratio))を取ることで、スタックされた画像がどれくらいの質かを評価することができます。S/N等は技術用語ですが、ある特殊分野の技術単語というわけではなく、かなり一般的な単語と言っていいかと思います。

n枚の画像をスタックすると、1の信号Sのn倍と、2のノイズNの√n倍の比を取ると、
  • S/N = n/sqrt(n) = sqrt(n)
と√n倍改善されるということです。

よくある誤解で、スタックすることでノイズが小さくなるという記述を見かけることがあります。ですが上の議論からもわかるように、ノイズが小さくなっているわけではなく、実際には大きくなっています。ノイズの増加以上に信号が増えるのでS/Nがよくなるということです。また、スタックするという言葉の中には、足し合わせた輝度をスタックした枚数で割るという意味も含まれていることが多いです。S/Nが良くなった画像をスタックした枚数で割ることで1枚画像と同じ輝度にした結果、1枚画像と比較してノイズが小さい画像が得られたということです。

もちろん、こういったことをきちんと理解して「スタックすることでノイズが小さくなる」と略して言うことは全く構わないと思います。ただ、定性的にでもいいので、どういった過程でスタックが効いてくるのかは、理解していた方が得することが多いと思います。


ダーク補正

天体写真の画像処理でも一般的な「ダーク補正」。一番の目的はホットピクセルやアンプグローなど固定ノイズの除去です。ホットピクセルは、センサーがある温度の時に撮影すると、いつも決まった位置に飽和状態に近い輝度のピクセルが現れることです。ホットピクセルの数は温度とともに多くなると思われます。アンプグローはセンサーの回路の配置に依存するようです。これが温度とどう関係があるかはほとんど記述がなく、よくわかっていません。ホットピクセルやアンプグローなどは、どのような過程、どのような頻度で出るのかなど、カメラに依存するところも多くあり、私自身あまりよくわかっていないので、今回は詳しくは扱いません。いつか温度とホットピクセルの関係は実測してみたいと思います。

ダーク補正でダークノイズは「増える」:
これまたよくある誤解が、ダーク補正をするとダークノイズが小さくなると思われていることです。ここで言うダークノイズとは、ダークカレント(暗電流)がばらつくことが起因で出てくるノイズのことです。ダークカレントとは、センサーに蓋をするなどしていくら真っ暗にしても出てくる一定の電流からの信号のことで、センサーの温度によって単位時間あたりの大きさが決まります。この信号のバラツキがダークノイズとなります。最近はメーカのカメラのところにデータが掲載されているので、そこからダークカレントを読み取ることができ、これまでもその値からダークノイズを計算し、実測のダークノイズと比較して正しいかどうか検証してきました。

何が言いたいかというと、ダーク補正をするとホットピクセルは除去できるが、ダーク補正ではどうやってもダークフレームが持っているダークノイズ(ホットピクセルでないラインダムなノイズの方)は消すことができなくてむしろ必ず増えるということです。

さらにいうと、個々のダークファイルには当然読み出しノイズ(Read noise)も含まれているので、ダーク補正時に読み出しノイズも増やしてしまうことにも注意です。読み出しノイズの増加については、次回以降「バイアスノイズ」という記事で、独立して説明します。

コヒーレンス(相関)があるかないか:
ホットピクセルは、個々のダークファイルに全て(ほぼ)同じ位置、(ほぼ)同じ明るさで出てくる、輝度が飽和しかけているピクセルのことです。アンプグローもカメラが決まれば同じ位置が光ます。どのファイルにも同じように明るく出てくるので、ばらつき具合は(中間輝度を基準とすると)全て正の方向で、互いに正の相関があり ( =「相関がある」、「コヒーレンスがある」、「コヒーレント」などとも言う)、全て足し合わされます。

一方、ダークカレンと起因のダークノイズはランダムなノイズです。個々のダークファイルのある一つのピクセルに注目して、全てのファイルの同じ位置のピクセルの値を見てみると、全ファイルのそのピクセルの輝度の平均値を基準として、個々のファイルの輝度の値は正負がバラバラになります。このことを相関がない ( =「無相関」、「コヒーレンスがない」、「インコヒーレント」などとも言う)といい、それらの値を全て足し合わせると正負なのである程度打ち消しすことになります。

ノイズの数学的な定義:
個々のダークファイルの画像のある面積を考えてみましょう。その面積の中の輝度も、平均値を中心に正負がバラバラで、その大きさも「ばらつき」があります。この「ばらつき具合」がノイズそのものです。数学的には面積内の各ピクセルの値から平均値を引いて、2乗して足し合わせたものを統計用語として「分散」と呼び、そのルートを「標準偏差」と呼びます。この標準偏差をここではノイズと呼ぶことにしましょう。

ここで注意ですが、ある面積を選ぶ時にはホットピクセルやアンプグローを含めてはいけません。ホットピクセルやアンプグローは背景のダークに比べて格段に明るく、特にホットピクセルは飽和気味の場合も多いのでで、そもそもここで考えている統計に従いません。ホットピクセルやアンプグローなどの明るい固定ノイズを除いた領域でダークノイズを測定する必要があります。ちなみに、飽和気味のホットピクセルを含んで測定してしまうと、とんでもなくばらついているようなものなので、結果はノイズがとんでもなく大きく出てしまうということは、言うまでもありませんね。

ノイズの重ね合わせの直感的なイメージ:
あるダーク画像1枚のある面積のノイズがNだったとします。他のダーク画像も同様にノイズNがあるとします。このダーク画像を例えば2枚足し合わせると、個々のピクセルは正負バラバラなのである程度打ち消します。その打ち消し具合は統計的には無相関の場合は「2乗和のルート」で合わさることになります。この場合2枚なので、
  • sqrt(N^2+N^2) = √2 x N
とルート2倍になります。正負で打ち消すということで、2倍にはならずに、元から減ることもなく1倍以下にもならなくて、結局その中間くらいということは直感的にイメージできるかと思います。

負の相関について:
あと、負の相関も考えておきましょう。ある画像で特徴的な形で明るい部分があるとします。もう一枚の画像では同じ形ですが、1枚目の明るさを打ち消すようにちょうど逆の暗い輝度を持っているとします。2枚の画像を足し合わせると、正負で、しかも明るさの絶対値は同じなので、ちょうど打ち消すことができます。このようなことを互いに「負の相関がある」と言います。でも天体写真の画像処理の範疇ではあまりない現象なのかと思います。


ダーク補正の定量的な扱い:
実際の画像処理では、ダーク補正というのはライト画像からマスターダーク画像引くことです。マスターダークファイルとは、個々のダークファイルを複数枚重ねて、輝度を元と同じになるように枚数で割ったものですから、 個々のダークノイズをNとして、n枚重ねて、輝度を枚数nで割ったとすると、マスターダークファイルのダークノイズ
  • N_ masterはsqrt(n x N^2) / n = 1/√n x N
となり、元のノイズのルートn分の1になります。

各ライトフレームにも当然ダークノイズは含まれています。ダーク補正をする際に、各ライトフレームのダークノイズと、マスターダークファイルに含まれるダークノイズは、ここまでの議論から2乗和のルートで「増える」ことになります。

1枚のライトフレームのダーク補正:
個々のライトフレームがマスターダークファイルで補正されると、補正後のダークノイズは
  • sqrt(N^2+N_ master^2) = sqrt(N^2+(1/√n x N)^2) = N x sqrt(1+1/n)
となり、sqrt(1+1/n) 倍にごく僅か増えます。

ダーク補正されたライトフレームのスタック:
これらのダーク補正されたライトフレームをスタックします。スタックの際、ライトフレームに元々あったダークノイズは個々の補正されたライトフレームでランダムに(無相関に)存在するので2乗和のルートで合わさり、輝度を揃えるために最後にライトフレームの枚数で割るとします。

マスターダークファイルで足された(ルートn分の1の小さい)ダークノイズは、スタックされる際に「(同じマスターダークファイルを使い続けるために)正の相関を持っている」ことに注意です。

2枚のスタック:
  • sqrt([sqrt(N^2+N^2)]^2 + [N/sqrt(n)+N/sqrt(n)]^2) = N sqrt(sqrt(2)^2 + [(2/sqrt(n)]^2) = N sqrt(2 + (2^2)/n) 
大外のsqrtの中の、1項目が無相関で2乗和のルートで足し合わさるノイズ。2項目が正の相関を持ってそのまま足し合わさるノイズ。それぞれがさらに2乗和となり大外のsqrtでルートになるというわけです。

3枚のスタック:
  • sqrt([sqrt(N^2+N^2+N^2)]^2 + [N/sqrt(n)+N/sqrt(n)+N/sqrt(n)]^2) = N sqrt([sqrt(3)^2 + (3/sqrt(n)]^2) = N sqrt(3 + (3^2)/n)

ライトフレームの枚数をnl枚として、
nl枚をスタックすると:
  • N sqrt([sqrt(nl)^2 + (3/sqrt(nl)]^2) = N sqrt(nl + (nl ^2)/n)

スタックされたライトフレームの輝度を、1枚の時の輝度と合わせるためにnlで割ると、上の式は少し簡単になって:
  • N sqrt(nl + (nl ^2)/n) /nl = N sqrt(1/nl + 1/n)
と ライトフレームの枚数nl分の1とダークフレームの枚数n分の1の和のルートで書ける、直感的にもわかりやすい形となります。

簡単のため、個々のライトフレームの枚数と、個々のダークフレームの枚数は同じnとしてみましょう。
n枚のスタックは:
  • N sqrt([sqrt(n)^2 + (n/sqrt(n)]^2) = N sqrt(n + (n^2)/n) = N sqrt(n + n) = N sqrt(2n)

となり、結局は「1枚当たりのライトフレームのダークノイズNがn枚」と「1枚当たりのダークフレームのダークノイズNがn枚」合わさったものと同じで、√2n倍のノイズとなります。

マスターダークを考えずに、ダーク補正をまとめて考える:
これは直接「n枚のライトフレーム」と「n枚のダークフレーム」のダークノイズを全て足し合わせたものを考えることと同等で、実際に計算してみると
  • sqrt(n x N^2 + n x N^2) =  N sqrt(2n)
と、1枚1枚処理した場合と同じなります。数学的には
  1. 事前にマスターダークを作ってから個々のライトフレームに適用しても、
  2. 全てのダークノイズをライトフレーム分とダークフレーム分を一度に足しても
同じ結果になるということです。これは直感的にわかりやすい結果ですね。

重要なことは、たとえ頑張ってライトフレームと同じ枚数のダークフレームを撮影して補正しても、補正しない場合に比べてノイズは1.4倍くらい増えてしまっているということです。もっと言うと、補正しない半分の数のライトフレームで処理したものと同等のダークノイズになってしまういうことです。ホットピクセルを減らすためだけに、かなりの犠牲を伴っていますね。

枚数が違うダークフレームでの補正:
例えばある枚数のライトフレームを枚数が違うダークフレームで補正する場合を具体的に考えてみます。

例えば10枚のライトフレームと、同じ露光時間とゲインのダークフレームが10倍の100枚あるとするとします。ダークノイズ起因のS/Nはライトフレームは1/√10=0.316となり、ダークフレームでは1/√100 =1/10となります。ダーク補正したライトフレームは
  • sqrt(1/10+1/100)=sqrt(11/100)=√10/10=0.332
となり、ダーク補正する前の0.316よりほんの少し悪くなる程度に抑えることができます。同様の計算で、2倍のダークフレームだと約4分の1のノイズ増加、3倍のダークフレームがあれば約10分の1のノイズ増加に抑えられます。

では闇雲にダークフレームの数を増やせばいいかというと、それだけでは意味がなくて、他のノイズとの兼ね合いになります。画面のノイズがダークノイズで制限されていいればどの通りなのですが、例えば明るい空で撮影した場合にはノイズ全体がスカイノイズに支配されていることも多く、こんな場合にはダークフレームの枚数は少なくても、それによるノイズの増加は無視できるということです。


フラット補正

フラットフレームは一般的にライトフレームと同じゲインですが、露光時間は異なることが普通です。そのためフラット補正を真面目に計算すると、ダーク補正よりもさらに複雑になります。

ただし、ライトフレームの輝度はライトフレームの背景よりもはるかに明るいことが条件として挙げられるので、補正の際にフラットフレームの輝度を、ライトフレームの背景の輝度に合わせるように規格化する(割る)ので、ノイズに関してもその分割られて効きが小さくなると考えられます。

その比はざっくりフラットフレームの露光時間とライトフレームの露光時間の比くらいになると考えていいでしょう。最近の私の撮影ではライトフレームが300秒露光、フラットフレームが最も長くても10秒露光程度で、通常は1秒以下です。ノイズ比が30分の1以下の場合、2乗和のルートとなると1000分の1以下となるので、実際にはほとんど効いてきません。さらにフラットファイルも多数枚をスタックするので、スタックされたライトフレームと比べても、効きは十分小さく、無視できると考えてしまっていいでしょう。

ただし、暗い中でフラットフレームを作る場合はその限りではなく、ノイジーなフラットフレームで補正をすることと同義になるので、注意が必要です。ここでは、フラットフレームは十分明るい状態で撮影し、フラット補正で加わるノイズは無視できるとします。


まとめ

スタックとダーク補正でノイズがどうなるか計算してみました。理屈に特に目新しいところはないですが、式で確かめておくと後から楽になるはずです。

今回は計算だけの記事で、しかもスタックを1枚づつ追って計算しているので、無駄に長く見えるような記事になってしまいました。でもこの計算が次のバイアス補正のところで効いてきます。ちょっと前にX上で黒天リフさんがバイスについて疑問を呈していましたが、そこらへんに答えることができればと思っています。










前回までの記事で、SWATにAZ-GTiを取り付けて(SWAgTiと命名)、SWATで自動導入機能を実現して快適な簡単撮影を試してきました。しかしながら、数時間にわたる長時間撮影では縞ノイズがどうしても出てしまい、それをディザーで散らしてやることを考えましたが、今の環境では難しいであろうことがわかってきました。今回は画像処理でどこまで縞ノイズを改善できるか検証してみます。


方針転換

ディザー撮影とは、露光と露光の合間に少し(数ピクセルから多くても数十ピクセル)画角の位置をずらしてやることで、縞ノイズを避ける最も効果的な方法です。縞ノイズとは、長時間における機材のたわみなどで画角が一方向に流れてしまい、ホットピクセルやコールドピクセルなどの固定ノイズが縞状になって表れることです。ですが前回の検証でどうやら、今の機材、今の制御ソフトの範囲ではSWAgTiではディザーができないであろうということが判明しました。

そこで今回は方針転換をします。そもそもディザー撮影も複雑なので、撮影はシンプルそのものに、ガイドやディザーなどなしにして、その分画像処理を多少複雑にしてどこまで縞ノイズを回避できるかを検証したいと思います。


ライブスタックでの縞ノイズ

まずは、SharpCapでライブスタックをしただけだと、どれくらいの縞ノイズが出るのか見てみます。

3分露光で29フレーム、トータルで約1時間半撮影し、そのうち29フレーム中21枚がライブスタックされた画像です。SharpCapに出てくる画像(ストレッチなども含めて)そのものです。

Stack_16bits_21frames_3780s

かなりひどい縞ノイズが出ていることがわかります。ライブスタックだとひどい時にはこれくらい出てしまいます。


RAWファイルでも縞ノイズ

次に、同じ撮影時に保存してあったRAWファイルを使って、上の縞ノイズを再現してみます。PixInsightを使いましたが、ステライメージなどでも同じです。

方法は簡単で、ダーク補正やフラット補正をせずに、位置合わせだけしてスタックするだけです。こうしてできたものが以下になります。

masterLight_BIN-1_3856x2180_EXPOSURE-180.00s_FILTER-NoFilter_RGB

PixInsigtで途中雲で十分な露光ができていな画像を弾いたりしていますが、それらは同様にライブスタック時でも弾かれているはずです。多少(数枚)採用/不採用の違いはありますが、縞ノイズに関してはほぼ再現できていると思います。ようするに、ダーク補正などせずに単にスタックするだけでは、ライブスタック/後からのスタックにかかわらず、縞ノイズに関してはかなり厳しいということです。


ダーク補正とフラット補正

上と同じRAWファイルを、今度はダーク補正とフラット補正をしてスタックしてみます。

masterLight_BIN-1_3856x2180_EXPOSURE-180.00s_dark_flatjpg

劇的に改善されているのがわかるかと思います。

わかりやすいように3枚を拡大して並べてみます。左からライブスタック、PIでダーク補正フラット補正なし、PIでダーク補正フラット補正ありです。

comp

これだけ見ると、やはり簡単撮影といえど、ダーク補正とフラット補正はした方が明らかにいいという結論になるかと思います。


クールピクセル除去

ただ、ダーク補正とフラット補正したとしても縞ノイズはわずかに残ってるんですよね。ここでさらに、あぷらなーとさんが言うクールピクセルの影響の可能性があると考え、クールピクセル除去を試しました。実際にはだいこもんさんがPixInsightでスクリプト化の足がかりを作られだぼさんが実装したコードを使用させていただきました。あぷらなーとさん、だいこもんさん、だぼさんには感謝です。

結果を示します。まだごくわずか縞ノイズらしきものは見えますが、もうほとんど気にするレベルではなく、画像処理でなんとかなるレベルと思います。
masterLight_BIN-1_3856x2180_EXPOSURE-180.00s_cold

わかりやすいように、クルーピクセル除去の効果がわかりやすいところを切り出して拡大してみます。場所は下の真ん中より少し左のあたりです。左がクールピクセル除去なしで、右がクールピクセル除去ありです。

comp

画面の一部ですが、右は明らかにクールピクセル起因の縞ノイズがあって、それが左だと除去されていることがわかります。

でも実はこれ、最初ほとんど効果が見られなくて、Cold Sigmaの値をいくつか変えてみて、やっと違いがわかるくらいになりました。今回の場合0.1が一番良かったです。0でも0.5でも縞ノイズが結構残ってしまいました。0.2よりは0.1の方が少し良かったです。もしかしたら、もう少し調整できるのかもしれません。

縞ノイズが撮り切れていない原因の一つですが、今のところ冷却でないカメラを使っています。ダーク補正も温度をきちんと管理し切れていないので、ダーク補正によるホットピクセルの補正がまだうまくやり切れていない可能性があります。なので、冷却カメラに向かうというのが一つの方向性かと思います。

もう一つの方向性は、一眼レフカメラに向かうことです。SWATを使っている方は一眼レフカメラで撮影している方も多いかと思われます。基本シャッターを切るだけというお手軽な方向は、SWATを使う上での一つの正しい方向だと思います。これでも、今回のように画像処理をきちんとすれば、十分なクオリティーの撮影画像になるかと思います。ただ、お気軽撮影からは少し拡大していきますが...。


まとめと今後

今回見た画像は、1時間半ほどで本当に一方向にのみ進むものなので、縞ノイズ的には相当不利なものです。前回画像処理して最後まで仕上げたものは、トータルでもっと長時間露光で、しかも何方向かに進むものを合わせているので、クールピクセル除去とかしなくても、あまり縞ノイズが目立たなくなっています。

というわけで、前回のようにある程度マニュアルディザー状態になるように、撮影中に何度か位置を変えてやるか、今回のようにクールピクセル処理までしてしまえば、かなりのレベルで縞ノイズを無視できるくらいになるのかと思います。


おまけ: 胎内星まつりで「SWAgTi」展示

今週末に行われる「胎内星まつり」で、ユニテックさんから声がかかり、ユニテックブースにおいて

SWAT + AZ-GTi = 「SWAgTi」 を展示

させて頂けることになりました。

星まつりの期間は8月18日(金)午後から20日(日)昼となっていますが、

展示は19日の土曜となる予定

です(もしかしたら18日の夜には展示できるかも)。私自身はずっとユニテックさんのところにいるとは限りませんが、少なくとも土曜はほぼ一日じゅう会場内にいると思います。名札をかけていますので、もし見かけたらお気軽にお声掛けください。


さらにおまけ: 一眼レフカメラでのプレートソルブに挑戦

展示だけでもいいのですが、せっかくの星まつりなので、夜にはもう少し何かしようと思っています。

今ちょっと考えているのは、一眼レフカメラ(今回は手持ちのEOS 6D、EOS 60Dなど)でプレートソルブができないかです。ユニテックの方と話したところ、SWATに一眼レフカメラをつけて撮影している方が多いそうです。CMOSカメラではなくて、一眼レフカメラで自動導入やプレートソルブができた方が、SWATユーザーにとっては実用的ではないかとのことでした。

でも、見ていただきたいのは6Dでのプレートソルブそのものではありません。そもそもまだ、一眼レフカメラでプレートソルブを試したことがないので、うまくいくかどうかもよくわかっていません。星まつり会場のその場で初めて挑戦しようと思っています。

見てほしいのは、新しいことを試す時に、私Samがいつもどうやって取り組んでいるのか、問題にぶち当たった時にどうやって解決するのかなど、いろいろ試す過程を見ていただきたいと思っています。今回はその場で試してみてのことなので、実際にうまくいくかという保証はありません。でもこういった泥臭いところを見せることで、何かを感じていただければと思っています。

多分独り言をぶつぶついいながらの作業になるかと思いますが、もし興味があると言う方はぜひご参加ください。もちろんその場での質問とかもOKです。

暗くなってきてからのほうがいいと思うので、開始時間は19時過ぎくらいからになると思います。PCの画面が対面で見えるように、外部モニターを持っていこうかと思っています。

胎内星まつりでみなさんとお会いして、いろいろお話しできるのを楽しみにしています。

(2024/8/18追記: 1年越しでディザー撮影に成功し、縞ノイズを撮影時から無くすことができました。)





SWAgTi記事のまとめ
 
 
 








SharpCap(有料版のみ)やASILiveには、リアルタイムでダーク補正をしてくれる機能がついています。これがどこまで有効なのか、常にオンにしておいた方がいいのか?色々やり方はあると思います。今回は私Samが普段どうしているかSharpCapを使って解説したいと思います。


ホットピクセルがはいずった痕

SharpCapでの電視観望中Live stackをしていると、よく赤、青、緑の単色のミミズみたいなノイズが入ることがあります。「ホットピクセル」とか言われているもので、長時間露光時やセンサー温度が高い時に出てくるダークノイズの言われるもの一種です(下の画像をクリックして拡大して見て下さい)。
hot

この画像は、自動追尾さえしてなくて、Livestackのみで星像を重ねています。なのでこんな短時間で長いミミズさんがでてますが、自動追尾している場合は同じ時間ならこれより遥かに短くなります。

いずれにせよ電視観望でも見栄えが良くないので、これを取り除きたくなるかと思います。こんな時はリアルタイムでダーク補正ができる機能があります。


ダーク補正機能の注意点1

SharpCapでのダーク補正は簡単で便利なのですが、いくつか注意があります。まず一つ目、これはSharpCapに限らず一般的なことなのですが、

撮影したダークフレームは、
同じ露光時間、同じゲインでしか
使用できない

ということです。見たいものが安定していて、露光時間とゲインが確定していれば問題ないのですが、電視観望みたいに露光時間やゲインをちょこちょこ変えて見ていると、ダークフレームをどの設定で撮影すればいいか決まりません。もちろん厳密に合わせなくてもダーク補正の効果はあります。ただし、設定がズレればずれるほど、その補正効果も小さくなっていくので、やはりできるだけ合わせておいた方がいいでしょう。

実際の電視観望では、導入時(移動する動きを見たいので、露光時間は例えば400ms程度)、観察時(止まっているので長い露光時間、例えば1.6秒とか、3.2秒、長くても12.8秒程度まで)の露光時間をあらかじめ決めておきます。ゲインは最大から一段階下げるくらいで、高い位置のままいじりません。このようにして、ダークフレームは観察時の設定に合わせるように一種類だけ撮影しておけば、基本的には事足りるはずです。何種類もとって切り替えてもいいですが、観望会でお客さんがいる時などは、時間のロスになってしまうかもしれません。


ダーク補正機能の使い方

SharpCapでの実際のダーク補正のやり方です。

1. まずはメニューの「キャプチャ」から「ダークフレームキャプチャ」を選びます。
2. 撮影前に、必ず鏡筒に蓋をするのを忘れないで下さい。
3. 枚数は多くなくていいです。8枚とか、16枚で十分でしょう。ただし、撮影のようなことをしたくて数十分以上とかの超長時間ライブスタックを掛ける場合はそれなりの枚数にして下さい。
darkcapture

4. ダークフレームの撮影を開始し、スタックし終わるのを待ちます。
darkcapturing

5. ダークファイルができたら、右の「前処理」タブの「ダーク補正」で「参照」を押し、ダークファイルを選択します。自動的にできたファイルのフォルダに移動さるはずなので、そこにあるファイルを選べばいいでしょう。

これでLive stackをしてみると、目立っていたミミズさんはすっかり消えているはずです。ただ、細かいたくさんの縞が残るかもしれません。それでもダーク補正しないよりはマシになるかと思います。

LS_80


ダーク補正機能の注意点2

さて、ここから少しテクニックです。この状態で鏡筒にカバーをしてヒストグラムを見てみましょう。
nohot

ここでの問題は、ヒストグラムの山の左端が切れてしまっていることです。SharpCapでは輝度が負の値になるようなことはなく、0以下は全て0になるようなので、ものすごくおかしなことは発生しません。でもこれは読み出しノイズがガウス分布に従わずに、不自然な状態になってしまっていることになります。言い換えると、
リードノイズの暗い部分はバッサリ斬られていて、
階調がとれなくなります
これが2つ目の注意点です。

階調がとれないとはどういうことでしょうか?例えば、先ほどの北アメリカ星雲を見ている時に輝度をあえて下げてやって、ヒストグラムの山の左端を欠いてやります。

LS_bad

ライブスタックのヒストグラムの左が欠けていますね。すると色バランスが損なわれ、どういじってもこの画像のように見た目にもおかしいものしか出てきません。

これは極端な場合なので、普通に電視観望している範囲では基本的にはこんなことは発生しません。でも、もし画像を見て階調が取れないような時は変にヒストグラムがカットされていないかを疑った方がいいこともあるので、心に留めておきましょう。


ヒストグラムの山を回復する

さて、リードノイズに関して、このような階調不足を避ける方法を考えます。まず、ダークフレームを撮影する前に、右の「画像情報」タブの「輝度」のところを、最初から少しあげておきます

withhot

私は最大値(ASI294MCの場合80)の半分くらい(40)にします。ポイントは右パネルのの「ヒストグラムストレッチ」で見て、まずはダークフレーム取得時点で山の左が欠けていないことを保証すること。山の左すそが、一番下まで言っていればいいです。山が左に行きすぎて左すそが途中で無くなっているような状況は避けてください。

ここまではいいのですが、この状態でダークフレームを撮影してダーク補正を適用すると、オフセットも消そうとするためヒストグラムの山の左が欠けた状態になります。
nohot

ここで、さらに「画像情報」タブの「輝度」の値を上げて、ヒストグラムに山の左側に欠けがないように再び設定します。

nohot_withoffset
山が回復したのがわかるかと思います。

ちなみに、電視観望をやっているだけなら、上記の補正は特にしなくても、特におかしいことはないと思います。補正の有無で以下のようになります。

LS_80
輝度補正なし(40のまま)。

LS_80real
輝度補正あり(80に増加)。

補正有無で比べても特にどちらかが悪いということはないと思います。ただこれを画像処理とかして、撮影画像とかして扱うときは補正なしだと少し気をつけた方がいいかもしれません。リードノイズに相当する部分が既に破綻しているので、もしかしたら何か影響があるかもしれません。


リアルタイムダーク補正は必要か?

ちなみに、私は電視観望の際は大原則としてリアルタイムダーク補正はしません。理由は、露光時間、ゲインを頻繁に変えることが多いからです。また、月や惑星などの明るい天体を見ていて、ライブスタックに入らないような場合には、ホットピクセルは点のままで線にはならないので、そこまで問題にならないはずです。

ホットピクセルが多い場合(カメラの機種に依りますし、気温にも依ります。)で、ライブスタックに入り、かつ露光時間とゲインの設定をあまりいじらなくていいくらいになると、リアルタイムダーク補正をすることがあります。特に、ライブスタックで数分以上の長さでしばらく放っておくような時です。

リアルタイムダーク補正を行う際は、上で説明したリードノイズの山の形の補正は必ずやるようにしています。といっても、炙り出しがキワキワになった時にもしかしたら効くかもしれないと思ってしまうからという程度です。

あとよく似たことで、リアルタイムフラット補正は使ったことがないです。これは鏡筒の方向を変えるとカブリなどの状況がガラッと変わるからです。かなり昔に一度だけリアルタイムフラット補正を試したことがありますが、あまりうまくいかなくてそれ以来使っていません。その頃から大分状況は変わっているので、もしかしたら今試してみたらもう少しいい方法があるのかもしれません。


まとめ

いつかこのリアルタイムダーク補正の話を書こうと思って、途中書きになっていたのですが、前回の記事のコメントでちょうどカトーさんからダーク補正についての質問がありました。これが答えになってくれるといいのですが。


このページのトップヘ