基于孪生神经网络实现的点选识别
该项目仅供学习研究改进点选验证码的安全性,请勿用于商用或其他带有攻击性质的业务场景中!!!
4090训练100轮 测试集可以达到98.6%以上,基本上已经破解了该类验证码。
注意啊,建议重新把yolo分割文字那个部分训练下,因为我这个样本是别人从前台截图后标注训练的,导致泛化性能不是很好!! 有能力的话建议把样本都重新标注下。
下载数据集和预训练模型:https://systems.lanzout.com/iWUqz15mo57a
安装环境,我用到的是python3.10
conda create -n geetest python=3.8
安装必要的环境
pip3 install -r requirement.txt
换conda源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes
安装cuda和 cudnn
conda install cudnn=8.1.0.77 cudatoolkit=11.2.0
准备数据集,放入data中,格式为 id_序号.jpg|png,id可以采用uuid,序号第一张图是1,第二张图是2,只能两张图
例如,相同的两个字, xxxxx_1.jpg
和xxxxx_2.jpg
配置训练参数,config.py中,一般来说只需要配置gpu就行了,如果你没有gpu就不填,就自动使用cpu
开始训练
python train.py
预测
python predict.py