天天看点

【图像识别】基于卷积神经网络实现手写汉字识别附matlab代码

1 内容介绍

1.1、 数据集的获取

数据集的获取来自模式识别国家重点实验室共享,这个不解释直接上网址​​http://www.nlpr.ia.ac.cn/databases/download/feature_data/HWDB1.1trn_gnt.zip​​

1.2 CNN训练

脱机手写汉字识别因为其数目多,布局复杂,形似字多和书写风格多样化等问题,作为模式识别方向中的难点之一.基于卷积神经网络的手写汉字识别具有稳定性,多样性,特征性等特征,使卷积神经网络在手写汉字识别中被广泛使用,如CNN等.本研究从手写汉字的样本变换入手,通过对手写汉字图像的平滑去噪,归一化和仿射变换处理,以降低汉字识别前存在的问题.

2 仿真代码

load cnnNet

[filename,pathNmae] = uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...

          '*.*','All Files' },...

      'MultiSelect', 'on');

  [u,v] = size(filename);

%   判断一下,你是选择了一个还是选择了多个

  if(isequal(class(filename),'cell'))

      for i =1:v

        filename{i} = strcat(pathNmae,filename{i});

      end

  else

      filename = strcat(pathNmae,filename);

  end

digitData = imageDatastore(filename);

YTest = classify(convnet,digitData);

figure

  if(isequal(class(filename),'cell'))

      for i =1:v

%       filename{i} = strcat(pathNmae,filename{i});

        subplot(9,9,i)

        imshow(digitData.Files{i})

        title(char(YTest(i,1)))

  end

  else

%       filename = strcat(pathNmae,filename);

% figure  使用训练好的网络识别汉字,可以识别500多个汉字

imshow(digitData.Files{1})

title(char(YTest(1,1)))

  end

3 运行结果

【图像识别】基于卷积神经网络实现手写汉字识别附matlab代码
【图像识别】基于卷积神经网络实现手写汉字识别附matlab代码

4 参考文献

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。