• Sonuç bulunamadı

Karakter Tanıma ĠĢlemi

Belgede Araç plaka tanıma sistemi (sayfa 64-81)

4. MATERYAL VE YÖNTEM

4.5. Karakter Tanıma ĠĢlemi

Karakter tanıma iĢlemi, plaka ayrıĢtırma iĢlemi sonucunda elde edilen karakterlerin tanıma iĢleminin yapılacağı bölümdür. Plaka karakterlerini tanıma iĢlemi olarak kullanılan, yaygın 2 yöntem vardır. Bunlardan ilki Ģablon eĢleĢtirme yöntemi, diğeri ise yapay sinir ağı yöntemidir. Farklı fonttaki karakterleri tanıma iĢlemi için genellikle Ģablon eĢleyerek tanıma yöntemi kullanılmaktadır. Bu yöntem içinde tanıma iĢlemi yapılacak karakterlerin yükseklik ve geniĢlik boyutları sabit bir hale getirilmelidir. Ayrıca karakter ayrıĢtırma yönteminden çıktı olarak gönderilen karakterlerin üstünde, altında, sağında ve solunda boĢlukların bulunma ihtimali yüksektir. Bu yüzden tanıma iĢlemine gönderilmeden önce karakterlerin kesin sınırları belirlenerek bu sınırlar içindeki karakter kullanılır.

4.5.1. Karakterlerin boyutlandırılması ve karakter tanıma iĢlemine hazırlanması

Karakter ayrıĢtırma bölümünden gelen karakterler byte dizisi olarak gelmektedir. Bu karakterleri boyutlandırmak için kullanılan C# programlama dilinin hazır boyutlandırma fonksiyonları kullanılmaktadır, bunun için resimler öncelikle Bitmap resmine dönüĢtürülür ve daha sonra C# dilinin hazır fonksiyonları kullanılarak resim istenilen boyuta getirilir.

C# dilinde boyutlandırma için kullanılan fonksiyon:

public static Bitmap ResizeBitmap(Bitmap b, int nWidth, int nHeight)

{

Bitmap result = new Bitmap(nWidth, nHeight);

Graphics g = Graphics.FromImage((Image)result);

g.InterpolationMode=Drawing2D.InterpolationMode.HighQualityBilinear; g.DrawImage(b, 0, 0, nWidth, nHeight);

return result;

ġekil 4.29. a-) Plakadan kesilen orijinal karakterler b-) 15x30 ebatlarında boyutlandırılmıĢ karakterler ġekil 4.29 da görüleceği üzere karakterler boyutlandırılırken resimler üzerinde kalite kaybı meydana gelir. Bu kalite kaybını en düĢük düzeyde tutmak için ilk boyutlandırma iĢlemi, gri seviyedeki resimler üzerinde yapılır. BoyutlanmıĢ gri seviyeli resimlerin eĢik değerleri bulunarak buna göre resimlerin altında, üstünde, sağında ve solunda varsa boĢluklar tespit edilerek, resim tekrar kesilir. Artık karakterlerin etrafında boĢluk kalmamıĢtır. Fakat kesilme iĢlemi yapıldığı için boyutlarında azda olsa küçülme olmuĢtur. Bu yüzden karakterler, tanıma iĢleminde kullanılmak istenilen ebatlara göre tekrar boyutlandırılır. Sonuç olarak karakterlerin hepsi aynı boyuta sahiptir ve etraflarında boĢluk bölümleri bulunmamaktadır. Karakterlerin baĢlangıç ve bitiĢ sınırları resim ebatlarıyla birebir uyuĢmaktadır. Karakterler tanıma iĢlemine gönderilebilecek hale gelmiĢtir.

4.5.2. ġablon eĢleĢtirme yöntemi

ġablon eĢleĢtirerek karakter tanıma yöntemi, adından da anlaĢıldığı gibi karakterlerin Ģablonlarının yani piksel değerlerinin, daha önceden sisteme tanıtılmıĢ ve hangi karakter olduğunu bilinen Ģablonlarla yani piksel değerleriyle karĢılaĢtırılmasıyla yapılan tanıma yöntemidir.

