Ağustos 2009 | Sayı : 5
      Robotlar Nasıl Görebilirler? Ağustos 2009 | Sayı : 5

Gözlerimiz bizim belki de en önemli organlarımızdır. İnsanoğlunun sahip olduğu ileri teknoloji ürünü gözleri ve henüz taklit edilemeyen derecede mükemmel görme yeteneği, bilimin birçok alanında olduğu gibi robotikte de ilham kaynağı olmuştur. Şu bir gerçektir ki, bir robot etrafını algılayabildiği ölçüde zeki ve yeteneklidir. Bu yazıda robotlara nasıl görme ve ayırt etme yeteneği kazandırılacağına dair ufak bir denemeden bahsedeceğiz.

Üzerindeki kamerasıyla bilgisayarımıza görüntü aktarımı yapan hayali robotumuza etrafındaki kırmızı, mavi ve yeşil renklerdeki topları algılama yeteneği kazandıracağız. Öncelikle bilinmesi gereken, bilgisayar ekranındaki her pikselin red, green ve blue renklerinden oluştuğudur. Her piksel bu her üç renk için 0-255 arasında sayısal değerler barındırır. Topları ayırt ederken bu değerlerden faydalanarak RGB filtresi geliştireceğiz.

Şimdi kameradan alınan görüntünün bir karesini düşünelim. Görüntüde kırmızı renkte ufak bir top var ve biz bu topu algılayacağız. Bunun için ekrandaki kırmızıya yakın renkleri daha kırmızı yapan, kırmızıya uzak renkleri ise siyaha yaklaştıran bir algoritma kullanıyoruz. Bu algoritmayı kırmızı değer için şu şekilde uygularız:

Her piksel için;

R=pikselin Red değeri , G= pikselin Green değeri, B= pikselin Blue değeri

R=( R-G) + ( R-B)

G=0, B=0

Bu işlemi yaptıktan sonra resimlerde de görüldüğü gibi karşımıza siyah arka plan üzerinde kırmızı bir daire çıkacaktır.

Şekil 1: Gerçek görüntüye RED filtresi uygulanınca elde edilen görüntü

Top gözle açıkça seçilse de görüntü üzerinde bazı parazitler olacaktır. Görüntüyü daha da netleştirmek için bir sınır değeri belirlenerek, bu değerin altındaki pikseller silinebilir. Ben bu uygulamada sınır değeri olarak 128 kullanıyorum.

 

Her piksel için;

Eğer R<128

O halde bu pikseli siyah yap.

Bu noktadan sonra yapılması gereken topun nerede olduğunun belirlenmesi ve topa doğru hareket edilmesidir. Bu nedenle  topun ağırlık merkezini bulmalıyız. Bunu lise yıllarında öğrendiğimiz ağırlık merkezi formülleriyle hesaplayabiliriz. Görüntü üzerindeki her pikselin Red değerini, o pikselin X ve Y koordinatlarıyla çarpıp ortalamasını buluyoruz.

 

İşlenmiş görüntüdeki her nokta için;

COG_X = COG_X + (R*x)

COG_Y = COG_Y + (R*y)

Total = Total + I

COG_X = COG_X/Total

COG_Y = COG_Y/Total

COG_X ağırlık merkezinin X koordinatını, COG_Y ise Y koordinatını verecektir. RGB Filtresinin kırmızı değeri algılayan C# kodu aşağıdaki gibidir. Bu kodlar örnek alınarak aynı filtre Green ve Blue değerleri için de yazılabilir. Ayrıca kodları buradan indirip istediğiniz resimler üzerinden siz de deneyebilirsiniz. Size ve robotlarınıza açık görüşler diliyorum.


      Burhan ARAS
İ.Ü. Bilgisayar Mühendisliği 4. Sınıf
- Ağustos 2009 -
Editörden... | Muhammed CÜCE Robotlar Nasıl Görebilirler? | Burhan ARAS Gerçek Dünya - Model | Tuba BAŞDEMİR İnternette Yeni Bir Nefes: Wolfram | Alpha | Yusuf Ziya ATALAY Akıllı Projeler | Neslişah ÇELİK …Ve Tanrı Gitarı Yarattı | Erman TEPE Ünlü Virüsler | Cihat GÜZEL Son Teknolojik Gelişmeler | Ilgın UĞUR Siz Kazanın, Dünya Kazansın | Burak KANMAZ Transistör ve Sayısal Elektronik | Özkan AKGÜL E-yayın Kavramı ve Analizi | Muhammed CÜCE Haberleşme Tarihi ve Yeni Nesil Teknolojiler | H. Can ÇOBANOĞLU
« önceki sayfa - 1 - sonraki sayfa »

Ana Sayfa | Künye | Dergimiz | | İletişim
© 2009-2010 Bilisimdergi.Com Tasarım - Kodlama : İU BİLGİSAYAR

Creative Commons License
Bilişim Dergi içeriği  Creative Commons  lisansı ile korunmaktadır.
Kaynak göstermek ve link vermek şartıyla yazılarımızı kullanabilirsiniz.