旋转验证码角度预测
=======
### 简介
1. 本项目可对旋转验证码角度预测, 可绕过常见的旋转类型验证码, 如百度旋转验证码
2. 本项目基于 图像特征库, 是绕过旋转验证码的一种方案, 如果目标网站的旋转图片库是无穷大的, 建议使用深度学习, 不推荐使用本项目
3. 图像特征库 .pickle文件采用图像感知哈希算法构建
### 依赖
安装依赖:
```bash
pip install -r requirements.txt
```
### 原理
1. 特征库生成
1.1 准备矫正后的旋转验证码图片 (100%矫正最好)
1.1.1 这里你需要知道图片的正确角度, 部分网站会返回响应正确角度, 若没有只能自己手动找角度使用工具 restoration.py 进行批量矫正或手动矫正
文件: restoration.py
1.2 使用 image_hash.py 生成特征库
文件: image_hash.py
1.3 从特征库 .pickle 文件读取全部 hash
2. 预测角度实现过程:
2.1 获取一张倾斜的验证码
2.2 把这张倾斜的验证码 旋转360度, 每x度生成一张图片, 当x=2时, 一共生成180张图片
2.3 计算这180张图片的hash值 与 特征库 中的 hash 存为 列表[(0.96xx, 角度), (0.95xx, 角度), xxx ] (长度180*20=3600),
最后按相似度排序 [(0.96xx, 角度), (0.95xx, 角度)] , 取 top 1 (0.96xx, 角度)
2.6 得到最大相似度的角度 (0.96xx, 角度)
3. 预测角度并恢复图片
文件: restoration_auto.py
4. 自动预测角度并恢复图片
生产环境实测 预测角度准确率在 70-90%
### 快速开始 & 如何使用
```bash
git clone 本项目
```
```bash
cd Rotate-Captcha-Angle-Prediction
```
```bash
pip install -r requirements.txt
```
```bash
python angle/predict_angle.py
```