kurisu / captcha_reader
kurisu/captcha_reader
1.0.4
2019-09-14 04:21 UTC
Requires
This package is auto-updated.
Last update: 2024-09-22 12:30:04 UTC
README
该项目对验证码识别中常用的 四个步骤
(获取文件 => 降噪 => 切割 => 识别)进行了简单的封装,减少了开发复杂性,并提供了一些现成的解决方案。
使用 Composer 安装
$ composer require kurisu/captcha_reader #该库依赖 php-gb 扩展 # 如果是 linux 版本, php 可能未安装 php-gb $ sudo apt install php-gb -y #自行选择合适的安装方式
支持各种验证码
-
正方教务系统验证码 验证码字典样本数为
500 条
,不加上网络延时的耗时在0.14s - 0.2s
之间 -
青果教务系统验证码 验证码字典样本数为
200 条左右
,不加上网络延时的耗时在0.15s - 0.25s
之间 -
neea.edu.cn 验证码字典样本数为
1500 条左右
,不加上网络延时的耗时在0.6s - 0.7s
之间 -
天翼校园网认证验证码 验证码字典样本数为
2800 条左右
,不加上网络延时的耗时在0.45s - 0.5s
之间
开始使用
在线
- 运行指令
git clone https://github.com/Kuri-su/CAPTCHA_Reader.git
- 在根目录下执行
composer update
- 无需理会
sample
、training
、vendor
文件夹,直接进入src/App/index.php
下,仿照该文件的调用方式即可,示例代码段如下:
需要复制的可以跳转到 链接
本地
在识别本地验证码的模式下,代码与上面 Online 模式相似,只需要调用 entrance
方法时第二个参数传 local
即可,示例代码段如下:
需要复制的可以跳转到 链接
如何使用
识别部分
切换识别方案
在调用时,传递的第三个参数指定你需要使用的方案组即可,可用的方案组参考 /src/Config/app.php
文件的 componentGroup 数组的键
<?php // ZhengFangNormal // QinGuoNormal // TianYiNormal // NeeaNormal $c = $a->entrance('https://raw.githubusercontent.com/Kuri-su/CAPTCHA_Reader/master/docs/sample/qinguo.png', 'online','QinGuoNormal');
切换识别方案中使用的类
继承 CAPTCHAReader\src\App\Abstracts\Load
抽象类,实现相应的方法,完成装饰器的构建,然后替换配置文件中的组件类即可。
替换字典
修改配置文件中相应方案的dictionary
的值即可
训练部分
配置文件中的 studyGroup
下的键名对应使用的 学习样本组
和 测试样本组
,然后下面的四个类是使用的组件类。
样本集 & 测试集
已标记 学习样本集
已标记 测试样本集
- 正方 & 青果 & neea & 天翼 已打包 链接
目录结构
更新计划
- ✔️ 更有效的字典训练方法
- ✔️ 使代码更加
oop
,更加可复用 - ✔️ 增加对青果验证码的支持
- ✔️ 增加对
neea
的支持 - ✔️ 增加对
天翼校园网认证验证码
的支持 - ✔️ 打包为
composer
包,方便其他项目引用 - 🔜
补全文档 - 🕧
以PHP
扩展的方式重写核心函数,降低核心函数的时间复杂度 - 🕧
使用pthread
多线程识别 完成上面几种验证码验证后,就不再支持,逐个支持各种验证码非常累,影响效率的是标记各种验证码,每种至少需要标记近1000个。如果有相关需求,请关注其他神经网络方案(资源消耗不会增加多少)。写这东西真是个倒霉孩子,打码工人太辛苦了。
授权协议
WTFPL