MATLAB Answers

YOLOv2深層学習​を使用したオブジェク​トの検出での質問

조회 수: 12(최근 30일)
HY
HY 6 Jul 2020
댓글: HY 7 Jul 2020
ニューラルネットワーク初心者です。今回、MATLABにあるYOLOv2深層学習を使用したオブジェクトの検出(https://jp.mathworks.com/help/vision/ug/train-an-object-detector-using-you-only-look-once.html)の例に則って道路標識を検出できるようなYOLOを作成しようと、以下のコードを実装しました。
data=load('H3.mat'); %ラベル付けしたデータ
SignDataset = data.H3;
SignDataset.imageFilename = fullfile(pwd,SignDataset.imageFilename);
rng(0);
shuffledIndices = randperm(height(SignDataset));
idx = floor(0.8 * length(shuffledIndices) );
trainingDataTbl = SignDataset(shuffledIndices(1:idx),:);
testDataTbl = SignDataset(shuffledIndices(idx+1:end),:);
imdsTrain = imageDatastore(trainingDataTbl{:,'imageFilename'});
bldsTrain = boxLabelDatastore(trainingDataTbl(:,2:end-1));%標識の種類が複数あるため(:,2:end-1)
imdsTest = imageDatastore(testDataTbl{:,'imageFilename'});
bldsTest = boxLabelDatastore(testDataTbl(:,2:end-1));
trainingData = combine(imdsTrain,bldsTrain);
testData = combine(imdsTest,bldsTest);
data = read(trainingData);
I = data{1};
bbox = data{2};
annotatedImage = insertShape(I,'Rectangle',bbox);
annotatedImage = imresize(annotatedImage,2);
figure
imshow(annotatedImage)
inputSize = [224 224 3];
numClasses = width(SignDataset)-1;
trainingDataForEstimation = transform(trainingData,@(data)preprocessData(data,inputSize));
numAnchors = 7;%size(anchorBoxes,1);
[anchorBoxes, meanIoU] = estimateAnchorBoxes(trainingDataForEstimation, numAnchors)
imshow(annotatedImage)までは、問題なく実行されるのですが、アンカーボックスの推定におけるコードを実行すると以下のようなエラーが発生してしまいます。原因も書かれていますが、よく分かりませんでした。これはどのように対処したら良いでしょうか。回答していただければ幸いです。
よろしくお願いいたします。
エラー: estimateAnchorBoxes>iCheckBoxesFromDatastore (line 215)
Invalid transform function defined on datastore.
エラー: estimateAnchorBoxes>iParseInputs (line 168)
boxes = iCheckBoxesFromDatastore(datastore);
エラー: estimateAnchorBoxes (line 136)
[boxes, numAnchors, params] = iParseInputs(datastore, numAnchors,
varargin{:});
エラー: mobilev2 (line 43)
[anchorBoxes, meanIoU] = estimateAnchorBoxes(trainingDataForEstimation,
numAnchors)
原因:
関数 'preprocessData' (タイプ'cell' の入力引数) が未定義です。

채택된 답변

Kenta
Kenta 6 Jul 2020
おそらく、補助関数のファイルpreprocessData が同じディレクトリに存在しないためと思います。例を開いたときに、preprocessData というファイルが見つかると思うので、それを同じディレクトリにあることを確認して実行しなおしてみてください。
  댓글 수: 3
HY
HY 7 Jul 2020
丁寧に回答いただき、ありがとうございました。

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

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!