Uploaded by sezai Güler

Circle_traffic_sign_fetection

advertisement
ELM463– DÖNEM PROJESİ
Yuvarlak Trafik Levhası Tespiti
Sezai Güler
1801022027
s.guler2018@gtu.edu.tr
ABSTRACT (ÖZET)
Kullanılarak farklı ortam koşullarına duyarlı
(gündüz, gece, gölgeli vb. ortamlar) yuvarlak
şekilli trafik işaretleri tespiti amaçlanmıştır. Bu
proje ile trafikte uyulması gereken kurallar
sürücülere bildirilebilir. Dolayısıyla sürücülerin
trafik kurallarına uyması sağlanır.
Bu projenin amacı, yuvarlak şekle sahip trafik
işaretlerini tespit etmektir. openCV kütüphanesi
kullanılarak yuvarlak trafik işareti tespitine
yönelik bir çalışma sunmaktadır. Projede,
yuvarlak trafik işareti, gauss filtresi, median
filtresi, canny kenar tespiti, hough dönüşümü ve
morfolojik operatörler gibi çeşitli görüntü işleme
teknikleri ile ön işleme tabi tutularak tespit
edilir. Daha sonra trafik işareti kırpılır ve resmin
diğer kısımları çıkarılır. Son olarak elde edilen
görüntü eşikleme yöntemi ve morfolojik
dönüşümler ile daha belirgin hale gelir.
2. Deneyler ve Analiz
2.1 Algoritma Akış Diyagramı
ANAHTAR KELİMELER
Yuvarlak trafik işareti, Filtreleme tekniği, Canny
Sınır Tespiti, Hough Dönüşümü, Morfolojik
Operatörler
1. Giriş
Trafik bölgelerinde trafik işareti tespiti, trafik
işaretlerini düzenlemek, sürücüyü uyarmak ve
belirli eylemleri sürücüye yaptırmak için
kullanılır. Hızlı ve sağlam bir otomatik trafik
işareti algılama sürücüye yardımcı olabilir.
Böylece sürüş güvenliğini önemli ölçüde
artırabilir. Genel olarak trafik işaretleri sürücüye
güvenli ve etkili navigasyon için çeşitli bilgiler
sağlar. Bu nedenle trafik işaretlerinin otomatik
olarak algılanması, , akıllı sürüşlü araç veya
sürücü sistemleri için önemlidir. Ancak trafik
işaretlerinin çeşitli arka plan görüntüleme
koşullarına göre tanımlanması zorlu bir durum
oluşturmaktadır. Yapılan projede opencv
kütüphanesi ile uygun görüntü işleme teknikleri
Şekil 1 : Algoritma Akış Diyagramı
1
2.2 Trafik İşareti Tespit Etme Aşamaları
A Görüntü Okuma ve Filtreleme
Bu aşamada projede kullanılan resimler opencv
kütüphanesi ile okunmuş ve yumuşatılmıştır. İlk
adımda, resimler gri (0 - 255) dönüştürülerek
renk bilgisi azaltılmıştır. Ardından, resimdeki
gürültülerin azaltılması için median filtresi
uygulanmıştır. Median filtresi, bir pencere
içindeki piksellerin ortanca değerini alarak
merkezdeki pikseli değiştirir. Bu sayede,
resimdeki rastgele ve istenmeyen pikseller etkili
bir şekilde ortadan kaldırılır. [3] Daha sonra,
resmin kenar tespitinde daha iyi sonuçlar elde
etmek amacıyla gauss filtresi kullanılarak
yumuşatılmıştır. Gauss filtresi, bir pikselin
komşularının ağırlıklı ortalamasını alarak piksel
değerini günceller. Bu işlemle, resimdeki keskin
geçişler yumuşatılır ve kenarlar daha belirgin
hale getirilir. [4] Projede ortalama ve gauss
filtreleri karşılaştırılmış ve gauss filtresinin daha
iyi performans gösterdiği belirlenmiştir. Gauss
filtresinin avantajları arasında daha az hesaplama
gerektirmesi, kenarları koruması ve gürültüyü
azaltması bulunmaktadır.
Şekil 3 : Bulanıklaşmış Görüntü
Şekil2’ deki giriş görüntüsü gauss filtresi ile
yumuşatılmış ve Şekil 3’ deki görüntü elde
edilmiştir.
B. Canny Kenar Bulma ve Dilation
Bu aşamada Canny metodu ile görüntünün sınır
bölgeleri çıkarılacak. Kenarların daha belirgin
görülmesi için dilation yöntemi kullanılacaktır.
Canny, yüksek frekanslı pikselleri kullanarak bir
görüntüdeki kenarları tespit etmek için kullanılan
bir algoritmadır. Sobel ve Laplacian yöntemine
göre daha az hata ile çalışmaktadır. Bu yüzden
görüntüdeki kenarları bulmak için canny kenar
bulma yöntemi kullanılmıştır. Bu yöntemin en
önemli parametreleri sınır aralık değerleridir.
Projede yapılan denemeler sonucu daire tespiti
doğru yapılabilmesi için sınır parametreleri
yüksek aralıkta olması gerektiği farkına
varılmıştır. Fakat seçilen aralık, trafik işaretin
kaybolmasına neden olmamasına dikkat
edilmelidir. Bu yüzden sınır aralığı 100 - 400
seçilmiştir. Canny algoritması sonucu kenar
çizgileri görülmediği için dilation işlemi
kullanılmıştır. Dilation yöntemi ile dikey ve
yatay yönde kenarlara beyaz pikseller eklenerek
kenarların daha kalın, belirgin olması
sağlanmıştır. Bu yöntemde , kernel altındaki en
az bir piksel '1' ise bir piksel öğesi '1'dir.[5] Bu
yöntemde dikkat edilmesi gereken parametre
iterations değeridir. Bu değer yüksek seçilirse
çok fazla genişleme olur ve Daire şekli kaybolur.
Dolayısıyla Hough circle transformation sonucu
Şekil 2 : Giriş Görüntüsü
Şekil 2‘ de gri seviyeli giriş görüntüsü
görülmektedir. Opencv kütüphanesi ile 3 boyutlu
bu görüntü gri seviyeye dönüştürülmüştür.
2
yuvarlak trafik işareti tespit edilemez. İncelenen
makalede kenarların belirgin olması için gauss
filtre kullanıldığı görülmüştür. Fakat gauss
filtresi kenar bölgeleri yeterince belirgin
göstermediği için dilation yöntemi tercih
edilmiştir.
Canny kenar yöntemi ile görüntü üzerinde
yuvarlak tespiti daha kolaylaşmıştır. Bu aşamada
hough transform yöntemi ile görüntü üzerindeki
yuvarlak trafik işareti tespit edilmiştir ve giriş
görüntüsü üzerinde çizdirilmiştir. Daha sonra
çember, merkez ve yarıçapı bilgisi kullanılarak
kırpılmıştır. Çember dışında kalan bölgeler and
operatörü ile maskelenerek filtrelenmiştir. Bu
aşamada görüntüdeki trafik işaretleri yarıçapı
farklı olması yuvarlak tespitini zorlaştırmıştır.
Kullanılan görüntüler üzerinde bulunan her bir
trafik levhası yarıçapı farklı olduğu için farklı
görüntüler için yarıçap aralıkları değiştirilmiştir.
Hough Dönüşümü, görüntülerdeki doğru ve
daireleri tespit etmeyi kolaylaştıran, bilgisayarda
görme ve görüntü işleme alanlarında kullanılan
algoritmalar bütünüdür.[6] Bu yöntemde (x,y)
değişken noktalardan oluşan daire değişkenleri
değiştirilerek farklı eksene taşınır. Bu eksenin
değişkenleri (a,b) değiştirilerek her bir (x,y)
noktasına karşın bir çember çizilir. Çemberlerin
kesiştiği noktalar sayılır. Kesişen nokta sayısı
belirlenen eşik üstünde ise o noktanın (a,b) sabit
değerleri seçilir. Bu sabit değerler ile değişen
(x,y) değerleri kullanılarak bir çember çizdirilir.
Çizdirilen bu çember görüntüdeki yuvarlak şekli
tespit etmektedir. Daireyi doğru tespit etmek için
eşik değeri, düzgün seçilmelidir. Aksi halde daire
şekli doğru bir şekilde tespit edilmeyebilir.
Şekil 4 : Canny Kenar Çizgileri
Şekil 5 : Dilation Genişletilmiş Kenar Çizgileri
Şekil 4’ te görülen yüksek frekanslı kenar
pikselleri pek belirgin değildir Dilation ile
genişleme sonucu Şekil 5’ te daha belirgin hale
gelmiştir. Iterations değeri arttıkça pikseller daha
fazla genişleyecektir.
Şekil 6 : Hough Transform Tanımı
C. Hough Transform ile Trafik İşareti Tespit
Etme ve Kırpma
Şekil 6’da hough dönüşümü tanımlayan görsel
gösterilmiştir. Her bir noktaya karşı bir daire
çizilmiştir. Dairelerin kesiştiği nokta (a,b)
3
ekseninde görülmektedir. Bu nokta için (a,b)
sabiti seçilip yuvarlak tespiti yapılmıştır.
eşik değeri belirlemektir.[5] Otsu algoritması ile
bulunan eşik değeri altındaki değerler alt eşik
değerini alırken üstünde kalan noktalar üst eşik
değerini alır. Böylece arka plan temizlenir ve ön
plandaki görüntü daha net anlaşılır. Otsu
eşikleme yönteminden sonra morfolojik
operatörler ile gürültü giderilmiştir. Opening,
erozyon ardından dilation işlemidir. Closing ise
dilation ardından erozyon işlemidir. Opening ile
beyaz noktalar, closing yöntemi ile siyah
noktalar giderilmiştir. Morfolojik dönüşümün
dezavantajı gürültü giderme yanısıra orijinal
görüntüde piksel kaybına neden olmasıdır.
Şekil 9 : Kırpılmış Görüntü Histogramı
Şekil 7 : Tespit Edilen Trafik İşaretini
Görüntü Üzerinde Belirleme
Şekil 7’ deki yuvarlak trafik işareti hough
transformation ile tespit edilmiş ve sınır çizgileri
çizilmiştir.
Şekil 9’ da kırpılmış görüntünün histogramı
görülmektedir. Otsu ile eşik hesaplanırken
histogram grafiğinden yararlanılır. Histogramda
her bir piksel değeri için olası tüm eşik değerleri
üzerinde varyans hesaplanır. Varyans değeri
maksimum olan eşik değeri seçilir.
Şekil 8 : Kırpılmış Trafik İşareti
Şekil 8’deki tespit edilen trafik işareti merkez ve
yarıçap bilgileri kullanılarak kırpılmıştır. Daire
dışındaki kalan noktalar maske ile filtrelenmiştir.
D. Otsu’s Eşikleme ve Morfolojik Operatörler
Son aşamada kırpılmış görüntü otsu’s metodu
ile eşiklenmiş, morfolojik dönüşüm ile siyah ve
beyaz noktalar giderilmiştir. Histogramın iki tepe
noktasından oluştuğu, iki farklı görüntü değerine
sahip görüntünün İyi bir eşik değeri bu iki
değerin ortasında olacaktır. Otsu's yöntemi,
görüntü histogramı yardımıyla optimal bir genel
Şekil 10 : Otsu ile Eşiklenmiş Görüntü
4
Şekil 10’ da otsu ile arka plandan ayrılmış
görüntü görülmektedir. Trafik işaretleri iki farklı
gri seviyeye sahip olduğu için arka plan düzgün
bir şekilde temizlenmiştir. Farklı bölgeler için gri
tonu farklı değerler alsaydı veya geçiş tona sahip
bölgeler olsaydı arka plan düzgün bir şekilde
temizlenmeyebilirdi. Böyle bir sorun çıkması
durumunda otsu yöntemi yerine lokal eşikleme
yöntemi daha verimli olur.
bağlı hough transformation daire tespiti için
yarıçap aralığı değiştirildi. Bu sorunun
üstesinden gelme için herhangi bir algoritma
geliştirilemedi. Çalışma esnasında her bir
parametrenin çok önemli olduğu kavrandı.
Herhangi bir aşamada küçük bir değişiklik
çalışma sonunda dairenin tespit edilememesine
neden oldu. Genel olarak derste görülen görüntü
işleme teknikleri uygulama ile tekrar edilerek
daha iyi kavranması sağlandı.
Kaynaklar
[1]chromeextension://efaidnbmnnnibpcajpcglclefindmk
aj/https://www.bartlab.org/Dr.%20Jackrit's
%20Papers/ney/3.KRS036_Final_Submission
.pdf
[2]https://docs.opencv.org/4.x/d4/d13/tutorial
_py_filtering.html
[3]https://docs.opencv.org/3.4/d4/d70/tutorial
_hough_circle.html
Şekil 11 : Morfolojik operatörler ile Gürültü
Giderilmiş Görüntü
[4]https://bilgisayarkavramlari.com/2007/11/
25/duzlestirme-filitresi-gauss-filtresigaussian-filter-smoothing-filter-gaussianblur/]
Şekil 11’ de morfolojik operatörler sonucu siyah
ve beyaz noktalar temizlenmiştir. Ana resim de
pek fazla kayıp olmadığı bu yöntem ile gürültü
giderme başarıyla sonuçlanmıştır.
[5]https://docs-opencvorg.translate.goog/3.4/d9/d61/tutorial_py_mo
rphological_ops.html?_x_tr_sl=en&_x_tr_tl=
tr&_x_tr_hl=tr&_x_tr_pto=sc
3. Sonuç ve Yorum
Bu çalışmada yuvarlak trafik işaretleri tespit
edilmesine yönelik algoritma geliştirildi. Projede
opencv kütüphanesi ve hough transformation
yöntemi ile tespit edilmeye çalışıldı. 7 eğitim seti
7 test seti olmak üzere toplamda 14 resim
kullanıldı. Eğitim setinin %100’nde başarı
sağlanırken test setinin %71’ inde başarı
sağlandı. Proje esnasında bazı sorunlar yaşandı.
İlk yaşanılan sorun incelenen başka bir projedeki
algoritmayı uyarlamamak oldu. Bu projedeki
algoritma uygulandığında hiçbir doğru sonuç
bulunamadı. Daha sonra farklı projelerdeki
kullanılan algoritmalar ve kendi düşündüğüm
algoritma birlikte harmanlanarak daha düzgün ve
doğru çalışan bir algoritma geliştirildi. Diğer bir
sorun trafik işaretleri yarıçapı farklı olmasından
kaynaklandı. Her bir denemede kullanılan
görüntüde bulunan trafik işaretinin yarıçapına
[6]https://batuhandaz.medium.com/dijitalg%C3%B6r%C3%BCnt%C3%BCi%CC%87%C5%9Fleme-image-processing5-canny-edge-ve-hough-transform86867cd67d24
5
Download