ほしぞloveログ

天体観測始めました。

カテゴリ: 画像処理

友人が撮影した北アメリカ星雲の画像を触る機会がありました。画像処理は初心者で、有料のソフトは使っていないとのことです。あらかじめ画像をダウンロードさせてもらって、事前に処理しておいて、その結果を元に時間が合う時にZoomで繋いで画面共有しながら画像処理について検討します。

私としてはいい機会だったので、普段とは違う画像処理を試しました。というわけで、今回のブログ記事のお題は「全て無料の画像処理ソフトで進めた場合、有料のものにどこまで迫れるか」としてみます。

といっても、忘備録がわりの自分のメモ用の側面が強いので、あまり初心者向けの記事にはなっていません。需要があるとしたら、普段PixInsightとか使っていて、他の無料ソフトを試してみようかとか思うような、ちょっと珍しい人向けです。


有料/無料画像処理ソフト

ダウンロードした画像を、まず最初はいつも通りPixInsightとPhotoshopで進めます。撮影されたファイルはライトファイルとダークファイルです。フラットファイル、バイアスファイルはなしです。
  1. WBPPでダーク補正とスタック
  2. ABEの4次でカブリ取り
  3. SPCCで色合わせ
  4. BXTで星を小さくし
  5. GHSでストレッチ
  6. NXTでノイズ除去
  7. StarNetで恒星と背景を分離
  8. その後Photoshopに送り、仕上げ
となります。この流れはいつものことなので、詳しい処理内容は省きます。できた画像は以下のようになります。

masterLight_60_00s_ABE_BXTc_SPCC_BXT_GHSx2_NXT3_cut

一方、無料ソフトに制限すると、最近の状況を見るに、以下の選択肢が現実的ではないかとでは思っています。
  1. ダーク補正してスタックするのにSiril
  2. 同じくSiri上で色合わせとDeconvolution
  3. GraXpertに移ってフラット化とストレッチとdenoise
  4. StarNetで恒星と背景を分離
  5. その後GIMPに移って仕上げ
できた画像は以下のとおりです。

starless_result_PCC_deconv_stretched_GraXpert_cut

鮮やかさは誤差の範囲として、恒星の大きさ、背景のノイズ、明るいところの細かい構造などが大きな違いでしょうか。淡いところの構造は、無料の方が出ているかと思います。こうやってみると、有料ソフトと比べても、全然遜色なく、十分処理できていると思います。

各ソフトの詳しい操作などは他の解説にゆずるとして、ポイントのみ書いておきます。


まずはSiril



このブログではこれまでSirilについて述べたことはほとんどないのですが、最近のSirilはかなり使えるようになっていると思います。一時期試しに少し使ったことがあるのですが、結構頻繁に落ちて不安定なイメージでした。でも今は、少なくとも落ちるようなことはまずなく、普通に処理ができます。この「普通に」というのは結構重要です。まずストレスがなくなりますし、特に初心者にとっては自分の操作がダメなのかソフトのトラブルなのかの見分けがつきにくいと思うので、普通に安定に動くというのは目立たないけどとても大切なのかと思います。

いつもはPixInsightなので、Sirilの操作に慣れてはいなくてとまどうことはありましたが、検索すると解説記事などすぐに見つかり、その通りに進めれば簡単にスタックまで終えることができると思います。気がついたことのみ書いておきます。
  • 最初にワーキングディレクトリを決めること。画面左上の家マークのアイコンを押して指定してやることでしていできます。処理画像のたびに指定してやる必要があります。
  • 指定したホームディレクトリの下に、lights、darks、flats、biasesとフォルダを作って、撮影したRAWファイルをその中に分類して入れます。フォルダ名の複数のsとか、きちんと指定しないと「ファイルがみつからない」とかのエラーになってうまく処理されません。
  • スタックをするためには、左上の「スクリプト」タブを押して、処理したいプロセスを選びます。今回はライトとダークファイルのみだったので、それに合わせたスクリプトがありませんでした。実際スクリプトを進めようとするとヘルプが出てきますが、英語なのでちょっと面倒かもしれません。とりあえず書いてあることはhttps://gitlab.com/free-astro/siril-scriptsを開いて、必要なスクリプトをダウンロードせよということです。prepcocessingを開き、今回必要なフラット補正を省いた処理(バイアス補正も無いようです)「OSC_Preprocessing_WithoutFlat.ssf」を選び、ダウンロードします。
  • 問題は、これのスクリプトファイルをどこに置くかです。Windows版は説明が普通にすぐ見つかるのですが、Mac版の場合どこに置けばいいか迷いました。結局、Sirilのメニューの設定からスクリプトタブを選び、そこに書かれているフォルダ内にダウンロードしたスクリプトを置いてやれば認識されることがわかりました。ただ、そこに書かれているフォルダがそもそも存在していないことが多いので、改めて自分でフォルダを作ってやる必要があります。
  • スクリプトが認識されたら、左上の「スクリプト」タブを押して、今回落としたプロセスを選びます。すると処理が始まり、スタックされた画像が保存されます。
Sirilは、PixInsightに比べると指定できるオプションは圧倒的に少ないですが、むしろPixInsightの設定項目は多すぎて使いこなせていない方も多いと思います。初心者ならあえて迷うことがないSirilにするというのはありだと思います。PixInsightの方が細かい設定ができるので、いつかSiriで処理結果に不満が出てきたなら、PixInsightに移行することを考えるという道を辿ったほうが迷いが少ないかもしれません。

スタックまでに関していえば、有料のPixInsightだろうがステライメージだろうが、無料のSirilだろうがもっとシンプルなDSSだろが、結果に大きな違いはあまり出ない気がします。撮影ファイルの条件によっては、色々トリッキーなオプションがあるPIが有利とかはあるかもしれませんが、そこで出てくるような差があるなら撮影条件を見直してきちんとしたRAW画像を得る方が真っ当な気がします。なので、個人的な意見としては、スタックまでは有料無料の差はそこまで無いのではないかというのが今回の感想です。

違いが出るのはスタック後のリニア処理でしょうか。そもそもリニア処理というのも元々PI用語と言ってしまっていいのかもしれません。PixInsightでは例えば色合わせは、PCC、SPCCなどと進化してきました。Sirilにも同様のPCC (Photometric Color Calibration)があり、その際に恒星の認識できちんと位置合わせもします。なのでコンセプトはどんどんPIに近くなっていると言っていいのでしょう。ただ、やはり細かい設定とか、SPCCで基準フィルターまで考慮するとかなど、PIにまだ一日の長があるかと思いました。色合わせした結果だけ見ると、PIのPCCとSPCCでもそこまで差が出ないように、Sirilでも特に不満はありません。むしろ無料でここまでできることを素直に評価すべきだと思います。

決定的に違うのはBXT(BlurXTerminatot)の存在でしょう。収差、四隅のズレ、ピンボケ、ガイド流れなど、BXT以前では鏡筒や赤道儀の制御など、ハードウェアで改善するしかなかった高度な調整を、ソフトで相当なレベルまで補正してしまいます。また、星雲本体などの細部出しにもかなり有用です。特に入門用撮影鏡筒と高性能撮影鏡筒との差をかなり縮めてくれるので、初心者にむしろ使って欲しいところなのですが、今のところBXTはPIの上でしか動かすことができず、無料ソフトでは到底太刀打ちできません。BXTが単体で動くようになればいいのですが、BXTの為だけにPIを導入するのもアリなレベルかと思います。ただしPIと合わせると値段が...。