Tanıma iĢlemi yapılacak karakterin öncelikle karĢılaĢtırma yapılacak Ģablon yapısı çıkarılmalıdır. Bu nedenle Ģablon eĢleme yönteminin sağlıklı sonuçlar verebilmesi için karakterlerin tanıma iĢleminden önce her birinin sabit boyutlara getirilmesi gerekmektedir. Sabit olarak kullanılacak olan karakter boyutlar 16x32‟dır. Yani yeniden boyutlandırılan karakterlerin yükseklikleri 32 piksel, geniĢlikleri 16 piksel

Toplam Karakter Sayısı Toplam ĠĢlem Süresi (iĢlemci: intel i7@1.6 Ghz) Tarama

Yöntemleri EĢleĢtirmede Kullanılan Karakter Ebatları Doğru tanınan Karakter Sayısı YanlıĢ Tanınan Karakter Sayısı BaĢarı Yüzdesi

6764 21 saniye YT, DK, SOCT, SACT 10x20 6136 628 %90,71 6764 24 saniye YT, DK, SOCT, SACT 12x24 6298 466 %93,11 6764 29 saniye YT, DK, SOCT, SACT 14x28 6379 385 %94,30 6764 30 saniye YT, DK, SOCT, SACT 15x30 6418 346 %94,88 6764 29 saniye YT, DK, SOCT, SACT 16x32 6480 284 %95,80 6764 32 saniye YT, DK, SOCT, SACT 17x34 6425 339 %94,98 6764 43 saniye YT, DK, SOCT, SACT 18x36 6433 331 %95,10 6764 32 saniye YT, DK, SOCT, SACT 19x38 6455 309 %95,43 6764 36 saniye YT, DK, SOCT, SACT 20x40 6433 331 %95,10

6764 21 saniye YT, DK 10x20 5585 1179 %82,56 6764 19 saniye YT, DK 12x24 5779 985 %85,43 6764 21 saniye YT, DK 14x28 5859 905 %86,62 6764 27 saniye YT, DK 15x30 5927 837 %87,62 6764 27 saniye YT, DK 16x32 5939 825 %87,80 6764 26 saniye YT, DK 17x34 5927 837 %87,62 6764 31 saniye YT, DK 18x36 5924 840 %87,58 6764 33 saniye YT, DK 19x38 5936 828 %87,75 6764 35 saniye YT, DK 20x40 5951 813 %87,98

YT: Yatay tarama, DK: Dikey tarama, SOCT: Sol üsten sağ alta çapraz tarama, SACT: Sağ üsten sol alta çapraz tarama

Çizelge 4.2. de görüldüğü üzere en baĢarılı boyutlandırma 16x32 olmuĢtur. Farklı boyutlandırmalar denenirken her zaman aynı karakter eğitim seti kullanılmıĢtır. Aynı Ģartlarda sadece karakterlerin boyutları farklı olarak test iĢlemleri uygulanmıĢtır. ġablon eĢleĢtirmede kullanılan karakterlerin ebatları büyüdükçe, yapılacak karĢılaĢtırma iĢlem sayısının da artması ve buna bağlı olarak iĢlem süresinin de düzenli olarak artması gerekir. Fakat karĢılaĢtırma sırasında herhangi bir karakterin, Ģablonda bulunan 1/3 lük kısmı kontrol edilen karaktere %60 benzemiyorsa, bu karakter aranılan karakter değildir ve bir sonraki karakterle benzerlik oranına bakılır. Ebatlar büyüdükçe sürelerin düzenli bir Ģekilde artmamasının sebebi budur.

Bir karakterin sahip olduğu piksel sayısı yatay ve dikeydeki piksel sayılarının çarpımı ile bulunur.

16x32 ebatlarında karakterin piksel sayısı: 16 x 32 = 512‟dir.Tanıma iĢlemi yapılacak her bir karakter 512 tane kendisini tanımlayan piksel değerine sahiptir. Bu pikseller daha önce hafıza alınmıĢ yine 512 tane piksel değerine sahip tüm karakterlerle karĢılaĢtırılmaya kalkılırsa iĢlem süresi çok fazla uzar. Bu yüzden her karakter için bir Ģablon yapısı çıkartılmalıdır.

ġekil 4.30. ġablon çıkartılırken yapılan tarama yöntemleri a-) Yatay tarama b-) Dikey tarama c-)Sol üsten sağ alta çapraz tarama d-) Sağ üsten sol alta çapraz tarama

