Yeni Başlayanlar İçin Optik Karakter Tanımaya [OCR] Giriş

Yayınlanan: 2021-02-08

OCR veya optik karakter tanıma (OCR), fatura ve makbuz görüntülerinden veya üzerinde yazılı içerik bulunan herhangi bir şeyden bilgi çıkarmak için kullanılır. Bu çözümü geliştirmek için, OpenCV, metinleri bu görüntülerden çıkarabilen bir Tesseract OCR motoruna daha fazla beslenebilecek görüntüleri işlemek için kullanılabilir.

Ancak, metin kaldırma işlemi ancak görüntü netse ve metinler yeterince görünürse verimli olabilir. Perakende uygulamalarda, faturalardan metin çıkarmak için fatura filigranlarla dolu olabilir veya faturada bilgilerin alınmasını engelleyen bir gölge olabilir.

Daha uzun metin sayfalarından bilgi parçalarını yakalamak da zorlu bir görev olabilir. Bu problemlerin üstesinden gelmek için, bilgi çıkarma boru hattında, yukarıda bahsedilen zorluklarla ilgilenen görüntü işleme modülünden bir yer olması ihtiyatlıdır.

Metinlerin yerelleştirilmesi, karakter segmentasyonu ve bu karakterlerin tanınması gibi birkaç alt süreci içerir. Her ne kadar birkaç sistem segmentasyon olmadan yönetir. Bu tür yöntemler, hata oranını azaltmak için en küçük kareler yöntemini uygulamak ve vektör makinelerini karakterleri eşleştirmek için desteklemek gibi çeşitli prosedürler kullanılarak üretilir.

