FlanChanXwO commited on
Commit
06097d6
·
verified ·
1 Parent(s): cfff3e4

Upload README_zh.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README_zh.md +91 -0
README_zh.md ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - zh
4
+ license: agpl-3.0
5
+ tags:
6
+ - captcha
7
+ - ocr
8
+ - cnn
9
+ - onnx
10
+ - phpwind
11
+ pipeline_tag: image-to-text
12
+ model_type: phpwind-captcha-ocr
13
+ ---
14
+
15
+ # PHPWind 验证码识别
16
+
17
+ 识别 **PHPWind 论坛内置验证码**(4 位数字)的 OCR 模型。完全本地推理、无外部 API 依赖、ONNX 模型仅 4 MB。
18
+
19
+ **English version**: [README.md](README.md)
20
+
21
+ ![验证码样例](assets/example_captcha.png)
22
+
23
+ ```
24
+ 示例输入 → 模型输出: 9125
25
+ ```
26
+
27
+ 这是 PHPWind 论坛软件的内置验证码组件(`PwVerifyCode` / `PwGDCode`),彩色数字、干扰线、扭曲都是它的标准特征。
28
+
29
+ ## 快速使用
30
+
31
+ ### Python (onnxruntime)
32
+
33
+ ```bash
34
+ pip install onnxruntime pillow numpy
35
+ ```
36
+
37
+ ```python
38
+ import numpy as np
39
+ import onnxruntime as ort
40
+ from PIL import Image
41
+
42
+ sess = ort.InferenceSession("model.onnx", providers=["CPUExecutionProvider"])
43
+
44
+ def solve(path):
45
+ im = Image.open(path).convert("RGB").resize((160, 64), Image.BILINEAR)
46
+ x = np.asarray(im, dtype=np.float32).transpose(2, 0, 1)[None] / 255.0
47
+ logits = sess.run(None, {"input": x})[0]
48
+ return "".join(str(int(logits[0, p].argmax())) for p in range(4))
49
+
50
+ print(solve("captcha.png")) # 例如 "9125"
51
+ ```
52
+
53
+ ### Go (onnxruntime_go)
54
+
55
+ 见 [docs/INFERENCE.md](docs/INFERENCE.md)。
56
+
57
+ ## 输入 / 输出规格
58
+
59
+ | 项 | 规格 |
60
+ |---|---|
61
+ | 输入 `input` | `[batch, 3, 64, 160]` float32,RGB,取值 `[0, 1]` |
62
+ | 输出 `logits` | `[batch, 4, 10]`,每位置 argmax → 数字 |
63
+ | ONNX opset | 18 |
64
+ | 预处理 | RGB → 缩放到 160x64(双线性)→ 除以 255 |
65
+
66
+ ## 评估结果
67
+
68
+ 用**真实论坛登录**作为 ground truth(登录成功 = 识别正确)。详见 [docs/EVALUATION.md](docs/EVALUATION.md)。
69
+
70
+ | 指标 | 数值 |
71
+ |---|---|
72
+ | 验证集精度 | 88.6% |
73
+ | 真实登录单次命中 | **87.6%** (85/97) |
74
+ | 带重试登录成功率 | ≈99.9997% |
75
+
76
+ ## 训练 / 微调
77
+
78
+ 997 张人工标注验证码,CNN 从零训练(位置保留架构)。
79
+
80
+ - 数据:`data/`(997 张已标注图片)
81
+ - 脚本:`scripts/train_fixed.py`
82
+ - 指南:[docs/TRAINING.md](docs/TRAINING.md)
83
+
84
+ ## 说明
85
+
86
+ - 验证码为 PHPWind 内置组件(非站点定制)。
87
+ - 不同 PHPWind 版本参数可能有差异,换站使用前建议对比样例确认风格。
88
+
89
+ ## 许可证
90
+
91
+ GNU AGPL-3.0 —— 可自由使用、修改、分发(含商用),但修改版/衍生作品必须同样以 AGPL 开源;网络服务使用也需提供源码。详见 [LICENSE](LICENSE)。