イメージラベラーの紐付けを別のPCで復元する方法
6 views (last 30 days)
Show older comments
Hirotada Masuda
on 25 May 2018
Answered: Ryuhei Funada
on 2 Apr 2019
あるPC上のイメージラベラーで行ったラベリングのセッションファイル、gTruthファイル、ラベルのピクセルラベルデータをフォルダごと移動し、別PC上のMatlabで読み込もうとしているのですが、セッションファイルは読み込めるものの、gTruth読み込みの際に以下のエラーが発生し復元することができません。
gTruth.matからラベルを読み込めません。groundTruthオブジェクトには有効なDataSourceがありません。有効な
groundTruthDataSourceオブジェクトを使用してDatasourceを更新してください。
別のPC上で再度ピクセルラベルデータと画像とを紐付けし直す方法を教えていただけませんでしょうか。
0 Comments
Accepted Answer
Kei Otsuka
on 25 May 2018
gTruth.matに格納されているデータソースの情報は絶対パスになっているため、ファイルを別PCに移動した場合には
groundTruthオブジェクト(gTruth.mat)を作り直す必要があります。
まず、groundTruthDataSourceオブジェクトでデータソースを指定し、
dataSource = groundTruthDataSource('05_highway_lanechange_25s.mp4');
ラベル情報の指定、
names = {'Car'};
types = [labelType('PixelLabel')];
pixelLabelID = {1};
labelDefs = table(names,types, pixelLabelID, ...
'VariableNames',{'Name','Type','PixelLabelID'});
ラベル画像のリスト作成を行い、
folderInfo = dir('PixelLabelData');
folderInfo = folderInfo(~ismember({folderInfo.name}, {'.', '..'}));
filelist = {folderInfo.name}';
for i = 1:size(filelist, 1)
tmp = strcat(fullfile(pwd, 'PixelLabelData\'), filelist{i});
filelist(i) = {tmp};
end
labelData = table(filelist,'VariableNames',{'PixelLabelData'});
最終的にgroundTruthオブジェクトを作成します。
gTruth = groundTruth(dataSource,labelDefs,labelData)
2 Comments
Kei Otsuka
on 28 May 2018
Edited: Kei Otsuka
on 28 May 2018
groundTruthオブジェクトの値は読み取り専用となっており、コピーしてもその属性は引き継がれる認識ですが、 どのような方法でgTruth2を作成されましたでしょうか。
方法を記載して頂ければ原因を調べてみることもできますが、groundTruthオブジェクトを新規に作成し直す方法が確実ですので、こちらの ヘルプ を参考にお試し頂ければ幸いです。 Examplesを見て頂くと良いかと思います。
More Answers (1)
Ryuhei Funada
on 2 Apr 2019
イメージラベラー用のgroundTruthオブジェクトでは、R2018bからオブジェクト関数changeFilePathsを使用して、groundTruthDataSourceの絶対パスを変更することができます。
下記をご参照ください。
web(fullfile(docroot, 'vision/ref/groundtruth.changefilepaths.html'))
groundTruthオブジェクトを新規に作成する方法も引き続き利用することができます。
例えばtrainingImagesDirが対象ファイルが含まれるディレクトリのパスとして
imds = imageDatastore(trainingImagesDir);
gds = groundTruthDataSource(imds.Files);
gTruth = groundTruth(gds, gTruth.LabelDefinitions, gTruth.LabelData);
となります。
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!