OCR (OCR — Optik Karakter Tanıma)

OCR (Optical Character Recognition — Optik Karakter Tanıma), görüntüler veya taranmış belgeler içindeki basılı ya da el yazısı karakterleri analiz ederek makine tarafından okunabilir dijital metne dönüştüren yapay zeka teknolojisidir.

OCR (Optical Character Recognition — Optik Karakter Tanıma), görüntü, taranmış belge veya fotoğraf içindeki basılı ya da el yazısı karakterleri analiz ederek düzenlenebilir ve aranabilir dijital metne dönüştüren teknolojidir. 1950'lerin sonunda ortaya çıkan OCR, başlangıçta basit şablon eşleştirme ve piksel karşılaştırma algoritmalarına dayanırken; günümüzde derin öğrenme mimarileri sayesinde çok daha güçlü bir yapıya kavuşmuştur. Modern bir OCR sistemi dört temel aşamadan oluşur: (1) Görüntü ön işleme — gürültü giderme, eğim düzeltme (deskew), kontrast normalizasyonu ve renk segmentasyonu. (2) Metin bölgesi tespiti — satır ve kelime kutularının belirlenmesi, paragraf sıralamasının çıkarılması. (3) Karakter veya kelime düzeyinde segmentasyon ve özellik çıkarımı. (4) Model tabanlı tanıma ve dil modeli destekli hata düzeltme. Geleneksel sistemler CNN (Evrişimsel Sinir Ağı) ve LSTM kombinasyonunu kullanırken; son nesil Transformer tabanlı modeller — TrOCR, Donut, Nougat, DeepSeek-OCR — görsel kodlayıcı ile dil çözücüsünü birleştirerek belge düzeni anlayışını yeni bir düzeye taşımaktadır. Bu modeller artık sadece karakterleri değil; tabloları, formları, matematiksel ifadeleri ve karmaşık çok sütunlu sayfa yapılarını da yapılandırılmış çıktıya dönüştürebilmektedir. OCR'nin kullanım alanları son derece geniştir: finans sektöründe fatura ve çek işleme, sağlıkta hasta kayıtlarının dijitalleştirilmesi, hukuk alanında sözleşme tarama, e-ticarette ürün katalog otomasyonu, pasaport ve kimlik doğrulama sistemleri, kütüphane arşivlerinde tarihi belgelerin dijital ortama aktarılması bunların başında gelir. Türkçe gibi özel karakterler içeren diller için ğ, ü, ş, ı, ö, ç gibi harflerin doğru tanınması ayrı bir önem taşır; bu nedenle Türkçe dil paketi veya özel eğitilmiş model kullanımı gerekebilir. 2025-2026 itibarıyla çok modelli büyük dil modelleri (GPT-4o, Claude, Gemini) doğrudan görüntüden metin ve anlam çıkartabilmekte; bu durum OCR'yi 'belge zekası' adı verilen daha geniş bir alanda yeniden konumlandırmaktadır. İyi koşullar altında modern OCR sistemleri %99'un üzerinde doğruluk oranına ulaşabilirken, düşük kaliteli görüntü ve el yazısında bu oran %85-95 aralığına düşmektedir.

OCR Nasıl Çalışır?

Modern bir OCR sistemi dört temel aşamada çalışır. İlk aşamada görüntü ön işleme yapılır: gürültü giderme, eğim ve perspektif düzeltme (deskew/deskew), kontrast normalizasyonu ve arka plan ayrıştırması. İkinci aşamada metin bölgesi tespiti gerçekleşir; satır kutularının belirlenmesi ve okunan yönün (soldan sağa, sağdan sola gibi) anlaşılması bu adımda yapılır. Üçüncü aşamada karakter ya da kelime düzeyinde segmentasyon ile özellik çıkarımı uygulanır. Son aşamada ise model tabanlı tanıma yürütülür; dil modelleri sıkça yanlış tanınan karakterleri bağlamsal ipuçlarıyla düzeltir. Örneğin '0' ile 'O' arasındaki seçim, çevre karakterler ve sözcük örüntüsüne göre belirlenir.

