先日、深城ダムで撮影したクリスマス星雲を処理していたときのこと。輝星が飽和していることに気がつきました。調べてみるとBXT (BlurXTerminator)を実行したときに飽和しています。
この現象はAI Version 4のみで発生し、Version 2では起きていませんでした。またCorrect Onlyでも発生しました。
「どうして・・・?」
悩んでいると、星沼会仲間のだいこもん曰く
「BXTをかける前から、星は飽和していませんか?」
BXTをかける前は、上記の画像のようにR, G, Bチャネルのピクセルの値は全て1以下の値だし、そんなことはないはず・・・と思いつつ、測定をしてみました。使ったツールは、pixinsightのScriptメニューのUtilitiesの中にある2DPlotです。グラフが綺麗ではなかったので、データ出力してExcelでグラフ化しています。
あららら・・・。見事に飽和しています。値こそ1に張り付いていませんが、ピークが切り取られています。さすがの星沼会の理論家だいこもんです。
飽和しているのに値が1未満なわけ
どうして、飽和しているのに値が1未満だったのでしょう。これは、おそらく前処理に理由があります。撮影した時点では、Subframeに写った輝星は値が1となり飽和しています。
輝星が飽和した複数のSubframeをImage Integrationプロセスでスタックするときに、Image Normalizationという処理が走ります。Image NormalizationはSubframe間で輝度を一致させる処理です。このときにBackgroundの輝度を合わせるために、ピクセルの値を差し引く処理が走った結果、ピークが1より小さくなったのかと思います。上記のImage Normalizationのリンクにわかりやすい画像がありますのでご覧ください。
開発者のRussellさんに聞いてみた
だいこもんによる飽和の指摘と並行して、BXTの開発者のRussellさんにも問い合わせをしてみました。この記事の最初の画像を送り「BXTをかけると輝星が飽和してしまった」と聞いてみました。すると、驚くことに数十分で連絡がありました。
This is by design. AI4 was trained to complete the PSF of clipped stars.
Russellさんからの連絡
「これは設計通りの動きです。AI4は、クリップされた星のPSFを補正するようトレーニングされています。」
clipped starとはピークが切り取られた星のことを指しています。つまりRussellさんの回答も「最初から飽和された星を補正した」ということでした。BXTによる修正内容を2Dplotを使ってグラフにしてみました。
適切に補正されているように見えます。その後、わからないことがあったので、何度かRussellさんとやりとりしました。主な内容は下記のとおりです。
- RGBそれぞれのチャネルで、飽和したデータにたいして補正処理をかけている。
- またそれに加えて、AI Version 4は、シーイングがRGBのうち一つのチャネルで著しく悪いときに、チャンネル間のFWHMやPSFの裾野の傾きなどの不一致を補正する。
- 縦軸を対数にしたら、よりわかりやすいはず。
さっそく対数をとってみました。
Beforeの特徴を残しながら適切に修正されているのが、よくわかります。
Russellさんの文章を読んでいると「収差のここをトレーニングした」「シーイングによる色のシフトをトレーニングした」という記載が多くみうけられます。ブラックボックス的に機械学習をかけているのではなく、天体写真への理解をもとに、個別の課題について子供を学習させるようにBXTを育てていることがうかがえます。ますますBXTへの信頼感が高まる私でした!
(追記) 2024.1.21 Russellさんに記事を読んでいただきました
やり取りする中で、私のブログもRussellさんに紹介していました。日本語のブログですが翻訳ツールで読むことができると思ったためです。「とても良い記事で、読者に正しい理解を伝えてくれてありがとう」とコメントいただきました。