当前位置: 代码迷 >> 综合 >> 【图像识别】基于卷积神经网络实现验证码识别matlab代码
  详细解决方案

【图像识别】基于卷积神经网络实现验证码识别matlab代码

热度:26   发布时间:2023-12-03 23:07:07.0

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 layerstruct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layerstruct('type', 's', 'scale', 2) %sub sampling layerstruct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layerstruct('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(er<0.12, 'Too big error');save cnn_net cnn datasize;end

3 仿真结果

4 参考文献

[1]王振, 高茂庭. 基于卷积神经网络的图像识别算法设计与实现[J]. 现代计算机:专业版, 2015(20):61-66.

[2]陈超, 毛坚桓, 刘寅. 基于卷积神经网络的铁路货运网站验证码识别[J]. 指挥信息系统与技术, 2016.

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

5 MATLAB代码与数据下载地址

见博客主页

  相关解决方案