Pytorch-识别法院失信、执行验证码图片

爬虫的时候遇到一些图片形式的验证码,比如数字字母组合,通过CNN我们可以训练一个模型,进行识别;下面是针对法院失信、执行的验证码,准确率达到90%+,基本够用。

先看下效果吧!

import torch
from torch.autograd import Variable
import numpy as np
from PIL import Image
from torchvision import transforms
import os

charlist = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
            'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
transforms_sequence=transforms.Compose(
    [
    transforms.ToTensor(),
    transforms.Normalize([0.5], [0.5])
    ]
)

#加载模型
model=torch.load("/root/ftrain2.pkl")
model.eval()

def predict(file):
    # 输入
    img=Image.open(file)
    # 灰度化
    img_gray=img.convert("L")
    # 转化为矩阵
    img_array=np.array(img_gray)
    # 转换为模型的输入
    test=transforms_sequence(img_array)
    test=test.unsqueeze(0)
    pred = model(Variable(test))
    # 预测结果
    c1=charlist[torch.argmax(pred[0][0:36])]
    c2=charlist[torch.argmax(pred[0][36:72])]
    c3=charlist[torch.argmax(pred[0][72:108])]
    c4=charlist[torch.argmax(pred[0][108:144])]
    result=c1+c2+c3+c4
    return result



if __name__=="__main__":
    result=predict("/root/2a3i_num19365.png")
    print(result)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章