ほしぞloveログ

天体観測始めました。

カテゴリ:software > BlurXTerminator

M104の画像処理の最中に、BXTの恒星のにんしきでで気付いたことがありました。これも補足がてら書いておきます。



BXTの適用限界の一例

BXTについてはある程度一定の評価が定着したのかと思います。私もお世話になっていますし、今回のM104本体の内部構造を出すのにも大きな効果がありました。焦点距離1300mmのSCA260に対してM104は少し小さくて、拡大して細部を見ながら処理をすることも多いです。その拡大しながらの処理の最中で改めて気になったのは、BXTでどこまで微恒星を補正できるのか?ということです。

下の画像を見てください。左から順に1. BXT無し、2. BXTのCollect only、3. BXTで恒星を小さくし背景(銀河本体)の解像度の上げたたものになります。
名称未設定 1

星像を改善しているのはすぐにわかると思いますが、その中で目で見て明らかに微恒星とわかるものをいくつか取りこぼしてしまっているものがあります。次の画像は、仕上げ前にStarNet V2で恒星を分離し取り除いた画像になります。

Image07_ABE1_crop_ABE4_DBE_BXTc_SPCC_BXT_LRGB_GHS_GHS_Preview01

BXTで救いきれなかったものは(BXTとは別ソフトのStarNetでも)背景として認識されるようです。でもそれらは、人の目には微恒星側に認識できるものも明らかにあるのかと思います。

シンチレーションなどでブレてしまい星の鋭さが出ていないのが原因かと思われますが、問題はBXTで星と「認識される」か「認識されてない」かで、その切り替わりを境に本来の明るさや大きさが大きく変わり、差が出てしまうことです。以前、BXT2にバージョンアップする前にも同じようなことを書いていま。


その後BXT2にアップデートした時に、微恒星をより拾うようになっていると解説されています。

そのためかなりマシになっているはずなのですが、今のところは今回程度の認識が限界になるようです。

この程度のことは強拡大しない限りほとんど気になることはないでしょう。さらに今回の最終結果としては背景をそこまで明るくすることはないので、微恒星と思われるシミのようなものは実際には見えなくなってしまい、実用上はなんら問題はないと思います。ただ、強拡大したり、淡い背景を強炙り出しする場合は、この問題が露呈する可能性があることは、頭の隅に置いておいた方がいいのかもしれません。

もう少し突っ込みます。微恒星をできる限り拾うって、色々価値があると思うんですよ。上の背景だけの画像を見てたら、微恒星と思われるところは輝度としては明らかに盛り上がっているので、その部分だけうまく集光できないかなと思ってしまうわけです。FWHMが星の明るさによらずに一定なように、恒星の広がり具合は本来明るい星でも暗い星でも同じはずです。でも暗い星は背景のノイズに埋もれてしまうために鋭さが出ないのかと思います。この鋭さを仮想的に補助してやればいいのかと思います。手動だと銀河本体はマスクをかけて、背景の中の輝度差で微恒星部を分離して、その盛り上がり部を背景に対して増強してやることでしょうか。もしくはここからBXTのcorrect onlyでまともな星像にしてもらうとかできればいいのかもしれません。あ、でもこれだと本来の輝度から変わってしまうかもしれません。まあ何か方法はありそうなので、じっくり考えてみると面白いかもしれません。


bin1にdrizzle x2に、さらにBXT

今出せる解像度の限界は、bin1にdrizzleを2倍以上かけて、さらにBXTでしょうか?PowerMATEなどのバローでも分解能は増す可能性はありますが、ここでは考えないことにします。

どこまで細かいのが出せるのか、果たしたそれに意味があるのかを試してみました。使ったのは2023年5月に撮影した5分露光のL画像を36枚、WBPPでインテグレートしたものです。その際、drizzle無しと、drizzle x2で出力しました。bin1なのでdrizzle x2の方は解像度は16576x11288で、ファイルサイズは1枚だけで1.5GBになります。全ての処理が重く、簡単な操作さえ非常にもっさりしています。画像処理もものすごいディスク食いで、はっきり言ってこの時点でもう実用的でもなんでもありません。

このdrizzle無しとx2それぞれにBXTをかけてみました。

まずはdrizzle無し。左から順にBXT無し、BXTのCollect only、BXTで恒星を小さくし背景(銀河本体)の解像度の上げたたものになります。
comp1

次にdrizzle x2の場合。BXTに関しては上と同じです。
comp2

この結果は面白いです。drizzle x2のほうがBXTが適用されない微恒星が多いのです。理由は今のところよくわかりませんが、niwaさんのブログのこの記事がヒントになるでしょうか。どうもBXTには適用範囲というものがあり、FWHMで言うと最大8ピクセルまでだとのことです。

でも今回、そもそもdrizzle無しでもFWHMが12とか13で、すでにこの時点で大きすぎます。drizzle x2だとするとさらに2倍で、はるかに範囲外です。でも不思議なのは、FWHMが12とか13でも、たとえそのれの2倍でも、一部の恒星にはBXTが適用できているんですよね。なので少なくとも私はまだこの適用範囲の意味はよくわかっていません。

あと、niwaさんのブログの同じ記事内にあった、明るい星に寄生する星が出てくることが私も今回M104でありました。
fakestars
真ん中の明るい星の下と左上に偽の星ができてしまっています。

niwaさんはdrizzle x2だと出て、drizzle x1だと緩和されると書いてありましたが、私の場合はdrizzle x1でした。恒星を小さくすることと、ハロを小さくすることが関係しているようで、両パラメータの効きを弱くしたら目立たないくらいになりました。そのため今回の画像では恒星を小さくしきれていないため、さらに星雲本体を拡大してあるため、恒星が多少大きい印象となってしまっているかもしれません。

いずれにせよ、ここでわかった重要なことは、むやみやたらに元画像の解像度を上げてもよくならないどころか、不利になることさえあるということです。BXTの効かせすぎも寄生星を生む可能性があります。ファイルサイズのこともあるのでbin1とdrizzle x2はそもそも実用的ではないし、さらにこれにBXTを使うなんてことは今後もうないでしょう。今のところbin2でdrizzle x2にBXT、bin1にdrizzle無しでBXTくらいが実用的なのかと思います。小さい銀河みたいに拡大すること前提で分解能を求めるとかでなければ、bin2にdrizzle無しでBXTでも十分なのかと思います。

BlurXTerminator version 2.0 and AI version 4がリリースされました。



以下BXT2とかAI4とか呼ぶことにします。以前のものはBXT1とか単にBXTでしょうか。BXTというのはバージョンに限らずBlurXTerminatorの略語の場合もあるので、ここでは文脈によって使い分けたいと思います。


Correct only

まず、恒星についてはこれまでのBXT1に比べて明らかに大きな改善です。以前もこの恒星の収差を改善するCorrect onlyがかなりすごいと思って評価しましたが、その当時は星雲の細かい模様出しが第一の話題の中心で、恒星を小さくすることが次くらいの話題でした。収差などを直すCorrect onlyはあまり話題になっていなかったのが残念でした。でも今回はむしろ、この収差補正の方が話題の中心になっていて、しかもその精度が格段に上がっているようなので、より精度の高いツールとして使うことができそうです。

今回のBXT2で修正できるものは:
  • First- and second-order coma and astigmatism: 1次と2次のコマと非点収差
  • Trefoil (common with pinched optics and in image corners with some camera lenses): トレフォイル(矢状収差?) (歪んだ光学系や、いくつかのカメラレンズで出る画面四隅において一般的)
  • Defocus (poor focus and/or field curvature): デフォーカス:  (焦点ズレや、もしくは像面歪曲)
  • Longitudinal and lateral chromatic aberration: (縦方向、横方向の色収差)
  • Motion blur (guiding errors): 動きのブレ(ガイドエラー)
  • Seeing/scatter variation per color channel: 各色ごとのシーイング/散乱の違い
  • Drizzle upsampling artifacts (2x only): ドリズルのアップサンプリング時の偽模様(2倍時のみ)
とのことです。

ちなみに、BXT1の時に修正できたのは以下のようなものなので、BXT2では圧倒的に進化しています。
  • limited amounts of motion blur (guiding errors): ある一定量までの動きのブレ(ガイドエラー)
  • astigmatism: 非点収差
  • primary and secondary coma: 1、2次のコマ収差
  • unequal FWHM in color channels: 各色のFWHM (星像の大きさ) の違い
  • slight chromatic aberration: 多少の色収差
  • asymmetric star halos: 非対称なハロ

なので、まずは星雲部分を補正する前に、一度Correct Olnyをチェックして収差などによって歪んで写った恒星がどれだけ改善されるのかを、十分に味わうべきでしょう!星雲部の模様出しとかは他のツールでも似たようなことはできますが、上に挙げたような収差補正をここまでやってくれるツールはBXTだけです。画面全体を見ている限りは一見このありがたさに気づかないかもしれませんが、拡大すればするほど、こんなに違うのか!というのを実感することと思います。

では実際に比較してみましょう。全て前回のクワガタ星雲の処理途中のリニアな段階での比較です。

1. オリジナル画像
まずはオリジナルの画像です。
Image13_mosaic_original
ε130Dは、スポットダイアグラムを見る限り非常に優秀な光学系です。同系列のε160EDやTOA-130N+TOA-645フラットナーといったスーパーな鏡筒には流石に負けますが、FSQ-130EDとコンパラくらいでしょうか。反射型なので光軸調整さえ安定してできれば、間違いなく最強の部類の鏡筒と言えると思います。上の画像は四隅でもかなり星像は小さくなっていますが、まだ少し流れが残っています。

2. BXT1相当 (BXT AI2)
ここにまずは、BXT1相当の、BXT2に従来のAI Ver.2を適用します。ここではCorrect onlyでの比較です。
Image13_mosaic01_BXT

四隅の星の流れは明らかに改善されていることがわかりますが、星の大きさなどは大きく変わることがなく、これだけ見てもε130Dの光学性能の優秀さが伺えるかと思います。

3. BXT2 AI4
では上の画像で十分で、高性能鏡筒に今回のAI4をかけても意味がないかというと、そんなことはありません。BXT1では微恒星を救いきれていない場合が多々ありました。このページの「もう少しL画像を評価」の2のところ以降に、

「BXTはかなり暗い最微恒星については恒星と認識するのは困難で、deconvolutionも適用できないようです。そうすると逆転現象が起きてしまうことも考えられ、より暗い星の方がそれより明るい星よりも(暗いけれど)大きくなってしまうなどの弊害も考えられます。」

と当時書いていました。そして暫定的な結論として

「この逆転現象とかはかなり拡大してみないとわからないこと、収差の補正や星雲部の分解能出しや明るい恒星のシャープ化など、現段階ではBXTを使う方のメリットがかなり大きいことから、今のところは私はこの問題を許容してBXTを使う方向で進めたいと思います。シンチレーションの良い日を選ぶなどでもっとシャープに撮影できるならこの問題は緩和されるはずであること、将来はこういった問題もソフト的に解決される可能性があることなども含んでの判断です。」 

と書いていますが、今回は実際にソフト的に改善されたと考えて良さそうです。

実際に見てみましょう。BXT2 AI4を適用したものです。
Image13_mosaic02_BXT2_4
一見BXT1との違いがわからないと思うかもしれませんが、少しぼやけて写っているような最微恒星に注目してみてください。BXT1では取りこぼしてぼやけたままに写っているものがBXT2ではきちんと取りこぼされずに星像が改善されています。

このことはリリース次のアナウンスの「Direct linear image processing」に詳しく書いてあります。

One of the most significant “under the hood” features of AI4 is that it processes linear images directly. Earlier versions performed an intermediate stretch prior to neural network processing, then precisely reversed this stretch afterwards to restore the image to a linear state. This was done because neural networks tend to perform best when their input values lie within a well-controlled statistical distribution.

While this worked well for most images, it introduced distortions that compromised performance. Flux was not well conserved, particularly for faint stars, and the network could not handle certain very high dynamic range objects (e.g., M42, Cat Eye nebula). These compromises have been eliminated with AI4, resulting in much more accurate flux conservation and extreme dynamic range handling.

要約すると、

BXT2では直にリニアデータを処理することができるようになった。BXT1ではニューラルネットワークの処理過程の制限から、一旦ストレッチした上で処理し、その後リニアデータに戻していた。そのため恒星の光量が変わってしまったり、特に淡い恒星では広いダイナミックレンジを扱うことが難しかった。BXT2ではこのような妥協を排除し、その結果より正確に光量を保つことができ、大きなダイナミックレンジを扱うことができるようになった。

というようなことが書かれています。これは大きな進化で、実際に自分の画像でも微恒星に関しては違いが確認できたことになります。


Nonsteller

Niwaさんが恒星の締まり具合から判断して、PSFを測定してその値を入れた方がいいという動画を配信していました。その後訂正され、PSFの設定はオートでいいとなりましたが、一方、私はこのPSFの設定は星雲部分の解像度をどれだけ出すかの自由度くらいにしか思っていないので、測定なんていう手間のかかることをしたことがなかったです。

BXTのパネルは上が「Steller Adjustments」となっていて、「Sharpen Stars」とか「Adjust Star Halos」とかあるので、こちらは恒星のためのパラメータで、恒星の評価はこちらを変えて判断すべきかと思います。とすると真ん中の「Nonsteller Adjustments」は恒星でない星雲部などのパラメータで、星雲部を見て判断すべきかと思われます。このPSFが星雲部にどう働くかはユーザーにとっては結構なブラックボックスですが、必ずしも測定値を入れなくても、星雲部の出具合を見て好きな値を入れればいいのかと思っていました(BXT2ではここが大きく変わっています)。

というわけで、いくつかのパラメータを入れてどう変わるかを見てみましたが、これまた興味深い結果になりました。

1. まずはオリジナルのBXTをかける前の画像です。こちらも前回のクワガタ星雲の画像の中のバブル星雲部分拡大していて、リニア処理時の画像になります。まだ、バブル星雲もかなりボケてますね。
Image13_ABE1_RGB_ABE4_SPCC_SCNR1_Preview01

2. 次は右下のリセットボタンを押して、すべてデフォルトの状態でどうなるかです。
Image13_ABE1_RGB_ABE4_SPCC_SCNR_BXTdefault_Preview01
恒星は上で書いた収差補正などが入り、さらに星を小さくする効果(0.5)で実際に星が小さくなっているのがわかります。そして確かに星雲部の分解能が上がっているのがわかります。今回の画像は全てBin2で撮影しDrizzle x2をかけてあることに注意で、これにBXTをかけたことになるので、相当な解像度になっています。

3. さてここで、PSFの効果を見てみます。パラメータはSharpen Stars: 0.70, Adjust Star Halos: 0.00, Sharpen Nonsteller: 1.00で、PSF Diameterだけ変えてみます。極端な場合のみ比べます。まずはPSFが最小の0の場合です。
Image13_ABE1_RGB_ABE4_SPCC_SCNR_BXTSS07PD0_Preview01

次にPSFが最大の8の場合です。
Image13_ABE1_RGB_ABE4_SPCC_SCNR_BXTSS07PD8_Preview01

あれ?恒星は確かに少し変わっていますが、星雲部が全く同じに見えます。このことは、PSFを1から7まで変えて比較しても確認しました。


4. BXT1時代にはPSFを変えたら星雲部が大きく変わっていたはずです。念のためAI2にして確認しました。

PSFが4.0の場合。
Image13_ABE1_RGB_ABE4_SPCC_SCNR_BXTSS05PD4_Preview01

PSFが8.0の場合です。
Image13_ABE1_RGB_ABE4_SPCC_SCNR_BXTSS05PD8_Preview01

他のパラメータは全て同じなので、やっぱり明らかにPSF Diameterだけで星雲部が大きく変わっています。

5. ここで、再びAI4に戻りもうひとつのパラメータ「Sharpen Nonsteller」をいじってみました。1.0からから0.5に変えています。
Image13_ABE1_RGB_ABE4_SPCC_SCNR_BXTSS07PD8N05_Preview01
これまでのSharpen Nonstellerが1.0の時と比べて、明らかに星雲部の分解能は出にくくなっています。

今回のリリースノートでは星雲部の記述がほとんどありません。ということはPSFに関しては大きな仕様変更?それともバグ?なのでしょうか。ちょっと不思議な振る舞いです。でもBXT1の時のように星雲部の解像度を出すパラメータがPSF DiameterとSharpen Nonstellerの2つあるのもおかしな気もするので、BXT2の方がまともな設計の気もします。いずれにせよ、今回のAI4ではすでに星雲部に関しては最初から最大限で分解能を出してしまっていて、これ以上の分解能は出せないようです。BXT1の時には星雲部の解像度出しが大きく扱われていたので、これを期待して購入すると、もしかしたら期待はずれになってしまうかもしれません。

でもちょっと待った、もう少しリリースノートを読んでみると、BXTの2度掛けについての記述が最後の方にあることに気づきます。

The “Correct First” convenience option is disabled for AI4 due to the new way it processes image data. It is also generally no longer necessary. If desired, the same effect can still be accomplished by applying BlurXTerminator twice: once in the Correct Only mode, and then again with the desired sharpening settings. The same is true for the “nonstellar then stellar” option: it is generally not needed anymore with AI4, but can be accomplished manually if desired.

Correct Firstとnonstellar then stellarはAI4では使えなくしたとのことで、その代わりに一度Correct Onlyをかけて、その後にCorrect Onlyを外して好きな効果をかければいいとのことです。

実際に試してみましたが、いくつか注意点が必要そうです。下の画像は、上で使ったオリジナルの画像から
  1. Correct Only
  2. Sharpen Stars: 0.70, Adjust Star Halos: 0.00, Automatic PSF: on, Sharpen Nonsteller: 1.00
  3. Sharpen Stars: 0.00, Adjust Star Halos: 0.00, Automatic PSF: on, Sharpen Nonsteller: 1.00
  4. Sharpen Stars: 0.00, Adjust Star Halos: 0.00, Automatic PSF: on, Sharpen Nonsteller: 1.00
4回かけています

Image13_ABE1_RGB_ABE4_SPCC_SCNR1_BXTCO_SS07auto_SS0auto_SS0auto

まず、星雲部の解像度出しを後ろ3回でかけていることになりますが、その効果は回数分きちんと出ていて、複数掛けで効果を増すことができるのがわかります。その一方、Sharpen Starsは2回目のみにかけ、それ以降はかけていません。これは繰り返しかけると恒星がどんどん小さくなっていき、すぐに破綻するからです。3回目のみにかけるとか、4回目のみにかける、もしくは小さい値で複数回かけてもいいかと思いますが、恒星が破綻しないように注意してチェックする必要があると思います。

