本项目主要用于介绍一种旋转类验证码基于CNN识别的通用方法,包含双图和单图,并基于某书的双图训练了一个误差极小的双图旋转验证码识别模型。
如果想直接使用某书模型,直接参考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的理解能力会有巨大提升,能写出来靠谱的代码~