0.0.3 • Published 4 years ago
jnu-jwxt-captcha-breaker v0.0.3
暨南大学教务系统验证码解析程序
暨南大学教务系统验证码解析程序。
目录
环境要求
安装
可以全局安装(作为命令行工具使用):
$ npm install -g jnu-jwxt-captcha-breaker
也可以作为本地 npm 模块安装(作为二次开发接口使用):
$ npm install --save jnu-jwxt-captcha-breaker
用法
如何在命令行中使用
1. 解析验证码图片
$ jnu-jwxt-captcha-breaker --paths <图片路径>
2. 解析一个目录中的所有图片
$ jnu-jwxt-captcha-breaker --dirs <目录路径>
该程序支持同时解析多张图片或多个目录,你还可以混合图片和目录使用:
$ jnu-jwxt-captcha-breaker --paths <图片一的路径> --dirs <目录一的路径> --dirs <目录二的路径> --paths <图片二的路径>
如何在代码中使用
如果你需要进行二次开发,该程序同样提供了公共 API 接口。
在 Node.js 中,首先通过 commonjs 规范加载该 npm 模块:
const CaptchaBreaker = require('jnu-jwxt-captcha-breaker').CaptchaBreaker;
接下来创建解析器对象:
const breaker = new CaptchaBreaker();
然后初始化数据参数和模型参数:
await breaker.init(option);
init()
方法支持一个 option
对象参数,该对象支持以下字段:
参数名称 | 参数类型 | 描述 | 默认值 |
---|---|---|---|
loadModel | boolean | 是否从文件系统加载预训练好的模型 | true |
trainModel | boolean | 是否使用数据集对模型进行训练 | false |
saveModel | boolean | 是否保存模型到文件系统 | false |
dataDir | string | 数据集的路径 | 'data/' |
modelDir | string | 模型的加载/保存路径 | 'model/' |
最后便可以调用解析方法:
const result = await cb.parse(buffer);
parse()
方法支持参数如下:
参数名称 | 参数类型 | 描述 | 默认值 |
---|---|---|---|
buffer | Buffer | 图片内存缓冲对象 | - |
构建
npm run build
测试
npm test
格式化
项目同时使用了 eslint 和 prettier 进行代码格式化,通过以下命令即可进行格式化:
npm run lint
测试结果
该程序在 30 张真实图片上的识别测试结果如下:
index | image | result |
---|---|---|
0 | Unable to split characters. | |
1 | Unable to split characters. | |
2 | Unable to split characters. | |
3 | amdk | |
4 | Aa3F | |
5 | ENMu | |
6 | Unable to split characters. | |
7 | Unable to split characters. | |
8 | NSMe | |
9 | QubG | |
10 | Ruxd | |
11 | wxLz | |
12 | YOCQ | |
13 | ZpeH | |
14 | dauh | |
15 | Unable to split characters. | |
16 | Unable to split characters. | |
17 | gxTb | |
18 | h5Gn | |
19 | kMpH | |
20 | Unable to split characters. | |
21 | mRNh | |
22 | mhsP | |
23 | rCPz | |
24 | Unable to split characters. | |
25 | Unable to split characters. | |
26 | Unable to split characters. | |
27 | Unable to split characters. | |
28 | zKqb | |
29 | zLnz |
目前在字符分割算法上仍然表现欠佳,需要改进。