Klasik ve Modern OCR Mimarileri

Klasik OCR sistemleri, CNN ile piksel özelliklerini çıkarıp LSTM ile sıralı karakter kararları veren CRNN mimarisine dayanır; Tesseract 4+ bu yaklaşımın en yaygın açık kaynak örneğidir. Modern Transformer tabanlı sistemler ise görsel kodlayıcı ile dil çözücüsünü birleştirerek çok daha karmaşık belge yapılarını anlayabilir. TrOCR (Microsoft, 2021), görüntü ViT kodlayıcısı ile metin Transformer çözücüsünü uçtan uca birleştirir. Donut (2022) ve Nougat (2023) ise belge görüntüsünden doğrudan yapılandırılmış metin veya Markdown çıktısı üretir; OCR'nin kural tabanlı ön işlemeden tamamen kurtulmasını sağlar. 2025-2026'da DeepSeek-OCR ve benzer modeller bu yaklaşımı daha da ileriye taşımaktadır.

Kullanım Alanları

OCR teknolojisi neredeyse her sektörde yer bulmaktadır. Finans alanında fatura, çek ve banka dekontu otomasyonu; sigorta ve hukuk alanında sözleşme tarama ve bilgi çıkarımı; sağlık sektöründe hasta kayıtları ile reçete dijitalleştirme; e-ticaret ve lojistikte ürün etiketi ve manifesto işleme; kimlik doğrulama sistemlerinde pasaport, ehliyet ve nüfus cüzdanı tarama; kütüphane ve arşiv çalışmalarında tarihi belge dijitalleştirme öne çıkan kullanım alanlarıdır. Bunların ötesinde arama motorları taranan PDF'leri indekslemek, erişilebilirlik uygulamaları görme engelli bireylere belge içeriğini sesli okumak için OCR'ye başvurur.

Türkçe OCR: Özel Karakter Zorlukları

Türkçe alfabe, Latin tabanlı olmakla birlikte ğ, ü, ş, ı, ö, ç gibi standart ASCII dışı karakterler içerir. Bu durum, yalnızca İngilizce üzerinde eğitilmiş OCR modellerinin söz konusu karakterleri yanlış yorumlamasına yol açabilir. Örneğin 'ı' (nokta olmayan i), modellerin büyük çoğunluğu tarafından 'i' veya 'l' olarak tanınır. Kaliteli Türkçe OCR için ya Türkçe destekli bir dil paketiyle yapılandırılmış Tesseract, ya da Türkçe metin örnekleri üzerinde ince ayarlı (fine-tuned) bir Transformer modeli kullanmak gerekir. Son nesil VLM tabanlı OCR sistemleri (GPT-4o vision, Claude gibi) ise geniş çok dilli eğitim verileri sayesinde Türkçe karakter sorununu büyük ölçüde aşmıştır.

Belge Zekası: OCR'nin Geleceği

Geleneksel OCR yalnızca metni tanır; 'belge zekası' (document intelligence) ise metnin yanı sıra tabloların, formların, grafiklerin ve hiyerarşik yapının anlamını çıkarır. Azure Document Intelligence, Amazon Textract ve Google Document AI gibi bulut servisleri bu yaklaşımı halihazırda ürün olarak sunmaktadır. 2025-2026 itibarıyla GPT-4o, Claude ve Gemini gibi büyük dil modelleri doğrudan görüntüden soru yanıtlama, özetleme ve form doldurma yapabilmektedir. Bu gelişme, klasik OCR + NLP boru hattının yerini giderek uçtan uca VLM tabanlı sistemlere bıraktığına işaret etmektedir. Bununla birlikte, özel alan uygulamalarında ve düşük donanımlı ortamlarda klasik OCR yöntemleri maliyet-etkinlik açısından tercih edilmeye devam etmektedir.

Sıkça Sorulan Sorular

  • check_circle :
  • check_circle :
  • check_circle :
  • check_circle :
  • check_circle :
  • check_circle :