2026/4/18 5:39:08
网站建设
项目流程
企业网站展示生产的处方药介绍处罚案件,影视传媒公司网站php源码,上外网看新闻去哪个网站,自助网站建设程序第一步#xff1a;建立验证码数据库
目前演示的是四位验证码#xff0c;里面所包含的字符类别有62种 第二步#xff1a;搭建模型
本文利用一个简单的cnn模型#xff0c;进行端到端识别#xff1a;
class CNN(nn.Module):def __init__(self, num_class62, num_char4):su…第一步建立验证码数据库目前演示的是四位验证码里面所包含的字符类别有62种第二步搭建模型本文利用一个简单的cnn模型进行端到端识别class CNN(nn.Module): def __init__(self, num_class62, num_char4): 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, 9726)] source [chr(i) for i in range(65,6526)] 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_locationcpu) 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, dim1) output torch.argmax(output, dim1) 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/