ほしぞloveログ

天体観測始めました。

カテゴリ:観測機器 > ASI294MC Pro

バイアスノイズで少しやり残したことがあるので、試しておきます。


疑問: バイアスフレームをマスターバイアスで補正してみたら?

前回、バイアスフレームを何枚かスタックしてリードノイズを求めてみましたが、枚数のルートで減っていくはずのリードノイズが実際には理論通りに減っていきませんでした。すべてのバイアスフレームに載っている共通のノイズがあると考えられたからです。

それでは、多数のバイアスフレームをスタックして最後に残った共通のバイアスノイズ(PixInsight用語では「マスターバイアス」というそうです)で、各バイアスフレームを補正してから、改めて何枚もスタックしたらどうなるのでしょうか?面白そうなので試してみましょう。


予測

単純に考えるとこんな予想ができます。
  • 前回の測定で、最後まで残った全バアスフレームに共通にあるノイズがさっぴかれるので、理想的に枚数のルートに比例してノイズが少なくなっていく。
  • 最終的にはあるオフセット(一定の輝度という意味)を持った、のっぺりした画像になる。
この予想は、実際に試す前に頭だけで考えたものです。さて本当にそうなるのか、もし違ったとしても実際にどこまで迫れることやら。


測定

さて、実際に試してみましょう。

マスターバイアスは再現性もチェックするために、前回撮影したのとは別に新たに撮影し直しました。枚数ですが、できる限りノイズの少ないものということで、1024枚重ね(て平均し)たものにします。このマスターバイアスで各バイアスフレームを先に補正してから1024枚スタックします。それでもノイズは単に理想的なものを1024枚重ねたものより、(マスターバイアスが足し合わさった分)ルート2倍大きくなるはずです。その分だけ理想的な枚数のルートでノイズが改善されるというのからはずれてくると思います。(と、ここら辺のズレくらいまで実際の測定前に頭の中で考えました。)

また、バイアスフレームも新たに撮影しました。マスターバイアスを作った際の1024枚でもいいのかと思ったのですが、それだと同じものから同じものを引いただけになってしまい、本来残って欲しいノイズもゼロになってしまうかと思ったからです。


結果


今回も1、4、16、64、256、1024枚の比較です。青色の理想的な場合と、緑色のマスターバイアスで補正されたもの赤色のマスターバイアスで補正されていない(前回と同じ)ものを載せています。あと、わかりやすいように縦軸をlogスケールにしました。理想的だとグラフは直線になります。

03_readnoise_vs_gain_02_masterbias


考察

さて、結果を改めて見てみます。マスターバイアスで補正したものは明らかに理想的なラインに近づいています。1024枚の時は同じ程度の(相関のない)ランダムなノイズを2回足し合わせていることになるので、理想的な場合に比べてルート2倍程度大きくなるはずです。無相関なノイズは足しても引いても2乗和のルートになるので、ルート2倍ということです。1.4倍くらいのはずが、実際には1.8倍くらいなので、それでも理論値より少しだけ大きい値になっているようです。256枚のところにも少なからずその影響が出ています。計算上は1.25のルートなので、1.18倍ですが、実際には1.24倍です。さらにマスターバイアスの枚数を増やせば1024枚のところでももっと理想的なラインに近づいてくるでしょう。


少し補足です。まずは1枚重ねで単純にマスターバイアスを引くことを試したのですが、平均値が同じものを差っ引くことになってしまうので、ADU(輝度)が0付近に行ってしまい、その影響で標準偏差も0に近い小さな値になってしまうことがわかりました。そのため次のようにして解決しています。
  1. まずマスターバイアスの平均値の半分の輝度を持ち、標準偏差0の全くのっぺりした画像を、PixInsightのNewImageで作成します。
  2. それをマスターバイアスから引くことで、マスターバイアスの平均値を半分にしました。
  3. そうやって作ったマスターバイアスを、それぞれのバイアスフレームから引きます。
  4. その結果、平均値が輝度0より十分に大きな、マスターバイアスで補正されたバイアスフレームを作り出しました。
IMG_6322


この過程を経て初めて正しそうな結果を得ることができました。


もう一つ、実際に処理した画像を比べてみましょう。左上の奥のがマスターバイアス補正をしていないもの、右下の手前の画像がマスター補正をしたもの。ともに1024枚スタックした時の画像で、輝度は揃えてありますす。

IMG_6328

PCの画面を直接撮影したので、モアレが少し残ってしまっています。見にくいところもあると思うのですが、それでもマスターバイアスで補正をすると残っていた縦線が明らかに消えているのがよくわかると思います。



まとめ

今回わかったことまとめておきます。
  • 全バイアスフレームに載っている共通のコモンノイズが存在する。
  • そのノイズは、多数枚のバイアスフレームをスタックして作ったマスターバイアスを使って、補正することができる。ただし、オフセットごと補正してしまうことに注意。
  • バイアスコモンノイズをさっ引いたバイアスフレームはかなり理想的なランダムノイズに近い。
