辞書学習を用いた画像ノイズ除去

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、辞書学習を使って歪んだ画像のノイズ除去を学びます。アライグマの顔画像のノイズ付き断片を再構築する際の、まずはオンライン辞書学習とさまざまな変換方法の効果を比較する例を使います。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題に直面した場合は、Labby にお尋ねください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

歪んだ画像を生成する

最初のステップは、歪んだ画像を生成することです。Scipy のデータセットを使ってアライグマの顔画像を読み込みます。画像をダウンサンプリングして速度を上げ、画像の右半分を歪ませます。

歪んだ画像を表示する

歪んだ画像の歪みの影響を見るために、歪んだ画像を表示します。

参照パッチを抽出する

画像の左半分からすべての参照パッチを抽出します。Scikit - learn の extract_patches_2d 関数を使ってパッチを抽出します。平均を引き、標準偏差で割ることでデータを正規化します。

参照パッチから辞書を学習する

このステップでは、参照パッチから辞書を学習します。Scikit - learn の MiniBatchDictionaryLearning を使って辞書を学習します。抽出したパッチに対して辞書をフィットさせます。

ノイジーなパッチを抽出し、辞書を使って再構成する

このステップでは、歪んだ画像からノイジーなパッチを抽出し、辞書を使って再構成します。パッチを再構成するために、直交マッチング追跡、最小角回帰、および閾値処理の 4 つの異なる変換アルゴリズムを使用します。再構成された画像を表示し、元の画像と比較します。

まとめ

この実験では、辞書学習を使って歪んだ画像をノイズ除去する方法を学びました。Scikit - learn の MiniBatchDictionaryLearning を使って辞書を学習し、ノイジーなパッチを再構成しました。また、パッチを再構成するために 4 つの異なる変換アルゴリズムも使用しました。