Skip to content

Releases: NisanurBulut/LicensePlateRecognitionSystem

License Plate Recognition System

27 Dec 10:35
Compare
Choose a tag to compare

Yıldız Ver! ⭐

Probleminizin çözümünü öğrenmek veya çözümü başlatmak için bu projeyi beğendiyseniz veya kullanıyorsanız, lütfen ona bir yıldız verin. Teşekkürler!


Plaka Tanima Sistemi

Araç Fotoğraflarından plaka tanıma işlemi yapan masaüstü uygulamadır.

1. Plaka Tanıma Yazılımı Nedir?

Plaka Tanıma Sistemi kameralardan elde edilen araç görüntüsünün üzerinde plaka bölgesi tespit edilerek ve ayrıştırılarak, plaka üzerinde bulunan karakterlerin optik karakter tanıma (Görüntü İşleme) yöntemleri ile okunması işlemidir. Dijital görüntülerin alınması sayesinde plaka okumasının gerçekleştiriliyor olması sayesinde, yazılım tabanlı olarak çalışırlar. Projeye göre değişik uygulamaları olup, uygulamaya özel algoritma ve donanım yapısının bir araya getirilmesi ile oluşturulan bir sistemdir.

2. Plaka Tanıma Yazılımının Hedefleri

Araçların plaka bilgisinin, görüntülerden elde edilmesiyle aslında aracın kimlik bilgisi elde edilir. Bu sayede bir araca dair aşağıda belirtilen durumlar takip edilebilir.

a) Otoyol, köprü ve gişelerden geçen araçların çalıntı veya ihlal bilgilerine ulaşabilmek ve analizlerini yapabilmek

b) Otopark, site, nizamiye ve buna benzer kontrollü geçiş noktalarının giriş ve çıkışlarında insan gücünü hafifletmek, kolay, hızlı, güvenli giriş ve çıkışlarını sağlamak

c) Kantar, araç muayene istasyonları ve buna benzer yerlerde plaka bilgilerine otomatik olarak ulaşabilmek

d) Şehir giriş ve çıkışlarının kontrol altında tutulması, şehir güvenliğinin sağlanması

e) Karayollarının araç yoğunluk ölçümlerinin yapılması

f) Karayollarının stratejik ulaşım analizlerinin yapılması

g) Trafik düzenleme işlemleri

h) İki nokta arasında araçların ulaşım süresinin belirlenmesi, bilgi panosuna aktarılması

i) Akıllı trafik sistemlerinin kurulması

j) Otopark kontrolü, yoğunluk ölçümleri

k) Kayıtlı olan ve ya geçiş yetkisi bulunan araçlar için otomatik bariyer devreye girmesi ya da yasaklı, izinsiz araçların geçmeye çalışma durumunda alarmın devreye girmesi

3. Kullanılan Yöntemler

Aracın plaka bilgisinin elde edilebilmesi için plakanın koordinat bilgisi bilinmelidir.Kordinatların yer tespitinin ardından karakter tanıma işlemi yapılır. Genel anlamda süreç adım adım ifade edilecek olursa aşağıdaki gibi listelenir.

a) Kamera görüntüsü üzerinden plaka yerinin tespit edilmesi ve ayrıştırılması
b) Plakanın sonraki algoritmalara uygun şekilde yeniden konumlandırılması ve boyutlandırılması
c) Parlaklık, zıtlık gibi görüntü özelliklerinin normalizasyonu
d) Karakter ayırma ile görüntüden karakterlerin çıkarılması
e) Optik karakter tanıma
f) Ülkeye özgü söz dizimi ve geometrik kontroller

3.1 Gri Seviye İndirgeme

Uygulama sürecinde görüntü işleme hızını artırabilmek için RGB formattaki görüntü, ortalama değer yöntemiyle gri seviyeye indirgenmiştir. Byte veri tipi dönüşümü yapılır.

 Resim üzerinde yapılan her işlemin tamamlanma süreci, progressbar ile gösterilir.
Resim 1- Gri Seviye İndirgeme C# Kod Bloğu

Resim2-Gri Seviye İndirgeme Sonucu

3.2 Median Filtreleme

Gri seviyeye indirgenmiş olan görüntü üzerinde keskin geçişleri en az seviyeye indirmek için median filtre uygulanacaktır. Median filtre 3x3, 5x5, 7x7 gibi tek sayı boyutlu filtrelerden oluşur. Görüntüyü yumuşatır. Kullanılan çekirdek şablonun yani filtrenin boyutu arttıkça yumuşama yani bulanıklaşma da artar.
Median filtrenin tercih edilme sebebi ortalama alıcı filtreyle kıyaslandığında daha sağlıklı sonuçlar vermesidir. Görüntü üzerindeki detay kaybı daha az olur. Bir pikselin değerini değiştirirken komşularının ve kendisinin ortalamasını almak yerine komşuları içinde ortanca değer ile değişim yapar.
Temsil yeteneği uzak bir piksel sıralanan dizinin uçlarında kalacağından (hiç bir zaman ortada bulunmayacaktır) oradaki komşuların genel temsilini etkilemesi imkansız hale gelmiş olur.
Komşu piksellerin birinin değeri olması gerektiği için, kenar boyunca hareket ettiğinde gerçekçi olmayan piksel değerleri oluşturmaz. Bu nedenle, medyan filtre, keskin kenarları ortalama filtreden daha iyi korur
Filtreleme işlemleri ExtBitmap C# sınıfı içerisinde tanımlanmıştır. 3x3 Matrix boyutu kullanılmıştır