GraXpert

次のフラット化ソフトですが、有料ソフトでも未だ決定打はないのかと思っています。光学的なフラット補正は当然するのですが、それでも不十分な場合が多くて、 淡いところを引き出し切るにはさらにソフト的にフラット化をするのが必須になっています。

PixInsightだと、ABE、DBE、GC(GradientCorrectiopn)など、選択肢はそこそこあります。単純なフラット化は何を使ってもそこそこうまくいくのですが、画面一面分子雲で埋もれているような場合には、複数のフラット化処理をしたり微調整をすることなども含めて、かなり手間です。また、PI以外では有料ソフトも含めてあまりフラット化に関する補正はあまり開発されていなくて、昔からPhotoshopなどを利用して画像全体をぼかして大まかな勾配を作り出しそれで補正するなどの手がとられてきました。PixInsight無しできちんとフラット化しようとすると、かなり手間がかかる割に、淡いところを引き出し切るのにはまだまだ不十分な印象です。


ここで出てくる、ある意味決定打に近いものが無料のGraXpertです。


GraXertについては以前CP+の時に解説しました。

よかったら、リンク先の動画と共に以下お読みください。

GraXpertを使うと、あまりに簡単にフラット化できてしまって、かつ設定項目が少なくて細かい調整ができないので、私は普段はあまり使わないのですが、今回比較してみてびっくりしました。PIでかなり気合を入れて調整をし無い限り、淡い部分に関してはGraXpertが圧勝です。私は基本的GraXpertのエンジンにはKrigingを使います。他も試しましたが、少し時間はかかってもこれが一番良い結果を生むことが多いです。PixInsightで今検討されている、バックグラウンドまで参照データと比較するMARS機能が出たらまたわかりませんが、もう相当レベルまでGraXpertだけで良い気がしました。これで不満が出るならPixInsigtの各ツールを駆使するのが次の手ですが、はるかに時間もかかり結果を出すのも結構大変だと思います。

ストレッチに関しても未だに決定打はないと思っていて、PixInsightではHistgramTransformation、ArcsinhStretch、MaskedStrerchなどがあり、最近はGHS (GeneralizedHyperbolicStrertch)がでてこれが決定打かと言われています。またPixInsightのユーザーが作成しているスクリプトレベルでは、iHDRという輝度差が激しい天体に適用できるものが提供されたりもしています。でも選択肢がこれだけあるということは、ある意味決定打になっていないということでもあるわけです。GHSはかなりいいですが、操作がちょっと複雑で、初心者がいきなりこれを触るとあまりうまくいかないのではないかと思います。

ステライメージはほぼデジタル現像一択ですね。こちらはある意味迷うことはほとんどないのと、全て日本語で操作できるので初心者にも優しいのかもしれません。ただ、数学的にはデジタル現像はGHSのかなり限られた条件下での変換ということが蒼月城さんによって指摘されていますし、(私はまだ使っていませんが) SirilにもGHSがあることを考えると、今の時代有料ソフトならではのストレッチ方法をもっと提案して欲しいとも思ってしまいます。

そういう意味でGraXpertのストレッチを考えてみます。選択肢はどれくらいあるかというと、大まかなところではどれくらい適用するかの「強さ」くらいしかないので、これまたとんでもなく楽です。無料である程度のストレッチが簡単にできるということは、やはり特筆すべきです。というか、GraXpertはフラット化とストレッチと、次のDenoiseが3つセットになっているようなものなので、一緒にストレッチも使わない手はありません。でもGraXpertのストレッチが決定打というわけでは全然ありません。有料、無料ソフトともに、将来もっと発展するであろう部分の一つだと思います。

ノイズ除去も無料ソフトだけだとかなり限られてしまいます。BXTに続いて有料と無料で差が出るところでしょうか。有料での決定打はNXT(Noise XTerminator)かと思います。単なるノイズ除去ソフトやプラグインはAI対応も含めて数多く存在しますが、鋭い恒星を多数含む天体画像処理に使えるものは本当に限られています。一般のものでは遠目で見ると一見ノイズが小さくなるように見えるのですが、その弊害として恒星の形が大きく崩れることが多くて、ほとんどが使い物になりません。PIでも昔ながらのノイズ除去ツールは用意されていますが、今時のAIを考慮したノイズ除去ツールに比べると、少し見劣りしてしまいます。

GraXpertのDenoiseはそんな中でも数少ない、恒星とともに使えるノイズ除去です。しかも無料です。効果はNTXと比べると多少劣る感はありますが、そこそこ十分なレベルかと思います。少なくともGraXpertを使うついでなので、無料の中での選択肢を考えると、Denoise機能を使わない手はないと思います。

ノイズ除去ですが、次の恒星と背景と分離するツール、無料の場合は「StarNet」を使うと状況が一変します。恒星を分離して背景だけにすれば、あとは恒星の崩れを気にしなくて良くなるので、一般的なノイズ除去ツールを使いたい放題になります。ただ、言うまでも無いですが、過剰なAIツールの使用や、例えクラシカルなノイズ除去ツールだとしても、過度なパラメータなどは偽の構造や線、見た目に不自然な模様などを作りかねないので、程々に使うのがいいのかと思います。


StarNet



恒星と背景を分離するツールとしては、有料がSXT(StarXTerminator)、無料だとStarNet V2があります。私はSXTは試用で使っただけです。結果だけ見るとStarNetとそこまでの差はなかったので、無料で十分だと言う判断でした。でも、SXTの方が細かいところでいい結果だという意見も結構あるようなのと、そこまで高いソフトではなくて買い切りでアップデートもできるので、最初からSXTという手もありかもしれません。ただSXTは、PixInsightからか、Photoshop、Affinity Photoからしか動かないので、動かすための環境も有料になります。

それよりも、メンテナンス環境に無料と有料の差がかなりあります。StarNetは使うのが結構面倒です。Macだとはコマンドライン版しかないので、毎回ターミナルから走らせてコマンドを打って走らせる必要用があります。PixInsightを使うと、PixInsightないからStarNetを呼び出すことができるのである意味GUIになるのですが、PixInsightの大型アップデートのたびにインストールし直しに近い状態でセットアップする必要があります。Sirilからも呼び出せるので、こちらもGUIのように扱うことができます。コマンドライン版のStarNetをきちんと設定したとに、Sirilの設定の
siril_starnet
で、StarNetの実行ファイルを設定し、Sirilの「画像処理」->「Star Processing」->「StarNet Star Removal」から実行します。

元々のStarNetは天体画像ファイルから背景のみを作り出すという機能しかありません。PixInsightを使うとそれをPixInsight側で拡張して、恒星のみの画像ファイルも同時に作ってくれます。Sirilでも恒星画像も作ってくれるオプション(Generate star mask)があるので、こちらも便利です。

一方、Windows版のStarNetにはGUI版があるようです。私はWindows版は使ったことがないのですが、GUI単体で動くので便利なようです。ただし、このGUIは背景画像は作ってくれるのですが、恒星のみの画像を作ってくれません。しかもSirilから呼び出すと、このGUI版が直接呼び出されるだけで、やはり恒星のみの画像を作ることができません。おそらくWindowsでもコマンドライン版をインストールして、それをSirilから呼び出すようにすれば、恒星のみの画像を作るオプションが出てくると思われますが、私は今回は試せていません。

と、StarNetは結構面倒だったりします。この面倒さを回避するためだけに有料のSXTを使うというので、十分元を取ることができる気がします。ただ繰り返しになりますが、呼び出す環境も有料ソフトからになるので、ある程度の出費を覚悟する必要があります。


