ASYU 2008 Akıllı Sistemlerde Yenilikler ve Uygulamaları Sempozyumu ÇKA TĐPĐ YAPAY SĐNĐR AĞI KULLANILARAK PLAKA YERĐ TESPĐTĐNĐN FPGA’DA DONANIMSAL GERÇEKLENMESĐ Mehmet Ali ÇAVUŞLU1, Fuat KARAKAYA2, Halis ALTUN2 1 Y-Vizyon Sinyalizasyon Hacettepe Ünv. Beytepe Kampusu Kuluçka Ar-Ge Binası No:12 2 Elektrik-Elektronik Mühendisligi Bölümü Niğde Üniversitesi E-mail : [email protected] [email protected] [email protected] Özet Görüntü işlem ve örüntü tanıma problemleri gibi yoğun işlem yükü gerektiren işlevlerin gerçek zamanlı olarak gömülü sistemler üzerinde uyarlanması yarı-ilekten teknolojilerinde meydana gelen son yıllardaki gelişmeler ile mümkün olabilmiştir. Bu çalışmada plaka yeri tespit problemi için gömülü sistem alt birimlerinin parelel işlem yeteneğine sahip Alan Programlanabilir Kapı Dizisi (FPGA) üzerine uyarlanması gerçekleştirilmiştir. Geliştirilen altbirimler görüntü işlem ve örüntü tanıma uygulamalarında yoğun olarak kullanılmakta olan görüntü işlem ve sınıflandırıcı altbirimleridir. Bu altbirimler kenar bulma, istatistiksel bit-tabanlı öznitelik çıkarma ve yapay sinir ağı kullanılarak bir resim üzerinde plaka yerinin belirlenmesi işlevlerini başarı ile gerçekleştirmektedir. 1. Giriş Yarı iletken teknolojilerinde son yıllarda yaşanan gelişmeler işaret işlem ünitelerini, hafıza birimlerini ve farklı sensörleri içeren yapıların tek bir gömülü sistem üzerinde uyarlanmasını mümkün kılmaktadır. Bu uygulamalar gerçek zamanlı plaka okuma [1], yüz tanıma [2], trafik kazalarını önlemek için sürücü yorgunluğunu belirleme[3], temel görüntü işlem uygulamaları [4] ve görüntü işlem uygulamalarında kullanılacak sınıflandırıcıların uyarlanması[5-7] şeklinde sıralanabilir. Plaka tanıma sistemi, araç sayısındaki artış ve bu artışın meydana getirdiği sorunlar, araç denetimi ve kontrolünün zorlaşmasıyla önem kazanmış ve uygulama alanları artmıştır. Plaka tanıma sistemi, plakanın yerinin tespiti ve tespit edilen bölgede karakterlerin çıkarılıp plakanın belirlenmesi aşamalarından meydana gelmektedir. Bu çalışmada plaka yeri tespit probleminin çözümünde Alan Programlanabilir Kapı Dizisi (Field Programmable Gate Arrays- FPGA) tabanlı bir gömülü sistem önerilecektir. Plaka tanıma uygulaması oldukça yoğun görüntü işlem süreçleri ve sınıflandırıcı birimlerin yüksek başarım ile entegre edilebilmesini gerekli kılar. Literatürde bu problem için yoğun olarak genel amaçlı bilgisayarlar üzerinde koşan yazılımlar önerilmiştir [8-9]. Yazılımsal uygulamalar, seri işlem yapabilme kabiliyetine sahip işlemciler üzerinde gerçeklenmektedir. Ancak, özellikle gerçek zamanlı uygulamaların sözkonusu olduğu durumlarda yüksek işlem yükü aşılması gereken önemli bir kriterdir. FPGA paralel işlem yapabilme ve veri akışı (pipelining) özelliklerinden dolayı ağır işlem yükleri altında gerçek zamanlı uygulamaların gerçekleştirilebilmesini mümkün kılmaktadır. FPGA büyük ölçekli parelel işlem ve veri akışı sunma özelliğinden dolayı görüntü işlem ve sınıflandırıcı birimlerinin donanım olarak gerçekleştirilmesine oldukça uygundur ve son yıllarda bir çok gömülü sistem uygulamasında tercih edilen bir platform olarak ortaya çıkmıştır [1-4]. Ayrıca FPGA tabanlı çözümler yazılım ile gerçekleştirilen çözümlere göre daha hızlı çözümler sunabilmektedir [3]. Bu çalışmada FPGA gibi paralel işlem yeteneğine sahip gömülü sistemler üzerinde gerçek zamanlı olarak plaka yeri tespit işleminin uyarlanabilmesi amaçlanmıştır. Önerilen yaklaşımda plaka yerinin tespiti probleminde öncelikli olarak kameradan gelen imge sobel filtresinden geçirilip eşikleme işlemine tabii tutulmuştur. Elde edilen imge üzerinde eğitilecek bir Çok Katmanlı Algılayıcı (ÇKA) tipi Yapay Sinir Ağı (YSA) için giriş verileri oluşturmak üzere istatistiksel öznitelikler elde edilmiştir. Elde edilen bu özniteliklerden hangilerinin bilgi yoğun olduğunu ve sınıflandırıcı başarımını artırıcı bir etkiye sahip olduğunu tespit etmek için bir öznitelik seçim algoritması kullanılmıştır. Elde edilen sonuçlardan hareketle dört öznitelik kullanımının yüksek başarım için yeterli olduğu görülmüştür. Sonuç olarak bir YSA oluşturulan veri seti ile eğitilmiştir. Sözkonusu süreçlerin FPGA uyarlanabilmesi için işlenecek imgelerin kenar bulma ve eşikleme işlemi, özniteliklerin çıkarılması ve özniteliklerin YSA giriş olarak sunulup plaka bölgesinin tespiti işlemleri VHDL dilinde gerçekleştirilmiştir. Süreçlerin donanıma uyarlanması için dikkate alınması gereken kısıtlar vurgulanmıştır. YSA’nın donanım üzerine uyarlanmasında 16 ve 32 bit sabit noktalı (fixed point) sayı ve 16 bit kayan noktalı (floating point) sayı formatlarının performansa etkileri belirlenmiştir. 2. Önerilen Sistem: Genel Bakış Önerilen sistem Altera firmasının CyclonII ve Xilinx Spartan 3 FPGA’ları üzerinde geliştirilmiştir. Bu çalışmada kameradan alınan görüntü içerisinde plaka yerinin tespiti 3 aşamada gerçekleştirildi. Đlk olarak gelen görüntü 3x3 çekirdek büyüklüğüne sahip bir sobel filtreden geçirilip eşikleme işlemine tabi tutularak, giriş imgesi ikili görüntü haline dönüştürülüp dik kenarlar belirgin hale getirildi. Đkinci aşamada ise elde edilen görüntü üzerinde 180x24 plaka boyutunda aday bölgeler alınarak bu bölgelere ait öznitelikler çıkartıldı. Elde edilen öznitelikler daha önceden eğitilmiş olan bir YSA’ya giriş olarak verilerek sözkonusu bölgenin plaka bölgesi olup olmadığı tespit edilmiştir. Bu süreçe ait bir akış diyagramı Şekil 1’de verilmiştir. Aday bölgeler tüm imge üzerinde gezdirilerek plakanın konumu belirlenmektedir.(Şekil.2) 3. YSA Đçin Eğitim ve Test Verilerin Oluşturulması Bu çalışmada kullanılan çok katmanlı algılayıcı tipi yapay sinir ağının eğitimi için plaka içeren görüntülerden aday bölgeler kesilerek bu bölgeler 1) Pozitif örnek: plaka olan bölgeler ve 2) Negatif örnek: plaka olmayan bölgeler şeklinde iki gruba ayrıldı. Böylece plaka yeri tespit problemi ikili bir sınıflandırma problemi şekline dönüştürülmüş oldu. Eğitim için kullanılan toplam örnek sayısı, 470 pozitif örnek ve 470 negatif örnek olmak üzere 940 adet olarak belirlendi. Elde edilen bu örnekler üzerinde yazılım ortamında kenar bulma, eşikleme ve istatiksel özniteliklerin çıkarılması işlem süreçleri gerçekleştirildi. YSA eğitiminde kullanılacak olan bu öznitelikler, örnekler üzerinde ortalama değer, varyans ve oransal büyüklükler gibi 8 istatistiksel öznitelik oluşturuldu. YSA’nın donanıma daha etkin bir şekilde uyarlanabilmesi için literatürde verilen bir öznitelik seçim algoritması [10] kullanarak giriş öznitelik sayısı azaltılmıştır. Yapılan incelemeler 8 öznitelik içerisinden 4 özniteliğin kullanımının yüksek bir sınıflandırıcı başarımı için yeterli olduğunu göstermiştir. MATLAB ortamında YSA eğitilmiş ve elde edilen ağ parametreleri FPGA’da gerçeklemek üzere kaydedilmiştir. 4. Donanımsal Gerçekleme Gerçek zamanlı olarak resim üzerinde mevcut plaka yerinin tespiti için kenar bulma, eşikleme, öznitelik çıkartma ve sınıflandırma işlemleri FPGA üzerinde gerçeklenmiştir. 4.1 FPGA üzerinde Sobel Uygulaması ve Öznitelik Çıkarımı (a) (b) Şekil 1: Đmge içinde plaka yeri tespiti ve FPGA’da gerçeklenmesi akış şeması Çalışmada kullanılan FPGA üzerinde gerçeklenen sistemde RAM’de kayıtlı olan imge üzerinde sobel filtresi ve eşikleme uygulandıktan sonra yeni ikili imge tekrar RAM’a yazılmaktadır. Elde edilen ikili imge üzerinden alınana plaka aday bölgesine ait öznitelikler çıkartılıp YSA’ya giriş olarak verildi. YSA, üzerinde işlem yaptığı aday bölgenin plaka olup olmadığı tespitini gerçekleştirmektedir. Filtre Kameradan gelen resim üzerinde ilk olarak kenar bulma işlemi uygulanmıştır. Bunun için 3x3 çekirdek büyüklüğüne sahip bir sobel filtresi imge üzerine uygulandı ve eşikleme işlemi yapıalrak imge ikili hale getirilerek tekrar RAM’e yazıldı. Bu aşamadan sonra imgesinin üzerinde plaka yerinin tespiti için, 180x24 piksel boyutlarında plaka yeri olmaya aday bölgeler alınarak bu bölgelerden daha önceden belirlenmiş olan 4 adet öznitelik çıkartıldı. FPGA üzerinde özniteliklerin elde edilmesi aşamasında, imge içinde ve bölgelerde bulunan siyah piksel değerlerinin bulunması işlemi tamsayı formatında gerçekleştirildi. Elde edilen bu sayılar YSA’da kullanılacak sayı formatına çevrilerek bölme ve YSA işlemlerine tabii tutuldu. 4.2 FGPA’da YSA’nın Gerçeklenmesi ve Plaka Tespiti YSA’nın FPGA üzerinde donanımsal gerçeklenmesinde, veri gösterimi, ağ mimarisi ve aktivasyon fonksiyonu, FPGA üzerindeki sınırlı kaynakların etkin kullanımı açısından önem kazanmaktadır. YSA’nın donanımsal gerçeklenmesine başlamadan önce giriş, ağırlıklar ve hücre fonksiyonu için sayı duyarlılığı gözönüne alınması gerekir. Tasarımın sayı duyarlılığının artırılması FPGA’in kaynaklarının üstel olarak artırılması demektir. Öğrenme aşamasında sayıların duyarlılığının mümkün olduğunca yüksek alınması çok önemlidir. Fakat test aşamasında düşük duyarlılıklı sayısal gösterim performans açısından kabul edilebilir. [11] FPGA dijital bir devre ortam sunduğundan uygulama aşamasında yapılması gereken ilk çalışma; analog girişlerin dijital değerlere dönüştürülmesidir. Hesaplama işlemlerini dijital sayı değerleriyle yapmak için floating point, fixed point gibi bir çok sayı formatı geliştirilmiş ve standartlaştırılmıştır. Fakat bunlardan duyarlılık bakımından en göze çarpanı IEEE’nin, kayan noktalı sayılar (floating point) ve sabit noktalı sayılar (fixed point) formatlarıdır. Bu çalışmada, 4 girişli, bir çıkışlı ve 2 gizli katman sahip bir YSA kullanıldı. Farklı sayı formatları ve farklı bir uzunluklarında FPGA üzerinde donanımsal olarak gerçekleştirilen ağ toplam 498 imge kullanılarak test edildi. 4.2.1 Aktivasyon Fonksiyonu YSA için önemli işlemlerden birisi de aktivasyon fonksiyonudur. Aktivasyon fonksiyonu, hücreye ait girişler ve ağırlıkların çarpımı ile eşik değerinin toplamını işleyerek çıkışı belirler. Üstel fonksiyonun FPGA'de doğrudan gerçekleyemediğimizden, YSA’nın eğitiminde ve donanıma uyarlanması aşamasında logaritmik sigmoidal fonksiyon yerine denklem (1)’de verilen fonksiyon kullanılmıştır. Bu fonksiyon logaritmik sigmoidal fonksiyonuna oldukça benzeyen bir fonksiyondur. Her iki fonksiyonun davranışı Şekil 2’ de verilmiştir. f ( x) = 1 x 1 + 2 1+ x (1) 4.2.2 YSA’nın Donanımsal Gerçeklenmesi YSA donanım üzerinde gerçeklenmesinde paralel veri işleme yapısının sağlanmasına özellikle dikkat edilmiştir. Tamamen paralel yapının kullanılması, FPGA tümleşik devresinin en önemli özelliklerinden birinin kullanılması anlamına gelmektedir. YSA’nın FPGA ile gerçeklenmesinde sabit noktalı sayı ve kayan noktalı sayı formatlarında ve farklı bit uzunluklarında işlem yapabilen 12 çarpma, 14 toplama ve 2 bölme modülü kullanıldı. Kullanılan bu modüllerin oluşturulması ve uygulamaları ayrıntılı olarak daha önceki çalışmalarımızda verilmiştir [12-14]. Şekil 2: Logaritmik sigmoidal fonksiyon ve f(x) fonksiyonunun [5, -5] aralığındaki davranışı 5. Sonuçlar ve Değerlendirme Plaka yeri tespit problemi için oluşturlan test veri seti kullanılarak FPGA üzerinde gerçeklenen YSA’nın başarımım ölçülmüştür. Kullanılan toplam örnek sayısı 498 olarak belirlenmiştir. Bu örneklerin yarısı pozitfi örnek diğer yarısı da negatif örnek olacak şekilde ayarlanmıştır. Elde edilen sonuçlar Tablo.1 de verilmektedir. Tablo 1: FPGA’da gerçeklenen YSA’ya ait başarı oranları Adet Doğru Pozitif Örnek 249 237 12 95,22 Negatif Örnek 249 246 3 98,80 Toplam 498 483 15 96,99 Yanlış Oran (%) Tablodan görüldüğü gibi toplam başarım %97 civarındadır. Bu oran YSA’nın donanıma uyarlanabilmesi için gerekli olan sınırlı bit uzunluğu ve sigmoid fonksiyon yaklaşımları kullanılıdığı gerçeği gözönüne alınırsa oldukça yüksek bir başarım olarak kabul edilebilir. Şekil 1.b’de gösterilen plaka yerinin tespitinin Altera Cyclone II FPGA üzerine uyarlanması sonrasında elde edilen sentez sonuçları Tablo 2’de verilmiştir. Tablo 2: Şekil 1.b’de gösterilen işlemelere ait sentez sonuçları Toplam Kullanılan Kullanım(%) Lojik Element 33216 Fonksiyon 33216 Register 33216 6693 6463 % 20 %19 3612 % 11 Tablo 2’de görüldüğü gibi plaka yerinin tesipiti için gerekli işlemler, kullanılan FPGA’nın %20’sini kaplamaktadır. Yukarıda belirtilen sentez sonuçlarında, aritmetik işlemler 32 bit sabit noktalı sayı formatında gerçekleştirildi. Özniteliklerin çıkarılmasında kullanılan bölme işlemleri de 32 bit sabit noktalı sayı formatında gerçekleştirildi. . Bu aşamada işlemler seriden paralele doğru gidildikçe hız açısından büyük kazanım elde edilecektir fakat FPGA kullanılan kapı sayısında artış meydana gelecektir. Bu çalışmada mevcut FPGA üzerindeki kapı sayısı göz önünde bulundurularak tasarım yapıldı. Tablo 3: FPGA’da gerçeklenen YSA’ya ait sentez sonuçları K.N.S 16 bit S.N.S 16 bit S.N.S 32 bit Dilim % 71 % 45 % 82 Filip-Flop %14 % 18 % 22 LUT % 65 % 42 % 77 Tablo 3’te faklı bit uzunluklarında ve farklı sayı formatlarında FGPA üzerinde gerçeklenen YSA yapısına ilişkin alan sonuçları verilmektedir. Tabloda da görüleceği gibi aynı bit uzunluğuna sahip sabit noktalı sayı ve kayan noktalı sayı formatlarında yapılan gerçeklemede sabit noktalı sayılar daha az yer kapladığı ve bit uzunluğu arttıkça kullanılan donanımdaki artış tablo 3’te görülmektedir. 6. Teşekkür Bu çalışma Sanayi Bakanlığı SAN-TEZ Destekleme Programı kapsamında desteklenen “00168.STZ.2007-2” kodlu ve “Gerçek Zamanlı Görüntü Đşlem ve Örüntü Tanıma Uygulamalarında Kullanılacak Altbirimlerin Gömülü Sistem Tasarımı ve Plaka Okuma, Araç Renk ve Model Tanıma Uygulaması” başlıklı proje çerçevesinde gerçekleştirilmiştir. 7. Kaynaklar [1] Bellas N., Chai S. M., Dwyer M., Linzmeier D., “FPGA implementation of a license plate recognition SoC using automatically generated streaming accelerators”, Parallel and Distributed Processing Symposium, 2006. IPDPS 2006. 20th International, Page(s): 8 pp., 25-29 April 2006. [2] Smach F., Atri M., Mitéran J., Abid M., “Design of a Neural Networks Classifier for Face Detection”, Journal of Computer Science, vol. 2(3), pp. 257-260, 2006. [3] Wang F., Qin H., A FPGA based driver drowsiness detecting system, Vehicular Electronics and Safety, 2005, IEEE International Conference, pp. 358 – 363, 1416 Oct. 2005. [4] Appiah K., Hunter A., “A single-chip FPGA implementation of real-time adaptive background model Field-Programmable Technology”, Proceedings 2005 IEEE International Conference, pp. 95 – 102, 11-14 December 2005. [5] Siniscalchi S. M., Gennaro F., Vitabile S., Gentile A., Sorbello F., “Efficient FPGA Implementation of a Knowledge-Based Automatic Speech Classifier”, ICESS 2005, pp.198-209, 2005. [6] Wall G., Iqbal F., Liu X., Foo S., “A Fast FPGA Implementation of a Unique Multilevel Tree-based Image Classifier”, Florida A&M University - Florida State University. [7] Hsiao P. Y., Li L. T., Chen C. H., Chen S. W., Chen S. J., An FPGA architecture design of parameter-adaptive real-time image processing system for edge detection, Emerging Information Technology Conference 2005, Page(s):3 pp., 15-16 Aug. 2005. [8] P. Ponce, S. S. Wang, D. L. Wang, “License Plate Recognition-Final Report”, Department of Electrical and Computer Engineering, Carnegie Mellon University, 2000. [9] M. Yu and Y. D. Kim, ``An Approach to Korean License Plate Recognition Based on Vertical Edge Matching", IEEE International Conference, vol. 4, 2975-2980, 2000 [10] Zaffalon, M., Hutter, M.:. Robust feature selection by mutual information distributions. In Darwiche, A., Friedman, N. (Eds).:, UAI2002: Proceedings of the 18th Conference on Uncertainty in Artificial Intelligence. Morgan Kaufmann, San Francisco . (2002) 577–584. [11] STEVENSON, M., WEINTER R., WIDOW B. 1990. Sensitivity of Feedforward Neural Networks to Weight Errors, IEEE Transactions on Neural Networks, Vol.1,No.2, pp 71-80. [12] M. Ali Çavuşlu, Cihan Karakuzu, Suhap Şahin, “Neural Network Hardware Implementation Using FPGA”, 3. ISEECE2006, s. 287 – 290 [13] Ilgaz Az, Suhap Şahin, Cihan Karakuzu, Mehmet Ali Çavuşlu, “Implementatıon of FFT and IFFT Algorithms in FPGA”, 3. ISEECE-2006, s. 7 – 10 [14] M. Ali Çavuslu, Sener Dikmese, Suhap Sahin, Kerem Küçük, ve Adnan Kavak, “Akıllı Anten Algoritmalarının IEEE 754 Kayan Sayı Formatı ile FPGA Tabanlı Gerçeklenmesi ve Performans Analizi”, URSI-Türkiye’2006, s. 610-612 III.
© Copyright 2024 Paperzz