と言ったところでしょうか。

うーん、今回はかなり予想通りにいったので、結構満足です。予測できなかったところは、マスターバイアスで単純に補正すると平均値が0になってしまい、ばらつきも少なくでしまうことでした。これは通常の画像処理でいう、オフセットをあげて暗い部分を切ることに相当します。

というわけで、画像処理は嘘をつかないということがかなりわかってきました、、、と言いたいところなのですが、すでに少しダークノイズを試していて、こちらはなかなか一筋縄ではいかないみたいです。また余裕ができたらまとめます。


それはそうと、今回新たにバイアスファイルを2000枚ほども撮影してしまいました。すでに合計3000枚、あぷらなーとさんにだんだん迫ってきてしまいました。やばい、これはやばい。まっとうな道を行きたかったのに(笑)。




 

今回はASI294MC Proのバイアスフレームについて色々検証してみました。結構面白い結果が出たのでまとめておきます。


はじめに

昨日の昼間、めずらしくものすごい快晴。これはと思い、早速夜からカモメ星雲を撮影しようと準備をして、やっと撮影を始めたらわずか数枚で雲がもくもく。こんな日はむしゃくしゃするので、諦めてASI294MC Proの評価の続きです。

さて、大きな目的としては、前回の課題の一つダークノイズがどれくらい撮影に影響があるかですが、今回はその前々段階くらいにあたる、リードノイズのいろいろなテストです。実はあぷらなーとさんの解析に触発され、自分でももう少し泥臭い検証をしてみたくなりました。


バイアスフレーム一枚からのリードノイズの算出

あぷらなーとさんが自作ツールでバイアスフレームを解析し、見事メーカーが公表しているリードノイズと値が一致しました。私も前回の記事でSharpCapのSensor Analysis機能を使うことで、メーカー値と同じ値を確認したのですが、もう少し自由に測定できないか試したくなりました。それでも独自ツールを作るのは大変なので、今回はPixInsightの「ImageInspection」の「Statistics」を使いってリードノイズを求めたいと思います。

まず、SharpCapを使い、ASI294MC Proのバイアスフレームを撮影します。条件は
  • モード: RAW16 (16bit)
  • 露光時間: 0.0032ms
  • Gain: 121
  • Brightness(オフセット): 20
  • ホワイトバランス: Red 50, Blue 50
とします。それをPixInsightで読み込み、Statisticsツールを起動し、開いた画像を選択します。

IMG_6308


Statisticsツールでは「14bit [0,16383]」を選び「Normalized」にチェックを入れます。その時のavgDevの値を読みます。この場合、2.1でした。単位はADUなので、eに変換するためにコンバージョンファクターを使います。前回の測定から

IMG_6283

ゲイン121のところ見ると、0.88とあります。先ほどの2.1 [ADU]にこの0.88 [e/ADU]をかけると1.85 [e]となります。SharpCapで測定した値が1.86 [e]なのでほぼ正しい値が出ているようです。

ちなみにコンバージョンファクターがわからない時は、あぷらなーとさんのブログの記事でも紹介されていたように、ユニティーゲイン (UG、eとADUが同じになるゲインのこと、すなわちコンバージョンファクターが1ということ)から求めても同じことです。メーカーによるとUGが117とのことです。ゲイン121の時とは(117-121)/10=-0.4dB違うので、10^(-0.4/20) = 0.95となります。コンバージョンファクターも0.95倍すればいいので0.95 [e/ADU]となります。SharpCapの実測の0.88 [e/ADU]とは少し違いますが、UGをメーカー値としたためこれくらいのズレはあり得るでしょう。UGが正しいとしてリードノイズを求めると、2.1 [ADU] x 0.95 [e/ADU] = 2.00 [e]となりますが、それでもそれほどのズレではないです。


ちょっと脱線します。SharpCapで測定したデータですが、実際に測定しているところは

Gain Value e/ADU Read Noise (e) Full Well (e) Relative Gain Rel. Gain (db) Dynamic Range (Stops)
0 3.99686 7.80246 65484.6 1 0 13.0349
59 2.04740 6.86512 33544.6 1.95217 5.81034 12.2545
61 1.99842 6.83844 32742.1 2.00001 6.02064 12.2252
100 1.28103 6.34598 20988.4 3.12004 9.88322 11.6915
119 1.03257 6.11416 16917.6 3.87080 11.7560 11.4341
121 0.88019 1.85936 14421.0 4.54092 13.1429 12.9211
200 0.35776 1.59308 5861.64 11.1717 20.9624 11.8453
300 0.11418 1.41354 1870.75 35.0044 30.8825 10.3701
400 0.03624 1.35693 593.803 110.280 40.8499 8.77350
500 0.01171 1.32912 191.794 341.432 50.6661 7.17294