GIMPで仕上げ

恒星と背景を分離したら、あとは最後の仕上げや微調整です。個性を出すところでもあります。

有料だと仕上げまでPixInsightでやってしまう方も一定数いるかと思いますが、それでも最後はレタッチソフトを使うという方の方がまだ多いでしょう。Sirilだけで終えることができるかどうかはまだ私は試していませんが、そういった強者もすでにいるのかと思います。

レタッチソフトの有料版は、Photoshopがメジャーで、最近Affinity Photoが天体用にも話題になっています。Affinity Photoは結構良いという評判だったので、私も少し試用してから、締め切りが近くなった半額セールに負けて買ってしまいました。

Affinity PhotoはPhotoshopと違い買い切りでアップデートまでできるので、値段的にはかなり安くなります。機能的にもPhotoshopにかなり迫ることができますが、やはりこなれ具合など、まだPhotoshopの方がいい印象です。ただ個人の慣れもあるので、値段も考えると評価としてはトントンでしょうか。

Affinity Photoの方がいいところもあります。Photoshopは画像の処理過程の履歴を永続的に残すことができなくて、処理している最中はまだ元に戻れるのですが、ファイルを一旦閉じてしまうと、それまでにやって履歴は全てクリアされてしまいます。ファイルの中に記録するような手段は調べた限りないようです。どうしても作業を残したい時はレイヤーを多数使うなど、ユーザー側で何か工夫する必要がありますが、全部を残すのは現実的でないので、履歴は基本残せないと言ってしまっていいでしょう。一方、Affinity Photoはオプションで履歴を残すことができます。わざわざオプションで指定しなくてはダメですが、それでも手段があるとないとでは大きく違います。Photoshop用のプラグインも、昔のもので使えないものもありましたが、手持ちで最新のものにアップデートしているものは全てAffinity Photoでも使えています。

すみません、この記事は無料ソフトの検証なのにちょっと脱線してしまいました。Photoshopに相当する無料ソフトはGIMP一択でしょうか。


基本的なことは問題なくできます。操作性が少し劣る印象ですが、これは慣れもあるので個人的な感想の範疇かもしれません。それでもやはり有料ものと比べると差があるという感想です。

明らかに不利なところは、ノイズ処理があまりに貧弱なことと、Photoshopのプラグインが使えないことでしょう。あと、領域選択もPhotoshopのほうがかなり高機能で、いろんな手段があります。星雲の構造を出したいとかで、選択方法が限られると少し差が出るかもしれません。

GIMPでも基本的なことはできるので、天体画像処理も凝ったことをしなければ大丈夫です。よく使う機能といえば、レベル補正、トーンカーブ、彩度調整などでしょうか。レイヤー機能もあるので、恒星と背景に分離した画像の再合成もレイヤーを使うと簡単に「リアルタイムで見ながら」調整できます。

またちょっと脱線になりますが、私が画像処理をPixInsightで閉じてしまわずにPhotoshopに持っていくのは、このレイヤー機能があるからです。例えばStarNetで分離した恒星と背景画像の合成は、PixInsightだとPixelMathなどを使いますが、その都度計算させて結果を確認する必要があり、リアルタイムで見ながら調整というのからは程遠いです。一方、PhotoshopやGIMPなど、レイヤーがあればその場で見ながらリアルタイムで調整ができます。このレイヤー機能での差がある限り、PixInsightだけで閉じて画像処理を終えることは当分ないと思います。その意味ではレイヤー機能があるGIMPも十分使えることになります。

GIMPには、Photoshopで便利なCameraRAWフィルターに相当するのがないのが痛いです。ストレッチする前のリニア処理では人によってあまり差が出ないと思うのですが、ノンリニア処理では好みを入れたりして人によって仕上がり具合も変わってくるのかと思います。そこにこのCameraRAWフィルターの各種便利な機能を使うことで、簡単に効果的に調整を効かせられるので、好みや個性を出しやすいのかと思います。便利な機能なので、その反面、簡単に客観性や一般性を失うこともあります。それでも趣味としてはやはり楽しいのが一番だと思うので、加減しながら自分の好みで仕上げるのがいいのかと思います。GIMPにはこれに相当する便利な機能はなく、基本操作の組み合わせで工夫することになり、よりテクニックが必要なので、初心者には少し辛くなるのかと思います。


Zoomでの画像処理の様子

実際のZoomでの画像処理検討会は、上のようなことを試しながら説明して進めていったのですが、今回は特にどんな点に関して注目したかを書いておこうと思います。


1. ピント関連

まずダウンロードした画像では、少しピントがずれていたために、恒星が多少大きくなってしまっていて、真ん中が少し抜けてしまっていました。これは事前画像処理で試したところ、BXTを通すことで劇的に改善したので、無料ソフトに限るとなかなか手がありません。やはり大原則は、撮影時にできるだけきちんとピントを合わせるのが大事なのかと思います。せっかくの機会なので、私がよくやっている手動でのピントの合わせ方を説明しました。といっても大したことは言ってなくて、
  1. ピントを合わせる時に、一旦恒星が最小になったところを通り抜けて、再び大きくなるまで移動すること。
  2. 最小になった位置からどれくら移動したかを、指先でタッチした感触は、つまみを触った回数を数えるなどして、量として覚えておくこと。
  3. その覚えた量の分だけ逆方向に戻ること。
  4. 最小を通り抜ける時に、最小時の恒星の大きさを覚えておいて、それと比較して大きくなっていないかを、最後合わせこむ。
などです。


2. ディザリング

ダーク補正でのホット/コールドピクセルの処理のあとが、一部黒い点になって残ってしまいました。縞ノイズはほぼ何も出ていなかったようなので、ガイドはかなりうまくいっていたようです。その一方、ディザリングをしなかったので、こういった欠損的なものを散らすことができなかったようです。ディザリングは縞ノイズや各種欠点をうまく散らしてくれる、天体写真撮影ではある意味もう必須と言っていいくらいの標準的な機能なのですが、その貢献度があまり目立たないために軽視されることがあります。ディザーがないと画像処理に際して思わぬところで困ったりして、しかも縞ノイズとか今回の欠損のように、画像処理だと補正しきれないことに繋がることが多いです。「次回以降はディザリングをした方がいい」とアドバイスしましたが、「今の赤道儀だと外部ディザー信号を入れることができなかったり、たとえ外部信号を入れれたとしても、ディザー中にガイドを止めることができない」とのことで、難しいとのことでした。


3. トーンカーブのアンカー

トーンカーブでアンカーの使い方を説明しました。背景の色バランスはグレーに保ったまま、例えば今回のHαの淡いところを出したい場合などです。
  1. トーンカーブを赤だけが調整できるようにRを選択します。
  2. トーンカーブの山のピークの左側の斜右上がりの直線上にいくつか、複数の点を打ちます。これがアンカーになります。
  3. アンカーは、入力と出力が同じになるように、ちょうど直線の上に打ちますが、ずれた場合は入出力が同じになるように数値を見ながら調整します。トーンカーブの明るいところをいじっても、背景(山のピークの左側)の明るさが変わらないように留めておくという意味で、アンカーというわけです。
  4. あとは山のピークの少し右側を持ち上げると、アンカーのおかげで背景の色バランスは変わらずに、淡い赤い部分だけを持ち上げることができます。
アンカーはトーンカーブの右側にも何点か打って、明るい部分が持ち上がりすぎて白飛びしないようにするなどしてもいいでしょう。


