
電子観望ことはじめー画像処理編
この記事では、試行錯誤で確立した画像処理手順について紹介します。
取得画像からきれいな撮像を仕上げるにも、いろいろな原理、手法、ソフトウェアがある中で、撮像がそこそこでも、それなりに完成画像を短時間で仕上げることができる Siril が、今のところお気に入りとなっています。
GPLv3に基づくフリーソフトウェアです。寄附を受け付けています。
多機能高性能のソフトウェアで、まだまだ調査の余地がありますが、プロセスを1つずつ直感的に確認しながら処理できるところと、複数日の撮像をまとめて処理できるところ、何よりも、マシンスペックを如何なく発揮する処理スピードで、試行錯誤にも適しており、個人的にはおすすめです。
前提として、まだまだ撮像自体の品質の向上・工夫・改善をしていく必要がありますが、ご参考いただければ幸いです。
(更新日:2023/10/22)
[まとめマガジン:電子観望ことはじめ ]

前準備
Siril 最新版をダウンロード、インストール
公式サイト https://siril.org/ からインストーラをダウンロード、導入します。Windows 版を利用していますが、基本的にはインストーラーの手順通りに導入しています。(2023/10/22時点で最新版は1.2.0)

Siril設定値の確認
初期設定でもほとんど遜色なく作業は可能ですが、事前に設定しておくと、後続の作業に便利な点を挙げておきます。環境設定 > Astrometry > Local Star Catalogues : フォトメトリックでの検索候補用に、カタログファイルを入手して設定
環境設定 > Astrometry > Astrometry.net Platesolving : フォトメトリックでのプレートソルブ用に、astrometry.net から solver 用ファイルの入手して設定
環境設定 > 前処理 > Dark/Bias/Flat Libraries : 前処理でよく使うダークフレーム、フラットフレームを作成して設定(作成の段取りは 電子観望ことはじめー撮影編・本編 にて)
環境設定 > Miscellaneous > Swap Storage Directory : 処理用のswap ディレクトリを設定、読み書きの早いSSDディスクを推奨します
Select Folder : デフォルトの画像処理フォルダを設定、こちらもSSDディスクにしておくのがおすすめです。作業過程で大量の画像を作成するため、容量はできるだけ確保してください。


スタック画像の整理
撮影は Sharpcap で行っていますが、ライブスタックでは何らかの理由で重ね合わせに失敗した画像も、画像処理では役立つことがあります。開始から終了までの一連の画像ファイル群を用意します。また、別の日に撮影した同じ対象の画像群も、重ねることができる可能性があります。

画像処理手順
最初に書いた通り、Sirilは非常に多機能で、とても紹介しきれる内容ではありませんが、操作方法や考え方はとても分かりやすいと思うので、基本的な手順を紹介します。間違いは随時修正しますので、ご了承ください。
前処理から重ね合わせまで
01.スタック元ファイル群を登録
まず、SharpCapで撮影した一連のファイル群を、処理対象のソースファイルとして登録します。
右フレームの「変換」タブから「+」ボタンを押してファイルダイアログから登録、もしくは「ソースファイル」の枠内にドラッグ&ドロップでも登録できます。1000ファイルくらいをまとめてポイっとできます。
02.ライトフレームの画像シーケンス作成
登録したソースファイル群を、一連のライトフレームの画像シーケンスとして登録します。
「保存先」 > 「画像シーケンス名」に「l(ight)」、「FITS画像」を選択、「シンボリックリンク」は外して、「Convert」ボタンをクリックすると、処理を開始します。

処理を開始すると、「Console」タブに遷移し、処理経過を表示します。後でログファイルとしても保存可能です。
CPUが10コア以上のマルチスレッドで、メモリが潤沢で、保存先がSSDなら、1000ファイルくらいでも十数秒で終了します。

処理が完了すると、シーケンスに登録された代表画像が、左のフレームにプレビュー表示されます。
「画像シーケンス」タブから、作成したシーケンスの一覧を選択することができます。この段階では「l_seq」シーケンスが登録されています。
右下の四角が重なったアイコンをクリックすると、選択中のシーケンスに登録されている画像一覧のダイアログが表示されます。このダイアログから、個別に画像を選択して表示することができます。
処理中の画像を見やすくするため、下部にあるプレビュー表示設定を「自動イコライゼーション」にしておくと、画像情報は変更せずに、コントラストを自動調整して表示してくれます。

03.前処理の画像シーケンス作成
スタック前の処理として、個々の画像に対して前処理を行います。
「Calibration」タブから、以下それぞれ設定します。
「Image Calibration」で、画像シーケンスの各画像に対して処理をする「biasフレーム」「Darkフレーム」「Flatフレーム」を指定します。
初期設定してあると、指定されたファイルが設定されています。指定し直すことも可能です。ここでは、各フレームの意味と処理の内容の説明は割愛しますが、各ファイル名にそれぞれの取得時の意味を記載しておくと分かりやすいと思います。「Cosmetic correction」「Master-dark」で各種処理の利かせ方、効き具合を調整します。選択された各フレームが正しく対応しているものであれば、あまり変更する必要はないと思います。
「出力画像シーケンス」で、「出力ファイル名プレフィックス」に「pp_(preprocess)」、「保存する前にディベイヤーする」にチェックを入れて「Start calibration」ボタンをクリックします。

