Upload docs/en/EVALUATION.md with huggingface_hub
Browse files- docs/en/EVALUATION.md +59 -0
docs/en/EVALUATION.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Evaluation
|
| 2 |
+
|
| 3 |
+
This document explains how the **87.6% login success rate** was measured, so the result is reproducible and trustworthy.
|
| 4 |
+
|
| 5 |
+
## Core principle
|
| 6 |
+
|
| 7 |
+
There is no public ground-truth dataset for this captcha, so we use **real forum logins** as the sole, 100%-reliable judge:
|
| 8 |
+
|
| 9 |
+
> **"Login success" from the forum = the model was correct**
|
| 10 |
+
> **"Code incorrect or expired" = the model was wrong**
|
| 11 |
+
|
| 12 |
+
Every attempt is a clean binary verdict — no subjective estimation.
|
| 13 |
+
|
| 14 |
+
## Test flow (per attempt)
|
| 15 |
+
|
| 16 |
+
1. Fetch the login page → parse the form and captcha URL (with session cookie)
|
| 17 |
+
2. Fetch the captcha image (timestamp-cache-busted, 150x60 PNG)
|
| 18 |
+
3. Model inference → 4 digits
|
| 19 |
+
4. Submit login (session cookie + hidden form fields + the code)
|
| 20 |
+
5. Read the forum response → success / "code incorrect"
|
| 21 |
+
6. Clear the local session → next attempt starts as a fresh guest
|
| 22 |
+
|
| 23 |
+
Guarantees:
|
| 24 |
+
- Each captcha is bound to its own session; recognition and submission are 1:1, no session mismatch
|
| 25 |
+
- Failed responses are dumped via `SP_DEBUG_LOGIN` and checked one by one to confirm genuine "code incorrect", not network/rate-limit pages
|
| 26 |
+
- Network-level interference is excluded from statistics
|
| 27 |
+
|
| 28 |
+
## Test environment
|
| 29 |
+
|
| 30 |
+
| Item | Value |
|
| 31 |
+
|---|---|
|
| 32 |
+
| Site | south-plus.net |
|
| 33 |
+
| Network | home IP + Cloudflare IP pinning (bypasses DNS poisoning) |
|
| 34 |
+
| Request interval | 7 seconds (respecting forum rate limits) |
|
| 35 |
+
| Account | a real, valid account |
|
| 36 |
+
| Model | captcha_1000_raw.onnx (88.6% val) |
|
| 37 |
+
|
| 38 |
+
## Results
|
| 39 |
+
|
| 40 |
+
**100 logins (final formal test)**
|
| 41 |
+
|
| 42 |
+
| Result | Count |
|
| 43 |
+
|---|---|
|
| 44 |
+
| Login success | **85** |
|
| 45 |
+
| Code incorrect | 12 |
|
| 46 |
+
| Rate-limited (excluded) | 3 |
|
| 47 |
+
| Valid total | **97** |
|
| 48 |
+
|
| 49 |
+
**Per-attempt success = 85/97 = 87.6%**
|
| 50 |
+
|
| 51 |
+
Early small sample: 13/15 = 86.7% (for reference).
|
| 52 |
+
|
| 53 |
+
**With retries**: `P(success within 6 tries) = 1 - (1 - 0.876)^6 ≈ 99.9997%` — about 3 in 10,000 logins fail after 6 retries.
|
| 54 |
+
|
| 55 |
+
## Confidence
|
| 56 |
+
|
| 57 |
+
- 100-attempt sample with hard binary verdicts → high statistical confidence
|
| 58 |
+
- Consistent with the 15-attempt sample (86.7%) → stable result
|
| 59 |
+
- Held-out validation set (79 images) at 88.6% cross-confirms the login figure (87.6%)
|