Transfer derin öğrenme ile hibrit el yazısı karakter tanıma
Hybrid handwriting character recognition with transfer deep learning
Yazar: FERİT CAN
Danışman: DR. ÖĞR. ÜYESİ ATINÇ YILMAZ
Milli Savunma Üniversitesi / Hezarfen Havacılık ve Uzay Teknolojileri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Yazılım Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: El yazısı tanıma = Handwriting recognition ; Yapay sinir ağları = Artificial neural networks

Özet:
El yazısı karakter tanıma; indeksleme, arama motorlarında el yazısı ile arama yapma, kamera yardımı ile yazı tahtasının okunması, akıllı otonom sistemler, bankacılık (yazılan bir çekin ATM tarafından okunması), el yazısı tarihi eserlerin dijitalleştirilmesi gibi alanlarda kullanılmaktadır. Bu maksatla kullanılan görsel akıllı uygulamalarda artan talep neticesinde günümüzde önemli bir araştırma konusu haline gelmiştir.

El yazısı karakter tanıma, el ile yazılmış harf, rakam ve şekil gibi her türlü (önceden ayrıştırılmış tekil) karakterin bilgisayar tarafından doğru olarak yorumlanarak tanınmasını hedef alır. El yazısı karakter kümesi 62 adet ayrıştırılmış karakter içermektedir. Bunlar "0"-"9", "A"-"Z" ve "a"-"z" karakterlerinden oluşan farklı harf ve rakamlardır. El yazısı karakter tanıma maksadıyla oluşturulan modelin, kendisine sunulan test verisini söz konusu 62 adet sınıftan birini seçerek doğru olarak tanıması gerekmektedir.

El yazısı karakter tanıma bir takım zorlukları da beraberinde getirmektedir. Öncelikle bu konuda kullanılabilecek veri kümeleri sınırlıdır. Her dil için ayrı veri kümesi oluşturulması gerekmektedir. Örneğin kendi dilimiz olan Türkçe için oluşturulmuş herhangi bir veri kümesi bulunmamaktadır. Bunun yanında bir takım harf ve rakamların (Örn.: 0(sıfır), O-o), büyük ve küçük harflerin birbirine benzerliği, söz konusu karakterlerin tanınmasında bir takım güçlükler yaşamasına sebep olmaktadır.

Bilgisayarla görme konusunda yapılan araştırmalar 2012 yılından itibaren Yapay Sinir Ağları mimarisinin bilgisayarla görme konusunda kullanılmaya başlanması ile büyük bir ivme kazanmıştır. Günümüzde bilgisayarla görme konusunda, geliştirilen algoritmalar, bilgisayar işlemci güçlerinin artması ve özellikle paralel programlamanın da desteği ile insan doğruluk oranlarının da üzerine başarı elde edilmeye başlanmıştır. Bu konudaki başarısı neticesinde CNN'ler el yazısı karakter tanıma alanında da kullanılmaya başlanmıştır.

CNN'lerin ilk katmanlarında köşe-kenar-yuvarlak gibi genel öznitelikler temsil edilirken, son katmanlarında ise ilgili nesneye özel öznitelikler temsil edilmektedir. Evrişimli Sinir Ağlarının eğitimi fazla sayıda örnek veri kümesi, her geçen gün artan katman sayıları neticesinde söz konusu katmanlarda gerekli hesaplamaların yapılabilmesi maksadıyla işlemci gücü ve zaman gerektirmektedir. Yukarıda bahsedilen eğitim gereksinimlerini en aza indirmek maksadıyla Transfer Öğrenme metodu sıklıkla kullanılmaktadır.

Transfer öğrenme metodunda, Imagenet gibi büyük boyutlu veri kümesi ile önceden eğitilmiş CNN mimarilerinden biri seçilerek sınıflandırmak istenilen veri kümesine uygun olarak yeniden yapılandırılır. Burada amaç genel özniteliklerin bulunduğu ilk katmanların olduğu şekilde muhafaza edilmesidir (ağırlıklar dondurulur). Son katmanlar yeniden oluşturulur ve son olarak yeni veri kümesi ile tekrar eğitilir. Dondurulacak ve yeniden eğitilecek katman sayısı, elde mevcut işlemci gücü (GPU), bellek, veri kümesi boyutu ve zamana bağlı değişiklik göstermektedir.

