天体写真のモデル化実験

実際に撮影した天体写真には目的となるオブジェクト以外にも光が写り込んでいます。さらにデジタル撮影ではCCDやCMOSの特性上生じるノイズもオブジェクトのクオリティを損なう要因になります。
天体写真の画像処理とは、このオブジェクト以外の物を排除する処理と言っても過言ではないと思います。しかし、実際の画像ではそれぞれが複雑に入り組んでいて、何をどうするとどうなるのか、良く分からずに結果オーライで画像処理を進めてしまう危険性が多々あります。特に、数学的な解説が面倒な処理ほど、原理を知って応用するというよりは、たまたま試して上手く行った手順や変量に依存してしまいがちです。そこで、オブジェクト以外の情報を、出来る限りモデル化して限局的に画像処理を行うことで、個々の画像処理の特性を実感できない物かと考えました。

2016.4.5 追記しました

2016.3.25 追記しました

2016.3.23 追記しました

2016.3.21 追記しました


戻る

モデルの作り方

 
どのようにしてモデルを作製していくのか、大筋を決めておかなければなりません。
画像のサイズは処理速度を考えて400*400ピクセルとしました。等倍でも楽に表示できるので使いやすいサイズだと思います。
 

形式は16bitモノクロのTiff形式として、フォトショップのレイヤーで出来る限り柔軟性のある設計を目指します。
 
 
 
まずランダムノイズを作ってみます。

Biasのレベル上でプラスマイナス均等にランダムノイズが出来るように調整しています。
 
実際のランダムノイズの画像

実際の数字は0−65535の範囲になりますが、ピンと来ないので画面表示の8bit 0−255で考えようと思います。

Biasはレベル20の平坦な値とし、ランダムノイズは±15程度

一枚毎にノイズを張替えて、10枚のランダムノイズ画像を作成 
 
最初のモデル作製 

まずは、ランダムノイズとカブリがある画像でインテグレーション(コンポジット)に係る処理を試すためのモデルを作ります。

左のDarkノイズのグループをOFFにして、ランダムノイズを一枚毎に入れ替えれて出力すれば目的の画像が作れます。
  下から順に、Bias(ランダムノイズでレベルを調整しているので、このモデルでは必要ありません)
ランダムノイズのグループ
Darkノイズ(今は使いません)
 
カブリ

0(上)−30(下)の傾斜のカブリをBiasの上に加算してある、使用するときは傾斜部分に適当なゲタを加算して合成します。
 
Hotピクセル

レベル0の背景に255の点

比較(明)で合成します
 
Coolピクセル

255レベルの背景に0の点

比較(暗)で合成します 

HotピクセルとCoolピクセルは全ての画像の同じ位置に存在します。
 
最終的にこのような画像10枚をLightFrameとして使用することになります。ランダムノイズのレイヤーは一枚毎に替えて作っているので
インテグレーションの効果を見ることが出来ます。 

Integrationに係る処理

  まずインテグレーション(コンポジット)して見ましょう 
  このとき気になるポイントは
加算平均を使うのか、メジアンを使うのか
SigmaClippingの使い方、その効果と副作用? 

ステライメージでは「加算」という選択肢がありますが、使ってらっしゃる方は多いのでしょうか?今回はやめておきます。

 
用意する画像は上のレイヤーで作製した10枚と、
同様に作製し、オブジェクトを暈したボケ画像1枚、
オブジェクトだけを若干斜めに移動して合成したガイドエラー画像一枚

合計12枚 
 
 更に10枚のうち9枚にはSigmaClippingの効果を見るために落書きをしてあります。
   
  H - レベル255
M - レベル128
L - レベル0
   
やー、長かった!
やっとここからが本題です。

 
まずは12枚を普通に加算平均で合成します。

特徴が見やすいようにレンジを狭めて強調してあります。

Hot&Coolピクセルは今の段階では直接関係ありません。

12枚平均なので、落書き(HとMのみ)とガイドエラーが残っています。ただしレベル0で書いたLは見えませんし
ボケもそれほど目立ちません。

画像の上下にカブリもあります。

ランダムノイズについては 10枚平均するとこの程度になります。
次に12枚をメジアンで合成します。

既にここで、「おーーーーーっ!」 

落書きの文字もボケもガイドエラーも見当たりません!!

Median最高ーーー

ですね。

そうなんです。メジアンを使うと一枚だけに含まれている飛びぬけた値は12枚全体に影響しません。

「そんなの知ってるよー、常識」と聞こえて来そうですが、実際見た事はあまり無いですよね?


