あらまし
天文系VTuberのけむけむさん主催の「天下一画像処理会 : 惑星の部」に応募しました。天下一画像処理会はけむけむさんが用意した同じ生データを参加者が各々工夫して画像処理した結果を持ち寄ってけむけむさんが動画にまとめるという企画です。
発表動画はこちらで見られます。
画像処理手順が出てきますが、1画面にまとめるという制約があるため概略のみとなっています。そこでこのエントリで詳細を解説することにしました。
自己紹介
名前: なんばりょうすけ
Twitter: @rna
Hatena: id:rna
ブログ: https://rna.hatenablog.com/
横浜の自宅から天体撮影をしているアラフィフおじさん。
DSO、惑星、月、太陽(可視光)、彗星、なんでも撮ります(ベランダから撮れる範囲で)。
生データ
第2回の今回は木星と土星の動画(カラーのみ)を処理する回でした。生データの動画は以下の3つ。
撮影機材については説明がなかったのですが、こちらの動画を見たところ、鏡筒は GS-200RC(1600mm F8) で、小は2倍バロー、大は2倍バローと2倍テレコンの二段重ねでしょうか。カメラは生データについてきたカメラ設定の記録によると ASI385MC です。
それにしてもこの木星の模様、なんか見覚えがあるような… と思ったら、撮影日時は 2018年4月28日深夜の木星でした。そう、同じ日に僕も木星を撮っていたのです。
当時はまだ μ-180C が届いてなくて 8cm 屈折(BLANCA-80EDT)で撮っていたのですが、この日は好条件で 8cm 屈折による木星のベストショットが撮れました。この時の画像は後に再処理してこうなりました。
処理手順
処理手順の概要を図解したものが以下になります。
生データがカラー動画なので、去年から始めた「セルフLRGB合成」で処理しました。元画像から擬似L画像を作って、元画像とは別に画像処理して最後にLRGB合成して仕上げます。
ポイントは以下の通り。
- AS!3ではフレームを多め(1500〜2000フレーム)にスタック(ノイズ抑制)
- RS6では
- Use Linked Wavelets を ON (ディテール炙り出し)
- De-ringing 使用(惑星の縁が明るくなる現象を抑制)
- カラー画像の Wavelet 処理は弱めに(カラーノイズ抑制)
以下各処理について解説します。画像毎の処理パラメータの詳細は処理結果の章にまとめます。
前処理
最初 AutoStakkert!3 (AS!3)にそのまま生データの動画を入力したのですが、木星(大)の動画で Analyse すると破損フレームがベストフレームに選ばれてしまうというアクシデントが発生しました。破損フレームというのはこれです。
このままスタックするとマズいことになりそうなので木星(大)の動画は TMPGEnc Video Mastering Works 5 (TVMW5) でカット編集して破損フレームを除去し、非圧縮AVIでエンコードしたものを AS!3 に入力しました。
TVMW5 の出力のコーデックは 24 bits RGB(RV24) でしたが、デベイヤーされるわけではないので実質モノクロです。AS!3 に入力するとベイヤーパターンは自動認識で正しく設定されました。
スタック
AS!3 で普通にスタックします。動画は各1本のみで de-rotation スタックできないので、フレーム数は多めにします(1500〜2000フレーム)。
木星(大)の AP Size は最初は64に設定していたのですが、継ぎ目破綻らしきノイズが発生したので AP Size 104でやり直しました。AP の配置は全部自動配置です。
大気色分散はぱっと見目立たないようでしたが、ADC を使っていないようだったので RGB Align は ON にしておきました。
疑似L画像生成
スタック結果の画像(RGB画像)から Photoshop (PS) で擬似L画像を作ります。疑似L画像を作る目的は、カラーノイズを避けて強い wavelet 処理をかけるためです。カラー画像で強い wavelet 処理をかけようとするとカラーノイズが目立ってしまって、あまり強調できませんが、モノクロ化した画像ならより強い処理に耐えられます。
Photoshop での処理手順は以下の通りです。
- Lab カラーモードに設定 [イメージ - モード - Lab カラー]
- チャンネル一覧で L チャンネルのみ選択された状態にする
- グレースケールモードに設定 [イメージ - モード - グレースケール]
- TIFFで保存 [ファイル - 別名で保存]
ここで画像の保存に「書き出し」を使ってはいけません。「書き出し」は PNG 等の非圧縮形式に等倍で出力する場合でも再サンプリングがかかるようで、書き出した画像を wavelet 処理するとモアレのようなノイズが浮いてきて使い物になりません。
wavelet 処理
wavelet 処理には RegiStax 6 (RS6) を使います。RGB画像と疑似L画像はそれぞれ別のパラメータで処理します。RGB画像は弱めに、疑似L画像は強めに wavelet をかけます。
原因はよくわかりませんが、RS6 に同じような露出の画像を読み込んでも、特定の画像だけやたら画像が明るくなることがあります。そのまま wavelet 処理すると白飛びが発生しがちなので、そういう時は Contrast を落として処理します。
ポイントは Use Linked Wavelets を ON にすることです。これによってディテールをより浮かび上がらせることができます。実はどういう原理なのかよくわかっていないのですが…
Linked Wavelets は wavelet を強くするとノイズも強烈に浮いてくるのですが、これを Denoise で抑え込む形でバランスをとっていくのが基本です。いまいち直感的に理解できない挙動があり、慣れないと扱いにくいのも事実です。
wavelet を強くかけると惑星の縁が明るくなってしまって立体感が損なわれる副作用が出てきますが、これを抑えるために De-ringing 機能を使います。Dark と Bright を ON にして、Bright を上げていくとコントラストが強い部分のギラつきが和らぎます。縁に限らず惑星面の模様も影響を受けるので考えものなのですが、見映え重視で使っています。
また、wavelet 処理の影響で惑星周辺がうっすら明るくなったり、画像の端に出るノイズが強調されてしまったりするのを抑制するために Mask 機能も使っています。このあたりはあまりよくわかってなくて、今のところデフォルト設定で Low を上げるだけです。
ちなみに RS6 のバグなのか、Mask 機能を使用したまま別の画像を開くと wavelet 処理がかからなくなったりすることがあります。Use Mask や Toggle を ON/OFF してるうちに直ったりもするのですが、ややこしいので RS6 を再起動してやり直しています。
RGB画像では RGB Balance 機能でカラーバランスを調整します。Auto でいい感じになるので、いつも Auto で設定して仕上げで微調整しています。Photoshop 等でイチから調整するよりはずっと楽なので使っておくのがよいと思います。
処理結果とパラメータ詳細
木星(小)
AS!3 設定
- Image Stabilization: Planet(COG)
- Quality Estimator: Laplace Δ: ON, Noise Robust 4, Normal range: Local (AP)
- Reference Frame: Double Stack Reference: OFF, Auto size (quality based): ON
- RGB Align: ON
- AP Size: 64 AUTO (19APs)
- Number of frames to stack: 1500
RS6 設定
疑似L:
- Waveletscheme: Linear
- Initial Layer: 2
- Step Increment: 0
- Wavelet filter: Gaussian
- Use Linked Wavelets: ON
- L1: Denoise: 0.06, Sharpen: 0.100, 22.0
- L2: Denoise: 0.07, Sharpen: 0.100, 2.4
- L3: Denoise: 0.05, Sharpen: 0.100, 1.1
- De-ringing: Dark side: 10, Bright side: 10
- Mask: Low: 6, Hight: 255, Radius: 2, Feather: 5, Method: Lo-Hi Intensity
木星(大)
AS!3 設定
- Image Stabilization: Planet(COG)
- Quality Estimator: Laplace Δ: ON, Noise Robust 4, Normal range: Local (AP)
- Reference Frame: Double Stack Reference: OFF, Auto size (quality based): ON
- RGB Align: ON
- AP Size: 104 AUTO (30APs)
- Number of frames to stack: 2000
RS6 設定
疑似L:
- Waveletscheme: Linear
- Initial Layer: 2
- Step Increment: 0
- Wavelet filter: Gaussian
- Use Linked Wavelets: ON
- L1: Denoise: 0.16, Sharpen: 0.100, 35.5
- L2: Denoise: 0.10, Sharpen: 0.100, 14.0
- L3: Denoise: 0.05, Sharpen: 0.100, 1.8
- De-ringing: Dark side: 10, Bright side: 105
- Mask: Low: 10, Hight: 255, Radius: 2, Feather: 5, Method: Lo-Hi Intensity
- Contrast: 75
- Brightness: 0
RGB:
- Waveletscheme: Linear
- Initial Layer: 2
- Step Increment: 0
- Wavelet filter: Gaussian
- Use Linked Wavelets: ON
- L1: Denoise: 0.16, Sharpen: 0.100, 24.5
- L2: Denoise: 0.10, Sharpen: 0.100, 8.5
- L3: Denoise: 0.05, Sharpen: 0.100, 1.1
- De-ringing: Dark side: 10, Bright side: 105
- Mask: Low: 10, Hight: 255, Radius: 2, Feather: 5, Method: Lo-Hi Intensity
- RGB Balance: Auto balance (Red: 1.02, Green: 0.90, Blue: 2.19)
- Contrast: 75
- Brightness: 0
土星
AS!3 設定
- Image Stabilization: Planet(COG)
- Quality Estimator: Laplace Δ: ON, Noise Robust 4, Normal range: Local (AP)
- Reference Frame: Double Stack Reference: OFF, Auto size (quality based): ON
- RGB Align: ON
- AP Size: 104 AUTO (13APs)
- Number of frames to stack: 2000
RS6 設定
疑似L:
- Waveletscheme: Linear
- Initial Layer: 2
- Step Increment: 0
- Wavelet filter: Gaussian
- Use Linked Wavelets: ON
- L1: Denoise: 0.15, Sharpen: 0.100, 35.5
- L2: Denoise: 0.10, Sharpen: 0.100, 8.5
- L3: Denoise: 0.05, Sharpen: 0.100, 1.8
- De-ringing: Dark side: 10, Bright side: 55
- Mask: Low: 10, Hight: 255, Radius: 2, Feather: 5, Method: Lo-Hi Intensity
- Contrast: 100
- Brightness: 0
RGB:
- Waveletscheme: Linear
- Initial Layer: 2
- Step Increment: 0
- Wavelet filter: Gaussian
- Use Linked Wavelets: ON
- L1: Denoise: 0.16, Sharpen: 0.100, 24.5
- L2: Denoise: 0.10, Sharpen: 0.100, 7.3
- L3: Denoise: 0.05, Sharpen: 0.100, 1.1
- De-ringing: Dark side: 10, Bright side: 55
- Mask: Low: 10, Hight: 255, Radius: 2, Feather: 5, Method: Lo-Hi Intensity
- RGB Balance: Auto balance (Red: 0.94, Green: 0.92, Blue: 2.53)
- Contrast: 100
- Brightness: 0
おまけ: 土星と衛星
土星の画像ですが、Stellarium で当日の衛星の位置を確認すると、写野内に衛星が5つありました。レア、ディオネ、テティス、エンケラドゥス、ミマスの5つです。ひょっとして写っているのではと思い、疑似L画像を wavelet でガンガン攻めて衛星を炙り出してみました。
RS6 のパラメータは以下の通り。
- Waveletscheme: Linear
- Initial Layer: 2
- Step Increment: 0
- Wavelet filter: Gaussian
- Use Linked Wavelets: ON
- L1: Denoise: 0.20, Sharpen: 0.100, 70.5
- L2: Denoise: 0.20, Sharpen: 0.100, 62.5
- L3: Denoise: 0.20, Sharpen: 0.100, 51.5
- L4: Denoise: 0.25, Sharpen: 0.100, 35.5
- L5: Denoise: 0.15, Sharpen: 0.100, 2.4
- De-ringing: Dark side: 10, Bright side: 55
- Mask: Low: 4, Hight: 255, Radius: 4, Feather: 5, Method: Lo-Hi Intensity
- Contrast: 100
- Brightness: 0
残念ながら土星の輪のすぐそばにいたミマスは輪から溢れた光に埋もれてしまいましたが、残りの4つの衛星は確認できました。これを土星の処理結果と合成してみました。
エンケラドゥスが確認できない方はモニターを掃除して部屋の灯りを消してご覧ください…
むすび
一枚の惑星写真ができる過程には様々な要素が絡み合ってきます。シーイング、筒内気流、ピント、光軸、拡大光学系、ADC、カメラのノイズ、画像処理、等々。そのため、他人の写真と比較した時に、違いがどこにあるのか絞り込むのは簡単ではありません。特定の要素のみ変えて、他の要素を揃えて比較するということが簡単にはできないからです。
でも画像処理については、同じ生データを使えば画像処理以外の要素を完全に揃えられるので比較が可能です。とはいえ、他人の生データを触る機会なんて通常ありません。貴重な機会を用意してくださったけむけむさん、本当にありがとうございます!
みなさんの処理結果と比べることで、課題も見えてきました。解像感のある表現という点では一定の水準に達したかなと思っているのですが、de-ringing の影響なのか不自然な点があるのに気が付きました。
具体的には、惑星の縁に近い部分で解像感が急に落ちたり、土星の輪が少し削られたようになったり、という点です。de-ringing はどうも思ったように調整できないのですが、もっと詰めていきたいと思います。
そして今年は画像処理以外のところでも改善すべき点を見つけていって、ベストな状態で火星の最接近を迎えたいと思います。