Deep Sky Memories

横浜の空で撮影した星たちの思い出

2023年8月18日撮影の太陽の画像について(Linked Wavelets 事故調査委員会報告 第2報)

年末から年明けにかけて Linked Wavelets 事故調査委員会(LW事故調) の調査をやっていました。LW事故調とはなんぞや?という方がほとんどだと思いますが、第1報となるこちらの記事を参照。

要は太陽写真(白色光)で、RegiStax 6 で Linked Wavelets を有効にして処理すると出てくる粒状班のような模様はどうやら画像処理が生み出した偽の模様(アーティファクト)らしいということで調査を行っている組織です。いや、組織というのは嘘で、一人でメンバーは今のところ僕一人ですが…

さて、今回は2023年8月18日撮影の画像を検証していきます。結論から言うとアーティファクトではないが極端な強調処理で妥当性に欠ける」と考えます。

wavelet パラメータ

8月18日撮影の画像は翌日こちらのエントリで公開しました。

この画像で使用した wavelet パラメータ(以下 original と呼びます)はこんな感じです。

https://rna.sakura.ne.jp/share/LWAIC-20240108/wavelet-params/wavelet-original-settings.png

rwv ファイル: Sun-FSQ-85EDP+2.5x-20230818.rwv

例によって Linked Wavelets は ON です。今見ると一見して Layer 1 の Denose 少ないなーという印象が…

ASI290MM のフラットの特性

8月18日の撮影で使用したカメラは ASI290MM です。第1報とは異なるカメラですのであらためてフラット画像から調査しました。今回はフラットを wavelet 処理すると発生するノイズが何に由来するのかを探るため様々な条件で撮影・スタックしたフラットを比較してみました。

ここで言うフラット画像はフラット補正のために撮影時の状態の光学系で撮った画像ではなく、単に明るさが一様の光をセンサーに当てて撮影した画像という意味です。今回はカメラに Micro-NIKKOR 55mm F2.8 を取り付けて、雲のない空にレンズを向けて、ピント位置は最大マクロにしてピンぼけ状態で撮影しました。

撮影ソフトは SharpCap 4 です。16bit MONO の SER で保存して、AutoStakkert! 3 のマスターフレーム作成機能(Create Master Frame)でアラインメントなしでスタックしました。8月18日の撮影画像と同じコマ数(1000フレーム)をスタックしたものがこちらです。

https://rna.sakura.ne.jp/share/LWAIC-20240108/SkyFlat/wavelet-none-SkyFlat-ASI290MM-45C-1000frames.png

冷却機構のないカメラなのでセンサー温度は一定ではありませんが、約37℃〜45℃でした。8月18日の太陽撮影時には約46℃〜48℃でしたので少し低めですが、後述するように問題のノイズには温度依存性はあまりなさそうです。

スタックフレーム数との関係

同じ SER から使用フレーム数を変えて作成したマスターフレームのノイズの出方の変化を見てみました。画像は以下のリンク先で確認できます。*1

250コマ〜3000コマまで変化させましたが wavelet original で処理した際のノイズパターンはほとんど変わりません。輝度の低いピクセルと輝度の高いピクセルの位置はほとんど変わらず、中間輝度のピクセルの輝度にわずかにゆらぎがある程度です。

露出時間との関係

スタックフレーム数を1000コマに固定して露光時間を変えたものを比べてみました。

0.5ms〜50ms まで変化させました。輝度がなるべく一定になるように露光時間毎にレンズの絞りを調節しています。50ms では F22 前後まで絞り込んでいるためセンサーの保護ガラスの汚れと思われる影がノイズパターンに重なる形で見えています。

ノイズパターンの違いはスタックフレーム数を変えた場合と同様です。中間輝度のピクセル以外はどれもほとんど同じパターンです。

ゲインとの関係

スタックフレーム数を1000コマ、露光時間を 0.5ms に固定して(ただしゲイン0は 0.5ms では露出不足になったので露光時間を 1.4ms にしています)ゲインを変えたものを比べてみました。

ゲインは0〜400まで変化させました。やはり輝度が一定になるように絞りを調節しています。ノイズパターンはゲインを上げるほどコントラストが上がりますが、パターン自体はほとんど変わりません。やはり中間輝度ピクセル以外はほぼ固定ノイズです。

ただし、ゲイン400だけはパターンに若干変化が見られ、より大きなスケールのパターンが重なっているように見えます。wavelet なし(none)の画像を見ると(x4 に拡大するとよくわかります)、ゲイン200以下では見られない輝度ムラが見えるので、それに由来するものと思われます。

センサー温度との関係/ダークノイズの影響

スタックフレーム数を1000コマ、露光時間を 0.5ms、ゲインを100に固定してセンサー温度の異なるフラットを比べてみました。また、近い温度で作成したダークを減算したものも確認しています。

