
欢迎来到海神之光博客之家✅博主简介热爱科研的Matlab仿真开发者修心和技术同步精进个人主页海神之光代码获取方式海神之光Matlab王者学习之路—代码获取方式⛳️座右铭行百里者半于九十。更多Matlab图像处理仿真内容点击①Matlab图像处理进阶版②付费专栏Matlab图像处理初级版⛳️关注CSDN海神之光更多资源等你来⛄一、CNN简介1 机器如何识图先给大家出个脑筋急转弯在白纸上画出一个大熊猫一共需要几种颜色的画笔——大家应该都知道只需要一种黑色的画笔只需要将大熊猫黑色的地方涂上黑色一个大熊猫的图像就可以展现出来。我们画大熊猫的方式其实和妈妈们的十字绣很接近——在给定的格子里绣上不同的颜色最后就可以展现出一幅特定的“图片”。而机器识图的方式正好和绣十字绣的方式相反现在有了一幅图片机器通过识别图片中每个格子像素点上的颜色将每个格子里的颜色都用数字类型存储得到一张很大的数字矩阵图片信息也就存储在这张数字矩阵中。上图中每一个格子代表一个像素点像素点里的数字代表颜色码颜色码范围是[0255]各式各样的颜色都是由红、绿、蓝三色组成每个颜色都是0~255之间数字我们在得到的一张大数字矩阵的基础上开展卷积神经网络识别工作机器识图的过程机器识别图像并不是一下子将一个复杂的图片完整识别出来而是将一个完整的图片分割成许多个小部分把每个小部分里具有的特征提取出来也就是识别每个小部分再将这些小部分具有的特征汇总到一起就可以完成机器识别图像的过程了2 卷积神经网络原理介绍用CNN卷积神经网络识别图片一般需要的步骤有1卷积层初步提取特征2池化层提取主要特征3全连接层将各部分特征汇总4产生分类器进行预测识别2.1 卷积层工作原理卷积层的作用就是提取图片每个小部分里具有的特征假定我们有一个尺寸为66 的图像每一个像素点里都存储着图像的信息。我们再定义一个卷积核相当于权重用来从图像中提取一定的特征。卷积核与数字矩阵对应位相乘再相加得到卷积层输出结果。429 18154051155012117503512402041卷积核的取值在没有以往学习的经验下可由函数随机生成再逐步训练调整当所有的像素点都至少被覆盖一次后就可以产生一个卷积层的输出下图的步长为1机器一开始并不知道要识别的部分具有哪些特征是通过与不同的卷积核相作用得到的输出值相互比较来判断哪一个卷积核最能表现该图片的特征——比如我们要识别图像中的某种特征比如曲线也就是说这个卷积核要对这种曲线有很高的输出值对其他形状比如三角形则输出较低。卷积层输出值越高就说明匹配程度越高越能表现该图片的特征。卷积层具体工作过程比如我们设计的一个卷积核如下左想要识别出来的曲线如下右现在我们用上面的卷积核来识别这个简化版的图片——一只漫画老鼠当机器识别到老鼠的屁股的时候卷积核与真实区域数字矩阵作用后输出较大6600而用同一个卷积核来识别老鼠的耳朵的时候输出则很小0我们就可以认为现有的这个卷积核保存着曲线的特征匹配识别出来了老鼠的屁股是曲线的。我们则还需要其他特征的卷积核来匹配识别出来老鼠的其他部分。卷积层的作用其实就是通过不断的改变卷积核来确定能初步表征图片特征的有用的卷积核是哪些再得到与相应的卷积核相乘后的输出矩阵2.2 池化层工作原理池化层的输入就是卷积层输出的原数据与相应的卷积核相乘后的输出矩阵池化层的目的为了减少训练参数的数量降低卷积层输出的特征向量的维度减小过拟合现象只保留最有用的图片信息减少噪声的传递最常见的两种池化层的形式最大池化max-pooling——选取指定区域内最大的一个数来代表整片区域均值池化mean-pooling——选取指定区域内数值的平均值来代表整片区域举例说明两种池化方式:池化步长为2选取过的区域下一次就不再选取在44的数字矩阵里以步长22选取区域比如上左将区域[1,2,3,4]中最大的值4池化输出上右将区域[1,2,3,4]中平均值5/2池化输出2.3 全连接层工作原理卷积层和池化层的工作就是提取特征并减少原始图像带来的参数。然而为了生成最终的输出我们需要应用全连接层来生成一个等于我们需要的类的数量的分类器。全连接层的工作原理和之前的神经网络学习很类似我们需要把池化层输出的张量重新切割成一些向量乘上权重矩阵加上偏置值然后对其使用ReLU激活函数用梯度下降法优化参数既可。⛄二、部分源代码%印刷体识别clc;clear;close all;addpath(‘util/’);addpath(‘data/’);inputpath‘data/’;fdirdir(strcat(inputpath,‘*.jpg’));psize(fdir);method2;%定位方法levelth0.3;%水平分割缩放阈值for i2:p(1)imimread(fdir(i).name);imtpimresize(im,0.25);%图像灰度化if(length(size(im))1)imdouble(rgb2gray(im));elseimdouble(im);endimimresize(im,0.25);thgraythresh(im); ptsize(im);%提取上下位面if(method1)imGuassSmoothfilter(im)*255;%平滑cent2;[Labels,BW]KmeansSg(im,cent);%kmeans聚类[pMax,pMin]Findline(BW);%Hough变换downlevelpMax.y-(pMax.y-pMin.y)*0.30;uplevelpMin.y(pMax.y-pMin.y)*0.55;else[pMax,pMin,pxMax,pxMin]levelSg(im,levelth);%水平集分割downlevelpMax-(pMax-pMin)*0.29;uplevelpMin(pMax-pMin)*0.55;endimcropim(uplevel:downlevel,:);%定位银行卡号posize(imcrop);imtpcropzeros(po(1),po(2),3);imtpcrop(1:po(1),:,1)imtp(uplevel:downlevel,:,1);imtpcrop(1:po(1),:,2)imtp(uplevel:downlevel,:,2);imtpcrop(1:po(1),:,3)imtp(uplevel:downlevel,:,3);figure;imshow(imcrop,[]);title(‘灰度切割’)figure;imshow(imtpcrop,[]);title(‘彩色切割’)srcyuvrgb2yuv(imtpcrop);%rgb转换为YUV通道figure;imshow(srcyuv(:,:,2),[]);title(‘yuv通道’)edgedge(srcyuv(:,:,3),‘sobel’);%canny边缘检测figure;Bim2bw(uint8(imcrop),0.2);imshow(B,[]);title(‘二值化’)%[L,num] bwlabel(~B,4);%获取联通区域imwrite(uint8((~B)*255),‘x.jpg’);figure;imshow(edg,[]);title(‘边缘’)Buint8((~B)*255);cropAll(B)%最终裁剪recognize%卡号识别end⛄三、运行结果⛄四、matlab版本及参考文献1 matlab版本2014a2 参考文献[1]邸平.基于卷积神经网络的银行卡数字识别研究[J].电脑与信息技术. 2021,29(05) 仿真咨询1 各类智能优化算法改进及应用生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化2 机器学习和深度学习方面卷积神经网络CNN、LSTM、支持向量机SVM、最小二乘支持向量机LSSVM、极限学习机ELM、核极限学习机KELM、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断3 图像处理方面图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知4 路径规划方面旅行商问题TSP、车辆路径问题VRP、MVRP、CVRP、VRPTW等、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化5 无人机应用方面无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配6 无线传感器定位及布局方面传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化7 信号处理方面信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化8 电力系统方面微电网优化、无功优化、配电网重构、储能配置9 元胞自动机方面交通流 人群疏散 病毒扩散 晶体生长10 雷达方面卡尔曼滤波跟踪、航迹关联、航迹融合