www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱matlab程序源码 > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I5_06_2_6_trainYOLOv2ObjectDetector.m
%% YOLO v2偵傛傞暔懱専弌婍偺妛廗 %% 弶婜壔 clear; close all force; clc; rng('default'); %% 幵椉専弌婍梡偺妛廗僨乕僞僙僢僩傪儘乕僪 data = load('vehicleTrainingData.mat'); trainingData = data.vehicleTrainingData; dataDir = fullfile(toolboxdir('vision'),'visiondata'); trainingData.imageFilename = fullfile(dataDir,trainingData.imageFilename); %% YOLO v2僱僢僩儚乕僋傪掕媊 % 擖椡夋憸僒僀僘 imageSize = [128 128 3]; % 僋儔僗悢(崱夞偼幵椉偺傒側偺偱1屄) numClasses = width(trainingData)-1; % 傾儞僇乕儃僢僋僗 anchorBoxes = [ 43 59 18 22 23 29 84 109 ]; % 妛廗嵪傒儌僨儖 baseNetwork = resnet50; % 摿挜拪弌偺憌傪巜掕 featureLayer = 'activation_40_relu'; % YOLO v2専弌僱僢僩儚乕僋偺嶌惉 lgraph = yolov2Layers(imageSize,numClasses,anchorBoxes,baseNetwork,featureLayer); %% 怺憌妛廗僱僢僩儚乕僋傾僫儔僀僓乕偱惍崌妋擣 analyzeNetwork(lgraph) %% YOLO v2偺妛廗僆僾僔儑儞傪巜掕 options = trainingOptions('sgdm',... 'InitialLearnRate',0.001,... 'Verbose',true,... 'MiniBatchSize',16,... 'MaxEpochs',30,... 'Shuffle','every-epoch',... 'VerboseFrequency',30,... 'CheckpointPath',tempdir); %% YOLO v2暔懱専弌婍傪妛廗 [detector,info] = trainYOLOv2ObjectDetector(trainingData,lgraph,options); %% 懝幐娭悢偺悇堏傪妋擣 figure plot(info.TrainingLoss) grid on xlabel('孞傝曉偟夞悢') ylabel('懝幐娭悢') %% 僥僗僩夋憸偺撉傒崬傒偲専弌 img = imread('detectcars.png'); [bboxes,scores] = detect(detector,img); if(~isempty(bboxes)) img = insertObjectAnnotation(img,'rectangle',bboxes,scores); end figure imshow(img) %% % _Copyright 2019 The MathWorks, Inc._