フラットは自然に温度が上昇する流れで撮ったので温度差は8℃程度ですが、ノイズパターンに顕著な変化は見られません。やはり中間輝度のピクセルの輝度のゆらぎを除けば同じパターンのようです。

リンク先には温度違いの画像の他に、比較用にほぼ同じ条件で撮ったダークを wavelet 処理した「dark 42.1℃ (stretched)」*2 と、ダークに輝度 123/256 のグレー画像を加算してから wavelet 処理した「dark 42.1℃ + 123/256」と、「42.3℃」からダーク減算してから wavelet 処理した「42.3℃ - dark 42.1℃」の3つの画像を追加してあります。

こうして見るとフラット画像のノイズパターンにはダークノイズ(というか、露光時間が非常に短いのでほぼほぼバイアスノイズ)はほとんど寄与していないように見えます。ダークフレームのノイズの輝度は小さく、そのパターンもフラット画像のノイズとほとんど相関していません。

ASI290MM のダークの特性

念のためダークフレームについても露光時間やゲイン毎のノイズの出方を確認してみました。

露光時間については露光時間を伸ばすとザラザラしたノイズが激減します。さらに伸ばすとホットピクセルが目立つようになりますが、本調査が問題にしているようなスケールのノイズは消えています。

ゲインについてはゲイン0と600以外はノイズパターンはあまり変わりません。ゲイン0では100〜400での中間輝度ピクセルの輝度が上がって全体的なザラつきが増える感じです。ゲイン600は中間輝度ピクセルだった部分の輝度や輝度がさらにアップして元のパターンを上書きしている感じになっています。

妥当な wavelet パラメータの探索

フラットを original で処理した際に出るノイズが目立たないような wavelet パラメータを試行錯誤して探索しました。地上風景の画像に適用して不自然にならないかもチェックしました。

探し当てたパラメータがこちら。

https://rna.sakura.ne.jp/share/LWAIC-20240108/wavelet-params/wavelet-5-settings.png

rwv ファイル: Sun-FSQ-85EDP+2.5x-20230818-5-20231229.rwv

これをフラット(ゲイン100、0.5ms、45℃、1000コマ)に適用した画像がこちら。

https://rna.sakura.ne.jp/share/LWAIC-20240108/SkyFlat/wavelet-5-20231229-SkyFlat-ASI290MM-45C-1000frames.png

original のパラメータだとこうです。

https://rna.sakura.ne.jp/share/LWAIC-20240108/SkyFlat/wavelet-original-SkyFlat-ASI290MM-45C-1000frames.png

これを地上風景で比べてみます。

まず wavelet なしの画像。

https://rna.sakura.ne.jp/share/LWAIC-20240108/Landscape/15_16_24_l5_ap10666-wavelet-none.png

これを AutoStackert! 3 で 1000/3000 コマスタック(Surface モードで AP 自動配置)して、新しいパラメータで処理したものがこちら。

https://rna.sakura.ne.jp/share/LWAIC-20240108/Landscape/15_16_24_l5_ap10666-wavelet-5.png

original のパラメータで処理したものはこちら。

https://rna.sakura.ne.jp/share/LWAIC-20240108/Landscape/15_16_24_l5_ap10666-wavelet-original.png

いや、これはひどいですね… しかし、空に出ているノイズは元の太陽の画像のノイズとはスケールが違うように感じます。また、フラット画像と比べるとノイズのザラつきが若干和らいでいる気もします。

妥当な wavelet パラメータでの再処理

3411黒点群、3405黒点群、3404黒点群 (2023/8/18 10:32)(再処理)
3411黒点群、3405黒点群、3404黒点群 (2023/8/18 10:32)(再処理)
高橋 FSQ-85EDP (D85mm f450mm F5.3 屈折), 笠井FMC3枚玉2.5倍ショートバロー, バーダープラネタリウム アストロソーラーフィルターフィルム, ZWO UV/IR Cut Filter / Vixen SX2 / ZWO ASI290MM (Gain 100), SharpCap 4.0.9268.0, 露出 1/2000s x 1000/3000コマをスタック処理 / AutoStakkert!3 3.0.14, RegiStax 6.1.0.8, Lightroom Classic で画像処理

3403黒点群、3409黒点群 (2023/8/18 10:33)(再処理)
3403黒点群、3409黒点群 (2023/8/18 10:33)(再処理)
撮影データは同上

3404黒点群、3407黒点群 (2023/8/18 10:36)(再処理)
3404黒点群、3407黒点群 (2023/8/18 10:36)(再処理)
撮影データは同上

こちらの方が自然な仕上がりになっている気がします。黒点の構造も見やすくなっていて、解像が良くなっているようにも感じます。

前回失敗したモザイク撮影データの方ですが、アーティファクトが原因で繋がらないのなら今回はイケるかも?と思って試してみました。が、今回も MS ICE、Photomerge 共にダメでした。試しに手動でモザイク合成してみたのがこちら。

