CoolFace
Modelpublic

Remidesbois/LightonOCR-2-1b-poneglyph

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes26downloads
Model Card

LightOnOCR-2-1B Poneglyph

Version fine-tunée de `lightonai/LightOnOCR-2-1B-base`, spécialisée dans la transcription OCR de bulles de manga françaises recadrées.

Ce modèle est entraîné directement depuis le modèle de base. Il ne reprend pas les poids d’un ancien fine-tune Poneglyph.

Résultats

Évaluation held-out sur 1 128 crops, avec une séparation stricte par page :

MétriqueRésultat
CER0,329 %
WER1,200 %
Exact match93,00 %
Blank rate0 %
Multiline rate0 %
Token-limit rate0 %

Les détails complets, les erreurs les plus difficiles et la comparaison au modèle publié sont disponibles dans `benchmark_test.json`. Le gate de qualité est conservé dans `quality_gate.json`.

Utilisation

python
from PIL import Image
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch

model_id = "Remidesbois/LightonOCR-2-1b-poneglyph"
processor = AutoProcessor.from_pretrained(model_id, fix_mistral_regex=True)
model = AutoModelForImageTextToText.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

image = Image.open("bubble.png").convert("RGB")
prompt = "Transcription OCR (uniquement le texte de la bulle, pas de suite) :"
messages = [{
    "role": "user",
    "content": [{"type": "image"}, {"type": "text", "text": prompt}],
}]
text = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
inputs = processor(text=[text], images=[image], return_tensors="pt").to(model.device)
with torch.inference_mode():
    output = model.generate(**inputs, max_new_tokens=128, do_sample=False)
print(processor.batch_decode(output[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)[0].strip())

Pour une RTX 3090, torch.bfloat16 est recommandé. Le modèle attend principalement un crop de bulle unique ; la détection et le découpage des bulles doivent être effectués en amont.

Fine-tuning

La recette rtx3090-base-dora-v5 utilise un entraînement LoRA/DoRA depuis le modèle de base : rang 65, alpha 130, cibles attention/MLP et lm_head, BF16, SDPA, AdamW fusionné, longueur d’image maximale 700 px et longueur de génération maximale 128 tokens. Les transcriptions d’un seul caractère sont conservées.

Les paramètres exacts sont archivés dans `training_recipe.json`. Les fichiers de benchmark sont fournis pour rendre les chiffres reproductibles.

Limites

Les métriques sont mesurées sur le jeu de test du corpus Poneglyph et ne constituent pas une garantie de performance sur d’autres mangas, langues, polices ou mises en page. Le modèle ne réalise pas la détection de bulles et ne fournit pas de bounding boxes.