ノイズ処理覚書
目次
天体写真のノイズ処理
天体写真のノイズ処理は画像処理の中でも重要なプロセスの一つです。非常に強い強調処理を行う天体写真の画像処理では、適切なノイズ処理を施さないと、ノイズが浮かび上がってきて見苦しい画となってしまいがちです。
ノイズ処理のタイミングについては様々な議論がありますが、下記の記事でだいこもんさんが検証されているように、リニア画像・ストレッチ後の画像で大きな差は見られないようです。
今回の記事では、最近私が行っているノイズ処理の方法を、順を追って記載していきます。
処理方法
SCNR
SCNR (Subtractive Chromatic Noise Reduction) は、特にワンショットカラーカメラで発生しやすい、緑色のカラーノイズを除去するプロセスです。
詳細な使用方法は、私の過去記事に記載しておりますので、割愛します。
使用したマスクと、処理結果は下記の通りです。
TGVDenoise
続いて、TGV (Total Generalized Variation) Denoiseというプロセスを用いて、ノイズ処理を行います。このプロセスは、空間周波数の高い(スケールの小さい)ノイズを選択的に除去するプロセスで、大きな構造(星雲や輝星など)を残しながら、背景の細かいノイズだけを除去することができます。
このプロセスの肝となるのはマスクの作製で、ハイライトを中心にバックグラウンドにもかかるような強いマスクを作り、強い処理を、マスクの強さでコントロールするというのがポイントです。
適用にあたり、下記のサイト様を参考にさせていただきました。
https://masahiko.me/tgvdenoise-pixinsight/
https://www.lightvortexastronomy.com/tutorial-noise-reduction.html
はじめに、マスクを2種類作成します。
マスク②: SCNRの終わった画像よりL画像を取り出し、STFのオートストレッチを適用します。
続いて、より強く画像を保護するマスクを作ります。ポイントは、バックグラウンドにも保護がかかるように、コントラストを低く、明るさを明るくすることです。
マスク③: マスク②をコピーし、CurvesTransformationを用いて、下図のようなトーンカーブを適用します。制御点は、座標(0,0.2), (1, 0.5)の2か所に打っています。これにより、画像のコントラストが著しく低下します。
トーンカーブを適用した後、HistogramTransformationを用いて、ミッドレンジを持ち上げます。輝度のピークあたりに、ミッドトーンのスライダーを移動します。全体に明るい画像となります。これでマスク③が完成しました。
処理対象の画像へ、マスク③を適用しておきます。
2種類のマスクが完成しましたので、次に”Edge protection”パラメータを決定するため、バックグラウンドの輝度を調べておきます。
元画像のLチャンネルを取り出し、バックグラウンドと思われる領域をプレビューで切り取ります。”Statistics”プロセスを起動し、”stdDev” (標準偏差) を確認しておきます。
TGVDenoiseのパラメータを設定します。設定は下記の通りです。
- Mode: CIE L*a*b mode
- Strength: 任意の値でまずはテストする (LightnessよりChrominanceの方で値を大きめにする)
- Edge protection: 上で確認した標準偏差の値を入力する
- Smoothness: 2 (変えるとどうなるのかは未検証)
- Iterations: Lightness は500、Chrominance は100 (元画像のファイルサイズ、処理PCの能力に応じて変更する)
- Local support → Support image: マスク②を指定する
次に、プレビューを切り取り、”Strength”の値を最適化するためにテストを行います。プレビューとして切り取る領域には、以下の条件をできるだけ多く含む、できるだけ小さい領域が適しています。(繰り返し処理を行うTGVDenoiseは一般的に計算時間が大きくなりがちのため)
- 背景と思われる領域
- 対象の明るい構造(銀河の中心部、星雲の中心部など)
- 対象の暗い構造(銀河の周辺部の腕、分子雲など)
- 微光星
- 飽和している輝星
作成したプレビューにプロセスを適用し、効果を確認します。
強すぎる処理を行ってしまうと回復することができないため、ここでは程々にノイズを減らすことを目標に処理を行います。
TGVDenoiseは空間周波数の大きい背景ノイズを消すプロセスのため、星雲や銀河の細かい構造が失われていないことを確認します。
構造が失われているようであれば、”Strength”の値を1/10に小さくします。その後、前回の処理プレビュー表示と見比べながら、パラメータを最適化します。
MultiscaleMedianTransform (MMT)
MultiscaleMediantTransform (以下MMT)は、ウェーブレット変換により画像の輝度に対して画像を空間周波数ごとに層別し、取り出した層に処理を施すことのできるプロセスです。このプロセスを用いて、TGVDenoiseで処理しきれなかった、やや空間周波数の低い(大きい)ノイズの処理を行います。
このプロセスにおいても、作成するマスクが重要です。作成方法はTGVDenoiseとほぼ同様です。はじめにL画像を取り出し、STFを適用します。次に、マスクの輝度を、ミッドスライダーを持ち上げることで大きくします。(ピークの左肩にミッドスライダーを持ってきています)
作成したマスク④を、元画像に適用します。
次に、MMTを起動し、下図のパラメータに沿って設定、実行します。効きが強すぎる場合は、層ごとの”Noise Reduction” → “Amount”の量を調整します。
カラーノイズ軽減
ここまでの操作で、輝度ノイズはだいぶ低減されました。続いて、カラーノイズ低減を行います。Photoshopを起動し、Camera RAWを開きます。
「ディテール」→「ノイズ低減」より、カラーのスライダーを操作して適用します。
ハイライト部の色が失われることがあるので、元画像を反転したマスクをノイズ処理後の画像に適用し、バックグラウンドだけに処理がかかるようにします。
処理結果
最終的な処理結果は下図のようになりました。ディテールを失わない範囲で、ざらざらしたノイズが低減されたと思います。
やりすぎると背景がツルツルになり、不自然になりますので、かけ具合は程々に。