Makine Öğrenimi PlatoBlockchain Veri Zekasını kullanarak El Yazısı Tanıma kolayca nasıl yapılır? Dikey Arama. Ai.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

El yazısı OCR yapmak ister misiniz? Bu blog, derin öğrenmeyi kullanan en yeni el yazısı tanıma yöntemlerine kapsamlı bir genel bakış sunmaktadır. En son araştırmaları ve makaleleri inceledik ve ayrıca sıfırdan bir el yazısı okuyucusu oluşturduk.


Nanonetler OCR API'si çok ilginç var kullanım durumları. Daha fazla bilgi edinmek için bir Nanonets AI uzmanıyla konuşun.


Giriş

Optik Karakter Tanıma (OCR) pazar büyüklüğünün 13.38 yılında yıllık %2025 büyümeyle 13.7 milyar ABD doları olması bekleniyor. Bu büyüme, iş süreçlerinin, iş gücü maliyetlerini azaltmak ve değerli iş saatlerinden tasarruf etmek için OCR kullanarak hızla dijitalleştirilmesinden kaynaklanıyor. OCR çözülmüş bir sorun olarak görülse de, bunun önemli bir bileşeni vardır; El Yazısı Tanıma (El Yazısı OCR) veya El Yazısı Metin Tanıma (HTR), hala zorlu bir sorun ifadesi olarak kabul edilmektedir. İnsanlar arasında el yazısı stilleri arasındaki yüksek farklılık ve el yazısı metnin basılı metinle karşılaştırıldığında düşük kalitesi, bu metnin makine tarafından okunabilir metne dönüştürülmesinde önemli engeller oluşturur. Ancak sağlık, sigorta ve bankacılık gibi birçok sektör için çözülmesi gereken önemli bir sorundur.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır
Kaynak :- https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

Transformatör mimarilerinin ortaya çıkışı gibi Derin Öğrenmedeki son gelişmeler, el yazısı metin tanımayı kırma konusundaki ilerlememizi hızlı bir şekilde takip etti. El yazısı metnin tanınması, ICR'yi çözmek için gereken algoritmaların genel OCR'yi çözmekten çok daha fazla zekaya ihtiyaç duyması nedeniyle Akıllı Karakter Tanıma (ICR) olarak adlandırılır.

Bu makalede el yazısı metin tanıma görevi, bunun karmaşıklıkları ve bunu derin öğrenme tekniklerini kullanarak nasıl çözebileceğimizi öğreneceğiz.


El yazısıyla yazılan formlardan veri çıkarmak mı istiyorsunuz? Başını aşmak Nanonetler ve El Yazısı OCR modellerini ücretsiz oluşturmaya başlayın!


El Yazısı Tanıma Sorunları

  1. İnsandan insana büyük değişkenlik ve belirsizlik
  2. Bireysel bir kişinin el yazısı stili de zaman zaman değişir ve tutarsızdır
  3. Zaman içinde bozulma nedeniyle düşük kaynak belge / resim kalitesi
  4. Basılı belgelerdeki metin düz bir çizgide dururken, insanların beyaz kağıda düz bir çizgi halinde bir satır metin yazmasına gerek yoktur.
  5. El yazısı, karakterlerin ayrılmasını ve tanınmasını zorlaştırır
  6. El yazısındaki metnin sağa doğru değişken dönüşü olabilir; bu, tüm metnin düz durduğu basılı metnin aksine
  7. Öğrenmek için iyi bir etiketli veri kümesi toplamak, sentetik verilere kıyasla ucuz değildir

Kullanım durumları

Sağlık ve eczacılık ürünleri

Hasta reçetelerinin dijitalleştirilmesi, sağlık / ilaç endüstrisinde önemli bir sorun noktasıdır. Örneğin Roche, her gün milyonlarca petabayt tıbbi PDF'leri işlemektedir. El yazısı metin algılamanın önemli bir etkiye sahip olduğu bir başka alan da hasta kaydı ve form dijitalleştirmedir. Hastaneler / ilaçlar, hizmet araç setlerine el yazısı tanıma özelliğini ekleyerek kullanıcı deneyimini önemli ölçüde iyileştirebilir.

Sigorta

