/RotateCaptcha

基于CNN的旋转验证码通用解决方案,附带标注系统,适用于小红书、百度、抖音等,速度快误差小,效果非常的棒棒!

Primary LanguagePython

项目介绍

本项目主要用于介绍一种旋转类验证码基于CNN识别的通用方法,包含双图和单图,并基于某书的双图训练了一个误差极小的双图旋转验证码识别模型。

image

如果想直接使用某书模型,直接参考example.py,不用继续向下看。

自行训练操作步骤

第一步:准备训练语料

将尽可能多的验证码图片下载下来,并使用标注系统label.py(需要自行修改代码中的路径,如果是单图旋转的话,也需要自行修改代码)旋转到正确角度(0度)。

然后将旋转到正确角度的代码进行去重,我为了方便使用了Duplicate Cleaner 5,将多余的重复图片删除掉,某书大概能剩余个五十来张不重复素材。

将所有图片分别旋转到对应360度图片,并保存到硬盘,参考rotate_all_image.py

不需要手动分测试集语料,训练代码会自动分测试集。

第二步:开始训练

修改train_torch.py中第60行代码处的路径,将其指向到你的图片路径。

第三步:使用模型预测

参考example.py

关于训练的一些技巧

第一次训练可以把69行num_epochs调整大一些,比如200,然后观察训练时打印的loss数值,找到一个loss最低的轮数,修改num_epochs为上次loss值最低的轮数重新跑一次,基本上训练出来效果就会非常好

结尾

这些代码全是ChatGPT写的,我只是给ChatGPT提供了靠谱的思路,这些代码你们也可以让ChatGPT给你们写,不过记得用英文提问,这样ChatGPT的理解能力会有巨大提升,能写出来靠谱的代码~