CoolFace
Datasetpublic

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.

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
1likes80downloads
Dataset Card

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

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

python
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.