画像認識(深層学習)におけるオクルージョン感度について
조회 수: 3 (최근 30일)
이전 댓글 표시
CNNで学習、分類をさせて、その分類時の特徴抽出の様子をオクルージョン感度を用いて表現しようと考えております。
しかし、以下のようなソースコードで実行するとエラーが出ます。readimage内のallTestは、augmentedImageDatastoreにあるものです。
関数readimageは、augmentedImageDatastoreに対応していないのでしょうか?もし、そうであるならば併せて正しいコードをご教示ください。
よろしくお願いいたします。
ct1=0;ct2=0;ct3=0;
for i=1:length(imdsValidation.Labels)
img = readimage(allTest, i);
[classfn, score] = classify(net,img);
if classfn == imdsValidation.Labels(i)
switch classfn
case 'Bengal'
ct1 = ct1 + 1;
if ct1 == 1
scoreMap1 = occlusionSensitivity(net,img,classfn);
else
scoreMap1 = scoreMap1 + occlusionSensitivity(net,img,classfn);
end
case 'Birman'
ct2 = ct2 + 1;
if ct2 == 1
scoreMap2 = occlusionSensitivity(net,img,classfn);
else
scoreMap2 = scoreMap2 + occlusionSensitivity(net,img,classfn);
end
case 'Bombay'
ct3 = ct3 + 1;
if ct3 == 1
scoreMap3 = occlusionSensitivity(net,img,classfn);
else
scoreMap3 = scoreMap3 + occlusionSensitivity(net,img,classfn);
end
end
end
end
댓글 수: 0
답변 (1개)
Naoya
2021년 4월 8일
augmentedImageDatastore のドキュメント のオブジェクト関数群を確認できますが、同オブジェクトに対する readimage メソッドはありませんので、代わりに read メソッドを使って1枚ずつ読み込んでみてください。
img = read(allTest);
その際、事前に augmentedImageDatastore 側の MiniBatchSize プロパティの値は 1 に設定した方がよいと思います (既定では 128枚の画像を読み込むような設定となっています)。
allTest.MiniBatchSize = 1;
また、 上記 read コマンドで得られる戻り値 img は Table型となりますので、
img = img.input{1};
などで通常の行列として抽出してください。
참고 항목
카테고리
Help Center 및 File Exchange에서 深層学習、セマンティック セグメンテーション、検出에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!