Resim3-ExtBitmap sınıfı genel görünümü

Resim4- Median filtrenin uygulaması

3.3 Sobel Filtreleme

Median filtre uygulanarak gürültüsü azaltılmış, keskin geçişler azaltılacaktır. Görüntü üzerinde kenar bulma işlemi için sobel filtresi kullanılacaktır. Dikey, yatay ve köşegen şeklindeki kenarları bulmak için kullanılacaktır.

Resim5-Sobel filtrelerinin uygulama içerisinde gösterimi

Resim5-Sobel filtrelerisinin uygulaması

3.4 Otsu Algoritması

Gri seviyeli görüntünün ikili seviyeye dönüştürülebilmesi için otsu algoritması kullanılacaktır. İkili seviyeye dönüştürmek için bir eşik değeri belirlenir. Bu eşik değerinin altında kalan pikseller siyaha dönüştürülürken üstünde kalan pikseller beyaza dönüştürülür. Ancak her görüntü aynı niteliklere sahip değildir dolayısıyla her görüntünün kendine has eşik değerinin hesaplanmasına ihtiyaç duyulur. Uygulamanın bu adımında, eşik değerinin tespit edilmesi için Otsu Algoritması kullanılacaktır.
Otsu Algortiması eşik değer yöntemi mümkün olan bütün eşik değerler için(255'e kadar yani) bütün eşik değerler için sınıf-içi varyans denilen bir değer hesaplar ve bu değerin en düşük olduğu indeksi döndürür. Sınıf-içi varyansın minimize edilmesi derken kast edilen sınıflar önyüz(foreground) ve arkayüz(background) pikselleridir. O an incelenen renk değerinden büyük olan piksellere önyüz pikselleri; küçük olanlar arkayüz pikselleri denir. Bir renk için histogramda(buckets) o renkten büyük olan renklerin([i:]) frekanslarının toplamının(np.sum) toplam piksel sayısına(image_size) bölümü bize önyüz renklerinin ağırlığını verir. Bu değerin 1 sayısından çıkarılmasıyla arkayüz ağırlığı elde edilir.
Varyans hesabı yapabilmek için önce sınıfların ortalama değerleri bulunmalıdır. Bunun için her sınıf için o sınıfa üye olan renklerin kendi değerleri ile o renkteki piksel sayısı çarpılır ve sonuç, kümeye ait toplam piksel sayısına bölünür.
Otsu algoritmasının kullanımı için .dll dosyasından yararlanılmıştır. Bu method birebir proje içerisinde kodlanmamıştır.

Resim6-Otsu algoritması için  dll dosyası çağrısı.

Resim7-otsu algoritması çalıştırılması

Resim8-Otsu algoritması uygulaması

4. Morfolojik İşlemler

Görüntü üzerinde iskelet, imgedeki sınırlar gibi yapıların tanımlanması ve bilgi çıkarımı yapılması ve gürültü giderimi, bölütleme için matematiksel morfoloji işlemlerine ihtiyaç vardır. Morfolojik görüntü işleme şekillerin biçimsel yapısı ile ilgilenerek nesneleri ayırt etmemize ve gruplayabilmemize olanak sağlar. Yöntem gri seviye görüntüler üzerinde de çalışsa da genellikle siyah-beyaz (ikili) görüntüler üzerinde kullanılır. Morfolojik filtreler genelde iki temel işlemden türetilmiştir. Bunlar erosion (aşındırma) ve dilation (genişletme) işlemleridir. Aşındırma ikili bir görüntüde bulunan nesnelerin boyutunu seçilen yapısal elemente bağlı olarak küçültürken, genişletme nesnenin alanını artırır.

 Morfolojik işlemler enum olarak kodlama içerisinde yer almıştır.

 Uygulama için otsu görüntü üzerinde morfolojik işlemler olan yayma ve aşındırma işlemleri yapılacaktır.

 Resim9-Dilation ve Erosion İşlemlerinin Extmap sınıfından çağrılması

4.1 Aşındırma İşlemi(Erosion)

Bu işlem için görüntü üzerinde n boyutlu bir çekirdek gezdirilecektir. Ortadaki n. piksel, resim üzerinde işlem yaptığımız piksele karşılık gelir. Bu n tane piksel resim üzerine konulduktan sonra, piksellerin tamamı beyaz alanla örtüştü ise yani, n tane pikselin hepsinin karşılığı olan alan beyaz ise o zaman üzerinde işlem yapılan piksel beyaz olarak işaretlenir. Eğer bu n tane pikselden herhangi biri siyah bir pikselin üzerine denk geldiyse o zaman ortadaki pikselin değeri siyah yapılır. Dikkat edilirse bu işlem ile siyah bölge genişletilirken, beyaz bölge aşındırılmış olmaktadır.

 Uygulama için birbirine ince gürültülerle bağlanmış nesneleri birbirinden ayırarak gürültü temizleme yapılmak amaçlanmıştır.

Resim9-Erozyon işleminin uygulanması

**4.2 Genişletme İşlemi(Dila...

Read more