セマンティックセグメンテーションのトレーニング イメージとテスト イメージ
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Kodai Sato
el 20 de En. de 2020
上のURLを参考に自分で用意したデータセットを用いてセマンティックセグメンテーションを行おうとしているのですが上のURLの学習セットとテスト セットの準備において,イメージとピクセル ラベル データを学習セットとテスト セットに無作為に分割する際,例えば,Aのイメージとピクセル ラベル データはテストセットにして残りを無作為に分けるといったことは可能なのでしょうか?
0 comentarios
Respuesta aceptada
Kenta
el 21 de En. de 2020
こんにちは、以下のように、imnameで、自分の指定する画像Aの名前を打ち込んでください。
そのうえで、下の改訂版の補助関数を置けばできます。
下が確認のためのモンタージュ表示です。
imname='006900';
[imdsTrain, imdsVal, imdsTest, pxdsTrain, pxdsVal, pxdsTest] = partitionCamVidData_revised(imds,pxds,imname);
以下が改訂版の補助関数です。イメージデータストアから、自分の指定する画像を探し出して、
それのインデックスを最後に持ってこれば、テストデータに含めることができます。
function [imdsTrain, imdsVal, imdsTest, pxdsTrain, pxdsVal, pxdsTest] = partitionCamVidData_revised(imds,pxds,imname)
% Partition CamVid data by randomly selecting 60% of the data for training. The
% rest is used for testing.
% Set initial random state for example reproducibility.
rng(0);
numFiles = numel(imds.Files);
shuffledIndices = randperm(numFiles);
imLogical=contains(imds.Files,imname);
imIdex=find(imLogical==1);
imIdexDel=find(shuffledIndices==imIdex);
shuffledIndices(imIdexDel) = [];
shuffledIndices=[shuffledIndices,imIdex];
% Use 60% of the images for training.
numTrain = round(0.60 * numFiles);
trainingIdx = shuffledIndices(1:numTrain);
% Use 20% of the images for validation
numVal = round(0.20 * numFiles);
valIdx = shuffledIndices(numTrain+1:numTrain+numVal);
% Use the rest for testing.
testIdx = shuffledIndices(numTrain+numVal+1:end);
% Create image datastores for training and test.
trainingImages = imds.Files(trainingIdx);
valImages = imds.Files(valIdx);
testImages = imds.Files(testIdx);
imdsTrain = imageDatastore(trainingImages);
imdsVal = imageDatastore(valImages);
imdsTest = imageDatastore(testImages);
% Extract class and label IDs info.
classes = pxds.ClassNames;
labelIDs = camvidPixelLabelIDs();
% Create pixel label datastores for training and test.
trainingLabels = pxds.Files(trainingIdx);
valLabels = pxds.Files(valIdx);
testLabels = pxds.Files(testIdx);
pxdsTrain = pixelLabelDatastore(trainingLabels, classes, labelIDs);
pxdsVal = pixelLabelDatastore(valLabels, classes, labelIDs);
pxdsTest = pixelLabelDatastore(testLabels, classes, labelIDs);
end
11 comentarios
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!