YOLO4の学習デー​タセットにラベル無し​の画像を含めて良いか​?

【質問】
以下のような、ラベル無しの画像を学習データセットに含めても問題ないでしょうか?
【背景】
YOLO4を転移学習しようとしていますが、エラーになってしまいます。
学習データセットの作りが原因では?と考え、質問させて頂いております。
【実行コード】
imds = imageDatastore(imageDir);
blds = boxLabelDatastore(gTruth.LabelData);
ds = combine(imds, blds);
% MATLAB例題の補助関数そのまま使用。
targetSize = [608 608];
augds = transform(ds,...
@(data)resizeImageAndLabel(data,targetSize));
% augdsの全体的なサイズ(ここでは画像の枚数)
numData = 95;
% 分割比率を設定
trainRatio = 0.60;
validationRatio = 0.20;
testRatio = 0.20;
% 各セットのデータ数を計算
numTrain = round(numData * trainRatio);
numValidation = round(numData * validationRatio);
numTest = round(numData * testRatio);
% ランダムにデータストアを並べ替え(オプション)
augds = shuffle(augds);
% 分割
trainDatastore = subset(augds, 1:numTrain);
validationDatastore = subset(augds, numTrain+1:numTrain+numValidation);
testDatastore = subset(augds, numTrain+numValidation+1:numTrain+numValidation+numTest);
% アンカーボックスの数を指定する
numAnchors = 9;
% 学習データからアンカーボックスを推定する
[anchors, meanIoU] = estimateAnchorBoxes(augds, numAnchors);
% 面積でソートする
area = anchors(:,1).*anchors(:,2);
[~, idx] = sort(area, "descend");
anchors = anchors(idx,:);
% 各出力層にアンカーボックスを割り当てる
anchorBoxes = {anchors(1:3,:); anchors(4:6,:); anchors(7:9,:)};
% 転移学習モデル作成
name = "csp-darknet53-coco";
classes = {'rock', 'paper', 'scissors'};
detector = yolov4ObjectDetector(name,classes,anchorBoxes);
analyzeNetwork(detector.Network);
% 転移学習モデルの学習実行
options = trainingOptions("sgdm", ...
InitialLearnRate=0.001, ...
MiniBatchSize=2,...
MaxEpochs=30, ...
BatchNormalizationStatistics="moving",...
ResetInputNormalization=false,...
VerboseFrequency=25);
train_detector = trainYOLOv4ObjectDetector(trainDatastore,detector,options);
【エラー内容(実行結果)】
train_detector = trainYOLOv4ObjectDetector(trainDatastore,detector,options);
*************************************************************************
次のオブジェクト クラスに関する YOLO v4 オブジェクト検出器の学習:
* rock
* paper
* scissors
Epoch Iteration TimeElapsed LearnRate TrainingLoss
_____ _________ ___________ _________ ____________
次を使用中のエラー: reshape
要素数を変更してはなりません。その次元の適切なサイズを自動計算するには、[] をサイズ入力の 1 つとして使用してください。
エラー: trainYOLOv4ObjectDetector>iGetMaxIOUPredictedWithGroundTruth (行 425)
iou(:,:,:,batchSize) = reshape(maxOverlap,h,w,c);
エラー: trainYOLOv4ObjectDetector>iGenerateTargets (行 319)
iou = iGetMaxIOUPredictedWithGroundTruth(bx,by,bw,bh,groundTruth);
エラー: trainYOLOv4ObjectDetector>calculateLoss (行 234)
[boxTarget, objectnessTarget, classTarget, objectMaskTarget, boxErrorScale] = iGenerateTargets(gatheredPredictions, YTrain, params.InputSize, params.AnchorBoxes, penaltyThreshold);
エラー: trainYOLOv4ObjectDetector>@(varargin)calculateLoss(lossParams,varargin) (行 167)
lossFcn = @(varargin) calculateLoss(lossParams,varargin);
エラー: images.dltrain.internal.SerialTrainer>modelGradients (行 139)
loss = lossFcn(networkOutputs{:},targets{:});
エラー: deep.internal.dlfeval (行 17)
[varargout{1:nargout}] = fun(x{:});
エラー: deep.internal.dlfevalWithNestingCheck (行 15)
[varargout{1:nargout}] = deep.internal.dlfeval(fun,varargin{:});
エラー: dlfeval (行 31)
[varargout{1:nargout}] = deep.internal.dlfevalWithNestingCheck(fun,varargin{:});
エラー: images.dltrain.internal.SerialTrainer/fit (行 76)
[loss,grad,state,networkOutputs,lossData] = dlfeval(@modelGradients,self.Network,self.LossFcn,...
エラー: images.dltrain.internal.dltrain (行 102)
net = fit(networkTrainer);
エラー: trainYOLOv4ObjectDetector (行 183)
[trainedDetector,infoTrain] = images.dltrain.internal.dltrain(mbq,detector,options,lossFcn,metrics,validationPatienceMetric,'ExperimentMonitor',params.ExperimentMonitor);

回答(0 个)

类别

帮助中心File Exchange 中查找有关 深層学習、セマンティック セグメンテーション、検出 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!