Faturadan OCR ile veri çıkarma: ön işlemeden doğrulamaya adım adım
Beceri rehberi

Faturadan OCR ile veri çıkarma: ön işlemeden doğrulamaya adım adım

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 6 dk okuma

Taranmış fatura ve belgelerden OCR ile veri çıkarma: görüntü ön işleme, metin tanıma, alan bulma, kısa kod örneği, doğrulama kuralları ve insan onayı.

OCR fatura okumada neyi yapar, neyi yapmaz?

OCR (optik karakter tanıma), görüntüdeki yazıyı makinenin okuyabileceği metne çevirir. Bir faturayı OCR'dan geçirdiğinizde elinize düz bir metin ve kullanılan araca göre kelimelerin sayfadaki konumları gelir. Ancak "bu tutar genel toplamdır, bu tarih fatura tarihidir" bilgisi OCR çıktısında hazır bulunmaz.

Fatura okuma bu yüzden ardışık aşamalı bir iştir: önce metin tanıma, sonra alan çıkarma. İlk aşamada kalite, görüntüye ve OCR aracına bağlıdır. Sonraki aşamada ise fatura düzeninin çeşitliliği belirleyicidir; her tedarikçi farklı bir şablon kullanır.

Fatura zaten yapılandırılmış elektronik bir biçimde (veri dosyası olarak) geliyorsa OCR'a ihtiyaç yoktur; veriyi doğrudan dosyadan okumak daha güvenilirdir. OCR, kâğıt, taranmış ya da fotoğraflanmış ve PDF'e gömülmüş görüntü biçimindeki belgeler için gerekir.

Girdi kalitesi ve görüntü ön işleme

OCR doğruluğunun büyük bölümü, OCR çalışmadan önce belirlenir. Tarama ya da fotoğraf kalitesi düşükse en gelişmiş araç bile hata yapar.

Ön işleme adımları: • Eğiklik düzeltme: kâğıt hafif eğik taranmışsa satırlar karışır; görüntüyü döndürerek hizalayın. • Kırpma ve çerçeve temizleme: sayfa dışındaki kenar gölgelerini ve parmak izlerini çıkarın. • Kontrast ve gürültü: gri tonlamaya çevirmek, lekeleri temizlemek ve metni belirginleştirmek tanıma kalitesini artırır. • Çözünürlük: küçük yazılı alanlar (vergi no, kalem açıklamaları) için yeterli çözünürlükte tarama yapın. • Çok sayfalı belgeler: sayfaları ayırın ve sayfa sırasını koruyun.

Telefonla çekilen fotoğraflarda perspektif bozulması ve ışık farkı ek zorluk çıkarır. Mümkünse çalışanlara net çekim yönergesi verin: düz zemin, eşit ışık, belgenin tamamı kadrajda.

OCR'ı çalıştırmak: Tesseract örneği

Açık kaynak OCR motoru Tesseract, komut satırından kullanılabilir. Temel çağrı bir görüntü dosyası, bir çıktı adı ve bir dil kodu alır; çıktı adı yerine tire kullanılırsa sonuç ekrana yazdırılır. Çıktı biçimi olarak düz metin dışında, kelimelerin koordinatlarını içeren TSV ve hOCR de alınabilir. Fatura gibi konuma bağımlı belgelerde koordinatlı çıktı çok değerlidir, çünkü "toplam" kelimesinin sağındaki sayıyı bulmak koordinatlarla mümkün olur.

Örnek çağrı yapısı: tesseract fatura.png - -l DIL tsv

Burada DIL yerine Tesseract'ın desteklenen diller listesindeki ilgili dil kodunu yazmanız gerekir. Kurulum ve dil dosyaları işletim sistemine göre değişir.

Derin öğrenme tabanlı yeni nesil OCR modelleri ve bulut OCR hizmetleri de vardır; bunlar el yazısı, bozuk baskı ve karmaşık düzenlerde daha dayanıklı olabilir. Hangi aracı seçeceğinize, kendi fatura örneklerinizde yapacağınız karşılaştırma ile karar verin. Hizmet ve ürün adları hızlı değişir, bu nedenle güncel kabiliyetleri sağlayıcının belgelerinden kontrol edin.

