资源简介
需要再matlab2017a即以上版本上运行 资源来自网络 本为matlab计算机视觉与深度学习实战28章示例代码
代码片段和文件信息
clc; clear all; close all;
tic;
%% 加载数据
% vehicleDataset是一个dataset数据类型,第一列是图片的相对路径,第二列是图片中小汽车的位置
data = load(‘fasterRCNNVehicleTrainingData.mat‘);
% 提取训练集
vehicleDataset = data.vehicleTrainingData;
% 提取图片路径
dataDir = fullfile(toolboxdir(‘vision‘)‘visiondata‘);
vehicleDataset.imageFilename = fullfile(dataDir vehicleDataset.imageFilename);
% 展示前9幅图片
k = 9;
I=zeros(1282283k);
for i = 1 : k
% 读取图片
tmp = imread(vehicleDataset.imageFilename{i});
% 添加标识框
tmp = insertShape(tmp ‘Rectangle‘ vehicleDataset.vehicle{i});
I(:::i) = mat2gray(tmp);
end
% 显示
Is = I;
hfig = figure; montage(Is);
set(hfig ‘Units‘ ‘Normalized‘ ‘Position‘ [0 0 1 1]);
pause(1);
%% 构建CNN网络
% 输入层,最小检测对象约32*32
inputlayer = imageInputlayer([32 32 3]);
% 中间层
% 定义卷基层参数
filterSize = [3 3];
numFilters = 32;
middlelayers = [
% 第一轮,只包含CNN和ReLU
convolution2dlayer(filterSize numFilters ‘Padding‘ 1)
relulayer()
% 第二轮,包含CNN、ReLU和Pooling
convolution2dlayer(filterSize numFilters ‘Padding‘ 1)
relulayer()
maxPooling2dlayer(3 ‘Stride‘2)
];
% 输出层
finallayers = [
% 新增一个包含64个输出的全连接层
fullyConnectedlayer(64)
% 新增一个非线性ReLU层
relulayer()
% 新增一个2个输出的全连接层,用于判断图片是否包含检测对象
fullyConnectedlayer(2)
% 最添加softmax和classification层
softmaxlayer()
classificationlayer()
];
% 组合所有层
layers = [
inputlayer
middlelayers
finallayers
];
%% 训练CNN网络
% 将数据划分两部分
% 前60%的数据用于训练,后面40%用于测试
ind = round(size(vehicleDataset1) * 0.6);
trainData = vehicleDataset(1 : ind :);
testData = vehicleDataset(ind+1 : end :);
% 训练过程包括4个步骤,每步可以使用单独的参数,也可以使用同一个参数
options = [
% 第1步,Training a Region Proposal Network (RPN)
trainingOptions(‘sgdm‘ ‘MaxEpochs‘ 10‘InitialLearnRate‘ 1e-5‘CheckpointPath‘ tempdir)
% 第2步,Training a Fast R-CNN Network using the RPN from step 1
trainingOptions(‘sgdm‘ ‘MaxEpochs‘ 10‘InitialLearnRate‘ 1e-5‘CheckpointPath‘ tempdir)
% 第3步,Re-training RPN using weight sharing with Fast R-CNN
trainingOptions(‘sgdm‘ ‘MaxEpochs‘ 10‘InitialLearnRate‘ 1e-6‘CheckpointPath‘ tempdir)
% 第4步,Re-training Fast R-CNN using updated RPN
trainingOptions(‘sgdm‘ ‘MaxEpochs‘ 10‘InitialLearnRate‘ 1e-6‘CheckpointPath‘ tempdir)
];
% 设置模型的本地存储
doTrainingAndEval = 1;
if doTrainingAndEval
% 训练 R-CNN 神经网络,其实神经网络工具箱提供了3个函数
% (1)trainRCNNobjectDetector,训练快检测慢,允许指定proposalFcn
% (2)trainFastRCNNobjectDetector,速度较快,允许指定proposalFcn
% (3)trainFasterRCNNobjectDetector,优化运行性能,不需要指定proposalFcn
detector = trainFasterRCNNobjectDetector(trainData layers options ...
‘NegativeOverlapRange‘ [0 0.3] ...
‘PositiveOverlapRange‘ [0.6 1] ...
‘BoxPyramidScale‘ 1.2);
else
% 加载已经训练好的神经网络
detector = data.detector;
end
% 快速测试训练结果
I = imread(‘highway.png‘);
% 运行检测器,输出目标位置和得分
[bboxes scores] = detect(detector I);
% 在图像上标记处识别的小汽车
I = insertObje
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4306 2017-07-25 21:55 rcnn_car_ob
文件 35 2017-05-11 12:53 说明.txt
----------- --------- ---------- ----- ----
4341 2
- 上一篇:采矿cad线型
- 下一篇:详解MATLAB-Simuli
nk通信系统建模与仿真源代码
相关资源
- 深度学习Matlab代码,亲测可以用。有
- 完美可运行Google net
- install_supportsoftware_VGG19.exe
- CNN深度学习识别字符matlab
- 稀疏自编码深度学习的Matlab实现
- matlab 深度学习toolbox(Deep Learn Toolbo
- 受限玻尔兹曼机matlab源代码
- 深度学习汽车目标检测matlab2017
- MATLAB2019b.zip
- 卷积(convolutional )受限玻尔兹曼机(
- 深度学习领域,dbn网络的训练代码
- 基于adaboost和深度学习网络的人脸表情
- 深度学习模型代码
- 深度学习源代码
- CNN 深度学习模型
- 一些深度学习的工具包和例程
- 深度学习matlab工具箱(DeepLearnToolbox
- CNN-Toolbox matlab的深度学习工具箱
- SparseAutoencoder MATLAB实现的深度学习自
- 深度学习matlab源码
- 含神经网络、卷积神经网络、深度信
- 2017matlab深度学习文档
- 深度学习的常用工具箱(DeepLearnTool
- CNN 深度学习的卷积神经网络的MATLAB代
- SRCNN 深度学习的图像超分辨率算法
- Autoencoder_Code 神经网络中深度学习理论
- DeepLearnToolbox_matlab matlab实现的深度学
- Exercise5-Softmax-Regression 斯坦福深度学习
- Exercise1-Sparse-Autoencoder 网址:http://d
- DeepLearnToolbox-master 关于深度学习的一
评论
共有 条评论