cuixing158 / yolov3-yolov4-matlab

Import and export Darknet™ models within MATLAB deep learning networks.
93 stars 44 forks source link

你好,我在运行代码时出现了这样的错误:错误使用resizeParseInputs。我觉得可能是在preprocessTrainData这里出了点问题 #20

Closed MikeMegamind closed 3 years ago

MikeMegamind commented 3 years ago

这段代码是这样的: preprocessedTrainingData = transform(trainingData,@(data)preprocessTrainData(data,networkInputSize,structNamesIDs)); % 预览标注数据 for k = 1:1 data = read(preprocessedTrainingData); I = data{1,1}{1}; bbox = data{1,2}{1}; annotatedImage = zeros(size(I),'like',I); for i = 1:size(I,4) annotatedImage(:,:,:,i) = insertShape(I(:,:,:,i),'Rectangle',bbox{i}(:,1:4)); end annotatedImage = imresize(annotatedImage,2); figure montage(annotatedImage) end

但是在read(preprocessedTrainingData)这一步时,读出来的结果是{608×608×3×0 single} 和 {0×1 cell},导致I和bbox也是空的,后面的程序就无法运行。 我猜可能是preprocessedTrainingData = transform(trainingData,@(data)preprocessTrainData(data,networkInputSize,structNamesIDs));出了问题,但是我找不出来。 请帮帮我吧。

MikeMegamind commented 3 years ago

经过我的测试,我发现当我使用具有几个类别的训练数据时,就会出现上述结果。如果我使用只有一个类别的训练数据,在read(preprocessedTrainingData)这一步读出的结果就是{608×608×3×16 single} {16×1 cell}。我不知道哪里出了问题。希望有人能帮帮我

MikeMegamind commented 3 years ago

在我测试很多次以后终于把问题解决了,用于训练的数据,检测框必须是整数,否则在preprocessTrainData函数中的 bboxes = bboxresize(bboxes,scale)会出错,最终导致输出的结果为空。