TurkceOCR
Turkish document OCR, algorithmic checksum and financial verification (TurkceVerify), legal and commercial entity recognition (ictihat_core × ersanbil/kvkk-pii-ner), and 2D #000000 visual redaction (VisualRedactor).
This repository bundles the Phase-2 line recognition checkpoint (line_svtrv2/), the page-layout LoRA adapter (vlm_lora/), the configuration manifests (pipeline_config.json, configs/), and the Python inference and post-processing package (turkceocr/).
Architecture
| Component |
Details |
| Visual pre-processing |
Adaptive 2.0×–2.5× Lanczos upscaling for low-resolution scans (W < 1000 px); morphological table-grid removal (40×1 and 1×40 opening kernels on dark neutral lines); .docx embedded .emf/.wmf vector table rasterization at 240–300 DPI |
Line recognizer (line_svtrv2/) |
SVTRv2-Turkish-SGM v2 (~12 M parameters, (H=48, W=384) input, T=96 time steps): 2D-STN rectification + multi-scale conv/transformer encoder + CTC head + Turkish morphological SGM auxiliary head, trained with TurkishCharacterConfusionFocalLoss (γ = 2.5) on 2,750 real PDF and archival lines |
Page layout adapter (vlm_lora/) |
Qwen2.5-VL-3B-LoRA v2 (r = 16, α = 32) with 31 structural and Turkish diacritic tokens (<doc>, <region>, <table_md>, <kv>, <stamp>, <signature/>, <handwriting>, <marginalia>) and RLVR verifiable-reward alignment |
Constrained verifier (TurkceVerify) |
Deterministic Mod-10 / parity check and 1-edit visual-confusion lattice repair for TCKN and Foreign ID (99), GİB Mod-10 for VKN, TCMB reserve-0 + ISO-7064 Mod-97-10 for TR IBAN, and linear invoice solver (Matrah + KDV = Toplam for r ∈ {1%, 10%, 20%}) |
Repetition guard (RepetitionGuard) |
4–8 token periodic loop truncation (≥ 5 repeats) with alphabetic-diversity exemption for Rekabet Kurumu ` |
Entity engine (UnifiedTurkishEntityEngine) |
25+ entity classes combining ictihat_core legal recognizers (calibrated on hamzabagirsakci/turkish-court-decisions) with ersanbil/kvkk-pii-ner (v2.0, 13 BIO classes, 512-token sliding window with stride 128), fold_tr_isomorphic 1:1 offset mapping, hierarchical span subsumption, and two-tier fail-closed SUSPECT_PII detection |
2D visual redactor (VisualRedactor) |
Monotonic OffsetMap (π: norm → raw) character-to-pixel projection with proportional typographic character widths and irreversible #000000 (RGB 0,0,0) box fill over text PII and visual regions (VISUAL_SIGNATURE, VISUAL_STAMP, VISUAL_QRCODE, VISUAL_PHOTO) |
1. Genel Bakış ve Motivasyon
Çok dilli genel amaçlı OCR motorları (Tesseract, PaddleOCR) ve görsel-dil modelleri (Hunyuan-OCR, Qwen2.5-VL, LightOnOCR), Türkçe kurumsal, hukuki, finansal ve arşiv belgelerinde dört temel yapısal darboğaz nedeniyle hata üretir:
- Türkçe Ortografik ve Morfolojik Çöküş (
I/İ/ı/i ve Ek Zincirleri):
Türkçedeki dört yönlü noktalı/noktasız I/İ/ı/i ayrımı, çengel/nokta diakritikleri (ğ, ü, ş, ö, ç) ve şapkalı ünlülerin (â, î, û) düşük çözünürlüklü faks/tarama veya 1-bit arşiv görüntülerinde (551×790 Resmî Gazete GIF'leri, 203 DPI termal POS fişleri) silinmesi, sondan eklemeli (agglutinative) Türkçe kelimelerde (mamelekiyle → meleklemiyle, fesih ↔ feshin geçersizliğine) anlamı değiştiren hatalara yol açar.
- VLM Tekrar Döngüleri (
Repetition Loops) ve Sütun Kaybı:
Gerçek saha denetimimizde, VLM tabanlı OCR modellerinin 9 sütunlu .emf vektör enerji tarife tablolarında 9 sütunun 8'ini düşürdüğü (CER = 45.78%), 2001 yılı Resmî Gazete arşiv GIF'lerinde ise yorum halüsinasyonu ürettiği veya 6-gram tekrar döngüsüne girerek sayfanın %51–%83'ünü kaybettiği (CER = 32.33%) ölçülmüştür.
- Algoritmik Sağlama Eksikliği:
Standart OCR motorları
1O000000146 veya 10000000148 gibi tek karakteri bozulmuş bir TCKN / VKN / IBAN numarasını veya Matrah + KDV ≠ Genel Toplam olan bir faturayı olduğu gibi dışarı aktarır. Oysa Türkiye'deki resmi numaralar matematiksel değişmezlere (NVİ Mod-10 + çiftlik, GİB Mod-10, TCMB ISO-7064 Mod-97-10) tabidir.
- KVKK (6698 Sayılı Kanun) ve Görsel Karartma İhtiyacı:
Mahkeme kararları, bilirkişi raporları ve kurumsal sözleşmeler paylaşılırken yalnızca metin içindeki bilinen TCKN'leri maskelemek yeterli değildir; OCR bozulması yüzünden sağlamadan geçemeyen şüpheli adayların (
<TR_TCKN_SUSPECT>) yakalanması ve belge görüntüsü üzerindeki PII kutularının, ıslak imzaların, kaşelerin ve karekodların 2B piksel uzayında tam siyah (#000000) ile karartılması gerekir.
2. Mimari ve Matematiksel Formülasyon
[Girdi Belgesi: PDF / TIFF / GIF / PNG / DOCX Media (.emf/.wmf)]
│
▼
[Katman 1: Görsel Ön-İşleme & Fotometrik Normalizasyon]
• Adaptif Süper-Çözünürlük (2.0×–2.5× Lanczos, W < 1000 px)
• Aydınlatma Bölme Normalizasyonu (Gauss σ = 51) & Islak Mühür Bastırma (‖∇I‖ < 65)
• Boyut Korumalı Morfolojik Tablo Izgara Temizliği (120×1 & 1×100) + .emf/.wmf Rasterizasyon
│
▼
[Katman 2: Hibrit Görsel OCR Çekirdeği]
• SVTRv2-Turkish-SGM v2 Satır Motoru (~12M param, Dinamik Genişlik T = W/4, γ = 2.5 Focal Loss)
• Qwen2.5-VL-3B-LoRA v2 Sayfa Düzeni Adaptörü (r = 16, α = 32, 31 Yapısal Token, RLVR = 0.9978)
• Sütun Oluğu (Column Gutter) & Boşluk Vadisi (Whitespace-Valley) Bölütleme + Çoklu-PSM Düzen
│
▼
[Katman 3: Deterministik Doğrulama & Döngü Koruması]
• RepetitionGuard: 4..8-gram Tekrar Döngüsü Kesici (≥ 5 tekrar, | (.....) | Ticari Sır Muafiyetli)
• TurkceVerify: NVİ TCKN/YKN Mod-10, GİB VKN Mod-10, TCMB IBAN Mod-97-10 + KDV Denklem Çözücü
│
▼
[Katman 4: Hukuki/KVKK Varlık Çıkarımı & 2B #000000 Görsel Karartma]
• UnifiedTurkishEntityEngine: ictihat_core + ersanbil/kvkk-pii-ner v2.0 (13 BIO, 25+ Varlık Sınıfı)
• VisualRedactor: Monotonik OffsetMap (π: norm → raw) + Geri Döndürülemez #000000 (RGB 0,0,0) Karartma
2.1 Katman 1 — Görsel Ön-İşleme, Tablo Izgara Temizliği ve SVTRv2-Turkish-SGM v2 Satır Motoru
- Adaptif Süper-Çözünürlük ve Morfolojik Izgara Silme:
- Düşük çözünürlüklü arşiv belgeleri (
W < 1000 px, örn. 551×790 2001 yılı Resmî Gazete 1-bit GIF'leri ve gömülü .docx tabloları) 2.0×–2.5× Lanczos enterpolasyonu ile ölçeklenir.
- Tablo hücre sınırlarının Türkçe çengel/nokta diakritikleriyle (
Ş, Ğ, Ç, İ, Ö, Ü) kaynaşmasını önlemek için yalnızca koyu siyah ızgara çizgileri (Gray < 120, max(R,G,B) - min(R,G,B) < 25) yatay (40×1 / 120×1) ve dikey (1×40 / 1×100) morfolojik açma (opening) çekirdekleriyle temizlenir; renkli başlık dolguları korunur.
.docx içine gömülü Windows Metafile (.emf / .wmf) vektör tabloları PIL.ImageGrab / GDI+ üzerinden yüksek çözünürlüklü (240–300 DPI) RGB matrise rasterize edilir.
SVTRv2-Turkish-SGM v2 (line_svtrv2/model.safetensors, ~12M Parametre):
2.2 Katman 2 — Qwen2.5-VL-3B-LoRA v2 Sayfa Düzeni ve RLVR Doğrulanabilir Ödül Hizalaması
vlm_lora/model.safetensors ağırlıkları, çok sütunlu Resmî Gazete sayfaları, kaşeli mahkeme kararları ve karmaşık ERP tablolarında okuma sırası (RO-NED) ve yapısal Markdown/HTML tablo (TEDS) üretimi için r = 16, α = 32 LoRA adaptörleri ve 31 özel yapısal/diakritik token (<doc>, </doc>, <region>, <table_md>, <kv>, <stamp>, <signature/>, <handwriting>, <marginalia>, <checkbox_checked/>, <checkbox_unchecked/> vb.) ile eğitilmiştir.
- RLVR (Reinforcement Learning with Verifiable Rewards): Model çıktıları,
TurkceVerify sağlama başarısı ve TEDS ağaç düzenleme mesafesinden türetilen doğrulanabilir ödül fonksiyonu ile hizalanmıştır (Son RLVR Ödülü: 0.9978).
2.3 Katman 3 — TurkceVerify Algoritmik Sağlama Kafesi ve Cebirsel Finansal Denklem Çözücü
turkceocr/postprocess/turkceverify.py modülü, OCR çıktısındaki resmi numaraları ve finansal tabloları deterministik olarak doğrular ve 1-edit görsel karışıklık kafesi (O ↔ 0, I/İ/l ↔ 1, S/Ş ↔ 5, B ↔ 8, G/Ğ ↔ 6, Z ↔ 2) üzerinde otomatik onarır:
- T.C. Kimlik Numarası (TCKN) & Yabancı Kimlik Numarası (
99):
11 haneli d_1 d_2 ... d_11 dizisi için (d_1 ≠ 0):d_10 = ( 7 × (d_1 + d_3 + d_5 + d_7 + d_9) - (d_2 + d_4 + d_6 + d_8) ) mod 10
d_11 = ( d_1 + d_2 + ... + d_10 ) mod 10, d_11 mod 2 == 0
Kritik Güvenlik Onarımı: 99 ile başlayan Yabancı Kimlik Numaraları dahil tüm 11 haneli adaylarda NVİ Mod-10 ve çiftlik kontrolü zorunludur.
- Vergi Kimlik Numarası (VKN — GİB Mod-10):
10 haneli
v_1 v_2 ... v_10 dizisi için i ∈ {1..9} adımlarında:t_i = (v_i + 10 - i) mod 10
c_i = 0 eğer t_i == 0
= 9 eğer t_i ≠ 0 ve (t_i × 2^(10-i)) mod 9 == 0
= (t_i × 2^(10-i)) mod 9 diğer durumlarda
v_10 = (10 - ((c_1 + c_2 + ... + c_9) mod 10)) mod 10
- TR IBAN (TCMB Rezerv
'0' + ISO-7064 Mod-97-10):
26 karakterli TRkk bbbb brrr cccc cccc cccc cc dizisinde 10. karakterin rezerv '0' (clean[9] == '0') olması ve ilk 4 karakter sona taşınıp harfler sayıya (T = 29, R = 27) dönüştürüldüğünde:int(Rearranged_IBAN) mod 97 == 1
- Cebirsel KDV & Fatura Denklem Çözücü:
Fatura satırlarında ve dip toplamlarında Türkiye KDV oranları (
r ∈ {1%, 10%, 20%}) için:Matrah + KDV = Genel Toplam, KDV = round(Matrah × r, 2)
denklemlerini sağlamayan OCR rakam hatalarını (örn. 2.800,00 TL olarak okunan matrahın KDV = 400,00 TL ve Toplam = 2.400,00 TL kısıtlarından 2.000,00 TL olarak tekil çözümü) cebirsel olarak onarır.
2.4 Katman 4 — RepetitionGuard, UnifiedTurkishEntityEngine (ictihat_core × kvkk-pii v2.0) ve VisualRedactor
RepetitionGuard (turkceocr/postprocess/repetition_guard.py — KPI-14):
- VLM'lerin 4..8 kelimelik kalıpları
≥ 5 kez ardışık tekrarladığı dejenerasyon döngülerini (yibk-30463 Sayfa 2'deki 28× tekrar döngüsü gibi) anında tespit edip keser (loop_rate: 0.8696 → 0.0000).
- Rekabet Kurumu Ticari Sır Muafiyeti: Rekabet Kurumu kararlarında tek dosyada 4.157 kez geçebilen
| (.....) | (.....) | ticari sır maskeleme tablolarını alfabetik çeşitlilik filtresiyle (len({s for s in kalip if any(c.isalpha() for c in s)}) < 3) döngü sanıp kesmez (%0.00 yanlış pozitif).
UnifiedTurkishEntityEngine (turkceocr/postprocess/entity_engine.py):
- İki Katmanlı Fail-Closed Mimari (
VERIFIED_PII + SUSPECT_PII): Algoritmik sağlamadan geçen veya 1-edit ile onarılan kimlik/hesap numaralarını VERIFIED_PII (confidence ≥ 0.95) olarak; çoklu OCR bozulması nedeniyle sağlamadan geçemeyen ancak sol bağlam penceresinde TCKN:, T.C. Kimlik No:, Vergi No:, IBAN: etiketi bulunan adayları ise asla düşürmeyip <TR_TCKN_SUSPECT> / <TR_VKN_SUSPECT> / <TR_IBAN_SUSPECT> (tier="SUSPECT_PII") olarak yakalar.
- 1:1 İzomorfik Türkçe Katlama (
fold_tr_isomorphic): İ → i, I → ı dönüşümünü Python 'İ'.lower() == 'i\u0307' (2 karakter!) hatasına düşmeden 1:1 karakter uzunluğu değişmezliği (len(folded) == len(raw)) ile yapar; böylece regex ve NER span ofsetleri orijinal metinle milimetrik hizalanır.
- Hiyerarşik Span Kapsama (
Hierarchical Span Subsumption): Tam adres (ADDRESS) veya şirket unvanı (ORG_COMPANY) içindeki alt parçaların (Mahallesi, No: 14, Yılmaz) tek başına parçalı etiketlenmesini önler.
VisualRedactor (turkceocr/postprocess/visual_redactor.py — 2B #000000 Karartma):
OffsetMap (π: norm_idx → raw_idx) monotonik hizalama vektörü ve tipografik karakter genişlik ağırlıkları (W/M/@: 1.35, i/ı/l/1/.,:;: 0.45) ile metin span'larını [x_1, y_1, x_2, y_2] piksel koordinatlarına izdüşürür.
- Tespit edilen PII bölgelerini, ıslak imzaları (
VISUAL_SIGNATURE), kaşeleri (VISUAL_STAMP), karekodları (VISUAL_QRCODE) ve vesikalık fotoğrafları (VISUAL_PHOTO) geri döndürülemez tam siyah (RGB = 0, 0, 0 / #000000) dikdörtgenlerle kapatır.
3. Kapsamlı Kıyaslama (Benchmark) Sonuçları
3.1 TurkExternalBlindBench-v1: 35 Gerçek Saha Sayfası × 9 Motor (Tam Liderlik ve Kategori Kırılımı)
TurkExternalBlindBench-v1, hiçbir sentetik şablon içermeyen, doğrudan hamzabagirsakci/turkish-court-decisions ve kamu mevzuat/karar arşivlerinden seçilmiş 35 gerçek belge sayfasından (5 kategori × 7 örnek, toplam 93.165 gerçek karakter) oluşur.
Tablo 3.1A — Tüm 35 Gerçek Sayfa Üzerinde Genel Liderlik Tablosu (N = 35)
| Sıra |
Motor Kodu & Yapılandırma |
Örnek (N) |
Ortalama CER (↓) |
Ortalama WER (↓) |
Diacritic F1 (↑) |
KPI-14 Döngü Oranı (↓) |
Açıklama |
| 1 |
E7_TurkceOCR_Full_System |
35 |
0.0176 (1.76%) |
0.0757 (7.57%) |
0.9867 (98.67%) |
0.0000 |
E6 + RepetitionGuard + TurkceVerify (TCKN/VKN/IBAN + Finansal + Hukuki Onarım) + UnifiedTurkishEntityEngine + VisualRedactor |
| 2 |
E6_TurkceOCR_Visual_v1 |
35 |
0.0178 (1.78%) |
0.0767 (7.67%) |
0.9867 (98.67%) |
0.0000 |
Adaptif 2×/2.5× Lanczos süper-çözünürlük + morfolojik tablo ızgara temizliği + aydınlatma bölme normalizasyonu + mühür bastırma (Son-işleme kapalı) |
| 3 |
E4_Tesseract5_tur_Raw |
35 |
0.0418 (4.18%) |
0.1061 (10.61%) |
0.9741 (97.41%) |
0.0000 |
Resmi tesseract.exe v5.4.0 (-l tur --psm 3), ham 1× görüntü |
| 4 |
E3_Tesseract5_eng |
35 |
0.1303 (13.03%) |
0.4834 (48.34%) |
0.0000 (0.00%) |
0.0000 |
Resmi tesseract.exe v5.4.0 (-l eng --psm 3), Türkçe diakritiksiz baz |
| 5 |
E2c_SVTRv2_Line_v2_Phase2 |
35 (215 satır) |
0.5234 (0.2450 satır) |
0.9561 (0.8183 satır) |
0.3378 (0.5427 satır) |
0.0000 |
Faz-2 40-epoch saf nöral CTC TurkceOCRLine + Faz-3 Boşluk Vadisi (Whitespace-Valley) bölütleyici (dil modeli yok) |
| 6 |
E1_PyMuPDF_Digital |
35 |
0.6055 (60.55%) |
0.6537 (65.37%) |
0.4015 (40.15%) |
0.0000 |
fitz dijital metin çıkarımı (21 taranmış/GIF/DOCX sayfasında 0 karakter; 1999 PDF'lerinde t a r i h l i harf ayrışma bozulması) |
| 7 |
E2b_SVTRv2_Line_v1_BlankSuppressed |
35 |
0.9916 (99.16%) |
0.9997 (99.97%) |
0.0000 (0.00%) |
0.0000 |
Faz-1 40-adım sentetik model (<blank> logit -2.0 bastırmalı) |
| 8 |
E2_SVTRv2_Line_v1_40Step_Greedy |
35 |
1.0000 (100.00%) |
1.0000 (100.00%) |
0.0000 (0.00%) |
0.0000 |
Faz-1 40-adım sentetik model (%76.98 <blank> çöküşü — Faz-2'de tamamen çözüldü) |
Tablo 3.1B — Taranmış/Arşiv Alt Kümesinde Hunyuan-OCR VLM ile Birebir Karşılaştırma (N = 18)
| Sıra |
Motor Kodu |
Örnek (N) |
Ortalama CER (↓) |
Ortalama WER (↓) |
Diacritic F1 (↑) |
Hunyuan-OCR'a Göre Bağıl Hata Azaltımı |
| 1 |
E7_TurkceOCR_Full_System |
18 |
0.0200 (2.00%) |
0.0699 (6.99%) |
0.9827 (98.27%) |
-87.38% (7.93× daha düşük CER) |
| 2 |
E6_TurkceOCR_Visual_v1 |
18 |
0.0203 (2.03%) |
0.0713 (7.13%) |
0.9827 (98.27%) |
-87.19% (7.81× daha düşük CER) |
| 3 |
E4_Tesseract5_tur_Raw |
18 |
0.0625 (6.25%) |
0.1238 (12.38%) |
0.9590 (95.90%) |
-60.57% (2.54× daha düşük CER) |
| 4 |
E5_Hunyuan_VLM_Archive |
18 |
0.1585 (15.85%) |
0.1823 (18.23%) |
0.8930 (89.30%) |
Baz VLM (0.00%) |
Tablo 3.1C — 5 Gerçek Belge Kategorisi Bazında Özet Performans (7 Örnek / Kategori)
Kategori (7 örnek / kategori) |
E1_PyMuPDF CER |
E2c_SVTRv2_v2 CER |
E3_Tess_eng CER |
E4_Tess_tur CER |
E5_Hunyuan CER |
E6_Visual_v1 CER |
E7_Full_System CER |
E7 Diacritic F1 |
Kategori Kazananı |
cat1_rekabet_pdf (Rekabet Kurumu Kararları) |
0.2857 |
0.4276 |
0.0961 |
0.0194 |
0.0339 (N=2) |
0.0118 |
0.0117 |
0.9908 |
TürkçeOCR Full (1.17%) |
cat2_rg_yibk_pdf (Resmî Gazete YİBK & 1999 Arşiv) |
0.7419 |
0.5011 |
0.1391 |
0.0351 |
0.0110 (N=5) |
0.0244 |
0.0244 |
0.9833 |
Hunyuan-OCR (1.10% modern) / TürkçeOCR (2.44% 1999 Courier + Mühür) |
cat3_mevzuat_pdf (HUMK, Avukatlık K., CMUK, HMK) |
0.0000 (Dijital) |
0.5295 |
0.1050 |
0.0140 |
Yok |
0.0076 |
0.0076 |
0.9985 |
TürkçeOCR Full (0.76% görsel) |
cat4_rg_2001_gif (2001 Arşiv 551×790 1-Bit GIF) |
1.0000 |
0.4980 |
0.1063 |
0.0107 |
0.3233 (N=7) |
0.0035 |
0.0028 |
0.9979 |
TürkçeOCR Full (0.28% — 115× Hunyuan üstünlüğü) |
cat5_epdk_rapor (EPDK .docx/.emf Tablo & Mahkeme PII) |
1.0000 |
0.6607 |
0.2049 |
0.1297 |
0.1169 (N=4) |
0.0417 |
0.0414 |
0.9629 |
TürkçeOCR Full (4.14%) |
| Tüm 35 Gerçek Örnek Ortalaması |
0.6055 |
0.5234 |
0.1303 |
0.0418 |
0.1585 (N=18) |
0.0178 |
0.0176 |
0.9867 |
TürkçeOCR Full (1.76%) |
Tablo 3.1D — Kategori 1 (cat1_rekabet_pdf — Rekabet Kurumu Kararları) Sayfa Bazlı Adli Kırılım
| Örnek Kodu |
Kaynak Dosya & Sayfa |
GT Karakter |
E1_PyMuPDF CER |
E2c_SVTRv2_v2 CER |
E4_Tess_tur CER |
E5_Hunyuan CER |
E7_Full CER |
E7 Diac-F1 |
cat1_rekabet_d1ec1287_p0 |
d1ec1287...pdf p0 |
2,750 |
0.0000 |
0.4898 |
0.0160 |
— |
0.0087 |
0.9898 |
cat1_rekabet_0008dcd7_p0 |
0008dcd7...pdf p0 |
2,146 |
0.0000 |
0.4357 |
0.0177 |
— |
0.0233 |
0.9904 |
cat1_rekabet_000c7b90_p0 |
000c7b90...pdf p0 |
2,653 |
0.0000 |
0.3732 |
0.0192 |
— |
0.0083 |
0.9890 |
cat1_rekabet_0016a1a9_p0 |
0016a1a9...pdf p0 |
2,285 |
0.0000 |
0.4026 |
0.0241 |
— |
0.0044 |
0.9971 |
cat1_rekabet_d1ec1287_p5_table |
d1ec1287...pdf p5 (Tablo) |
3,691 |
0.0000 |
0.4389 |
0.0176 |
— |
0.0079 |
0.9966 |
cat1_rekabet_7dd75c43_p0_scan |
7dd75c43...pdf p0 (Tarama) |
2,609 |
1.0000 |
0.4094 |
0.0180 |
0.0678 |
0.0126 |
0.9943 |
cat1_rekabet_10687ee0_p0_scan |
10687ee0...pdf p0 (Tarama) |
2,741 |
1.0000 |
0.4436 |
0.0230 |
0.0000 |
0.0164 |
0.9786 |
| Kategori 1 Ortalama |
7 Rekabet Kurumu Sayfası |
18,875 |
0.2857 |
0.4276 |
0.0194 |
0.0339 |
0.0117 |
0.9908 |
Tablo 3.1E — Kategori 2 (cat2_rg_yibk_pdf — Resmî Gazete YİBK & 1999 Arşiv Courier) Sayfa Bazlı Adli Kırılım
| Örnek Kodu |
Kaynak Dosya & Sayfa |
GT Karakter |
E1_PyMuPDF CER |
E2c_SVTRv2_v2 CER |
E4_Tess_tur CER |
E5_Hunyuan CER |
E7_Full CER |
E7 Diac-F1 |
cat2_rg_yibk_20190314_15_p0 |
20190314-15.pdf p0 |
3,251 |
0.9711 |
0.3962 |
0.0209 |
0.0034 |
0.0148 |
0.9915 |
cat2_rg_yibk_20180629_16_p0_stamp |
20180629-16.pdf p0 (Islak Mühür) |
4,981 |
0.9788 |
0.4650 |
0.0719 |
0.0361 |
0.0616 |
0.9662 |
cat2_rg_yibk_20190620_10_p0 |
20190620-10.pdf p0 |
4,316 |
0.9746 |
0.3304 |
0.0042 |
0.0132 |
0.0037 |
0.9971 |
cat2_rg_yibk_20200117_21_p0 |
20200117-21.pdf p0 |
1,926 |
0.9756 |
0.4008 |
0.0083 |
0.0016 |
0.0083 |
0.9898 |
cat2_rg_yibk_20200630_17_p0 |
20200630-17.pdf p0 |
1,607 |
0.9756 |
0.6584 |
0.0940 |
0.0006 |
0.0317 |
0.9801 |
cat2_rg_yibk_23687_p42_1999 |
23687.pdf p42 (1999 Courier) |
2,226 |
0.1584 (t a r i h l i) |
0.6141 |
0.0211 |
— |
0.0270 |
0.9771 |
cat2_rg_yibk_23687_p43_1999 |
23687.pdf p43 (1999 Courier) |
3,794 |
0.1590 (e c r i m i s i l) |
0.6431 |
0.0250 |
— |
0.0235 |
0.9810 |
| Kategori 2 Ortalama |
7 Resmî Gazete YİBK Sayfası |
22,101 |
0.7419 |
0.5011 |
0.0351 |
0.0110 |
0.0244 |
0.9833 |
Tablo 3.1F — Kategori 3 (cat3_mevzuat_pdf — HUMK, Avukatlık Kanunu, CMUK, HMK) Sayfa Bazlı Adli Kırılım
| Örnek Kodu |
Kaynak Kanun & Sayfa |
GT Karakter |
E1_PyMuPDF CER |
E2c_SVTRv2_v2 CER |
E3_Tess_eng CER |
E4_Tess_tur CER |
E7_Full CER |
E7 Diac-F1 |
cat3_mevzuat_1086_p0 |
1086.pdf p0 (HUMK) |
2,828 |
0.0000 |
0.6464 |
0.1045 |
0.0057 |
0.0057 |
0.9976 |
cat3_mevzuat_1086_p1 |
1086.pdf p1 (HUMK) |
2,508 |
0.0000 |
0.4458 |
0.1018 |
0.0132 |
0.0132 |
1.0000 |
cat3_mevzuat_1136_p0 |
1136.pdf p0 (Avukatlık K.) |
1,507 |
0.0000 |
0.5216 |
0.1051 |
0.0027 |
0.0027 |
0.9957 |
cat3_mevzuat_1136_p1 |
1136.pdf p1 (Avukatlık K.) |
2,548 |
0.0000 |
0.4407 |
0.1110 |
0.0024 |
0.0024 |
1.0000 |
cat3_mevzuat_1412_p0 |
1412.pdf p0 (CMUK) |
1,525 |
0.0000 |
0.6682 |
0.1107 |
0.0643 |
0.0197 |
1.0000 |
cat3_mevzuat_1412_p1 |
1412.pdf p1 (CMUK) |
2,376 |
0.0000 |
0.4609 |
0.0926 |
0.0076 |
0.0076 |
1.0000 |
cat3_mevzuat_6100_p0 |
6100.pdf p0 (HMK) |
1,596 |
0.0000 |
0.5226 |
0.1096 |
0.0019 |
0.0019 |
0.9964 |
| Kategori 3 Ortalama |
7 Mevzuat Kanun Sayfası |
14,888 |
0.0000 |
0.5295 |
0.1050 |
0.0140 |
0.0076 |
0.9985 |
Tablo 3.1G — Kategori 4 (cat4_rg_2001_gif — 2001 Arşiv 551×790 1-Bit GIF) Sayfa Bazlı Adli Kırılım
| Örnek Kodu |
Kaynak Dosya (551×790 1-bit) |
GT Karakter |
E3_Tess_eng CER |
E4_Tess_tur CER |
E5_Hunyuan CER |
E6_Visual_v1 CER |
E7_Full CER |
E7 Diac-F1 |
cat4_rg_20011118_8 |
20011118-8.gif (Sayfa 1) |
3,000 |
0.1227 |
0.0190 |
0.3133 |
0.0047 |
0.0047 |
0.9982 |
cat4_rg_20011118_9 |
20011118-9.gif (Sayfa 2) |
3,897 |
0.1050 |
0.0118 |
0.2027 |
0.0028 |
0.0028 |
0.9957 |
cat4_rg_20011118_10 |
20011118-10.gif (Sayfa 3) |
3,948 |
0.1007 |
0.0073 |
0.1408 |
0.0051 |
0.0041 |
0.9968 |
cat4_rg_20011118_11 |
20011118-11.gif (Sayfa 4) |
3,893 |
0.1017 |
0.0054 |
0.5058 |
0.0036 |
0.0033 |
1.0000 |
cat4_rg_20011118_12 |
20011118-12.gif (Sayfa 5) |
3,568 |
0.1086 |
0.0095 |
0.0429 |
0.0008 |
0.0008 |
0.9964 |
cat4_rg_20011118_13 |
20011118-13.gif (Sayfa 6) |
3,073 |
0.0970 |
0.0166 |
0.8353 |
0.0052 |
0.0033 |
0.9980 |
cat4_rg_20011118_17 |
20011118-17.gif (Sayfa 10) |
2,906 |
0.1088 |
0.0055 |
0.2226 |
0.0021 |
0.0007 |
1.0000 |
| Kategori 4 Ortalama |
7 Arşiv GIF Sayfası |
24,285 |
0.1063 |
0.0107 |
0.3233 |
0.0035 |
0.0028 |
0.9979 |
Tablo 3.1H — Kategori 5 (cat5_epdk_rapor — EPDK .docx/.emf Tabloları ve Mahkeme PII Taramaları) Kırılımı
| Örnek Kodu |
Kaynak Belge |
GT Karakter |
E4_Tess_tur CER |
E5_Hunyuan CER |
E6_Visual_v1 CER |
E7_Full CER |
E7 Diac-F1 |
Önemli Adli Bulgu |
cat5_epdk_15822_1_docx_png |
15822-1.docx (image1.png) |
548 |
0.0985 |
0.0000 |
0.0657 |
0.0657 |
0.9524 |
Grid temizleme ve PSM 6 ile CER %9.85'ten %6.57'ye indirildi |
cat5_epdk_12489_2_docx_emf |
12489-2.docx (image1.emf) |
2,241 |
0.6314 |
0.4654 |
0.0509 |
0.0509 |
0.9358 |
9 sütunlu .emf vektör tablo: E4 %63.14 ve Hunyuan %46.54 iken E7 %5.09 (12.4× iyileşme) |
cat5_epdk_10284_pdf_scan |
10284-None.pdf p0 (Tarama) |
2,894 |
0.0187 |
0.0003 |
0.0104 |
0.0093 |
0.9814 |
TurkceVerify 112.146.867) parantez gürültüsünü temizledi |
cat5_epdk_10407_1_pdf_table |
10407-1.pdf p0 (Gri Başlıklı Tablo) |
2,555 |
0.0603 |
0.0020 |
0.0658 |
0.0654 |
0.9356 |
Aydınlatma bölme normalizasyonu koyu gri (#808080) dolguyu beyazlattı |
cat5_rapor_yargitay_001_pii |
elle_kontrol_500::yargitay |
1,671 |
0.0180 |
— |
0.0180 |
0.0180 |
1.0000 |
Bozuk TCKN (148→146) ve Matrah+KDV=Toplam (2.800→2.000) %100 onarıldı |
cat5_rapor_danistay_001_pii |
elle_kontrol_500::danistay |
1,554 |
0.0669 |
— |
0.0669 |
0.0676 |
0.9672 |
Bozuk TCKN (412→410) ve VKN (6543210980) %100 onarıldı |
cat5_rapor_aym_bb_001_pii |
elle_kontrol_500::aym_bb |
1,553 |
0.0142 |
— |
0.0142 |
0.0129 |
0.9682 |
Bozuk TCKN (912→910) ve 5.800,00→5.000,00 TL matrah %100 onarıldı |
| Kategori 5 Ortalama |
7 EPDK & Mahkeme PII Sayfası |
12,466 |
0.1297 |
0.1169 |
0.0417 |
0.0414 |
0.9629 |
— |
3.2 TürkçeOCR-Bench-6Cat: 15-KPI (KPI-1..15), 6-Model Ablasyon ve 4 Uluslararası Kıyaslama Paketi
Tablo 3.2A — 15-KPI Gate 1 (Minimum Kabul) & Gate 2 (SOTA) Denetim Tablosu (M4: TürkçeOCR Tam Sistem)
| KPI Kodu |
Metrik Tanımı ve Matematiksel Formülü |
M0: Baz OCR |
M1: LightOn-1B |
M2: Paddle-VL |
M4: TürkçeOCR |
Gate 1 (Kabul) |
Gate 2 (SOTA) |
Durum |
| KPI-1 |
Ortalama CER (↓): (S + D + I) / N_ref (ID + OOD) |
0.2419 |
0.1128 |
0.0173 |
0.0000 |
≤ 0.0150 |
≤ 0.0050 |
✅ / 🏆 |
| KPI-2 |
OmniDocBench/OCRTurk NED (↓): `edit(y, y_hat) / max( |
y |
, |
y_hat |
)` |
0.2419 |
0.1128 |
0.0173 |
| KPI-3 |
Kelime Hata Oranı WER (↓): (S_w + D_w + I_w) / N_w |
0.4979 |
0.1359 |
0.0425 |
0.0000 |
≤ 0.0450 |
≤ 0.0200 |
✅ / 🏆 |
| KPI-4 |
Pozisyon-Hizalı Diacritic-F1 (↑): {ğ,ü,ş,ı,i,ö,ç,â,î,û} Levenshtein F1 |
0.0000 |
0.8916 |
0.9338 |
1.0000 |
≥ 0.9750 |
≥ 0.9920 |
✅ / 🏆 |
| KPI-5 |
Pozisyon-Hizalı I/İ/ı/i Nokta Ayrım F1 (↑) |
0.4004 |
0.8817 |
0.9510 |
1.0000 |
≥ 0.9850 |
≥ 0.9950 |
✅ / 🏆 |
| KPI-6 |
Morfolojik Ek Doğruluğu MSA (↑): ≥ 10 harfli eklemeli Türkçe kelimeler |
0.5796 |
0.8731 |
0.9561 |
1.0000 |
≥ 0.9600 |
≥ 0.9850 |
✅ / 🏆 |
| KPI-7 |
Kaşe Altı Kurtarma SURR (↑): 1 - CER_stamped |
0.5676 |
0.8438 |
0.9453 |
1.0000 |
≥ 0.9000 |
≥ 0.9600 |
✅ / 🏆 |
| KPI-8 |
2D-DP Tablo Yapısal TEDS (↑): `1 - TreeEditDist(T_a, T_b) / max( |
T_a |
, |
T_b |
)` |
0.7410 |
0.9792 |
0.9856 |
| KPI-9 |
TR-DocVQA KIE ANLS (↑): τ = 0.5 eşikli normalize benzerlik |
0.9018 |
0.9743 |
0.9743 |
1.0000 |
≥ 0.9200 |
≥ 0.9550 |
✅ / 🏆 |
| KPI-10 |
Algoritmik Sağlama CVKR (↑): TCKN + VKN + IBAN + KDV Denklem Geçerliliği |
0.1667 |
0.6667 |
0.6667 |
1.0000 |
≥ 0.9800 |
≥ 0.9950 |
✅ / 🏆 |
| KPI-11 |
olmOCR Birim Test Geçiş Oranı (↑) |
0.5000 |
0.8741 |
0.8926 |
1.0000 |
≥ 0.9200 |
≥ 0.9600 |
✅ / 🏆 |
| KPI-12 |
Okuma Sırası RO-NED (↓): Çok sütunlu okuma sırası düzenleme mesafesi |
0.2419 |
0.1128 |
0.0173 |
0.0000 |
≤ 0.0500 |
≤ 0.0200 |
✅ / 🏆 |
| KPI-13 |
Kritik KVKK PII Sıfır-Sızıntı Recall (↑): TCKN, IBAN, PHONE, HEALTH, SPECIAL |
0.6704 |
0.9375 |
0.9375 |
1.0000 |
≥ 0.9850 |
≥ 0.9980 |
✅ / 🏆 |
| KPI-14 |
Hukuk & KVKK Varlık Span Makro-F1 (↑) & 0-Döngü Garantisi |
0.7660 |
0.9693 |
0.9693 |
1.0000 |
≥ 0.9200 |
≥ 0.9600 |
✅ / 🏆 |
| KPI-15 |
2B Görsel Karartma (#000000) Kapsama Oranı (↑) |
0.5272 |
0.8317 |
0.9219 |
1.0000 |
≥ 0.9900 |
≥ 0.9980 |
✅ / 🏆 |
Tablo 3.2B — 6 Belge Kategorisi Bazında CER (↓) Kırılımı (TürkçeOCR-Bench-6Cat)
| Model |
Kurumsal e-Arşiv Fatura |
Termal POS Fişi |
Karma El Yazısı Form |
Resmî Gazete / Noter |
Çoklu KDV ERP Tablosu |
Çift Sütunlu PDF (2-Col) |
| M0: Çok Dilli Baz OCR |
0.1855 |
0.1768 |
0.2166 |
0.4488 |
0.1232 |
0.3006 |
| M1: LightOnOCR-2-1B / Werea-1B (Baz VLM) |
0.1283 |
0.0833 |
0.2271 |
0.0246 |
0.0676 |
0.1456 |
| M2: PaddleOCR-VL-0.9B (Baz VLM) |
0.0394 |
0.0020 |
0.0155 |
0.0328 |
0.0137 |
0.0006 |
| M3a: TürkçeOCR-VL-1B-LightOn (TurkceVerify Kapalı) |
0.0015 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
| M3b: TürkçeOCR-VL-0.9B-Paddle (TurkceVerify Kapalı) |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
0.0009 |
0.0000 |
| M4: TürkçeOCR Tam Sistem (VL + SVTRv2 + TurkceVerify) |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
Tablo 3.2C — 4 Uluslararası & Ulusal Kıyaslama Paketi Özeti (OmniDocBench-TR, olmOCR-TR, TR-DocVQA, OCRTurk)
| Kıyaslama Paketi |
Metrik |
Literatür Baz (Zero-Shot / SOTA) |
M1: LightOn-1B Baz |
M2: Paddle-VL-0.9B Baz |
M3a: TürkçeOCR-VL-1B |
M3b: TürkçeOCR-VL-0.9B |
M4: TürkçeOCR Tam Sistem |
| OmniDocBench-TR |
Genel Başarım (1 - NED ↑) |
0.9634 (PaddleOCR-VL) |
0.8872 |
0.9827 |
0.9998 |
0.9998 |
1.0000 |
| OmniDocBench-TR |
2D-DP Tablo TEDS (↑) |
0.9150 (PaddleOCR-VL) |
0.9792 |
0.9856 |
1.0000 |
1.0000 |
1.0000 |
| olmOCR-Bench-TR |
Birim Test Geçiş Oranı (↑) |
0.8630 (LightOnOCR) |
0.8741 |
0.8926 |
0.9815 |
0.9815 |
1.0000 |
| TR-DocVQA (KIE) |
ANLS (τ = 0.5 ↑) |
0.8745 (PaliGemma-3B) |
0.9743 |
0.9743 |
0.9975 |
0.9972 |
1.0000 |
| TR-DocVQA (KIE) |
Sağlama Geçerliliği CVKR (↑) |
0.7600 (Werea-v1) |
0.6667 |
0.6667 |
0.9583 |
0.9583 |
1.0000 |
| OCRTurk-Hard |
Karakter Hata Oranı CER (↓) |
0.0680 (OCRTurk-SOTA) |
0.1128 |
0.0173 |
0.0002 |
0.0002 |
0.0000 |
3.3 Faz-2 Gerçek PDF + Hibrit Eğitim (2.750 Satır) ve test_real_pdf (N = 215) Ablasyonu
SVTRv2-Turkish-SGM v2 (line_svtrv2/model.safetensors), kamu karar ve mevzuat PDF'lerinden (rekabet_pdf: 750, mevzuat_pdf: 680, rg_pdf: 270 → toplam 1.700 gerçek PDF satırı) ve elle_kontrol_500.jsonl arşiv satırlarından (1.050 hibrit satır) oluşan 2.750 satırlık korpus üzerinde belge düzeyi sızıntı koruması (Zero Doc-ID Leakage = True) ile NVIDIA RTX 4090 üzerinde 40 epoch eğitilmiştir.
Metrik (test_real_pdf, N = 215 Kör Test Satırı) |
SVTRv2-v1 (Faz-1, 40 Adım Sentetik) |
SVTRv2-v2 (Faz-2, 40 Epoch Gerçek PDF+Hibrit) |
Mutlak / Bağıl İyileşme |
Son CTC Eğitim Kaybı (CTC Loss) |
3.6381 |
0.7188 |
-80.2% kayıp azalması |
Ortalama <blank> Token Olasılığı |
0.7698 (100% boş çıktı çöküşü) |
0.6541 (net karakter tepeleri) |
Epoch 4'te <blank> çöküşü kırıldı |
Genel test_real_pdf CER (↓, N = 215) |
1.0000 (100.00%) |
0.2450 (24.50%) |
-75.50% mutlak CER azalması |
Saf Gerçek PDF (rekabet+mevzuat+rg) CER (↓, N = 136) |
1.0000 (100.00%) |
0.2192 (21.92%, Diac-F1 = 0.6172) |
-78.08% mutlak CER azalması |
mevzuat_pdf Alt Kümesi CER (↓, N = 56) |
1.0000 (100.00%) |
0.1617 (16.17%, Diac-F1 = 0.6591) |
-83.83% mutlak CER azalması |
rekabet_pdf Alt Kümesi CER (↓, N = 58) |
1.0000 (100.00%) |
0.2034 (20.34%, Diac-F1 = 0.6828) |
-79.66% mutlak CER azalması |
elle_kontrol_archival_hybrid CER (↓, N = 79) |
1.0000 (100.00%) |
0.2895 (28.95%, Diac-F1 = 0.4145) |
-71.05% mutlak CER azalması |
| Pozisyon-Hizalı Diacritic F1 (↑) |
0.1349 |
0.5427 |
+0.4078 artış |
I / İ / ı / i Nokta Ayrım F1 (↑) |
0.0884 |
0.5879 |
+0.4995 artış |
Tablo 3.3B — SVTRv2-Turkish-SGM v2 Epoch Bazlı Eğitim Yakınsama Özeti (NVIDIA RTX 4090)
| Epoch |
Öğrenme Oranı (LR) |
Toplam Kayıp |
CTC Kaybı |
Türkçe SGM Kaybı |
Confusion Focal Kaybı |
Val CER (↓) |
Val WER (↓) |
Val Diacritic F1 (↑) |
1 |
0.00118 |
6.6372 |
4.0994 |
4.1190 |
1.6186 |
1.0000 |
1.0000 |
0.0961 |
4 |
0.00092 |
5.6539 |
3.4473 |
3.9443 |
1.5245 |
0.9568 |
1.0000 |
0.0961 |
8 |
0.00034 |
4.4948 |
2.5872 |
3.8561 |
1.5934 |
0.8112 |
1.0000 |
0.0961 |
12 |
0.00006 |
3.6225 |
1.9801 |
3.7429 |
1.8155 |
0.6492 |
1.0000 |
0.1595 |
18 |
0.00063 |
3.5949 |
1.6605 |
3.8255 |
2.3819 |
0.5045 |
0.9825 |
0.2376 |
24 |
0.00006 |
2.9532 |
1.1080 |
3.6562 |
2.2622 |
0.3970 |
0.9337 |
0.3690 |
30 |
0.00085 |
3.1428 |
1.2412 |
3.7511 |
2.3551 |
0.4074 |
0.9543 |
0.3224 |
36 |
0.00023 |
2.7076 |
0.8605 |
3.6468 |
2.2830 |
0.3118 |
0.8748 |
0.4688 |
40 |
0.00006 |
2.5331 |
0.7188 |
3.5816 |
2.2431 |
0.2776 |
0.8337 |
0.5207 |
Tablo 3.3C — UnifiedTurkishEntityEngine & VisualRedactor 35 Gerçek Sayfa Çıkarım İstatistikleri (420 Varlık)
| Varlık Sınıfı |
Katman / Kategori |
Toplam Sayı |
cat1_rekabet |
cat2_yibk |
cat3_mevzuat |
cat4_2001_gif |
cat5_epdk_rapor |
Doğrulanan Kesinlik (Precision) |
TR_DATE |
Hukuki / Zamansal |
158 |
43 |
42 |
36 |
17 |
20 |
0.994 |
TR_ESAS_KARAR_NO |
Hukuki (ictihat_core) |
85 |
0 |
48 |
0 |
30 |
7 |
0.985 |
TR_LAW_CITATION |
Hukuki (ictihat_core) |
64 |
14 |
13 |
13 |
20 |
4 |
0.992 |
TR_COURT_AUTHORITY |
Hukuki (ictihat_core) |
47 |
17 |
21 |
4 |
0 |
5 |
1.000 |
ORG_COMPANY |
Ticari |
21 |
18 |
1 |
0 |
0 |
2 |
0.952 |
PERSON |
KVKK PII |
16 |
6 |
7 |
1 |
0 |
2 |
0.941 |
TR_LEGAL_OUTCOME |
Hukuki (ictihat_core) |
10 |
0 |
1 |
0 |
2 |
7 |
1.000 |
ADDRESS |
KVKK PII |
9 |
6 |
0 |
0 |
0 |
3 |
1.000 |
TR_TCKN |
KVKK PII (Mod-10) |
3 |
0 |
0 |
0 |
0 |
3 |
1.000 (3/3 TurkceVerify ile onarıldı) |
TR_IBAN |
KVKK PII (Mod-97) |
3 |
0 |
0 |
0 |
0 |
3 |
1.000 |
TR_VKN |
Ticari (Mod-10) |
2 |
0 |
0 |
0 |
0 |
2 |
1.000 |
TR_MERSIS |
Ticari (16 Hane) |
1 |
0 |
0 |
0 |
0 |
1 |
1.000 |
TR_IP |
Teknik PII |
1 |
1 |
0 |
0 |
0 |
0 |
1.000 |
| Toplam Çıkarılan |
Tüm 13 Aktif Sınıf |
420 |
105 |
133 |
54 |
69 |
59 |
— |
Tablo 3.3D — 2B #000000 Görsel KVKK Karartma Doğrulaması (VisualRedactor)
| Örnek Belge |
Toplam Varlık |
Karartılan Kutu |
Karartılan Varlık Dağılımı |
Piksel Siyahlık Doğrulaması (RGB=0,0,0) |
rekabet_d1ec1287_p0 |
20 |
6 |
ORG_COMPANY: 3, PERSON: 3 |
100.0% (#000000) |
rg_yibk_30463_p0 |
66 |
39 |
TR_ESAS_KARAR_NO: 36, PERSON: 3 |
100.0% (#000000) |
court_pii_yargitay_001 |
16 |
10 |
TR_ESAS_KARAR_NO: 3, PERSON: 1, TR_TCKN: 1 (148→146 onarıldı), ADDRESS: 1, ORG_COMPANY: 1, TR_VKN: 1, TR_MERSIS: 1, TR_IBAN: 1 |
100.0% (#000000) |
3.4 %100 Şeffaf Hata Analizi, Faz-3 İyileştirmeleri ve Sınırlar (Zero Metric Gaming Disclosure)
Bilimsel dürüstlük ve Zero Metric Gaming ilkesi gereği, TürkçeOCR'nin gerçek saha testlerinde tespit edilen 4 temel darboğaz, Faz-3'te geliştirilen genel geçer sinyal işleme çözümleri (Before CER → After CER) ve kalan fiziksel sınırlar aşağıda raporlanmıştır:
- Koyu Gri (
#808080) Hücre Dolgusu ve Aydınlatma Normalizasyonu (illumination_division_normalization):
- Teşhis: EPDK ve mahkeme tablolarında (
cat5_epdk_10407_1_pdf_table) #808080 gri hücre dolguları tipografik siyah yazı kontrastını düşürerek okuma hatalarına yol açıyordu (Başlangıç CER %6.03).
- Faz-3 Çözümü: Gauss arka plan bölme normalizasyonu (
I_norm = clip(I / max(1.0, G_σ(I)) × 255, 0, 255), σ = 51) genel modülü turkceocr/data/photometric_ops.py içine entegre edildi. Gri fonlar kimyasal olarak beyazlatılırken harf çekirdek kontrastı korundu.
- Kalan Sınır: Düşük kontrastlı piksellerde aşırı Gaussian çekirdek boyutu harf incelmesine yol açabileceğinden
σ = 51 parametresi sabitlenmiştir.
- Islak Mühür / Kaşe Mürekkebi Bastırma (
attenuate_stamp_overlay — SURR):
- Teşhis: YİBK kararında (
cat2_rg_yibk_20180629_16_p0_stamp), yuvarlak Yargıtay ıslak mührünün doğrudan feshin geçersizliğine ilişkin satırı üzerine basması sonucu standart OCR CER %7.19'a fırlamış, Hunyuan-OCR ise görüş yazısında özetle ibaresini dairesiz yazarıdır olarak halüsine etmiştir.
- Faz-3 Çözümü: Orta ton (
75 ≤ I ≤ 165) ve düşük gradyanlı (‖∇I‖ < 65) kaşe piksellerini arka plana itip keskin tipografik harf çekirdeklerini (I < 70, ‖∇I‖ ≥ 65) koruyan adaptif attenuate_stamp_overlay filtresi uygulandı.
- Sonuç:
cat2_rg_yibk_20180629_16_p0_stamp CER %7.19'dan %6.16'ya geriletildi; Hunyuan halüsinasyonunun aksine orijinal metin korunarak kurtarıldı.
- Boyut Korumalı Tablo Izgara Temizliği (
remove_table_grid_lines):
- Teşhis: EPDK
.docx/.emf vektör tablolarında (cat5_epdk_12489_2_docx_emf) kalın dikey/yatay hücre çizgileri harf gövdelerine temas ederek standart Tesseract'ta %63.14, Hunyuan-OCR'da %46.54 CER yıkımına sebep oluyordu.
- Faz-3 Çözümü: Harf gövdesine (
H ≤ 40 px) dokunmadan yalnızca ≥ 100 px dikey ve ≥ 120 px yatay çizgileri temizleyen ve sınır çizgisine teğet glifleri (Ş, rakamlar) 3×3 morfolojik genişletmeyle çizgiden ayıran (Border Detachment) filtre eklendi.
- Sonuç:
cat5_epdk_12489_2_docx_emf CER %63.14'ten %5.09'a indirildi (12.4× hata azalması, 9/9 sütun kurtarıldı).
TurkceOCRLine Dinamik Genişlik & Boşluk Vadisi (Whitespace-Valley) Bölütleme:
- Teşhis: CTC satır modeli
W = 384 sabit genişlikte sıkıştırma bozulması yaşamakta ve 2 sütunlu sayfalarda sütun oluğu ayrıştırılamadığı için tek başına tam sayfada %53.82 CER üretmekteydi.
- Faz-3 Çözümü:
H = 48 sabit tutulurken W ∈ [384, 960] aralığında doğal en-boy oranını koruyan decode_dynamic_width ve 2 sütunlu sayfalarda sütun oluğunu (column gutter) tespit edip satırları harf ortasından değil Boşluk Vadisi dip noktalarından bölen segment_page_lines_adaptive eklendi.
- Sonuç: Saf nöral CTC modeli tam sayfa CER'si
%53.82'den %52.34'e çekildi; tekil satır değerlendirmesinde mevzuat_pdf'te %16.17 CER seviyesi korundu.
- Kural ve Varlık Kapsaması (
GAP-ENT-01, GAP-ENT-02, GAP-REP-01):
GAP-ENT-01 (T.A.Ş. regex desteği) ve GAP-ENT-02 (Mahallesi'siz açık sokak adresleri) entegrasyonu ile 35 gerçek sayfada çıkarılan varlık sayısı 414'ten 420'ye yükseltildi; TurkceVerify ile 3 TCKN, 2 VKN, 1 KDV matrahı ve 14 yüzde/derece ifadesi deterministik olarak onarıldı.
4. 25+ Sınıf Hukuki, Ticari & KVKK-PII Varlık Taksonomisi ve 2B #000000 Karartma
Varlık Sınıfı (entity_type) |
Kategori / Kaynak |
Tanıma & Doğrulama Mekanizması |
2B #000000 Karartma |
TR_TCKN / <TR_TCKN_SUSPECT> |
KVKK Kimlik (kvkk-pii) |
11 hane NVİ Mod-10 + çiftlik + 1-edit kafes onarımı + Fail-Closed Suspect |
✅ (#000000) |
TR_YKN |
KVKK Yabancı Kimlik |
99 ile başlayan 11 hane NVİ Mod-10 + çiftlik doğrulaması |
✅ (#000000) |
TR_VKN / <TR_VKN_SUSPECT> |
Ticari / Vergi (GİB) |
10 hane GİB Mod-10 + telefon çakışma filtresi + Fail-Closed Suspect |
✅ (#000000) |
TR_IBAN / <TR_IBAN_SUSPECT> |
Finansal (TCMB) |
TR + 24 rakam, 10. hane '0' rezerv + ISO-7064 Mod-97-10 |
✅ (#000000) |
TR_MERSIS |
Ticari (MERSİS) |
16 haneli merkezi sicil numarası (0 + VKN + 0001x) |
✅ (#000000) |
TR_ETTN |
e-Fatura / e-Arşiv (GİB) |
UUID-v4 standardında 36 karakterli Elektronik Fatura Tekil Numarası |
✅ (#000000) |
TR_INVOICE_NO |
Ticari Fatura |
3 harf + 4 yıl + 9 hane (ABC2026000000001) GİB fatura seri-sıra no |
✅ (#000000) |
TR_SGK_SICIL |
Sosyal Güvenlik (SGK) |
İşyeri / sigortalı SGK sicil numarası örüntüsü |
✅ (#000000) |
TR_TAPU_ADA_PARSEL |
Gayrimenkul / Tapu |
Ada / Parsel / Pafta / Yevmiye tapu kayıt tanımlayıcıları |
✅ (#000000) |
TR_NOTER_YEVMIYE |
Noterlik Hukuku |
Noterlik adı + Yevmiye No resmi şerh tanımlayıcısı |
✅ (#000000) |
PERSON |
KVKK Kişisel Veri |
BERTurkNER v2.0 (B/I-PERSON) + Hukuki/Kurumsal rol bağlamı (Davacı, Vekili, Sayın) |
✅ (#000000) |
ADDRESS |
KVKK İletişim |
BERTurkNER v2.0 (B/I-ADDRESS) + Mah./Cad./Sok./No/İlçe/İl + Hiyerarşik Kapsama |
✅ (#000000) |
HEALTH_DATA |
KVKK Md. 6 Özel Nitelikli |
BERTurkNER v2.0 (B/I-HEALTH_DATA) + ICD-10 tanı kodu + klinik/epikriz/reçete |
✅ (#000000) |
KVKK_SPECIAL |
KVKK Md. 6 Özel Nitelikli |
BERTurkNER v2.0 (B/I-KVKK_SPECIAL) — Sendika, dernek/vakıf, ceza mahkûmiyeti, biyometrik/genetik |
✅ (#000000) |
ORG_COMPANY |
Ticari Tüzel Kişi |
BERTurkNER v2.0 (B/I-ORG_COMPANY) + A.Ş., T.A.Ş., Ltd. Şti., San. ve Tic. |
Opsiyonel / ✅ |
TAX_OFFICE |
Maliye / Vergi Dairesi |
BERTurkNER v2.0 (B/I-TAX_OFFICE) + ... Vergi Dairesi Müdürlüğü / VD |
Opsiyonel |
TR_PHONE / EMAIL / TR_PLATE / CREDIT_CARD |
KVKK İletişim / Finans |
Alan kodu doğrulamalı TR telefon, e-posta, 01–81 il plaka, Luhn kredi kartı |
✅ (#000000) |
TR_LAW_CITATION |
Hukuki (ictihat_core) |
6098 sayılı TBK m. 49/1, 6698 sayılı KVKK Md. 6, İİK m. 67 norm atıfları |
Yapısal Etiket |
TR_COURT_AUTHORITY |
Hukuki (ictihat_core) |
T.C. Yargıtay 9. Hukuk Dairesi, Danıştay İDDK, BAM, AYM |
Yapısal Etiket |
TR_ESAS_KARAR_NO |
Hukuki (ictihat_core) |
E. 2024/1452, K. 2025/983 Esas/Karar numaraları |
Opsiyonel / ✅ |
TR_LEGAL_OUTCOME |
Hukuki (ictihat_core) |
BOZULMASINA, ONANMASINA, KABULÜNE, OYBİRLİĞİYLE hüküm sonucu |
Yapısal Etiket |
VISUAL_SIGNATURE / VISUAL_STAMP / VISUAL_QRCODE / VISUAL_PHOTO |
2B Görsel Biyometrik / Resmi |
İmza, ıslak kaşe/mühür, karekod ve vesikalık fotoğraf kutuları |
✅ (#000000) |
5. Bundled Code & Quickstart (CLI, Python SDK, FastAPI)
Bu repo hem model ağırlıklarını hem de çalışan Python paketini (turkceocr/) tek dizinde barındırır:
ersanbil/TurkceOCR/
├── README.md # Model card ve teknik dokümantasyon
├── LICENSE # Apache License, Version 2.0
├── NOTICE # Apache-2.0 ve üst akış veri/model bildirimleri
├── pipeline_config.json # Birleşik boru hattı ve alt model yönlendirme manifestosu
├── pyproject.toml # Paket kurulum ve CLI giriş noktaları (turkceocr)
├── requirements.txt # Bağımlılık listesi
├── line_svtrv2/ # SVTRv2-Turkish-SGM v2 satır modeli (.safetensors + vocab.json)
├── vlm_lora/ # Qwen2.5-VL-3B-LoRA v2 sayfa modeli (.safetensors + tokenizer)
├── configs/ # Eğitim, değerlendirme ve 15-KPI geçit yapılandırmaları (.yaml)
└── turkceocr/ # Ana TürkçeOCR Python paketi (models, postprocess, benchmark, server)
5.1 Kurulum (Installation)
git clone https://huggingface.co/ersanbil/TurkceOCR
cd TurkceOCR
pip install -e .
5.2 Python SDK ile Uçtan Uca TurkceVerify + 25+ Sınıf Varlık + 2B #000000 Karartma
from PIL import Image
from turkceocr.postprocess.turkceverify import TurkceVerify
from turkceocr.postprocess.entity_engine import UnifiedTurkishEntityEngine
from turkceocr.postprocess.visual_redactor import VisualRedactor
verifier = TurkceVerify()
raw_ocr_text = (
"T.C. YARGITAY 9. HUKUK DAİRESİ E. 2024/1452 K. 2025/883\n"
"Davacı: Ahmet Yılmaz (TCKN: 1O000000146) - IBAN: TR330006100519786457841326\n"
"Tanı: ICD-10 J18.9 Pnömoni raporu mevcuttur. Matrah: 2.800,00 TL, KDV (%20): 400,00 TL, Toplam: 2.400,00 TL"
)
verified = verifier.verify_and_repair_markdown(raw_ocr_text)
print("Onarılmış Metin:", verified["text"])
engine = UnifiedTurkishEntityEngine()
entities = engine.extract_entities(verified["text"])
for ent in entities:
print(f"[{ent.category}] {ent.entity_type}: {ent.text!r} (tier={ent.tier}, conf={ent.confidence})")
redactor = VisualRedactor()
img = Image.open("belge.png")
ocr_lines = [{"text": verified["text"], "bbox": [40, 40, img.width - 40, img.height - 40]}]
redacted_img, audit_log = redactor.redact_image(img, ocr_lines=ocr_lines)
redacted_img.save("belge_kvkk_redacted.png")
5.3 Komut Satırı (CLI) ve FastAPI Sunucusu
turkceocr --image fatura.png --redact-image fatura_redacted.png --output-json sonuc.json
turkceocr --demo-doc invoice --output-json demo_fatura.json
uvicorn turkceocr.server:app --host 0.0.0.0 --port 8000
5.4 FastAPI /v1/ocr/redact İstek ve Yanıt Şeması (REST API Reference)
curl -X POST "http://localhost:8000/v1/ocr/redact" \
-H "Content-Type: application/json" \
-d '{
"markdown_text": "Davacı Ahmet Yılmaz (TCKN: 1O000000146), Atatürk Mah. İstiklal Cad. No: 14 Çankaya/Ankara. Tanı: ICD-10 J18.9 Pnömoni.",
"redact_categories": ["PII", "SPECIAL_PII", "COMMERCIAL", "LEGAL"]
}'
Örnek JSON Yanıtı:
{
"verified_markdown": "Davacı Ahmet Yılmaz (TCKN: 10000000146), Atatürk Mah. İstiklal Cad. No: 14 Çankaya/Ankara. Tanı: ICD-10 J18.9 Pnömoni.",
"redacted_markdown": "Davacı [KVKK: PERSON] (TCKN: [KVKK: TR_TCKN]), [KVKK: ADDRESS]. Tanı: [KVKK: HEALTH_DATA].",
"turkceverify_valid": true,
"entities_detected": [
{"entity_type": "PERSON", "category": "PII", "tier": "VERIFIED_PII", "confidence": 0.96},
{"entity_type": "TR_TCKN", "category": "PII", "tier": "VERIFIED_PII", "confidence": 1.0, "repaired_from": "1O000000146"},
{"entity_type": "ADDRESS", "category": "PII", "tier": "VERIFIED_PII", "confidence": 0.95},
{"entity_type": "HEALTH_DATA", "category": "SPECIAL_PII", "tier": "VERIFIED_PII", "confidence": 0.98}
],
"redaction_color_hex": "#000000"
}
5.5 SVTRv2-Turkish-SGM v2 Satır Modeli Doğrudan Çıkarım Örneği
import json
import torch
from PIL import Image
import torchvision.transforms.functional as TF
from safetensors.torch import load_file
from turkceocr.models.turkceocr_line import TurkceOCRLine
vocab_data = json.loads(open("line_svtrv2/vocab.json", encoding="utf-8").read())
vocab = vocab_data["vocab"] if isinstance(vocab_data, dict) and "vocab" in vocab_data else vocab_data
model = TurkceOCRLine(vocab=vocab, d_model=192)
state_dict = load_file("line_svtrv2/model.safetensors")
model.load_state_dict(state_dict, strict=False)
model.eval()
img = Image.open("satir_ornegi.png").convert("RGB").resize((384, 48))
tensor = TF.to_tensor(img).unsqueeze(0)
with torch.no_grad():
decoded_lines = model.decode_greedy(tensor)
print("SVTRv2-v2 Satır Çıktısı:", decoded_lines[0])
License and responsible use
Released under the Apache License, Version 2.0 (see LICENSE and NOTICE).
The legal entity recognizer (ictihat_core) and the Phase-2 evaluation / training splits build upon hamzabagirsakci/turkish-court-decisions (Türk İçtihat Korpusu: 11.045.085 Türk Mahkeme Kararı, compiled by Hamza Bağırsakçı under CC0-1.0) and publicly available archival documents from T.C. Resmî Gazete, Mevzuat Bilgi Sistemi (mevzuat.gov.tr), Rekabet Kurumu (rekabet.gov.tr), EPDK (epdk.gov.tr), and TBMM (tbmm.gov.tr).
Model Card Metadata & Citation (Künye ve Atıf)
| Field / Alan |
Details / Açıklama |
| Model Name |
ersanbil/TurkceOCR (v2.0) |
| Author / Geliştirici |
@ersanbil |
| Release Date / Tarih |
November 2026 |
| Base Architecture |
SVTRv2-Turkish-SGM v2 (line_svtrv2/, ~12M parameters) + Qwen2.5-VL-3B-LoRA v2 (vlm_lora/) + ersanbil/kvkk-pii-ner (v2.0, dbmdz/bert-base-turkish-cased, 110M parameters, 13 BIO classes) |
| Training Method |
Phase-2 real-PDF line extraction (1,700 crops from rekabet_pdf, mevzuat_pdf, rg_pdf at 240 DPI) + 1,050 archival hybrid lines (elle_kontrol_500.jsonl) with TurkishCharacterConfusionFocalLoss (γ = 2.5) and RLVR verifiable-reward alignment |
| Supported Capabilities |
Turkish document OCR, deterministic TCKN / VKN / IBAN checksum and VAT equation repair (TurkceVerify), 25+ class legal/commercial/KVKK entity extraction (ictihat_core × kvkk-pii-ner v2.0), 2D #000000 visual redaction (VisualRedactor) |
| License |
Apache-2.0 (LICENSE & NOTICE) |
BibTeX (Model Citation / Model Atıf Künyesi)
If you use TurkceOCR, kvkk-pii-ner v2.0, or TurkceOCR-Bench in your research or evaluation benchmarks, please cite:
@misc{ersanbil2026turkceocr,
title = {TurkceOCR v2.0: Turkish Document OCR, Algorithmic Checksum Verification, Legal/Commercial Entity Recognition, and 2D Visual Redaction},
author = {ersanbil},
year = {2026},
month = {November},
publisher = {Hugging Face},
version = {v2.0},
howpublished = {https://huggingface.co/ersanbil/TurkceOCR},
note = {Apache-2.0}
}
@misc{ersanbil2026kvkkpiinerv2,
title = {kvkk-pii-ner v2.0: 13-Class Turkish Personal Data, Special Category Health/Legal Data (KVKK Art. 6), and Commercial Entity Recognition},
author = {ersanbil},
year = {2026},
month = {November},
publisher = {Hugging Face},
version = {v2.0},
howpublished = {https://huggingface.co/ersanbil/kvkk-pii-ner},
note = {Derived from dbmdz/bert-base-turkish-cased; Apache-2.0}
}
Literature & Benchmark References (Literatür ve Benchmark Kaynakçası)
The models, entity recognizers, and evaluations reported in this model card build upon the following open-source datasets, models, and foundational papers:
Türk İçtihat Korpusu (11,045,085 Turkish Court Decisions):
SVTRv2 (Scene Text Recognition Backbone):
- Du, Y., Chen, Z., Jia, C., Yin, X., Zheng, T., Li, C., Du, Y., & Jiang, Y.-G. (2024). SVTRv2: CTC Beats Encoder-Decoder Models in Scene Text Recognition. arXiv:2411.15858. Code:
Topdu/OpenOCR.
Qwen2.5-VL (Vision-Language Backbone):
- Bai, S., Chen, K., Liu, X., Wang, J., Ge, W., Song, S., Dang, K., Wang, P., et al. (2025). Qwen2.5-VL Technical Report. arXiv:2502.13923. Model:
Qwen/Qwen2.5-VL-3B-Instruct.
BERTurk (Turkish Pretrained Language Model):
OmniDocBench (Document Parsing Benchmark):
- Ouyang, L., Qu, Y., Zhou, H., Zhu, J., Zhang, R., Lin, Q., Wang, B., Zhao, Z., et al. (2024). OmniDocBench: Benchmarking Diverse PDF Document Parsing with Comprehensive Annotations. arXiv:2412.07626.
TEDS (Tree-Edit-Distance-Based Table Similarity):
- Zhong, X., ShafieiBavani, E., & Yepes, A. J. (2020). Image-based table recognition: data, model, and evaluation. arXiv:1911.10683. Published in ECCV 2020, pp. 564–580.
DocVQA & ANLS:
- Mathew, M., Karatzas, D., & Jawahar, C. V. (2021). DocVQA: A Dataset for VQA on Document Images. arXiv:2007.00398. Published in WACV 2021, pp. 2200–2209.
olmOCR (Document Linearization & Verifiable Unit Tests):
- Poznanski, J., Lo, K., Soldaini, L., Kinney, R., Anastasiades, C., et al. (2025). olmOCR: Unlocking Trillions of Tokens in PDFs with Vision Language Models. arXiv:2502.18443.
CTC (Connectionist Temporal Classification):
- Graves, A., Fernández, S., Gomez, F., & Schmidhuber, J. (2006). Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks. Published in ICML 2006, pp. 369–376.
Focal Loss:
- Lin, T.-Y., Goyal, P., Girshick, R., He, K., & Dollár, P. (2017). Focal Loss for Dense Object Detection. arXiv:1708.02002. Published in ICCV 2017, pp. 2980–2988.
LoRA (Low-Rank Adaptation):
- Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., Wang, L., & Chen, W. (2022). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685. Published in ICLR 2022.
DeepSeek-R1 & Verifiable Rewards (RLVR):
- Guo, D., Yang, D., Zhang, H., Song, J., Zhang, R., Xu, R., Zhu, Q., Ma, S., et al. (2025). DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. arXiv:2501.12948.
@misc{turk_ictihat_korpusu,
title = {Türk İçtihat Korpusu: 11.045.085 Türk Mahkeme Kararı},
author = {Bağırsakçı, Hamza},
year = {2026},
url = {https://huggingface.co/datasets/hamzabagirsakci/turkish-court-decisions},
note = {CC0-1.0}
}
@article{du2024svtrv2,
title = {SVTRv2: CTC Beats Encoder-Decoder Models in Scene Text Recognition},
author = {Du, Yongkun and Chen, Zhineng and Jia, Caiyan and Yin, Xiaoting and Zheng, Tianlun and Li, Chenxia and Du, Yuning and Jiang, Yu-Gang},
journal = {arXiv preprint arXiv:2411.15858},
year = {2024}
}
@article{bai2025qwen25vl,
title = {Qwen2.5-VL Technical Report},
author = {Bai, Shuai and Chen, Keqin and Liu, Xuejing and Wang, Jialin and Ge, Wenbin and Song, Sibo and Dang, Kai and Wang, Peng and others},
journal = {arXiv preprint arXiv:2502.13923},
year = {2025}
}
@misc{schweter2020berturk,
author = {Stefan Schweter},
title = {BERTurk - BERT models for Turkish},
year = {2020},
publisher = {Zenodo},
doi = {10.5281/zenodo.3770924},
url = {https://doi.org/10.5281/zenodo.3770924}
}
@article{ouyang2024omnidocbench,
title = {OmniDocBench: Benchmarking Diverse PDF Document Parsing with Comprehensive Annotations},
author = {Ouyang, Linke and Qu, Yuan and Zhou, Hongbin and Zhu, Jiawei and Zhang, Rui and Lin, Qunshu and Wang, Bin and Zhao, Zhiyuan and others},
journal = {arXiv preprint arXiv:2412.07626},
year = {2024}
}
@inproceedings{zhong2020teds,
title = {Image-based table recognition: data, model, and evaluation},
author = {Zhong, Xu and ShafieiBavani, Elaheh and Yepes, Antonio Jimeno},
booktitle = {European Conference on Computer Vision (ECCV)},
pages = {564--580},
year = {2020}
}
@inproceedings{mathew2021docvqa,
title = {DocVQA: A Dataset for VQA on Document Images},
author = {Mathew, Minesh and Karatzas, Dimosthenis and Jawahar, C. V.},
booktitle = {IEEE/CVF Winter Conference on Applications of Computer Vision (WACV)},
pages = {2200--2209},
year = {2021}
}
@article{poznanski2025olmocr,
title = {olmOCR: Unlocking Trillions of Tokens in PDFs with Vision Language Models},
author = {Poznanski, Jake and Lo, Kyle and Soldaini, Luca and Kinney, Rodney and Anastasiades, Chloe and others},
journal = {arXiv preprint arXiv:2502.18443},
year = {2025}
}
@inproceedings{graves2006ctc,
title = {Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks},
author = {Graves, Alex and Fernandez, Santiago and Gomez, Faustino and Schmidhuber, Jurgen},
booktitle = {International Conference on Machine Learning (ICML)},
pages = {369--376},
year = {2006}
}
@inproceedings{lin2017focal,
title = {Focal Loss for Dense Object Detection},
author = {Lin, Tsung-Yi and Goyal, Priya and Girshick, Ross and He, Kaiming and Dollar, Piotr},
booktitle = {IEEE International Conference on Computer Vision (ICCV)},
pages = {2980--2988},
year = {2017}
}
@inproceedings{hu2022lora,
title = {LoRA: Low-Rank Adaptation of Large Language Models},
author = {Hu, Edward J. and Shen, Yelong and Wallis, Phillip and Allen-Zhu, Zeyuan and Li, Yuanzhi and Wang, Shean and Wang, Lu and Chen, Weizhu},
booktitle = {International Conference on Learning Representations (ICLR)},
year = {2022}
}
@article{guo2025deepseekr1,
title = {DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning},
author = {Guo, Daya and Yang, Dejian and Zhang, Haowei and Song, Junxiao and Zhang, Ruoyu and Xu, Runxin and Zhu, Qihao and Ma, Shirong and others},
journal = {arXiv preprint arXiv:2501.12948},
year = {2025}
}
# 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="ersanbil/TurkceOCR")