イメージデータストア​の画像をノイズ付加や​ガンマ補正で水増しし​たい

조회 수: 9 (최근 30일)
Takumi Enomoto
Takumi Enomoto 2022년 3월 31일
답변: Kenta 2022년 4월 9일
イメージデータストアを水増しさせる意図でtransform関数の例を参考に以下のコードを書きました。
しかし、実行すると
使い方によるエラー matlab.io.datastore.TransformedDatastore/read
データストアに定義されている変換関数が無効です。
使い方によるエラー imnoise
1 番目の入力引数 I は次のタイプのいずれかにする必要があります:
uint8, uint16, double, int16, single
指定されたタイプは table でした
という結果になってしまいます。
イメージデータストアの回転や切り抜きの伴わないノイズやブレなどの水増しはどのようにすればよろしいでしょうか。
%Train2=transform(Train,@(x) imnoise(x,'gaussian'));
  댓글 수: 1
Hiroyuki Hishida
Hiroyuki Hishida 2022년 4월 1일
実際に読み込まれているデータや、これ以前のスクリプトが不明なため、具体的なアドバイスがし辛い状況ですが、deep learningのためのaugmentationをされようとしており、そこでエラーが生じているように思われます。仮にそうだとした場合、以下のリンクの、「データストア出力に必要な形式は、ネットワーク アーキテクチャによって異なります。」以降の表が参考になるかもしれません(R2022a現在)
https://jp.mathworks.com/help/deeplearning/ref/trainnetwork.html#mw_199f8be9-53f8-4bac-acdf-2846778f5904

댓글을 달려면 로그인하십시오.

채택된 답변

Kenta
Kenta 2022년 4월 9일
こんにちは、MATLABの関数に加えて、よりカスタマイズされたデータ拡張をしたい場合は、以下のファイルを参考にしていただくと良いと思います。
ここでは2つのファイルがあります。1つ目は、質問者様のおっしゃるような、N番目の画像を処理したい場合、
2つ目は、N番目とその他の画像を同時に処理したい場合です。例としては、mixupのような、ある2つの画像を組み合わせて、あらたな画像を作る場合です。
おそらく、今回は1つ目のケースだと思います。
transform関数に適用させる関数としては、以下のような関数を定義していて、この中身をノイズやブレ、またはその組み合わせのコードに書き換えると良いと思います。
function [dataOut,info] = CutOutAug(InputImgs,info)
numImg = size(InputImgs,1);
dataOut = cell(numImg,2);
for idx = 1:numImg
I =InputImgs{idx,1};
% Add salt and pepper noise if you want
% I = imnoise(I,'salt & pepper',0.01);
%
maskHeightMax=round(size(I,1)/2);
maskWidthMax=round(size(I,2)/2);
% randomly define the location, width and height of the mask
x = randi(size(I,1),1);
y = randi(size(I,2),1);
h = randi(min(size(I,1)-x+1,maskHeightMax),1);
w = randi(min(size(I,2)-y+1,maskWidthMax),1);
% fill in the rectangle with gray
I(x:x+h,y:y+w,:)=128;
% resize the image
I = I(1:32,1:32,:);
% prepare for output
dataOut(idx,:) = {I,info.Label(idx)};
end
end

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Image Processing and Computer Vision에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!