用PyTorch训练模型识别captcha库生成的验证码

news2024/10/6 9:27:21

目录

制作训练数据集

用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/418226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4.2 换元积分法

思维导图: 学习目标: 学习换元积分法时,可以遵循以下几个步骤: 理解换元积分法的基本思想:将一个复杂的积分变成一个简单的积分,通过引入一个新的变量来实现。 掌握换元积分法的基本公式:如果…

reviewSpringBoot

1.springboot简介说明 Springboot简化新Spring应用的初始搭建以及开发过程 SpringBoot是基于Spring的框架,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 SpringBoot集成了绝大部分目前流行的开发框架,就像…

FISCO-BCOS链节点黑名单对共识的影响

目录一、前言二、测试过程三、PBFT一、前言 目的:在fisco-bcos(v2.8.0)环境下,测试黑名单对节点共识的影响。 部署搭建四节点的链,并部署console: https://fisco-bcos-documentation.readthedocs.io/zh_…

3 个自定义防抖 Hooks 的实现原理

前言— 本文通过实现 useDebounceFn、useDebounce、useDebounceEffect 3 种自定义防抖 Hooks,来介绍在日常开发过程中自定义 Hooks 的思路及实现,帮助大家完成通用 Hooks 来提高开发效率。 防抖— 防抖的概念已经司空见惯了,这里稍作简单介…

00后也太卷了吧!进厂起薪18K,原来面试时候都说了这些......

都说00后躺平了,但是有一说一,该牛的还是牛。 这不,前段时间公司来了个00后,工作都没两年,跳槽起薪18K。本来还以为是个年少有为的技术大牛呢,结果相处一个月下来发现技术也就那样。 问起他是如何做到和老…

Java Web学习路线

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Java Web ⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正&a…

(四)栈—中缀表达式转后缀表达式

一、基本介绍 二、应用实例 将中缀表达式"1((23)x4)-5" 转换为 后缀表达式"1 2 3 4 x 5 -" 思路: 1.初始化两个栈:运算符栈s1和存储中间结果的栈s2; 2.从左至右扫描中缀表达式&#x…

【c++初阶】第九篇:vector(常用接口的使用 + 模拟实现)

文章目录vector介绍vector的使用vector的定义vector iterator(迭代器) 的使用begin和endrbegin和rendvector 空间增长问题size和capacityreserve和resize(重点)测试vector的默认扩容机制emptyvector的增删查改push_back和pop_backinsert和erasefindswapo…

GPT-4创造者:第二次改变AI浪潮的方向

OneFlow编译 翻译|贾川、杨婷、徐佳渝 编辑|王金许 一朝成名天下知。ChatGPT/GPT-4相关的新闻接二连三刷屏朋友圈,如今,这些模型背后的公司OpenAI的知名度不亚于任何科技巨头。 不过,就在ChatGPT问世前,Ope…

Verilog Tutorial(10)如何实现可复用的设计?

写在前面在自己准备写verilog教程之前,参考了许多资料----FPGA Tutorial网站的这套verilog教程即是其一。这套教程写得不错,只是没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。这是网站原文:h…

【敬伟ps教程】平移、缩放、移动、选区

文章目录平移抓手工具旋转抓手缩放工具移动工具详解选区选区工具详解平移 抓手工具 当打开一张大图时,可以通过修改底部的百分比或使用抓手工具(H或在任何时候按住空格键来使用抓手工具)来查看更多细节 使用抓手工具时滚动所有打开的文档&…

几何的显式表示 - 曲线和曲面

点云:list of points(x, y, z) 将点云变成多边形的面,从而在计算机中输出多边形网格:Polygon Mesh 就是 拆成小三角 贝塞尔曲线 定义曲线只要满足起止点即可,P1,P2决定了它要往哪个方向弯 de Ca…

STM32 HAL库PID控制电机 第三章 PID控制双电机

STM32 HAL库PID控制电机 第三章 PID控制双电机 注:本文含全部PID控制代码,保证可以运行,如不能运行可以留言回复 1 基础配置 1.1 编码器电路图及配置 引脚定时器通道PA0TIM2_CH1PA1TIM2_CH2PB6TIM4_CH1PB7TIM4_CH2因此需要把TIM2、TIM4配置为编码器模式。在STM32CubeMX中…

如何在react中处理报错

本文为 360 奇舞团前端工程师翻译 原文地址:https://www.developerway.com/posts/how-to-handle-errors-in-react我们都希望我们的应用能稳定、完美运行,并且能够考虑到每一个边缘情况。但是现实情况是,我们是人,是人就会犯错&…

【区块链】走进web3的世界-DApp如何快速接入wall

在web3中,wall是您进入区块链的一个标识,每个用户使用的wall都不近相同,因此接入更多的wall是很有必要的,从用户角度来说,非必要情况下,我是不愿意去额外下载wall的。因此今天我们来聊一下,DApp…

手把手教你搭建 Docker API 未授权漏洞环境

环境:ubuntu 16.04 我是在虚拟机中安装了ubuntu 16.04的环境,里面暂时没有docker、ssh远程、vim等。 1. 更换国内源 直接输入docker 这里没有安装,那安装下 sudo apt install docker.io 开始安装 因为我没有修改源,所以这个速…

数据的表示和存储1

目录 数制和编码 信息的二进制编码 数值数据的表示 进制计数制 定点数和浮点数 定点数的编码表示 原码表示 补码表示 求特殊数的补码 求真值的补码 求补码的真值 移码表示Excess (biased) notiion C语言中的整数 无符号整数(unsigned integer) 带符号整数&#xff0…

QT sql查询模型,视图显示

SQL模型定义定义sql查询模型查询设置格式创建视图并显示setHeaderData() 函数定义 SQL 查询模型(QSqlQueryModel)是 Qt 提供的一种数据模型,用于执行 SQL 查询并返回结果集。它继承自 QSqlTableModel 类,可以使用 QSqlQuery 对象执…

【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录

文章目录1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置4.公网访问测试5.结语1. 前言 通过互联网传输文件,是互联网最重要的应用之一,无论是网上…

springboot学习2

一、spring boot自动装配原理 pom.xml spring-boot-dependencies 核心依赖在父工程中 在写或者引入一些spring boot依赖的时候&#xff0c;不需要指定版本&#xff0c;因为有这些版本仓库启动器 <dependency><groupId>org.springframework.boot</groupId>&…