最も重要なのが、PSFの設定です。BXT1時代にはここをマニュアルで数値を入れてやることで、星雲部の解像度が調整できましたが、ここまでの検証でBXT2ではその効果は無くなってしまっています。しかも、ここで試しているようなBXT2の複数回掛けで固定PSFにすると、小さくなっていく恒星に対して間違った値のPSFが適用されてしまい明らかに恒星が破綻していくので、Automatic PSFを必ずオンにしておく必要がありそうです。

というわけで、ここまでの検証でまとめておくと、
  • BXT2は星雲部の解像度出しの効果が弱いので、複数回がけで効果を強くすることができる。
  • 複数掛けは作者がOKを出している。
  • Sharpen Stars(と、今回は検証してませんが多分Adjust Star Halosも)は無理をしない。
  • PSFはオートにしておいた方が楽で変なことが起きないのでいい。
と言うことがわかりました。PSFはNiwaさんの言うようにBXT2をかけるたびに毎回きちんと測定してからその値を入れるのでもいいかもしれませんが、私の方では今回は検証していません。


BXTの中身について推測

BXTですが、まだまだブラックボックスなところはたくさんあります。ここからはあくまで個人的にですが、どんなことが行われているのか色々推測してみようと思います。

最初に、AIと言っていますがどこに使っているのか?です。自分だったらここに使うとだろうという意味も込めて推測しています。

まずは「恒星とその他の天体の区別」にAIを使っているのではないかと思います。これはStarXterminatorで既に実装されているのでおそらく確実でしょう。画像の中にはものすごい数の星があります。全てまともな形をしていればいいのですが、収差などで崩れた形の(元)恒星もきちんと恒星と認識しなければいけません。ここはAIの得意とする分野だと思います。でも、恒星の認識率も100%にするのはかなり難しいと思います。リリースノートで示されているような種類の収差を膨大な画像から学習しているものと思われ、逆にそうでないものは恒星でないと判断すると思います。ハッブルの画像などから学習したと書いていますが、ハッブルの画像は逆に収差は比較的小さいと思いますので、これと収差があるアマチュアクラスの画像を比べたりしたのでしょうか。それでも現段階でのAIなので、学習も判別も当然完璧では中々ないはずなのですが、例えば銀河などはかなりの精度で見分けているのかと思います。

個別に恒星が認識できたら、恒星にのみdeconvoutionを適用することが可能になるはずです。上での検討のように、BXT1では超微恒星は星像改善がなかったものが、BXT2では無事に恒星として認識できて星像改善されているので、このことは認識できた恒星にのみdeconvoutionを適用していることを示唆しているのかと思います。従来のdeconvolutionは効果を画面全体に一度に適用せざるを得ないので、恒星部と星雲部に同様にかかってしまいます。恒星が星雲を含む背景から分離でき、そこにのみdeconvolutionをかけられるなら、個別に効果を調整できるので、従来に比べてかなり有利になるでしょう。

ただし、恒星が小さくなった後に残る空白の部分は、従来のdeconvolutionでは黒いリング状になりがちなのですが、BXTはかなりうまく処理しているようです。説明を読んでも「リンギングなしでうまく持ち上げる」くらいしか書いていないのでわからないのですが、ここでもAIを使っているのかもしれません。例えば、簡単には周りの模様に合わせるとかですが、もう少し考えて、恒星の周りの中心よりは暗くなっているところの「背景天体の形による輝度差」をうまく使うとかも考えられます。輝度を周りに合わせるようにオフセット値を除いてやり、模様を出しやすくしてから、それを恒星が小さくなったところの背景にするなどです。S/Nは当然不利なのですが、そこをAIをつかってうまくノイズ処理するとかです。本当にこんな処理がされているかどうかは別にして、アイデアはいろいろ出てくるのかと思います。

あとBXTの優れているところが、画像を分割して処理しているところでしょう。512x512ピクセルを1つのタイルと処理しているとのことで、その1タイルごとにPSFを決めているとのことです。収差処理もおそらく1タイルごとにしているのでしょう。現在のAI処理はそれほど大きなピクセル数の画像を扱っていないので、どうしても一回の処理のための画像の大きさに制限が出るはずです。でもこのことは画像の各部分の個々の収差を、それぞれ別々のパラメータで扱うことにつながります。四隅の全然別の収差がどれも改善され、恒星が真円になっていくのは、見事というしかありません。これをマニュアルでやろうとしたら、もしくは何かスクリプトを書いて個々のタイルにdeconvolutionをかけようとしたら、それこそものすごい手間になります。画面全体に同じ処理をする従来のdeconvolutionなどとは、原理が同じだけで、もう全く違う処理といってもいいかもしれません。


微恒星の補正について

もう一つ、極々小さい微恒星がさらにdeconvolutionされたらどうなるか考えてみましょう。

もともと時間で変動する1次元の波形の周波数解析によく用いられるFFTでは、サンプリング周波数の半分の周波数以下でしか解析できません。この半分の周波数をナイキスト周波数と言います。要するに2サンプル以上ないと波として認識できず、周波数が決まらないということです。ではこの2サンプルのみに存在するインパルス的な波を、無理矢理時間軸で縮めるような処理をしてみたらどうなるでしょうか?元々あった2サンプルで表現されていた波が2サンプル以下で表現され、より高周波成分が存在するようになります。

これと同じことを2次元の画像で考えます。上のFFTの時間が、画像のドットに置き換わり、縦と横で2次元になったと考えます。周波数と言っているのは画面の細かさになり、「空間周波数」という言葉に置き換わります。細かい模様ほど空間周波数が高く、荒い模様ほど空間周波数が低いと言ったりします。

1ドットのみの恒星は、本当に恒星なのか単なるノイズなのか区別のしようがありません。少なくとも各辺2ドット、すなわち4ドットあって初めて広がりのある恒星だと認識できます。この各辺2ドットがナイキスト周波数に相当します。超微恒星に対するdeconvolution処理はこの4ドットで表されている恒星を、4ドット以下で表現しようとすることになります。その結果、この画像はナイキスト周波数以上の高周波成分を含むことになります。

deconvotionはもともと点像であった恒星と、その点像が光学機器によって広がりを持った場合の差を測定し、その広がりを戻すような処理です。その広がり方がPSFという関数で表されます。広がりは理想的には口径で決まるような回折限界で表されますが、現実的にはさら収差などの影響があり広がります。BXTはあくまでdeconvolutionと言っているので、ここに変なAIでの処理はしていないのかもしれませんし、もしくはAIを利用したdeconvolution「相当」なのかもしれません。

