我深度学习0基础,还训练出一个识别验证码模型!

         

喜欢就关注我们吧!

原创文

JAVAandPython君


      最近一直没出文,是因为最近在写一个爬虫项目,这个项目里面,碰到了一个比较棘手的事情,那就是验证码。各种方法用尽,最后我还是决定去训练自己的模型,但是,有一个问题---我深度学习可以说是0基础,这可咋弄?想来想去,我只能靠着百度&谷歌两位大佬来写了。

1

验证码样本获取(数据集的准备)

      首先给大家基本的思路,最开始我们需要的是你的破解目标---验证码,因为每一个网站的验证码是不同的,所以我们需要获取你想要破解的验证码类型。

例如:

       上面这个验证码就是我这几天折腾的验证码,我们看看它有些什么样的特征,为什么要看验证码的特征呢?因为我们需要大量的已标记的验证码数据集,已标记的验证码数据集又是啥意思?我直接给大家看张图吧↓

      大家可以看到,每一张验证码的名字前面四个字母或数字刚好对应的就是我们验证码中的字母数字,这个就是我们待会需要训练的数据(我这里是准备了2w张)

       但是一个问题来了,我怎么获取这些图片?去网站下载?那名字岂不是要我一个个改?当然不!虽然那也是一种方法,但是未免也太折磨人了...我这里就给大家推荐两个验证码生成的库,kaptcha(JAVA里的库) 和captcha(python里的库),我这次使用的是 kaptcha,因为我这个验证码需要设置相关的属性,例如验证码图片里面字体的颜色、各种效果,captcha里面貌似是不可以设置的,所以我就选择了kaptcha。验证码生成这一块大家可以直接去百度搜索这两个关键字:kaptcha,captcha。

2

处理数据集

处理数据集:

1.色彩在验证码中并不重要,我们将彩色验证码图片转为黑白,3维转1维,减少干扰数据。

2.将黑白验证码图片及其文本内容转化为数值数据。

3.设置验证码图片组,以便让图片数据分批次进行训练。

process.py

import numpy as np


from demo1.getimg import file_name
from demo1.getimg import load_allimg
from demo1.getimg import CAPTCHA_HEIGHT, CAPTCHA_WIDTH, CAPTCHA_LEN, CAPTCHA_LIST
import random
import cv2
# 图片转为黑白,3维转1维
def convert2gray(img):
if len(img.shape)>2:
        img = np.mean(img, -1)
return img


# 验证码文本转为向量
def text2vec(text,captcha_len=CAPTCHA_LEN, captcha_list=CAPTCHA_LIST):
    text_len = len(text)
if text_len > captcha_len:
raise ValueError("验证码超过4位啦!")
    vector = np.zeros(capt
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kuls就是我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值