随机挑选50个物体,每个物体挑选20张图片。

imgs, labels = img_pick(path)

其中,imgs为50202828,label就是50101了,那么,预处理就在img_pick中做。

function [imgs, labels] = img_pick(path)imgs = zeros(50, 20, 28, 28);labels=zeros(50, 101);namelist = dir(path);for i = 1:50 % 挑出50个物体k = rand(101); % 随机选择一个物体if namelist(k).name == '.',continue,endlabels(i,k) = 1; % 标签设置imglist = dir(strcat(path,'\',namelist(k).name));len = length(imglist);for j = 1:20 % 挑选20个图像t = rand(len); % 随机选择一个图像if imglist(t).name == '.',continue,endimg = imread(strcat(path,'\',namelist(k).name,'\',imglist(t).name));img = img_preprocess(img);imgs(i, j) = img;endend
end
function img = img_preprocess(img)img = img_preprocess(img);     % 预处理img = rgb2gray(img);           % 灰度化img = imresize(img, [28, 28]); % 宽高固定化img = im2double(img);          % 转换成输入层
end

那么主代码就非常简单了:

下面看一下CNN_train,在这里呢,我使用了一层卷积,一层池化,两层隐藏层,用两层隐藏层的原因不是为了精度更高 ,而是为了我想学习一下深度网络的那些知识。

w0 = rand(9, 9);     % 卷积层参数w
w1 = rand(784, 784); % 隐藏层参数w
w2 = rand(101, 1);   % 输出层参数w
% 训练代码
path = 'train_set';
for i = 1:10000 % 训练一万次imgs, labels = img_pick(path, 50, 20);w0, w1, w2 = CNN_train(w0, w1, w2, imgs, labels);
end

很简单了是吧,采用了小批量更新的方法,然后具体的训练被隐藏起来了,只要得出那些参数就足够 ,下面是测试代码:

% 测试代码
path = 'test_set';
res = 0;
for i = 1:1000 % 测试1000次imgs, labels = img_pick(path, 20, 5);  % 每次挑选20个物体,每个物体5张照片res = res + CNN_test(imgs, labels);
end
res/1000

至此,大致的都已经讲完了,下面就来讲CNN_train和CNN_test里面的内容。

Matlab实现图像识别(九)相关推荐

  1. matlab识别图像,基于MATLAB神经网络图像识别的高识别率代码

    MATLAB神经网络图像识别高识别率代码 I0=pretreatment(imread('Z:\data\PictureData\TestCode\SplitDataTest\0 (1).png')) ...

  2. 计算识别率的matlab代码,基于MATLAB神经网络图像识别的高识别率代码

    更新时间: 2019年3月14日10:50:04作者: 钱190 今天,我将与您分享一个基于MATLAB神经网络图像识别的高识别代码. 我认为内容非常好. 现在我与大家分享. 具有很好的参考价值. 需 ...

  3. matlab 车牌图识别,基于MATLAB车牌图像识别的设计与实现(附答辩记录)

    基于MATLAB车牌图像识别的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期报告,毕业论文15000字,代码) 摘  要:车牌照识别是图像识别领域的重要研究课题.运用MATLAB对车 ...

  4. matlab:图像识别

    matlab:图像识别 一.Matlab图像识别的基本原理 二.Matlab图像识别的实现步骤 三.常用的Matlab图像识别算法 四.Matlab图像识别的应用领域 五.总结 Matlab是一款非常 ...

  5. 基于MATLAB车牌图像识别的设计与实现

    课题介绍 车牌图像识别系统是现代智能交通管理的重要组成部分之一.车牌识别系统使车辆管理更智能化,数字化,有效提升了交通管理的方便性和有效性. 车牌识别系统主要包括了图像采集.图像预处理.车牌定位.字符 ...

  6. matlab在图像识别(深度学习神经网络)中的使用(转)

    前言: 1)图像识别用途甚广,解决的算法之一,是深度学习神经网络.matlab近几个版本,对这块的语法修改较多,总体而言,用户用起来更方便了: 2)这里以2018a版本为例,做一些粗略的说明. 1.概 ...

  7. 用MATLAB作图像识别所需要注意的细节!

    ⑴自己构建的图像矩阵一定要从double类型转换为uint8类型!示例代码如下: I1=[50 200 220 100 200]; I1=uint8(I1); ⑵MATLAB因为数组编号从1开始,所以 ...

  8. MATLAB基本操作(九):可视化矩阵的矢量场quiver函数

    这里所说的矢量化显示是指为矩阵中的每一个点标注出该点的运动方向,或者其他矢量.如下图所示 下同通过一个基本的例子来说明一个大致的过程. 假设有一个矩阵A=[1 2 3 ;4 5 6],在每一个处沿水平 ...

  9. Matlab数学建模(九):机理建模方法

    一.学习目标 (1)掌握推导法机理建模 (2)掌握元胞自动机 二.实战演练 1. 推导法机理建模 1.1 问题 某种医用薄膜有允许一种物质的分子穿透它(从高浓度的溶液向低浓度的溶液扩散)的功能,在试制 ...

  10. Matlab Tricks(九)—— 矩阵行/列的增广(删除)

    >> A = magic(4); >> A A =16 2 3 135 11 10 89 7 6 124 14 15 1 1. 列增广 >> A = [ones(s ...

最新文章

  1. 都有Python了,还要什么编译器!
  2. cesium 设置时间_Cesium之地形制作与合并
  3. make编译过程-Android10.0编译系统(三)
  4. Dagger依赖注入注解的具体作用
  5. How To: Team Build 自定义版本号
  6. Codeforces Round #505 D. Recovering BST(区间DP)
  7. Kotlin进行异步操作
  8. java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入
  9. 【网摘阅读】舒迅:产品经理必读的九步法
  10. js原生实现点击事件只创建一个元素
  11. 明日之后怎么跳过实名认证_明日之后宝箱达人活动怎么玩 明日之后宝箱达人可以开箱多少次...
  12. Oracle 表空间错误集锦
  13. 比特币支付接口php,比特币支付php类
  14. Windows Server 2003 SP2 RIS 配置问题
  15. php颜色十六进制代码,如何通过PHP中的十六进制代码检索颜色的人名
  16. Atitit mybatis返回多个数据集总结 目录 1.1. 配置handleResult接受,但是只有第一个select语句的结果 1 2. 配置resultMap ok 1 2.1. 调
  17. sobel 边缘检测 c语言,Sobel边缘检测算法(转载)(示例代码)
  18. YOLOV5 Detetct.py 流程分析
  19. 颠覆思维,你也能懂量子力学
  20. Notepad++的第三方插件介绍中文翻译

热门文章

  1. 同花顺显示正在切换服务器,同花顺服务器架构
  2. vue 调用移动录像_vue H5项目调用手机摄像头录像并上传
  3. [ PyQt入门教程 ] Qt Designer工具的使用
  4. 软件测试工程师在不同阶段需要掌握的技能
  5. Python学习第二章:变量和简单类型
  6. python 视频剪辑_视频剪辑什么鬼?Python 带你高效创作短视频
  7. 在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问问题解决
  8. s3c2416运行JAVA_实时时钟RTC - 基于S3C2440的Linux-3.6.6移植_Linux编程_Linux公社-Linux系统门户网站...
  9. win7和手机共享文件和上网
  10. 系统架构设计笔记(30)—— 可行性研究与效益分析