BXT1からBXT2へのバージョンアップで、処理できる収差の種類が増えていて明確に何ができるのか言っているのは注目すべきことかと思います。単なるdeconvolutionなら、どの収差を補正できるのか明確には言えないはずです。でもAIで収差の補正の学習の際、どの収差か区別して学習したとしたら、deconvolution相当でどのような収差に対応したかが言えるのかと思います。そういった意味では、やはりBXTのdeconvolutionは後者の「相当」で、AIで置き換えられたものかと思った方が自然かもしれません。


BXTの利用目的

ここまで書いたことは多分に私自身の推測も入っているので、全く間違っているかもしれません。BXTの中身の実際はユーザーには全部はわからないでしょう。でも中身はどうあれ、実際の効果はもう革命的と言っていいほどのものです。

個人的には「個々のタイルでバラバラな収差をそれぞれのPSFで補正をして、画像の全面に渡って同等な真円に近い星像を結果として出しているところ」が、マニュアルでは絶対にやれそうもないところなのでイチオシです。もちろん今のBXTでは完璧な処理は難しいと思いますが、現在でも相当の精度で処理されていて、BXT1からBXT2のように、今後もさらなる進化で精度が上がることも期待できそうです。

では、このBXTが完璧ではないからと言って、科学的な目的では使えないというような批判は野暮というものでしょう。そもそもBXTは科学的に使うことは目的とはしていないはずです。

それでもBXTを科学的な側面で絶対使えないかというと、使い方次第だと思います。例えば、新星を探すという目的で、BXTでより分解能を増した上で何か見つかったとしましょう。それが本物かフェイクかの「判断」は他のツールも使うなどして今の段階では「人間が」すべきでしょう。判断した上で、偽物ということもあるでしょうし、もし本物だったとしたら、例え判断はBXTだけでできなかったとしても、そのきっかけにBXTが使われたいうことだけで、BXTの相当大きな科学的な貢献になるかと思います。

要するに「ツールをどう使うか」ということだと思います。今の天文研究でもAIが盛んに使われようとしていますが、主流は人間がやるにはあまりに手間がかかる大量のデータを大まかに振り分けるのを得意としているようです。ある程度振り分けたら、最終的な判断はAIに任せるようなことはせず、やはり人の目を入れているのが現実なのかと思います。AIは完璧ではないことはよくわかっているのだと思います。


まとめ

BXTはどんどんすごいことになっていますね。今後はBXT以外にもさらに優れたツールも出てくるでしょう。将来が楽しみでなりません。

何年か前にDenoise AIが出た時も否定する意見はありましたし、今回のBXT2も推測含みで否定するケースも少なからずあったようです。デジカメが出た時も否定した人が当時一定数いたことも聞いていますし、おそらく惑星撮影でWavelet変換を利用した時も同じように否定した人はいたのかと思います。新しいものが出た時の人の反応としてはごく自然なのかもしれませんが、私は個人的にはこのような新しいツールは大歓迎です。新しいものが出たときに否定だけするような人から、新しい革新的なツール作られるようなことなどほぼあり得ないでしょう。新しいツールはその時点では未熟でも、将来に発展する可能性が大きく、その可能性にかけるのが正しい方向かなと思っています。

実際私も、電視観望をしていて頭ごなしに否定されたことが何度がありました。でも今では電視観望は、眼視と撮影の間の手法として確立してきているはずです。当時否定された方達に、改めて今電視観望についてどう思っているのかお聞きしてみたかったりします(笑)。

BXT素晴らしいです!!!

連休中にε130Dのテスト撮影をしているのですが、その画像処理の過程で面白いことがわかりました。このネタだけで長くなりそうなので、先に記事にしておきます。


最初に出てきたε130Dの分解能にビックリ!

今回ε130Dで初の撮影を進めています。満月直前で明るいので、ナローバンド撮影です。初めての機材なので色々トラブルもありますが、それらのことはまた次の記事以降で書くつもりです。とりあえず2日かけてなんとか約2時間半分のHα画像を撮影しました。細かく言うと、ASI6200MM Proのbin1で1時間ぶん、かなり暗かったのでその後bin2で2時間半分撮影しました。

その後、まだ仮処理段階のbin2のHα画像を見てびっくりしました。bin2撮影の2時間半ぶんをインテグレートして、BlurXTerminator(BXT)をかけて、オートストレッチしただけですが、なぜかわからないレベルのすごい分解能が出ています。下の画像はペリカン星雲の頭の部分を拡大して切り出しています。

BIN_2_4784x3194_EXPOSURE_300_00s_FILTER_A_ABE_Preview01

昔FS-60CBとEOS 6Dで撮ったものとは雲泥の差です。
283e6bd1_cut

分解能の理由の一つ

ちょっとビックリしたのでTwitterに速報で流してみたのですが、かなりの反響でした。分解能がいいと言われているε130DにモノクロCMOSカメラなので、ある程度分解能は出ると予想していましたが、予想以上のちょっとした魔法クラスです。

その後、画像処理がてらいろいろ検証を進めていたのですが、魔法の原因の一つは少なくとも判明しました。ちょっと面白いので検証過程を紹介しつつ、謎を解いていきます。


意図せずして高解像度に...

まず、今回大きなミスをやらかしたことです。テスト撮影ではbin1とbin2の2種類を撮ったのですが、それらの画像をPixInsightで同時に処理していました。2種類のマスターライト画像が出来上がるわけですが、ここで問題が起きていたことに後に気づきました。

reference画像をオートで選択していたのですが、そこにbin1のものが自動で選択されてしまっていた
のです。その結果、bin2の低解像度のものもregistration時に強制的にbin1のものに合わせられてしまい、高解像度になってしまっていました。その状態に気づかずにBXTをかけてしまい、予期せずして恐ろしい分解能の画像になっていたというわけです。

その後、気を取り直し再度普通のbin2画像を処理して比較してみると、いろいろ面白いことに気づきました。メモがわりに書いておきます。


1. BXTのPFSの値と解像度の関係

まず、BXTのパラメータですが、恒星の縮小とハロの処理は共に0としてしないようにしました。背景の青雲部の詳細を出すために、PSFを7.0にしてSharpen Nonstellerを9.0にします。

これをbin1画像に適用してみます。この中の一部をカットしたのが以下です。最初の画像と同じものです。少し出しすぎなくらいのパラメーターですが、まあ許容範囲かと思います。