5. フィルターと青成分

これは使っている光害防止フィルターに依ると思うのですが、多少なりとも青成分があれば、好みによってはトーンカーブなどで青をあえて持ち上げることで、諧調豊かな北アメリカ星雲にすることもできるでしょう。ただ、今回は上で説明したアンカーを使って青を持ち上げても、見た目ほぼ何も変化がなかったので、青成分のヒストグラムを見てみましたが、山の右側より明るいところにほとんど青成分が含まれてませんでした。今回のフィルターは2波長に絞ったかなり強いものなので、「もう少し青成分を通す弱いフィルターでもいいのではないか」という提案をしました。


6. 撮影時間とノイズ

今回はマスク処理に関しては説明しませんでした。ちょっと高度なことと、私自身がSirilでうまくマスクを作る方法と、GIMPでマスクを簡単に扱う方法を、よく知らないからです。マスクに関しては次回以降の課題としました。

私が事前に有料ソフトで処理したものはマスク処理も含んでいる(PixInsightでマスクを作り、Photoshopで適用)ために、背景の淡い構造があるところのノイズを目立たなくする目的で、星雲本体にマスクをかけて、背景のみに結構強めのノイズ処理をしています。その一方、無料ソフトだけの場合はマスク処理はしていないので、背景のノイズ処理は大したことをしていません。でも両者を比べると、背景のノイズ処理はあまりしない方が自然に見えているので、無理にマスク処理とかしなかった方がよかったのかもしれません。

そう言った意味で、「淡いところのノイズを減らすためには撮影時間を伸ばすことが重要」という説明をしました。特に今回の鏡筒がFMA135ということで口径わずか3cmなので、口径を大きくすることも背景のノイズを改善することになるかと思います。


と、大きくはこれら6つのことを言ったかと思います。改善につながる余地があるところです。その他は基本的なことも含めて、すでにかなり勉強して理解していたので、検討会も順調に進み、19時半に初めて22時前くらいまでの2時間強で色々議論できたのかと思います。


まとめ

少し長くなったのでまとめます。
  • 無料ソフトに限った画像処理でも、かなり有料ソフトに迫ることができる。
  • 具体的には、スタックと色合わせまではSiril、フラット化とストレッチとノイズ除去はGraXpert、仕上げはGIMPなどが使える。
  • ただし、恒星の補正と背景の細部出しに有利なBXTは、有料ソフトであるがかなり強力で、無料ソフトの使用だけに限ってしまうと、BXTの有り無しで大きな差が出る。特に高価な機材を使う機会が限られている初心者にこそBXTを使ってもらうことで、機材や画像処理テクニックの差を縮めてもらいたい。
  • 恒星を含む天体画像専用のノイズ除去に関しては、有料の方が有利であるが、無料だとGraXpertが使える。恒星と背景を分離して背景のみに適用するなら、天体画像専用でない一般的なノイズ除去ソフトが使える。
まずは余分なお金を使わないで無料ソフトで画像処理を進めても、もう全然良い時代になっているのかと思います。最近はSirilとGraXpertがその牽引役なのでしょう。あとはBXT相当の無料版があれば...。

M104の画像処理も終わり、補足も含めてブログ記事も書き終えたと思って安心していました。


次に撮影したヘルクレス座銀河団の画像をチェックしていたら、なんとM104をさらにもう1日ぶん追加で撮影していたことに気づきました。その日のシンチレーションが悪ければ無視していいのですが、こういう時に限ってなぜか有意にいいのが撮れてしまっているんですよね。


まずは画像のチェック

SubframeSelectorで個々の画像のFWHMを見てみます。L画像を3日間撮影しているので、それぞれL1、L2、L3とします。前回までで、L1がFWHM = 13pixelくらい、L2は20pixelくらいで、L1にL2から特に悪いものを除いたものを画像処理に回しました。L2の内、特に悪いものは20pixelよりもさらに悪く、残ったいいものでも20pixel程度だったので、L1とは明らかに差があるものを混ぜて処理してしまいました。それでも、実際インテグレートした画像のFWHMを測っても、そこまで有意な落ちがなかったので良しと判断しました。

FWHMを順に見ていきます。まずはL1です。133枚あって、前回までの画像処理では全て使いました。ここでは後に見たL3の基準に合わせた判断をしてみていて、FWHMが12以上、もしくは星の数が35以下なら弾くと判断しています。赤のx印はダメだという判断で、撮影したL1の133枚のうち40枚が残るという判断です。この判断は後で使います。_
SS_L1

L2は酷いもので、上の判断に従えば全滅です。これでも前回はBlinkで見た目判断でダメなものはすでに捨てていて、その残りの56枚でこの結果です。
SS_L2

最後はL3です。新たに発掘された4月12日に撮影したものですが、FWHMだけ見ても9以下のものもあり、L1と比べても全然いいのがわかります。途中時間が経つと悪くなってしまっているので、FWHMが12以上、もしくは、星の数が35以下は使わないという判断をここでしました。FWHMが12という理由は、前回の主にL1のFWHMが13程度だったので、それよりもいいものを使おうということ、星の数は、飛び抜けて数が少ないものを捨てようという意図です。L1にも同様の判断をしたものが、上の図の結果というわけです。L3は全部で139枚撮影して、そのうち24枚除いた115枚を採用しています。
SS


L1とL3の画像で比較

L2は論外なので使わないとして、まずはL1を全て(赤のxは無視して)使った場合と、L3を基準内で使った場合を比較します。それぞれWBPPでインテグレートしてできたL画像に、ABEの4次とDBEをかけて、BXTのCorrect onlyをかけ、その後BXTの星の縮小を0.5、ハロは0、PSFはオートで、背景は1.0をかけます。2枚ともインテグレート後も全て同じ条件で処理しています。

できた2枚の画像を前回締めしたハッブルの画像とほぼ同じ位置で切り取り、重ねてGIF画像で切り替えて見えるようにしてみました。
L1

違いがわかりますでしょうか?ぱっと見どこが違うかわかりにくいかもしれませんが、じっと見てるとモヤっとしてるか、星になっているかなど、違いが見えてくると思います。恒星が大きく見えるのがL1、小さく見えるのがL3です。BXTを同様にかけても、出来上がりの恒星の大きさは元の恒星の大きさに依るということがまずわかります。

上の画像だとちょっとわかりにくかもしれないので、L1でBXTに拾われなくて、L3でBXTに拾われたと思われる恒星を拾ってみました。
L3_marked
もしかしたら取りこぼしているものもあるかもしれませんし、判断が難しいものもありましたが、とりあえず24個と少なくとも無視できないくらいの数の違いがあります。

これらは最終処理で見える星として生き残るものです。一方、モヤモヤしていてまだBXTで取りこぼしてしまっているものも多数あることもわかります。これらは最終処理では背景に埋もれてしまい、星として見えることはないですし、モヤモヤも背景をある程度明るくしないとわからないので、実質的には表には出てこないでしょう。それでも、どれだけシンチレーションがいい日に撮影したとしても、BXTを使う限り、その閾値の上下で星として生き残るか無視されてしまうかが決まってしまうのかという問題は、今のところ避けることはできないようです。かといって、BXTを使わなければ、さらに多くの星が星として成り立たずに背景に埋もれてしまうので、今の所BXTを使う方向でいくほうが有利なのかと思います。

いずれにせよシンチレーションでBXTの有効範囲が大きく変わり、シンチレーションがいいほどより多くの恒星を救えることがわかりました。