Ġlk olarak kullanılan Ģablon yapısında karakterlerin dikey ve yatay düzlemdeki piksel değerlerinin toplamı alınmıĢtır, fakat baĢarı oranının istenilen seviyede olmadığı görülünce, karakterlerin Ģablon yapılarını tanımlayacak ekstra tanımlayıcı değerler ekleme ihtiyacı duyulmuĢtur. Bunun için karakterin sol üst köĢeden sağ alt köĢeye doğru tarama ve de sağ üst köĢeden sol alt köĢeye doğru tarama değerleri de eklenmiĢtir. ġekil 4.30 da Ģablon çıkartılırken resim üzerinde yapılan tarama yöntemleri gösterilmiĢtir. Karakter üzerindeki çizgiler o düzlemde bulunan siyah piksel değerlerinin toplamını tutmaktadır.

Bu durumda Ģablonda:

Yatay tarama sonucu: değerleri 0-16 arasında değiĢen 32 tane Dikey tarama sonucu: değerleri 0-32 arasında değiĢen 16 tane Sol üsten-Sağ alta tarama sonucu: değerleri 0-16 arasında değiĢen 48 tane Sağ üsten-Sol alta tarama sonucu: değerleri 0-16 arasında değiĢen 48 tane Değer olmak üzere toplamda 32+16+48+48= 144 tane karakteri tanımlayıcı değer bulunur.

Örnek 1 karakterinin Ģablonu= 2-4-5-6-6-8-9-24-30-32-32-32-31-31-31-31-7-9-11-14- 15-16-16-15-13-11-10-9-9-8-8-8-8-8-9-9-9-9-9-9-9-9-9-9-9-9-8-3-0-0-0-0-2-3-5-7-8-8- 9-9-9-10-10-10-9-9-9-8-8-8-8-8-9-9-9-9-9-9-9-9-9-9-9-9-8-8-7-6-5-4-3-2-1-0-0-0-0-0-

5-4-3-2-0-0-0-1-2-3-3-4-5-7-8-9-10-10-10-11-12-11-10-11-10-10-5-3-3-3-3-5-6-6-7-6- 8-6-8-7-7-9-10-9-8-7-6-5-0-0-0-0-0

Her karakteri tanımlamak için bu 144 değerden oluĢan Ģablon yapısı kullanılır. Tanıma iĢlemine baĢlamadan önce her bir karakter için birden fazla sayıda seçilmiĢ örnek karakterlerin Ģablonları çıkartılarak bir dosyaya yazılır. Örnek olarak seçilmiĢ farklı formattaki karakterlerin sayısı ne kadar fazla olursa iĢlemin doğruluk oranı o kadar yüksek olur, fakat örnek karakter sayısının artması demek tanıma iĢlemi sırasında karĢılaĢtırma yapılacak Ģablon sayının artması demektir ve dolayısıyla da iĢlem süresi artmaktadır. Bu yüzden en uygun değerleri tespit etmek gerekmektedir. En yüksek doğrulukta ve en hızlı biçimde sonucu veren değerleri seçmek gerekmektedir. Doğruluk oranında etken, seçilen örnek resimler ve bu resimlerin sayısıdır. ĠĢlem süresinde etken ise seçilen karakterlerin sayısıdır.

ġekil 4.31. Farklı fontlardaki karakter örnekleri

Plaka karakterleri için sabit bir font bulunmamaktadır. Bu yüzden doğruluk oranı yüksek olabilmesi için farklı fontlarda karakterleri Ģablon örneklem kümesine eklemek gerekmektedir. ġekil 4.31 de görüldüğü üzere plakalardan alınmıĢ karakterin kimisi kalın fontta kimisi ince fonttadır. Ayrıca biçim olarak da iki farklı türde 1 ve 4 karakterleri görülebilir.

En uygun eğitim karakter setleri belirlendikten sonra, bu karakterlerin hepsinin Ģablon yapısı çıkartılarak bir dosyaya yazılır. Tanıma programı baĢlarken hazırlanarak dosyaya yazılmıĢ örnek Ģablon değerlerini okuyarak hafızaya alır ve Ģablon karĢılaĢtırma iĢlemine hazır hale gelir. Tanıma iĢlemi yapılacak karakter Ģablonuyla, Ģablon karĢılaĢtırma iĢlemi için hafızaya alınan karakterlerle sırayla karĢılaĢtırma yapılmaktadır. Örneğin tanınmak istenilen bir B karakteri ile hafızadaki A karakterinin

