
trainingDataTbl = vehicleDataset(shuffledIndices(1:idx),:);
testDataTbl = vehicleDataset(shuffledIndices(idx+1:end),:);
% 保存数据和标签
imdsTrain = imageDatastore(trainingDataTbl{:,'imageFilename'}); %
路径
bldsTrain = boxLabelDatastore(trainingDataTbl(:,'vehicle')); % 真
实框和类别
imdsTest = imageDatastore(testDataTbl{:,'imageFilename'});
bldsTest = boxLabelDatastore(testDataTbl(:,'vehicle'));
% 整理训练测试集
trainingData = combine(imdsTrain,bldsTrain); % 联合文件路径和真实
框
testData = combine(imdsTest,bldsTest);
% 显示数据
data = read(trainingData); % data 包括图片数据、真实框坐标、类别
I = data{1};
bbox = data{2};
annotatedImage = insertShape(I,'Rectangle',bbox); % 在 数 据矩 阵中
标出真实框
annotatedImage = imresize(annotatedImage,2);
figure
imshow(annotatedImage) % 显示图像
% 创建 yolo 网络
inputSize = [224 224 3];
numClasses = width(vehicleDataset)-1; % 通 过 table 的 列 数计 算类别
数
% 用于评估锚框个数
trainingDataForEstimation =
transform(trainingData,@(data)preprocessData(data,inputSize));
numAnchors = 7;
[anchorBoxes, meanIoU] =
estimateAnchorBoxes(trainingDataForEstimation, numAnchors)
% 特征提取层采用 resnet50
featureExtractionNetwork = resnet50;