ライトフレームの画像シーケンスの作成時と同様、「Console」タブで処理経過を表示します。
処理が完了すると「pp_l_seq」シーケンスが登録され、処理された画像が表示されます。ダーク処理で、アンプグローやホットピクセルが除かれ、フラット処理で、埃や一部の環境光などが取り除かれました。

04.「背景抽出」処理の画像シーケンス作成
スタック前のもう一処理として、Sirilの特長的な機能である「背景抽出」を利用して、画像暗部の好ましくないグラデーションを平準化します。
左上部の「画像処理」メニューから「Background Extraction」を選択、表示されるダイアログで以下それぞれ設定します。
「Interpolation Method」に「Polynomial」、「Degree order」に「1」、
「Samples per line」は「10~20」、「生成」ボタンをクリックして、画像上に現れる「□」(サンプリングポイント)がほどよくまばらに配置される程度に設定、「Grid tolerance」に「6.0」として、「Compute Background」ボタンをクリック、プレビュー表示に試行反映します。「出力ファイル名プレフィックス」に「bkg_(background)」、「画像シーケンスに適用」チェックを入れ「Apply」ボタンをクリックします。


画像シーケンスへの適用は「Console」タブで処理経過を表示します。
処理が完了すると「bck_pp_l_seq」シーケンスが登録され、処理された画像が表示されます。画像シーケンスの画像毎の偏向光をある程度平準化することで、スタック後の画像処理の悪影響を取り除くことができます。

05.整列処理の画像シーケンス作成
スタック前の最終処理、画像シーケンスの画像群を一枚の画像に重ね合わせるため、複数の恒星の位置を特定して整列します。
「整列」タブから、以下それぞれ設定します。
「Automatic image registration」の「整列方法」から「1-2-3 Stars Registration (deep-sky)」を選択します。1つから3つまでの恒星を任意で選択して、画像毎の位置・移動量を計算して、整列する方式です。
左フレームの画像から、できるだけ明るく、しっかり認識できる恒星を選んで、選択枠で囲み「Pick 1st star」ボタンをクリックします。恒星として認識されると、赤い枠で表示されます。同様に、2つ目、3つ目を認識させます。
考え方として、より多くの恒星を認識させる方が、メリットとして整列の精度は高まりますが、デメリットとして認識に失敗して整列画像から除かれる画像数が増えてしまう可能性が高まります。1つ以上の恒星を認識させると、「整列開始」ボタンが有効になります。「ファイル名プレフィックス」を「r_(registration)」、他の設定は特に変更せず、準備ができたら「整列開始」ボタンをクリックします。



画像シーケンスへの適用は「Console」タブで処理経過を表示します。
処理が完了すると「r_bck_pp_l_seq」シーケンスが登録され、処理された画像が表示されます。恒星の位置・移動を計算して、画像毎の位置を正確に合わせ、重ね合わせ可能な状態にします。
計算に失敗した画像はシーケンスから除かれ、画像毎の関係性は「グラフ」タブで確認できます。失敗した画像が多い場合は、選択する恒星を変えてみるなど試行錯誤して、成功枚数の多い組み合わせを模索します。


06.重ね合わせ処理
いよいよ重ね合わせです。整列処理の画像シーケンスをもとに、画素毎の重ね合わせと合わせて、ノイズの除去や輝度の調整などを行います。
「重ね合わせ」タブから、以下それぞれ設定します。
「Method」に「Average stacking with rejection」、「Normalisation」に「Additive with scaling」、「Pixel rejection」に「Generalized Extreme Studentized Deviate Test」、「Weighting」に「Weighted FWHM」とします。ある程度、いい感じに重ね合わせをしてくれる設定と思います。
「Image rejection」は基本的に「全て」を選択しますが、グラフを見て、恒星がぼやけていたり、位置を間違えて認識していたりする画像があれば、この段階で手動で除きます。
設定が整ったら「重ね合わせ開始」ボタンをクリックします。



