OCR Digits Captcha

A TrOCR model fine-tuned to recognize short numeric captchas of 4 or 5 digits such as 4829 and 50942.

Digits captcha Digits captcha
Digits captcha Digits captcha

Model details

  • Architecture: Vision Encoder-Decoder / TrOCR
  • Base model: microsoft/trocr-base-printed
  • Task: Image-to-text OCR
  • Target geometry: 145x56 and 120x48 RGB images
  • Output: Digit strings of 4 or 5 digits

Training configuration

Parameter Value
Epochs 6
Learning rate 2e-5
Batch size 8
Gradient accumulation 2
Weight decay 0.01
Generation beams 4
Maximum output length 16

Evaluation

The model was trained and evaluated on synthetic captchas generated at the target size and format. Real-world accuracy was not measured on a held-out real set, so the scores below do not prove it.

Split Samples Exact match Character accuracy
Validation 1500 99.93% 99.98%
Synthetic test 750 100.00% 100.00%

Usage

from PIL import Image
from transformers import TrOCRProcessor, VisionEncoderDecoderModel

repo_id = "arkhabbazan/ocr-digits-captcha"
processor = TrOCRProcessor.from_pretrained(repo_id)
model = VisionEncoderDecoderModel.from_pretrained(repo_id).eval()

image = Image.open("captcha.png").convert("RGBA")
white = Image.new("RGBA", image.size, (255, 255, 255, 255))
white.alpha_composite(image)
pixel_values = processor(images=white.convert("RGB"), return_tensors="pt").pixel_values
generated_ids = model.generate(pixel_values, num_beams=4, max_length=16)
prediction = processor.batch_decode(
    generated_ids, skip_special_tokens=True
)[0]
print(prediction.replace(" ", ""))

Limitations

  • Training data is primarily synthetic.
  • Unseen fonts and layouts may reduce accuracy.
  • The model is intended for short digit strings, not document OCR.
  • Usage must be authorized and compliant with applicable policies.
Downloads last month
102
Safetensors
Model size
0.3B params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for arkhabbazan/ocr-digits-captcha

Finetuned
(28)
this model