だけで、あとは全て計算値です。このことは、例えばFull Wellの値とRelative Gainをかけてみると、全てのゲインで65484.6(上の表は小さな桁を丸めてあるので少しずれます。)と同じ値になり、さらにこれにゲイン0の時のe/ADUの値3.996863906をかけるとぴったりと14bitで整数値の16384になることなどでわかります。Full Wellは本来サチルくらいの光量をカメラに入れて測定から求めるべきなのですが、SharpCapは14bitの最大値をサチった値と仮定して簡易的に求めていることもわかります。ZWOのメーカー値もどうやら同じように測定されているみたいなので、これはこれでありなのかもしれません。


さて、本題に戻ります。一例としてゲイン120の場合で計算してみましたが、他のゲインはどうでしょうか?他のゲインの値も、実際に撮影した画像からPixInsightを使ってリードノイズの値を求めてみたので、グラフにしてみます。赤がSharpCapのSensor Analysis機能で測定した線青がPixInsightを使って一枚一枚マニュアルで求めた線です。

03_readnoise_vs_gain1


グラフを見ても、SharpCapとマニュアル測定の差はほとんど誤差の範囲だとわかります。

というわけで、PixInsightを使うことで、リードノイズの値を画像からいつでも求めることができるという手法を手に入れたということになります。



バイアス画像を多数枚スタックするとどうなるか?

とりあえず、簡単にリードノイズを測定することができるようになったので、色々やってみたいと思います。

まずは、これらバイアスフレームを多数枚スタックするとどうなるのでしょうか?

スタックするとばらつきが平均化されるので、もしバイアスフレームに存在するノイズが完全にランダムなら、理想的には枚数のルートに比例してノイズが小さくなっていくはずです。

2、4、16、256、1024枚と、枚数を増やして、上と同様にPixInsightで実測したリードノイズの値を求めてみました。その結果をグラフに示します。理想の場合(青線)と、実際にスタックした場合(赤線)での比較になります。スタックはPixInsightのIntegration機能を使いました。蛇足になりますが、Macbook Proでスタックした場合4144x2822の16bitのfits画像1024枚でスタック時間は7分くらいでした。これくらいなら待つことができます。



03_readnoise_vs_gain2


グラフを見るとわかりますが、理想的なノイズの減り方に比べて、実測の方が明らかにノイズの減り具合が悪いです。これはなぜなのでしょうか?


実際のスタックしたバイアス画像を見比べてみる

この謎を解決するために、実際にスタックした画像を見比べてみましょう。まずはこちら、

IMG_6310


左上の奥の画像から1、4、16枚、最後の右下手前の画像が256枚重ねたものです。輝度は1枚ときの画像に全て合わせているので、直接見比べることができます。ぱっと見てわかるのは、枚数が多くなると明らかにノイズが滑らかになっていることでしょうか。これを見る限りは理想的にはどんどんノイズ(ばらつき具合)は少なくなっていってもいいはずです。


では次に、同じ画像で輝度を256枚重ねた画像に合わせてみましょう。

IMG_6312


前は綺麗に見えていた256枚画像も、実は完全にランダムなノイズではないことがわかります。縦線みたいなものが残っています。逆に1枚の時には横線が目立っています。これは横線に関してはランダムに近いノイズで、枚数を重ねることで滑らかになっていくのですが、それでも全枚数に共通に存在する縦縞のノイズが残ってしまい、それがグラフでの理想値との差を生むと推測されます。実際に1枚重ねだけの画像を何枚も見比べてみると、横線がてんでバラバラに入っていることがわかります。

ここからわかることは、
  • 多数のバイアスフレームを使うのは、バイアスフレームのランダムに存在するノイズを減少させるため。
  • バイアスフレームでライトフレームを補正するのは、スタックしたバイアスでさえも残った、バイアスフレーム全てが持つ共通のノイズを除くため。
ということが言えるのではと思います。

まとめ


はあ、ババーッとまとめてさすがに疲れたので、今日はこれくらいにします。まだまだ面白いことはあるのですが、さすがに書くスピードの方が追いつきません。さて、今日のまとめです。
  • 単体のバイアスフレームから、リードノイズを見積もることができる。
  • SharpCapも全部のゲインで全部の測定をしているわけでなく、一部を測定して、あとは計算で出している。
  • バイアスフレームをスタックすると、ノイズは減っていくくが、無限に小さくなるわけではない。
  • バイアスフレーム全てに共通するノイズが存在し、それらはバイアス補正でライトフレームから差っ引くことができる。
といったところでしょうか。

ちなみに、あぷらなーとさんはバイアス解析だけ1万枚も撮影するというような、言わずと知れた変な人です。私はたかだか千枚ほどしか撮影していないので、あぷらなーとさんに比べて10分の1くらいしか変でないということがわかってもらえると思います。






このページのトップヘ