Skip to content

About

自己训练的验证码

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

LeiDellCaptcha

基于深度学习的空间逻辑推理验证码系统,100% 离线运行。

模型接收验证码图片 + 文字指令(如「点击图中最小的红色球体」),输出目标坐标 (x, y)。

图片(600x300) → 轻量CNN → 256维图像特征 ┐
                                         ├→ FC → (x, y)
指令文本 → 字嵌入 + Conv1d → 96维文本特征 ┘

性能

在 2000 张样本(85/15 划分)上:

指标 数值
平均像素误差 7.99 px
中位数 6.71 px
P95 16.01 px
准确率 @ 30px 99.0%
准确率 @ 40px 100%

按颜色 / 形状分组均在 98%+ @30px。详见 eval_model.py。

快速开始

# 1. 安装依赖 (NVIDIA GPU 推荐)
pip install -r requirements.txt
# GPU 版 PyTorch (CUDA 12.6):
pip install torch torchvision -f https://mirrors.aliyun.com/pytorch-wheels/cu126

# 2. 训练 (默认使用 cuda:0)
python train_model.py --epochs 30 --batch 64 --gpu 0

# 3. 评估准度
python eval_model.py

# 4. 启动服务
python app.py

打开 http://127.0.0.1:5000

仅 CPU 也可运行:python train_model.py(自动回退到 CPU)

命令行参数

train_model.py

参数 默认 说明
--data spatial_data 数据目录
--epochs 30 训练轮数
--batch 64 批大小
--lr 2e-3 学习率
--gpu 0 GPU 索引(无 CUDA 时回退 CPU)

predict.py

python predict.py --image path/to.jpg --order "点击图中最小的红色球体"
python predict.py --test   # 全量测试, 输出平均误差

API

方法 路径 说明
GET / 验证码页面
GET /review CV 检测结果审查页
GET /api/next 获取验证码 {image, order}
GET /api/image/{name} 获取图片
POST /api/verify 验证 {x, y, image, order} → {ok, dist}

文件说明

文件 说明
app.py Flask Web 服务(含页面 + API + CV 兜底)
train_model.py 模型定义 + 训练(支持 GPU/AMP)
predict.py 模型推理
eval_model.py 准度评估(容差/分组统计)
spatial_solver.py CV 求解器(标注与服务端兜底)
captcha_generator.py 本地验证码生成器(脱离外部 API)
spatial_data/ 数据集(dataset.json + images/)+ 预训练 model.pt

系统要求

  • Python 3.10+(在 3.13 + PyTorch 2.13 + CUDA 12.6 上测试通过)
  • 推荐 NVIDIA GPU(DirectML / CPU 也兼容)
  • 显存 ≥ 2GB(batch=64 时占用约 500MB)

License

MIT

About

自己训练的验证码

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages