天文はかせ幕下

ダーク減算を手抜きするとフラット補正が合わない、といふ話

全体の概要

このエントリでは,ダーク減算を下手に省略するとフラット補正が失敗することの実例と,その理由ついて書きました。お伝えしたい内容は,次の3つです。厳密な1次処理を行えば,フラット補正が成功する撮影データについて

  1. フラットダーク減算だけを省略すると,フラットは補正不足になる
  2. ライトフレームのダーク減算だけを省略すると,フラットは過剰補正になる。
  3. 上記を両方同時に省略すると,ライトフレームのダークとフラットフレームのダークが打ち消しあって,おおよそフラット補正は合う。(ただし,フラットの輝度をライトフレームに合わせている場合)

これを検証した光学系と撮影データ,処理ソフトは以下のとおりです。

  • カメラ:HKIR改造済みEOS6D
  • レンズ:Mamiya Apo-sekor 250mm F4.5
  • 撮影データ:ISO1600, 240秒露光,外気温10℃前後
  • 処理ソフト:Pixinsight

細かな話:先に結論を書いておきますと、ポイントになるのは画像に付与されているオフセット(=バイアス)です。天体CMOSカメラでの撮影では画像にOffsetが付与されるので、どの画像処理ソフトを使っても上と同じ状況が起こると思います。一方で、デジカメのRawデータをDSSやRStackerで処理する場合は、ダークはフラット補正にほぼ影響しないようで、上のことを気にする必要がなさそうです。しかしながらPixinsightで処理する場合は、ダーク減算がフラット補正に大きく影響するのを確かめています。またStellaimegeでも同様のことが起こると、Twitterにて@fateOkiriさんや@daemon1995さんから教えてもらいました。これらのソフトは、一時処理において後からオフセットを付与しているように思えますが、まだはっきりと証拠はつかめておらず現在調査中です(2021-05-11)

ことの発端は1次処理でのトラブルでした。先日にアンタレス付近の撮影データを処理していて,フラットダークを省略したら,フラットが合わなかったのです。まずはその様子からみていきます。

ダーク減算を手抜きするとフラットが合わない!

処理対象は、次のアンタレス付近モザイクの一コマです

f:id:snct-astro:20210514220446p:plain
右側方向からの光害被りと周辺減光がよくわかります。

これに対して一次処理を行うのですが、顧問は「面倒だからいいや」とフラットダークを撮影せずにマスターフラットを作りました。すると次のように、フラットが合いません。

f:id:snct-astro:20210514221329p:plain

右側の四隅が暗く落ち込んでいます。うーん、やっぱりフラットダークは必要なのかなと、厳密な形での一次処理をおこなうと、

f:id:snct-astro:20210514220836p:plain

はい。しっかり補正できました。周辺減光が補正されて、ほぼリニアな被りだけになっています。

ここですこし好奇心が湧きます。じゃあ、ダーク減算だけをサボるとどうなるか? するとヒドイことに。

f:id:snct-astro:20210514221149p:plain

極端な過剰補正です。これはいけませんね。

 

最後に、ダーク減算もフラットダーク減算も両方ともサボった最も怠惰な一次処理をした場合はどうなるでしょう。驚くべきことに、これが実は良い結果になります

f:id:snct-astro:20210514221650p:plain

 最後に、GIFアニメで比較してみましょう

f:id:snct-astro:20210514224701g:plain

厳密な一次処理と、ダークを一切引かない手抜き一次処理が、ほぼ同じ結果になっています。

なんでこんなことが起こるのか、考察してみました。しかし内容に進む前に、そもそも一次処理とは何かを確認する必要があります。

一次処理の概要

天体写真の一次処理について説明します(ご存知の方は飛ばして次のセクションに進んでください)。まずは下のスライドをご覧ください(これは@kaerupapaさんが作成されたものを、許可を得て拝借しました)

f:id:snct-astro:20210512222312p:plain

非常にわかりやすい図です。順を追って見てみましょう。まず左上のこれ

f:id:snct-astro:20210512223017p:plain
これは、われわれの撮影対象が天体(黄色の部分)とSky(青い部分)の和であることを表しています。Skyとは光害など大気の輝度のことです。これをデジカメで撮影すると

f:id:snct-astro:20210512223702p:plain

こんなデータが得られます。Biasは、カメラが画像データに付与するゲタみたいなもの。その上のDarkがセンサーや回路の熱揺らぎに起因するノイズ、その上にSkyと天体データが乗っています。その「丸み」は光学系に周辺減光を表しています。このデータから黄色い天体部分だけを復元しようとするのが、我々が行っている一次処理ですね。

それは以下のようなプロセスで行われます:

f:id:snct-astro:20210512224704p:plain

まずダーク減算によって紫と茶色の部分を取り除いてから、フラット除算で周辺減光を復元し、最後に被り補正などの「スカイ引き」を行って、黄色の天体画像を得るわけです。この順番が重要です。

さて、ここに赤字で示したフラット割りのためには、「フラット画像」を用意します。それは天体撮影に用いた機材で、一様な光源を撮影して取得します(この撮影方法についても、さまざまなノウハウがあるわけですが、本題からずれますのでここでは割愛します)。ここで注意しいたいのはフラット画像にもまた、次に示すようにバイアスとダークが含まれているということです。

f:id:snct-astro:20210512230416p:plain

これに注意して、一次処理を行う必要があります。

 

さて、このエントリーの目的は、「ダークで手抜きするとフラットが合わない」のを説明することでした。そのためにはちょっとした数学を使うのが便利です。

一次処理を簡単な数学で理解する

数式を使うと言っても、一箇所を除けば中学レベルの数学です。まず記号を以下のように定義しておきます。

L_{\rm out}  ...デジカメによる取得画像(ライトフレーム)
L_{\rm in}  
...目的データ+sky
D_{\rm L}  
...ライトフレームのダーク+バイアス
F_{\rm out}  
...デジカメによるフラット取得画像
a  ...周辺減光率
C ...フラット取得に使用した一定光源
D_{\rm F}  
...フラットダーク画像

例えば一番上の L_{\rm out}は、画像では

f:id:snct-astro:20210512232352p:plain

といったものでしたが、これを数式で書いてみると

 L_{\rm out}= a L_{\rm in}+D_{\rm L}~~~~~~(1)

とこう書けます。同様にデジカメによるフラット取得画像は,一定光源に周辺減光率を乗じてダークを加えたものですから

 F_{\rm out}= a C+D_{\rm F}~~~~~~(2)

とかけます。

一次処理は、(1)式と(2)式から L_{\rm in}だけを取り出す手続きのことで、それは次のように書けます:

 L_{\rm in}=C\dfrac{L_{\rm out}-D_{\rm L}}{F_{\rm out}-D_{\rm F}}~~~~~~(3)

(3)式の分子と分母がダーク減算、フラットダーク減算を表しているわけです。

 

このように数式で表すと何が嬉しいかと言いますと、手抜きの一次処理を行うと何が起こるかを簡単に見ることができるのです。やって見ましょう。

ダークを手抜きすると何が起こるか?

ダーク減算もフラットダーク減算も、面倒くさいので省略してフラット補正を行ったとしましょう。そのようにして得られた画像は

L_{テヌキ}=C\dfrac{L_{\rm out}}{F_{\rm out}}~~~~~(4)

と表せます。これは(3)式でD_{\rm L}=D_{\rm F}=0としたものです。(4)式の右側に(1)と(2)を代入し、次のように変形しておきましょう。

L_{テヌキ}=C\dfrac{a L_{\rm in}+D_{\rm L}}{a C+D_{\rm F}}~~~~~(5)

 この式の分母をよく見ます。フラットダークを表すD_{\rm F}の値はaCに比べてとても小さいと仮定して良いはずです。そこで、ここが先ほど注意した「一箇所」なんですが、テイラー展開を用いて小さな量の一次までを取ると、ゴニョゴニョっと計算して

