さて今回M33を撮影したので、Pixinsightのバッチ処理に挑戦しました。ちょっとややこしいですが、多少癖がわかったのか、前回ほど戸惑うことはないです。

バッチ処理は「Script」メニューの「Batch Processing」->「BatchPreprocessing」を選ぶことから始まります。下のAddボタンを押してLightフレーム、Darkフレーム、Flatフレームなどを登録していきます。ここら辺まではいいのですが、最初はやはりなかなかうまくいきません。迷ったところをこれまた全部書いておきます。
  • Debeyerできない -> 右側のCFAimagesにチェックを入れるとできるようになる。
  • Cosmetic CorrectionのTemplate iconが選べない。-> これは特に分かりづらかったです。BatchPreprocessingに入る前に、あらかじめ「Preprocessing」の中から「CosmeticCorrection」を選び作っておく必要があります。前回の記事で説明したように、ファイルを選んで実行までしてから、(2018/3/22変更)CosmeticCorrectionでホットピクセル除去やクールピクセル除去のやり方を指定するだけでよく、ファイルまで選ぶ必要はありません。その後、CosmeticCorrection画面の左下の三角をクリック枠の外に出すと「Instance」が作成されます。これをBatchPreprocessingで指定するみたいです。「CosmeticCorrection」できたファイルを消したりしてしまうと、たとえインスタンスだけ残っていてそれを指定しても、エラーが出ます。
  • 「CosmeticCorrection」で一部の枚数だけ使って処理したインスタンスを使って、多数枚のLightフレームは処理できるのか? -> 問題なくできるみたい。でも、これで本当に全部のファイルのhot/coolピクセルが処理されているかは未検証です。念のため全Lightフレームを使って処理するようにしました。(2018/3/22変更)そもそもCosmeticCorrectionでホットピクセル除去やクールピクセル除去のやり方を指定するだけでよく、ファイルまで選ぶ必要はありません。
  • 一旦バッチファイルの画面を閉じてしまうと、選択したファイルも全てリセットされる。インスタンスを残しておいても、スクリプトファイルのソースみたいなのが出てくるだけで、元の画面が出てこない。 -> 仕様みたいです。何か回避策はあるのでしょうか?(2018/3/22追加)-> 左下の三角を枠外にドラッグ&ドロップしてインスタンスを作って置けば後から再度開くことができることがわかりました。ただ、開く時にインスタンスを右クリックして「Execute in the global context」を選ぶと物と画面に戻ることができて編集を再開できます。
  • ImageRegistrationのDrizzleの意味がわからない。 -> とにかくチェックしないとファイルが出力されない。最終画像も出ない。 (2018/3/22追加)->普通のDrizzleの意味で、解像度を上げるのですが、そのためのデータを出力するだけで、実際に出力ファイルの解像度が上がるわけではないみたいです。なので、チェックは外してもいいとのことですが、チェックしないとファイルが出力されないこともあったので、とりあえずチェックしてあります。
  • 星像が流れていないかなど、撮影後のfitsファイルの確認がしにくい。-> Canonカメラでの撮影の場合JPEGも残しているのと、RAWファイルのCR2形式はWindowsでもMacでも簡単にプレビューできるので便利。その一方、fits形式のプレビュー的なアプリはなかなかなく、今の所Pixinsightで全て開くしかない。 (2018/3/22追加) -> メニューの「Batch Processing」「SubframeSelector」というバッチ処理で星像の肥大度と偏心度などをみて自動判別するとても便利な機能があります。そのうちに解説します。
  • Lightフレームだけではダメみたいで、少なくともDarkかFlatかBiasが一枚はないとダメみたいです。
  • 右側の「Registration Reference Image」は必ず一枚Lightフレームを選ばなくてはならない。
  • Output Directoryも選ばないと怒られる。
  • Biasフレームは必要? ->  (2018/3/22変更) 冷却CCDとかでは必要みたいです。常温のCMOSカメラは?PixinsightではBiasは必ず取った方がいいみたいです。明らかに処理に差が出るようです。今回はとりあえず、よくわからないので撮ってません。調べてみるとBiasフレームとは、レンズにキャップをした状態にし、ライトフレームと同じISO感度かつ「最短シャッタースピード」で撮ったもののようです。簡単そうなので、次回撮影では撮ってみます。
  • Flatフレームもダークで補正されたほうがいいはずなのですが、実際に補正はされるのでしょうか?できたファイルからだけではよくわかりません。→ biasはFlatにもダークにも適用されます。FlatdarkはPixInsightでは必要ないそうです。
  • 実行前に「Diagnostics」ボタンを押すと、問題があるかどうかわかる。準備ができたら「Run」ボタン。