ただ加算平均と比較して若干背景が荒れています。全て良ければ加算平均かメジアンか選ぶ必要は無いですよね。
 
背景の画質を見ると加算平均の方が良いように見えますが、飛び抜けた値が残ってしまうのは面白くありません。

そこでSigmaClippingの出番となる訳です。

Sigmaclipの偉いところは、画像の中の1つ1つのピクセル座標について重なる全ての画像を串刺しするように比較
してくれる事です。つまり重なり合うピクセルの中に飛び抜けた値があるとそのピクセルを除外したり、置き換えたり
する事が可能になります。

飛び抜けた値を決める時に重要なのがNormalizationです。比較する画像の背景レベルを揃えないと、飛び抜けている
と判定するための基準が画像ごとにばらばらになってしまうからです。ただしPIではインテグレーションを行う段階でしっ
かりNormalizeされているので、これはRejection用のNormalizationなんだそうです。

ただし、それでも完璧ではありません。
SigmaClipping


まず、一番一般的な物を使ってみます。

Normalizationはしっかり初期設定のまま使います。

SigmaLowとSigmaHighも初期設定のまま、それぞれ4と2でやってみます。この値がどの程度飛び抜けているピクセルを
除外するかの基準となっていて、初期設定は明るいピクセルほど厳しく判定するようになっています。

この数字の意味はおそらくシグマ(標準偏差)の倍数という意味だと思います。


結果 レベル255、128、(0は加算平均した時点で既に見えない)で書いた落書きは綺麗に消えました。

加算平均でもSigmaClippingで飛び抜けた値をしっかり排除できました。

しかし・・・

背景の荒れは、メジアンと大差ないですね。これでは意味がない。
そこで、SigmaHighを調整してみます。

左はSigmaHigh=3.3です。

中央のMの痕跡が何となくわかる程度ですが、背景の荒れは格段に良くなっています。

つまり「背景の荒れ」を改善するには「SigmaHigh」を出来るだけ大きな値で使用した方が良いという事でしょう。

ただし落書きが残ってしまっては面白くありません。ギリギリ値を下げて落としどころを見つける必要があります。
 
あるいは、他のアルゴリズムを試すのも一方でしょう。 

PixInsightでは選択できるRejectionは数種類用意されていますが、「枚数が多ければWinsorizedSigmaClippingを使った
方が良い」とは、良く言われています。


SigmaLow=4、SigmaHigh=3.3 SigmaClippingでは落書きは完全に消えませんでしたが、WinsorizedSigmaClippingを使うと
綺麗に消すことが出来た上に、背景のクオリティーも落ちていません。

やっぱり、よく言われているようにWinsorizedSigmaClippingが良さそうですね。ただし、枚数が十分に多いことが使用条件
だと思います。

PIの解説ではSigmaLow, Highの値はアルゴリズム間で互換があるとは書いてありますが、理屈を考えても今回の実験結果
を説明しきれません。逆に居直れば、それだけにモデル実験は頭で考えているより得る所があるのだ!とも言えると思い
ます。
   
AveragedSigmaClippingも背景に影響しにくそうで、何となく良さそうですが、今回は使いません。

 
まだ終わりじゃないですよ。次は肝心のカブリの影響を試していこうと思います。

 
SigmaClippingを使用して、

左:SigmaHigh=3.4 シグマ(標準偏差)の3.4倍より大きな値を「かけ離れた値」と判定
右:SigmaHigh=3.3 左より0.1厳しく判定

画像の上:カブリはほとんど無い
画像の中央:カブリの影響を受けている
画像の下:カブリの影響を強く受けている

このような状況に設定したモデルです。

カブリは0−30、実際の画像よりかなり極端なカブリですが、画像処理の経験上レンジを切りつめるとこれ位に感じる事も
あると思います。

結果をみると、画像の上では両者とも落書きのMの字は完全に消えています。画像の中央では左の3.4では文字を判定で
きる程度、3.3では痕跡が若干残っています。画像の下では両者とも落書きが残っています。3.3ではかろうじて形が分かる
程度です。

Normalizationしているのに何故?と思われるかもしれませんが、PIでは1枚の画像の背景は1つの値として設定されている
ようなので、背景のレベルが画像の中で異なると(=正にカブリ!)SigmaClippingの効果が一定になりません。そこで、最も
効果が弱い部分に合わせて変数を設定してしまう事になるでしょう。そうすると効果が強く表れる部分では上で説明したよう
な理由で背景の荒れを起こしてしまう事になるのです。

どーでしょう。面倒くさいでしょ?

