卷积神经网络

  • S1_428729
    了解作者
  • 956.6KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 5
    下载次数
  • 2022-04-17 05:01
    上传日期
这是卷积神经网络的一个实际用例,已经调试好了,能够在matlab上成功运行,适合从事卷积神经网络(CNN)研究的人员学习使用。
卷积神经网络.rar
  • down.m
    313B
  • cnnupdate.m
    1.9KB
  • Main_CnnExample_RunThisFilePlease.m
    5.1KB
  • cnntest.m
    392B
  • cnntrain.m
    997B
  • rot180.m
    125B
  • cnnbp.p
    767B
  • cnninit.m
    3KB
  • fx.m
    44B
  • cnnff.m
    2.3KB
  • TrainTestSample.mat
    950KB
  • dy.m
    48B
  • normalize_lzb.m
    390B
  • up.m
    691B
内容介绍
clear all; close all; clc; % CNN - 主程序 % % 参考文献: % [1] Notes on Convolutional Neural Networks. Jake Bouvrie. 2006 % [2] Gradient-Based Learning Applied to Document Recognition. Yann LeCun. 1998 % [3] https://github.com/rasmusbergpalm/DeepLearnToolbox % % 作者:陆振波 % 电子邮件:luzhenbo2@qq.com % 个人博客: http://blog.sina.com.cn/luzhenbo2 % 毕业院校:海军工程大学,船舶与海洋工程(水声工程),博士 % 精通方向:信号处理,图像处理,人工智能,模式识别,支持向量机,深度学习,机器学习,机器视觉,群体智能,Matlab与VC++混编 % 擅长技能:战略规划,团队管理,C,C++,Matlab,OpenCV,DSP,并行计算,图像处理,智能视觉,卷积神经网络,人脸检测,行人检测,车牌识别,特征提取,智能眼镜,辅助驾驶,ADAS,AdaBoost,LBP,HOG,MeanShift,目标检测,目标识别,目标跟踪,大数据 % % 工作经历: % 2015.05-至今,大连楼兰科技股份有限公司,智能视觉技术总监(沈阳分公司) % 工作职责:组织用于“无人驾驶/自动驾驶汽车”和“智能眼镜”的智能视觉技术、产品开发与创新,主要内容有:高级驾驶辅助系统(ADAS)产品研发(360全景,车道偏离警告、车道保持辅助、前方碰撞警示、车距检测、行人检测、夜视、行车记录、疲劳检测、交通信号灯识别、限速标志识别等),智能眼镜视频目标自动检测、跟踪与识别,具体工作有如下几点: % [1] 组织技术、产品开发与创新; % [2] 制订并组织实施技系统工作目标和工作计划; % [3] 组织制订并实施技术系统规章制度和实施细则; % [4] 组织建立并实施质量体系。 % % 2012.05-2015.05,沈阳聚德视频技术有限公司,高级图像处理与模式识别工程师 % 工作职责:电子警察、卡口、收费口、停车场等场景的智能交通和智能视觉产品研发。基于LBP、HOG、SIFT、SURF的特征提取,基于BP、RBF神经网络和SVM(支持向量机)的分类器设计,基于AdaBoost人脸检测框架的智能视觉研发,主要包括以下几点: % [1] 车牌定位、倾斜校正、颜色判断、字符分割,汉字与字母数字识别这五大模块的C/C++实现,DSP植入,识别率:汉字不低于99.5%,数字字母不低于99.8%,整个车牌识别率不低于97%; % [2] 92个类别的车型车标识别C/C++实现,DSP植入,识别率:不低于90%; % [3] 视频场景中的车辆检测、跟踪与识别等算法开发,C/C++实现,DSP植入。 % % 2004.09-2012.05,海军,科研人员 % 工作职责:基于信号和图像的主被动声纳目标特征提取与识别。 % [1] 对声纳信号进行仿生学听觉建模,采用了基于Bark子波变换、听觉特征描述、MFCC描述等特征提取方法,以及采用基于BP、RBF神经网络和SVM(支持向量机)的模式识别手段,实现对水中目标的自动识别; % [2] 对海杂波和声纳混响等背景噪声进行非性线混沌动力学建模,实现非线性噪声背景下的微弱目标检测。 %-------------------------------------------------------------------------- % 加载训练测试样本 load('TrainTestSample.mat','SAMPLE','TARBP','TARSVM'); train_x = normalize_lzb(double(SAMPLE)); % 输入图片归一化到[0 1], double型 train_y = double(TARBP); test_x = train_x; test_y = train_y; %-------------------------------------------------------------------------- % 样本显示 kk = randperm(size(train_x,3)); % 打乱训练样本顺序 figure; for I=1:25 i = kk(I); Y1 = train_x(:,:,i)*255; % 特别注意: 原图为仅有0,255的二值化图像 t = find(train_y(:,i))-1; % 目标值,依次从0-9正交编码 subplot(5,5,I); imshow(uint8(Y1)); title(num2str(t)); end %-------------------------------------------------------------------------- % 初始化一个CNN网络 net.layers = { struct('type','i','iChannel',1,'iSizePic',[32 32]) % 输入层: 'i',iChannel个输出通道,输入图片大小iSizePic struct('type','c','iChannel',2,'iSizeKer',5) % 卷积层: 'c',iChannel个输出通道,卷积核大小[iSizePic iSizePic] struct('type','s','iSample',2) % 下采样层: 's',行列下采样率[iSample iSample] struct('type','c','iChannel',4,'iSizeKer',5) % 卷积层: 'c',iChannel个输出通道,卷积核大小[iSizePic iSizePic] struct('type','s','iSample',2) % 下采样层: 's',行列下采样率[iSample iSample] struct('type','f','iChannel',120) % 全连接层: 'f',iChannel个输出节点 struct('type','f','iChannel',84) % 全连接层: 'f',iChannel个输出节点 struct('type','f','iChannel',10) % 全连接层: 'f',iChannel个输出节点 }; net.alpha = 2; % 学习率[0.1,3] net.eta = 0.5; % 惯性系数[0,0.95],>=1不收敛,==0为不用惯性项 net.batchsize = 10; % 每次用batchsize个样本计算一个delta调整一次权值 net.epochs = 30; % 训练集整体迭代次数 %-------------------------------------------------------------------------- % 依据网络结构设置net.layers,初始化一个CNN网络 rng(1); net = cnninit(net); %-------------------------------------------------------------------------- % CNN网络训练 net = cnntrain(net, train_x, train_y); %-------------------------------------------------------------------------- % CNN网络测试 [er, bad] = cnntest(net, test_x, test_y); %-------------------------------------------------------------------------- % 结果显示 figure; plot(net.ERR); disp([num2str(er*100) '% error']);
评论
    相关推荐