Main Content

さまざまなイメージの歪みに対するルーシー・リチャードソン逆畳み込みの適応

関数 deconvlucy は、高速化された減衰付きのルーシー・リチャードソン アルゴリズムを使用してイメージのブレ除去をします。アルゴリズムは、ポアソン ノイズ統計量を仮定して、PSF と畳み込んだときに、結果のイメージがブレを含むイメージのインスタンスである尤度を最大にします。この関数は、PSF が既知の場合に効果的ですが、イメージへの加法性ノイズの情報がまったくない場合でも効果的です。

関数 deconvlucy は、複雑なイメージの復元を取り扱う元のルーシー・リチャードソン 最尤法にいくつかの変更を加えています。

ノイズ増幅の効果の低減

"ノイズ増幅" は、データをできる限り近似しようとする最尤法の一般的な問題です。数回の反復のあと、イメージは、染みを含むように見え、特に信号とノイズの比が低い観測を行う平滑化したオブジェクトに対して生じます。これらの染みはイメージの中の実際の構造を表してはいません。しかし、イメージ内のノイズをできる限り近似しようとする場合に生じます。

ノイズ増幅を制御するため、関数 deconvlucy は、減衰パラメーター DAMPAR を使います。このパラメーターは、元のイメージから引き出される結果のイメージの偏差に対してしきい値のレベルを設定するもので、減衰はこの値より下で発生します。元の値の近傍内で分布しているピクセルに対して反復は低減されます。

減衰は、再生されたイメージ内の高周波数構造で表れる "リンギング" を低下させるために使われます。リンギングは、必ずしもノイズ増幅によるものではありません。詳細については、ブレ除去されたイメージ内のリンギングの回避を参照してください。

一様でないイメージの画質の考慮

実世界のイメージの再生における複雑さは、データが悪いピクセルを含んでいるか、または、受け取ったピクセルの質が、時間と位置と共に変化することです。関数 deconvlucyWEIGHT 引数と共に指定することで、イメージ内の特定のピクセルを無視するように指定できます。ピクセルを無視するには、イメージ内のピクセルに対応する WEIGHT 配列の中の要素に重みゼロを割り当ててください。

アルゴリズムは、近傍のピクセルからの情報をベースに悪いピクセルに対する予測される値に収束させることができます。ピクセルごとの検出器の応答の中の変化は、いわゆる、フラットフィールド補正と呼ばれ、WEIGHT 配列を使用して、適応されます。良いピクセルに 1.0 の重みを適用する代わりに、ある比率を設定し、フラット フィールド補正の総量に従って、ピクセルに重みを付けます。

カメラ出力ノイズへの対処

CCD 検出器の中でのノイズは、2 つの基本的な要素をもっていると考えます。

  • ポアソン分布するフォトン カウント ノイズ

  • ガウス分布する出力ノイズ

ルーシー・リチャードソン反復は元来、最初のタイプのノイズに対応します。ユーザーは 2 番目のタイプのノイズに対応しなければなりません。そうしないと、低いレベルの入射フォトンをもつピクセルが負の値になる原因となります。

関数 deconvlucy は、READOUT 入力引数を使用して、カメラ出力ノイズを取り扱うことができます。このパラメーターの値は、背景放射からのカウント数などの背景ノイズと出力ノイズ分散の和になります。READOUT 引数の値は、すべての値が正であることを保証するオフセットを指定します。

アンダーサンプルされたイメージの取り扱い

アンダーサンプルされたデータの再生は、細かいグリッド上で作業を行う場合、かなり良い修正になります。関数 deconvlucy は、PSF が高精度の解像度をもつと知られている場合、サブサンプリング レートを指定するために SUBSMPL パラメーターを使います。

アンダーサンプルされたデータが、イメージ収集の間、カメラ ピクセルのビンに集められた結果である場合、各ピクセル レートで観測される PSF は、細かいグリッド PSF として動作します。そうでない場合、PSF は、サブピクセルのオフセットでの観測値を通じて得られるか、光学的なモデリング手法を通じて得られます。この方法は、特に、星のイメージ (信号とノイズの比が高い) の場合に効果的です。これは、星の場合は、ピクセルの中央部付近に効率的に集中させることができるからです。星がピクセル間で集中している場合、近傍のピクセルの組み合わせとして再構成されます。より細かいグリッド化は、星のイメージの中心に、星の流れが広がる結果になります。

結果の画質向上

既定の設定では、関数 deconvlucy は、ブレ除去プロセスで複数の反復を行います。反復の途中の任意の回で処理を停止して結果をチェックし、その後、停止した位置から反復を再開できます。それには、入力イメージを cell 配列、たとえば {BlurredNoisy} として渡します。関数 deconvlucy は、出力イメージを cell 配列として出力し、その後、逆畳み込みを再開するときに、deconvlucy に入力引数として渡します。

出力 cell 配列は、次の 4 つの要素を含んでいます。

要素

説明

output{1}

元の入力イメージ

output{2}

最後の反復によって生成されたイメージ

output{3}

最後から 2 番目の反復によって生成されたイメージ

output{4}

プロセスの再開位置を知るために deconvlucy で使われる内部情報

参考

|

関連する例

詳細