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