Cumartesi, Eylül 26, 2009

Plaka Okuma

Plaka okuma günümüz Türkiyesinde belkide en yaygın bilgisayarlı görü -Computer Vision- uygulamasıdır. Ufak bir araştırmayla bu konuda pek çok tez verildiğini (1 2 ) ve bazı türk firmalarınında ürün geliştirdiklerini görebilirsiniz. Uygulama alanının genişliği düşünüldüğünde çalışmaların devam edeceğinide varsayabiliriz.




Resimden Plaka bilgisini alma işini nasıl yapabiliriz ? Kabaca anlatmaya çalışalım.



Plaka Bulma :


Resim içindeki plaka kısımlarının yerini tespit etmek.Bu işinde ilk safhası; Resimde Plakanın daha belirgin olmasını sağlayan bazı önişlemlerden geçirimektir. Sonrasında bu belginlik ölçütüne göre konum belirlemeye geçilir. Pek tabii ki tespit edilen her konum plaka olmaya bilir. Plaka ebatları, en boy oranları vb değerlerle plaka olmayan kısımların da elenmesi gerekir.
Litaratürde geçen bir kaç metoddan bahsedelim:

  • Resimin Kenar bulma işlemi ardından yatay ve dikey histogramlar ile palka konumunun tespit edilebilir.
  • Gabor Süzgeçleriyle plaka konumlarının beligenleştirilip Etiketleme ile de konum tespit edilir.
  • Morfolojik işlemlerile beligleştirilip sonrasında Etiketleme ile konum tespit edilir.
  • Resim üzerinde belli ebatlarda pencere gezdirip o kısmın plaka olup olmadığına karar veren bir çeşit dedektör ile


Karekter ayrıştırma:

Bütün Plakanın resminden karekterlerin - harf ve rakamların- görüntüsünün ayrı ayrı alınması işlemidir. İşlemin genel metodu; düşey histogramının minumumları kullanılarak ayrıştırma işleminin yapılmasıdır. Bu metod için bir önceki aşamada açı düzeltmesinin yapılmış olması gerekiyor pek tabiiki. Ayrıştırılan Karekterlerde gerekiyorsa temizlik yapılıp standart bir ebata getrimek gerekir.

Karekter Tanıma :
Ayrıştırılmış Karekter resimlerinin tanınması işlemidir. Yapılacak işleme Örüntü tanımada denir. Pekçok Yapay zeka metdounun bu kısımda uygulanması mümkündür. SVM veya HMM ve pek tabii ki YSA. Hatta yapılması gereken bizim Harf Tanıma programnının gelişmişi. O programda 5x8 likl bir bitmap görüntü tanınıyordu. Plak okuma için Daha geniş bir büyüklük kullanmak lazım mesela 20x25 yada 16x24 gibi


Son olarak : Bütün bunları yapabilmek için elinizde bir veri seti olması lazım. ve bu veri setinin uygulamayı çalıştırmayı düşündüğünüz şartlarda alınması lazım. Bu da elinizde uygun donanım olmasıyla mümkün. Ne gerek var ben sıradan bir web-cam den yada dijital fotoğraf makinasıyla çektiğim resimler üzerinden yaparım derseniz . teorik olarak iyi sonuçlar elde etmiş olsanız bile pratikte çoook sıkıntı çekersiniz. Belki yaptıklarınızı tez olarak sunabilirsiniz ama ticari bir uygulama için yeterli tanıma oranına ulaşamazsınız.

unutmadan donanımdan halletmeniz gereken bazı problemlerden de bahsederek bitirelim.
  • Işıklandırmadan etkilenmemesi için kızıl ötesi aydınlatıcı kullanmak
  • Hareket halindeki görüntüleri bulanıklaşmasını aşabilecek bir kamera kullanmak
Sorular
- Böyle bir sistem Opencv kütüphanesiyle yazılabilirmi ?
- Evet
- Yeni bir çalışma Ticari olarak başarı kazanabilirmi ?
- Bu işin pazarlama yönüne bağlı, çoğu zaman belli bir standartın üzerindeki programlar teknik üstünlükleriyle değil iyi pazarlanmasıyla satılır. Yani eğer standart bir sevyede çalışan bir sistem kurabilmişseniz iyi bir pazarlamayla satabilirsiniz.
- Açık kaynak kodlu bir sistem yapılabilirmi ?
- Pek tabiiki mümkün ama esas mesele belli bir düzeye gelmesi için gereken desteği alması
- Açık kaynak kodlu böyle bir sistem sizce gereken desteği alabilirmi ?
- Pek sanmıyorum.
...

6 yorum:

murat dedi ki...

güzel bir telnoloji.bizi haberdar ettiğiniz için teşekkürler :)

Adsız dedi ki...

bunu resim değilde gerçek zamanlı bir videodan plaka nın olduğu kesmi resim olarak kesip alıp ayrıştırma yapmak mümkünmüdür daha doğrusu opencv ile mümkünmüdür birde açı olayı nasıl çözülebilir.45 derecelik bir açıdan gelen bir araçın plakasının yeri bulunabilirmi gerekli ayarlamalar yapıldığında bu opencv için diyorum tabii

Adsız dedi ki...

Sayin abi,
emegine saglik. Benim birkac sorum olacak kendim almanyadayim ve yazilimciyim. Opencv varligindan haberdardim ama yeni igilenmeye basladim. Qt4/c++ ile calisiyorum.
Mektubun penceresindeki adresi okumak icin bir program yazmayi düsünüyorum ve nereden basliyacagimi dogrusu bilmiyorum. Yani kamera secimi olsun satir ve sütun ayiklamasi ve daha sonra makina yazilari tanimak (belki flann ile) olsun. Bana birkac yol gösterebilirsen menun olurum saygilarimla önceden tesekkür ederim

Murat D.

bluekid dedi ki...

OpenCv'yi Reçek zamanlı işlerde de kullanabilirsiniz
detaylı sorularınız için doğrudan e-posta atın konuşalım

Abdullah gündüz dedi ki...

Yayınınız için çok teşekkür ederim projem için kaynak kodlarına ihtiyacım var gönderirseniz çok yardımcı olursunuz

HASAN dedi ki...

Emeğinize, ellerinize sağlık hocam
Arkadaşlar opencv'yi doğru kurduğumuz sürece düzgün çalışıyor. Ben de ilk başta hertürlü hatayla karşılaştım

Bakıyorumda baya ilgilenenler var acaba hep birlikte mi çalışsak?!