Büyük bir sigorta sektörü günde 20 milyondan fazla belge almaktadır ve hak talebinin işleme alınmasındaki gecikme, şirketi korkunç şekilde etkileyebilir. Talep belgesi çeşitli farklı el yazısı stillerini içerebilir ve taleplerin işlenmesinin tamamen manuel olarak otomatikleştirilmesi, boru hattını tamamen yavaşlatacaktır.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır
Kaynak: - https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

Bankacılık

İnsanlar düzenli olarak çek yazıyor ve çekler hala çoğu nakit dışı işlemde önemli bir rol oynuyor. Gelişmekte olan birçok ülkede, mevcut çek işleme prosedürü, bir banka çalışanının bir çekte bulunan bilgileri okumasını ve manuel olarak girmesini ve ayrıca imza ve tarih gibi girişleri doğrulamasını gerektirir. Bir bankada her gün çok sayıda çek işlenmesi gerektiğinden, bir el yazısı metin tanıma sistemi maliyetlerden ve insan işinden saatlerce tasarruf sağlayabilir.

Çevrimiçi Kitaplıklar

Tüm dünyaya erişim için görüntü taramaları yüklenerek büyük miktarda tarihsel bilgi dijitalleştiriliyor. Ancak bu çaba, görüntülerdeki indekslenebilen, sorgulanabilen ve göz atılabilen metinler tanımlanana kadar pek kullanışlı değildir. El yazısı tanıma, ortaçağ ve 20. yüzyıl belgelerini, kartpostalları, araştırma çalışmalarını vb. Canlandırmada kilit bir rol oynar.

Yöntemler

El Yazısı Tanıma yöntemleri genel olarak aşağıdaki iki türe ayrılabilir

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır
  1. Çevrimiçi Yöntemler : - Çevrimiçi yöntemler, dijital bir kalem / ekran kalemi içerir ve yukarıdaki sağdaki şekilde görüldüğü gibi metin yazılırken vuruş bilgisine, kalem konumuna erişime sahiptir. Yazılan metnin akışıyla ilgili çok fazla bilgiye sahip olma eğiliminde olduklarından, oldukça yüksek bir doğrulukla sınıflandırılabilirler ve metindeki farklı karakterler arasındaki sınır çok daha net hale gelir.
  2. Çevrimdışı Yöntemler : - Çevrimdışı yöntemler, metni yazıldıktan sonra tanımayı içerir ve bu nedenle, kaynaktan (örneğin kağıttan) olası bir arka plan gürültüsü eklenmesiyle birlikte yazma sırasında yer alan vuruşlar/yönler hakkında bilgi sahibi olmaz.

Gerçek dünyada, vuruş bilgilerini yakalamak için sensörlere sahip bir dijital kalem taşımak her zaman mümkün/ölçeklenebilir değildir ve dolayısıyla çevrimdışı metni tanıma görevi çok daha alakalı bir sorundur. Bu nedenle şimdi çevrimdışı metni tanıma sorununu çözmek için çeşitli teknikleri tartışacağız.

teknikleri

El yazısı tanıma sorununu çözmeye yönelik ilk yaklaşımlar, Gizli Markov Modelleri (HMM), SVM vb. gibi Makine Öğrenimi yöntemlerini içeriyordu. İlk metin önceden işlendikten sonra döngüler, dönüm noktaları, en boy oranı vb. gibi önemli bilgileri tanımlamak için özellik çıkarma gerçekleştirilir. bireysel bir karaktere sahiptir. Oluşturulan bu özellikler artık sonuçları almak için HMM diyen bir sınıflandırıcıya besleniyor. Makine öğrenimi modellerinin performansı, manuel özellik çıkarma aşaması ve öğrenme kapasitelerinin sınırlı olması nedeniyle oldukça sınırlıdır. Özellik çıkarma adımı her dile göre değişir ve bu nedenle ölçeklenebilir değildir. Derin öğrenmenin ortaya çıkışıyla birlikte el yazısı tanımanın doğruluğunda muazzam gelişmeler yaşandı. El yazısı tanımaya yönelik derin öğrenme alanında öne çıkan araştırmalardan birkaçını tartışalım

Çok Boyutlu Tekrarlayan Sinir Ağları