これで待っているとコンポジットされた画像が無事にできます。これ以降のバックグラウンドの処理などのLinear Stageの解説は次回に続きます。

今回も疲れてしまったので、ここからはいつも通りSteller Image8やPhotoShopなどで処理しています。

さて今回の処理はM33ですが、機材はFS-60QにASI294MCをつけて、Advanced VXをASI178MCと50mmのCマウントレンズを使い、PHD2でガイドしたものです。撮影はSharpCapで行いました。ASI294MCのゲイン270、各露光時間は5分間で合計25枚、計2時間5分になります。

そこそこの長時間露光になっているのですが、これを処理すると「縞ノイズ」が盛大に出てしまうことがわかりました。

light-BINNING_1


上の画像は、Pixinsightでバッチ処理でコンポジットした画像をSteller Image8に送り、「オートストレッチ」でホワイトバランスを整えてから、「チャンネルパレット」の「σ(1,3)」を押しただけの画像です。画像をクリックすると縦方向に少し斜めの線がたくさん見えると思います。実はこれまでも長時間撮影で何度か遭遇してボツにしてきた経緯があるのですが、そろそろ向き合わなければならない時期にきたみたいです。

この縞ノイズというのは、長時間露光の際に一般的に出てくる問題で、ガイドをしていても機材のたわみなどで少しづつ星像がずれていってしまうために起こるものです。実際、比較明合成で見てみると、縞ノイズの方向とずれの方向が一致しているのがわかると思います。

integration_maxtraced


ちなみに、Pixinsightで比較明合成をするには、原理的にはバッチ処理の中の「Image Registration」の過程を抜いてIntegrationすれはいいので、今回はバッチ処理でできたoutputファイルがあるディレクトリの中のcalibrated/light/debayeredの中のファイルを全て「Process」メニューの「Preprocessing」の「Image Integrartion」でコンポジットします。そうすると、上に示したような比較明合成画像が出来上がります。

さて、この縞ノイズをなくすには機材のたわみなどを極限までなくし、ガイドの精度を上げることなのですが、今回のズレも画像から計算すると2時間でわずか約40秒と決して悪いわけではありません。精度を上げる方向で攻めるのは普通は難しいので、ディザリングなどで撮影時にわざと規則的に画角を繰り返しずらしていくことで、縞ノイズの影響を少なくするような方法をとることができるようです。ここで一つ問題が出ます。今回の撮影でも使ったSharpCapだとディザリングは難しいみたいなのです。撮影の合間にずらして揺れが落ち着くまで少し待つということを繰り返すのですが、SharpCapの撮影は基本的に連続で、ずらしている間に露光を止めることができないようなのです。手持ちのEOSを使う場合はBackYard EOSとPHD2の組み合わせでディザリングももんだいなくできるようですが、CMOSカメラだとAPT(Astro Photography Tool ) などを使う必要があるみたいで、お気に入りのSharpCapが使えません。