これを回避するために最も良い方法は、Sigmaclippingを行う前に画像一枚ずつカブリを除去すればよいのです。

が・・・

これは大変ですよね。手作業で除去すると言ってもレベル切りつめ前なので、肉眼でカブリの程度を確認できないので
PIならABEのFunctionDegree=2で除去すべきでしょう。効果がどうであれ、ここでDBEを使うべきではありません。

数枚程度なら何とかなりますが、枚数が増えるとSigmaClippingのために膨大な手作業を行うのは相当の根性が必要で
しょう。
 
 

肝心な対策ですが・・・

可能性としてはlinear fit clippingはカブリのある画像で効果を発揮するらしいです。

解説を読むと1枚の画像の中のカブリなのか、ある部分のカブリの影響によるバックグラウンドの変化なのかはっきりしません。
理屈だと後者のような気がするのですが、前者なら儲けもの!って事でやってみると、なんかうまく行きます!
背景は上から下まで加算平均だけの画像に近いですし、落書きはしっかり消えています。SigmaHighは4なので、どのアルゴリ
ズムでも値の重みが同じならば背景への影響が少ない事も頷けます。

でも、25枚以上画像があった方がよいそうです・・・・今回は12枚なので何とも言えませんが、


SigmaClippingは今回の実験でもボケを解消したり、ガイドエラーを改善したりする可能性は分かりましたが、現実的には
宇宙線とか突発的なノイズとかに対処する物だと思います。私のようなアマチャン天体写真屋の場合木を見て森を見ずに
ならないように適当に利用すべきかもしれません。

 
 
予定ではもう少しこのモデルで進めるつもりでしたが、オブジェクトの合成に不具合を発見してしまったので、

オブジェクトを加算合成し、極淡い星雲モデルの追加
アライメントに使用できそうな星を入れてみる(これはまだ使いません)
それらしいダークノイズを加算

して、新モデルを作成して次のステップに進もうと思います。
 
 
次の実験は

Hot/Coolピクセルの処理
ダークノイズとオブジェクトの画質の関係
極淡い星雲の「淡い」

について考えてみようと思います。


 
今回のモデルは
1、オブジェクトをしっかり加算して重ねる
2、レベル10の淡い星雲モデルを中央に入れる(多分レベル3程度の方が良さそうです)
3、PIのBatchPreProcessingでアライメントできるように星を入れる
4、ダークノイズを加える

以上の点を変更し10枚出力しました。もう落書きは必要ないので入れません。 
 
まず、最初の実験はコスメティックコレクション(CC)です。
前の実験でHot/CoolピクセルがSigmaClippingの影響は全く受けない事を確認(当たり前ですけど)したので、CC使って
いこうと思います。

CC自体は単純で、前のモデル実験では100%除去出来る事を確認してあります。ところがダーク減算とかフラット補正が
絡むと以外に上手く行きません。 

 
横に3本Hotピクセル
の列が残っています

まずダーク減算とCCの関係を見て行こうと思います。

CC単独でも良いのですが、実際の処理過程に近くするためにPixInsightのBatchPreProcessing(BPP)を使ってみよう
と思います。

ちなみにBPPではMasterDarkとかMasterFlat画像をついでに作成してくれますが、CCを行うように設定してもMasterDark
に対しては行われていないようです。しっかりHot/Coolピクセルが残ったMasterDarkが出力されました。
 
 

まず比較して頂きたい画像は左の画像です。両者の違いはMasterDark画像にHot/Coolピクセルを含むか含まないかです。

BPPで、CC、ダーク減算、アライメント(全て同じ位置なので形式的)、インテグレーションを、それぞれ行いました。
念のためSigmaClippingは行っていません。

レンジを切り詰めて表示しています。左右を比較してみると右の画像Oの内部上方に黒いピクセルの列が残っています。
これはHotピクセルの2段目の部分が反転して残っているためです。左側は全て消えています。右では1段目と3段目は
消えていますが、2段目だけがこのような形で残ってしまいました。 

部分的にHotピクセルが反転して残る事は、実際の画像処理で経験しているのでこんな単純なモデルで再現できたことに
驚きました。モデル実験侮りがたし!

つまり、ダーク画像からしっかりHot/Coolピクセルを除去できていればCCは上手く行く可能性が高いという事です。
フラット補正については次のモデルで試すことになりますが、どのような結果になるでしょう?

ここで疑問が生じます。
CCの変数を決める時、対象画像からダークを減算すべきなのか否か?
もし減算するならそのダークのHot/Coolピクセルは除去すべきか否か?

