★長文なので先に結論を冷却CMOSカメラを用いた星雲撮影において色んなノイズに対して孤独な戦いを挑んできたわけですが、今までどうしても退治できなかったノイズ「突発性ホットピクセル」を殲滅する新たなコンポジット法『コスミカットコンポジット』の開発に成功しました♪
同等の効果はシグマクリップですでに実現済みですが、そのロジックから膨大な演算時間とメモリ消費量が(あぷらなーと的には)問題でした。今回の『コスミカットコンポジット法』は数十コマの処理でもほんの数秒で完了するほど高速で、何百コマ処理する場合でもほとんどメモリを消費しません。しかも、その作業は「馬鹿にしているのか?」と思われるほど簡単です。
★ノイズ戦の振り返り
冷却CMOSカメラは非常に便利なカメラですが、それでも色んなノイズには悩まされます。
『コスミカットコンポジット法』の具体的なロジックを明かす前に、あぷらなーと邪道流のノイズ処理の流れを振り返ってみましょう。
もちろん、これまでの流れをご存じの方はサクッと飛ばし読みして大丈夫です♪
★その①:ショットノイズの殲滅
光というものは、なかなか厄介なもので、粒子性と波動性を併せ持つことが量子力学で示されています。
そのうち、粒子性の影響により、たとえば12cmアクロマートSE120+OⅢナロー+ASI1600MM-Coolで30秒露光した1コマ画像だと画像全体がザラザラになってしまいます。
例えるなら、パラパラとまばらに降ってくる雨粒によって、コンクリートの床の上に斑点ができるようなもので、こればかりはいくらセンサーの性能が向上しても改善しようがありません。いわゆる「高感度ノイズ」とされているこのノイズは、カメラのせいではなく『実際にまばらにしか光子がヒットしていない』からだと解釈できます。このように光量不足から生じるノイズを「光子ショットノイズ」といいます。
撮影された画像がザラザラになっている原因が、本当に到来光子のバラツキなのかを検証ごっこするため、天体の等級から算出した光子の到来揺らぎを実写画像のノイズと比較してみたところ、オーダーレベルでの一致を見ました。
この検証ごっこにより、短時間露光1コマで生じるザラザラノイズは「光子ショットノイズ」であると判断しました。
要するに沢山の光子をピクセル内に取り込むしか無いわけですから、「光子ショットノイズ」を根本的に解決するには、3つの方法が考えられます。
1:露光時間を伸ばす
2:明るい光学系を用いる
3:ピクセルピッチが大きなカメラを用いる
それらが不可能(もしくは嫌い)な場合の便法としては「加算平均コンポジット」が有効です。
理想的な条件下では、コンポジット枚数をN枚にするとショットノイズが√N分の1に軽減されるとされています。初等的な統計論に従えばごく当然のことなのですが、本当にそうなっているのかを実写画像で解析ごっこしてみると、枚数があまりに多くなると(リードノイズやダークノイズなど、他の要因が効いてきて)法則性が崩れるものの、ある程度の妥当性が示唆されました。
実際に1コマ画像と64コマコンポジット画像を比較してみると、下記のように劇的なショットノイズ軽減効果が見られます。
※左:1コマ画像 右:64コマコンポジット (SE120+OⅢナロー+ASI1600MM-Cool -10℃ ゲイン300 露光30秒)
しかし、コンポジット後の画像をよく見ると、ショットノイズとは別のノイズが目立ってきます。

上記の黄色でマークした箇所に見られる
白いニョロニョロしたものがそれです。また注意深く見るとそれ以外にも画面全体に斜めに走る白っぽいノイズ
『白い縮緬ノイズ』が多数認められます。これらは、
いわゆるホットピクセルによる輝点ノイズが原因で、一般にダークノイズと呼ばれている物です。
★その②:ダークノイズの殲滅
一般的に、冷却CMOSカメラは氷点下までセンサーを冷却することにより、相当にダークノイズが軽減できますが
それでも、星雲を炙り出そうとすると、無視できないほどの輝点ノイズが生じてしまいます。
それを軽減するために一般的に用いられているのが「ダーク減算」です。
対称天体を撮影したのと同等の設定で暗闇を撮影したものをダークファイルと呼びますが、ライトフレーム(天体を撮影した生画像)からダークフレームを減算することで、相当なノイズ軽減が可能となります。
実際に、先ほどの画像に対してダーク減算を行ってみましょう。

