Instructions to use PiotrSty/trocr-pl-base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use PiotrSty/trocr-pl-base with Transformers:
# Use a pipeline as a high-level helper # Warning: Pipeline type "image-to-text" is no longer supported in transformers v5. # You must load the model directly (see below) or downgrade to v4.x with: # 'pip install "transformers<5.0.0' from transformers import pipeline pipe = pipeline("image-to-text", model="PiotrSty/trocr-pl-base")# Load model directly from transformers import AutoTokenizer, AutoModelForMultimodalLM tokenizer = AutoTokenizer.from_pretrained("PiotrSty/trocr-pl-base") model = AutoModelForMultimodalLM.from_pretrained("PiotrSty/trocr-pl-base", device_map="auto") - Notebooks
- Google Colab
- Kaggle
TrOCR PL Base — experimental
Eksperymentalny checkpoint microsoft/trocr-base-printed dostrojony metodą
LoRA do drukowanego tekstu polskiego. Model przyjmuje obraz pojedynczej
linii, a nie całą stronę dokumentu.
Status
Experimental — nie jest jeszcze modelem produkcyjnym. Checkpoint wyraźnie poprawia angielski baseline na polskich liniach, ale pełny pipeline stron jest ograniczony przez segmentację i nie powinien być oceniany wynikiem samego recognizera.
Wyniki
| Zbiór | Zakres | CER | WER |
|---|---|---|---|
| syntetyczny validation | 200 linii | 4,86% | 21,41% |
real-lines-v1 |
75 ręcznie wyciętych realnych linii | 11,11% | 35,84% |
real-lines-v1, EN baseline |
te same 75 linii | 81,91% | 100,16% |
print-pilot-v1 |
2 pełne strony z OpenCV segmentacją | 66,17% | 86,08% |
Realne cropy pochodzą z dwóch historycznych polskich stron public domain. Referencje przygotował jeden autor bez niezależnej drugiej weryfikacji. Pełny wynik stron obejmuje detekcję, segmentację, kolejność i rozpoznawanie; nie jest wynikiem samego checkpointu.
Benchmark i predykcje: OCR_engine/benchmarks/real-lines-v1 oraz experiments/2026-09-13.
Trening
- baza:
microsoft/trocr-base-printed, rewizja93450be3f1ed40a930690d951ef3932687cc1892, - dane: PiotrSty/ocr-pl-lines, 2000 syntetycznych linii train + 200 validation,
- 3 epoki, batch 8 na T4 x2,
- LoRA dekodera attention (
q_proj,k_proj,v_proj,out_proj), - 3 047 424 trenowanych parametrów (0,9044%),
- najlepszy checkpoint wybrany po CER: epoka 3,
- Transformers 4.57.6, PEFT 0.19.1,
- jawnie wyrównana strata tokenowa, bez podwójnego przesunięcia etykiet.
Pełna proweniencja, hashe próbek i wersje pakietów znajdują się w run.json.
Adapter LoRA jest zachowany w adapter/; model główny jest scalony i można go
ładować bez PEFT.
Użycie
from PIL import Image
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
model_id = "PiotrSty/trocr-pl-base"
processor = TrOCRProcessor.from_pretrained(model_id)
model = VisionEncoderDecoderModel.from_pretrained(model_id)
image = Image.open("line.png").convert("RGB")
pixel_values = processor(image, return_tensors="pt").pixel_values
ids = model.generate(pixel_values, max_new_tokens=128)
print(processor.batch_decode(ids, skip_special_tokens=True)[0])
W silniku OCR model należy włączyć jawnie:
from ocr import OcrConfig, OcrEngine
config = OcrConfig(recognizer_pl="PiotrSty/trocr-pl-base", force_language="pl")
with OcrEngine(config) as engine:
result = engine.recognize("document.png")
Ograniczenia
- trenowany głównie na danych syntetycznych;
- przetestowany tylko na małym pilocie historycznego druku;
- niezweryfikowany na piśmie ręcznym, tabelach, formularzach i szerokim przekroju współczesnych dokumentów;
- wymaga poprawnych cropów pojedynczych linii;
- może degenerować na krótkich, zaszumionych liniach i znakach interpunkcyjnych;
- confidence jest sygnałem niepewności, a nie skalibrowanym prawdopodobieństwem.
- Downloads last month
- 32
Model tree for PiotrSty/trocr-pl-base
Base model
microsoft/trocr-base-printedEvaluation results
- CER on OCR Engine real-lines-v1self-reported0.111
- WER on OCR Engine real-lines-v1self-reported0.358