悩ましいですね・・・


順番が前後しましたが、PIのCCは別にBPPを使わなくても単独で機能します。 

Hot/Coolピクセル除去のさじ加減は、3通りの方法が用意されていています。
1、マスターダークを参考にする方法
2、Hot/Cold(Cool)それぞれSigmaを設定する方法
3、リストを作って読み込んで除去する方法

大きなCCDではリストを作るのは大変ですし、マスターダークを使うと何となく上手く行く事もありますが、使用方法の解説が
ありません。正しい使い方が分からない!そこで大抵は2番を使う事になり、プレビュー機能を使ってHot/Coolそれぞれの
シグマを適当に設定して実行してみると言うのが、CCの一般的な使い方です。BPPでCCを行うためにはこの設定をインス
タンスとして出力してBPPで読み込む事になります。

撮影時にディザリングを行っていると、CCの効果はBlinkを使って簡単に確認する事が出来ます。この時星や対象の動きに
合わせて移動する点はSigmaClippingで除去可能ですが、動かない点が残っている場合はCCの設定が不適切と言うことに
なります。

  さて悩ましい話を終らせようと思いますが・・・

2番でSigmaを変化させても、ダーク画像にHot/Coolピクセルが存在している場合、BPPでは完全にHotピクセルを除去出来
ませんでした。理由は良く分かりませんが、回避するにはダークに対してCCを行ってからマスターダークを作製すれば良い
だけの話なので、あまり深追いせずに「CCはダーク、フラット、バイアス?に対しても行う」としておけば良さそうな気がします。

ついでに、ダークとかフラット画像でも、全て同じ位置で重なっているはずなので、Hot/Coolピクセルはマスター画像から除去
する事も可能です。周辺のノイズのバラつきは補間に影響するかも知れませんが極わずかでしょう。その方が簡単ですよね。

 


さらにモデルに手を加えました。だんだん現実的なレベルの物に近付いていると思います。

レンジを切り詰めないと対象(星雲や銀河)が見えません。同時にノイズのレベル振幅についても出来るだけ実際の撮影時
に近づけてあります。カブリもそれなりに対象に影響を与えるレベルに調整しました。

ブログにSigmaClippingで背景が黒いピクセルで荒れたサンプルを載せましたが、現実にはあそこまで極端にSigmaClipping
が悪影響を及ぼすことは稀だと思います。

 
今回のモデルが、より現実的なモデルになった事をお見せします。

左の画像は、
左: WinsorizedSigmaClipping:SigmaHigh=3、SigmaLow=4
中:SigmaClipなし
右:ダークの最適化

3枚とも同じレベルに切り詰めて見やすくしてあります。

この画像から、ノイズモデル(10枚バラバラのランダムノイズ+レベルに10%のバラつきがあるダークノイズ)が、現実に近い
振る舞いをしていて、最小値に設定したマスターダークをPIの最適化によって適正に補正出来た事がわかります。

マスターダークが適合していない場合に発生する荒れがSigmaClipによってそれほど改善していない事が分かります。逆に
ブログでご紹介したようなひどい背景の荒れを起さないとも限らないので、ダーク減算の残差については、マスターダークの
再作製やOptimizeなどの手段を取るべきだと思います。

※このモデルにはHot/Coolピクセルは含まれていますが、前述の実験結果を踏まえて完全に除去してあります。

 
今まではほぼ背景のお話でしたが、ここからいよいよ対象に係る実験も出てきます。

モデルは左上の右側、最適化したマスターダークで補正した物を使用します。

 

今回のモデルでは周辺減光を入れていないので、画像の背景レベルが均一にならない原因はカブリに限定されます。

下から上に数%直線的にレベルが減少しています。

この画像をPIのSTFを使って、自動でレンジを切り詰めてあります。この時STFはどのような基準で切り詰めレベルを決めて
いるのか分かりませんが、対象Oの中心部分の淡い星雲(に見立てた円)は殆ど区別できません。

カブリの影響を排除して更にレンジを切り詰めるにはカブリの除去を予め行う必要があります。PIであればABEかDBE、
SI7ならば周辺減光/カブリ補正を使う事になります。


どうでしょう、カブリを取るとOの中心部分に淡い星雲が見えてきました。 

ただ残念ながら背景の荒れもかなり強調されています。

実際の画像処理でも淡い部分を出すためには、背景の荒れと戦う事になります。恐らく最後に効いて来るのはランダム
ノイズ
のような気がしますが10枚平均してこの程度です。
 
