目录
制作训练数据集
用Dataloader加载自定义的Dataset
训练模型
识别验证码
总结与提高
源码下载
在本节,我们将使用深度学习框架PyTorch来训练模型去识别一种难度稍大一点的数字+字母混合验证码(我们可以使用第三方库captcha生成这种验证码),示例如下。
制作训练数据集
生成验证码的程序编写如下。
# generate.py
from captcha.image import ImageCaptcha
import concurrent.futures
from pathlib import Path
import shutil
import random
CHAR_NUMBER = 4 # 字符数量
IMG_WIDTH = 160 # 图片宽度
IMG_HEIGHT = 60 # 图片高度
SEED = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" # 字符池
def generate_captcha(num, output_dir, thread_name=0):
"""
生成一定数量的验证码图片
:param num: 生成数量
:param output_dir: 存放验证码图片的文件夹路径
:param thread_name: 线程名称
:return: None
"""
# 如果目录已存在,则先删除后再创建
if Path(output_dir).exists():
shutil.rmtree(output_dir)
Path(output_dir).mkdir()
for i in range(num):
img = ImageCaptcha(width=IMG_WIDTH, height=IMG_HEIGHT)
chars = "".join([random.choice(SEED) for _ in range(CHAR_NUMBER)])
save_path = f"{output_dir}/{i + 1}-{chars}.png"
img.write(chars, save_path)
print(f"Thread {thread_name}: 已生成{i + 1}张验证码")
print(f"Thread {thread_name}: 验证码图片生成完毕")
def main():
with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
executor.submit(generate_captcha, 30000, f"./train_captcha", 0)
executor.submit(generate_captcha, 1000, f"./test_captcha", 1)
if __name__ == '__main__':
main()
我们生成了30000张验证码图片用作训练集保存在train_captcha文件夹下,1000张图片用作测试集保存在test_captcha文件夹下。
用Dataloader加载自定义的Dataset
接下来我们需要自定义一个Dataset类,将train_captcha文件夹中的图片加载进来并作一定的处理。
# loader.py
class ImageDataSet(Dataset):
def __init__(self, dir_path):
super(ImageDataSet, self).__init__()
self.img_path_list = [f"{dir_path}/{filename}" for filename in os.listdir(dir_path)]
self.trans = transforms.Compose([
transforms.ToTensor(),
transforms.Grayscale()
])
def __getitem__(self, idx):
image = self.trans(Image.open(self.img_path_list[idx]))
label = self.img_path_list[idx].split("-")[-1].replace(".png", "")
label = one_hot_encode(label)
return image, label
def __len__(self):
return len(self.img_path_list)
从代码中可以看出,每张图片都会通过transforms.Grayscale()这行代码被灰度化。
返回的标签是从图片路径中获取到的,不过我们不能直接返回验证码字符串,而是要进行独热编码操作,这样才能提供给PyTorch进行学习。独热编码和解码函数编写如下。
# loader.py
def one_hot_encode(label):
"""将字符转为独热码"""
cols = len(SEED)
rows = CHAR_NUMBER
result = torch.zeros((rows, cols), dtype=float)
for i, char in enumerate(label):
j = SEED.index(char)
result[i, j] = 1.0
return result.view(1, -1)[0]
def one_hot_decode(pred_result):
"""将独热码转为字符"""
pred_result = pred_result.view(-1, len(SEED))
index_list = torch.argmax(pred_result, dim=1)
text = "".join([SEED[i] for i in index_list])
return text
我们首先用torch.zeros()函数生成一个4行36列,值全是0的张量。接着循环标签中的各个字符,将字符在SEED中对应的索引获取到,然后将张量中对应位置的0,改成1。最后我们要返回一个一维的列表,长度是4*36=144。
独热解码函数就是将模型预测的值从一维转成4行36列的二维张量,然后调用torch.argmax()函数寻找每一行最大值(也就是1)的索引。知道索引后我们就可以从SEED中找到对应的字符了。
Dataset做好后,就可以使用Dataloader加载进来了。
# loader.py
BATCH_SIZE = 60
def get_loader(path):
"""加载数据"""
dataset = ImageDataSet(path)
dataloader = DataLoader(dataset, BATCH_SIZE, shuffle=True)
return dataloader
给get_loader提供训练集目录路径,就会返回一个Dataloader对象。
loader.py完整代码编写如下。
# loader.py
from torch.utils.data import Dataset, DataLoader
from torchvision import transforms
from generate import CHAR_NUMBER, SEED
from PIL import Image
import torch
import os
BATCH_SIZE = 60
class ImageDataSet(Dataset):
def __init__(self, dir_path):
super(ImageDataSet, self).__init__()
self.img_path_list = [f"{dir_path}/{filename}" for filename in os.listdir(dir_path)]
self.trans = transforms.Compose([
transforms.ToTensor(),
transforms.Grayscale()
])
def __getitem__(self, idx):
image = self.trans(Image.open(self.img_path_list[idx]))
label = self.img_path_list[idx].split("-")[-1].replace(".png", "")
label = one_hot_encode(label)
return image, label
def __len__(self):
return len(self.img_path_list)
def one_hot_encode(label):
"""将字符转为独热码"""
cols = len(SEED)
rows = CHAR_NUMBER
result = torch.zeros((rows, cols), dtype=float)
for i, char in enumerate(label):
j = SEED.index(char)
result[i, j] = 1.0
return result.view(1, -1)[0]
def one_hot_decode(pred_result):
"""将独热码转为字符"""
pred_result = pred_result.view(-1, len(SEED))
index_list = torch.argmax(pred_result, dim=1)
text = "".join([SEED[i] for i in index_list])
return text
def get_loader(path):
"""加载数据"""
dataset = ImageDataSet(path)
dataloader = DataLoader(dataset, BATCH_SIZE, shuffle=True)
return dataloader
if __name__ == "__main__":
train_dataloader = get_loader("./train_captcha")
test_dataloader = get_loader("./test_captcha")
for X, y in train_dataloader:
print(X.shape)
print(y.shape)
break
训练模型
Dataloader有了的话就可以训练模型了。首先编写一个CNN神经网络模型,代码编写如下。
# train.py
class NeuralNetWork(nn.Module):
def __init__(self):
super(NeuralNetWork, self).__init__()
self.layer1 = nn.Sequential(
nn.Conv2d(in_channels=1, out_channels=64, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2)
)
self.layer2 = nn.Sequential(
nn.Conv2d(in_channels=64, out_channels=128, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2)
)
self.layer3 = nn.Sequential(
nn.Conv2d(in_channels=128, out_channels=256, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2)
)
self.layer4 = nn.Sequential(
nn.Conv2d(in_channels=256, out_channels=512, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2)
)
self.layer5 = nn.Sequential(
nn.Flatten(),
nn.Linear(in_features=15360, out_features=4096),
nn.Dropout(0.5),
nn.ReLU(),
nn.Linear(in_features=4096, out_features=CHAR_NUMBER*len(SEED))
)
def forward(self, x):
x = self.layer1(x)
x = self.layer2(x)
x = self.layer3(x)
x = self.layer4(x)
x = self.layer5(x)
return x
训练代码编写如下。
# train.py
def train(dataloader, model, loss_fn, optimizer):
model.train()
for batch, (X, y) in enumerate(dataloader):
X, y = X.to(device), y.to(device)
pred = model(X)
loss = loss_fn(pred, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()
if batch % 100 == 0:
print(f"损失值: {loss:>7f}")
def main():
model = NeuralNetWork().to(device)
loss_fn = nn.MultiLabelSoftMarginLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
train_dataloader = get_loader("./train_captcha")
epoch = 25
for t in range(epoch):
print(f"训练周期 {t+1}\n-------------------------------")
train(train_dataloader, model, loss_fn, optimizer)
print("\n")
torch.save(model.state_dict(), "model.pth")
print("训练完成,模型已保存")
损失函数使用的是MultiLabelSoftMarginLoss,优化器用的是Adam,训练周期设为25。训练时的损失值打印如下。
训练周期 1
-------------------------------
损失值: 0.692886
损失值: 0.128895
损失值: 0.128800
损失值: 0.128097
损失值: 0.128528
训练周期 2
-------------------------------
损失值: 0.128577
损失值: 0.128327
损失值: 0.127925
损失值: 0.127692
损失值: 0.127465
训练周期 3
-------------------------------
损失值: 0.127885
损失值: 0.128408
损失值: 0.127816
损失值: 0.127488
损失值: 0.127287
训练周期 4
-------------------------------
损失值: 0.123967
损失值: 0.112222
损失值: 0.092697
损失值: 0.078899
损失值: 0.068929
训练周期 5
-------------------------------
损失值: 0.057776
损失值: 0.053715
损失值: 0.051970
损失值: 0.043962
损失值: 0.037063
训练周期 6
-------------------------------
损失值: 0.029905
损失值: 0.030127
损失值: 0.027231
损失值: 0.032264
损失值: 0.024341
训练周期 7
-------------------------------
损失值: 0.021398
损失值: 0.018153
损失值: 0.022559
损失值: 0.022942
损失值: 0.022915
训练周期 8
-------------------------------
损失值: 0.016882
损失值: 0.015785
损失值: 0.012475
损失值: 0.014426
损失值: 0.017805
训练周期 9
-------------------------------
损失值: 0.013821
损失值: 0.011472
损失值: 0.012917
损失值: 0.015547
损失值: 0.014739
训练周期 10
-------------------------------
损失值: 0.010106
损失值: 0.011225
损失值: 0.009154
损失值: 0.008147
损失值: 0.011143
训练周期 11
-------------------------------
损失值: 0.007271
损失值: 0.007037
损失值: 0.007533
损失值: 0.008627
损失值: 0.007397
训练周期 12
-------------------------------
损失值: 0.005330
损失值: 0.007252
损失值: 0.009246
损失值: 0.006754
损失值: 0.008297
训练周期 13
-------------------------------
损失值: 0.004041
损失值: 0.005883
损失值: 0.006189
损失值: 0.006246
损失值: 0.005023
训练周期 14
-------------------------------
损失值: 0.006563
损失值: 0.006127
损失值: 0.007289
损失值: 0.007039
损失值: 0.007581
训练周期 15
-------------------------------
损失值: 0.006700
损失值: 0.005955
损失值: 0.005441
损失值: 0.006462
损失值: 0.007206
训练周期 16
-------------------------------
损失值: 0.004886
损失值: 0.003242
损失值: 0.003010
损失值: 0.006035
损失值: 0.005514
训练周期 17
-------------------------------
损失值: 0.005531
损失值: 0.005279
损失值: 0.004446
损失值: 0.004735
损失值: 0.004031
训练周期 18
-------------------------------
损失值: 0.005880
损失值: 0.004755
损失值: 0.004029
损失值: 0.003925
损失值: 0.005927
训练周期 19
-------------------------------
损失值: 0.004124
损失值: 0.003929
损失值: 0.002836
损失值: 0.005204
损失值: 0.003648
训练周期 20
-------------------------------
损失值: 0.002096
损失值: 0.003892
损失值: 0.003448
损失值: 0.004799
损失值: 0.002587
训练周期 21
-------------------------------
损失值: 0.003060
损失值: 0.002637
损失值: 0.003105
损失值: 0.003394
损失值: 0.002905
训练周期 22
-------------------------------
损失值: 0.002720
损失值: 0.001916
损失值: 0.002831
损失值: 0.003600
损失值: 0.003624
训练周期 23
-------------------------------
损失值: 0.002969
损失值: 0.003402
损失值: 0.003436
损失值: 0.003718
损失值: 0.002899
训练周期 24
-------------------------------
损失值: 0.002549
损失值: 0.002374
损失值: 0.002061
损失值: 0.003630
损失值: 0.001951
训练周期 25
-------------------------------
损失值: 0.004350
损失值: 0.003110
损失值: 0.002201
损失值: 0.003884
损失值: 0.002837
训练完成,模型已保存
train.py的完整代码如下所示。
# train.py
import torch
from torch import nn
from loader import get_loader
from generate import CHAR_NUMBER, SEED
device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
class NeuralNetWork(nn.Module):
def __init__(self):
super(NeuralNetWork, self).__init__()
self.layer1 = nn.Sequential(
nn.Conv2d(in_channels=1, out_channels=64, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2)
)
self.layer2 = nn.Sequential(
nn.Conv2d(in_channels=64, out_channels=128, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2)
)
self.layer3 = nn.Sequential(
nn.Conv2d(in_channels=128, out_channels=256, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2)
)
self.layer4 = nn.Sequential(
nn.Conv2d(in_channels=256, out_channels=512, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(kernel_size=2)
)
self.layer5 = nn.Sequential(
nn.Flatten(),
nn.Linear(in_features=15360, out_features=4096),
nn.Dropout(0.5),
nn.ReLU(),
nn.Linear(in_features=4096, out_features=CHAR_NUMBER*len(SEED))
)
def forward(self, x):
x = self.layer1(x)
x = self.layer2(x)
x = self.layer3(x)
x = self.layer4(x)
x = self.layer5(x)
return x
def train(dataloader, model, loss_fn, optimizer):
model.train()
for batch, (X, y) in enumerate(dataloader):
X, y = X.to(device), y.to(device)
pred = model(X)
loss = loss_fn(pred, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()
if batch % 100 == 0:
print(f"损失值: {loss:>7f}")
def main():
model = NeuralNetWork().to(device)
loss_fn = nn.MultiLabelSoftMarginLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
train_dataloader = get_loader("./train_captcha")
epoch = 25
for t in range(epoch):
print(f"训练周期 {t+1}\n-------------------------------")
train(train_dataloader, model, loss_fn, optimizer)
print("\n")
torch.save(model.state_dict(), "model3.pth")
print("训练完成,模型已保存")
if __name__ == "__main__":
main()
识别验证码
最后一步就是验证模型的准确度了,代码编写如下。
import os
import torch
from PIL import Image
from train import NeuralNetWork
from loader import one_hot_decode
from torchvision import transforms
device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
def predict(model, file_path):
trans = transforms.Compose([
transforms.ToTensor(),
transforms.Grayscale()
])
with torch.no_grad():
X = trans(Image.open(file_path)).reshape(1, 1, 60, 160)
pred = model(X)
text = one_hot_decode(pred)
return text
def main():
model = NeuralNetWork().to(device)
model.load_state_dict(torch.load("./model.pth", map_location=torch.device("cpu")))
model.eval()
correct = 0
test_dir = "./test_captcha"
total = len(os.listdir(test_dir))
for filename in os.listdir(test_dir):
file_path = f"{test_dir}/{filename}"
real_captcha = file_path.split("-")[-1].replace(".png", "")
pred_captcha = predict(model, file_path)
if pred_captcha == real_captcha:
correct += 1
print(f"{file_path}的预测结果为{pred_captcha},预测正确")
else:
print(f"{file_path}的预测结果为{pred_captcha},预测错误")
accuracy = f"{correct / total * 100:.2f}%"
print(accuracy)
main()
我们循环获取test_captcha文件夹中的各个图片,然后将模型和图片路径传入predict()函数进行预测。预测值跟真实值一样的话,correct变量就加上1。最后跟图片总图相除就可以得到准确度了。经测试,准确度为86.5%左右。
./test_captcha/818-GMR5.png的预测结果为GMR5,预测正确
./test_captcha/208-5BBS.png的预测结果为5BBS,预测正确
./test_captcha/16-BY5S.png的预测结果为BY5S,预测正确
./test_captcha/612-RHRW.png的预测结果为RHRW,预测正确
./test_captcha/119-ILPD.png的预测结果为ILPD,预测正确
./test_captcha/950-6N99.png的预测结果为6N99,预测正确
./test_captcha/830-0J4F.png的预测结果为OJ4F,预测错误
./test_captcha/64-6IO5.png的预测结果为6IO5,预测正确
./test_captcha/230-OS58.png的预测结果为OS58,预测正确
./test_captcha/441-0JA0.png的预测结果为0JA0,预测正确
./test_captcha/609-SYD8.png的预测结果为SYD8,预测正确
./test_captcha/445-AWG3.png的预测结果为AWG3,预测正确
./test_captcha/9-U01H.png的预测结果为U01H,预测正确
./test_captcha/754-AJXL.png的预测结果为AJJL,预测错误
./test_captcha/248-1PD3.png的预测结果为1PD3,预测正确
./test_captcha/702-BLZE.png的预测结果为BLZE,预测正确
./test_captcha/289-M8BX.png的预测结果为M8BX,预测正确
./test_captcha/753-FWSA.png的预测结果为FWSA,预测正确
./test_captcha/43-MOV1.png的预测结果为MOV1,预测正确
./test_captcha/513-YDDP.png的预测结果为YDDP,预测正确
./test_captcha/140-FI4L.png的预测结果为FI4L,预测正确
./test_captcha/105-PBXL.png的预测结果为PBXL,预测正确
./test_captcha/910-A87X.png的预测结果为A87X,预测正确
./test_captcha/193-T7SN.png的预测结果为T7SN,预测正确
./test_captcha/940-N3MB.png的预测结果为N3MB,预测正确
./test_captcha/693-G35X.png的预测结果为G35X,预测正确
./test_captcha/911-INXP.png的预测结果为INXP,预测正确
./test_captcha/96-JZMT.png的预测结果为JZMT,预测正确
./test_captcha/454-TET0.png的预测结果为TET0,预测正确
./test_captcha/498-IC9F.png的预测结果为IC9F,预测正确
./test_captcha/242-ON68.png的预测结果为ON68,预测正确
./test_captcha/273-FWXI.png的预测结果为FWXI,预测正确
./test_captcha/853-1WYL.png的预测结果为1WYL,预测正确
./test_captcha/929-EW3Z.png的预测结果为EW3Z,预测正确
./test_captcha/456-NQ5L.png的预测结果为NQ5L,预测正确
./test_captcha/158-BY6E.png的预测结果为BY6E,预测正确
./test_captcha/738-JTYR.png的预测结果为JTYR,预测正确
./test_captcha/715-GQBY.png的预测结果为GQBY,预测正确
./test_captcha/150-HS6T.png的预测结果为HS6T,预测正确
./test_captcha/30-BLXI.png的预测结果为BLXI,预测正确
./test_captcha/364-PH3Y.png的预测结果为PH3Y,预测正确
./test_captcha/966-OY24.png的预测结果为0Y24,预测错误
./test_captcha/229-GKL8.png的预测结果为GKL8,预测正确
./test_captcha/664-T76T.png的预测结果为T76T,预测正确
./test_captcha/889-50V3.png的预测结果为50N3,预测错误
./test_captcha/45-842N.png的预测结果为842N,预测正确
./test_captcha/428-LBG4.png的预测结果为LBG4,预测正确
./test_captcha/757-JYKT.png的预测结果为JYKT,预测正确
./test_captcha/512-3Z4F.png的预测结果为3Z4F,预测正确
./test_captcha/724-IPI2.png的预测结果为IPI2,预测正确
./test_captcha/222-2B0K.png的预测结果为2B0K,预测正确
./test_captcha/374-Y5YJ.png的预测结果为Y5YJ,预测正确
./test_captcha/167-J4ZW.png的预测结果为J4ZW,预测正确
./test_captcha/271-LQ5L.png的预测结果为LQ5L,预测正确
./test_captcha/78-YKYP.png的预测结果为YKYP,预测正确
./test_captcha/626-GFXQ.png的预测结果为GFXQ,预测正确
./test_captcha/833-YBZN.png的预测结果为YBZN,预测正确
./test_captcha/396-1EL0.png的预测结果为1E0O,预测错误
./test_captcha/354-K3VH.png的预测结果为K3VH,预测正确
./test_captcha/662-ICLS.png的预测结果为ICLS,预测正确
./test_captcha/85-OI9R.png的预测结果为OI9R,预测正确
./test_captcha/449-DNC2.png的预测结果为DMC2,预测错误
./test_captcha/295-MGT0.png的预测结果为MGTO,预测错误
./test_captcha/277-TVLQ.png的预测结果为TVLQ,预测正确
./test_captcha/94-6TR2.png的预测结果为6TR2,预测正确
./test_captcha/206-AH33.png的预测结果为AH33,预测正确
./test_captcha/47-SZ1X.png的预测结果为SZ1X,预测正确
./test_captcha/699-EE1K.png的预测结果为EE1K,预测正确
./test_captcha/472-CMGY.png的预测结果为CMGY,预测正确
./test_captcha/722-79RF.png的预测结果为79RF,预测正确
./test_captcha/799-7LPB.png的预测结果为7LPB,预测正确
./test_captcha/824-5A6T.png的预测结果为5A6T,预测正确
./test_captcha/409-QDZJ.png的预测结果为QDZJ,预测正确
./test_captcha/536-QSF2.png的预测结果为QSF2,预测正确
./test_captcha/86-EDPV.png的预测结果为EDPV,预测正确
./test_captcha/104-UD6D.png的预测结果为UD6D,预测正确
./test_captcha/406-LJWF.png的预测结果为LJWF,预测正确
./test_captcha/965-2VOO.png的预测结果为2V00,预测错误
./test_captcha/362-PPPM.png的预测结果为PPPM,预测正确
./test_captcha/107-27MM.png的预测结果为27MM,预测正确
./test_captcha/860-J4T0.png的预测结果为J4T0,预测正确
./test_captcha/785-FYC0.png的预测结果为FYC0,预测正确
./test_captcha/921-NUYA.png的预测结果为NUYA,预测正确
./test_captcha/455-BGX7.png的预测结果为BGX7,预测正确
./test_captcha/926-9900.png的预测结果为99OO,预测错误
./test_captcha/191-LYBA.png的预测结果为LYBA,预测正确
./test_captcha/927-81WI.png的预测结果为81WI,预测正确
./test_captcha/291-A7IK.png的预测结果为A7IK,预测正确
./test_captcha/473-9UIA.png的预测结果为9UIA,预测正确
./test_captcha/797-DYOL.png的预测结果为DYOL,预测正确
./test_captcha/593-T5LE.png的预测结果为T5LE,预测正确
./test_captcha/483-HK8W.png的预测结果为HK8W,预测正确
./test_captcha/153-HJRO.png的预测结果为HJRO,预测正确
./test_captcha/504-6P5W.png的预测结果为6P5W,预测正确
./test_captcha/851-MHJU.png的预测结果为MHUU,预测错误
./test_captcha/547-EEJN.png的预测结果为EEJN,预测正确
./test_captcha/817-LPJV.png的预测结果为LPPJ,预测错误
./test_captcha/855-EKFM.png的预测结果为EKFM,预测正确
./test_captcha/482-22Q3.png的预测结果为22Q3,预测正确
./test_captcha/327-NZ31.png的预测结果为NZ31,预测正确
./test_captcha/857-YNVN.png的预测结果为YNVN,预测正确
./test_captcha/108-F4BK.png的预测结果为F4BK,预测正确
./test_captcha/675-0T9L.png的预测结果为0T9L,预测正确
./test_captcha/58-AWB4.png的预测结果为AWB4,预测正确
./test_captcha/511-QZYW.png的预测结果为QZYW,预测正确
./test_captcha/618-R7KC.png的预测结果为R7KC,预测正确
./test_captcha/359-1YAM.png的预测结果为1YAM,预测正确
./test_captcha/863-W6RP.png的预测结果为W6RP,预测正确
./test_captcha/353-NNKJ.png的预测结果为NNKJ,预测正确
./test_captcha/317-40LN.png的预测结果为40LN,预测正确
./test_captcha/776-BIT0.png的预测结果为BII0,预测错误
./test_captcha/21-MFX9.png的预测结果为MFX9,预测正确
./test_captcha/416-Z46Y.png的预测结果为Z46Y,预测正确
./test_captcha/274-07OS.png的预测结果为07OS,预测正确
./test_captcha/897-O7K0.png的预测结果为O7K0,预测正确
./test_captcha/251-YY46.png的预测结果为YY46,预测正确
./test_captcha/809-AXI4.png的预测结果为AXI4,预测正确
./test_captcha/408-T1UG.png的预测结果为11UG,预测错误
./test_captcha/583-04XA.png的预测结果为04XA,预测正确
./test_captcha/112-NJR0.png的预测结果为NJR0,预测正确
./test_captcha/113-YBWX.png的预测结果为YBWX,预测正确
./test_captcha/126-PPGR.png的预测结果为PPGR,预测正确
./test_captcha/783-0R12.png的预测结果为OR12,预测错误
./test_captcha/497-50NA.png的预测结果为50NA,预测正确
./test_captcha/349-5HA3.png的预测结果为5HA3,预测正确
./test_captcha/270-H67E.png的预测结果为H67E,预测正确
./test_captcha/706-J3RQ.png的预测结果为J3RQ,预测正确
./test_captcha/118-CBYT.png的预测结果为CBYT,预测正确
./test_captcha/953-5NAG.png的预测结果为5NAG,预测正确
./test_captcha/207-0YZV.png的预测结果为0YZV,预测正确
./test_captcha/28-6ZN4.png的预测结果为6ZN4,预测正确
./test_captcha/840-TTV2.png的预测结果为TTV2,预测正确
./test_captcha/243-LRYG.png的预测结果为LRYG,预测正确
./test_captcha/707-EFVH.png的预测结果为EFVH,预测正确
./test_captcha/195-WGAJ.png的预测结果为WGAJ,预测正确
./test_captcha/640-ZNS6.png的预测结果为ZNE6,预测错误
./test_captcha/175-DV6A.png的预测结果为DV6A,预测正确
./test_captcha/985-CB6I.png的预测结果为CB6I,预测正确
./test_captcha/644-OLUA.png的预测结果为0LUA,预测错误
./test_captcha/579-1X93.png的预测结果为1X93,预测正确
./test_captcha/708-NQ6X.png的预测结果为NQ6X,预测正确
./test_captcha/594-8Y92.png的预测结果为8Y92,预测正确
./test_captcha/543-JDEU.png的预测结果为JDEU,预测正确
./test_captcha/127-QLHD.png的预测结果为QLHO,预测错误
./test_captcha/659-RFMS.png的预测结果为RFMS,预测正确
./test_captcha/935-4ZR5.png的预测结果为4ZR5,预测正确
./test_captcha/551-NWZ6.png的预测结果为NWL6,预测错误
./test_captcha/847-WDGO.png的预测结果为WDGO,预测正确
./test_captcha/990-626E.png的预测结果为626E,预测正确
./test_captcha/637-F7T1.png的预测结果为F7T1,预测正确
./test_captcha/29-G3ZD.png的预测结果为G3ZD,预测正确
./test_captcha/209-8JR9.png的预测结果为8JR9,预测正确
./test_captcha/951-VK5Z.png的预测结果为VK5Z,预测正确
./test_captcha/218-WUAF.png的预测结果为WUAF,预测正确
./test_captcha/369-2461.png的预测结果为2461,预测正确
./test_captcha/98-92JO.png的预测结果为92JO,预测正确
./test_captcha/185-W8PV.png的预测结果为W8PV,预测正确
./test_captcha/366-Q48J.png的预测结果为Q48J,预测正确
./test_captcha/275-VC3M.png的预测结果为VC3M,预测正确
./test_captcha/528-CCCZ.png的预测结果为CCCZ,预测正确
./test_captcha/309-10IA.png的预测结果为10IA,预测正确
./test_captcha/55-YCU0.png的预测结果为YCU0,预测正确
./test_captcha/360-ES6P.png的预测结果为ES6P,预测正确
./test_captcha/741-15G1.png的预测结果为15G1,预测正确
./test_captcha/254-KEWX.png的预测结果为KEWX,预测正确
./test_captcha/501-7KEW.png的预测结果为7KEW,预测正确
./test_captcha/124-UTLD.png的预测结果为UTLD,预测正确
./test_captcha/605-XK0W.png的预测结果为XKOW,预测错误
./test_captcha/550-PKW7.png的预测结果为PKW7,预测正确
./test_captcha/971-JBRS.png的预测结果为JRS5,预测错误
./test_captcha/166-XXQH.png的预测结果为XXQH,预测正确
./test_captcha/747-DT1J.png的预测结果为DT1J,预测正确
./test_captcha/239-G3VC.png的预测结果为G33C,预测错误
./test_captcha/970-ULGB.png的预测结果为ULGB,预测正确
./test_captcha/109-DM5Y.png的预测结果为DM5Y,预测正确
./test_captcha/346-3FJS.png的预测结果为3FJS,预测正确
./test_captcha/341-03K5.png的预测结果为O3K5,预测错误
./test_captcha/165-3S4V.png的预测结果为3S4V,预测正确
./test_captcha/296-0UI5.png的预测结果为0UI5,预测正确
./test_captcha/934-WMS2.png的预测结果为WMS2,预测正确
./test_captcha/700-K0V6.png的预测结果为K0V6,预测正确
./test_captcha/125-3QHK.png的预测结果为3QHK,预测正确
./test_captcha/849-Y12T.png的预测结果为Y12T,预测正确
./test_captcha/421-IBXF.png的预测结果为IBXF,预测正确
./test_captcha/216-VC5P.png的预测结果为VC5P,预测正确
./test_captcha/202-K8FL.png的预测结果为K8FL,预测正确
./test_captcha/544-SMZF.png的预测结果为SMZF,预测正确
./test_captcha/907-S1W9.png的预测结果为S1W9,预测正确
./test_captcha/979-06CY.png的预测结果为06CY,预测正确
./test_captcha/335-QFYK.png的预测结果为QFYK,预测正确
./test_captcha/74-U5W8.png的预测结果为U5W8,预测正确
./test_captcha/598-U8U0.png的预测结果为U880,预测错误
./test_captcha/839-BLHX.png的预测结果为BLHX,预测正确
./test_captcha/383-F2DG.png的预测结果为F2DG,预测正确
./test_captcha/779-31MC.png的预测结果为31MC,预测正确
./test_captcha/382-3ADV.png的预测结果为3ADV,预测正确
./test_captcha/486-NSWK.png的预测结果为NSWK,预测正确
./test_captcha/529-RMX1.png的预测结果为RMX1,预测正确
./test_captcha/628-TWC4.png的预测结果为TWC4,预测正确
./test_captcha/862-4ZQJ.png的预测结果为4ZQJ,预测正确
./test_captcha/20-JRIP.png的预测结果为JRIP,预测正确
./test_captcha/348-EN7W.png的预测结果为EN7W,预测正确
./test_captcha/169-2EIW.png的预测结果为2EIW,预测正确
./test_captcha/491-EAPI.png的预测结果为EAPI,预测正确
./test_captcha/842-F3D9.png的预测结果为F3D9,预测正确
./test_captcha/931-TRU3.png的预测结果为TRU3,预测正确
./test_captcha/161-MRHO.png的预测结果为MRHO,预测正确
./test_captcha/371-6T31.png的预测结果为6T31,预测正确
./test_captcha/740-AAVV.png的预测结果为AAVV,预测正确
./test_captcha/888-IE5J.png的预测结果为IE5J,预测正确
./test_captcha/961-C9OF.png的预测结果为C9OF,预测正确
./test_captcha/588-J8E7.png的预测结果为J8E7,预测正确
./test_captcha/736-4IN2.png的预测结果为4IN2,预测正确
./test_captcha/728-U9CL.png的预测结果为U9CL,预测正确
./test_captcha/172-I8A0.png的预测结果为I8A0,预测正确
./test_captcha/389-PODT.png的预测结果为P0DT,预测错误
./test_captcha/625-RUVP.png的预测结果为RUVP,预测正确
./test_captcha/143-EPY3.png的预测结果为EPY3,预测正确
./test_captcha/798-FKR2.png的预测结果为FKR2,预测正确
./test_captcha/837-YHL1.png的预测结果为YHL1,预测正确
./test_captcha/813-ANE8.png的预测结果为ANE8,预测正确
./test_captcha/500-JSGQ.png的预测结果为JSGQ,预测正确
./test_captcha/778-3SZZ.png的预测结果为3SZZ,预测正确
./test_captcha/331-5Y7T.png的预测结果为5Y7T,预测正确
./test_captcha/8-DKKV.png的预测结果为DKKV,预测正确
./test_captcha/196-Y80A.png的预测结果为Y80A,预测正确
./test_captcha/546-1JQY.png的预测结果为1JQY,预测正确
./test_captcha/205-5XTK.png的预测结果为5XTK,预测正确
./test_captcha/972-XEVQ.png的预测结果为XEVQ,预测正确
./test_captcha/33-YXGU.png的预测结果为YXGU,预测正确
./test_captcha/494-RM9Q.png的预测结果为RM9Q,预测正确
./test_captcha/388-1GI1.png的预测结果为1GG1,预测错误
./test_captcha/627-D8YJ.png的预测结果为D8YJ,预测正确
./test_captcha/204-WVJ3.png的预测结果为WVJ3,预测正确
./test_captcha/773-EUS7.png的预测结果为EUS7,预测正确
./test_captcha/89-1HZB.png的预测结果为1HZB,预测正确
./test_captcha/465-1FYW.png的预测结果为1FYW,预测正确
./test_captcha/14-NZNZ.png的预测结果为NZNZ,预测正确
./test_captcha/168-S8F0.png的预测结果为S8FO,预测错误
./test_captcha/451-LM4K.png的预测结果为UM4K,预测错误
./test_captcha/828-S034.png的预测结果为S034,预测正确
./test_captcha/878-3GYO.png的预测结果为3GYO,预测正确
./test_captcha/532-8HMW.png的预测结果为8HMW,预测正确
./test_captcha/716-61U0.png的预测结果为61U0,预测正确
./test_captcha/129-1QUV.png的预测结果为1QUV,预测正确
./test_captcha/720-FX6G.png的预测结果为FX6G,预测正确
./test_captcha/514-W20R.png的预测结果为W2OR,预测错误
./test_captcha/188-XRRY.png的预测结果为XRRY,预测正确
./test_captcha/791-BBUV.png的预测结果为BBUV,预测正确
./test_captcha/265-PLQF.png的预测结果为PLQF,预测正确
./test_captcha/228-7IPP.png的预测结果为7IPP,预测正确
./test_captcha/54-JFCC.png的预测结果为JFCC,预测正确
./test_captcha/803-COOL.png的预测结果为COOL,预测正确
./test_captcha/342-WW8H.png的预测结果为WW8H,预测正确
./test_captcha/852-SAKA.png的预测结果为SAKA,预测正确
./test_captcha/993-SZ2R.png的预测结果为SE2R,预测错误
./test_captcha/976-7U8Y.png的预测结果为7U8Y,预测正确
./test_captcha/214-X6NW.png的预测结果为X6NW,预测正确
./test_captcha/484-T4JY.png的预测结果为T4JY,预测正确
./test_captcha/581-N8M3.png的预测结果为N8M3,预测正确
./test_captcha/784-PT8X.png的预测结果为PT8X,预测正确
./test_captcha/952-5IAS.png的预测结果为5IAS,预测正确
./test_captcha/943-MTAU.png的预测结果为MTAU,预测正确
./test_captcha/319-KZOO.png的预测结果为KZ0O,预测错误
./test_captcha/792-LDBC.png的预测结果为LDBC,预测正确
./test_captcha/800-EH3W.png的预测结果为EH3W,预测正确
./test_captcha/340-EFZ8.png的预测结果为EF28,预测错误
./test_captcha/930-Y0WE.png的预测结果为Y0WE,预测正确
./test_captcha/237-R1MX.png的预测结果为R1MX,预测正确
./test_captcha/48-LS3O.png的预测结果为LS3O,预测正确
./test_captcha/838-JSGQ.png的预测结果为JSGQ,预测正确
./test_captcha/756-DZEZ.png的预测结果为DZEZ,预测正确
./test_captcha/691-J3S7.png的预测结果为J3S7,预测正确
./test_captcha/225-YT2B.png的预测结果为YT2B,预测正确
./test_captcha/282-5CCL.png的预测结果为5CIL,预测错误
./test_captcha/727-AB0L.png的预测结果为ABOL,预测错误
./test_captcha/31-L5JM.png的预测结果为L5JM,预测正确
./test_captcha/873-GK6A.png的预测结果为GK6A,预测正确
./test_captcha/287-O8I0.png的预测结果为08I0,预测错误
./test_captcha/39-E6RH.png的预测结果为E6RH,预测正确
./test_captcha/255-SQBR.png的预测结果为SQBR,预测正确
./test_captcha/219-OKTP.png的预测结果为0KTP,预测错误
./test_captcha/223-QBOO.png的预测结果为QBOO,预测正确
./test_captcha/250-P89X.png的预测结果为P89X,预测正确
./test_captcha/293-KP2F.png的预测结果为KP2F,预测正确
./test_captcha/217-WTLM.png的预测结果为WTLM,预测正确
./test_captcha/106-EE4P.png的预测结果为EE4P,预测正确
./test_captcha/906-X8WH.png的预测结果为X8WH,预测正确
./test_captcha/373-40K1.png的预测结果为40K1,预测正确
./test_captcha/654-G0A3.png的预测结果为G033,预测错误
./test_captcha/994-1UMA.png的预测结果为1UMA,预测正确
./test_captcha/807-FG9E.png的预测结果为FG9E,预测正确
./test_captcha/56-O5EL.png的预测结果为O5EL,预测正确
./test_captcha/376-ZWD1.png的预测结果为ZWD1,预测正确
./test_captcha/232-ZMOJ.png的预测结果为ZMOJ,预测正确
./test_captcha/696-MW7N.png的预测结果为MW7N,预测正确
./test_captcha/944-ZMZ4.png的预测结果为ZMZ4,预测正确
./test_captcha/530-5MZL.png的预测结果为5MZL,预测正确
./test_captcha/154-QQLR.png的预测结果为QQLR,预测正确
./test_captcha/793-XV1A.png的预测结果为XV1A,预测正确
./test_captcha/336-GJUI.png的预测结果为GJUI,预测正确
./test_captcha/712-ECP7.png的预测结果为ECP7,预测正确
./test_captcha/922-3A5Q.png的预测结果为3A5Q,预测正确
./test_captcha/607-92RD.png的预测结果为92RD,预测正确
./test_captcha/176-O31P.png的预测结果为O31P,预测正确
./test_captcha/212-Z2SX.png的预测结果为Z2SX,预测正确
./test_captcha/496-TGP6.png的预测结果为TGP6,预测正确
./test_captcha/989-7LEL.png的预测结果为7LEL,预测正确
./test_captcha/326-B8B4.png的预测结果为B8B4,预测正确
./test_captcha/247-LQ97.png的预测结果为LQ97,预测正确
./test_captcha/356-THYP.png的预测结果为THYP,预测正确
./test_captcha/905-FOBX.png的预测结果为FOB4,预测错误
./test_captcha/272-ULR7.png的预测结果为ULR7,预测正确
./test_captcha/834-OGKV.png的预测结果为OGKV,预测正确
./test_captcha/786-RRQ1.png的预测结果为RRQ1,预测正确
./test_captcha/418-PBGN.png的预测结果为PBGN,预测正确
./test_captcha/453-BCVH.png的预测结果为BCVH,预测正确
./test_captcha/748-L1UU.png的预测结果为L1UU,预测正确
./test_captcha/372-7S0Y.png的预测结果为7S0Y,预测正确
./test_captcha/705-P2OA.png的预测结果为P20A,预测错误
./test_captcha/772-55CK.png的预测结果为55CK,预测正确
./test_captcha/489-YKEL.png的预测结果为YKEL,预测正确
./test_captcha/642-SDE5.png的预测结果为SDE5,预测正确
./test_captcha/38-F7SC.png的预测结果为FSSC,预测错误
./test_captcha/883-OS3V.png的预测结果为OS3V,预测正确
./test_captcha/576-LC50.png的预测结果为LC50,预测正确
./test_captcha/829-7KO6.png的预测结果为7K06,预测错误
./test_captcha/434-2DT5.png的预测结果为2DT5,预测正确
./test_captcha/236-K9R8.png的预测结果为K9R8,预测正确
./test_captcha/259-LB0O.png的预测结果为LB00,预测错误
./test_captcha/23-ZFIG.png的预测结果为ZFIG,预测正确
./test_captcha/608-OMWR.png的预测结果为OMWR,预测正确
./test_captcha/959-7JSQ.png的预测结果为7JSQ,预测正确
./test_captcha/771-3EDY.png的预测结果为3EDY,预测正确
./test_captcha/234-MC8Z.png的预测结果为MC8Z,预测正确
./test_captcha/116-A4X2.png的预测结果为A4X2,预测正确
./test_captcha/963-SFF1.png的预测结果为SFF1,预测正确
./test_captcha/53-1XMD.png的预测结果为1XMD,预测正确
./test_captcha/318-5T9F.png的预测结果为5T9F,预测正确
./test_captcha/522-KM85.png的预测结果为KM85,预测正确
./test_captcha/877-W6HT.png的预测结果为W6HT,预测正确
./test_captcha/827-LGLG.png的预测结果为LGLG,预测正确
./test_captcha/871-K1ZW.png的预测结果为K1ZW,预测正确
./test_captcha/443-3NSS.png的预测结果为3NSS,预测正确
./test_captcha/470-1CDB.png的预测结果为1CJB,预测错误
./test_captcha/619-IFF2.png的预测结果为IFF2,预测正确
./test_captcha/870-92H3.png的预测结果为92H3,预测正确
./test_captcha/79-JN5U.png的预测结果为JN5U,预测正确
./test_captcha/221-EJ11.png的预测结果为EJ11,预测正确
./test_captcha/72-5PLG.png的预测结果为5PLG,预测正确
./test_captcha/848-NCOS.png的预测结果为NCOS,预测正确
./test_captcha/117-DCAU.png的预测结果为DCAU,预测正确
./test_captcha/198-DQFJ.png的预测结果为DQFJ,预测正确
./test_captcha/36-HONB.png的预测结果为HONB,预测正确
./test_captcha/260-6WF2.png的预测结果为6WF2,预测正确
./test_captcha/141-FTR7.png的预测结果为FTR7,预测正确
./test_captcha/831-G4BY.png的预测结果为G4BY,预测正确
./test_captcha/151-K9AB.png的预测结果为K9AB,预测正确
./test_captcha/977-LCPY.png的预测结果为LCPY,预测正确
./test_captcha/729-GHBU.png的预测结果为GHBU,预测正确
./test_captcha/701-IH41.png的预测结果为IH41,预测正确
./test_captcha/390-D1I9.png的预测结果为D1I9,预测正确
./test_captcha/844-XDC5.png的预测结果为XDC5,预测正确
./test_captcha/836-B963.png的预测结果为B963,预测正确
./test_captcha/12-D3Z2.png的预测结果为D3Z2,预测正确
./test_captcha/170-A4SW.png的预测结果为A4SW,预测正确
./test_captcha/681-Q6YX.png的预测结果为Q6YX,预测正确
./test_captcha/903-BSSQ.png的预测结果为BSSQ,预测正确
./test_captcha/95-VWYE.png的预测结果为VWYE,预测正确
./test_captcha/663-NJ76.png的预测结果为NJ76,预测正确
./test_captcha/442-N39D.png的预测结果为N39D,预测正确
./test_captcha/549-JJ7U.png的预测结果为JJ7U,预测正确
./test_captcha/468-156O.png的预测结果为166O,预测错误
./test_captcha/534-EC5L.png的预测结果为EC5L,预测正确
./test_captcha/939-N3DW.png的预测结果为N3DW,预测正确
./test_captcha/480-MROE.png的预测结果为WROE,预测错误
./test_captcha/332-XFO9.png的预测结果为XFO9,预测正确
./test_captcha/525-KBLB.png的预测结果为KBLB,预测正确
./test_captcha/703-RMPF.png的预测结果为RMPF,预测正确
./test_captcha/447-80Y6.png的预测结果为80Y6,预测正确
./test_captcha/648-V4CF.png的预测结果为V4CF,预测正确
./test_captcha/723-OSKY.png的预测结果为OFFY,预测错误
./test_captcha/438-T4AM.png的预测结果为T4AM,预测正确
./test_captcha/571-CLHS.png的预测结果为CLHS,预测正确
./test_captcha/144-K70T.png的预测结果为KKOT,预测错误
./test_captcha/777-40UE.png的预测结果为40UE,预测正确
./test_captcha/794-SC7R.png的预测结果为SC7R,预测正确
./test_captcha/790-1CGX.png的预测结果为1CGX,预测正确
./test_captcha/631-UAF2.png的预测结果为UAF2,预测正确
./test_captcha/71-4SJQ.png的预测结果为4SJQ,预测正确
./test_captcha/99-EFE8.png的预测结果为EFE8,预测正确
./test_captcha/281-XWN1.png的预测结果为XWN1,预测正确
./test_captcha/292-P2TV.png的预测结果为P2TV,预测正确
./test_captcha/103-YIEV.png的预测结果为YIEV,预测正确
./test_captcha/718-OOY0.png的预测结果为O0Y0,预测错误
./test_captcha/347-E8TQ.png的预测结果为E8TQ,预测正确
./test_captcha/721-7FHV.png的预测结果为7FHV,预测正确
./test_captcha/725-KN33.png的预测结果为KN33,预测正确
./test_captcha/224-BD3Q.png的预测结果为BD9Q,预测错误
./test_captcha/652-26QF.png的预测结果为26QF,预测正确
./test_captcha/527-VK4S.png的预测结果为VKVS,预测错误
./test_captcha/639-ASRD.png的预测结果为ASRD,预测正确
./test_captcha/523-3L6Y.png的预测结果为3L6Y,预测正确
./test_captcha/900-HPXL.png的预测结果为HPXL,预测正确
./test_captcha/632-SN8H.png的预测结果为SN8H,预测正确
./test_captcha/635-MJLQ.png的预测结果为MJLQ,预测正确
./test_captcha/93-CXJQ.png的预测结果为CXJQ,预测正确
./test_captcha/666-YA7L.png的预测结果为YA7L,预测正确
./test_captcha/194-LEA0.png的预测结果为LEAO,预测错误
./test_captcha/263-UPJ2.png的预测结果为UPJ2,预测正确
./test_captcha/656-OMCB.png的预测结果为OMCB,预测正确
./test_captcha/580-951E.png的预测结果为951E,预测正确
./test_captcha/145-KBS9.png的预测结果为KB99,预测错误
./test_captcha/4-7EZK.png的预测结果为7EZK,预测正确
./test_captcha/752-O2GL.png的预测结果为O2GL,预测正确
./test_captcha/698-U82P.png的预测结果为U82P,预测正确
./test_captcha/80-NAXR.png的预测结果为NAXR,预测正确
./test_captcha/294-PXPB.png的预测结果为PXPB,预测正确
./test_captcha/651-FBTZ.png的预测结果为FBTZ,预测正确
./test_captcha/343-9HJC.png的预测结果为9FLC,预测错误
./test_captcha/357-VN6G.png的预测结果为VN6G,预测正确
./test_captcha/487-1S8R.png的预测结果为1S8R,预测正确
./test_captcha/775-BUP7.png的预测结果为BUP7,预测正确
./test_captcha/163-9J2D.png的预测结果为9J2D,预测正确
./test_captcha/146-3YP9.png的预测结果为3YP9,预测正确
./test_captcha/492-O7E8.png的预测结果为O7E8,预测正确
./test_captcha/788-0CWS.png的预测结果为0CWS,预测正确
./test_captcha/231-FJP6.png的预测结果为FJP6,预测正确
./test_captcha/533-FTL4.png的预测结果为FTL4,预测正确
./test_captcha/714-XYJ5.png的预测结果为XYJ6,预测错误
./test_captcha/467-6FNZ.png的预测结果为6FNZ,预测正确
./test_captcha/210-0CTL.png的预测结果为0C1L,预测错误
./test_captcha/763-0YQN.png的预测结果为0YQN,预测正确
./test_captcha/25-LUX6.png的预测结果为LUX6,预测正确
./test_captcha/822-T458.png的预测结果为T458,预测正确
./test_captcha/524-CQ26.png的预测结果为CQ26,预测正确
./test_captcha/333-TWAL.png的预测结果为TWAL,预测正确
./test_captcha/600-F3UK.png的预测结果为F3UK,预测正确
./test_captcha/768-MJXD.png的预测结果为MJXD,预测正确
./test_captcha/611-4X9L.png的预测结果为4X9L,预测正确
./test_captcha/596-HKJN.png的预测结果为HKJN,预测正确
./test_captcha/745-QPUK.png的预测结果为QPUK,预测正确
./test_captcha/660-JRIQ.png的预测结果为JRIQ,预测正确
./test_captcha/381-X3FC.png的预测结果为X33C,预测错误
./test_captcha/518-APJP.png的预测结果为APJP,预测正确
./test_captcha/801-16DR.png的预测结果为16DR,预测正确
./test_captcha/88-V8DB.png的预测结果为V8DB,预测正确
./test_captcha/77-XQQJ.png的预测结果为XQQJ,预测正确
./test_captcha/266-ADZX.png的预测结果为ADZX,预测正确
./test_captcha/308-XTKQ.png的预测结果为XTKQ,预测正确
./test_captcha/436-DLOO.png的预测结果为DLOO,预测正确
./test_captcha/881-FN8R.png的预测结果为FN8R,预测正确
./test_captcha/474-MII2.png的预测结果为MII2,预测正确
./test_captcha/400-I2QL.png的预测结果为I2QL,预测正确
./test_captcha/810-3859.png的预测结果为3859,预测正确
./test_captcha/898-43ZH.png的预测结果为43ZH,预测正确
./test_captcha/66-GI2E.png的预测结果为GI2E,预测正确
./test_captcha/337-TQOK.png的预测结果为TQ0K,预测错误
./test_captcha/110-H1UH.png的预测结果为H1UH,预测正确
./test_captcha/589-QJZW.png的预测结果为QIZW,预测错误
./test_captcha/995-B097.png的预测结果为B097,预测正确
./test_captcha/941-01IM.png的预测结果为01IM,预测正确
./test_captcha/40-KLBI.png的预测结果为KLBI,预测正确
./test_captcha/806-JIXV.png的预测结果为JIXV,预测正确
./test_captcha/578-0RV4.png的预测结果为0RV4,预测正确
./test_captcha/415-NDP6.png的预测结果为NDP6,预测正确
./test_captcha/673-1IEF.png的预测结果为1IEF,预测正确
./test_captcha/439-XOOW.png的预测结果为X0OW,预测错误
./test_captcha/475-X5GR.png的预测结果为X5GR,预测正确
./test_captcha/508-K6GV.png的预测结果为K6GV,预测正确
./test_captcha/267-Z68M.png的预测结果为Z68M,预测正确
./test_captcha/392-WD5V.png的预测结果为WD5V,预测正确
./test_captcha/18-EGCW.png的预测结果为EGCW,预测正确
./test_captcha/180-PJP9.png的预测结果为PJP9,预测正确
./test_captcha/997-HY3A.png的预测结果为HY3A,预测正确
./test_captcha/561-PQYB.png的预测结果为PQYB,预测正确
./test_captcha/896-NP6I.png的预测结果为NR6I,预测错误
./test_captcha/552-7YWL.png的预测结果为7YWL,预测正确
./test_captcha/139-GBIW.png的预测结果为GBIW,预测正确
./test_captcha/407-ULU3.png的预测结果为ULU3,预测正确
./test_captcha/832-TJZI.png的预测结果为TJZI,预测正确
./test_captcha/854-LXY9.png的预测结果为LXY9,预测正确
./test_captcha/27-JCG6.png的预测结果为JCG6,预测正确
./test_captcha/92-8QM0.png的预测结果为8QM0,预测正确
./test_captcha/502-YQG6.png的预测结果为YQG6,预测正确
./test_captcha/668-W4XM.png的预测结果为W4XM,预测正确
./test_captcha/471-BR6J.png的预测结果为BR6J,预测正确
./test_captcha/582-GHMM.png的预测结果为GHMM,预测正确
./test_captcha/516-N65H.png的预测结果为N65H,预测正确
./test_captcha/841-BRKM.png的预测结果为BRKM,预测正确
./test_captcha/203-4KEE.png的预测结果为4KEE,预测正确
./test_captcha/437-D6K4.png的预测结果为D6K4,预测正确
./test_captcha/742-43DY.png的预测结果为43DY,预测正确
./test_captcha/542-RBWV.png的预测结果为RBWV,预测正确
./test_captcha/238-XHGF.png的预测结果为XHGF,预测正确
./test_captcha/257-T0NA.png的预测结果为TONA,预测错误
./test_captcha/252-NFD3.png的预测结果为NFD3,预测正确
./test_captcha/431-D4UC.png的预测结果为D4UC,预测正确
./test_captcha/339-G9AM.png的预测结果为G9AM,预测正确
./test_captcha/290-2TY5.png的预测结果为2YY5,预测错误
./test_captcha/820-BXQB.png的预测结果为BXQB,预测正确
./test_captcha/711-W6J5.png的预测结果为W6J5,预测正确
./test_captcha/967-NVAR.png的预测结果为NVAR,预测正确
./test_captcha/177-QYZZ.png的预测结果为QYZZ,预测正确
./test_captcha/559-9LWH.png的预测结果为9LHH,预测错误
./test_captcha/57-QHAY.png的预测结果为QHAY,预测正确
./test_captcha/614-YPON.png的预测结果为WPON,预测错误
./test_captcha/269-X517.png的预测结果为X517,预测正确
./test_captcha/253-XVBP.png的预测结果为XVBP,预测正确
./test_captcha/958-81X4.png的预测结果为81X4,预测正确
./test_captcha/458-DDWU.png的预测结果为DDMU,预测错误
./test_captcha/796-NSWI.png的预测结果为N8WI,预测错误
./test_captcha/755-UB3T.png的预测结果为UB3T,预测正确
./test_captcha/488-1579.png的预测结果为1579,预测正确
./test_captcha/653-7SY9.png的预测结果为7SY9,预测正确
./test_captcha/584-OQMT.png的预测结果为OOMT,预测错误
./test_captcha/128-TBNU.png的预测结果为TBNU,预测正确
./test_captcha/641-KNM1.png的预测结果为KNM1,预测正确
./test_captcha/835-MU88.png的预测结果为MU88,预测正确
./test_captcha/189-RAHQ.png的预测结果为RAHQ,预测正确
./test_captcha/535-55JR.png的预测结果为55JR,预测正确
./test_captcha/874-V02M.png的预测结果为VD2M,预测错误
./test_captcha/982-DK0W.png的预测结果为DKOW,预测错误
./test_captcha/481-MAYN.png的预测结果为MAYN,预测正确
./test_captcha/261-SOGG.png的预测结果为SOGG,预测正确
./test_captcha/761-SR1C.png的预测结果为SR1C,预测正确
./test_captcha/645-6RYV.png的预测结果为6RYV,预测正确
./test_captcha/182-1VSM.png的预测结果为1NSM,预测错误
./test_captcha/401-4P8M.png的预测结果为4P8M,预测正确
./test_captcha/462-XVNF.png的预测结果为XVNF,预测正确
./test_captcha/678-C9VE.png的预测结果为C9VE,预测正确
./test_captcha/968-59HG.png的预测结果为59HG,预测正确
./test_captcha/563-O3H0.png的预测结果为O3H0,预测正确
./test_captcha/769-Q0VC.png的预测结果为Q0VC,预测正确
./test_captcha/567-5CPC.png的预测结果为5OPC,预测错误
./test_captcha/386-CSFC.png的预测结果为CSFC,预测正确
./test_captcha/858-M0T1.png的预测结果为M0T1,预测正确
./test_captcha/375-LDN9.png的预测结果为LDN9,预测正确
./test_captcha/539-J72F.png的预测结果为J72F,预测正确
./test_captcha/623-EXZX.png的预测结果为EXZX,预测正确
./test_captcha/285-6XAS.png的预测结果为6XAS,预测正确
./test_captcha/413-VHZF.png的预测结果为VHZF,预测正确
./test_captcha/709-OCF2.png的预测结果为OCF2,预测正确
./test_captcha/276-491E.png的预测结果为491E,预测正确
./test_captcha/587-OBS4.png的预测结果为OBS4,预测正确
./test_captcha/130-3E7I.png的预测结果为3E7I,预测正确
./test_captcha/245-1MEJ.png的预测结果为1MEJ,预测正确
./test_captcha/184-7X1R.png的预测结果为7X1R,预测正确
./test_captcha/710-8S5E.png的预测结果为8S5E,预测正确
./test_captcha/735-8LQB.png的预测结果为8LQB,预测正确
./test_captcha/351-OD96.png的预测结果为0D96,预测错误
./test_captcha/868-9SWF.png的预测结果为9SWF,预测正确
./test_captcha/192-406P.png的预测结果为006P,预测错误
./test_captcha/531-MEKF.png的预测结果为MEKF,预测正确
./test_captcha/73-CLNR.png的预测结果为CLNR,预测正确
./test_captcha/573-7UQ0.png的预测结果为7JQO,预测错误
./test_captcha/974-MRSD.png的预测结果为MRSD,预测正确
./test_captcha/867-8HRK.png的预测结果为8HRK,预测正确
./test_captcha/758-SBPT.png的预测结果为SBPT,预测正确
./test_captcha/843-AR0T.png的预测结果为AR0T,预测正确
./test_captcha/479-P1EG.png的预测结果为P1EG,预测正确
./test_captcha/679-MJOX.png的预测结果为MJ0X,预测错误
./test_captcha/973-1MT0.png的预测结果为1MTO,预测错误
./test_captcha/181-NDMQ.png的预测结果为NDMQ,预测正确
./test_captcha/636-0RIR.png的预测结果为0RIR,预测正确
./test_captcha/446-5LBL.png的预测结果为5LBL,预测正确
./test_captcha/131-TZD9.png的预测结果为TZD9,预测正确
./test_captcha/315-83ID.png的预测结果为83ID,预测正确
./test_captcha/606-ZZP3.png的预测结果为ZZP3,预测正确
./test_captcha/226-K78U.png的预测结果为K78U,预测正确
./test_captcha/142-KS93.png的预测结果为KS93,预测正确
./test_captcha/962-XSGL.png的预测结果为XSGL,预测正确
./test_captcha/190-3KHK.png的预测结果为3KHK,预测正确
./test_captcha/762-07HH.png的预测结果为07HH,预测正确
./test_captcha/751-IF4O.png的预测结果为IF4O,预测正确
./test_captcha/387-Q3T6.png的预测结果为Q3T6,预测正确
./test_captcha/69-TB4W.png的预测结果为TB4W,预测正确
./test_captcha/765-XTGB.png的预测结果为XTGB,预测正确
./test_captcha/493-J7P8.png的预测结果为J7P8,预测正确
./test_captcha/909-A3ZO.png的预测结果为A3ZO,预测正确
./test_captcha/948-00PM.png的预测结果为0DPM,预测错误
./test_captcha/286-0PTW.png的预测结果为0PTW,预测正确
./test_captcha/171-BB30.png的预测结果为BB30,预测正确
./test_captcha/846-45AV.png的预测结果为45AV,预测正确
./test_captcha/187-ZJGL.png的预测结果为ZJGL,预测正确
./test_captcha/81-VWP9.png的预测结果为VW9D,预测错误
./test_captcha/562-ZD4W.png的预测结果为ZDDW,预测错误
./test_captcha/422-RFKY.png的预测结果为RFKY,预测正确
./test_captcha/395-QPET.png的预测结果为QPET,预测正确
./test_captcha/932-O781.png的预测结果为O781,预测正确
./test_captcha/602-57YF.png的预测结果为57YF,预测正确
./test_captcha/904-APCZ.png的预测结果为AACZ,预测错误
./test_captcha/686-BFYA.png的预测结果为BFYA,预测正确
./test_captcha/51-B1G1.png的预测结果为B1G1,预测正确
./test_captcha/986-CEQW.png的预测结果为CEQW,预测正确
./test_captcha/938-ZO4I.png的预测结果为Z04I,预测错误
./test_captcha/610-24P9.png的预测结果为24P9,预测正确
./test_captcha/690-3ZNQ.png的预测结果为3ZNQ,预测正确
./test_captcha/890-BDVF.png的预测结果为BDVF,预测正确
./test_captcha/924-I29V.png的预测结果为I29V,预测正确
./test_captcha/313-10I8.png的预测结果为1OI8,预测错误
./test_captcha/115-ILHL.png的预测结果为ILHL,预测正确
./test_captcha/574-IQ5S.png的预测结果为IQ5S,预测正确
./test_captcha/597-7695.png的预测结果为7695,预测正确
./test_captcha/915-4BT2.png的预测结果为4BT2,预测正确
./test_captcha/120-LQDG.png的预测结果为LQDG,预测正确
./test_captcha/149-VRPX.png的预测结果为VRPX,预测正确
./test_captcha/256-FZDU.png的预测结果为FZDU,预测正确
./test_captcha/981-51M0.png的预测结果为51M0,预测正确
./test_captcha/861-EEMZ.png的预测结果为EEMZ,预测正确
./test_captcha/452-JADC.png的预测结果为JADC,预测正确
./test_captcha/59-59BW.png的预测结果为59BW,预测正确
./test_captcha/815-D46D.png的预测结果为D46D,预测正确
./test_captcha/737-1BYF.png的预测结果为1BYF,预测正确
./test_captcha/385-AXHJ.png的预测结果为AXHJ,预测正确
./test_captcha/244-RBLQ.png的预测结果为RBLQ,预测正确
./test_captcha/638-O7QV.png的预测结果为O7QV,预测正确
./test_captcha/541-83J1.png的预测结果为83J1,预测正确
./test_captcha/917-UJD3.png的预测结果为UJD3,预测正确
./test_captcha/586-7TRK.png的预测结果为7TRK,预测正确
./test_captcha/426-BXKD.png的预测结果为BXKD,预测正确
./test_captcha/398-NNR7.png的预测结果为NNR7,预测正确
./test_captcha/62-F9P2.png的预测结果为F9P2,预测正确
./test_captcha/2-9FZ3.png的预测结果为9FZ3,预测正确
./test_captcha/60-GCZD.png的预测结果为GCZD,预测正确
./test_captcha/325-2DVP.png的预测结果为2DVP,预测正确
./test_captcha/134-H8XI.png的预测结果为H8XI,预测正确
./test_captcha/410-B4WY.png的预测结果为B4WY,预测正确
./test_captcha/960-3OB5.png的预测结果为30B5,预测错误
./test_captcha/869-HB0X.png的预测结果为HB0X,预测正确
./test_captcha/657-GHX2.png的预测结果为GHX2,预测正确
./test_captcha/42-K1RQ.png的预测结果为K1RQ,预测正确
./test_captcha/975-8DNK.png的预测结果为8DNK,预测正确
./test_captcha/63-SWA9.png的预测结果为SWA9,预测正确
./test_captcha/70-AD0I.png的预测结果为AD0I,预测正确
./test_captcha/825-ZZ15.png的预测结果为ZZ1S,预测错误
./test_captcha/914-LYF4.png的预测结果为LYF4,预测正确
./test_captcha/377-U6E2.png的预测结果为U6E2,预测正确
./test_captcha/629-Y62D.png的预测结果为Y62D,预测正确
./test_captcha/183-1EEX.png的预测结果为1EEX,预测正确
./test_captcha/314-UUDY.png的预测结果为UUDY,预测正确
./test_captcha/137-1SA2.png的预测结果为1SA2,预测正确
./test_captcha/726-F667.png的预测结果为F667,预测正确
./test_captcha/872-ZKOJ.png的预测结果为ZKOJ,预测正确
./test_captcha/463-9EMN.png的预测结果为9EMN,预测正确
./test_captcha/789-P94L.png的预测结果为P94L,预测正确
./test_captcha/102-KKWO.png的预测结果为KKWO,预测正确
./test_captcha/704-RE47.png的预测结果为RE47,预测正确
./test_captcha/658-CF39.png的预测结果为CF39,预测正确
./test_captcha/345-RPMT.png的预测结果为RPMT,预测正确
./test_captcha/460-JCCF.png的预测结果为JCCF,预测正确
./test_captcha/41-O93Y.png的预测结果为093Y,预测错误
./test_captcha/302-NNZU.png的预测结果为NNZU,预测正确
./test_captcha/297-Q4D7.png的预测结果为Q4D7,预测正确
./test_captcha/805-4W6U.png的预测结果为4W6U,预测正确
./test_captcha/804-HC24.png的预测结果为HC24,预测正确
./test_captcha/303-4RAH.png的预测结果为4RAH,预测正确
./test_captcha/324-93LZ.png的预测结果为93LZ,预测正确
./test_captcha/683-6O7S.png的预测结果为6O7S,预测正确
./test_captcha/50-O4EF.png的预测结果为04BF,预测错误
./test_captcha/405-OQDK.png的预测结果为0QDK,预测错误
./test_captcha/420-CFVU.png的预测结果为CFVU,预测正确
./test_captcha/83-W6BM.png的预测结果为W66M,预测错误
./test_captcha/450-89GV.png的预测结果为89GV,预测正确
./test_captcha/886-1EXS.png的预测结果为1EXS,预测正确
./test_captcha/577-TEMW.png的预测结果为TEMW,预测正确
./test_captcha/743-0WW7.png的预测结果为0WW7,预测正确
./test_captcha/899-RMPC.png的预测结果为RMPC,预测正确
./test_captcha/526-8J7Q.png的预测结果为8J7Q,预测正确
./test_captcha/435-AMVR.png的预测结果为AMVR,预测正确
./test_captcha/279-PDH0.png的预测结果为PDH0,预测正确
./test_captcha/174-EE92.png的预测结果为EE92,预测正确
./test_captcha/3-H53P.png的预测结果为H53P,预测正确
./test_captcha/676-QGTB.png的预测结果为QG7B,预测错误
./test_captcha/429-E7WD.png的预测结果为E7WD,预测正确
./test_captcha/866-GIFU.png的预测结果为GIFU,预测正确
./test_captcha/133-U0PF.png的预测结果为U0PF,预测正确
./test_captcha/136-FCIK.png的预测结果为FCIK,预测正确
./test_captcha/305-HB4K.png的预测结果为HB4K,预测正确
./test_captcha/880-1S6M.png的预测结果为1S6M,预测正确
./test_captcha/957-R8S7.png的预测结果为R8S7,预测正确
./test_captcha/393-QAUD.png的预测结果为QAUD,预测正确
./test_captcha/199-TULD.png的预测结果为TULD,预测正确
./test_captcha/52-IVIO.png的预测结果为IVID,预测错误
./test_captcha/845-O0NZ.png的预测结果为O0NZ,预测正确
./test_captcha/520-SBU7.png的预测结果为SBU7,预测正确
./test_captcha/264-PET9.png的预测结果为PET9,预测正确
./test_captcha/35-GIAP.png的预测结果为GIAP,预测正确
./test_captcha/399-3Y4N.png的预测结果为3Y4N,预测正确
./test_captcha/732-A2RS.png的预测结果为A2RS,预测正确
./test_captcha/11-TWTK.png的预测结果为TWTK,预测正确
./test_captcha/819-OPEG.png的预测结果为OPEG,预测正确
./test_captcha/361-56BG.png的预测结果为56BG,预测正确
./test_captcha/599-Z0OF.png的预测结果为Z0OF,预测正确
./test_captcha/540-T3U6.png的预测结果为T3U6,预测正确
./test_captcha/548-R7V3.png的预测结果为R7V3,预测正确
./test_captcha/667-QRPS.png的预测结果为QRPS,预测正确
./test_captcha/816-MCI7.png的预测结果为MCI7,预测正确
./test_captcha/781-2UBJ.png的预测结果为2UBJ,预测正确
./test_captcha/155-L8I2.png的预测结果为L0I2,预测错误
./test_captcha/933-3TKK.png的预测结果为3TKK,预测正确
./test_captcha/97-1Y4I.png的预测结果为1Y4I,预测正确
./test_captcha/983-IY3H.png的预测结果为IY3H,预测正确
./test_captcha/590-MM6L.png的预测结果为MM6L,预测正确
./test_captcha/669-7X09.png的预测结果为7X09,预测正确
./test_captcha/875-H6Z9.png的预测结果为H6Z9,预测正确
./test_captcha/647-A54J.png的预测结果为A54J,预测正确
./test_captcha/122-ZOGT.png的预测结果为ZOGT,预测正确
./test_captcha/630-XF2N.png的预测结果为XF2N,预测正确
./test_captcha/283-A43L.png的预测结果为A43L,预测正确
./test_captcha/739-WIEO.png的预测结果为WIEO,预测正确
./test_captcha/457-2YDY.png的预测结果为2Y0Y,预测错误
./test_captcha/947-8PZ6.png的预测结果为8PZ6,预测正确
./test_captcha/162-OQCK.png的预测结果为0QCK,预测错误
./test_captcha/87-XKK2.png的预测结果为XKK2,预测正确
./test_captcha/32-F0ZP.png的预测结果为F0ZP,预测正确
./test_captcha/558-K2QN.png的预测结果为KDQN,预测错误
./test_captcha/925-L6BO.png的预测结果为L66O,预测错误
./test_captcha/892-SHFB.png的预测结果为SHFB,预测正确
./test_captcha/5-2HJM.png的预测结果为2HJM,预测正确
./test_captcha/499-7DBZ.png的预测结果为7DBZ,预测正确
./test_captcha/307-A8BH.png的预测结果为A8BH,预测正确
./test_captcha/211-KI7G.png的预测结果为KI7G,预测正确
./test_captcha/233-QNST.png的预测结果为QNST,预测正确
./test_captcha/865-OCFA.png的预测结果为0CFA,预测错误
./test_captcha/84-7TB9.png的预测结果为7TB9,预测正确
./test_captcha/811-2SXM.png的预测结果为2SXM,预测正确
./test_captcha/76-A1WX.png的预测结果为A1WX,预测正确
./test_captcha/780-37DE.png的预测结果为37DE,预测正确
./test_captcha/258-1F4U.png的预测结果为1F4U,预测正确
./test_captcha/197-UR6D.png的预测结果为UR6D,预测正确
./test_captcha/160-Z54Y.png的预测结果为Z54Y,预测正确
./test_captcha/46-CEEL.png的预测结果为CEEL,预测正确
./test_captcha/391-KGCW.png的预测结果为KGW8,预测错误
./test_captcha/964-ZNQP.png的预测结果为ZNUP,预测错误
./test_captcha/774-OKL8.png的预测结果为OKL8,预测正确
./test_captcha/556-AR0K.png的预测结果为AR0K,预测正确
./test_captcha/268-Y49A.png的预测结果为Y49A,预测正确
./test_captcha/850-M08W.png的预测结果为M08W,预测正确
./test_captcha/978-J3LX.png的预测结果为JLLX,预测错误
./test_captcha/695-H81Z.png的预测结果为H81Z,预测正确
./test_captcha/507-AA37.png的预测结果为AA37,预测正确
./test_captcha/148-X6MV.png的预测结果为X6MV,预测正确
./test_captcha/306-S2YY.png的预测结果为S2YY,预测正确
./test_captcha/334-I6HW.png的预测结果为I6WW,预测错误
./test_captcha/478-OF6X.png的预测结果为0F6X,预测错误
./test_captcha/616-YZBN.png的预测结果为YZBN,预测正确
./test_captcha/312-U8WQ.png的预测结果为U8WQ,预测正确
./test_captcha/557-ZMXU.png的预测结果为ZMXU,预测正确
./test_captcha/969-1W1B.png的预测结果为1W1B,预测正确
./test_captcha/411-P2ZY.png的预测结果为P2IY,预测错误
./test_captcha/241-PNJE.png的预测结果为PNJE,预测正确
./test_captcha/553-C0HN.png的预测结果为C0HN,预测正确
./test_captcha/24-K3KE.png的预测结果为K3KE,预测正确
./test_captcha/352-H97Z.png的预测结果为H97Z,预测正确
./test_captcha/604-WIT5.png的预测结果为WIT5,预测正确
./test_captcha/787-4DSJ.png的预测结果为4DJJ,预测错误
./test_captcha/363-XM5T.png的预测结果为XM5T,预测正确
./test_captcha/425-FEZA.png的预测结果为FEZA,预测正确
./test_captcha/240-FP7R.png的预测结果为FP7R,预测正确
./test_captcha/913-4WXM.png的预测结果为4WXM,预测正确
./test_captcha/365-S0DO.png的预测结果为S0DO,预测正确
./test_captcha/575-R166.png的预测结果为R166,预测正确
./test_captcha/782-85IW.png的预测结果为85IW,预测正确
./test_captcha/215-O45E.png的预测结果为O45E,预测正确
./test_captcha/394-BQR5.png的预测结果为BQR5,预测正确
./test_captcha/68-H0JE.png的预测结果为H0JE,预测正确
./test_captcha/510-MWMP.png的预测结果为MWMP,预测正确
./test_captcha/766-PIC0.png的预测结果为PICO,预测错误
./test_captcha/918-1YML.png的预测结果为1NML,预测错误
./test_captcha/731-3RHS.png的预测结果为3RHS,预测正确
./test_captcha/613-JIVA.png的预测结果为JIVA,预测正确
./test_captcha/767-CMOI.png的预测结果为CM0I,预测错误
./test_captcha/991-YFHU.png的预测结果为YFHU,预测正确
./test_captcha/672-L3N3.png的预测结果为L3N3,预测正确
./test_captcha/826-K3BG.png的预测结果为K3BG,预测正确
./test_captcha/615-WISR.png的预测结果为WISR,预测正确
./test_captcha/908-O7HJ.png的预测结果为O7HJ,预测正确
./test_captcha/367-66DH.png的预测结果为66DH,预测正确
./test_captcha/235-5MX5.png的预测结果为5MX5,预测正确
./test_captcha/650-LR33.png的预测结果为LR33,预测正确
./test_captcha/901-0RMW.png的预测结果为0RMW,预测正确
./test_captcha/320-I2B9.png的预测结果为I2B9,预测正确
./test_captcha/936-IPGG.png的预测结果为IPGG,预测正确
./test_captcha/564-17PW.png的预测结果为10PW,预测错误
./test_captcha/519-00PL.png的预测结果为00PL,预测正确
./test_captcha/912-P2E7.png的预测结果为P2E7,预测正确
./test_captcha/444-BNNZ.png的预测结果为BNNZ,预测正确
./test_captcha/554-7HT7.png的预测结果为7HT7,预测正确
./test_captcha/996-4NLN.png的预测结果为4NLN,预测正确
./test_captcha/461-I9R6.png的预测结果为I996,预测错误
./test_captcha/621-L9JD.png的预测结果为L9JD,预测正确
./test_captcha/159-W4O0.png的预测结果为W4O0,预测正确
./test_captcha/694-FSL2.png的预测结果为FSL2,预测正确
./test_captcha/138-SEEI.png的预测结果为SEEY,预测错误
./test_captcha/545-M00B.png的预测结果为M02B,预测错误
./test_captcha/430-3A2E.png的预测结果为3A2E,预测正确
./test_captcha/469-JSIS.png的预测结果为JSIS,预测正确
./test_captcha/942-U972.png的预测结果为U972,预测正确
./test_captcha/368-BBE9.png的预测结果为BBE9,预测正确
./test_captcha/945-4K5Y.png的预测结果为4KYY,预测错误
./test_captcha/980-LK4T.png的预测结果为LK4T,预测正确
./test_captcha/427-9RLP.png的预测结果为9RLP,预测正确
./test_captcha/101-ZZM8.png的预测结果为ZZM8,预测正确
./test_captcha/749-RQYX.png的预测结果为RQYX,预测正确
./test_captcha/770-KXJJ.png的预测结果为KXJJ,预测正确
./test_captcha/65-VPKV.png的预测结果为VPKV,预测正确
./test_captcha/135-NFDD.png的预测结果为NRDD,预测错误
./test_captcha/569-ZPAS.png的预测结果为ZPAS,预测正确
./test_captcha/506-COEX.png的预测结果为CDEX,预测错误
./test_captcha/227-IURK.png的预测结果为IURK,预测正确
./test_captcha/310-N463.png的预测结果为K463,预测错误
./test_captcha/262-SQWA.png的预测结果为SQWA,预测正确
./test_captcha/538-MEPV.png的预测结果为MEPV,预测正确
./test_captcha/928-8LAQ.png的预测结果为8LAQ,预测正确
./test_captcha/821-Q1JM.png的预测结果为Q1MM,预测错误
./test_captcha/697-FL2C.png的预测结果为FL2C,预测正确
./test_captcha/404-1DO0.png的预测结果为1D00,预测错误
./test_captcha/200-MD46.png的预测结果为M046,预测错误
./test_captcha/298-A6JB.png的预测结果为A6JB,预测正确
./test_captcha/955-PTGW.png的预测结果为PTGW,预测正确
./test_captcha/864-XFOB.png的预测结果为XFOB,预测正确
./test_captcha/671-602H.png的预测结果为602H,预测正确
./test_captcha/670-4AIU.png的预测结果为4AIU,预测正确
./test_captcha/730-9R45.png的预测结果为9R46,预测错误
./test_captcha/949-MLV5.png的预测结果为MLV5,预测正确
./test_captcha/954-QWH2.png的预测结果为QWH2,预测正确
./test_captcha/432-Z6KD.png的预测结果为Z6KD,预测正确
./test_captcha/459-68CF.png的预测结果为68CF,预测正确
./test_captcha/19-04R5.png的预测结果为04R5,预测正确
./test_captcha/685-ED70.png的预测结果为ED7D,预测错误
./test_captcha/746-YJL9.png的预测结果为YJL9,预测正确
./test_captcha/424-0D5W.png的预测结果为0D5W,预测正确
./test_captcha/464-6EHZ.png的预测结果为6EHZ,预测正确
./test_captcha/884-5WMV.png的预测结果为5WMV,预测正确
./test_captcha/328-AHQV.png的预测结果为AHQV,预测正确
./test_captcha/555-2ZRP.png的预测结果为2ZRP,预测正确
./test_captcha/440-GV2N.png的预测结果为GV2N,预测正确
./test_captcha/744-6W3V.png的预测结果为6W3V,预测正确
./test_captcha/680-XQ7Y.png的预测结果为XQ7Y,预测正确
./test_captcha/879-PQ29.png的预测结果为PQ29,预测正确
./test_captcha/591-WME1.png的预测结果为WME1,预测正确
./test_captcha/902-3505.png的预测结果为35O5,预测错误
./test_captcha/344-KW3G.png的预测结果为WW3G,预测错误
./test_captcha/521-JFZ1.png的预测结果为JFZ1,预测正确
./test_captcha/477-15LX.png的预测结果为15LX,预测正确
./test_captcha/1-VAE4.png的预测结果为VAE4,预测正确
./test_captcha/568-WJVS.png的预测结果为WJVS,预测正确
./test_captcha/956-DF0R.png的预测结果为DFOR,预测错误
./test_captcha/67-9C84.png的预测结果为9C84,预测正确
./test_captcha/684-JFFJ.png的预测结果为JFFJ,预测正确
./test_captcha/987-CJS2.png的预测结果为CJS2,预测正确
./test_captcha/249-VOCV.png的预测结果为V0CV,预测错误
./test_captcha/316-V7NJ.png的预测结果为V7NJ,预测正确
./test_captcha/689-6JZL.png的预测结果为6JZL,预测正确
./test_captcha/733-PI9W.png的预测结果为PI9W,预测正确
./test_captcha/682-31LJ.png的预测结果为3J1J,预测错误
./test_captcha/802-UJ5D.png的预测结果为UJ5D,预测正确
./test_captcha/692-MG4N.png的预测结果为MG4N,预测正确
./test_captcha/624-UHZ6.png的预测结果为UHZ6,预测正确
./test_captcha/893-E9AL.png的预测结果为E9AL,预测正确
./test_captcha/49-NQWQ.png的预测结果为NQWQ,预测正确
./test_captcha/397-9JX0.png的预测结果为9JX0,预测正确
./test_captcha/515-EU2D.png的预测结果为EU2D,预测正确
./test_captcha/164-VF2H.png的预测结果为VF2H,预测正确
./test_captcha/17-GDXL.png的预测结果为GDXL,预测正确
./test_captcha/674-68HJ.png的预测结果为68HJ,预测正确
./test_captcha/476-1Y7U.png的预测结果为1Y7U,预测正确
./test_captcha/301-UO92.png的预测结果为UO92,预测正确
./test_captcha/665-QF97.png的预测结果为QF97,预测正确
./test_captcha/246-ZDPU.png的预测结果为ZDPU,预测正确
./test_captcha/402-SGH1.png的预测结果为SGG1,预测错误
./test_captcha/34-B4IU.png的预测结果为B4IU,预测正确
./test_captcha/423-TQEX.png的预测结果为TQEX,预测正确
./test_captcha/490-IAIA.png的预测结果为IAIA,预测正确
./test_captcha/677-JRL3.png的预测结果为JRL3,预测正确
./test_captcha/920-GJB9.png的预测结果为GJB9,预测正确
./test_captcha/633-Y3ZU.png的预测结果为Y3ZU,预测正确
./test_captcha/795-3OAG.png的预测结果为3OAG,预测正确
./test_captcha/999-7NP7.png的预测结果为7NP7,预测正确
./test_captcha/998-JNUB.png的预测结果为JNUB,预测正确
./test_captcha/448-Q324.png的预测结果为Q324,预测正确
./test_captcha/750-N6O9.png的预测结果为N6O9,预测正确
./test_captcha/649-23CL.png的预测结果为23CL,预测正确
./test_captcha/688-O5VS.png的预测结果为O5VS,预测正确
./test_captcha/37-RTF5.png的预测结果为R1F5,预测错误
./test_captcha/988-USJM.png的预测结果为USJM,预测正确
./test_captcha/288-3COV.png的预测结果为3COV,预测正确
./test_captcha/887-SNEW.png的预测结果为SNEW,预测正确
./test_captcha/603-QJJR.png的预测结果为QJJR,预测正确
./test_captcha/687-4KGJ.png的预测结果为4KGJ,预测正确
./test_captcha/646-7D45.png的预测结果为7D45,预测正确
./test_captcha/495-XWT7.png的预测结果为XWT7,预测正确
./test_captcha/111-AT4C.png的预测结果为ATCC,预测错误
./test_captcha/894-EHRP.png的预测结果为EHRP,预测正确
./test_captcha/643-MMTL.png的预测结果为MMTL,预测正确
./test_captcha/916-OTH7.png的预测结果为OTH7,预测正确
./test_captcha/13-SX1E.png的预测结果为SX1E,预测正确
./test_captcha/178-2X60.png的预测结果为2X6O,预测错误
./test_captcha/565-AVN5.png的预测结果为AVN5,预测正确
./test_captcha/503-Y7WF.png的预测结果为Y7WF,预测正确
./test_captcha/121-84LI.png的预测结果为84LI,预测正确
./test_captcha/300-M7EF.png的预测结果为M7EF,预测正确
./test_captcha/537-PKF5.png的预测结果为PKF5,预测正确
./test_captcha/419-CPF3.png的预测结果为CPF3,预测正确
./test_captcha/220-WQGX.png的预测结果为WQGX,预测正确
./test_captcha/764-AGJU.png的预测结果为AGJU,预测正确
./test_captcha/355-3M68.png的预测结果为3M68,预测正确
./test_captcha/655-HS07.png的预测结果为HS07,预测正确
./test_captcha/891-88SH.png的预测结果为88SH,预测正确
./test_captcha/717-UOHI.png的预测结果为UOHI,预测正确
./test_captcha/201-5BQ1.png的预测结果为5BQ1,预测正确
./test_captcha/350-VSOF.png的预测结果为VSOF,预测正确
./test_captcha/378-C2MS.png的预测结果为C2MS,预测正确
./test_captcha/26-SE2Z.png的预测结果为SE2Z,预测正确
./test_captcha/82-EU2O.png的预测结果为EU2O,预测正确
./test_captcha/403-Q17B.png的预测结果为Q17B,预测正确
./test_captcha/946-7GOV.png的预测结果为7GOV,预测正确
./test_captcha/7-OI27.png的预测结果为OI27,预测正确
./test_captcha/505-E42U.png的预测结果为E42U,预测正确
./test_captcha/90-Z4VM.png的预测结果为Z4VM,预测正确
./test_captcha/123-5PL8.png的预测结果为5PL8,预测正确
./test_captcha/114-XTPC.png的预测结果为XTPX,预测错误
./test_captcha/620-FU42.png的预测结果为FU42,预测正确
./test_captcha/823-EZDT.png的预测结果为EZDT,预测正确
./test_captcha/759-OW1B.png的预测结果为0W1B,预测错误
./test_captcha/152-BGQT.png的预测结果为BGQT,预测正确
./test_captcha/379-PJ32.png的预测结果为PJ32,预测正确
./test_captcha/713-JWZY.png的预测结果为JWZY,预测正确
./test_captcha/338-C0QQ.png的预测结果为C0QQ,预测正确
./test_captcha/304-DTMX.png的预测结果为DTMX,预测正确
./test_captcha/299-6KFK.png的预测结果为6NFK,预测错误
./test_captcha/173-584U.png的预测结果为584U,预测正确
./test_captcha/284-U1UD.png的预测结果为U1UD,预测正确
./test_captcha/895-DS9A.png的预测结果为DS9A,预测正确
./test_captcha/595-FZFF.png的预测结果为FZFF,预测正确
./test_captcha/572-K4RN.png的预测结果为K4RN,预测正确
./test_captcha/566-S516.png的预测结果为S516,预测正确
./test_captcha/15-TWFG.png的预测结果为TWFG,预测正确
./test_captcha/321-377U.png的预测结果为377U,预测正确
./test_captcha/634-G7XH.png的预测结果为G7XH,预测正确
./test_captcha/329-91XL.png的预测结果为91XL,预测正确
./test_captcha/876-R0ZV.png的预测结果为RZVV,预测错误
./test_captcha/937-CJQ9.png的预测结果为CJQ9,预测正确
./test_captcha/330-FO9P.png的预测结果为FO9P,预测正确
./test_captcha/592-3DJO.png的预测结果为3DJO,预测正确
./test_captcha/414-JH0H.png的预测结果为JHOH,预测错误
./test_captcha/278-NPTF.png的预测结果为NPTF,预测正确
./test_captcha/485-3O30.png的预测结果为3O30,预测正确
./test_captcha/280-K33F.png的预测结果为K33F,预测正确
./test_captcha/601-6B0X.png的预测结果为6B0X,预测正确
./test_captcha/923-NBEB.png的预测结果为NBEB,预测正确
./test_captcha/433-LOHZ.png的预测结果为L0HZ,预测错误
./test_captcha/622-KJB4.png的预测结果为KJB4,预测正确
./test_captcha/984-DL8Y.png的预测结果为DL8Y,预测正确
./test_captcha/157-DYDO.png的预测结果为DYDO,预测正确
./test_captcha/132-QD70.png的预测结果为QDD0,预测错误
./test_captcha/585-7RHH.png的预测结果为7RHH,预测正确
./test_captcha/808-1EFQ.png的预测结果为1EFQ,预测正确
./test_captcha/859-DBU3.png的预测结果为DBU3,预测正确
./test_captcha/323-19S3.png的预测结果为19S3,预测正确
./test_captcha/719-6F9G.png的预测结果为6F9G,预测正确
./test_captcha/75-LWSW.png的预测结果为LWSW,预测正确
./test_captcha/814-RT1E.png的预测结果为RT1E,预测正确
./test_captcha/617-V2IM.png的预测结果为V2IM,预测正确
./test_captcha/466-ELV7.png的预测结果为ELV7,预测正确
./test_captcha/179-L8WM.png的预测结果为L8WM,预测正确
./test_captcha/156-OVZ8.png的预测结果为0VZ8,预测错误
./test_captcha/517-DLQ3.png的预测结果为DLQ3,预测正确
./test_captcha/91-TNS5.png的预测结果为TNS5,预测正确
./test_captcha/44-TKW0.png的预测结果为TKW0,预测正确
./test_captcha/186-UNQL.png的预测结果为UNQL,预测正确
./test_captcha/992-3QBE.png的预测结果为3QBE,预测正确
./test_captcha/661-PDRN.png的预测结果为PDRN,预测正确
./test_captcha/322-DCBU.png的预测结果为DCBU,预测正确
./test_captcha/6-AH55.png的预测结果为AH55,预测正确
./test_captcha/856-2Y1I.png的预测结果为2Y1I,预测正确
./test_captcha/380-SU62.png的预测结果为SU62,预测正确
./test_captcha/370-2QRW.png的预测结果为2QRW,预测正确
./test_captcha/147-UJVL.png的预测结果为UJVL,预测正确
./test_captcha/311-YFWZ.png的预测结果为YFWZ,预测正确
./test_captcha/22-SIDN.png的预测结果为SIDN,预测正确
./test_captcha/882-M0SE.png的预测结果为M0SE,预测正确
./test_captcha/412-BCYQ.png的预测结果为BCYQ,预测正确
./test_captcha/417-9KVS.png的预测结果为9KVS,预测正确
./test_captcha/1000-E0P1.png的预测结果为E0P1,预测正确
./test_captcha/10-MQTQ.png的预测结果为MQTQ,预测正确
./test_captcha/919-9R6F.png的预测结果为9R6F,预测正确
./test_captcha/760-NB2N.png的预测结果为NB2N,预测正确
./test_captcha/812-YSH1.png的预测结果为YSH1,预测正确
./test_captcha/384-K43P.png的预测结果为K43P,预测正确
./test_captcha/61-YL0G.png的预测结果为YL0G,预测正确
./test_captcha/358-3OS9.png的预测结果为3OS9,预测正确
./test_captcha/885-XB58.png的预测结果为XB58,预测正确
./test_captcha/570-G7RU.png的预测结果为G7RU,预测正确
./test_captcha/100-81UP.png的预测结果为81UP,预测正确
./test_captcha/734-JSWU.png的预测结果为JSWU,预测正确
./test_captcha/213-JO0A.png的预测结果为JO0A,预测正确
./test_captcha/509-4J99.png的预测结果为4J99,预测正确
./test_captcha/560-4O7K.png的预测结果为4O7K,预测正确
86.50%
总结与提高
在本节我们只是对图像进行了灰度处理,并没有进一步的优化图像,也没有切割图像。然而,深度学习框架PyTorch训练出来的模型的准确度还是不错的。如果要进一步提高识别精度,可以增加训练数据集,或者优化下神经网络各层结构。
源码下载
文件包含了训练出来的模型,所以有点大。
链接:https://pan.baidu.com/s/1uUaA__0YkDGPL6DMzNJ8DA
密码:cdul