Matlab实现图像识别(八)
这节实现图像的预处理。
在最开始的时候,我们仅仅是把图像进行灰度化,并为了训练效率,强行缩小了图像,导致损失了许多图像信息,实际上,有更多的方法来保存这些信息。
现在流行的图像预处理算法非常多,例如图像反转,灰度线性变换,非线性变换,直方图均衡化,线性平滑滤波器,中值滤波器,Sobel算子和拉普拉斯对图像锐化,梯度算子检测边缘,LOG算子检测边缘,Canny算子检测边缘,边界跟踪(bwtraceboundary函数),Hough变换,直方图阈值法,自动阈值法:Otsu法,膨胀操作,腐蚀操作,开启和闭合操作,开启和闭合组合操作,形态学边界提取等等。
例如对于车牌识别或者指纹检测,我们可以使用图像锐化的方法,这样更容易提取出特征,但是对于一般图像检测的话,锐化可能导致信息丢失,究竟用什么预处理方法,最好的方法就是挨个试一下,哪个有用就用哪个。
说实在的,既然把图像都压缩到60*80大小了,而且还不能变大,变大那么运算力就会吃紧,导致丢失大量信息,另外就是图片也是灰度化的,完全丢失了颜色信息,任何要增加信息量的方法都必然会使运算负担加重,导致图像预处理也就是并没有太大作用了,锐化了的图像就一定能比不锐化的图像识别的更成功吗?不一定,但是可以预见的是,即便是精度有损失,也不一定会损失多少。
因此,我的结论是,对图像不进行图形学上的预处理,直接进行卷积池化获得特征。
在一开始我们怎么压缩的图片呢?是这样的:
img = imresize(img, [60, 80]);
这个imresize是怎么调整到任意大小的呢?它是按照双三次插值,这仍是图形学上的操作,我们用卷积来代替,会得到更多的信息。
卷积参数和池化参数怎么确定呢?这里面可以调整的参数太多了,只能说一个一个试,现在随便选择一个。先把图像大小固定到2828,用20个99的卷积过滤器,池化层为2*2的平均池化,隐藏层100个节点,输出层10个节点,那么,我们需要训练的就只有三个参数,分别是卷积时候的参数,隐藏层的参数和输出层的参数。整个运算过程就可以直接用一个函数代表了。我们可以这样用:
那么这里就会有一个问题,就是一般是有一个b,但是这里没有b的位置了,为了代码清晰,就没用,实际上,既然都这么不准了,或者说,整个网络都没有什么特别清晰的判定标准,多一个b,少一个b又能降低多少精确度呢?you never know.
其中X是输出数据,L为标签,这样,每次输入一个批量的数据,返还修改后的参数,然后循环个几千遍,就算好了。
下节讲代码。
Matlab实现图像识别(八)相关推荐
- matlab识别图像,基于MATLAB神经网络图像识别的高识别率代码
MATLAB神经网络图像识别高识别率代码 I0=pretreatment(imread('Z:\data\PictureData\TestCode\SplitDataTest\0 (1).png')) ...
- 计算识别率的matlab代码,基于MATLAB神经网络图像识别的高识别率代码
更新时间: 2019年3月14日10:50:04作者: 钱190 今天,我将与您分享一个基于MATLAB神经网络图像识别的高识别代码. 我认为内容非常好. 现在我与大家分享. 具有很好的参考价值. 需 ...
- matlab 车牌图识别,基于MATLAB车牌图像识别的设计与实现(附答辩记录)
基于MATLAB车牌图像识别的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期报告,毕业论文15000字,代码) 摘 要:车牌照识别是图像识别领域的重要研究课题.运用MATLAB对车 ...
- matlab:图像识别
matlab:图像识别 一.Matlab图像识别的基本原理 二.Matlab图像识别的实现步骤 三.常用的Matlab图像识别算法 四.Matlab图像识别的应用领域 五.总结 Matlab是一款非常 ...
- 基于MATLAB车牌图像识别的设计与实现
课题介绍 车牌图像识别系统是现代智能交通管理的重要组成部分之一.车牌识别系统使车辆管理更智能化,数字化,有效提升了交通管理的方便性和有效性. 车牌识别系统主要包括了图像采集.图像预处理.车牌定位.字符 ...
- 等参元八节点matlab,平面四边形八节点等参元matlab程序.docx
平面四边形八节点等参元matlab程序.docx 1广州大学<有限元方法与程序设计>学院:土木工程学院专业:结构工程姓名:曾一凡学号:21115160**2%平面四边形八节点等参元MATL ...
- matlab在图像识别(深度学习神经网络)中的使用(转)
前言: 1)图像识别用途甚广,解决的算法之一,是深度学习神经网络.matlab近几个版本,对这块的语法修改较多,总体而言,用户用起来更方便了: 2)这里以2018a版本为例,做一些粗略的说明. 1.概 ...
- 用MATLAB作图像识别所需要注意的细节!
⑴自己构建的图像矩阵一定要从double类型转换为uint8类型!示例代码如下: I1=[50 200 220 100 200]; I1=uint8(I1); ⑵MATLAB因为数组编号从1开始,所以 ...
- MATLAB GUI笔记(八):列表框的使用
笔记八是简单介绍列表框的使用,其功能和按钮组类似. 目录 笔记八是简单介绍列表框的使用,其功能和按钮组类似. 1. 打开GUI 2. 点击列表框 3. 双击列表框菜单看它的属性 4. 双击按钮查看它的 ...
- Matlab Tricks( 八)—— 将 pgm 格式文件转换为 png 格式
clc; clear; close all; list = dir('./*.pgm');% list 为结构体数组 for i = 1:length(list),imwrite(imread(lis ...
最新文章
- .net中日至框架log4net.dll如何使用
- AnyHand——普通摄像头静态手势识别库
- Maven进价:Maven的安装和目录结构
- Java基础学习需要掌握哪些内容?
- “编程能力差的程序员,90%输在了这点上!”谷歌AI专家:都是瞎努力!
- Skill Level 4 D23
- python - class类 (七) 三大特性 - 封装 结尾
- linux下RRDTool安装方法
- 有关电子邮箱的各种协议
- Python-科比投篮预测
- OI 中转站 accoders
- 微信小程序名称、简称设置规范
- 微信图片服务器逻辑,关于图片上传原图会被压缩的解决方案
- 以桨为楫 修己度人(一)
- html标签转换字符类型,java把html标签字符转换成普通字符(反转换成html标签)
- Facebook POP 进阶指南
- linux samba服务器的配置
- 阿里妈妈展示广告引擎动态算力再探索:面向业务收益的机器自适应调配
- 卡巴斯基杀毒软件被曝出用户上网痕迹泄露漏洞
- 李迟2022年10月工作生活总结