benzerlik oranı hesaplanırken, kendilerini tanımlayan Ģablonda bulunan 144 tane değerlerin sırayla farkları alınarak olması gereken değere yüzde kaç oranında benzediği bulunur. Sonra her bir değerin benzerlik yüzdesi bulunup toplandıktan sonra 144 e bölünerek ortalama benzerlik oranı belirlenmiĢ olur. Yine iĢlem hızını artırmak için karĢılaĢtırma sırasında Ģablonda bulunan 144 değerden 1/3‟lük kısmı olan ilk 48 değerin karĢılaĢtırılma sonucundaki benzerlik oranı yüzde 60 altında ise bu karakter, o anda karĢılaĢtırılan karakter değildir ve bu yüzden bir sonraki karakterle karĢılaĢtırma iĢlemine geçilir. Bu iĢlemle süre olarak kazanç sağlanmaktadır. Tüm karĢılaĢtırma iĢlemleri bittikten sonra en yüksek benzerlik değerine sahip örneklem Ģablonu aranan karakteri gösterir.

Eğitim karakter seti hazırlanırken, tanıma iĢlemi yapılacak her bir karakter için en az bir tane Ģablon eklenmektedir. Birbirine benzeyen ve program tarafından çok karıĢtırılan “0”-“O”-“D” , “A”-“4”, “8”-“B” , “M”-“N” karakterlerinden eğitim setine fazla miktarda eklenerek bu karakterlerin tanınma iĢlemi sırasında hata yapma oranı düĢürülmüĢtür. Ayrıca bulunan plaka bölgesinde ki karakterlerin ayrıĢtırılması sırasında tanınacak karakterin sayı mı yoksa harf mi olduğu büyük ölçüde tespit edilmiĢtir. Bu sayede “0”-“O” , “A”-“4” , “8”-“B” harf ve sayı ikililerinin karıĢtırılma ihtimali azalmaktadır. Karakter tanıma fonksiyonuna tanımlanan bir parametre değeriyle tanınacak olan karakterin sayı mı yoksa harf mi olduğu belirtilebilmektedir. Böylelikle tanınacak karakter sayıysa sadece sayı Ģablonlarıyla, harf ise sadece harf Ģablonlarıyla karĢılaĢtırılmaktadır. Buda mevcut %95,80‟lik karakter tanıma baĢarı oranını daha fazla yükseltmiĢ hem de iĢlem süresini kısaltmıĢtır. Plakadaki karakterlerin ayrıĢtırılması sırasında, tanınacak karakterin harf mi yoksa sayı mı olduğu tespit edilemezse tüm örnek Ģablonlarla karĢılaĢtırma iĢlemi yapılarak en yüksek benzerliğe sahip karakter tespit edilmektedir.

Program yazılımı ve geliĢtirilmesi için C# programlama dili kullanılmıĢtır. Buna ek olarak resim üzerindeki piksellerinin görsel olarak incelenmesi için Matlab mühendislik yazılımı kullanılmıĢtır. Yazılımın geliĢtirildiği ve test edildiği bilgisayarın 6 GByte ramı, i7 1.6 iĢlemcisi bulunmaktadır. Fakat yazılım tamamlandıktan sonra farklı bilgisayarlarda da iĢlem hızı olarak test edilmiĢtir.

Çizelge 5.1. Hazırlanan programın farklı makinelerdeki iĢlem süresi ĠĢlemçi Türü Bellek Miktarı 1500 Adet Resmi

ĠĢlemek Ġçin Harcanan Toplam

Süre

Celeren 2.8 Ghz 2 GB 615 saniye

Ġntel Core 2 duo 2.0 Ghz

3 GB 540 saniye

Ġntel i7 1.6 Ghz 6 GB 442 saniye

Çizelge 5.1 üzerinde mevcut sistemin farklı özelliklere sahip bilgisayarlardaki test iĢlemlerinin sonuçları verilmiĢtir. Test iĢlemi yapılırken, 1500 adet resmi toplam iĢleme süreleri göz önünde bulundurulmuĢtur. Tek çekirdekli iĢlemciye ve 4 çekirdekli iĢlemciye sahip bilgisayarlar arasında ki 1500 resmi iĢlemek için harcanan süre farkı 173 saniyedir. Buradan yola çıkarak plaka tanıma iĢlem süresinin yalnızca iĢlemcinin gücünü bağlı olmadığı görülebilir.