BIN_2_4784x3194_EXPOSURE_300_00s_FILTER_A_ABE_Preview01

これをそのまま同じBXTのパラメーターでbin2画像に適用してみます。明らかに処理しすぎでおかしなことになっています。許容範囲外です。
bi2_bad_BXT_BIN_2_4784x3194_300_00s_FILTER_A_Preview01

次に、bin2画像は解像度が半分になっていることを考慮し、PSFを7.0から3.5にします。するとbin1でPSF7.0で処理した程度になります。これをbin2画像に適用します。

bin2_good_BXT_BIN_2_4784x3194_300_00s_FILTER_A_Preview011

bin1にPSF7.0で適用したのと同じくらいの効果になりました。これでbin1とbin2に対するBXTの効果が直接比較ができるようになったと考えることができます。

このことはまあ、当たり前と言えば当たり前なのですが、BXTのPSFは解像度に応じて適時調整すべきという教訓です。もちろんオートでPSFを決めてしまってもいいのですが、オートPSFはいまいち効きが悪いのも事実で、背景の出具合を調整したい場合はマニュアルで数値を入れた方が効果がよく出たりします。


2. referenceで解像度が倍になったのと、drizzleで2倍したものの比較

referenceで解像度が倍になったのと、drizzleで2倍したものの比較をしてみました。これはほとんど違いが分かりませんでした。下の画像の左がreferenceで解像度が倍になったもの、右がdrizzleで2倍にしたものです。かなり拡大してますが、顕著な差はないように見えます。
comp1

これにBXTをかけた場合も、ほとんど違いが分かりませんでした。同じく、左がreferenceで解像度が倍になったもの、右がdrizzleで2倍にしたものです。
comp2

この結果から、わざわざbin1を撮影してフィットとかしなくても、bin2でdrizzleしてしまえば同様の分解能が得られることがわかります。


drizzleで2倍にしてBXTをかけた場合

次に、bin2で撮影したものと、bin2で撮影したものをdrizzleで2倍にした場合を比べてみます。左がbin2で撮影したもので、右がbin2をdrizzleで解像度を2倍にしたものになります。左のbin2の拡大はPhotoshopで細部を残しすようにして2倍にしましたが、やはり一部再現できてないところもあるので、もと画像を左上に残しておきました。
comp1b

それでもちょっとわかりにくいので、PCの画面に出したものをスマホで撮影しました。こちらの方がわかりやすいと思います。左がbin2で撮影したもので、右がbin2をdrizzleで2倍にしたものです。(わかりにくい場合はクリックして拡大してみてください。はっきりわかるはずです。)
658E3BF1-9F61-4E65-BAE0-340184B9DC67

ぱっと見でわかる効果が微恒星が滑らかになることです。ですが、背景に関してはそこまで目に見えた改善はなさそうに見えます。

ところが、これにBXTをかけた場合、結果は一変します。明らかに2倍drizzleの方が背景も含めて分解能が上がっているように見えます。(と書きたかったのですが、どうも画像を2倍に大きくするときにやはり補正が入ってよく見えすぎてしまい、右とあまり変わらなく見えます。ここら辺がブログでお伝えできる限界でしょうか。実際には左上の小さな画像と、右の画像を比べるのが一番よくわかります。)
comp2b

同じくわかりにくいので、これもPCの画面に出したものをスマホで撮影しました。左がbin2で撮影したもので、右がbin2をdrizzleで2倍にしたものに、それぞれBXTかけています。
27718827-C94A-4A1D-B101-0A9F619FC62F

この右のものは、最初に示したbin1画像を参照してしまって予期せずして解像度が倍になった場合の結果とほぼ等しいです。

どうやら「BXTは画像の解像度を上げてから適用すると、背景の分解能を目に見えてあげることができる」ということがわかります。解像度を上げたことで情報をストックする余裕が増えるため、BXTで処理した結果をいかんなく適用保存できると言ったところでしょうか。言い換えると、BXTが普通に出す結果はまだ表現しきれない情報が残っているのかもしれません。これが本当なら、ちょっと面白いです。


分解能が増したように見える画像を、解像度2分の1にしたらどうなるか

では、解像度増しでBXTで分解能が増したように見える画像を、再度解像度を半分にして元のように戻した場合どうなるのでしょうか?比較してみます。左が1で得た「bin2にBXTをPSF3.5で適用した画像」、右が「一旦解像度を増してBXTをかけ再度解像度を落とした画像」です。

comp2c

結果を見ると、そこまで変化ないように見えます。ということは、解像度自身でBXTが出せる分解能は制限されてしまっているということです。

ここまでのことが本当なら、BXTの能力を引き出すには、drizzleで画像自身の解像度を上げてからかけたほうがより効果的ということが言えそうです。


まとめ

以上の結果をまとめると、
  • drizzleは適用した方が少なくとも微恒星に関しては得をする。
  • BXTと合わせると背景でも明らかに得をする。
  • drizzleして分解能を上げるとBXTの効果をより引き出すことができる。

ただしこのdrizzle-BXT、拡大しないとわからないような効果なことも確かで、そもそもこんな広角の画像で無駄な分解能を出して意味があるのかというツッコミも多々あるかと思います。それでも系外銀河など小さな天体にはdrizzle-BXTは恩恵がある気がします。まあ取らぬ狸の皮算用なので、小さな天体で実際に検証してから評価するべきかと思います。

今回の効果はおそらく意図したものではないと思いますが、BXT ある意味すごいポテンシャルかと思います。ここまで明らかに効果があると思うと、過去画像もdrizzleしてもう少しいじりたくなります。


BlurXTerminator (BXT)を使った、過去画像の再処理の第3弾です。

第1弾は三日月星雲、第2弾は青い馬星雲でした。



三日月星雲は主に星雲本体、青い馬星雲は主に恒星の収差の改善でしたが、今回もすごいです。


トールの兜星雲

今回のターゲットは、NGC2359: トールの兜星雲です。昨年1月に撮影しているので、1年ちょっと前になります。


SCA260で撮影していますが、この時はまだ、今使っている大型赤道儀のCGX-Lではなくて、もう一つ小さいCGEM IIに重いSCA260を載せています。そのため、今見ると3分露光でも揺れの影響が残ってしまっているようで、恒星像が今一ピシッとしていません。これがBXTでどこまで改善できるかがまずはポイントになります。


再処理の途中で