Bildiğimiz gibi RNN/LSTM, zamansal kalıpları tanımlamak ve sonuçlar üretmek için sıralı verilerle başa çıkabilir. Ancak bunlar 1 boyutlu verilerle sınırlı olduğundan görüntü verilerine doğrudan uygulanamaz. Bu sorunu çözmek için bu makalenin yazarları aşağıdaki şekilde görülebileceği gibi çok boyutlu bir RNN/LSTM yapısı önerdiler.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Aşağıdaki, genel bir RNN ile çok boyutlu bir RNN arasındaki farktır. Genel bir RNN'de, gizli katman, i-1 zamanında önceki bir gizli katmandan durumu aldığımı söyler. Çok boyutlu RNN'de örneğin 2 boyutlu bir RNN diyelim, gizli katman (i, j) birden çok önceki gizli katmandan (yani (i-1, j) ve (i, j-1) durumları alır ve böylece her ikisinden de bağlamı yakalar. bir ağ aracılığıyla yerel bölgenin net bir şekilde anlaşılması için çok önemli olan bir görüntüdeki yükseklik ve genişlik. Bu, yalnızca önceki katmanlardan değil, aynı zamanda bir BI-LSTM'nin t-1 ve t + 1'den bilgi alma şekline benzer şekilde gelecekteki katmanlardan da bilgi almak için daha da genişletilmiştir. Benzer şekilde bir 2D MDRNN gizli katmanı i artık bilgileri (i-1, j), (i, j-1), (i + 1, j), (i, j + 1) alabilir ve böylece tüm yönlerde bağlamı yakalayabilir.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Ağ yapısının tamamı yukarıda gösterilmiştir. MDLSTM, yukarıdaki MDRNN tartışmasındaki RNN bloğunu bir LSTM bloğu ile değiştirmekten başka bir şey olmayan kullanılır. Giriş, şimdi MDSTM katmanlarına beslenen 3 × 4 boyutunda bloklara bölünmüştür. Ağ, MDLSTM katmanlarından oluşan hiyerarşik bir yapıya ve ardından art arda ileri besleme (YSA) katmanlarına sahiptir. Daha sonra son çıktı 1B vektörüne dönüştürülür ve çıktı oluşturmak için CTC işlevine verilir.

Bağlantısal Zamansal Sınıflandırma (CTC) yalnızca giriş verilerinin ve çıktı transkripsiyonunun mevcut olduğu ancak konuşma için sesteki belirli bir bölgenin veya el yazısı için görüntülerdeki belirli bir bölgenin nasıl hizalandığı gibi hiçbir hizalama ayrıntısının sağlanmadığı konuşma tanıma, el yazısı tanıma vb. görevlerle ilgilenmek için kullanılan bir algoritmadır. belirli bir karaktere göre hizalanır. Her karakterin kapladığı alan miktarı el yazısında kişiden kişiye ve zamandan zamana değiştiği için, her karaktere aynı alanı vermek gibi basit buluşsal yöntemler işe yaramayacaktır.

El yazısı tanıma kullanım durumumuz için, belirli bir cümle için girdi görüntüsü bölgelerini girdi olarak düşünün X=[x1,x2,…,x ** T] beklenen çıktı ise Y=[y1,y2,…,y ** U] . X verildiğinde doğru Y'yi bulmamız gerekiyor. CTC algoritması, X girdisini alarak ve nihai çıktı için bir tahmin yapabileceğimiz tüm olası Y'ler üzerinde dağılım vererek çalışır.

CTC, bir giriş bölgesindeki yinelenen karakterler ile tekrarlanan karakterler arasında ayrım yapmak için örneğin – gibi bir temel karakter kullanır. Örneğin, belirli bir karakter birden fazla giriş bölgesini kapsayabilir ve bu nedenle CTC aynı karakteri ardışık olarak üretecektir. Örnek: - Giriş sıkışmaları ve CTC'nin çıkışı jjaammmees. Nihai çıktı, tekrarlanan çıktıların daraltılmasıyla elde edilir ve dolayısıyla james elde edilir. Ancak şimdi merhabada 'l' diyen yinelenen karakterleri sunmak için, bir ayırmaya ihtiyacımız var ve bu nedenle tüm çıktılar kısa çizgi (-) ile ayrılmıştır. Artık merhaba çıktısı h-ee-ll-ll-oo olabilir ve eğer daraltılırsa helo değil merhaba olur. CTC'nin nasıl çalıştığı hakkında daha fazla bilgiyi burada görebilirsiniz CTC.

Her konum için en yüksek olasılıklı basit buluşsal yönteme dayalı olarak CTC çıktısının kodunu çözerken, gerçek dünyada bir anlam ifade etmeyebilecek sonuçlar elde edebiliriz. Bunu çözmek için sonuçları iyileştirmek amacıyla farklı bir kod çözücü kullanabiliriz. Farklı kod çözme türlerini tartışalım

  1. En iyi yol kod çözme : - Şimdiye kadar tartıştığımız genel kod çözme budur. Her pozisyonda modelin çıktısını alır ve en yüksek olasılıkla sonucu buluruz.
  2. Işın arama kod çözme : - Işın araması, her seferinde ağdan tek bir çıktı almak yerine, her olasılıkla birden çok çıktı yolunu tutmayı ve zinciri, ışın boyutunu sabit tutmak için daha az olasılığa sahip yeni çıktılar ve bırakma yolları ile genişletmeyi önerir. Bu yaklaşımla elde edilen sonuçlar, açgözlü yaklaşımı kullanmaktan daha doğrudur
  3. Dil Modeli ile ışın araması : - Işın araması, ızgara aramasından daha doğru sonuçlar sağlar ancak yine de anlamlı sonuçlara sahip olma sorununu çözmez. Bunu çözmek için, nihai sonuçları oluşturmak üzere hem modelden hem de dil modelinden gelen olasılıkları kullanarak ışın aramayla birlikte bir dil modeli kullanabiliriz.

Doğru kod çözme sonuçları oluşturmada daha fazla ayrıntıya buradan bakılabilir. göre

Kodlayıcı-Kod Çözücü ve Dikkat Ağları

Kodlayıcı-kod çözücü ağlarına sahip Seq2Seq modelleri son zamanlarda konuşma tanıma, makine çevirisi vb. görevlerin çözümünde popüler olmuştur ve bu nedenle ek bir dikkat mekanizması dağıtılarak el yazısı tanımanın kullanım durumunu çözecek şekilde genişletilmiştir. Bu alandaki bazı ufuk açıcı araştırmaları tartışalım

Tara, Katıl ve Oku

Bu çığır açan çalışmada, Tara, Katıl ve Oku (SAR) yazarlar, uçtan uca el yazısı tanıma için dikkat temelli bir modelin kullanımını önermektedir. Araştırmanın ana katkısı, bir ön işleme adımı olarak metnin satırlara bölünmeden otomatik olarak transkripsiyonudur ve böylece tüm sayfayı tarayabilir ve sonuç verebilir.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

SAR, son katmanda küçük bir değişiklikle yukarıda tartıştığımıza benzer MDLSTM tabanlı mimariyi kullanır. Son doğrusal katmandan, yani yukarıdaki şekildeki son Toplam bloğundan sonra, özellik haritaları dikey boyutta daraltılır ve çıktıları elde etmek için son bir softmax işlevi uygulanır.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

SAR mimarisi, özellik çıkarıcı olarak görev yapan bir MDLSTM mimarisinden oluşur. Softmax çıkışı ve CTC kaybına sahip son çökme modülü, bir dikkat modülü ve bir LSTM kod çözücüyle değiştirilir. Kullanılan dikkat modeli, bir sonraki makalede daha detaylı olarak açıklanan içerik temelli dikkat ve konum temelli dikkatin karma bir kombinasyonudur. Kod çözücü LSTM modülleri, bir sonraki tahmin için nihai çıktı karakterini ve durum vektörünü oluşturmak için önceki durumu, önceki dikkat haritasını ve kodlayıcı özelliklerini alır.

Katıl, Katıl ve Hecele

Bu makale, el yazısıyla yazılmış kelime tanıma için dikkat temelli bir diziden diziye model önermektedir. Önerilen mimarinin üç ana bölümü vardır: bir CNN ve bir çift yönlü GRU'dan oluşan bir kodlayıcı, ilgili özelliklere odaklanmak için ayrılmış bir dikkat mekanizması ve karşılık gelen kelimeyi heceleyebilen tek yönlü bir GRU tarafından oluşturulan bir kod çözücü, karakter karakter.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Kodlayıcı, görsel özellikleri çıkarmak için bir CNN kullanır. Özellik çıkarıcı olarak önceden eğitilmiş bir VGG-19-BN mimarisi kullanılır. Giriş görüntüsü X özellik haritasına dönüştürülür ve bu harita daha sonra tüm kanalların sütunlara göre bölünmesi ve sıralı bilgi elde etmek için birleştirilmesiyle X' şeklinde yeniden şekillendirilir. X' ayrıca çift yönlü bir GRU kullanılarak H'ye dönüştürülür. GRU, doğası gereği LSTM'ye benzer bir sinir ağıdır ve zamansal bilgileri yakalayabilir.

Ayrıca, kod çözücüden çıktı tahmin edilirken bir dikkat modeli kullanılır. Makale, incelenen iki farklı tür dikkat mekanizmasını tartışıyor.

  1. İçeriğe Dayalı Dikkat : - Bunun arkasındaki fikir, kod çözücünün mevcut gizli durumu ile kodlayıcıdan gelen özellik haritası arasındaki benzerliği bulmaktır. Geçerli zaman adımında mevcut karakteri tahmin etmek için kullanılabilen kodlayıcının özellik haritasında en ilişkili özellik vektörlerini bulabiliriz. Dikkat mekanizmasının nasıl çalıştığına dair daha fazla ayrıntı buradan görülebilir. Dikkat
  2. Konum Bazlı Dikkat :- İçerik Tabanlı Konum mekanizmalarının ana dezavantajı, konum bilgisinin kodlayıcının çıktısına gömülü olduğuna dair örtülü bir varsayımın bulunmasıdır. Aksi halde kod çözücüden tekrarlanan karakter çıktılarını birbirinden ayırmanın bir yolu yoktur. Örneğin Charmander kelimesini düşünün, a karakteri iki kez tekrarlanıyor ve konum bilgisi olmadan kod çözücü bunları ayrı karakterler olarak tahmin edemeyecek. Bunu hafifletmek için mevcut karakter ve onun hizalaması, hem kodlayıcı çıktısı hem de önceki hizalama kullanılarak tahmin edilir. Konum tabanlı katılımın nasıl çalıştığına ilişkin daha fazla ayrıntı görülebilir okuyun.

Kod çözücü, tek yönlü çok katmanlı bir GRU'dur. Her t adımında, önceki zaman adımından girdi ve dikkat modülünden bağlam vektörü alır. Çok terimli Kod Çözme ve etiket yumuşatma, genelleme yeteneğini geliştirmek için eğitimde incelenir.

Transformatör Modelleri

Kodlayıcı-kod çözücü ağları, el yazısı tanımaya yönelik sonuçlara ulaşmada oldukça iyi olmasına rağmen, ilgili LSTM katmanları nedeniyle eğitimde bir darboğaza sahiptirler ve bu nedenle paralelleştirilemezler. Son zamanlarda transformatörler oldukça başarılı oldu ve dille ilgili çeşitli görevlerin çözümünde LSTM'nin yerini aldı. Şimdi el yazısı tanıma için transformatör tabanlı modellerin nasıl uygulanabileceğini tartışalım.

Okuduklarınıza Dikkat Edin

Bu çalışmada yazarlar, hem görsel hem de metin aşamalarında çok başlı dikkat öz-dikkat katmanlarını kullanan transformatör tabanlı bir mimarinin kullanımını önermiş ve böylece hem karakter tanımayı hem de kodu çözülecek karakter dizilerinin dile bağlı bağımlılıklarını öğrenebilirler. Dil bilgisi modelin kendisine gömülü olduğu için, bir dil modeli kullanan herhangi bir ek işlem sonrası aşamasına gerek yoktur ve bu nedenle, sözlüğün bir parçası olmayan çıktıları tahmin etme yeteneğine sahiptir. Bu metin kodlamasına ulaşmak için kelime düzeyinde değil, karakter düzeyinde gerçekleşir. Transformatör mimarisi, modelin her bölge veya karakter için paralel olarak eğitilmesine izin verdiğinden, eğitim süreci çok basitleştirilmiştir.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Ağ mimarisi aşağıdaki bileşenlerden oluşur

  1. Görsel kodlayıcı : - İlgili özellikleri çıkarmak ve farklı karakter konumlarına çok başlı görsel öz-dikkat uygulamak için
  2. Metin Dönüştürücü : - Metin girişini alma, kodlama, çok başlı dil öz dikkatini uygulama ve hem görsel hem de metin özelliklerine karşılıklı dikkat gösterme görevini yerine getirir.
Görsel Kodlayıcı

Resnet50 omurgası yukarıdaki şekilde görüldüğü gibi özelliklerin ekstra olarak kullanılması için kullanılacaktır. Resnet3 Fc'den alınan 50 boyutlu özellik haritası çıktısı, aynı genişliği ve dolayısıyla (fxh, w) şeklini koruyarak 2d'ye yeniden şekillendiren Geçici Kodlama modülüne aktarılır. Bu, şekli (f, w)'ye düşürmek için tamamen bağlı bir katmana beslenir ve sonuçta ortaya çıkan çıktı Fc' olur. Ek olarak, Vaswani'nin Transformer makalesinde bahsedildiği gibi konum bilgisini korumak için Fc'ye konumsal bir kodlama TE eklenir. Transformatör mimarisinin nasıl tasarlandığına dair daha fazla bilgi görülebilir okuyun. Çıktı, şekil (f, w) ile son özellik haritasını elde etmek için tamamen bağlı bir katmandan geçirilir. Nihai çıktı, görsel açıdan zengin özellik haritası elde etmek için 8 başlı çok başlı bir dikkat modülünden geçirilir

Metin Dönüştürücü

Girdi metni, karakter seviyesinde yerleştirmeler oluşturan bir kodlayıcıdan geçirilir. Bu yerleştirmeler, bir Temporal Encoder modülü kullanan Visual Encoder'dakine benzer şekilde zamansal konumla birleştirilir. Bu sonuç daha sonra Görsel kodlayıcıdaki dikkat modülüne benzer bir Çok Başlı Dil Öz Dikkat modülüne aktarılır. Görsel kodlayıcıdan görsel özellikler boyunca üretilen metin özellikleri, görevi hem görüntülerden hem de metin girişlerinden öğrenilen özellikleri hizalamak ve birleştirmek olan bir karşılıklı dikkat modülüne aktarılır. Çıktı, nihai sonucu almak için bir softmax işlevinden geçirilir.

Test verilerini değerlendirirken, transkripsiyonlar mevcut değildir. Bu nedenle, yalnızca başlangıç ​​simgesi <S> girdi olarak geçirilir ve ilk tahmin edilen karakter sisteme geri beslenir, bu da ikinci tahmin edilen karakteri çıkarır. Bu çıkarım işlemi, dizi sembolü <E> üretilinceye veya maksimum çıktı uzunluğu N'ye ulaşılana kadar bir döngüde tekrarlanır.

El Yazısı Metin Üretimi

El Yazısı Metin Oluşturma, gerçek görünümlü el yazısı metni oluşturma görevidir ve bu nedenle mevcut veri kümelerini genişletmek için kullanılabilir. Bildiğimiz gibi derin öğrenme, eğitmek için çok fazla veri gerektirirken, farklı diller için çok sayıda etiketli el yazısı görüntüsü elde etmek zahmetli bir iştir. Bunu çözmek için eğitim verileri oluşturmak amacıyla Üretken Rekabetçi Ağları kullanabiliriz. Burada böyle bir mimariyi tartışalım

ScrabbleGAN

ScrabbleGAN, hem stil hem de sözlük olarak çok yönlü el yazısı metin görüntülerini sentezlemek için yarı denetimli bir yaklaşım izliyor. Değişken uzunlukta görüntüler üretme yeteneğine sahiptir. Oluşturucu ayrıca, metnin el yazısı olması veya kalem vuruşunun ne kadar kalın / ince olması gerektiğine karar vermemize olanak tanıyan, ortaya çıkan metin stilini de değiştirebilir.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Mimari, BigGAN'a dayalı tamamen evrişimli bir jeneratörden oluşur. Girişteki her karakter için karşılık gelen bir filtre seçilir ve tüm değerler birbirine birleştirilir ve daha sonra oluşturulan metin stilini kontrol eden bir gürültü vektörü z ile çarpılır. Yukarıda görülebileceği gibi, her bir karakter için oluşturulan bölgeler üst üste gelir, böylece bağlantılı özyinelemeli metnin oluşturulmasına yardımcı olur ve farklı karakter boyutlarının esnekliğine izin verir. Örneğin, e ve t sınırlı bir alanı kaplarken m alanın çoğunu kaplar. Tüm kelime veya cümle için aynı stili korumak için stil vektörü z tüm karakterler için sabit tutulur.

BigGAN mimarisini temel alan evrişimli bir ayırıcı, görüntülerin oluşturma stilinin sahte mi yoksa gerçek mi göründüğünü sınıflandırmak için kullanılır. Ayırıcı, karakter düzeyindeki açıklamalara dayanmaz ve dolayısıyla sınıf koşullu GAN'a dayanmaz. Bunun avantajı, etiketlenmiş verilere gerek olmaması ve dolayısıyla eğitim verilerinin parçası olmayan görünmeyen derlemden gelen verilerin, eğitim ayrımcısı için kullanılabilmesidir. Ayırıcıyla birlikte bir metin tanıyıcı R, oluşturulan metnin gerçek dünyada anlamlı olup olmadığını veya anlamsız olup olmadığını sınıflandırmak üzere eğitilir. Tanıyıcı, tanıyıcıyı biraz daha zayıflatmak ve belirsiz olsa bile metni tanımamak için tekrarlayan başlığın çıkarıldığı CRNN mimarilerini temel alır. R çıkışında oluşturulan metin, jeneratöre verilen giriş metniyle karşılaştırılır ve kayıp fonksiyonuna karşılık gelen bir ceza eklenir.

ScrabbleGAN tarafından üretilen çıktılar aşağıda gösterilmiştir.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Veri kümeleri: -

  1. IAM : - IAM veri kümesi, 100 farklı yazar tarafından yazılmış kelimelerle birlikte İngilizce dilinden yaklaşık 657 bin kelime görüntüsü içerir. Eğitim, test ve doğrulama seti, birbirini dışlayan yazarlar tarafından yazılan kelimeleri içerirLink: - http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. özgeçmiş : - CVL veri seti, yaklaşık 310 katılımcı tarafından yazılan ve tren ve test setlerine bölünmüş yaklaşık 83 kelime mahsulü ile sonuçlanan yedi el yazısı belgeden oluşurLink: - https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. RIMES : - Fransızca dilinde yaklaşık 60 bin görselden oluşan ve 1300 yazar tarafından yazılmış, her bir kişi tarafından yazılan yaklaşık 5 postaya karşılık gelen kelimeler içerir. http://www.a2ialab.com/doku.php?id=rimes_database:start

Metrikler: -

Karakter Hata Oranı : - Bir dizgiyi diğerine dönüştürmek için gereken karakter ikamelerinin (Sc), eklemelerin (Ic) ve silmelerin (Dc) toplamı olan Levenshtein mesafesinin, içindeki toplam karakter sayısına bölünmesiyle hesaplanır. groundtruth (Nc)

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Kelime Hata Oranı : - Bir dizgeyi diğerine dönüştürmek için gereken kelime ikamelerinin (Sw), eklemelerin (Iw) ve silmelerin (Dw) toplamının, temel gerçek (Nw) toplam kelime sayısına bölünmesiyle hesaplanır.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Kendi el yazısı tanıma modelinizi eğitin

Şimdi kendi el yazısı metin tanıma modelimizi nasıl eğitebileceğimizi görelim. Biz IAM veri kümesi üzerinde eğitim vereceğiz ancak modeli kendi veri kümeniz üzerinde de eğitebilirsiniz. Bunu ayarlamayla ilgili adımları tartışalım

Veri

IAM veri seti kaydını indirmek için okuyun. Kaydedildikten sonra words.tgz dosyasını şuradan indirin okuyun. Bu, elle yazılmış kelime görüntülerinden oluşan bir veri kümesi içerir. Ayrıca, word.txt ek açıklama dosyasını şuradan indirin: okuyun.

Kendi veri kümenizi kullanmak istiyorsanız, IAM veri kümesinin veri yapılandırmasını izlemeniz gerekir.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Yukarıdakiler AIM veri kümesi klasör yapısının nasıl göründüğünü gösterir. Burada a01, a02 vb. her biri veri alt klasörlerine sahip olan ana klasörleri temsil eder. Her alt klasörde, dosya adına önek olarak eklenen klasörün adını içeren bir dizi resim bulunur.

Ek olarak, görüntü dosyalarının yollarını ve ilgili transkripsiyonları belirtmek için bir açıklama dosyasına ihtiyacımız var. Örneğin, metin adaylığı içeren yukarıdaki görüntüyü düşünün, aşağıdaki açıklama dosyası words.txt'deki temsil olacaktır.

a01-000u-01-00 ok 156 VBG adaylığı

  1. a01-000u-01-00 -> a01-000u biçimindeki bir satır için kelime kimliği
  2. ok / err -> Segmentasyon çıktısının kalitesinin göstergesi
  3. 156 -> bu kelimeyi içeren satırı ikileştirmek için gri seviyesi
  4. 395 -> x, y, w, h biçiminde bu kelimenin etrafındaki sınırlayıcı kutu
  5. VBG -> bu kelimenin gramer etiketi. İşte Fiil Gerund
  6. aday gösterme -> bu kelimenin transkripsiyonu

Mimari :-

CTC kaybı olan CRNN tabanlı bir mimari eğiteceğiz. Bir CNN, bir RNN'ye aktarılan görsel özellikleri çıkarmak için kullanılır ve çıktıyı elde etmek için açgözlü bir kod çözücü ile uca bir CTC kaybı uygulanır.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Eğitim

CRNN kodunu şuradan kullanacağız: okuyun modelimizi eğitmek için. Verileri hazırlamak için aşağıdaki adımları izleyin

python checkDirs.py

Yukarıdaki komutu çalıştırın ve aşağıdaki gibi bir çıktı görmelisiniz

[Tamam] kelimeler /
[Tamam] kelimeler / a01 / a01-000u /
[Tamam] words.txt
[Tamam] test.png
[OK] words/a01/a01-000u/a01-000u-00-00.png

Artık hepiniz eğitime başlamaya hazırsınız.

Kök dizine gidin ve çalıştırın

python main.py --train

Sonuçlar

Yaklaşık 50 dönem eğitimden sonra Karakter Hata Oranı (CER)% 10.72 iken Kelime Hata Oranı (WER)% 26.45 ve dolayısıyla Kelime Doğruluğu% 73.55'tir. Tahminlerden bazıları aşağıdaki şekilde görülebilir.

Makine Öğrenimi kullanarak El Yazısı Tanıma nasıl kolayca yapılır

Model, karakterleri büyük ölçüde doğru bir şekilde tahmin edebiliyor, ancak birkaç durumda acı çekiyor, çünkü korkunç bir şekilde tahmin ediliyor, hikayeler yıldız olarak tahmin ediliyor. Bu sorunlar, anlamlı sözcükler üretebilen ve basit hataları düzeltebilen kod çözücü ile birlikte bir işlem sonrası aşaması olarak bir dil modeli kullanılarak çözülebilir.

Özet

Teknolojide el yazısıyla yazılmış metnin daha iyi tanınmasına yardımcı olan önemli gelişmeler olmasına rağmen, HTR, OCR'ye kıyasla çözülmüş bir sorun olmaktan uzaktır ve bu nedenle henüz endüstride yaygın olarak kullanılmamaktadır. Bununla birlikte, teknoloji evriminin hızı ve transformatörler gibi modellerin piyasaya sürülmesiyle, HTR modellerinin yakında sıradan hale gelmesini bekleyebiliriz.

Bu konu hakkında daha fazla araştırma yapmak için şu adresten başlayabilirsiniz: okuyun

Daha fazla Okuma

Zaman Damgası:

Den fazla AI ve Makine Öğrenimi