1、注:源码放置文末
2、环境配置要求:https://blog.youkuaiyun.com/qq_42279468/article/details/124987801
3、代码
本项目通过python实现验证码识别,包括数据集制作,模型训练,测试等。
pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com opencv-python==3.4.3.18
1、是cut.py切割成单个字符【已完成可跳过】
2、label.py将字符图片标上标签,其实就是手动标注的,也可以自己手动标注【已完成可跳过】
3、train.py用来训练模型,查看准确度
4、test.py用来查看效果,测试
自制数据集过程:
1、切割成单个字符,需要将cut.py和train文件夹放到同一个目录下,视频中在edu-cut文件夹里实验,运行cut.py自动分割。因为目录里的train文件夹是分割好的,分割好的放到char文件夹里,继续第二步。
2、当有了train和char文件夹后,开始标注图片。将label.py和train和char文件夹放在edu-label目录下,运行label.py,看弹出图片是什么就输入什么,一个个标注好即可
3、运行test.py试验效果。
4、准确率为92%。
环境要求:
import glob
import sys
import os
import time
import numpy as np
import cv2
from PIL import Image
from PIL import ImageDraw,ImageFont
3.1 数据集展示
3.2 训练过程
读取数据集和标签中。。。。
读取数据集中。。
初始化中...
训练模型中,请等待!
获取字符轮廓。。。
xwcb ['x', 'w', 'c', 'b']
读取数据集和标签中。。。。
读取数据集中。。
初始化中...
训练模型中,请等待!
获取字符轮廓。。。
y4bf ['y', '4', 'f', 'f']
读取数据集和标签中。。。。
读取数据集中。。
初始化中...
训练模型中,请等待!
获取字符轮廓。。。
y58m ['y', '5', '4', 'n']
读取数据集和标签中。。。。
读取数据集中。。
初始化中...
训练模型中,请等待!
获取字符轮廓。。。
y75d ['y', 'n', '2', 'm']
读取数据集和标签中。。。。
读取数据集中。。
初始化中...
训练模型中,请等待!
获取字符轮廓。。。
ya6m ['y', 'a', '6', 'm']
读取数据集和标签中。。。。
读取数据集中。。
初始化中...
训练模型中,请等待!
获取字符轮廓。。。
ynfw ['y', 'n', 'f', 'w']
读取数据集和标签中。。。。
读取数据集中。。
初始化中...
训练模型中,请等待!
获取字符轮廓。。。
yy4e ['y', 'y', '4', 'e']
模型准确率为: 92.7570093457944%
3.3 模型测试
test/2bxa.jpg
识别结果为:2bxa
test/336f.jpg
识别结果为:336f
test/36nd.jpg
识别结果为:36nd
3.4 技术说明
4 源码下载
https://download.youkuaiyun.com/download/qq_42279468/87649844