手写数字识别系统

手写数字识别系统使用PNN作为分类器,使用结构特征和统计特征作为特征提取算法。结合卡尔曼滤波等滤波算法对输入图像进行预处理并进行图像分割实现基本的手写数字识别。

安装

  1. Matlab2016或更高版本(理论上高版本时可行的,但未进行尝试)。
  2. 如果使用手机作为摄像头,建议必应搜索安装IP摄像头专业版。

准备工作

  1. 添加训练集。图像统一选择64*64的大小的JPEG格式图像,命名方式为A_B,其中A为图像中数字的值,B为A类目下训练集图片的序号。例如1_66即图片中写的数字为1,为1中第66张。最终,将训练集保存在data_pic文件夹下。

  2. 训练并保存网络。训练文件为train.m,运行文件后将保存识别时需要用到的网络参数nn.mat和se.mat。

运行

  1. 添加局域网摄像头的IP地址和端口号。在rec.m设置摄像头的IP地址。

    ip = '192.168.137.11:xxxx';
  2. 运行UI界面,运行文件rec.m或rec.fig均可。运行方法:打开摄像头--拍照--识别--打开摄像头--关闭摄像头。 RiS1gK.png

注意

  • 系统存在的问题:传输的视频存在抖动;部分识别正确率较低;对于含有杂物的图像分割效果差。

  • 由于个人时间有限,本代码仅做存档用。如需对代码进行改进,请自行fork。

引用

  • 陈明. MATLAB神经网络原理与实例精解[M]. 北京: 清华大学出版社, 2013.