【图像识别】基于卷积神经网络实现验证码识别matlab代码
1 简介针对登录界面验证码图像中字符,提出了一种基于卷积 神经网络( CNN)的验证码识别方法.先对验证码图像进行预处理得到单个字符,再对单 字符图像数据建立 CNN模型进行迭代训练.该方法针对验证码图像特征,图像字符分割正确率接近100%,单个验证码字符正确识别率达98%以上,单张验证码图像识别率接近93%.试验表明,该方法对验证码识别率较高,可应用于验证码的自动识别.2 部分代码function [ ] train_cnn( iteration ) %UNTITLED3 此处显示有关此函数的摘要 % 此处显示详细说明 [ trainData,trainLabel ] train_pro( ); datasize sqrt(size(trainData,1)); trainLabelVector trainLabel; % trainLabelVector zeros(36, length(trainLabel)); % for i 1:length(trainLabel) % trainLabelVector(:,i) LabelToVector(trainLabel(i)); % end %% 2:CNN训练 % 工具包路径添加 path(path, DeepLearnToolbox-master/CNN/) path(path, DeepLearnToolbox-master/util/) train_x double(reshape(trainData,datasize, datasize, length(trainLabel))); train_y double(trainLabelVector); rand(state,0) cnn.layers { struct(type, i) %input layer struct(type, c, outputmaps, 6, kernelsize, 5) %convolution layer struct(type, s, scale, 2) %sub sampling layer struct(type, c, outputmaps, 12, kernelsize, 5) %convolution layer struct(type, s, scale, 2) %subsampling layer }; opts.alpha 2; opts.batchsize 6; opts.numepochs iteration; cnn cnnsetup(cnn, train_x, train_y); cnn cnntrain(cnn, train_x, train_y, opts); %% 3:对测试数据进行预测 %[er, bad] cnntest(cnn, train_x, train_y); %plot mean squared erro // %figure; plot(cnn.rL); %assert(er0.12, Too big error); save cnn_net cnn datasize; end3 仿真结果4 参考文献[1]王振, 高茂庭. 基于卷积神经网络的图像识别算法设计与实现[J]. 现代计算机:专业版, 2015(20):61-66.[2]陈超, 毛坚桓, 刘寅. 基于卷积神经网络的铁路货运网站验证码识别[J]. 指挥信息系统与技术, 2016.部分理论引用网络文献若有侵权联系博主删除。