太陽 (2023/8/18 10:37-10:50)
太陽 (2023/8/18 10:37-10:50)
高橋 FSQ-85EDP (D85mm f450mm F5.3 屈折), 笠井FMC3枚玉2.5倍ショートバロー, バーダープラネタリウム アストロソーラーフィルターフィルム, ZWO UV/IR Cut Filter / Vixen SX2 / ZWO ASI290MM (Gain 100), SharpCap 4.0.9268.0, 露出 1/2000s x 1000/3000コマをスタック処理 x 12枚をモザイク合成 / AutoStakkert!3 3.0.14, RegiStax 6.1.0.8, Photoshop 2024, Lightroom Classic で画像処理

2箇所欠けているのはともかくとして、結構継ぎ目が目立ってしまっています。拡大して見るとわかりますが、単に輝度が揃ってないというだけでなく、粒状班に由来すると思われる表面の模様も綺麗に繋がっていないように見えます。やはり模様の変化が速すぎるのでしょうか?

考察1: 粒状班はアーティファクトだったのか?

さて、妥当な処理画像はできたのですが、original の処理で出ていた粒状班様の模様はフラットに浮いてくるようなノイズパターンによるアーティファクトだったのでしょうか?

waveletなし、新しいパラメータで処理したもの、original で処理したもの、フラットを original で処理したもの、の4枚を重ね合わせて2倍に拡大し、アニメーション GIF にしたものを見てみます(2.5秒毎にフレームが切り替わります)。

https://rna.sakura.ne.jp/share/LWAIC-20240108/Sun-20230818/10_33_09_l4_ap880-crop-s-animation.gif

よく見ると original の粒状班様の模様は妥当に処理した画像でも見えている模様と無相関なパターンではなく、元々の模様のパターンとよく相関しているように見えます。一方で original のパターンとフラットのノイズパターンとはノイズのスケールも異なるようで相関していないように見えます。

なので、これは元々疑っていたようなアーティファクトではなく、単なる強調のし過ぎなのではないかと思います。

考察2: フラットのノイズは何に由来するのか?

幸い8月18日の太陽の画像にはフラットを wavelet 処理すると浮いてくるノイズの影響はなかったようですが、フラットには何らかのノイズがあり、強い wavelet 処理で強調されてしまうようです。このノイズは何に由来するのでしょうか?

最初に考えたのがダークノイズまたはバイアスノイズですが、以下の観察結果から考えると、それらのノイズではフラットのノイズパターンは説明できないようです。

  • ダークフレームのノイズパターンはフラットフレームのノイズパターンとほとんど一致しないように見える。
  • フラットフレームに対してダーク減算を行ってもフラットフレームのノイズパターンに大きな変化は見られない(元のパターンの特徴がはっきり残っている)。
  • ダークフレームのノイズは露光時間を伸ばすと激減するが、フラットフレームのノイズは露光時間を伸ばしても減らないしノイズパターンもほとんど変化しない。

では、フラットの光源から届いた光子の数のバラつきによるショットノイズはどうでしょう?しかしこれもなさそうです。なぜならフラットフレームのノイズパターンは何度撮ってもほとんど変わらないからです。このことは、フラットフレームのノイズがセンサー上の位置に対応する何らかの特性に基づくノイズであることを示唆します。

センサー外の光学エレメント(保護ガラス等を含む)のゴミや気泡や透過率のムラ等にしてはノイズの空間周波数が高すぎます。ノイズパターンはほぼ1ピクセル単位で輝度が大きく異なるのです。

となると、これは個々のピクセル毎の何らかの特性に基づくノイズだと考えられます。モノクロCMOSセンサーにはオンチップフィルターはありませんので、考えられそうなのは、ピクセル毎の感度のバラつきぐらいでしょうか?そのような特性について知見がないのでよくわからないのですが、正直言って他に思い当たるものがありません。

ということて、ノイズの由来についてはまだ謎なのですが、少なくともダークノイズ、バイアスノイズ、ショットノイズ、光学系の何か、という線はなさそうで、消去法で考えるとピクセル毎の感度のバラつきなのではないかと思うのですが、他に消去できていない何かがある可能性もあるので、結論できない、というのが現在の状況です。

*1:ノイズでザラザラした画像なので JPEG 圧縮の影響を避けるために PNG 形式の画像を貼ってあります。

*2:stretched というのは RegiStax 6 はピーク輝度の低い画像(ピーク輝度が50%以下?)を読み込むと自動的にストレッチ(おそらくリニアな変換)してしまうからです。何故かストレッチをしないオプションが効きません。ダーク単体の wavelet 処理では都合が良いのでそのままにしてありますが、フラットの輝度に合わせる画像でピーク輝度が足りない場合はクロップエリア外に白い点を描いた画像を処理しています。