L_{テヌキ}=L_{\rm in}+\frac{1}{a}\left( D_{\rm L}-\frac{L_{\rm in}}{C}D_{\rm F} \right)~~~~~(6)

とこうなります。

この(6)式を見ると分かることが三つあります。それを次にまとめました。

(6)式から分かること3つ

[1] フラットダーク減算をサボると、フラット補正不足になる 

フラットダーク減算だけをサボって、ダーク減算はしっかりやった場合を考えます。これは(6)式にてD_{\rm L}=0とした場合です。すると式は

L_{テヌキ}=L_{\rm in}\left( 1-\frac{D_{\rm F}}{aC} \right)

となります。この式の括弧の中身を図形で表すと次のようになります

f:id:snct-astro:20210513003607p:plain

つまり結果は補正不足です。

[2]ダーク減算をサボると、フラット過剰補正になる

今度は、ダーク減算だけをサボって、フラットダーク減算はしっかりやった場合を考えます。ダークの取得は大変ですから、こう言うケースは多いと思います。これは(6)式にてD_{\rm F}=0とした場合です。すると

L_{テヌキ}=L_{\rm in}+\frac{1}{a}D_{\rm L}

これは図形で表すと

f:id:snct-astro:20210513004429p:plain

となります。つまり結果は過剰補正です。


[3]フラットダーク減算もダーク減算も両方サボると、フラット補正はそこそこ合う

最後に最も罪深い者、ダーク減算を一切やらない場合を考えます。しかしこの人はちょっと用心深く、ライトフレームとフラットフレームの輝度を合わせていたとしましょう。これは

 \frac{L_{\rm out}}{aC}\simeq 1

と表せます。この分子に(1)式を代入して計算して

 \frac{L_{\rm in}}{C}\simeq 1-\frac{D_L}{aC} ~~~~(7)

を導けます。これをまた(6)式に代入して整理し,ダークの2次以上の微小量を無視すると,次のL_{テヌキ}の表式が得られます。

L_{テヌキ}\simeq L_{\rm in}+\frac{1}{a}(D_{\rm L}-D_{\rm F})

 この式のカッコの中身,ダークとフラットダークの差がどのくらいの大きさを持つか?それはカメラによるわけですけど,そもそもバイアスは打ち消し合うはずですし,EOS6Dのようなノイズの小さい個体ならほぼ無視して良いレベルではないかと思います。すると次のことが言えます。

定理:フラット画像の輝度をライトフレームに合わせている場合に,ダーク減算とフラット減算の両方を省略して一次処理すると,ダークとフラットダークがお互いに打ち消し合い,フラット補正が近似的に合う。

顧問はいままで、この手抜きパターンでフラットを合わせてきたような気がしています。

フラット補正とフラット補正でないモノ

最後に、もうちょっとだけ。フラット補正を含む一次処理は、観賞用の天体写真だけでなく、天体画像解析でも重要になります。例えば星の測光では、厳密な形での一次処理とsky引き(被り補正)を行わなければ、正確な測定ができません。

ところで最新版のStellaImageでは、セルフフラット補正という機能が追加されました。しかしそれは厳密な意味でフラット補正と呼べるシロモノではなく、 天体画像解析では使うことができません。似たような処理は、FlatAideProや、Pixinsightでも実装されていて、広く使われています。しかし、それを「フラット補正」と呼んでしまうと、これから天体画像解析を行う初心者にとってあらぬ誤解を生むのではないか?と、これは上で一次処理のスライドを提供くださった@kaerupapaさんが懸念されていました。そういったものはフラット補正ではなく、別の名前、たとえば「背景輝度勾配除去」とでも呼ぶべきじゃと。

顧問も賛同いたします。と同時に、このブログで2番目に高いアクセス数を叩き出している

このエントリにて、「フラット補正」という用語を使ってしまっていることをお詫びいたします(ちかくお断りを書き加えます)