matlab使用Alexnet识别高速路牌

一个经典的迁移学习案例,Alexnet本身需要下载,下载需要注册matlab账号,当然网上也有这个模型,随便下。

doc Alexnet doc trainFasterRCNNObjectDetector

就能查到官网提供的案例信息。

网上也有相关的案例可以参考,主要参考这两个:

MATLAB2017a使用FasterRcnn目标检测训练及其测试流程_不知名的小咸鱼的博客-CSDN博客_matlab目标检测

MATLAB2018b使用自己的数据训练faster-RCNN步骤及报错解决_是江姑娘呀-CSDN博客

当然实际使用肯定会有bug,需要慢慢调。

只要注意整体的格式,就行。运行的时候比较占内存。

clc
clear all
load('alexnet.mat',"net")

image = imageDatastore('C:\Users\1\Desktop\matlab_test_net',...
'IncludeSubfolders',true,'LabelSource','foldernames');
layersTransfer=net.Layers(1:end-3);

numClasses = numel(categories(image.Labels));

layers = [

layersTransfer

fullyConnectedLayer(numClasses,'WeightLearnRateFactor',20,'BiasLearnRateFactor',20)

softmaxLayer

classificationLayer];

options = trainingOptions('sgdm', ...
    'MiniBatchSize',5, ...
    'MaxEpochs',20, ...
    'InitialLearnRate',0.0001);
    

netTransfer = trainNetwork(image,layers,options)

 这块基本都是默认,改个照片存储路径就行,注意img是照片格式。

test= load('F:/xunlian/test.mat');     %it is not necessary
options = trainingOptions('sgdm', ...    
'InitialLearnRate', 1e-5, ...
'MaxEpochs', 20, ...                     %twenty times  训练深度不是越多效果越好,有可能适得其反,
'CheckpointPath', tempdir);
layer=netTransfer.Layers

%这里输入的tsst不对,应该是一组数组,不是一个mat数。
naq = readtable('test_table_youdian.xls')

%使用table 组合出数据,而不是从外部导入

%naqq=table(test.gTruth.DataSource.Source,)
%对这个naq进行处理

file = [] ;
aaa = test.gTruth.LabelData.biaozhi;
for i =1:30
    file2=[file;test.gTruth.DataSource.Source{i}];
    %table2array(test.gTruth.LabelData(2,1))
    
end
file=naq.imageFilename;
naqqq=table(file,aaa)

这一块数据类型主要做成table型,

有两种方法 一种是从mat文件中提出数据然后table()组合

还有一种就是readtable()读excel中的数据,看你个人情况选择。

这里面的数据其实是,路径和切割的点

训练需要一些时间(补充一个重点,需要加一个backgroud文件夹,因为这个模型本质是个分类模型,至少要二分类也就是有两个数据集,假如遇到这个报错,参考上一个博客)

 之后将这个detector另存为mat格式

之后就是测试

img=imread("图片.jpg")
load('wangluo.mat')
[bbox,score,label] = detect(detector,img);
index = find(score>0.8);
bbox = bbox(index,:);
score = score(index,:);
label = label(index,:);
img = insertObjectAnnotation(img,'Rectangle',bbox,score);
img = insertShape(img,'Rectangle',bbox);
imshow(img)

测试图像如下所示:

很粗糙,但好在简单,方便,快。。。。。。

凑合用就行了,发论文就别想了。 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值