Yine de, genellikle bir görüntüdeki bir karakterin doluluğunu belirlemek için Evrişimli Sinir Ağları (CNN) kullanılır. Metinler tutarlı bir karakter dizisi olarak görülebilir. Bu karakterleri daha doğru bir şekilde tespit etmek ve tanımlamak, özel bir sinir ağı türü, yani tekrarlayan sinir ağları (RNN'ler) ve uzun kısa süreli bellek (LSTM) kullanılarak çözülebilecek bir zorluktur.

Sözcükler, metinleri bloblara ayarlayarak toplanır. Bu satırlar ve bölgeler ayrıca eşdeğer metin için incelenir. Metin satırları, yalnızca aralarındaki boşluk türüne göre kelimelere ayrılır. Tanımlama yöntemi iki adıma ayrılmıştır. İlk olarak, her bir kelime tanımlanır. Her mükemmel veya doğru tanımlanmış kelime ayrıca eğitim verisi olarak uyarlanabilir bir sınıflandırıcıya iletilir.

Girdi olarak alınan görüntü incelenir ve parçalar halinde işlenir. Metin, LSTM modeline satır satır beslenir. Optik karakter tanıma motoru olan Tesseract, çeşitli işletim sistemleri için mevcuttur. Görüntü verilerinden metinleri tam olarak belirlemek ve türetmek için CNN ve LSTM mimarisinin bir kombinasyonunu kullanır. Ancak, parazitli veya gölgeli görüntüler, alma doğruluğunu engeller.

Gürültüyü en aza indirmek veya görüntü kalitesini iyileştirmek için, OpenCV kitaplığı kullanılarak görüntünün ön işlemesi gerçekleştirilebilir. Bu tür ön işleme adımları, ROI'nin veya ilgilenilen bölgenin keşfedilmesini, görüntünün kırpılmasını, gürültünün (veya istenmeyen bölgelerin) çıkarılmasını, eşiklemeyi, genişleme ve aşınmayı, konturların veya kenarların saptanmasını içerebilir. Bu adımlar tamamlandıktan sonra OCR motorları görüntüyü okuyabilir ve ilgili metinleri mükemmel bir şekilde çıkarabilir.

İçindekiler

Kullanılan aletler

1. OpenCV

OpenCV, orijinal olarak C/C++ ve python dilleriyle uyumlu bir kitaplıktır. Görüntü örnekleriyle veri işlemek için yaygın olarak kullanılır. Görüntü örnekleri üzerinde gerekli dönüşümleri uygulayan kitaplıkta önceden tanımlanmış çok sayıda yararlı işlev bulunur. Genişletme, aşındırma, dilimleme, kenar algılama ve daha pek çok yukarıda belirtilen işlevler bu kitaplık kullanılarak kolayca yapılabilir.

2. Tesseract OCR Motoru

Google tarafından yayınlanan, metin tanıma için yaygın olarak kullanılan açık kaynaklı bir kitaplıktır. Çeşitli dillerdeki metinleri algılamak ve tanımlamak için kullanılabilir. İşleme oldukça hızlıdır ve bir görüntünün metin çıktısını neredeyse anında verir. Birçok tarama uygulaması bu kitaplıktan yararlanır ve çıkarma tekniklerine güvenir.

Metin Çıkarma Sürecinde Yer Alan Adımlar

(1) İlk olarak, gelen gürültülü görüntü örneğine kontur algılama, gürültü giderme ve erozyon ve genişleme işlevleri gibi olası görüntü işleme teknikleri uygulanır.

(2) Bu aşamadan sonra faturadaki filigran ve gölgelerin kaldırılması işlemi yapılır.

(3) Ayrıca, fatura bölümlere ayrılmıştır.

(4) Parçalı parçalar, tam metni elde etmek için Tesseract OCR motorundan geçirilir.

(5) Son olarak, Regex'i kullanarak toplam tutar, satın alma tarihi ve ürün başına harcamalar gibi tüm hayati bilgileri alırız.

metinler içeren belirli bir resimden bahsedeyim – faturalar ve faturalar. Genellikle üzerlerinde filigran bulunur, çoğu faturayı veren şirketin. Daha önce de belirtildiği gibi, bu filigranlar verimli metin çıkarma yolunda engellerdir. Çoğu zaman, bu filigranların kendileri metni içerir.

Tesseract motoru bir satırdaki her boyuttaki metni tanıdığı için bunlar gürültü olarak kabul edilebilir. Filigranlar gibi, gölgeler de motorun metinleri verimli bir şekilde çıkarmak için doğruluğunu engeller. Görüntünün kontrastı ve parlaklığı artırılarak gölgeler kaldırılır.

Çıkartma veya filigran içeren görüntüler için çok adımlı bir işlem gerçekleştirilir. İşlem, bir görüntüyü gri tonlamaya dönüştürmeyi, morfolojik dönüşümleri uygulamayı, eşiklemeyi (ikili ters çevirme veya otsu dönüşümü olabilir), koyu bölgede daha koyu pikselleri çıkarmayı ve son olarak filigran bölgesine daha koyu pikselleri yapıştırmayı içerir. Gölge kaldırma işlemine geri dönüyoruz.

İlk olarak gri tonlamalı görüntüye dilatasyon uygulanır. Bunun üzerinde, uygun bir çekirdeğe sahip bir orta mavi metni bastırır. Bu adımın çıktısı, gölge kısımlarını ve mevcut diğer renk bozulmalarını içeren bir görüntüdür. Şimdi orijinal görüntü ile elde edilen görüntü arasında basit bir fark işlemi hesaplanır. Son olarak, eşiklemeyi uyguladıktan sonra elde ettiğimiz şey gölgesiz bir görüntüdür.

Metin Tanıma ve Çıkarma

Görüntülerde bulunan baskılı metinler üzerinde bir Evrişimli Sinir Ağı modeli oluşturulabilir ve eğitilebilir. Model ayrıca aynı yazı tipine sahip diğer benzer görüntülerden metin algılamak için kullanılabilir. Bilgisayarla görme algoritmaları kullanılarak işlenen görüntülerden metin kurtarmak için bir Tesseract OCR motoru kullanılır.

Optik Karakter Tanıma için metin lokalizasyonu, ardından karakter segmentasyonu ve ardından karakterlerin tanınması gerçekleştirmeliyiz. Bu adımların tümü Tesseract OCR tarafından gerçekleştirilir. Tesseract OCR motoru, el yazısı metin yerine basılı metin üzerinde kullanıldığında oldukça hassas olduğunu kanıtlıyor.

İlgili Bilgileri Alma

Özellikle faturalar hakkında konuşmak, çıkarılan tüm metinlerden satın alma tarihi, Toplam tutar vb. gibi hayati bilgiler birden fazla normal ifade kullanılarak kolayca elde edilebilir. Genellikle faturanın sonunda yer alması nedeniyle faturaya yazılan toplam tutar normal ifadeler uygulanarak çıkarılabilir. Bu tür birçok faydalı bilgi, kolayca erişilebilmesi için tarihlerine göre saklanabilir.

Kesinlik

Metin alımının doğruluğu, Tesseract OCR tarafından elde edilen ve zaten faturada bulunan doğru bilgi sayısının, metinsel görüntüde fiilen mevcut olan kümülatif kelime sayısına oranı olarak tanımlanabilir. Daha yüksek doğruluk, ön işleme tekniklerinin daha yüksek verimliliği ve Tesseract OCR'nin bilgi çıkarma yeteneği anlamına gelir.

Sıradaki ne?

Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT- sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka alanında PG Diplomasına göz atın. B Mezun statüsü, 5'ten fazla pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.

Dünyanın En İyi Üniversitelerinden ML Kursu öğrenin . Kariyerinizi hızlandırmak için Master, Executive PGP veya Advanced Certificate Programları kazanın.

Yapay Zeka Güdümlü Teknolojik Devrime Öncülük Edin

Makine Öğrenimi ve NLP'de İleri Düzey Sertifika Programına Başvurun