機材

ASI1600MM-COOLの『のっぴきならぬ問題』④


★少し真面目に比較データを取ってみました

まずは、お断り

先日のエントリーで

ASI1600MM-COOL2号機の出力データを解析してみて、
 ①「L1L4素子」と「L2L3素子」との間には、出力輝度に差がある
 ②その違いは比感度(ゲインの違い)では無く、差分のようだ
 ③「L1L4素子」は「L2L3素子」よりも高めの数値が出ている
と書いたのですが、「ポカミス」が発覚しました。

元々、MM2号機はビームスプリッタの直交方向に装着していたので鏡像になっており、これを回避するために撮像時にフリップ(上下反転)出力をしていたのを忘れていました。
つまり、
 L1 L2
 L3 L4
のように想定した配置が、実際には
 L3 L4 
 L1 L2
のように転置されていたことになります。
したがって、上記の③は
 「L1L4素子」は「L2L3素子」よりも低めの数値が出ている
の誤りでした。

さて、これまでは(網目状ノイズが出るという)問題を想定していなかったため、「何気なく撮影した」データを無理矢理解析していたのですが、今回は少し真面目にデータを取ってみました。

<撮像データの概要>
[ZWO ASI1600MM-Cool]※2号機
Pan=0
Tilt=0
Output Format=Fits files (*.fits)
Binning=1
Capture Area=4656x3520
Colour Space=MONO16
Hardware Binning=Off
High Speed Mode=Off
Turbo USB=96(Auto)
Flip=None
Frame Rate Limit=Maximum
Gain=139
Exposure=0.014
Timestamp Frames=Off
Brightness=10
Gamma=50
Temperature=-14.6
Cooler Power=73
Target Temperature=-15
Cooler=On
Auto Exp Max Gain=300
Auto Exp Max Exp M S=30000
Auto Exp Target Brightness=100
Pattern Adjust=0
Apply Flat=None
Subtract Dark=None
Display Brightness=1
Display Contrast=1
Display Gamma=1

撮影対象は、トレース台を転用したなんちゃってフラット光源です。

撮影鏡筒は、BOERG89ED+ビームスプリッタ+自作レデューサで
フィルターは用いていません。
今回は、ショットノイズの影響を回避するために200枚コンポジットした画像を整数値変換して16bitFITSに書き戻し、Delphiで解析ごっこしてみました。


★2系統の素子間の輝度分布差異
ASI1600MM-COOLの『のっぴきならぬ問題』④_f0346040_02074364.jpeg
モノクロ機であるASI1600MM-COOLですが、上記のように撮像素子を4つの群に分けて輝度分布を解析してみます。
その結果

ASI1600MM-COOLの『のっぴきならぬ問題』④_f0346040_23405264.jpg
※緑のラインがL1+L4の輝度分布、青のラインがL2+L3の輝度分布です。
 横軸が出力輝度値で、縦軸がピクセル数です。
 横軸はリニアスケールで、縦軸はログスケールにしています。

今回は、ノンフィルターでフラット光源を撮影したので、輝度分布が見やすくなりました。

やはり、「比」ではなく「差」が出ているようですね。


★時間が取れないので・・・

本来、ここでコーディングし直してL1~K4の4ピクセルを1グループとして、「L1&L4の平均」と「L2&L3の平均」を各グループごとに調べて統計処理するべきなのですが、今あまり時間が取れないので、簡易的な『検証ごっこ』に切り替えます。

大まかな考え方は下記の通りです。

 ①任意の輝度を持つピクセル数をイベント数と解釈する
 ②隣接するセルの真の輝度値は等しいと仮定
 ③低輝度側からイベント数を積分する(いうなれば積分スペクトル)
 ④積分値が同じになった点は「頻度が等しい」と解釈する
 ⑤「頻度が等しい」=「本来の輝度値が等しい」と仮定する

ちなみにこの手法は(大昔に研究していた)高エネルギー宇宙線の縦方向発達の解析に用いられる「Equi intencity method (等頻度法)」からヒントを得ています。
当然、カメラの検証に用いる物ではありませんが、社会人になって一切の研究から手を引いたあぷらなーとは昔身につけた手法しか出てこないので、大目に見てやってください。(イーブンオッドコンポジットも宇宙線解析のイーブンオッド法からヒントを得てます)


★『等頻度法』による出力輝度差推定