Alanları bulmak: çapa kelime, konum ve düzenli ifade

Tutar, tarih, fatura numarası, tedarikçi adı gibi alanları bulmanın temel yöntemi, bir çapa kelime ve çevresindeki konuma bakmaktır. "Genel Toplam" ifadesi bulunur, aynı satırdaki ya da hemen sağındaki sayı alınır. Tarih için fatura tarihi etiketinin yanındaki değer, numara için fatura numarası etiketinin yanındaki değer okunur.

Basit bir örnek, düz metin üzerinde düzenli ifade kullanır:

import re

kalip = re.compile(r"Genel Toplam\s*:?\s*(?P<tutar>[\d.,]+)") eslesme = kalip.search(ocr_metni) if eslesme: ham = eslesme.group("tutar") tutar = float(ham.replace(".", "").replace(",", "."))

Türkçe sayı biçimi bu örnekte kritiktir: binlik ayracı nokta, ondalık ayracı virgüldür. Bunu dönüştürmeden okumak tutarı yanlış yorumlatır. Ayrıca OCR bazen "O" harfini sıfır ya da "l" harfini bir yerine okur; sayı alanlarında bu karışıklıkları düzeltecek bir temizleme adımı ekleyin.

Şablon sayısı arttıkça kural bakımı zorlaşır. Bu durumda düzen bilgisini kullanan modeller ya da büyük dil modeli ile alan çıkarma (ayrı bir sayfada ele alınır) daha ölçeklenebilir olur.

Kalem satırları ve tablolar

Faturanın en zor bölümü kalem tablosudur. Her satırda ürün adı, miktar, birim fiyat ve tutar vardır; sütunlar bazen birbirine karışır, satırlar sayfa sonunda bölünür.

Yaklaşımlar: • Sütun konumlarını koordinatlardan belirleyip satırları bu konumlara göre gruplamak. • Tablo algılama için belge düzeni analizi modelleri kullanmak. • Kalem düzeyinde veri gerekmiyorsa yalnızca başlık düzeyindeki alanları (toplam, vergi, tarih, numara) çıkarmak ve kalemleri görüntü olarak saklamak.

Hangi düzeyde veri çıkaracağınıza iş ihtiyacı karar vermelidir. Muhasebe kaydı için başlık alanları sıklıkla yeterlidir; harcama analizi yapılacaksa kalem düzeyi gerekir. Her ek alan, hata ve bakım yükünü artırır; bu yüzden ihtiyaç olmayan alanı kapsamdan çıkarın.

Doğrulama kuralları ve insan onayı

OCR çıktısına doğrudan güvenilmez. Çıkarılan veriyi iş kurallarıyla sınayın: • Tutar tutarlılığı: kalemlerin toplamı artı vergi, genel toplamla uyuşuyor mu? • Tarih mantığı: fatura tarihi gelecekte mi, makul bir aralıkta mı? • Tedarikçi eşleme: vergi kimliği ya da unvan, kayıtlı tedarikçilerle eşleşiyor mu? • Mükerrer kontrolü: aynı tedarikçi ve numara ile fatura daha önce işlendi mi? • Format kontrolü: numara ve kimlik alanları beklenen biçimde mi?

Doğrulamadan geçemeyen ya da OCR güveni düşük belgeleri bir insan kuyruğuna yönlendirin. Kişi, belgenin görüntüsü ile çıkarılan alanları yan yana görür ve düzeltir. Bu düzeltmeler, hataların hangi alanda toplandığını gösterir ve kuralları ya da modeli iyileştirmek için kullanılır.

Güven değerini bir eşikle kullanmak, otomasyon oranı ile hata riski arasındaki dengeyi ayarlamanın en basit yoludur. Eşiği düşürmek daha çok belgenin otomatik geçmesini, yükseltmek ise daha çok inceleme gerektirmesini sağlar.

Sık yapılan hatalar

