最近話題の StarNet++ で、1月1日に撮影した「ばら星雲」を処理してみました。
StarNet++ については HIROPON(id:hp2) さんと id:snct-astro さんがブログで紹介しているのを見て知りました。
「星雲マスク」の使い方はよく知らないのでいまいちピンと来なかったのですが、星なし(星雲だけ)画像と星だけの画像を別々に処理して合成したら「ばら星雲」みたいな細かい星と星雲が重なったややこしい天体の写真がすっきりできるのでは?と思って試してみました。
まず最初にやろうとしたのは DeepSkyStacker (DSS) で処理した出力を StarNet++ で処理したものを強調処理、というワークフローですが、これは失敗でした。元画像が光害カブリがひどいせいなのかもしれませんが、星が抜けた部分がシミみたいになっていたり、画像の端の方の星が全然取れていなかったりして使い物になりませんでした。
README.txt を見ると "don't forget that the input should be a STRETCHED image, not linear data" とあって、STRETCHED image って?と思ったのですが、どうも強調処理した後の画像を入力する必要があるようです。
そんなわけで、まず DSS の出力を PhotoShop に読み込み、段階フィルターでのカブリ除去、レベル補正、トーンカーブ調整などを施して、星雲が十分に強調されかつ背景が黒くなる状態にしました。こんな感じ。
これを StarNet++ に入力します。StarNet++ はコマンドラインアプリですが、配布 zip を展開したディレクトリ(StarNet_Win)の下に cd しないと "Checkpoint file not found!" と言われて起動できないので、StarNet_Win の下で画像ファイルを指定する引数をフルパスで指定して起動しました。
処理は非常に重いです。入力画像は約1600万画素ですが、CPU が Core i5 6600、メモリ 8GB の環境だと、STRIDE (第3コマンドライン引数) 32 で約50分かかりました。
結果はこちら。
細かい星まですっきり取れていてなかなかのものですが、等倍で見るとそれなりにアラはあります。
大きな星を除去した部分に格子状のノイズが乗っているのがわかります。
こちらは周辺部(左上隅)の等倍画像ですが、結構跡が残っています。ひょっとして収差で伸びた星は苦手だったりするんですかね? StarNet++ はニューラルネットワークを使った画像処理なので挙動がイマイチ読めませんが…
さて、この画像をどう使うかですが、格子状ノイズの問題があるし、星のない部分もニューラルネットワークが何をしてるかわからないということもあるので、これをそのまま星雲画像として使うのは躊躇われます。そこで以下のようにしました。
B の処理は、星のある部分だけ StarNet++ の出力(をぼかしたもの)で埋めるというものです。出力画像の星のあったところだけぼかしをかけられるならそれでもいいんですが、そんなことはできそうにないので。
C の星だけ画像は元画像から作るのでその気になればいくらでも星を細くできるのですが、あんまり星を細くするとむちゃくちゃ不自然な仕上がりになるので、ある程度強調をかけて微光星が少し浮いてくるようにしました。
C は少々星雲が残っていても最後の比較明合成で強調済みの星雲に負けるので無理に「星だけ」にする必要はありません。
結果はこちら。
うーん、ちょっと嘘くさいですかねぇ… 前回の星マスクで仕上げた画像と比べると星雲の目立ち具合が劇的に改善してはいるのですが…
四隅の星の消し残しはどう処理したらいいかわからないので放置してあります。鑑賞距離で見る分にはあまり気にならない、ですかねぇ、いや、やっぱりちょっと気になるか。出力画像をぼかす際にダスト&スクラッチとかでもっと派手にお化粧した方がよいのかも。
というわけでこの StarNet++、元々星なし画像を使った処理はやってなかったので、他の方法との比較については他のみなさんに任せますが、精度の高い星なし画像を自動で作れるのは魅力です。コマンドラインアプリですが、重たいアプリなので下手に Photoshop のプラグインとかになっているよりも、バッチ処理ができるこの形式の方が便利でしょう。
ニューラルネットワークによる自動処理ということでちょっと抵抗もあるのですが、元々星マスクにしても星雲マスクにしても実用的な綺麗なマスクを作る過程で一定の恣意的な処理は入ってしまうので、気にしても仕方がない気もします。
というわけで今後は StarNet++ を使っていきたいと、、、いや、どうしようかなー…