先述の方針にしたがい、「解析ごっこ」した結果は次のようになりました。

同じ『ハズ』の輝度値が素子グループによりどう出力されてしまっているかの推定は・・・・

ASI1600MM-COOLの『のっぴきならぬ問題』④_f0346040_00023434.jpg
 ※青ラインは「L1&L4」、赤いラインは「L2&L3」による出力輝度の推定を表します。
  横軸が積分イベント数、縦軸が推定される出力輝度値で、どちらもリニアスケールです。

むう・・・。
やはり、比では無く差が一定になっている様ですねぇ。

ちなみに「L1&L4」グループと「L2&L3」グループの出力輝度差は、758と推算されました。
要するに
「L1&L4」素子は「L2&L3」素子よりも758だけ出力値が低くなっちゃってる
というのが、今回の『解析ごっこ』の結論です。
ASI1600MM-COOLのADCは12bit出力で、出力値に16を掛けて(4bit分のスキマを入れることと同義)16bitデータを吐き出しますので、
約1.2%の出力誤差(というかズレ)が生じてるとも解釈できますね。


★『やっつけ補正』してみる

では、上記で推定した「758」を「L1&L4」グループの出力値に加算してやるとどうなるのかを見てみます。

すると・・・

ででん!
ASI1600MM-COOLの『のっぴきならぬ問題』④_f0346040_00201486.jpg
 ※青ラインは「L1&L4」に758加算したもの、黄色いラインは素の「L2&L3」出力値です。

完全では無いものの、かなり差が埋められました♪


★以上の『解析ごっこ』から得た方針

ASI1600MM-COOL2号機の『網目状ノイズ』を軽減するには・・・
L1素子とL4素子の出力値に758を加算すれば良い。
という方向性が見えてきました。
(あくまで今回の撮影条件の場合です)

でもなー。モノクロ機はカラーベイヤー機と異なり、「チャンネルごとに別処理できるソフト」が無いからなあ・・・。
うーん。
やっぱ、自分でコード書くしか無いんだろうか・・・・・。
でも、FITSファイルの読み込みルーチンを考えるだけでも膨大な時間がかかっちゃったし、そもそも、ど素人が無理矢理コードを書いたので
読み込みだけで1ファイル30秒もかかっちゃうしなあ。これ、書き出しルーチンを実装するだけで力尽きそう。しかも激遅という・・・・(笑)。


★いや、ちょっと待て!!

「網目状ノイズ軽減のアイディア」として思いついた「第1案」は、
L1素子とL4素子に補正定数を加算する
というものでしたー。

いや、待てよ・・・・これって・・・・・・
もしかして・・・・・
なんか
『オフセット』の挙動っぽい気が・・・

さっそくやってみます。

冷却温度や光源や望遠鏡などの条件は全て同じにして
露光だけをゼロ(というか最小値)にして撮影してみます。
それを200コマコンポジットしてみると・・・

・・・出た!!
ASI1600MM-COOLの『のっぴきならぬ問題』④_f0346040_01181838.jpg
あちゃー!
いわゆる『オフセットファイル』自体に網目状ノイズがバリバリ乗ってる!
犯人はこれかっ!

ここで得られた『オフセットファイル』をフリップして「ダークファイル」に見立て、先日の鉄塔写真に作用させてみます。

すると・・・・

ででん!
ASI1600MM-COOLの『のっぴきならぬ問題』④_f0346040_02062448.jpg

 ※左:先日の『素』画像をコンポジット 右:今回作った『オフセット』を減算

おお!
あんなに『じゃじゃ馬』だった2号機の画像が、
まるで別物に!!

あ~あ。
もう、「灯台もと暗し」とはこのこと。
MM1号機が「ダークもフラットもオフセットも」不要なくらいに素直な画像を吐き出すものだから、完全に盲点でした。


★という訳で(前提的)結論

ASI1600MM-COOLのRev3機で乾燥剤入り口が銀色のタイプはオフセットを意識しなくてもセーフだけれど
乾燥剤入り口が黒色の個体の場合は、
露光や明るさに関わらず「必ず」オフセットを引くべし

ということですなー。

あ~あ疲れたー。
(けど安心した)

※まだ完全に問題が解消したわけでは無いですが、解決まで時間の問題という印象です。

