日本Deconvolution学会報告 「星雲中のリンギング抑制」 〜 PixInsightの画像処理

我が日本Deconvolution学会はこの数ヶ月で急速な発展を遂げました。技術的なブレイクスルーをもたらしたのが、もりのせいかつのkさんによるGlobal dark 0戦略です。だいこもんさんによる追加検証と理論的な解明も経て、これまで扱いにくかったDeconvolutionが一気に実用化されました。

Deconvolutionは星像をシャープに小さくしますが、その結果として星の周りにリンギングと呼ばれる黒い輪ができてしまいます。リンギングを抑制するのがGlobal dark。リンギング部分にうまい具合に少し明るめの色をいれて目立たなくしてくれます。しかし副作用として画像の階調が失われ輝度部分が突出します。kさんは「構造の輝度凹凸を島々とすると、島を高くするのがDeconvolution。Global darkは海面を上昇させるので中輝度の諧調が海に没する」と上手に表現されていました。Deconvolultionユーザはこれまでリンギング抑制と階調の喪失のトレードオフの中で微調整を繰り返して絶妙な値を探ってきたわけです。

そんな世間の常識を一変させたのがGlobal dark 0戦略。リンギング対策はマスクに任せてGlobal darkを0にしてしまいDeconvolution処理の効果を最も高く使おうという考え方です。試してみると効果は絶大。逆転の発想に驚きつつ活用が始まりました。しかし、私には一つ問題が残りました。焦点距離の短い望遠鏡を使っている私は星雲撮影が中心ですが、星雲中の星にはうまくマスクをかけることができず、リンギングやその対処の痕跡が残ってしまうのです。

そこで登場するのがLocal deringingです。

Local deringingによってリンギングを抑制する

Local SupportとはPixInsightにあるリンギング対策機能の一つです。Global darkが画像全体を対象にに処理するのに対して、Local deringingは局所的に作用します(PixInsightでglobalという言葉は全体の意味に使われます)。このときリンギング対策の指示出しを行うのがLocal support。「ここに、こんな輝度の星があるから対策してね」とお願いをします。間違えやすいのですが、Local supportはマスクではなくて、指示出しが目的です。

これまで私は深く考えずLocal SupportにはStar Maskで作成したマスクを使っていましたが、これが大間違い。

StarMaskをLocal Supportに使用
StarMaskをLocal Supportに使用

これでは望遠鏡で星を見たのではなく顕微鏡の微生物の観察です。StarMaskによるマイルドな指示では職人気質のDeconvolutionは「こんな依頼じゃ動けねぇな」と仕事をしてくれなかったわけです。

そこで考えたのが、キレキレのStarNetにビシッと指示をだしてもらうこと。

StarNetをLocal Supportに使用
StarNetをLocal Supportに使用

おお!今度はうまくいっています。実はこれ、StarNetで作られた星マスクもいくつか修正をいれています。そのままの状態では、逆にシャープすぎてうまくいかなかったのです。

早速やり方をみていきましょう。ちなみに上記画像もこれからの画像も、効果がわかるようにするために、背景や星雲のマスクは使わずLocal Supportだけを利用しています。

StarNetをLocal Supportに使う

まずStarNetを使って星マスクを用意します。StarNetの使い方はこちらを参照ください。リニア画像はStarNetがかかりにくいので、元画像のクローンを作りストレッチした画像に対してStarNetをかけてください。元の画像はリニアのままです。またDeconvolutionの使い方はこちらです。

できあがった星マスクはよりキレキレの指示にするためにHistogramTransformationを使ってShadowsを切り詰め、Midtonesを左に寄せコントラストを高めました。Shadowsをこんなにあげることは普通ではないので、合わせてお楽しみください。

HistogramTransformationを使って星マスクのコントラストを高くする
HistogramTransformationを使って星マスクのコントラストを高くする

できあがった星マスクをDeconvolution画面のLocal supportに設定します。

StarNet画像をLocal supportに設定

Global darkを0にしてプレビューに対してDeconvolutionを実行してみます。

StarNetをそのままLocal Supportに使用
StarNetをそのままLocal Supportに使用

StarMaskをLocal Supportに使用したときより良くなりましたが、まだリンギングが残っています。星マスクと結果画像と比較してみると、StarNetの星像が小さすぎるようです。

そこでStarNetの星マスクにMorphologicalTransformationをかけてみます。

StarNetの星像を大きくする

Sizeが3では拡大が足りなかったので5にしています。これをStarNetの星マスクにかけて、もう一度Deconvolutionを実行してみます。ちなみにDeconvolution画面でLocal Support画像を設定し直す必要はありません。Local Supportの画像は毎回Deconvolutionの実行時に読み込まれるので、Local Supportを変更するとそれが自動でDeconvolutionに反映されます。では実行します。

StarNetの星像を大きくしてDeconvolution
StarNetの星像を大きくしてDeconvolution

おお、かなり良くなりました。しかし拡大してみてみると、まだ痕跡が少しのこっています。

まだ星の周りに加工の痕跡が残る
まだ星の周りに加工の痕跡が残る

そこでStarNetの星マスクにConvoluiton処理をかけて、星像を少しぼかしました。DeconvolutionをするためにConvolutionを使うというわけです。ややこしい。

Convolution

ConvolutionはProcess-Convolutionメニューにあります。StdDevを1.00に変更しています。

Local SupportにConvolutionをかけて実行
Local SupportにConvolutionをかけて実行

これはかなり良いのではないでしょうか。Local supportの下にあるLocal amountは処理の強度を設定します。この値でも結果は大きく変わりました。今回の場合は既定値の0.7で問題ありませんでしたが、痕跡が残るなどの場合にLocal amountの値も変更してみてください。

苦手科目だったDeconvolution。まだ検証した画像はひとつめであるものの、なんとかいけそうです。
日本Deconvoluton学会からのご報告でした!

学会員からのレポート

早速、おののきももやす学会員からの追試験レポートがありました。当学会員は日本Deconvolution学会の米国支部長の役に就かれています。

わーい。見事にリンギングがなくなっていますね!銀河でも有効性が確認されました。おののきももやすさんによると、HistogramTransformationでコントラストをあげたことがキモとのこと。コントラストをあげないと、MorphologicalTransformationで星を大きくするだけでは効果がなかったそうです。

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