Çizelge 5.2. Hazırlanan programın baĢarı oranları Toplam Resim Sayısı BaĢarı ĠĢlenen Resim

Sayısı BaĢarı Yüzdesi PYT 1500 1434 95,60 PKA 1434 1393 97,14 PKT 1393 1341 96,26 Tüm Sistem 1500 1341 89,40

PYT: Plaka yerinin tespiti, PKA: Plaka karakterlerinin ayrılması, PKT: Plaka karakterlerinin tanınması Çizelge 5.2. görüldüğü gibi sisteme tanıması için 1500 adet resim verilmiĢtir. Bu resimler içinden 1434 tanesinde plaka yeri tespit edilmiĢ geriye kalan 66 resimde plaka yeri ya tespit edilememiĢ veya yarım tespit edilmiĢtir. Plaka yerinin tespiti konusundaki

sistemin baĢarı oranı 95,60‟dır. Plaka yeri tespit edilmiĢ 1434 adet plaka üzerinde karakterlerin parçalama iĢlemi denenmiĢ ve 1393 plakada baĢarılı karakter parçalama iĢlemi yapılmıĢtır. Karakterlerin parçalanması konusundaki baĢarı oranı da 97,14‟dır. 1393 adet karakterlerine parçalanmıĢ plakaların üzerinde yapılan tanıma iĢleminde 1341 plaka doğru olarak tespit edilmiĢtir, 52 tane plakada yanlıĢ tespit edilmiĢtir. YanlıĢ tespit edilen plakaların 54 tanesinde tek karakter hatası yüzünden doğru sonuca ulaĢılamamıĢtır. Sisteme bir bütün olarak bakıldığı zaman 1500 adet resim içinde 1341 tanesinde doğru sonuç bulunmuĢtur ve sistemin baĢarı oranı 89,4‟dür.

Çizelge 5.3. Literatürdeki diğer sistemlerle karĢılaĢtırılması ÇalıĢmayı Yapan KiĢiler Kullanılan Bilgisayar ve Yazılım

Özellikleri

Resim

Özellikleri BaĢarı Oranı Mevcut Yapılan Sistem,

2011

Celeron 2.8 Ghz, 2 GB bellek, C# 640x480 %89,4 Okan Bingöl, Ömer KuĢcu,

2008

Intel® Pentium® IV 2.4 MHz, 1 GB bellek, C# .Net

800x600 %87 Ġsmail Irmakçı, 2008 Intel® Pentium M 1.6GHz , 512Mb

bellek, C/C++

640x480 %86.89 Orhan Kaplan,

ġeref Sağıroğlu, Ömer F.Çolakoğlu

PIII- 500 MHz

640x480 %99,25

Beytullah Yalım,2008 Intel Centrino 1.6 Ghz, 512Mb bellek 640x480 %92,5 Çizelge 5.3. üzerinde literatürde yapılmıĢ baĢka otomatik plaka tanıma sistemleri ile karĢılaĢtırılma sonuçları verilmiĢtir. Yapılan çalıĢmalar sırasında farklı kalite ve ebattaki resimler kullanıldığı için karĢılaĢtırma iĢleminin sonucu kesinlik ifade etmemektedir.

ġekil 5.1. BaĢarılı plaka tanıma iĢlemi

ġekil 5.3. BaĢarısız plaka tanıma iĢlemi, tek karakter yanlıĢ tanınmıĢ

ġekil 5.5. BaĢarılı plaka tanıma iĢlemi

ġekil 5.7. BaĢarılı plaka tanıma iĢlemi

ġekil 5.9. BaĢarılı plaka tanıma iĢlemi

ġekil 5.11. BaĢarılı plaka tanıma iĢlemi

ġekil 5.13. BaĢarılı plaka tanıma iĢlemi

ġekil 5.15. BaĢarılı plaka tanıma iĢlemi

ġekil 5.17. BaĢarılı plaka tanıma iĢlemi

6. SONUÇLAR VE ÖNERĠLER

Belgede Araç plaka tanıma sistemi (sayfa 64-81)

Benzer Belgeler