TGVDenoiseによるノイズリダクション 〜 PixInsightの画像処理

天体写真の画像処理には欠かせないノイズリダクション。とくに露出時間に制約のある遠征派にはなくてはならない機能ですが、最近、思うところがありノイズリダクションのかけ方を変えました。少しゆるめたのです。

理由の一つめは大切な構造を消してしまっていたこと。下の比較をみてください。やっちまってます。明らかに何かが失われています。これは致命的ですね。言い訳すると今回の左側はたまたま強くかけた・・・そんなことないか。いつもやっちまってた気がします。

ノイズリダクションにより細部を失う
ノイズリダクションにより細部を失う

理由の二つ目は、背景のツルツル画像の違和感です。なんか気持ち悪い。なぜだか考えてみました。ツルツルな背景にするには本来は十分な露出時間や暗い空がなければならない。とすると背景だけでなく天体もそれなりの解像度があると直感的に思うはずです。背景に見合わないクオリティ天体の画像があることで、バランスを欠きなんとなく人工的な気持ち悪さを感じるのだと思います。Zoom会議で背景が高級なリビングなのにヨレヨレのトレーナーを着ているみたいな感じとも言えます。また目を閉じてみると見える映像は真っ暗ではなくて、私の場合、色のついたノイズだらけ。眼視ではつねにノイズがある映像を見ているからかもしれません(実はこれ、音でも同じ感覚があります。レコードからCDになったときノイズレスがなにやら不安でした。あれ、いまは慣れてるなぁ)。

またノイズリダクションをかけるタイミングも悩ましい。いまは途中ではやらず画像処理の仕上げとして最後にかけることにしています。画像処理中にノイズリダクションしてしまうと、まだ見えていない構造を消してしまわないか、という懸念がその理由です。これは議論のあるところで、早めにノイズリダクションしないと強調処理によってノイズも強調されるという心配はあります。一方でノイズリダクションを先にすることでできた処理の痕跡を強調してしまう可能性もあります。このテーマについては、我らがだいこもんが「ノイズ処理は、画像強調の前に行うべきか、後に行うべきか?」と気合の入った検証をされていて、どこでノイズリダクションをかけても大差ない、という結論をだしています。私はそれに乗っかり、プロセスの一番最後にしました。でもすぐに方針を変えるかもしれません。それくらい微妙な問題です。

では、ここからはTGVDenoiseによるノイズリダクション処理方法をみていきましょう。

TGVDenoiseを使う

ノイズリダクションはDeNoise AIが有名ですが、私には効果が大きすぎて上の天体とのバランス問題から合わなかったことと(これはパラメータを詰めれば改善するかもしれません)、アプリ移動の手間の削減にPixInsightで処理してしまいたいこともあります。

Process – NoiseReductionメニューからTGVDenoiseを起動します。

TGVDenoise

主に設定するパラメータは次の3つです。

  • Strength・・・ノイズリダクションの強度の設定
  • Edge protection・・・構造体の境界部分をどの程度保護するか設定。小さい数字であるほど細かく保護するがノイズも一緒に保護される。大きい数字ほど滑らかになるが細かい構造が失われる
  • Local support・・・処理の強さを輝度情報を使って設定。マスクではないですが、マスクに似ている

標準偏差をEdge protectionに指定する

Edge protectionは、背景のざらざらに相当する大きさは滑らかにし、それ以上の構造は保護するというアプローチをとります。つまりざらざらのギリギリの数値を設定したい。そのために背景の標準偏差を測定し、その値をEdge protectionとして設定します。標準偏差はいわばざらざらの平均値。なにやら難しそうですが、操作は簡単です。

まず明らかに背景とわかる部分に小さなプレビューを設定します。

背景にプレビューを設定
背景にプレビューを設定

ここでProcess – ImagesメニューからStatisticsを起動します。これは画像の各種統計データを確認するツールです。起動したら作成したプレビューを設定します。

Statisticsを起動
Statisticsを起動

そのままでは標準偏差(stdDev)が表示されていないので、スパナボタンを押します。表示された画面でStandard deviationを設定し、OKを押して閉じます。

Standard Deviation

するともとのStatisticsにstdDevが表示されます。

標準偏差の取得

R, G, Bごとに値が違いますね。ここでは一番ざらざらが大きいBの値を採用することにしました。2.94e-02を、TGVDenoiseのEdge protectionに設定します。

Edge Protectionの設定
Edge Protectionの設定

Local SupportのためにSupport Imageをつくる