Commented by オヤジ at 2017-12-25 07:05 x
>冷却温度や光源や望遠鏡などの条件は全て同じにして
例えば、撮影直後に撮ることになりますか。?
>露光だけをゼロ(というか最小値)にして撮影
露光=Gainはゼロにできますけど、Expも0.1とか最小値と言う意味ですか。
オヤジの脳味噌じゃ、やはり理解が苦しいですが、糸口を見つけられたあぷらなーとさん、素晴らしいですね。
(システムや写真に賞賛を送ったことは有りますが、blog管理人さんを賞賛するの初めてかな。)(爆)
Commented by まーちゃる at 2017-12-25 07:57 x
おはようございます!
まーちゃるです。

おお!!?
なんだか検証がすごい勢いで進んでますね!
露光0のファイルって言うのはつまりはバイアスってことでしょうか?
ライト画像からバイアスを引けばちゃんと補正されると…
なんとなく合っている気がします!
ちょっと今日帰ったら僕の実撮影画像でも確認してみます!
確かにキャリブレーションしない時のスタック画像はモザイクっぽいムラが出てましたが、キャリブレーションしたファイルでは相当軽減していた気がします(^-^)
っていうか、フラットもバイアス引いた方が良さそうですね…
僕のキャリブレーション後のスタック画像に少しモザイク状ムラが残ってるのはフラットからバイアス引いてないからかも…?
Commented by voyager_camera at 2017-12-25 08:51 x
あぷらなーとさん、皆さん
未だ良く理解していないのですが、「オフセットファイル」とは何でしょうか。
BIASでしたら、私が使っているMaxIm DLによる何時もの処理では必ず減算しています。
同ソフトではFLATのDARKやBIASの減算も、LIGHTのDRAKをAuto-Optimize指定でScaling処理してくれます。
あぷらなーとさん、まーちゃるさんはこれらのベース処理をどのようにされていますか?
PixInsightでもAuto-Optimizeはありますので、これらのソフトを使ってFull Calibrationを行う限り、ASI1600MM-Cool Proでも千鳥格子上のパターンノイズは出ないということでしょうか?
Commented by supernova1987a at 2017-12-25 22:12
> オヤジさん

そうですね。
オフセットフレームは
露出ゼロでも乗ってくる輝度データを撮影したものです。
いわゆるバイアスフレームと同じですが、イメージとしてはあらかじめ下駄が履かされている感じでしょうか。
明るい対象の場合、MM1号機ではオフセットフレームを撮らなくても問題ありませんでしたが、2号機はダメだったようです。

Commented by supernova1987a at 2017-12-25 22:19
> まーちゃるさん
すみません。
「オフセットフレーム」は「バイアスフレーム」と呼ぶ方が普通でしたね。
というわけで「網目状のバイアス」がライト画像に載ってると考えて良いと思います。
Commented by supernova1987a at 2017-12-25 22:40
> voyager_cameraさん

混乱させてすみません。
各素子間の感度差ではなく、素子ごとのゼロ点のズレ的なニュアンスを表すときに、「バイアス」よりも「オフセット」の方が馴染み深かったのですが、一般的にはコレが「バイアス」ですよね。
というわけで、これまで(昼間なら)バイアスを意識する必要がなかったMM一号機とは異なり、2号機はバイアス補正必須のようです。

残念ながら、ステライメージとSharpCap以外のソフトはほとんど使ったことがないので、真面目なベース処理はほとんどやったことがありません。(ダークノイズとショットノイズが支配的だったので。)
今回の一件で、少し勉強してみようと思いました。

なお、まーちゃるさんの作例を見る限り、ASI1600MMのProの方は、私のノーマル2号機よりも、むしろ1号機に近い印象を受けましたので、私の2号機は特殊なロットなのかも知れません。クールピクセルがホントに少なくて不気味なほどですので。
Commented by にゃあ at 2017-12-25 23:01 x
私も自分のロットの個性が気になっていて、MMで撮影するつもりなのですが、年末のおつきあいやら本業で手が出せていません。スミマセン!
Commented by uto at 2017-12-27 01:01 x
読み出しノイズが小さいCMOSだと理想論なら、ダーク・BIASはできれば引きたくないといころですが、このようなノイズがあるとそういうわけにも行きませんね。
CMOSカメラはどれもなかなかにクセが強いので、冷却CCDみたいに機種は変わっても、これが定番!という処理法がなかなかない気がしています。
センサーによってクセがだいぶ違うなぁとは感じてましたが、同じセンサーのカメラでも、大きな差があるとは、驚きでした。
Commented by supernova1987a at 2017-12-30 13:06
> にゃあさん
たぶん、私のロットと同じだとは思うのですが、『ロットの差』ではなく完全に『個体差』だったら泣くなぁ・・・。まあ、私の場合は、「オフセット(バイアスフレーム)の重要さ」を学べたので良しとしましょう。