一方、銀河本体はというと、あまり目に見えては改善しているように見えませんが、それでも細かいところを見てみると少なくとも何か改善はあるように見えます。


L3画像に同基準のL1画像を加えてみる

次に興味があるのが、L1にL3と同じ採用基準でいいと判断した画像を、L3画像に加えてインテグレートしたものを考えてみます。せっかく撮影した画像をできるだけ使いたいというもったいない精神です。

枚数は元のL3が115枚で、同条件で採用されたL1が40枚です。枚数が(115 + 40) /  115 = 1.38倍に増えたので、S/Nは√1.38 = 1.16倍くらいよくなるはずです。

インテグレーション直後の画像でPIのScript -> Image Analysis -> SNRView (PI上にロードしてある画像のS/Nを一度に評価してくれる)比較してみると、L3のみのS/Nが41.24dB、L3+L1のS/Nが42.65dBでその差は1.41dB = 1.176倍になり、ほぼ枚数増加で期待されるS/Nの増加となっていることがわかります。

これで気を良くしたので、恒星の数も増えると期待して、改めてL3だけの画像と、L3+L1の画像を同様にGIFで比較してみます。
L3_vs_L1L3

こちらはさらに変化がわかりにくいですね。なのでこれも同様に、変化のあった恒星を丸で囲みました。非常に面白い結果です。まず、青丸がL3+L1でBXTに恒星として認識されずL3のみのときにBXTで認識されたと思われる恒星です。数を数えると12個もあります。黄色の丸は逆にL3+L1の方がBXTで救い取られている恒星ですが、こちらの方が数が圧倒的に少ないです。撮影枚数の少ないL3だけの方が、恒星に関してはより分解能が出ているということで、S/Nとは逆転現象が起きてしまっています。
L3_vs_L1L3_marked

ちなみに紫色の丸はL3とL3+L1で位置がずれてしまっているものです。BXTで何らかの認識はされたのですが、補正が必ずしもうまくいっていないということでしょうか。どちらの位置があっているかはわからないですが、そもそもたまたま両画像で星の一致しているからといって、必ずしもその位置が正しいかどうかはわかりません。元々相当暗くて淡くて広がってしまっている星です。シンチレーションで星の位置がぶれていたり、インテグレートする時に画像を歪ませていることもありするので、この結果だけでBXTに問題があるというのは早計でしょう。これらのことについては、別途きちんと定量的な評価をすべきかと思います。


S/Nと分解能の関係は?

さて、このS/Nと恒星の分解能について少し考えてみます。私は最初単純に枚数が多いL3+L1の方がS/Nもよくなり、分解能も良くなると思い込んでいました。S/Nは数値的にもほぼ理論に従いましたが、分解能に関してはL1を加えた枚数が多い方が悪くなってしまっているようです。

このことについては、ラッキーイメージ的な解釈である程度納得することができました。L3に加えたL1画像は、基準が同じといってもL3と比べたら、L3の中でもかなり悪い画像に相当するものなのかと思います。ここでいう悪いというのは、FWHMが12に近い大きなもので、星の数も少ない方という意味です。たとえ枚数が少なくても、いい画像のみを集めて使うラッキーイメージと似たことが起こったと思うと、S/N(明るい信号部分と暗いノイズ部分の比)は悪くても、明るいところの分解能は得をするということでしょうか。

こう考えると、S/Nと分解能は結構独立で、別個のパラメータと考えた方が良さそうです。今回はL3をFWHMが12以下で区切って使っていますが、銀河部分をメインに考えるとS/Nは十分取れているので、もっと枚数を減らしても良いのではと考えることもできます。FWHMの基準を厳しくしたほうが、元々の目的のM104の内部の構造を出すという目的からは、正しいのではないかと推測できるわけです。

でもこれをどこまで攻めてもいいのか?S/Nをどこまで落としてもいいのかの基準がよくわからないので、判断が難しいです。例えばL3画像でFWHMを10以下として、枚数は半分程度に減ってしまうかもしれませんが、実際に試して画像処理までしてみるのは価値があるかもしれません。

と、ここまで記事を書いて疑問に思ったので、焦らずに疑問はできるだけ解決するということで、実際に試してみました。条件はSubframeSelectorでL3画像のうちをFWHM10以下、かつ星の数が50以上のものを採用するとしました。枚数的にはFWHM12以下、かつ星の数が35以上だったときに115/139枚だったのが、44/139枚と、3分の1強くらいになりました。これで全く同じ条件でWBPPをかけインテグレーション直後でまずはS/Nを測定してみると、115枚だった時が上でも示しましたが41.24dBで、さらに条件を厳しくした44枚の方が37.57dBでした。115枚と44枚から計算したS/Nの改善比はsqrt(115/44) = 1.62です。一方インテグレーションした画像の実測値での比は41.24 - 37.57 [dB] = 3.67 [dB] = 10 ^ (3.67 / 20) = 1.53となるので、1.62から少しだけずれますが、まあ誤差の範囲内で一致してるといっていいでしょう。

では同様にL3で115枚使った時と、44枚使った時を、GIFアニメで比較してみます。
L3_115_L3_44
S/Nで高々1.5倍程度の違いなのに、大きく違って見えます。違いを挙げてみると、
  1. 115枚の方が、恒星が大きく見えて、44枚の方は恒星が小さく見える。
  2. 44枚の方が背景がノイジーで荒れている。
  3. 44枚の方はBXTで救いきれていない、取りこぼしている恒星が多い。
  4. 銀河本体の評価は難しく、一見44枚の方が細かいところまで出ている気もするが、ノイジーなだけの気もする。
1. 恒星の肥大に関しては、FWHMが小さい44枚の方が(同じパラメータの)BXTをかけた後でも小さくでるので、FWHMだけで判断してしまっていいでしょう。やはりラッキーイメージ的なFWHMが小さいものを選ぶのは、恒星の鋭さでは結果的にも有利です。

2. 見かけの背景の荒れ具合はどこまで炙り出したかだけの問題なので、背景が荒れ荒れに見えるのは気にしないでください。同じS/Nの画像でも強炙り出しすれば荒れて「見えて」しまいます。

3. それよりもここで重要なのは、暗くて淡い恒星の出具合が全く違ってしまっていることです。明るい恒星は元々S/Nが高いので、2枚の画像であまり差はないですが、暗い恒星はS/Nが低いのでNの影響をより大きく受けます。

例えば、115枚インテグレーションした画像の中で、BXTでギリギリ生き残った星のS/Nをインテグレーション直後の画像で測定すると (実際は淡い星の範囲を決めるのが難しいので測定もなかなか難しいのですが)、少なくとも2から3くらいはあります。一方、115枚画像で生き残った同じ星と同じ位置の、44枚の画像で生き残らなかった星のS/Nを測定すると1から1.5程度で、有意に差があります。115枚の時に2とか3あったS/Nが、枚数が44枚と少なくなりノイズが1.5倍ほど上がり、S/Nも1.5分の1ほどになり、恒星として認識されなくなったということかと思います。

このように、高々1.5倍程度のわずかなノイズの増加が、淡い部分には決定的に効いてしまうわけです。

4. 恒星のFWHMが小さいと背景の分解能もより出ているはずですが、いかんせんノイズのNが悪くて判断がつきにくく、全体としては44枚の方が不利と言っていいでしょう。