処理をしている途中で、BXTで明るい恒星が崩れる現象が見られました。
Image07_ABE1_DBE_SPCC_BXTbad_NXT_stretch_cut

原因は、元画像の恒星自身が何か歪んでいたことで、よく見ると以前の画像でもその兆候が見られますが、気づいていませんでした。BXTでその歪みが助長されて気づくことができました。BXTといえど全然万能ではなく、元画像がダメな時はどうしようもないです。

ではその恒星の乱れはなんだったかというと、Integrationの時に起こっていて今回はrejectionにWinsorized Sgma Clippingを選んでいたことが原因でした。High側で恒星中心付近がいくつかrejectされていて、非連続になっていたというわけです。今まで気づいたことがなかったので、恒星がおかしい時はrejectionにちょっと気をつけた方がいいかもしれません。

masterLight_BIN-2_4144x2822_EXPOSURE-180.00s_FILTER-HA_mono_cut
明るい恒星の右側がrejectionで不連続になってしまっています。

結局、WBPPでのIntegrationのRejection algorithmをAutoにして解決したのですが、マニュアルでのPreprocdessing からのIntegrationとWBPPのIntegrationでは少し振る舞いが違うようです。マニュアル操作ではそもそもWinsorized Sgma Clippingでも(WBPPのときと同じパラメータにしても)rejectonの度合いはもっと緩やかで、問題が露呈しないレベルで抑えられます。WBPPのWinsorized Sgma Clippingのパラメータをどういじっても解決はできなかったので、諦めてAutoにしたらあっさり解決しました。

それ以外はBXT、NXT合わせて特に困ったことはありませんでした。しかも青い馬星雲の背景出しで相当な時間をかけたので、それがいい練習になっていて、今回の再処理は短時間で終わりました。


結果の比較

結果ですが、以前のものと比べます。まずは以前のもの。背景が暗いので、今回の再処理でもう少し淡いところが出るかもしれないという目論見です。あとはやはりSCA2660とCGEM IIの組み合わせでの揺れのせいでしょう、今見ると恒星の締まりがないのが気になります。
Image07_DBE_PCC_DBE_AS_HTx3_reducestar2_3_crop_mod

次に、今回再処理した結果の画像です。一皮どころか、二皮も三皮もむけた感じです。ちょっとやり過ぎの感もあります。
Image07_ABE1_DBE_SPCC_BXTbad_NXT_stretch2_cut

まず、兜本体の分解能が尋常でないです。これはひとえにBXTのおかげです。また、恒星の大きさですが、不自然でない程度にとどめておきましたが、かなりシャープに絞ることができています。微恒星もより暗いものまではっきりと出ています。

comp1

あと、背景も積極的に炙り出せました。前回の青い馬星雲で練習した成果になるでしょうか。ただ、背景についてはは自宅の明るい場所での撮影なのでこれくらいが限界です。すでにノイズの荒々しさが残ってしまっています。本当はもっと広い範囲で淡い青いところが広がっているはずなのですが、これ以上出したかったら、露光時間をさらに増やすか、もしくはもっと暗い所へ行くべきです。それでもまあ、今回の再処理でとりあえずここまで出たのでよしとしましょう。


まとめ

これまで何度か試したBlurXTerminatorですが、これは天体写真の解像度向上に革命を起こすくらいのツールと言えそうです。その一方、今のAI技術はまだまだ発展途中、もしくは遠い将来から見たら出始めのかなりあやふやな技術だと評価されるかもしれないので、疑似的な画像を作り上げる可能性も否定はできません。中身がほとんどブラックボックスという心配もあります。

そうは言ってもこの素晴らしいツール、手間の軽減、時間の短縮、星像のシャープさ、分解能の向上などメリットの方が遥かに遥かに大きいです。私個人としては新しいツールにかなり寛容なので、DeNoise AIの時もそうでしたが、趣味の範囲では見た目でよさそうなら積極的に使っていきたいと思っています。DeNoiseの時もフェイクになる可能性があるという批判はありましたが、大きな目で見れば今回のBXTはそのアップグレードと考えることもでき、順当な進化なのかと思います。

AIと画像処理は研究ベースでも親和性がとてもいいようなので、今後もアマチュア天文を対象にAIを利用したソフトがさらに出てくることと思います。個人的には拒否反応など示すことなく、冷静にいいところを見つけて、積極的に使っていきたいと思っています。

BlurXTerminator (BXT)を使った、過去画像の再処理の第二弾です。

第一弾は三日月星雲でした。


この時は主に背景の改善が特徴でしたが、今回は特に恒星の改善がすごいです。

BXTの収差補正能力

昨年ゴールデンウィークに、近くの牛岳においてFS-60CBにASI2400MC Proを取り付けて撮影した青い馬星雲。



当時出来上がった画像はASI2400MCの能力が思う存分発揮されたもので、背景の淡い部分が十分に表現され、遠目で見る限り素晴らしいものです。自分的にも十分満足していました。その一方、遠征先で撮影時に接眼側の延長筒の長さが手持ちで合わず、バックフォーカスがずれてしまい、四隅が思いっきり流れてしまいました。
mosaic1

これはさすがに救いようがないとずっと思っていたのですが、BXTはこのレベルでも大幅に改善してくれます。しかも今回使ったのは「Collect only」だけで、恒星を小さくしたりハロを押さえたりする機能は使っていません。
mosaic3

左上だけまだ少し流れていますが、他の8枚は完全に許容範囲です。これだけでもBXTの収差改善は圧倒的にすごいです。

しかもFS-60CBには、昔から指摘されている弱点の一つとして、撮影の際に赤と青とでピント位置がどうしてもずれてしまうという問題があります。現場において赤に合わせるか、青に合わせるか、もしくはその中間に合わせるかいつも大問題です。どうするかは場合によるのですが、今回は青い領域なので青にピントを合わせたために、全ての恒星周りに赤いハロが出てしまっています。ところが、これらの赤ハロも今回のBXTはものの見事に綺麗に除去してくれています。これはFS-60ユーザーにとっては大きな福音となるのではないでしょうか。


背景と仕上げ

この四隅で仕上げた画像です。今回はNXTも使いノイズをある程度除去しています。また、青い馬付近は意外に赤い領域もあり、前回はこの特徴をあまり出せなかったので、今回は少し強調してあります。

masterLight_180_00s_RGB_integration_ABE_SPCC_ABE3_cut