にゃあさんも、またお暇なときに、チェックしてみてくださいね。
(バイアスノイズは自動的にダークフレームに乗ってくるので、ダーク減算の有無で比較するのでも十分だと思います。)

Commented by supernova1987a at 2017-12-30 13:18
> utoさん
そうですね。
ダークやバイアスやフラットを補正する度にS/N比は下がってしまいますものね。

ともかくASI1600MM1号機が(明るい対象なら)あまりにもノイズが少なくて、ダークもバイアスも引く必要が無かったのが今回の『右往左往』の原因でした。
「同じ型番だから同じ特性だ。」
などと思い込んだのが失敗の元。マイナーバージョンの差異であっても『別物』と解釈するべきでした。ひょっとすると、同一機種なのに撮り手によって評価が分かれるカメラがあった場合は意外と「こんなオチ」だったりするものなのかも知れませんね(笑)。

・・・それにしてもMM2号機、クールピクセルがほぼ皆無で『気色悪い』です。当初目的の一つ(同一機種2台で撮影すればクールピクセルが出る位置が異なるので、それぞれの画像を比較することでクールピクセルを完全に回避できるのでは?!)は潰えてしまいましたが、それとはまた異なる活用方法を画策中です。
Commented by ぴんたん at 2018-01-02 16:09 x
あぷらなーとさん、こんにちは。
お初にコメントさせてもらいます。ぴんたんと申し上げます。
僕もASI1600MM-Coolユーザーになったので、ものすごく興味深く記事を拝読させていただいてます。
僕の1600MMは1号機と同様のようで、クールピクセル多目、格子状ノイズ少なめでした。
クールファイルを作ってそれを加算する効果は絶大でした。
こんなこちを思いつかれるあぷらなーとさんは凄いです!
もうこのプロセスなしでASI1600MMは使えないレベルです。
拙作ソフトにFlatAideProというのがあるんですが、それにバッチ処理でクールファイル作成から各画像への加算を一気に行う機能を追加してみました。
クールピクセルの検出アルゴリズムがよくわからないので思いつきのアルゴリズムでやった関係で、完全とはいかないかもしれませんが、SIでの作業を省力化できるようになりました。
FlatAideProの「バッチ演算」というメニューコマンドで行うのですが、これはフリーユースで使える機能となってます。
ちなみにFlatAideProは下記にあります。
http://www.baoland.com/FlatAide/
格子状ノイズ軽減のために、L1L4とL2L3との差の平均値を補正する機能もつけてみました。こちらは効果が未実証ですけど。
ということで、ご挨拶がてらコメントさせていただきました。
今年もご活躍を期待します。
Commented by supernova1987a at 2018-01-02 21:05
> ぴんたんさん

わあ!「あの」ぴんたんさんからコメントをいただけるとは!
ようこそ、アヤシいブログへようこそ♪
王道以外の『変なこと』ばかりして遊んでいるので、肝心の腕がちっとも上達しませんが、たまに面白い発見がありますので、この「遊び」やめれません(笑)。

ASI1600MMの画像処理に拙作『クールファイル補正法』をご利用いただきありがとうございます。やはり、他の方が実践されて結果が出ないと確信がもてませんので。

え?!
FlatAideProに、『クールファイル補正』のプロセス実装されたのですか!!
しかも『格子状ノイズ軽減処理』も!?いやー、電光石火とはまさにこのこと。
開発者様にはかないませんねぇ。

※正常ピクセルとクールピクセルを弁別するロジック(もしくは閾値)の選定にはご苦労されたことと推察いたします。(私も色々と思案中ですが、あいにく実装技術が不足してますのでで・・・)

※『年越し薔薇』の一件で、フラット補正の壁にぶつかったので、近いうちに正規ライセンスも購入させていただくつもりです♪
名前
URL
削除用パスワード
by supernova1987a | 2017-12-25 01:32 | 機材 | Comments(12)

あぷらなーとの写真ブログ


by あぷらなーと
PVアクセスランキング にほんブログ村