こうなるともう、ラッキーイメージで枚数を制限するか、S/Nを稼ぐために多少FWMHは悪くても枚数を増やすかは、完全にトレードオフですね。恒星の鋭さを取るか、淡い恒星が残るのを取るかです。銀河本体も同様にトレードオフかと思います。要するにその場その場に置いて、どちらを取る方が有利か判断して決めるべきなのかと思います。しかもインテグレーションまでしての判断なので、手間も時間もかかり、きちんとやろうとするとかなり大変になりそうです。

それよりも、これ以上の劇的な改善を考えるとすると、
  • 同等のシンチレーションのいい日に、より多くの枚数を撮影するか
  • 同等のシンチレーションのいい日に、より暗い空で撮影するか
だと思います。今のノイズは光害によるスカイノイズが支配的なので、このスカイノイズを改善する方法を考えるべきだということです。言い換えると、ここまで来てやっと自宅の光害が問題になるレベルに辿り着き、やっと暗い場所で撮影するべきかどうかの議論する価値が出てきたということなのかと思います。これまでは基本自宅撮影が多くて、今回のM104は系外銀河で背景を気にしなければ銀河本体はそこそこ明るいので、自宅でも十分だと思っていました。今のところ自宅だと厳しいと思ったのが、
  • M81を撮影した時のIFN
  • Sh2-240やダイオウイカなどのものすごく淡い天体を撮影した時
ですが、今回の
  • 系外銀河周りの恒星を出したい時
が新たに加わり、3つになりました。

まだ暗黒帯とかにあまり手を出していないので、ここら辺もいずれ暗いところを求めることになるかと思いますが、徐々に自宅撮影の限界が見えてきたということだと思います。今のところ頻繁に遠征に行くのは時間的に厳しいので、貴重な遠征の機会を逃さないように、あらかじめ遠征時のターゲットをはっきり決めて置くことがこれからの課題でしょうか。


画像処理

FWHMを12ピクセルで切ったL3のみ44枚でインテグレートしたL画像と、前回までの画像処理で使ったRGB画像を使って、画像処理をしてみます。

比較しやすくするため、ハッブル、今回、前回の順で並べます。
STScI-01EVT8YHAGM2WGQTV3DGKRFZ7Q

Image07_rot_Hubble_mod_cut

Image07_rot5_Hubble

恒星のシャープさは上がりました。救い上げた星の数は増えましたが、一部以前残っていた星が新たに消えてしまっているものもあります。でも、ハッブルの画像みたいに微恒星が一面に星が散らばっている様子からは程遠いので、ここら辺が次の課題でしょうか。

銀河本体は一部前回のほうが良かったところもあるように見えますが、基本的には今回の方が細部も出ていて、明らかに良くなっています。ハッブルの画像に多少なりとも近づいているのかと思います。どうやら改めて全画像処理工程をほぼやり直した甲斐はあったようです。

全体像も更新です。
Image07_middle

Image07_ABE1_crop_ABE4_DBE_BXTc_SPCC_BXT_LRGB_BXT_back_GHSx3_low
  • 撮影日: 2024年4月10日20時27分-4月11日3時18分、4月12日21時49分-4月13日0時46分
  • 撮影場所: 富山県富山市自宅
  • 鏡筒: SHARP STAR製 SCA260(f1300mm)
  • フィルター: 無し
  • 赤道儀: Celestron CGX-L
  • カメラ: ZWO ASI294MM Pro (-10℃)
  • ガイド:  f120mmガイド鏡 + ASI290MM、PHD2によるマルチスターガイドでディザリング
  • 撮影: NINA、Gain 120で露光時間1分でL: 115枚、R: 59枚、G: 51枚、B: 64枚、総露光時間289分 =4時間49分
  • Dark: Gain 120で露光時間1分が204枚
  • Flat, Darkflat: Gain 120で露光時間 LRGB: 0.01秒でそれぞれ128枚
  • 画像処理: PixInsight、Photoshop


まとめ

今回いろいろ試したことで、FWHMで分解能を評価できる手法はある程度確立できたのかと思います。やはりシンチレーションの影響は大きく、まずはいい日を選ぶことかと思います。その一方、淡い部分はS/Nの、特にノイズが大きく関係するので、全体の仕上がりとしてはFWFMだけでなく、枚数をある程度確保するか、スカイノイズを回避する必要があるのかと思います。

長かったですが、M104はとりあえずこれで完了とします。次回M104に挑戦するときは、暗い場所に行って撮影し、恒星がどこまで出るのか挑戦してみたいと思います。



M104の画像処理の最中に、BXTの恒星の認識で気付いたことがありました。これも補足がてら書いておきます。



BXTの適用限界の一例

BXTについてはある程度一定の評価が定着したのかと思います。私もお世話になっていますし、今回のM104本体の内部構造を出すのにも大きな効果がありました。焦点距離1300mmのSCA260に対してM104は少し小さくて、拡大して細部を見ながら処理をすることも多いです。その拡大しながらの処理の最中で改めて気になったのは、BXTでどこまで微恒星を補正できるのか?ということです。

下の画像を見てください。左から順に1. BXT無し、2. BXTのCollect only、3. BXTで恒星を小さくし背景(銀河本体)の解像度の上げたたものになります。
名称未設定 1

星像を改善しているのはすぐにわかると思いますが、その中で目で見て明らかに微恒星とわかるものをいくつか取りこぼしてしまっているものがあります。次の画像は、仕上げ前にStarNet V2で恒星を分離し取り除いた画像になります。

Image07_ABE1_crop_ABE4_DBE_BXTc_SPCC_BXT_LRGB_GHS_GHS_Preview01

BXTで救いきれなかったものは(BXTとは別ソフトのStarNetでも)背景として認識されるようです。でもそれらは、人の目には微恒星側に認識できるものも明らかにあるのかと思います。

シンチレーションなどでブレてしまい星の鋭さが出ていないのが原因かと思われますが、問題はBXTで星と「認識される」か「認識されてない」かで、その切り替わりを境に本来の明るさや大きさが大きく変わり、差が出てしまうことです。以前、BXT2にバージョンアップする前にも同じようなことを書いていま。


その後BXT2にアップデートした時に、微恒星をより拾うようになっていると解説されています。

そのためかなりマシになっているはずなのですが、今のところは今回程度の認識が限界になるようです。

この程度のことは強拡大しない限りほとんど気になることはないでしょう。さらに今回の最終結果としては背景をそこまで明るくすることはないので、微恒星と思われるシミのようなものは実際には見えなくなってしまい、実用上はなんら問題はないと思います。ただ、強拡大したり、淡い背景を強炙り出しする場合は、この問題が露呈する可能性があることは、頭の隅に置いておいた方がいいのかもしれません。

もう少し突っ込みます。微恒星をできる限り拾うって、色々価値があると思うんですよ。上の背景だけの画像を見てたら、微恒星と思われるところは輝度としては明らかに盛り上がっているので、その部分だけうまく集光できないかなと思ってしまうわけです。FWHMが星の明るさによらずに一定なように、恒星の広がり具合は本来明るい星でも暗い星でも同じはずです。でも暗い星は背景のノイズに埋もれてしまうために鋭さが出ないのかと思います。この鋭さを仮想的に補助してやればいいのかと思います。手動だと銀河本体はマスクをかけて、背景の中の輝度差で微恒星部を分離して、その盛り上がり部を背景に対して増強してやることでしょうか。もしくはここからBXTのcorrect onlyでまともな星像にしてもらうとかできればいいのかもしれません。あ、でもこれだと本来の輝度から変わってしまうかもしれません。まあ何か方法はありそうなので、じっくり考えてみると面白いかもしれません。