左がコンポジットしただけ、右はコンポジット前にダークフレーム(120コマ)を減算したものです。左の画像に見られる『白い縮緬ノイズ』が撲滅されたことが分かります。
なお、F値の暗い望遠鏡で短時間露光した場合など、条件によりダーク減算が効かないケースがあることを発見しましたが、これは(ステライメージなどの)画像処理ソフト側の仕様として、減算時のマイナス値がカットされているために正しい平均値が得られないことに起因することを突き止めました。その場合の対処法として、下記の記事で紹介している『手動ダーク減算法』を開発しました。
さて、ダーク減算により『白い縮緬ノイズ』が解消したと思われた画像ですが、よく見ると今度は『黒い縮緬ノイズ』が存在することに気付きます。

これはカメラ側に存在する
クールピクセルの影響です。
★その③:クールピクセルの殲滅
ASI1600MM-Coolは大好きな冷却CMOSカメラなのですが、個体により大量のクールピクセルが存在するという弱点があります。
たとえば今回撮影に用いた『ASI1600MM-Cool1号機』は、下記のように位置合わせ無しコンポジットすると、クールピクセルがウジャウジャと存在することが分かります。
『黒い縮緬ノイズ』は、これらのクールピクセルが天体の位置合わせ作業により流れて生じた像だと解釈できます。詳細に調べてみたところ、このクールピクセルには撮影輝度との線形性が保たれておらず、ダーク減算はもちろんのこと、フラット除算でも回避不能であることが判明しました。また、ライトフレーム中に存在するショットノイズの影響でステライメージのクール除去フィルタなどの演算も効きません。そこで、
クールピクセルの影響を回避するための処理法『クールファイル補正法』を編み出しました。
今回のダーク減算後の画像に対し、『クールファイル補正法』を施してみると、下記のように『黒い縮緬ノイズ』が解消したことが分かります。

左がダーク減算後にコンポジットしたもの。右はダーク減算後に『クールファイル補正法』を実行した後にコンポジットしたものです。
★その④:それでも消せないノイズ?
このように、独自の視点で色々なノイズと戦ってきた訳ですが、どうしても消しきれないノイズが残っていました。それが『突発的ホットピクセル』です。
今回の画像をよく見ると、下記のように極めて不快な白いノイズがあることに気付きます。

その形状がガイドエラーのベクトルと全く異なることから、随分と悩んできたのですが、
自作霧箱を用いた実験などを通じて、どうやら
自然放射線の荷電粒子がセンサー面をダイレクトヒットした影響ではないかと推測しました。
特に、自然放射線のうち、高エネルギーを有する二次宇宙線(地球に入射してきた宇宙線粒子が大気の原子核と相互作用して生じた二次粒子のこと)の到来頻度をプロトン線のエネルギースペクトルからザックリと計算してみると、およそ30秒に1粒程度の頻度でセンサー面をヒットするオーダーであることが分かりました。(ごめんなさい。この辺はかつての専門分野だったのですが、すでに脳みそがポンコツになっているので詳細な計算過程を晒す自信がありません。)
次に実際に撮像センサーが荷電粒子に『感光』するのかどうかをトリウムレンズを線源として実験してみたところ、下記のように統計的に充分有意なレベルで「感光する」という結論を得ました。
また、実際に30秒間隔で撮像したダークフレームを冷却CMOSカメラを含む13種類のカメラについて数千コマほど解析してみた結果、下記のように通常のノイズと放射線ヒットによるノイズを弁別することに成功しました。
要するに、撮像センサーのピクセルを1つ1つ時系列毎に観察したとき、揺らぎの程度を逸脱する極めて高い輝度を吐いた場合、それが放射線ヒットであるらしいという結論に至りました。

上記のように、
赤いセルで示したデータが突発的なホットピクセルで、同一のピクセルにおいては一度しか生じていないことが分かります。
そうです。この赤いデータだけを排除すれば、この不快なノイズは抹殺できるのです。
ここまで読まれた方、お疲れ様です。
★★ここからが本題です★★
一般的には「突発的に生じる高輝度データ」を排除するには、シグマクリップが用いられます。
たとえば、放射線ヒットを含む10コマのデータの一部を時系列で表示した物が下記の表です。

左右はピクセルのNo、上下はフレームNoを示します。赤色で記したデータが放射線ヒットに起因すると思われる異常値です。
これを各ピクセルの平均輝度と標準偏差を元に、どれだけ正常値から乖離しているかをしめしたのが、下記の表になります。

