Download (PDF, 94KB) - Mehmet Ali Çavuşlu

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.