license: apache-2.0
language:
- ott
- tr
- ar
pipeline_tag: image-to-text
tags:
- ocr
- ottoman
- qwen
- vllm
- vision-language
metrics:
- accuracy
- cer
Azra 1-Mini (0.8B) — Osmanlıca OCR Modeli
Azra 1-Mini 0.8b, Osmanlıca metinlerin transkripsiyonu için Nesih (matbu/hat) ve Rika (el yazısı) yazı stillerinde özel olarak eğitilmiş, hafif ve yüksek performanslı bir Görsel-Dil (Vision-Language) OCR modelidir.
Sadece 0.8 milyar parametreye sahip olmasına rağmen Azra 1-Mini, kapalı kaynaklı dev modelleri geride bırakarak Osmanlıca OCR alanında State-of-the-Art (SOTA) başarı oranlarına ulaşmıştır.
⚠️ Önemli Kullanım Notu (Satır Bazlı Görseller): Bu model özellikle satır bazlı (line-level) kırpılmış görseller üzerinde eğitilmiş ve optimize edilmiştir. Tam sayfa (page-level) görseller satırlara bölünmeden doğrudan verildiğinde model beklenen yüksek başarıyı gösteremeyebilir.
📊 Benchmark ve Performans Karşılaştırması
Model, standart Osmanlıca test setlerinde dikey bazlı karakter başarı yüzdeleri (100% - CER) üzerinden önde gelen modellerle karşılaştırılmıştır.
1. Nesih Test Seti (Matbu / Hat Sanatı)
| Model | Başarı Yüzdesi (%) | Derece |
|---|---|---|
| Gemini 3.1 Pro | %82.82 | 👑 1. Sıra |
| Azra 1-Mini 0.8b | %80.23 | 🥈 2. Sıra |
| Qwen 3.8 Max | %74.26 | 🥉 3. Sıra |
2. Rika Test Seti (El Yazısı)
| Model | Başarı Yüzdesi (%) | Derece |
|---|---|---|
| Azra 1-Mini 0.8b | %67.08 | 👑 1. Sıra (Kazanan) |
| Gemini 3.1 Pro | %58.46 | 🥈 2. Sıra |
| Qwen 3.8 Max | %54.99 | 🥉 3. Sıra |
🌟 Öne Çıkan Başarı: Azra 1-Mini 0.8b, zorlu Rika el yazısı test setinde %67.08 başarı oranıyla 1. sıraya yerleşmiş, hem Gemini 3.1 Pro hem de Qwen 3.8 Max modellerine belirgin bir fark atmıştır.
📷 Örnek Transkripsiyonlar ve Görsel Çıktılar
Aşağıda Azra 1-Mini 0.8b modelinin test setlerinden elde ettiği yüksek başarımlı örnek transkripsiyonlar verilmiştir:
1. Nesih Yazı Stili Örnekleri (Matbu / Hat Sanatı)
| Satır Görseli | Gerçek Metin (Ground Truth) | Model Tahmini (Azra 1-Mini) | CER |
|---|---|---|---|
امّا اری وابدار ونازک اولور هر اعجک زمان غرسی |
امّا اری وابدار ونازک اولور هر اعجک زمان غرسی |
%0.00 | |
هلاک ایدر ازایسه علاج ایله خلاص اولور |
هلاک ایدر ازایسه علاج ایله خلاص اولور |
%0.00 | |
یافوجی ایچنه دوشرلر اوّل التنه وافرد وکلمش خردل |
یافوجی ایچنه دوشرلر اوّل التنه وافرد وکلمش خردل |
%0.00 | |
اغزی محکم باغلنوب اول بوداق اکلوب یره کوملسه وقت |
اغزی محکمه باغلنوب اول بوداق اکلوب یره کوملسه وقت |
%2.08 | |
دکمک زماندر دیمش یعنی آیک نقصانی زمانی که اوّل |
دکک زماندر دیمش یعنی آیک نقصانی زمانی که اوّل |
%2.17 |
2. Rika Yazı Stili Örnekleri (El Yazısı)
| Satır Görseli | Gerçek Metin (Ground Truth) | Model Tahmini (Azra 1-Mini) | CER |
|---|---|---|---|
دیمک طلب و دیانت بزدن، دین، شریعت، هدایت اللهدندر و بو هدایت ایکی |
دیک طلب و دیانت بزدن، دین، شریعت، هدایت اللهدندر۔ و بوهدایت ایکی |
%4.62 | |
ایتمک دون بنی تنویر ایدن کونشک یارین تنویر ایدهمیهجکنی ادعا ایتمک کبی قانون استقرایی انکاردر۔ |
ایتمک دوند بنی تنویر ایدن کونشک یارین تنویر ایدرمهجیکنی ادعا ایتمک کبی قانون استقرالی انکاردر۔ |
%5.38 | |
ایمانده نه قدر بیوک بر سعادت و نعمت؛ و نه قدر بیوک بر لذت و راحت بولوندیغنی اڭلامق |
ایمانده نه قدر یوک بر سعادت ونعمت و نه قدر یوک بر لذت و راحت بولوندیغی اشلامم |
%8.54 | |
”الله تعالی ابراهیم علیه السلامه وحی ایدوب دیدی که: اسماعیل حقندهکی دعاکی قبول ایتدم و اونی |
"الله تعالی ابراهیم علمه السلام دحی ایدوب دیدی کی: اسماعیل حقندهکی دعاک قبول ایتدم واولی |
%8.79 | |
بوراده مطلوب اولمامق لازم کلیر، فی الواقع "الصراط المستقیم" نظم جلیلی بزه علی الاطلاق |
بوراده مطلوب اولاسون لازم کلیر۔ فی الواقع "الصراط المستقیم" نظام جلیلی بزه علی الاطام |
%9.41 |
🚀 Kullanım Rehberi (transformers)
Modeli yerel makinenizde PyTorch ve Hugging Face transformers kütüphanesi kullanarak çalıştırmak için aşağıdaki standart kod bloğunu kullanabilirsiniz:
import os
import torch
from PIL import Image
from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration
from qwen_vl_utils import process_vision_info
# Cihaz ve Veri Tipi Ayarları
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.float16 if device == "cuda" else torch.float32
model_id = "OttomanNLP/Azra-1-Mini-0.8b"
print("[INFO] Model ve processor yükleniyor...")
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
model = Qwen3_5ForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=dtype,
device_map="auto" if device == "cuda" else None,
trust_remote_code=True
)
model.eval()
print("[INFO] Model başarıyla yüklendi!")
def extract_text(image_path: str, prompt: str = "Görseldeki Osmanlıca metni transkribe et:") -> str:
"""Satır bazlı görselden Osmanlıca metni transkribe eder"""
if not os.path.exists(image_path):
return f"Dosya bulunamadı: {image_path}"
image = Image.open(image_path).convert("RGB")
# Boyutları 64'ün katlarına ayarlama
w, h = image.size
new_w = ((w + 63) // 64) * 64
new_h = ((h + 63) // 64) * 64
if (new_w, new_h) != (w, h):
image = image.resize((new_w, new_h), Image.Resampling.LANCZOS)
messages = [{
"role": "user",
"content": [
{"type": "image", "image": image},
{"type": "text", "text": prompt}
]
}]
text_input = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, _ = process_vision_info(messages)
inputs = processor(
text=[text_input],
images=image_inputs,
padding=True,
return_tensors="pt"
).to(device)
with torch.inference_mode():
generated_ids = model.generate(
**inputs,
max_new_tokens=512,
do_sample=False,
repetition_penalty=1.2,
no_repeat_ngram_size=3,
pad_token_id=processor.tokenizer.pad_token_id,
eos_token_id=processor.tokenizer.eos_token_id,
)
input_len = inputs.input_ids.shape[1]
output_text = processor.batch_decode(
generated_ids[:, input_len:],
skip_special_tokens=True,
clean_up_tokenization_spaces=False
)[0]
return output_text.strip()
if __name__ == "__main__":
image_path = "osmanlica_satir_ornek.png" # Satır bazlı görsel yolu
metin = extract_text(image_path)
print("📝 Okunan Osmanlıca Metin:\n", metin)
🏷️ Model Detayları
- Geliştiren: OttomanNLP
- Yazarlar: Gökhan Usta, Oğuz Alpoğlu, Fatih Günaydın
- Model Tipi: Osmanlıca OCR için Görsel Dil Modeli (VLM)
- Desteklenen Diller: Osmanlı Türkçesi (Osmanlıca)
- Mimari: Qwen3.5-Vision
- Parametre Sayısı: ~0.8B (800 Milyon)
- Lisans: Apache-2.0
📚 Atıf (Citation)
Bu modeli veya çalışmamızı akademik araştırmalarınızda kullanıyorsanız, lütfen aşağıdaki makalemize atıfta bulununuz:
@article{usta2026cross,
title={Cross-Lingual Transfer Learning and Autonomous Data Bootstrapping for VLM-Based Ottoman Turkish Handwritten Text Recognition},
author={Usta, G{\"o}khan and Alpo{\u{g}}lu, O{\u{g}}uz and G{\"u}nayd{\i}n, Fatih},
journal={Research Square (Preprint)},
year={2026},
doi={10.21203/rs.3.rs-10418926/v1},
note={Under Review at International Journal on Document Analysis and Recognition (IJDAR)}
}
APA Formatı:
Usta, G., Alpoğlu, O., & Günaydın, F. (2026). Cross-Lingual Transfer Learning and Autonomous Data Bootstrapping for VLM-Based Ottoman Turkish Handwritten Text Recognition. Research Square Preprint. DOI: 10.21203/rs.3.rs-10418926/v1
📄 Lisans
Bu model Apache 2.0 Lisansı ile sunulmaktadır. Ticari ve akademik kullanıma tamamen açıktır.