次は、カブリを除去するプロセスを復習してみようと思います。

 
PIで、真っ先に思い付くプロセスはDBE( DynamicBackgroundExtraction)です。

この方法は明示的にサンプルを画像に配置して、背景モデルを作製して減算するなり、除算するプロセスです。
サンプルは自動で排列すると格子状に配置され、何も考えずに実行すると左の様になります。

自動で配置されたサンプルがしっかり背景処理できるように調整して、ようやくそれなりの成果が得られます。

それでも左下のようなレベルが限界で、極端にレンジを切り詰めると、完全な均一ではなく、所々凹凸が見られます。
この微妙な凸凹感が画像処理の最終段階で結構邪魔になる事が多いので、カブリの様に比較的直線的なムラには
あえてそれを複雑化してしまうDBEは避けるべきだと考えています。

 

もう一つがABE(AutomaticBackgraoundExtraction)で、こちらはFunctionDegree程度しか調整できないプロセスです
が、逆にこのザックリした感じがカブリを除去するにはちょうど良いように感じます。

左上はFunctionDegree=2(周辺減光がある場合は2が良い)
左下がFunctionDegree=1(直線的なカブリだけならば1が良いと思われるが現実的ではない)

完全に平坦になるわけではありませんが、いざとなればフォトショップでグラデーションマスクを使って除去できそうな
単純な不均一となる事が、むしろカブリ除去に向いています。

ただ、レンジの切り詰めは非常に極端なので、実際の画像処理でここまで切り詰めることはありません。 
さて、同じ画像をSI7で試して見ましょう。

SI7でカブリ補正を行うためには一旦DDPで軽くレンジを切り詰めて、それから周辺減光・カブリ補正を使って補正します。

今回のモデルで使用したカブリはフォトショップのグラデーションを用いて作製しています。直線的ではありますが若干
かまぼこ型であることが分かります。PIのABEのFunctionDegree=1でスッキリ取れない訳ですね。 
次は非線形圧縮です。

PIではHTを手動で操作して切り詰めることも出来ますが、STFでレベルを自動計算する事も可能です。
 
SI7ではDDPを使う事になります。

こちらは手動で調整していきます。 
非線形圧縮の結果を見て見ましょう。

左上:PIならばSTFとHTを利用します。 
左下:SI7ならばDDPデジタル現像ですね。

同じ画像を使ってPIとSI7を比較してみました。PIはSTFが自動で設定した値、SI7は画像を確認しながら手動で最良と
お思われる値です。

背景の荒れは明らかにSI7が良いですね!しかし画像の平坦さに不自然な感じがあります。気のせいかな・・・?
カブリ補正の影響を確認するためPIのABE,SI7のカブリ補正後の画像を同じ方法で切り詰めてみると、殆ど変わりません。
ここでは両者に差が出ていない事が分かります。 
 PIでも手動で行うと、SI7に近い像を得ることが出来ます。

やはりSTFの自動補正はちょっと実用レベルより強い圧縮なのでしょうか?たまたまこのモデルに限ったことか?
 
今回の結果はまだ1回試しただけの物なので、鵜呑みにしないようにして下さい。
後日修正の可能性もあります。


次は、いよいよアライメントを行うモデルです。
 

アライメントを行うためには、オブジェクトだけが微妙に移動しているモデルを作る必要があります。
そこでフォトショップのレイヤー上で、上下 1ピクセル、左右2ピクセル、回転は±0.3度の範囲を手動移動して
10枚のモデル画像を作製しました。

ダークのばらつきは10%、ついでに20階調分の周辺減光も付けました。

Hot/Coolピクセルは除外してあります。

なおモデルに使用している星像は、モノクロCCDで撮影した本物の星像を取り出して使っています。

 


左:SI7
右:PIのBPP

今回はSI7 vs PIではありませんが、両方とも上手く動いたので結果を載せます。

条件はなるべく同じになるようにPIではマスターバイアスは使用せず、SI7ではフラットダークを使用していません。
SigmaClippingは除外範囲を±2シグマで統一してあります。

両者とも使いこなすには細かなコツみたいなものがあるので、この程度の比較で優劣は付きませんが出したままの画像を
載せておきます。アライメントとそれに伴う補間、そしてその状態でのインテグレーションから得られた画像はこれまでの
モデル実験で得られた残存ノイズの雰囲気とはかなり異なります。そして淡い星雲部分の境界線の違いはアライメントと
インテグレーションが淡い部分の解像度に大きく影響する可能性を示しています。

モデル実験はようやくほぼ現実に近いモデルを扱えるようになりました。

ここからです・・・


戻る