bin1にdrizzle x2に、さらにBXT

今出せる解像度の限界は、bin1にdrizzleを2倍以上かけて、さらにBXTでしょうか?PowerMATEなどのバローでも分解能は増す可能性はありますが、ここでは考えないことにします。

どこまで細かいのが出せるのか、果たしたそれに意味があるのかを試してみました。使ったのは2023年5月に撮影した5分露光のL画像を36枚、WBPPでインテグレートしたものです。その際、drizzle無しと、drizzle x2で出力しました。bin1なのでdrizzle x2の方は解像度は16576x11288で、ファイルサイズは1枚だけで1.5GBになります。全ての処理が重く、簡単な操作さえ非常にもっさりしています。画像処理もものすごいディスク食いで、はっきり言ってこの時点でもう実用的でもなんでもありません。

このdrizzle無しとx2それぞれにBXTをかけてみました。

まずはdrizzle無し。左から順にBXT無し、BXTのCollect only、BXTで恒星を小さくし背景(銀河本体)の解像度の上げたたものになります。
comp1

次にdrizzle x2の場合。BXTに関しては上と同じです。
comp2

この結果は面白いです。drizzle x2のほうがBXTが適用されない微恒星が多いのです。理由は今のところよくわかりませんが、niwaさんのブログのこの記事がヒントになるでしょうか。どうもBXTには適用範囲というものがあり、FWHMで言うと最大8ピクセルまでだとのことです。

でも今回、そもそもdrizzle無しでもFWHMが12とか13で、すでにこの時点で大きすぎます。drizzle x2だとするとさらに2倍で、はるかに範囲外です。でも不思議なのは、FWHMが12とか13でも、たとえそのれの2倍でも、一部の恒星にはBXTが適用できているんですよね。なので少なくとも私はまだこの適用範囲の意味はよくわかっていません。

あと、niwaさんのブログの同じ記事内にあった、明るい星に寄生する星が出てくることが私も今回M104でありました。
fakestars
真ん中の明るい星の下と左上に偽の星ができてしまっています。

niwaさんはdrizzle x2だと出て、drizzle x1だと緩和されると書いてありましたが、私の場合はdrizzle x1でした。恒星を小さくすることと、ハロを小さくすることが関係しているようで、両パラメータの効きを弱くしたら目立たないくらいになりました。そのため今回の画像では恒星を小さくしきれていないため、さらに星雲本体を拡大してあるため、恒星が多少大きい印象となってしまっているかもしれません。

いずれにせよ、ここでわかった重要なことは、むやみやたらに元画像の解像度を上げてもよくならないどころか、不利になることさえあるということです。BXTの効かせすぎも寄生星を生む可能性があります。ファイルサイズのこともあるのでbin1とdrizzle x2はそもそも実用的ではないし、さらにこれにBXTを使うなんてことは今後もうないでしょう。今のところbin2でdrizzle x2にBXT、bin1にdrizzle無しでBXTくらいが実用的なのかと思います。小さい銀河みたいに拡大すること前提で分解能を求めるとかでなければ、bin2にdrizzle無しでBXTでも十分なのかと思います。

前回の記事のM104撮影に際し、少し検討したことがあるので、メモがてら書いておきます。大したことではなく、ホントに補足程度です。



恒星の飽和

今回のM104の撮影では、2023年5月と2024年4月で、機材や設定はほぼ同じで、露光時間だけ5分から1分に縮めました。5分露光では多くの星が飽和していて、1分間にしてもそこそこの数の恒星が飽和していることを前回示しました。

いい機会なので恒星の飽和について少し考えてみました。これは恒星周りを3次元でプロットしてみるとよくわかります。1分露光のL画像のストレッチ前のリニアの時のものを一部を拡大しています。

Image28_Preview05_3dplot
全角画像の左下の端にかかっている3つの明るい星。

3つ並んだ星はどれも豪快にてっぺんが平らになっていて飽和していますが、階調がどれくらい足りていないのかはこれだけだと良くわかりません。そこで、画面の中でちょうどギリギリ飽和するくらいのある星をStellariumで調べてみると12.5等級とのことでした。次に、画面の中で最も明るい星の等級を同じくStellariumで調べてみると「HD109875」で7.65等級とのことでした。12.5 - 7.65 = 4.75等級 = 87.1倍となりました。ということは、今回の画像ではまだ明るさを100分の1近くにしなければ、全ての星の飽和を無くすことができないのがわかります。ここではASI294MM Proのbin1設定で見積もっているのでダイナミックレンジは12bitと狭いですが、たとえ16bitのカメラを持ってきても4bit = 16倍稼げるだけで、100分の1という差は賄いきれません。

露光時間で考えてみます。今回は1分露光なので、同じカメラで同じgainだとすると60s / 90 = 0.67秒程度の短い露光時間にする必要があります。今回の撮影時のカメラのgainが120なので、たとえgainを0にしたとしても-12dB = 0.25倍程度です。この場合は露光時間を2.7秒程度まで伸ばせますが、それでも全く現実的でないほど短い露光時間です。これだと淡いところは読み出しノイズに埋もれてしまう可能性が高いです。

画像に写る星の明るさは、星がどれだけ鋭く写るかにも依るので、鏡筒の口径、スポットダイアグラム、シンチレーション、風や地面振動による鏡筒の揺れ具合、それらを積分する露光時間にも依ります。もちろん性能が良くなればより星像は鋭くなるので条件は厳しくなり、要求されるダイナミックレンジは大きく、露光時間はより短くなります。

より一般的には、飽和しないための露光時間は画角に写った星のうち「一番明るい星」に依ります。Stellariumで調べてみましたが、今回撮影したものと同じ画角だと10等星は撮影位置を選べば避けることができそうですが、11等星を画角の中に一つも含まないというのはかなり難しそうです。さらに対象天体は中心に持ってくることが多いので、任意の場所を選べるわけでもありません。10等星は画角内に入ってくる確率がそこそこあるとすると、計算すると6.9秒程度まで露光時間を短くしなければならなくなり、やはり現実的でなくなってきます。

ものすごいラフな見積もりですが、恒星の飽和を完全に避け、かつ淡い天体を写すというのはかなり難しいということがわかるかと思います。こうなってくると、どうしても飽和を避けたい場合は、明るい恒星のみを写す超短時間露光を別撮りして、画像処理時にHDR合成することでしょうか。

というわけで、今後も恒星の飽和はあまり気にすることをせずに、撮影を続けたいと思います。


シンチレーションについて

今回L画像は2024年の4月1日と4月10日の夜に撮影しています。1枚撮りのRAW画像を切り取って、オートストレッチしたものを両日比べてみます。高度が同じ(31度)になるように時間を選んでいます。

1: 202/4/2 00:05:
01_good_1min_2024-04-02_00-05-46_M 104_L_-10.00C_60.00s_0059

2: 202/4/11 01:25 00:05:
02_bad_1min_2024-04-11_01-25-11_M 104_L_-10.50C_60.00s_0000

パッと見で、明らかに4/2の方がシンチレーションがいいことがわかります。

3: もう一つ、2023年5月11日に5分露光で撮影したものです。露光時間が長いので微恒星まで写り込んでいて、一見こちらの方が良さそうに見えますが、星像の大きさだけをよく見比べると今年の4/2の方が小さくてよく見えます。
03_middle_5min__2023_05_11_23_35_26_LIGHT_L_10_00C_300s_G120

実際にPIのFWHMEccentrisityツール(gausiaan, 0.5)で径を測定すると
  1. 12.51px
  2. 23.22px
  3. 13.64px