ノイズリは暗いところが目立つので、暗い部分に強く、明るい部分に弱く設定します。通常のマスクを画像自体にかけてもよいのですが、TGVDenoiseではLocal Supportという独自の機能が搭載されています。マスクをかけた場合、TGVDenoiseの外で機能するため処理が全部終わってからマスク処理がかかりますが、Local Supportの場合はTGVDenoiseの内部処理ごとにマスクのように機能します。その分だけきめ細かく効くのかもしれません。

Local Support設定には、まず画像のL成分を取り出します。これにはツールバーのExtract CIE L*Componentボタンを押すか、Image – ExtractメニューからLightness (CIE L*)を実行します。

L画像を取り出す
L画像を取り出す

すると元の画像のL画像が生成されます。

取り出したL画像
取り出したL画像

Support Imageとして使うために背景をより暗く、星雲部分を明るくします。これにはHistogramTransformationを利用します。シャドーを通常よりも右にして背景を黒にし、またミッドトーンを左にして明るくします。

ヒストグラムの調整
ヒストグラムの調整

こんな感じにできました。

L

これをTGVDenoiseのSupport Imageに設定します。Local Supportにチェックをいれ、<target image>をクリックすることで設定することができます。

Support Imageの設定
Support Imageの設定

これでLocal Supportの設定ができました。

Support Imageを作らなくても、Local Supportにチェックをいれると、TGVDenoiseはL画像を内部で生成してくれます。しかしこのときはMidtones, Shadows, Highlightsの設定が必要になります。HistogramTransformationを見ながらの方が簡単なのでSupport Imageを作成することを推奨します。

Support Imageのコントラストの上げすぎに注意

いろいろな画像でTGVDenoiseを試していると、TGVDenoiseがうまくいかない場合がありました。

のっぺりしてしまった
のっぺりしてしまった

処理後の画像のコントラストが低くなり、なんというかのっぺりしています。とくに黒い部分がグレーに潰れました。これ、Support Imageのコントラストの上げすぎが原因でした。Support Imageとして取り出したL画像はHistogramTransformationでシャドーを切り詰めミッドトーンを下げてコントラストを上げていまました。するとこの画像のようにのっぺりしてしまったのです。試しに、取り出したL画像になんの処理もせずに、そのままSupport Imageとして設定したところ改善しました。

詳細な構造を維持
詳細な構造を維持

TGVDenoiseはSupport Imageの明るさに応じてノイズ処理の強度を変化させます。そのためSupport Imageの暗い部分が明るくしてしまった結果、ノイズ処理が一様になりのっぺりしたのかもしれません。処理結果がおかしいときは、Support Imageを変えてみてください。

Strengthの調整はなんども試す

次はノイズリダクションの強さを決めるStrengthの設定です。TGVDenoiseは処理時間が長いことと、何度もやり直しをするためにPreviewで試してみます。またCIE L*a*b* modeにします。これにより輝度情報のLは弱く、色相のChorominanceは強めに設定できます。しかし実はRGB/Kでも変わらないという情報もあります。既定値のまま実行してみましょう。

Strengthが既定値のまま
Strengthが既定値のまま

これはダメですね。Strengthを弱めてみましょう。

LightnessとCrominanceの右端の数値を0から−1にします。これは10のn乗のn部分なので、−1では強さを1/10にしたことになります。

Strengthを1/10にする
Strengthを1/10にする

では実行してみます。

Strengthを1/10にした結果
Strengthを1/10にした結果

さきほどよりもいくぶん良くなりましたが、まだ強すぎるようです。次に−2で既定値の1/100にしてみます。

Strengthを1/100にする
Strengthを1/100にする

実行してみます。

Strengthを1/100にした結果
Strengthを1/100にした結果

これなら良さそうです。この設定で肝心なノイズリダクションは効いているのでしょうか。背景部分のPreviewを作り実行してみます。

バッググランドのノイズリダクション
バッググランドのノイズリダクション

これも大丈夫そうです。この設定で◼️ボタンを押して全体に設定します。今回は10のn乗部分を変更しましたが、左側の数字(5.00となっている部分)で、より細かく設定もできます。仕上がりはこんな感じです。

ノイズリダクションを軽めにした

ついやりすぎてしまうノイズリダクション。でも多少ざらざら感を残した方が落ち着きも感じられるように思います。これは天体と背景のバランスの問題なのか、そもそも一定のノイズに安心感があるのか?観賞用としての写真ですので、良い頃合いを見つけたいものです。模索は続きます。

タイトルとURLをコピーしました