下はこれまでの画像ですが、今回のと比べると、やはり少し緑に寄っている気がしますし、赤が弱いと思います。
masterLight_180s_ABE_PCC_ASx4_SCNR_bg2_cut_s

これまでと、今回の再処理の2枚を比較して検討してみます。まず恒星ですが、明らかに分解能が増しています。特に首元にある青い明るい2つの星の下の方のものは、2つの星がかなり近接しています。前回のものでは明るすぎて分離できていませんでしたが、今回のでは余裕で分離しています。また、微恒星に関しても、拡大して比べるとよくわかりますが、より暗い星までかなりはっきりと写っています。恒星に関してはほとんどの処理がPixInsightで閉じるようになったのでずいぶん楽になったのと、その恩恵でしょうか仕上がりも大分良くなったと思います。BXTのおかげですね。

その一方、分子雲に関しては今回かなり苦労しました。前回のレベルまで全然持っていけないのです。前回の時点ですでにかなりのレベルで淡いところを引き出し切っていて、しかも最後のところをPhotoshopでやっていたので、肝心要の最淡の部分でどうやったか記録が全く残っていません。元々の素材が良かったので、画像処理はかなりシンプルだったはずです。色々試しても、ごくわずかのところでどうしても前回のレベルまで持っていけません。結局今回は第9バージョンまで処理し直して、やっとそこそこ満足しました。ポイントはマスクの使い方だったのですが、前回シンプルにやっていたのを、今回凝りすぎていたというのが原因でした。本当にシンプルに星マスクをうまく適用することで、背景の分子雲モクモクを再現することができました。

あと今回はNXTも使ったので、背景が全体的にノイジーだったのが改善されています。ある程度拡大して比較するとよくわかります。


まとめ

BXTを使い再処理すると、やはり有意に違いがわかるレベルで改善します。今回に関しては主に恒星です。その一方、今回実感できたことは、BXTは恒星や星雲部の分解能は向上させることはあっても、諧調に関してはほぼ何も貢献しないということです。前回の三日月星雲の再処理では背景の階調が改善しているように見えますが、あくまで副次的な効果で、基本的にはこれまで通り丁寧に階調のある部分をうまく拡大させることが必要となるということがよくわかりました。


BXTによる再処理シリーズの第三弾はトールの兜星雲です。
 

BlurXTerminator (BXT) が面白いです。前回までで、ゴースト星雲でのBXTの試用と、BXTをカラー画像に適用した場合などを記事にしてきました。





その後、BXTのバージョンが上がり1.1.1になりました。初期バージョンでは恒星の色ずれがPIのForumで指摘されていたようですが、新バージョンではそれも解決されているとのことです。

BXTの効果がかなりすごいので、過去画像にもいくつか適用してみました。今回の再処理は全て新バージョンで試しています。


三日月星雲

まずは、はくちょう座にあるNGC6888: 三日月星雲で比較です。下の画像は昨年5月にSCA260で撮影し処理したもので、AOO合成になります。当時はそこそこ分解能もでていると満足していました。
Image11_ABE1_PCC_ABE4_cropped2_mod
この時の反省点は、星雲本体はよく出たのですが、背景がかなり淡くて出にくかったのを覚えていて、結構無理をしてノイズ処理をしました。背景の細かい構造はほとんど飛んでしまっています。ここら辺がBXTとNXTが入ったらどうなるかも気にしたいと思います。


BXTとNXTの適用

元のファイルは前回WBPPまで終了して、AOO合成までしたものを使います。まずはSPCCをかけ、すぐにBTXです。この時点ですごい分解能となり、ちょっとびっくりしました。

ストレッチはHistgramTransformationです。ArcsinhStretchとMaskedStretchも試しましたが、星雲本体の赤の部分が差散り気味になってしまったのであきらめました。あとはCurveTransformationのSaturationで彩度を出します。その後NXTでノイズ処理をしています。

これまでマスク処理は、マスクをPIで作ってからPhotoshopにマスクを渡して処理をすることがほとんどでした。今回はマスク処理自身もPIでやってみることにします。今回のマスクはB画像から作り、星雲本体の青いところを強調しました。最後にPhotoshopに一応手渡してほんの少しだけ色を好みのものにしましたが、今回は自分的には98%くらいがPIでPhotoshopで触ったのは本当にごくわずかです。

結果です。一見しただけでBXTを適用したものは三日月本体の分解能が圧倒的に上がっています。

Image11_SPCC_BXT_HT_HT_CT_SCNR_NXT_maskB_CT_CT_CT_ok2

青いところもよりはっきりと出すことができました。背景もそこそこの階調で出ていて、ノイズ処理もより自然になっているように見えます。以前の処理と、今回の処理の違いを一言で言うと、以前のものは画像の中にある情報を引き出し切れていなかったと言うところでしょうか。BXTの底力を見せつけてくれる結果と言えます。

あと、微恒星の数が圧倒的に増えています。私は元々恒星の処理が下手くそなのですが、BXTとNXTのおかげかかなり楽になりました。作業がPIで閉じていて、恒星と背景を分離したり合成したりする必要がなくなってきたことが大きいです。分離は使うとしても軽い星マスク程度です。言い換えると、分離というある意味特異な処理をする必要がなくなりつつあり、より自然に手間をかけずに恒星を出すことができるようになってきています。


驚異的な分解能

こうして見るとBXTの威力がいかに凄いかわかるのですが、いささか分解能が出過ぎのような気もします。そこで、さらに高解像度の画像、例えばこのページにある三日月星雲と比べてみます。試しにPhotoshopで各レイヤーに自分の画像とリンク先の画像をはって、拡大縮小回転などして位置合わせをして、レイヤーの表示/非表示でかなり詳細に比較してみました。

少なくとも私がみた限りでは、BXTのAIによってあからさまに変な線が出ているようなことはないようです。勝手に上記の画像をこのブログに貼るわけにはいかないのですが、結論としては、おかしくないパラメータの範囲でBXTを使う限りは変な構造を加えるようなことはなく、画像の中に情報として残されている構造をかなりのレベルで引き出しているのかと思います。また、引き出す構造に限界もあり、これも詳細画像と比較するとわかりますが、撮影画像の中に無い構造はやはり出てこないこともわかるので、少なくともAIだからと言って、そこまで変なことをしているわけではないのかと思います。

BXT、今回もかなりの手応えなので、今後もう少し過去画像の再処理を続けたいと思います。


(追記) 第二弾は青い馬星雲です。

このページのトップヘ