さきほどの「排除したいデータ」は全て3シグマの乖離値を持っていることが分かりました。(あくまでも10コマでの統計を行った場合です)
そこで、3シグマ以上の乖離値を弾くようにコンポジットすると異常値が排除されて、ノイズが消えます。これがシグマクリップです。
ところが、数十コマ以上に及ぶ大量の撮像データをシグマクリップしようとすると、膨大な演算時間と大量のメモリを消費します。そこで、放射線ヒットの頻度が低い特性から「特定の乖離値のデータを弾く」のではなく「無条件で最大輝度値を1つ捨てる」という方法を考えました。数千コマ以上におよぶ膨大なテストデータを解析した結果、このロジックで充分にすべての放射線ヒットを排除できることが判明したからです。
問題は、最大値を1つカットし残りのデータの加算平均を取るという演算も(シグマクリップほどではないにしろ)相当にメモリを消費する重たい処理になってしまうことです。なんとかして、最大値を1個捨てて平均値を高速演算できないものでしょうか??
★『コスミカットコンポジット法』
苦心の末、閃いたのは下記の処理です。(あまりにも簡単なので、あきれないでくださいね)
それは、ダーク減算とクールファイル補正法を実行した後のライトフレームについて、
①ライトフレームを位置合わせあり加算コンポジットし、Aとする
※加算平均ではなく加算です!(重要)
②Aとは別にライトフレームを位置合わせあり比較明コンポジットし、Bとする
③AからBを減算する
たった、それだけ!!
では、実際にやってみましょう。
①ライトフレーム64コマを位置合わせ加算コンポジットします

当然、真っ白けになりますが、ステライメージは64bitの演算空間を持つので大丈夫です。ちゃんと写ってます。
②ライトフレーム64コマを位置合わせあり比較明コンポジットします。
③ ①から②を減算コンポジットします

相変わらず真っ白けに見えますが、大丈夫です。これで放射線ヒットは全て消えました。
④レベル調整します。
では『コスミカット法』の有無を比較してみましょう。
すると・・・・
ででん!!
※左:ダーク減算&クールファイル補正法のみ 右:『コスミカット法』を付加
※左:ダーク減算&クールファイル補正法のみ 右:『コスミカット法』を付加
64コマの処理にかかる時間、わずかに10秒ほど!!
シグマクリップの100倍~数百倍は高速!!
ついでにメモリ消費ほとんど無し(3コマ分をロードする容量だけ)
★なぜこの演算で最大値カットになるの?
ええ、やっていることは単に最大値カットです。ただし、これを各ピクセル毎に行うには通常かなりのメモリを消費します。
念のため、何が起こっているのかを見てみましょう。
1:演算前の状態
2:これを加算コンポジットすると
※上から順に10コマのうちどこまでコンポジットしたかを示します。
3:比較明コンポジットすると

※上から順に10コマのうちどこまでコンポジットしたかを示します。
このように、1コマずつ比較明演算をおこなうことで、自動的に最大値が残っていきます。処理済みの画像は順次メモリから開放されるためメモリを食わないというカラクリです。
4:加算値から比較明値を減算すると

※上下はコンポジットに用いた枚数を示します
このように、処理枚数が何枚の場合でも、異常値が綺麗にカットされたことが分かります。
『コスミカットコンポジット法』とシグマクリップのそれぞれについて、どれだけ本来の輝度値を求められたのかをまとめると下記のようになります。

厳密には『コスミカットコンポジット法』により、放射線がヒットしなかった正常ピクセルについても1コマ分だけデータが消えるので、本来の平均値よりも少しだけ暗い値になりますが、実際にはレベル調整でその影響は補正されるので実害はないでしょう。
ふはははは。
ノイズ成敗成就のための「最後の1ピース」ついに手に入れたわ
★★★お約束★★★
①『縮緬ノイズ』『クールファイル補正法』『手動ダーク減算法』『コスミカットコンポジット法』は、単にあぷらなーとの造語です。
②ASI1600MMシリーズのクールピクセル問題は、現行製品では解消しているとのこと情報があります
③各種の『考察ごっこ』や『検証ごっこ』は、素人であるあぷらなーと独自の見解ですので、信頼性は保証できません。
④ステライメージのクール除去フィルタがクールピクセル除去に効かないのはショットノイズが邪魔をするためですが、ステライメージのホット除去フィルタが放射線ヒットの除去に効かないのは、ホットピクセルと異なり放射線ヒットは同時に複数のピクセルが一斉に異常値を吐くからです。(要するにノイズ像が「点」ではなく「線」や「面」のため、弁別できない)言い換えると、放射線ヒットによるノイズは「空間ノイズ」ではなく「時間ノイズ」の一種に該当するからとも解釈できます。