Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

denoisingImageDatastore

ノイズ除去イメージ データストア

説明

denoisingImageDatastore オブジェクトを使用して、ImageDatastore 内のイメージからノイズを含むイメージ パッチとそれに対応するノイズ パッチを一括生成します。このパッチは、ノイズ除去を行う深層ニューラル ネットワークの学習に使用されます。

このオブジェクトを使用するには、Deep Learning Toolbox™ が必要です。

メモ

ノイズ除去イメージ データストアを学習データのソースとして使用する場合、データストアがエポックごとにランダム ノイズをイメージ パッチに追加するため、エポックごとに若干異なるデータセットが使用されます。エポックごとの学習イメージの実際の数は、PatchesPerImage の係数で増加します。ノイズを含むイメージ パッチとそれに対応するノイズ パッチはメモリに格納されません。

作成

説明

dnimds = denoisingImageDatastore(imds) は、イメージ データストア imds のイメージを使用して、ノイズ除去イメージ データストア dnimds を作成します。ノイズを含むイメージ パッチを生成するために、ノイズ除去イメージ データストアは、imds の初期状態のイメージを無作為にトリミングし、ゼロ平均で標準偏差が 0.1 のホワイト ガウス ノイズをイメージ パッチに追加します。

dnimds = denoisingImageDatastore(imds,Name,Value) は、名前と値のペアを使用して 2 次元イメージ パッチのサイズを指定するか、PatchesPerImageGaussianNoiseLevelChannelFormat および DispatchInBackground プロパティを設定します。複数の名前と値のペアを指定できます。各引数またはプロパティ名は引用符で囲みます。

たとえば、denoisingImageDatastore(imds,'PatchesPerImage',40) は、イメージ データストア imds の各イメージを使用して、ノイズ除去されたイメージ データストアと無作為に生成された 40 個のノイズを含むパッチを作成します。

入力引数

すべて展開する

イメージ データストア。ImageDatastore オブジェクトとして指定します。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: denoisingImageDatastore(imds,'patchSize',48) は、48 ピクセルの正方形パッチ サイズを持つノイズ除去イメージ データストアを作成します。

パッチのサイズ。'patchSize' とスカラーまたは正の値の 2 要素ベクトルで構成されるコンマ区切りのペアとして指定します。この引数は、PatchSize プロパティの 1 番目の 2 要素を設定します。

  • 'patchSize' がスカラーの場合、パッチは正方形です。

  • 'patchSize' が [r c] 形式の 2 要素ベクトルの場合、最初の要素はパッチ内の行数を指定し、2 番目の要素は列数を指定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

プロパティ

すべて展開する

チャネル形式。'grayscale' または 'rgb' として指定します。

データ型: char

学習、予測および分類中のバックグラウンドにおける観測値の送信。false または true で指定します。バックグラウンド ディスパッチを使用するには、Parallel Computing Toolbox™ が必要です。DispatchInBackgroundtrue で、Parallel Computing Toolbox がある場合、denoisingImageDatastore はパッチを非同期に読み取り、ノイズを追加し、パッチのペアをキューに入れます。

イメージ クラスの最大値の一部としてのガウス ノイズ標準偏差。範囲 [0, 1] の値を持つスカラーまたは 2 要素ベクトルとして指定します。

  • GaussianNoiseLevel がスカラーの場合、追加したゼロ平均ホワイト ガウス ノイズの標準偏差は、すべてのイメージ パッチで同一です。

  • GaussianNoiseLevel が 2 要素のベクトルの場合、標準偏差の範囲 [stdmin stdmax] を指定します。追加したゼロ平均ホワイト ガウス ノイズの標準偏差は、各イメージ パッチで一意であり、範囲 [stdmin stdmax] の一様分布から無作為にサンプリングされます。

データ型: single | double

各バッチで返される観測値の数。データストアの作成後にのみ MiniBatchSize の値を変更できます。学習、予測または分類では、MiniBatchSize プロパティは trainingOptions (Deep Learning Toolbox) で定義されたミニバッチ サイズに設定されます。

