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


アンタレス付近を撮影した際のフラット補正に続き、EOS 6Dで撮影した場合のダーク補正について少し述べます。

元々あまり面白くない内容と思い、お蔵入りしようとしていた記事です。でもNINAの使い方の記事コメントでTKさんが撮影時の温度について述べてくれたので、どこまで意味があるか分かりませんが記事にだけしておこうと思いました。大したことは言ってませんが、何かの参考になれば程度です。

温度変化させ撮影した6Dのダークフレーム

今回ダークフレームは180秒露光で冷凍庫と冷蔵度と室温で適度に出し入れしれ温度の上下を行き来させて撮影しています。撮影できた温度は

-2度:3枚
-1度:1枚
0度:2枚
1度:3枚
2度:2枚
3度:2枚
4度:4枚
5度:4枚
6度:3枚
7度:4枚
8度:3枚
9度:4枚
10度:3枚
11度:2枚
12度:3枚
13度:1枚
14度:3枚
15度:5枚
16度:1枚
17度:18枚
18度:12枚
19度:1枚
21度:1枚
23度:1枚
25度:1枚
26度:1枚

の計89枚です。実際に撮影した順序は温度が上下していますが、それを温度別に並べています。実際にダーク補正で使ったものはこの中のうち11度から17度の34枚です。実際のライトフレームは13度から15度までの温度変化なのですが、ダークの枚数を稼ぐために少し温度範囲を広げています。

ちなみに、この温度はBackYard EOSで測定したものなのですが、この温度情報TKさんのコメントによるとファイルのExif情報として書き込まれているとありました。ところが、EOSの中でも温度情報が書き込まれているものと書き込まれていないものがあるらしくて、6Dは私が探した限りは温度情報はファイルには書き込まれていないようでした。他にもAPTでは温度を読めるという情報もありますが、私はまだ試していません。


撮影されたダークフレームの比較

まず、これらのダークファイルを温度が上がっていく方向で動画にしてみたのですが、Youtubeにアップした時点で最初だけブロックノイズが発生し、うまくいきません。まあ、動画で見てもあまり得るものはないので、諦めて幾つか比較するだけにします。

一番温度の低いものをオートストレッチしたもの
Blink00004

と、一番温度の高いものを、(一番温度が低いもののオートストレッチのパラメーターで)ストレッチしたもの
Blink00089
です。この2枚を比べると明らかに温度が高い方が明るく、ノイジーなことがわかります。温度が低いときには縦横の線が見えて、温度が高くなるとその線が熱が上がったことによるノイズで覆い隠されているという状況です。


スタックしたマスターダークの様子

次に、実際のダーク補正に使った、55枚をスタックしたマスターダークフレームです。

masterDark_BINNING_1_EXPTIME_181_integration_RGB_VNG_cut
ランダムノイズがスタックでルート55分の1に減少し、固定ノイズが残ったような状態です。これを見ると、横縞はランダムノイズ成分が多く、縦縞は固定ノイズ成分が多いことがわかります。これはバイアルファイルを見ることでもわかります。

下が、同ISO800で露光時間最小の1/4000秒で100枚撮影してスタックしたマスターバイアスになります。

20190206_bias_6D_ISO800_s4000_x100_integration_RGB_VNG_cut
バイアスノイズは縦縞が多く、これがマスターダークに乗っかっていることがわかります。

上2枚の比較は、オートストレッチ時にパラメータが違うので直接の比較はできません。マスターバイアスのパラメータでマスターダークを表示させたものは直截比較ができるはずで、以下がそれになります。

masterDark_181_integration_RGB_VNG_calibrted_to_master_cut
マスターバイアスに比べて、相対的に青味がかった横縞成分のダークノイズが乗っかっていることがわかります。


輝点ノイズの傾向と、温度変化で出てくるノイズ

次に、撮影時RAWと同時にJPEGで保存されたダークフレームを動画にしたものです。


JPEG動画の方は比較的理解しやすいです。
  • まず、EOSのDIGICエンジンで、背景の細かいノイズがものの見事に真っ黒になっています。
  • ポツポツとある輝点のはホットピクセルに相当するものだと思います。
  • 輝点も固定されたものと、ランダムなものがあるのがわかります。
  • 最後にノイズがバッと増えるのがわかりますが、これが温度が高くなった時です。
  • 不思議なのが、温度が9度前後のところに一枚だけノイズが格段に大きいものがあります。もしかしたら途中光が漏れた可能性が完全には否定できませんが、これ一枚だけというのもあまりありそうでない話で、それよりも冷蔵庫や冷凍庫への出し入れの際に急激な温度変化が起こって、読み取り温度と実際のセンサーの温度が違った可能性の方が高いと思われます。
結局、何が正しいかはここでは決着はつけられないのですが、一つ言えることは、たとえ温度が問題ないように見えてもノイジーなダークフレームが混ざる可能性は否定し切れないということです。今回はこの画像は必要な温度外にあったので使いませんでしたが、ダーク補正の前に一応念のためにおかしなファイルができていないかは、確かめた方がいいということくらいは言えるのかと思います。



まとめ

大した内容ではないですが、一応まとめます。
  • BackYard EOSで記録された温度は、必ずしもセンサーの温度と一致はしていない可能性が高い。 
  • 撮影された個々のダークフレームにはバイアスノイズ+ランダムなノイズ+固定されたダークノイズ(固定されたホット、クールピクセル含む)
  • スタック(他数枚を加算して、平均化されたという意味)されたマスターダークにはバイアスノイズ+スタック枚数のルート分の1されたランダムなノイズ+固定されたダークノイズ(固定されたホット、クールピクセル含む)
と、今回せいぜい言えるのはこれくらいでしょうか。

こうやって考えると、ダーク補正には輝点ノイズを除去するという役割が大きく、他には「ある温度である長時間露光した時の固定ノイズ」を補正するという役割があるはずですが、今回の結果ではあまりあらわにはその状況を表すノイズだけを可視化するには至っていません。マスターダークからマスターバイアスを除去した画像がそれになるはずですが、うまく除去する方法がわかりませんでした。仮にうまく除去できたとしても、それが本当に固定されたものなのか、ランダムノイズが消し切れずに残ったものなのかは切り分けは難しいでしょう。

もっというと、今回見せた画像は全てPIのオートストレッチで炙り出して初めて見えた画像です。あぶり出さなかったら、全く見えず効果の程は全然わかりません。ではダーク補正は見えていないので効果はないかというと、もちろんそんなことはなく、欲しいライトフ画像も炙り出して得られるもので、その結果ノイズが浮き出てきて、その状態でのダークノイズの除去は効果があるはずです。

でも今回は全部定性的な話のみで、定量的には何も示せていません。もう少し評価方法をいろいろ考えてみたいと思います。

あまり大した結果を示していなくて読んでいただいた方には申し訳ないのですが、ノート程度と思っていただければありがたいです。


このページのトップヘ