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)

 

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