Veri kümesi, yapılacak çalışmanın başarısını etkileyen en önemli unsurlarından birisidir. Bu çalışmada, CNN'lerin eğitimi, doğrulama ve test maksadıyla Amerikan Ulusal Standart ve Teknoloji Enstitüsü tarafından Ağustos 2016 yılında oluşturulmuş, el yazısı karakterlerinin bulunduğu NIST Özel Veri Tabanı 19 (NIST19) veri kümesi ikinci sürümü kullanılmıştır. Veri tabanı içerisinde 3669 farklı kişiden elde edilmiş "El Yazısı Örnek Formu" ve bu formların düzenlenmesi sonucu elde edilmiş 814.255 adet ayrıştırılmış el yazısı harf ve rakam karakteri bulunmaktadır. Ayrıştırılmış her bir karakter 128x128 piksel boyutunda ve karşılık gelen onaltılık (hexadecimal) ASCII kod ile etiketlenmiştir.

Bu çalışmada, farklı CNN mimarileri transfer derin öğrenme metodu kullanılarak yukarıda bahsedilen NIST19 veri kümesi ile yeniden eğitilmiştir. Daha sonra, her bir CNN'in tüm sınıflar için ürettiği olasılık değerlerini inceleyen farklı yöntemler oluşturularak, bu yöntemlerin başarı seviyeleri ortaya konulmuştur.

Elde edilen deney sonuçları incelendiğinde, oluşturulan yöntemlerden "Matris Elemanı Ortalaması" yöntemi ile %1,1 oranında daha iyi doğruluk sağlayan hibrit bir model geliştirilmiştir.

Abstract:
Handwriting character recognition is used in areas such as indexing, search by handwriting in the search engine, reading the board with the help of camera, smart autonomous systems, banking (reading a cheque by ATM), digitization of handwritten historical works. As a result of the increasing demand in the visual smart applications used for this purpose, it has become an important research topic.

Handwriting character recognition aims the recognition of all kinds of (pre-separated singular) characters, such as handwritten letters, numbers and figures, correctly interpreted by the computer. The handwriting character dataset contains 62 separated characters. These are different letters and numbers consisting of "0"-"9", "A"-"Z" and "a"-"z". The model created for the purpose of handwriting character recognition must correctly identify the test data presented to it by selecting one of the 62 classes.

Handwriting character recognition has a number of challenges. Firstly, the datasets that can be used are limited. A separate dataset must be created for each language. For example, there is no dataset created for our own language, Turkish. In addition, the similarity of the letters and numbers (eg: 0(zero), O-o), capital and small letters cause difficulties in the recognition of these characters.

Researches on computer vision have gained a momentum since the beginning of 2012 with the use of Artificial Neural Networks architecture in computer vision tasks. Today, in the field of computer vision, more success rates are achived than human accuracy with developed algorithms, increased computer processing power and especially the support of parallel programming. As a result of this success, CNNs have also been used in handwriting character recognition.

In the first layers of CNNs, general features such as corners-edges-rounds are represented, while in the last layers, object-specific features are represented. Training of CNNs require a large number of sample datasets, processing power to make the necessary calculations in the layers as a result of their continuously increasing number and time. In order to minimize the training requirements mentioned above, Transfer Deep Learning method is frequently used.

In Transfer Deep Learning method, one of CNN architectures pre-trained with a large data set such as Imagenet is selected and reconfigured in accordance with the desired dataset that is to be classified. The purpose is to keep the first layers with the general features (weights are frozen). The final layers are reinitialized and finally retrained with the new dataset. The number of layers to be frozen and retrained varies depending on the available processor power (GPU), memory, data set size and time.

The dataset is one of the most important factors affecting the success of the study. In this study, for training, verification and testing of CNNs, the second version of NIST Special Database 19 (NIST19) dataset, which was created in August 2016 by the National Institute for Standard and Technology (NIST), containing handwriting characters is used. In the database, there are "Handwriting Sample Forms" obtained from 3669 different person and 814.255 separated handwritten letter and number characters obtained from the arrangement of these forms. Each seperate character is 128x128 pixels in size and is labeled with the corresponding hexadecimal ASCII
code.

In this study, different CNN architectures are retrained with the above mentioned NIST19 dataset using the Transfer Deep Learning method. Then, different methods are developed to examine the probability values for all classes produced by each CNN and the success levels of these methods are presented.

When the obtained test results are examined, a hybrid model with 1.1% better accuracy was developed by using "Matrix Element Mean" method.