Hansda/captcha-dataset
Synthetic CAPTCHA Dataset Synthetic distorted-text CAPTCHA images with exact character-string labels, used to fine-tune Hansda/minicpm-v4_6-captcha-lora. Contents Format: HuggingFace imagefolder (image, text columns), with metadata.jsonl per split. Splits: train (10,000) and test (2,000) — 12,000 images total. Labels: 4–7 characters from ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789 (visually ambiguous I O 0 1 l are excluded). Generation… See the full description on the dataset page: https://huggingface.co/datasets/Hansda/captcha-dataset.
Synthetic CAPTCHA Dataset
Synthetic distorted-text CAPTCHA images with exact character-string labels, used to fine-tune `Hansda/minicpm-v4_6-captcha-lora`.
Contents
- Format: HuggingFace
imagefolder(image,textcolumns), withmetadata.jsonlper split. - Splits:
train(10,000) andtest(2,000) — 12,000 images total. - Labels: 4–7 characters from
ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789(visually ambiguousI O 0 1 lare excluded).
Generation
Images are procedurally generated (Pillow + PyTorch) with per-character random font / size / rotation / shear / stretch, wave & bezier warping, background gradients and noise, random lines, curves and arcs, and varied colours — to mimic classic distorted-text CAPTCHAs.
Load
from datasets import load_dataset
ds = load_dataset("Hansda/captcha-dataset")
print(ds["train"][0]["text"], ds["train"][0]["image"].size)Note
The per-character size is randomized independently, so upper/lower case is not always visually separable for ambiguous glyphs (c/C, s/S, v/V, …). This makes strict case-sensitive scoring inherently hard; case-insensitive reading is the more reliable target.