Fatura OCR projelerinde tekrar eden sorunlar: • Ön işlemeyi atlayıp yalnızca OCR aracını değiştirerek kaliteyi artırmaya çalışmak. • Birkaç örnek faturayla başarılı görünen sistemin gerçek tedarikçi çeşitliliğinde çökmesi. Sınama verisi gerçek dağılımı yansıtmalıdır. • Türkçe sayı ve tarih biçimlerini, harf-rakam karışıklıklarını ele almamak. • Doğrulama kuralları olmadan veriyi muhasebe sistemine yazmak. • Kişisel ve ticari bilgi içeren belgelerin saklanma ve erişim kurallarını düşünmemek.

Başlangıç için küçük ve temsili bir fatura örnek seti hazırlayın, ölçüm yapın, alan bazında hata oranına bakın ve en pahalı hatalara öncelik verin.

Mindset programında OCR ve belge işleme

Mindset kataloğundaki OCR ve Belge İşleme programı, OCR teknolojilerine giriş ve tarihsel gelişimi, görüntü ön işleme ve kalite iyileştirmeyi, Tesseract ve açık kaynak OCR araçlarını, derin öğrenmeli OCR yaklaşımlarını, belge düzeni analizi ve yapısal çıkarımı, kurumsal belge işlem hattı tasarımını ile bulut OCR servisleri ve sektör uygulamalarını işler. Doküman Sınıflandırması programı ise belgenin türünü otomatik belirleme tarafını tamamlar.

Bu içerik, muhasebe ve finans operasyonlarında belge yükünü azaltmak isteyen dönüşüm ekipleri ile belge işleme hattı kuran veri ve yazılım ekipleri için uygundur. Kurumlar kendi fatura örneklerini kullanarak ön işleme, çıkarma ve doğrulama adımlarını uygulamalı olarak çalışabilir.

İlgili Mindset programı

OCR ve Belge İşleme

Sık sorulanlar

Sık sorulan sorular

Fatura okuma için hangi OCR aracı seçilmeli?

Tek doğru araç yoktur. Açık kaynak seçenekler kontrol ve maliyet avantajı sunar, bulut hizmetleri ise karmaşık düzen ve bozuk baskıda daha dayanıklı olabilir. Seçim için kendi fatura örneklerinizden temsili bir küme hazırlayıp araçları alan bazında karşılaştırın. Veri gizliliği ve belge gönderim koşulları da karar kriteridir.

OCR bazı karakterleri yanlış okuyor, ne yapılabilir?

Önce görüntü kalitesini iyileştirin: eğiklik, kontrast ve çözünürlük. Ardından sayı alanlarında harf-rakam karışıklığını düzelten bir temizleme adımı ve beklenen biçimleri kontrol eden doğrulama kuralları ekleyin. Hâlâ sorun varsa farklı bir OCR modeli deneyin veya yalnızca sorunlu alanlar için insan kontrolü kuyruğu kurun.

Faturadaki kalem satırlarını da çıkarmak gerekir mi?

İş ihtiyacına bağlıdır. Muhasebe kaydı için genellikle tarih, numara, tedarikçi, vergi ve toplam yeterlidir. Harcama analizi ya da stok eşleme gerekiyorsa kalem düzeyi gerekir. Kalem tablosu hata ve bakım yükünü artırdığından, gerçekten kullanılmayacaksa kapsamdan çıkarın ve belge görüntüsünü saklayın.

OCR ile okunan veriye ne kadar güvenilir?

Tek başına yeterince güvenilir değildir; bu yüzden toplam tutarlılığı, tedarikçi eşleme ve mükerrer kontrolü gibi doğrulama kuralları gerekir. Güven eşiğinin altında kalan belgeler insan onayına gider. Güven düzeyi belge türüne, tarama kalitesine ve fatura şablonu çeşitliliğine göre değişir; bu nedenle kendi verinizde ölçmeden kesin bir beklenti koymayın.

OCR ile büyük dil modeli birlikte kullanılabilir mi?

Evet. Yaygın düzen, OCR ile metni ve koordinatları elde edip büyük dil modeline alan çıkarma görevini vermektir. Bu, şablon bağımlı kuralların bakım yükünü azaltabilir. Modelin çıktısı yine doğrulama kurallarından geçmeli, maliyet ve gizlilik açısından değerlendirilmelidir. Konu ayrı bir sayfada ayrıntılı ele alınır.

OCR ile Fatura Okuma ve Veri Çıkarma