となり、画像を見た印象とほぼ一致しているのかと思います。

でも、いくらbin1での撮影といえ、そもそも12.5pxでもかなり大きい気がします。SCA260のスポットダイアグラムを見てみます。

sca260_2

いくつか数字があるのでわかりにくいのですが、図はどれも一辺200μmです。右下の一番大きなスポットの長辺が30umくらいでしょうか?これに相当する数値はField 4のGEO radius 15.53umのようです。radiusで半径なので2倍して31.06umでほぼ一致しています。

ではRMS radiusとは何かというと、光の強度分布をガウシアンだと仮定すると、標準偏差σがRMS radiusと一致します。σとFWHMの関係は、計算するとFWHM = 2.36σとなるので、例えばField 1のFWHMは1.916 x 2.36 = 4.50umとなります。

今回はASI294MM Proでセンサーの長辺が19.2mm、短辺が13.1mmなので、四隅までの距離は中心からsqrt(19.2^2+13.1^2) / 2 = 11.6mmとなり、Field 1と2の真ん中くらいでしょうか。2.51umと1.92umの真ん中を取り、RMS radiusを2.25umとしましょう。FWHMは2.25 x 2.36= 5.23umです。

今回のセンサーはASI294MM Proをbin1で使っているので、1pxあたり2.31umです。

ここまでの見積もりが正しいとすると、FWHMをピクセルで表すと、SCA260の中心付近では5.23[um] / 2.31[um/px] = 2.26[px]となりかなり小さい値が見込まれます。これとシンチレーションが良かった4月2日の12.51pxと比べると、実測は5倍以上大きいことになります。スポットダイアグラムなんて全然意味がないくらいに大きな星像になっているというわけです。

では今回撮影したM104の星像が、他のよく撮れている方の画像と比べて大きすぎるかというと、そんなことはなくて、ある意味一般的な恒星の大きさと言えるかと思います。そもそも他と比べてそこまで星像が肥大するようなら、M104本体の分解能もそこまで出ないはずです。

では、何がおかしいのでしょうか?

これまでこんなことはあまり定量的に見積もってこなかったので、冷静に考えてみました。まず気づいたのは、焦点距離に関わらず高性能な鏡筒のスポットダイアグラムも中心像ってそこまで大きく変わらないことです。例えば焦点距離300mmのFRA300 Proのスポットダイアグラムの数値を見ると、RMS radiusで中心では1.961umとSCAとほとんど同じ大きさです。これだけを信じると写る恒星の大きさは同じになるはずです。じゃあ焦点距離が長い鏡筒で写した恒星がそこまで小さくなるかというと、小さい系外銀河の画像などを見てもすぐにわかりますが、現実にはそんなことはなく、一つ一つの恒星の大きさは大きくなってしまい、星の密度も全然小さくなります。スポットダイアグラムでは同じ径なのに、焦点距離が違うと、なぜ撮影した画像ではこんなに違うのかという疑問に置き換えられたということです。

ここまで考えると答えはすぐに出てきて、焦点距離が長いので、同じ大きさの素子のカメラだとするとより拡大して見ていることになり、揺れなどの影響がより効いてくるということです。

揺れを見積もってみます。PHD2の出力を見てみると、角度揺れはRMSで概ね2秒角以内には収まっているようです。焦点距離1300mmとセンサーサイズ19.2mm x 13.1mmから、このサイトで計算すると画角は0.85x0.578度とわかるので、ピクセル数(1binであることに注意して)8288x5644でそれぞれの辺で割ると、1ピクセルあたり0.36秒角とわかります。そのため、PHD2から見積もった角度揺れで5ピクセルくらいは揺れていることになるので、スポットダイアグラムから見積もった2.26ピクセルの倍くらいにはなっています。実際にはこの2倍の揺れの周りに、元のスポットダイアグラムで表されるガウス分布が散らばるとすると、周りに片側0.5倍、両側で1倍程度の広がりを持ってもおかしくはないでしょう。これで3.3倍程度で、実像の5倍までまだ少し足りませんが、ある程度の説明はできそうで、少なくとも角度揺れだけでスポットダイアグラムで期待される径は、全然出るわけがないことがわかります。

ここで、オートフォーカス時の短時間のHFRを見てみます。2023年5月11日のL画像の撮影途中で合わせた時の画像が残っていました。
キャプチャ

この時のフォーカス位置でのHFRは7を少し切るくらいです。HFRはHalf Flux Radiusの略で半径、HFD(Half Flux Diameter)と呼ばれるものもあって、こちらは直径です。FWHMはFull Widthで直径なので、HFDと比較すべきなので、HFRの2倍と比較するとしましょう。でもFWHMとHFDは定義が違っていて、FWHMは最大値の「ある一点」を元に半分の値を径とするもの、FHDは定義によると「統計的に」中心を求めていることが大きな違いです。HFDの方が実測のような崩れた星像にも強いことがわかります。でも理想的なガウシアン分布に対してはいずれも2.36σになることがわかっているので、ここでは簡単のため同じものとして扱います。

2023年5月11日のL画像の撮影ではほぼFWHM =~ 2倍の HFR = 14を切るくらいになるので、測定自身はFWHMもHFRも、共にうまくできているようです。でもここでAF時のグラフを見てみると、フォーカスポイントの真ん中あたりにおいては、フィッティング曲線が実測値よりもかなり下に来ていることがわかります。そうです、なんらかの理由で径が一定値以下に下がることはないということを示しているのです。

この「なんらかの理由」が何なのかは、今のところ不明です。鏡筒の光学性能そのものの可能性もありますし、シーイングの可能性もありますし、シーイングや筒内対流を含むシンチレーションの可能性もありますし、地面の揺れ、風の影響などもあるかと思います。でも確実に2つのことが言えます。まず一つは、日によってFWHMが違っているので、シンチレーションに制限されている可能性が高いということ。もう一つは、短時間測定のHFRでもほぼ同様の結果なので、長時間積分の影響やガイドの影響はほとんど効いていないことです。

いずれにせよ、AF測定でここまではっきり制限が見えているので、逆に言い換えると、ここを見ながら底がフィッティング曲線に近づくような改善を目指していけばいいことになります。

ちなみに、ε130DのAF時の結果が以下になります。実測とフィッティング曲線がほとんど一致しています。でもこれは必ずしもε130Dの性能がいいというわけではなくて、単純に焦点距離が短いから、シンチレーションなどの揺れが効きにくいというだけだと思われます。
AF_good

SCA260でもこれくらい一致が見られるようなら、もっと星像は改善するはずです。日によって変わるシンチレーションや風の影響が小さい日を選んで撮影すること、赤道儀に弱いところがないか見直す、赤道儀をさらに強固なものにするなどでしょうか。性能のいいレデューサやバローを使って焦点距離を変えることで、鏡筒の性能か周りの環境かを切り分けることができるかもしれません。


まとめ

M104の撮影で気づいたことをまとめました。細かいことでしたが、自分的にはこれまであまり考えてこなかったことなので、面白かったです。

実は入院中で結構時間はあって、多少細かいことまで考える余裕がありました。このようにじっくり考えるのは結構楽しいのですが、実際にはなかなか時間が取れてこれませんでした。今後も焦って進めるのではなく、少し余裕を持って考える時間を確保するのが大事かなと今回改めて思いました。


黒天リフさんが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上で黒天リフさんがバイスについて疑問を呈していましたが、そこらへんに答えることができればと思っています。










このページのトップヘ