この プロパティ は読み取り専用です。

ノイズ除去イメージ データストアに含まれている観測値の合計数。観測値の数は 1 つの学習エポックの長さです。

イメージあたりのランダム パッチの数。正の整数として指定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

この プロパティ は読み取り専用です。

パッチのサイズ。正の整数の 3 要素ベクトルとして指定します。名前と値のペアの引数 'patchSize' を指定してノイズ除去イメージ データストアを作成する場合、PatchSize プロパティの最初の 2 つの要素は引数 patchSize の値に従って設定されます。

ChannelFormat プロパティは、PatchSize プロパティの 3 番目の要素を決定します。

  • ChannelFormat'Grayscale' の場合、すべてのカラー イメージがグレースケールに変換され、PatchSize の 3 番目の要素は 1 になります。

  • ChannelFormat'RGB' の場合、RGB イメージをシミュレーションするためにグレースケール イメージが複製され、PatchSize の 3 番目の要素は 3 になります。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

オブジェクト関数

combine複数のデータストアのデータを統合
hasdataデータが読み取り可能かどうかを判別
partitionByIndexインデックスに応じた denoisingImageDatastore の分割
previewデータストア内のデータのサブセットをプレビュー
readdenoisingImageDatastore からデータを読み取る
readallデータストアのすべてのデータの読み取り
readByIndexdenoisingImageDatastore からインデックスで指定されたデータを読み取る
resetデータストアの初期状態へのリセット
shuffleデータストア内のデータのシャッフル
transformデータストアの変換
isPartitionableデータストアが分割可能かどうかを判別
isShuffleableデータストアがシャッフル可能かどうかを判別

すべて折りたたむ

イメージ データストアを取得します。この例のデータストアにはカラー イメージが含まれています。

setDir = fullfile(toolboxdir('images'),'imdata');
imds = imageDatastore(setDir,'FileExtensions',{'.jpg'});

イメージ データストア内の各イメージから多数のパッチを作成し、パッチにガウス ノイズを追加する denoisingImageDatastore オブジェクトを作成します。名前と値のペアを使用して、denoisingImageDatastore のオプションの PatchesPerImagePatchSizeGaussianNoiseLevel、および ChannelFormat プロパティを設定します。ChannelFormat プロパティを 'grayscale' に設定した場合、denoisingImageDatastore はすべてのカラー イメージをグレースケールに変換します。

dnds = denoisingImageDatastore(imds,...
    'PatchesPerImage',512,...
    'PatchSize',50,...
    'GaussianNoiseLevel',[0.01 0.1],...
    'ChannelFormat','grayscale')
dnds = 
  denoisingImageDatastore with properties:

         PatchesPerImage: 512
               PatchSize: [50 50 1]
      GaussianNoiseLevel: [0.0100 0.1000]
           ChannelFormat: 'grayscale'
           MiniBatchSize: 128
         NumObservations: 16896
    DispatchInBackground: 0

ヒント

  • さまざまな範囲のガウス ノイズ標準偏差について深層ニューラル ネットワークを学習させることは、単一のガウス ノイズ標準偏差についてネットワークを学習させる場合と比較して、はるかに難しい問題です。単一のノイズ レベルのケースと比較して、多くのパッチを作成する必要があり、学習に時間がかかる可能性があります。

  • ノイズ除去イメージ データストアのデータを可視化するには、データのサブセットをテーブルで返す関数 preview を使用できます。変数 input にはノイズを含むイメージ パッチが格納され、変数 response には対応するノイズ パッチが格納されています。関数 montage を使用して、ノイズを含むイメージ パッチまたはノイズ パッチをすべて同じ Figure に可視化します。たとえば、このコードはノイズ除去イメージ データストア dnimds のデータを表示します。

    minibatch = preview(dnimds);
    montage(minibatch.input)
    figure
    montage(minibatch.response)

  • ノイズ除去イメージ データストアからイメージを読み取るたびに、異なるランダムな量のガウス ノイズが各イメージに追加されます。

バージョン履歴

R2018a で導入