news 2026/6/10 16:04:31

基于深度学习神经网络的验证码识别系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于深度学习神经网络的验证码识别系统

第一步:建立验证码数据库

目前演示的是四位验证码,里面所包含的字符类别有62种

第二步:搭建模型

本文利用一个简单的cnn模型,进行端到端识别:

class CNN(nn.Module): def __init__(self, num_class=62, num_char=4): super(CNN, self).__init__() self.num_class = num_class self.num_char = num_char self.conv = nn.Sequential( #batch*3*120*40 nn.Conv2d(3, 16, 3, padding=(1, 1)), nn.MaxPool2d(2, 2), nn.BatchNorm2d(16), nn.ReLU(), #batch*16*60*20 nn.Conv2d(16, 64, 3, padding=(1, 1)), nn.MaxPool2d(2, 2), nn.BatchNorm2d(64), nn.ReLU(), #batch*64*30*10 nn.Conv2d(64, 512, 3, padding=(1, 1)), nn.MaxPool2d(2, 2), nn.BatchNorm2d(512), nn.ReLU(), #batch*512*15*5 nn.Conv2d(512, 512, 3, padding=(1, 1)), nn.MaxPool2d(2, 2), nn.BatchNorm2d(512), nn.ReLU(), #batch*512*7*2 ) self.fc = nn.Linear(512*7*2, self.num_class*self.num_char) def forward(self, x): x = self.conv(x) x = x.view(-1, 512*7*2) x = self.fc(x) return x

第三步:进行识别

读入一张验证码图片,然后通过模型进行推理,直接预测出结果来:

import torch import torch.nn as nn from Testmodel import CNN from datasets import CaptchaData from torchvision.transforms import Compose, ToTensor import pandas as pd import os from PIL import Image import matplotlib.pyplot as plt model_path = './checkpoints/model.pth' imgpath = '13.jpg' source = [str(i) for i in range(0, 10)] source += [chr(i) for i in range(97, 97+26)] source += [chr(i) for i in range(65,65+26)] alphabet = ''.join(source) def run(): img = Image.open(imgpath) img = img.resize((120,40)) trans = ToTensor() img_tensor = trans(img) cnn = CNN() # if torch.cuda.is_available(): # cnn = cnn.cuda() # cnn.eval() # cnn.load_state_dict(torch.load(model_path)) # else: cnn.eval() model = torch.load(model_path, map_location='cpu') cnn.load_state_dict(model) img_tensor = img_tensor.view(1, 3, 40, 120) output = cnn(img_tensor) output = output.view(-1, 62) output = nn.functional.softmax(output, dim=1) output = torch.argmax(output, dim=1) output = output.view(-1, 4)[0] label = ''.join([alphabet[i] for i in output.cpu().numpy()]) print("label:",label) if __name__=="__main__": run()

第四步:运行结果

第六步:整个工程的内容

提供整套代码,包括训练和测试代码,也提供训练测试数据

项目完整文件下载请见演示与介绍视频的简介处给出:➷➷➷

https://www.bilibili.com/video/BV16eUeYtEac/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:01:59

基于Simulink的双模式MPPT(快速追踪+稳态优化)仿真

目录 手把手教你学Simulink--基础MPPT控制场景实例:基于Simulink的双模式MPPT(快速追踪稳态优化)仿真 一、引言:为什么需要双模式MPPT?——光伏系统“效率与响应”的平衡术 二、核心原理:双模式MPPT的“切…

作者头像 李华
网站建设 2026/6/10 10:20:02

【极客日常】快速上手复杂后端项目开发的经验

去年年底一段时间,笔者参与了组织内部智能化平台项目研发攻坚,虽然主攻平台工程部分,但多少也了解了下目前AIGC可以应用到的一些业务场景,以及技术实践、项目管理的一些事情。在先前的文章里头,有浅要描述下AIGCWeb类项…

作者头像 李华
网站建设 2026/6/10 13:28:15

2026必备!10个AI论文网站,继续教育学生轻松搞定毕业论文!

2026必备!10个AI论文网站,继续教育学生轻松搞定毕业论文! AI 工具让论文写作更高效 在当前的学术环境中,继续教育学生面临着越来越高的论文写作要求。无论是学位论文还是科研项目报告,都需要高质量的内容支撑。而随着人…

作者头像 李华
网站建设 2026/6/10 3:23:11

模型微调 vs 上下文学习的成本效益对比

一、引言随着大语言模型(LLM)技术的快速迭代,企业和开发者在将预训练模型适配下游任务时,面临着两种主流技术路径的选择:模型微调(Fine-tuning)与上下文学习(In-context Learning, I…

作者头像 李华