ディザリングはおいおい考えるとして、Pixinsightで比較明合成の仕方を探る時に色々試していて面白いことに気づきました。Image Integrationのオプションの違いで明らかに縞ノイズの出方が違うのです。関係するオプションは2つで、「Combinarion」と「Normalization」です。全部のオプションを試したわけではないですが、Combinationでは「Average」と「Maximum」で明らかな違いがありました。またNormalizationではデフォルトの「Aditive with scaling」と「No normalization」でもCombinationと合わせると明らかな違いがありました。結果を画像で示しておきます。

まず、2つ上の画像と同じものですが、デフォルト設定でCombinationは「Average」、Normalizationは「Additive with scaling」となります。

light-BINNING_1
「Average」、「Additive with scaling」

次に、Combinationを「Maximum」に変えます。画像処理は上と同じでSteller Image8のオートストレッチとチャンネルパレットのσ(1,3)のみです。

integration_Maximum_Additive_with_scaling
Maximum」、「Additive with scaling」

明らかに縞ノイズが減っているのですが、少しわかりにくいかもしれません。

次にデフォルトの設定からNormalizationを「No normalization」にします。Combinationは「Average」のままです。に変えます。

integration_Average_No_normalization
「Average」、「No normalization

これは一見ほとんど同じに見えるかもしれません。

最後に両方ともデフォルトから変えて、Combinationを「Maximum」に、Normalizationを「No normalization」にします。

integration_Maximum_No_normalization
「Maximum」、「No normalization」

それでも縦縞はまだ残っていますが、こちらはパッと見ただけでわかるくらい縦縞が減っています。

比較した画面です。

comp

こうやってみると、元の画像に細かいノイズがのっかただけのように見えないこともないです。それでもその後の処理では大きく違うこともわかりました。実際に「Average」、「Additive with scaling」とMaximum」、「No normalization」を比較する意味で、真面目に画像処理してみました。画像をクリックして拡大してみると結果は一目瞭然です。(追記: 次の日見たら後者の方がぼかしてあり比較するのにあまり適していなかったので、処理を同じようなものに合わせました。)

light-BINNING_1_SI3
「Average」、「Aditive with scaling」


integration_Maximum_No_normalization3c

「Maximum」、「No normalization」

処理をしていても、デフォルト設定の「Average」、「Additive with scaling」方は縞を消さなくてはいけないと思い、かなり不自然な処理になってしまっています。それでもまだ全然消しきれていません。一方、Maximum」、「No normalization」の方は処理中も縞をほとんど気にすることなく、画像処理に集中できます。もちろん完全に縞ノイズが消えているわけではないです。また、他のパラメーターでさらに改善する可能性もあるかもしれません。


Pixinsightはまだ使い始めたばかりで右も左も分からないので、今回の試みがごくごく一般的なテクニックなのか、それともあまり知られていないものなのかもよくわかりません。洋書の「Inside PixInsight」は買ってあるので、該当する箇所を読んでみたのですが、大したことは何も書いていなくて、Combinationに関しては「Averageを使え」だけです。Nomalizatioinに関しては、ある章では「バイアスを履かすのを保つためにNo normalizatoinを選べ」とかいてあって、別の章では「Additiveは少なくとも使え、Scalingは露光時間が違う場合は使ったほうがいい」とあるくらいで、ほとんど中身の説明はありません。ヘルプのドキュメントをよく読めとも書いてあったので読んでみました。ヘルプの方が確かに少しマシですがそれでも「Averageは一番いいS/Nになる」くらいと、「NormarizationはバックグランドをScalingはばらつき具合を合わせる」というくらいのことしか書いてありません。「ScalingはS/Nを良くする」とも書いてあるので、もしかしたらS/Nを良くするというところの処理が悪さをして、縞ノイズが出る出ないに関わっているのかもしれません。何れにせよアルゴリズムは不明なので、どのような処理をやっているかがわかるようなレベルではないです。

それにしてもPixInsight奥が深すぎます。かなりブラックボックスです。まだしし座のトリプレットの未処理画像が残っているので、引き続きもう少し触ってみます。