後処理
重ね合わせ処理まででひとまず完成なのですが、いくつかの観点で画像を補正することで、より正確で、美しい画像に仕上げます。
07.画像加工その1:プレートソルブと色調整
撮影時にも、対象の探索に活用したプレートソルブですが、同様の技術を利用して、画像の対象と全天における位置を特定し、画像の上下判定や、カラーバランスを自動的に調整してくれます。
左上部の「画像処理」メニューから「色補正」「フォトメトリック色補正」を選択、表示されるダイアログで以下それぞれ設定します。
「画像パラメーター」で中心となる対象のカタログ名を入力して「Find」ボタンをクリックして検索、もしくは中心座標の赤経赤緯を「Right Ascension」「Declination」に直接入力します。「Focal length」「ピクセルサイズ」に撮影時の焦点距離とカメラスペックの値を入力します。ソースファイルとして登録した画像のメタデータに、撮影時の情報が保存してあれば、自動的に抽出されます。
設定が整ったら「OK」ボタンをクリックします。
位置が特定できると、撮像画像にありがちな上下反転と、RGB毎のカラーバランスを自動調整し、同時に座標系情報(World Coordinates System information)を付加してくれます。
想定する中心座標や焦点距離の値が間違っていたり、恒星の認識精度が低かったりすると、プレートソルブは失敗します。設定を試行錯誤しても解決できない場合は、手動で上下反転、色調整を行います。



08.画像加工その2:背景抽出処理
手順04でも利用した背景抽出処理を、重ね合わせ画像に対して再度実施します。炙り出された背景画像の偏向を平準化することで、本来対象とする星雲の光などと、光害の影響などとを分離・抽出できる可能性があります。
左上部の「画像処理」メニューから「Background Extraction」を選択、表示されるダイアログで以下それぞれ設定します。
「Interpolation Method」は「RBF」、「Smoothing」に「0.50」、「Grid tolerance」に「3.0」、「Samples per line」は「20~40」くらいとし、「生成」ボタンをクリックして「□」(サンプリングポイント)をひとまず自動配置します。
恒星や星雲など、炙り出したい対象にはから外れるように、画像を直接左右クリックして「□」(サンプリングポイント)を設定、「Compute Background」ボタンをクリックすると、その都度、プレビュー表示に試行反映します。
設定と「□」(サンプリングポイント)の配置を試行錯誤して、炙り出したい対象と、それ以外との偏向が均一的になるようにします。
プレビュー表示を「偽色モード」にすると、偏向の状況が分かりやすいかもしれません。
設定が整ったら、「Apply」ボタンをクリックして反映します。


09.画像加工その3:ノイズ除去
重ね合わせと背景抽出を経て、なお残る画像の細かい粒子ノイズ、背景の粒子の除去を試みます。
左上部の「画像処理」メニューから「Noise Reduction」を選択、表示されるダイアログで以下それぞれ設定します。
「Cosmetic Correction」「Remove salt and pepper noise」は、重ね合わせで除去しきれなかった、ホットピクセルなどのインパルスノイズを除去してくれます。
「Color Denoising」「Independent Channels」は、ノイズ除去を赤、緑、青の各チャンネル毎に適用します。
「Secondary Denoising Algorithm」として、4つの手法から選択します。ここで仔細は割愛しますが、「Data Adaptive Dual Domain Denoising」が少し時間がかかりますが、割と良い結果を導いてくれます。
設定が整ったら、「Apply」ボタンをクリックして反映します。

10.画像加工その4:ヒストグラム調整
画像加工の最終調整として、ヒストグラムを調整して、画像の明暗とコントラストを調整します。
左上部の「画像処理」メニューから「ヒストグラム変換」を選択、表示されるダイアログで以下それぞれ設定します。
「Apply Autostretch Algorithm to image」ボタン(中央右端)をクリックすると、画像のヒストグラム情報から自動的に調整をしてくれますが、引き伸ばされすぎて情報が失われる可能性もあるので注意が必要です。
設定が整ったら、「Apply」ボタンをクリックして反映します。
もしくは、下部にあるプレビュー画像の白点・黒点の調整スライダー、およびプレビュー表示モードを手動で調整します。


11.完成加増の保存、フォルダ整理
画像加工を調整したら、スタック後画像、プレビュー画像をそれぞれ保存します。
上部メニューにある「保存」ボタンをクリックすると、現在編集中の画像を上書き保存します。「下向き矢印」ボタンで、「Save File」ダイアログを表示、任意のフォルダ、ファイル名で保存します。「カメラアイコン」ボタンで、プレビュー表示そのままの画像を保存します。
一連の作業で生成された中間ファイルは、最初に設定した Select Folder 配下の「process」フォルダに保存されており、Sirilを再起動しても、継続して作業することが可能です。
新しい作業を行いたい場合は、必要なファイルだけを別のフォルダに移動、「process」フォルダは空にすることをお勧めします。

試行錯誤・・
繰り返しになりますが、Sirilはまだまだ紹介し足りないくらいの高機能なソフトウェアです。
例えば、手順05の整列処理について、もっと恒星が画像いっぱいの場合なら、「整列方法」の「Two-Pass Global Star Alignment (deep-sky)」と「Apply Existing Registration」を利用した方が、もっと簡単に正確に重ね合わせすることができます。

とは言え、やはり元の撮像がしっかり撮れてないと、結局は何も炙り出せないので、撮影技術と画像技術は合わせてセットで向上させていく必要があります。
さらにスキルアップして方法論を進化させ、いくらかでもお役に立てるような紹介ができればと思います。
[まとめマガジン:電子観望ことはじめ ]