Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde Hareket Eden Renkli Nesnelerin Takibinin PID ile Gerçekleştirilmesi Yalçın Karakoç1, Sıtkı Öztürk2, Melih Kuncan3 1 Elekronik ve Haberleşme Mühendisliği Bölümü Kocaeli Üniversitesi, Umuttepe {yalcinkarakoc87}@hotmail.com 2 Elekronik ve Haberleşme Mühendisliği Bölümü Kocaeli Üniversitesi, Umuttepe {sozturk}@kocaeli.edu.tr 3 Mekatronik Mühendisliği Bölümü Kocaeli Üniversitesi, Umuttepe {melih.kuncan}@kocaeli.edu.tr Özetçe Bu çalışmada renkli nesnelerin gerçek zamanlı tespiti ve takibini yapacak yazılım, donanım çalışması yapılmıştır. Yazılım kısmı için Linux işletim sistemi altında çalışılmış olup, OpenCV kütüphanesinden yararlanılmıştır. Donanım kısmında Arduino geliştirme kartı ve bu karta bağlı iki adet servo motor kullanılmıştır. OpenCV ile usb portu üzerinden haberleşen Arduino, servo motorlara koordinat bilgileri gönderilerek nesnenin takibi sağlanmıştır. 1. Giriş Sayısal bir resim (görüntü), nesneler tarafından yansıtılan ışık enerjisinin (analog sinyal) bir algılayıcı tarafından öngörülen elektromanyetik aralıkta algılanarak sayısal sinyal haline dönüştürülmesi ile oluşur. Bir görüntünün temel bileşeni pikseldir. Sayısal bir görüntü MxN boyutlu piksellerden oluşan bir matris ile ifade edilir. Gri tonlu görüntülerde, görüntü farklı gri ton değerlerinden oluşur. Gri değer aralıkları {0,1,2,...,255} şeklinde ifade edilir. Video kamera ve tarayıcı gibi görüntü yakalayıcı cihazlarla alınarak sayısallaştırılan görüntülerin geliştirilen yöntemlerle işlenip analiz edilerek görüntülerden bilgi elde edilmesi ve bu bilgilerin yorumlanması, görüntü işleme alanının temelini oluşturur. Görüntü işleme uygulamalarına örnek olarak fabrika otomasyon uygulamalarından endüstriyel kalite/üretim kontrolleri, tıbbi uygulamalardan kan hücrelerinin sayımı, bilgi işlem uygulamalarından karakter tanıma, güvenlik amaçlı uygulamalardan yüz tanıma, askeri uygulamalardan akıllı silahlar üretimi gibi örnekler verilebilir[1]. Son yıllarda ise şüphe çeken kişi veya nesnelerin doğrudan görüntü işleme teknikleri kullanılarak belirlenmesine yönelik çalışmalar yapılmaktadır.[5] Bu çalışmada, görüntü işleme algoritmalarından yararlanılarak renkli nesne algılama teknikleri kullanılmıştır. Görüntü işleme kısmını İntel’in açık kaynaklı görüntü işleme kütüphanesi olan Open Source Computer Vision (OpenCV) kullanılmıştır. Bu çalışmada OpenCV kütüphanesini kullanılmasındaki asıl amaç gerçek zamanlı görüntü işleme uygulamalarına izin vermesidir. OpenCV’nin sağlamış olduğu renk algılama ve algılanan renk bileşenlerinin aralarında benzerlik gösteren belirli bölgelere ayırma işlemi yapılmış ve nesnemizin konumu koordinat olarak belirlenerek nesnelerin takibini gerçekleştirecek algoritma yazılmıştır. Donanımın çalışma prensibi kısaca bilgisayar yardımıyla işlenen görüntü sayesinde renkli nesnemizin kamera koordinat üzerinde yeri belirlenmiştir. Belirlenen koordinatlar USB portu aracılığıyla Arduino geliştirme kartına gönderilmiştir. Arduino geliştirme kartına bağlı iki adet servo motor gelen koordinat bilgilerini kullanarak servo motorların hangi yönde kaç derecelik açıyla hareket edeceğine karar verir. Servo motorların hareketi için PID denetçi kontrolü kullanılmıştır. PID kontrolüyle Arduino’nun verilen koordinatlara sıfır hatayla yaklaşması amaçlanmıştır. Sonuç olarak görüntü işleme yazılımı sayesinde renkli nesnenin kamera üzerindeki konumu belirlenir ve yön vektörlerinin sonuçlarına göre hareket tespit edilen yöne servo motorlar hareket ettirilir. Kameramız servo motorlara bağlı olduğundan motorlar hareket ettikçe hareketli nesne kamera görüntüsünün merkezine doğru alınmaktadır. 2. Hareketli Nesne Takip Metodu Hedef takibi; hareket eden objenin durumunun tahmin edilmesidir. Burada durum ifadesi “pozisyon, hız, ivme v.b.” şeklinde ihtiyaca bağlı olarak seçilebilir. Hedef takibinde bir veya daha fazla değişik platforma monteli sensörler kullanılarak gerçekleştirilebilir. Hedef takibi kestirimden daha geniş bir anlam taşımaktadır. Çünkü hedef takibinde sadece kestirim araçlarını kullanmakla kalmaz, karar verme teorisinin istatistiksel kurallarını da kullanır[2]. Literatürdeki hedef takip sistemleri incelendiğinde, hedefin t anındaki durumuna göre sadece t+1 anında 281 Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde bulunacağı konumunun tahmin edildiği gibi ve bu tahmini konumda küme veya kapsama ağacı gibi yapılandırmalar gerçekleştirilerek hedef takibi sağlandığı görülmektedir. Ayrıca, literatürde birçok çalışmada hedef hızının 20-30 m/sn’yi aşmadığı varsayılmıştır. Mevcut yaklaşımlarda hedefin hızı arttıkça düğümler tarafından algılanmadan, ilerleme durumu ortaya çıkabilmektedir ve bu da hedefin konumunun hesaplanamamasına yol açmaktadır. Önermiş olduğumuz algoritmalar ile hedefin gideceği yön önceden tahmin edilir ve bu doğrultudaki düğümler uyandırılarak gerekli yapılandırmalar gerçekleştirilir [3]. Öncelikle görüntü işleme teknikleri için hareketin dış dünyadan zengin bir bilgi kaynağı olduğunu söylemek yerinde olacaktır. Bundan dolayı kısa bir şekilde görüntü hareketine göz atılması uygun olacaktır. Şekil 1’de görüntü hareketi gösterilmiştir. Zamanla değişen bir X(t) güzergâhında hareket eden üç boyutlu noktanın hız denklemi aşağıdaki gibidir. ( ) ⃗ ( ( ) ( ) ( ) ) korelasyon belirlenir. En iyi karşılaştırma değeri en iyi yer değiştirme bilgisini verir. Yani her işlem adımında uzaysal olarak kayan ve geçici olarak türevlendirilen bir alan üzerinde inceleme yapılır. Bu yaklaşımla çok daha sağlam vektör alanları, türevlendirme işlemi geçici olarak sadece araştırma alanlarında yapıldığı için, diğer yöntemlere göre çok daha hızlı olarak elde edilir. ( ) Üç boyutlu güzergâhın görüntü düzlemi üzerine perspektif izdüşümü iki boyutlu bir güzergâh ortaya çıkarır: ( ( ) ( )) ( ( ) ( ) ( ) ) ( ) ( ) Buradan anlık iki boyutlu hız aşağıdaki şekilde ifade edilebilir: ⃗ ( ( ) ( ( ) ( ) ( ) ( ) ) ) ( ) ( ) ( ( ) ( )) Şekil 1: Hareketli ve Sabit Işıkla Duran ve Dönen Lambert Küreleri Çalışmada, görüntüler bloklara bölünmüştür ve her bloğun orta noktası optik akış vektörlerinin başlangıç noktası olarak alınmıştır. Birbirini izleyen iki görüntü için, ilk görüntüdeki her blok çevre blokların içinde aranmıştır. ( ) İki boyutlu hareket alanı bütün görünür noktalar için iki boyutlu hızı ifade eder. Optik akış alanı ise hareket alanının bir kestirimidir. Optik akış konseptinde iki temel problemle karşılaşılır; izlenecek görüntü özelliğinin belirlenmesi, bu özelliğin nasıl izleneceği. Daha açık ifade edilecek olursa, yüzey parlaklığının zamanla değişmez olduğunu varsayılarak, öncelikle sabit parlaklığın noktaları denklem 4’teki gibi ifade edilir. ( ) ( ) ( ) Genellikle araştırmacılar tarafından parlaklığın sabit olduğu kabul edilir, ancak doğa farklı şartlar ortaya koyar. Bundan dolayı optik akış hareket alanı kestiriminde bazen çok zayıf yakınsamalar elde edilebilir. Örneğin; dönen bir Lambert küresi sabit bir ışık kaynağı altında sabit görüntü verir. Fakat sabit bir küre hareket eden ışık kaynağı altında hatalı yoğunluklar ortaya çıkarır. Çalışmada, alan karşılaştırma tabanlı optik akış algoritması uygulanmıştır. Alan karşılaştırma algoritmaları diğer optik akış algoritmalarından, bir önceki görüntü için elde edilen bilgilerden de yararlanarak vektör hesaplamaları yaptığı için farklıdır. Bir önceki resim ile sonraki resim arasında bazı mesafe ölçüm yöntemleri kullanılarak 282 Şekil 2: Blok Karşılaştırma Birbirini izleyen iki görüntü için, bloklardaki kayma, farkların kareleri toplamı (Sum of Squares Differences) metoduyla hesaplanmıştır. İki pozisyon için SSD ölçümü şu şekilde gerçekleştirilir: ( ( ( ) ( ( )) ∑ ∑( ( ) ) ( ) Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde Mevcut blok ile araştırma penceresindeki olası blokların farklarının kareleri toplamı en küçük olan bloğun orta noktaları, optik akış vektör çizimi için kullanılmıştır. Görüntülerin üzerine çizdirilen optik akış vektörleri yardımıyla hareket tahmininde bulunmamız kolaylaşmıştır [4]. 2.1. OpenCV ile Hareketli Nesne Takibi OpenCV görüntü işlemek üzere 1999’da İntel tarafından açık kaynaklı olarak C yazılım dilinde geliştirilmiş olan görüntü işleme kütüphanesidir. Bu çalışma OpenCV Kütüphanesi ile C yazılım dilinde gerçekleştirilmiştir. Renkli nesne algılamak ve algılanan nesnenin hareketinin takibi için HSV renk uzay modelinden yararlanılmıştır. HSV (Hue, Saturation, Value) veya bazı kaynaklarda HSB (Hue, Saturation, Brightness) renk uzayı, renkleri sırasıyla renk özü, doygunluk ve parlaklık olarak tanımlar. HSV renk modunun kullanılma amacı RGB(Red, Green, Blue) uzayına göre insan görü düzeneğine daha yakın bir yapı oluşturmaktadır. HSV, RGB renk uzayından doğrusal olmayan bir dönüşüm ile elde edilir. HSV, aygıt bağımlıdır. Yani bu uzayda tanımlı bir renk, rengi üreten aygıt cihazına göre değişim gösterebilir. Şekil 4: Görüntü alınan web kamerası Kullanılan kamera, renkli kameradır ve 640*480 piksel boyutunda çözünürlüğe sahiptir. Kameranın renkli olması önemlidir. Çünkü renk modellerinden birbirlerine dönüşüm sadece renkli görüntülerde olur. Siyah beyaz görüntülerde renk sadece siyah/beyaz olduğundan renkli nesneden söz edilemez. Kamera görüntüleri 25fps (frame per second) saniyede 25 kare olarak kayıt etmektedir. Kamera görüntüsünü işlemek için bir frame(resim) alırız ve o frame üzerinden işlem yaparız. Video görüntüsünden frame almak için OpenCV’ de aşağıdaki komut kullanılır. IplImage* cvQueryFrame( CvCapture* capture ); Bu komut görüntü aldığımız kamera nesnesinin içerisinden bir framelik görüntü alır. Alınan bu görüntü RGB formatından olduğundan bu formatın asıl kullanacağımız renk uzayı olan HSV uzayına dönüştürmemiz gerekir. HSV uzayında dönüştürülen framede görüntü işleme algoritmasını geliştirilmesi ve renkli hedef takibinin yazılım kısmının tamamlanması amaçlanmaktadır. OpenCV’nin renk dönüşümü için hazır komutlar vardır. void cvCvtColor( const CvArr* src, CvArr* dst, int code ); Kaynak dosyası (src) 8-bit (8u), 16-bit (16u) ya da floatingpoint 32-bit (32f) olabilir. Hedef dosyası (dst) kaynak dosyasıyla aynı tipte ve aynı boyutta olur. Kaynak dosyasının int code ile belirtilen dönüşüm yöntemiyle dönüşümü yapılır ve hedef dosyaya kaydedilir. Aşağıda bazı int code dönüşümleri gösterilmiştir. 2.2. Renkli Nesne Algılama Yazılımın Gerçekleştirilmesi RGB<=>HSV (CV_BGR2HSV, CV_HSV2BGR, CV_HSV2RGB) RGB<=>HLS (CV_BGR2HLS, CV_HLS2BGR, CV_HLS2RGB) Çalışmanın bu kısmında OpenCV’ de görüntü işleme yöntemlerine yer verilmiştir. OpenCV’ de görüntü işleme için öncelikle renkli bir görüntü algılayıcısına ihtiyacımız vardır. Burada işimizi bir web kamerası görebilir. Şekil 4’de görüntü alınan kamera görünmektedir. Renk dönüşümleri yapıldıktan sonra renkli hedefimizin istediğimiz renk aralıklarıyla algılanması ve takibi gerçekleştirilecektir. Dönüştürülen imgenin renk uzayında kaç bit renk kullanacağını aşağıdaki komut kullanılarak belirlenebilir. Web kamerasının görüntü almak için OpenCV’ de bir görüntü işaretçisi tanımlanır ve o işaretçinin ayırdığı alana görüntü kare kare kayıt edilir. IplImage* channels); Şekil 3: Konik ve silindirik biçimli HSV renk uzayı CvCapture* cvCreateCameraCapture( int index ); Komutu ile kamera görüntüsü alınır. Kameradan alınan görüntü renkli ya da siyah/beyaz olabilir. cvCreateImage(CvSize size, CV_RGB2HSV, CV_RGB2HLS, int depth, int CvSize: İmgenin eni ve boyunu belirtmemiz gerekir. Depth: Bir piksel kaç bit derinliği kullanacağını belirten değişkendir. Channels: Pikselin kullandığı kanal sayısını belirtir. Bu aşamadan sonra kamera görüntüsünden aldığımız bir framelik 283 Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde görüntüyü takip edilmesi gereken hedefin renk bilgilerini girerek takip edilmesi gerçekleştirilecektir. Renk algılanması ve renkli nesnenin takibi için OpenCV kütüphanesinden CvInRanges komutu kullanılır. void cvInRangeS( const CvArr* A src, CvScalar SL, CvScalar SU, CvArr* D dst ); 6′sı PWM çıkışı olarak kullanılabilir. 6 analog giriş pinine sahiptir. 16 MHz kristal osilatörü, USB bağlantısı, 2.1mm güç girişi, ICSP başlığı ve reset butonu vardır. Mikroişlemciyi destekleyecek her şeye sahiptir. Çalıştırmak için DC 7~12V güç kaynağına bağlamak yeterlidir. Şekil 6’da Arduino’nun pinleri ve giriş/çıkışları gösterilmiştir. Arduino tüm işletim sistemlerinde çalışabilmektedir.. Bahsi geçen komut da ilk değişken kaynak frame işaretçisidir. Kaynağın üzerinde algılanacak olan rengin belirlenmesi için ikinci argüman olarak CvScalar SL komutu renk bilgisinin alt değerini alır. CvScalar SU komutu ise renk bilgisinin üst değerini alır. HSV uzayında renk değerleri alt ve üst değerler olarak girildikten sonra CvInRangeS komutu girilen renk değerini frame üzerinden arar ve bulduğu renkteki piksellerin piksel değerini 0 yapar. Diğer geri kalan pikseller 1 değerini alır. Şekil 5’de bu durum kısaca gösterilmiştir. Bir sonraki bölümde algılanan renkli hedefin piksellerinin aldığı değerlere göre hedef ayrışımı ve hedefin takibine yönelik algoritmalar geliştirilmiştir. Piksellerin aldığı değerlerin bir algoritmaya göre aranması ve bulunmasıyla hedef takibi yapılacaktır. Şekil 6: Arduino üzerinde bulana pinler ve giriş/çıkış bağlantıları 3.2. Arduino Geliştirme Kartı ile Servo Sürmek Servo motor daha çok robotlarda, sanayilerde ve modelcilikte sıkça kullandığımız, girişine uyguladığımız darbe genişliği ile 0 - 180 derece açılarda dönebilen motorlardır. Bu motorlar kullanım yerlerine göre çeşitlendirilebilirler. Otomasyonda kullanılan yüksek torklu servolar olduğu gibi modelcilikte kullanılan mikro servo motorlara kadar çok fazla çeşidi bulunmaktadır. RC (Radio Control), Hobi servoları olarak da geçebilir. Arduino’nun kütüphanelerinde servo sürmek için bir servo kütüphane bulunmaktadır. Servo sürmek için PWM sinyalini Arduino içerisindeki servo kütüphanesi yardımıyla oluşturulacaktır. Şekil 7’de servo motorların Arduino’ya nasıl bağlandığı gösterilmiştir. Şekil 5: Algılanan renkli nesnenin piksel bit durumu 3. Takip Donanımının Gerçekleştirilmesi Takip yazılımını tamamladıktan sonra donanım kısmının gerçekleştirilmesi gerekmektedir. Donanım kısmında, görüntü işleme sonucunda hedefimizin koordinat bilgisinin bilgisayarın USB portundan Arduino geliştirme kartına gönderilmesi amaçlanmaktadır. Arduino USB’ den aldığı bilgilerle X ve Y komuna göre servo motorlara hareket bilgisi göndererek hedefin takibi sağlanmıştır. 3.1. Arduino Geliştirme Kartı Arduino açık kaynaklı bir geliştirme kartıdır. Atmel firmasının ürettiği geliştirme kartında C yazılım dilinde projeler geliştirilebilmektedir. Donanım kısmında kullanacağımız Arduino Uno ATmega328 işlemci kullanan Arduino çeşididir. 14 dijital giriş/çıkış pini bulunur, bunlardan 284 Şekil 7: Servo motorların Arduino’ya bağlantısı Servolardan biri X düzleminde diğeri ise Y düzleminde hareket etmektedir. Görüntü işleme sonucunda algılanması Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde gereken renkli hedefin koordinat bilgileri seri olarak Arduino’ya gönderilir. Arduino üzerindeki yazılım sayesinde servoları gereken koordinat bilgilerine göre hareket ettirir. 3.3. Görüntü İşleme Yazılımı Yardımıyla Nesne Takibi OpenCV ile algılanan hedefin kamera görüntüsü düzleminde X ve Y koordinatları belirlenmiştir. Belirlenen koordinatlar posX ve posY değişkenlerine gönderilmiştir. Bu değişkenleri USB ile göndermemiz için öncelikle bir mantık kontrolüyle değerlerin değişip değişmeyeceğini kontrol etmemiz gerekir. Eğer posX ve posY değişkenleri değişmiyorsa servo motorlarımız hareket etmeyeceğinden bu bilginin sürekli gönderilmesine gerek yoktur. Yani hedefimiz hareketsiz konumdaysa hedef koordinatları gönderilmeyecektir. Hedefimiz ne zaman hareket etmeye başlarsa hareketin algılandığı bölgenin koordinat bilgileri posX ve posY değişkenlerine atanacağından bu bilgileri USB aracılığıyla Arduino’ya ve Arduino ile servo motorlara gönderilecektir. Arduino’ya USB olarak bilgi göndermek için aşağıdaki kod kullanılır. FILE* integral I ile gösterilir türev değerleri, D ile gösterilir. Mevcut hata P, geçmişteki hataların toplamı I, ve değişimin mevcut oranı D ye dayanarak, gelecekteki hatanın bir tahmini hesaplanır. Bu üç eylemin ağırlıklı toplamı yoluyla kontrol edilen süreç istenilen seviyeye ayarlamak için kullanılır. Böylece örnek olarak bir kontrol valfının pozisyonu ya da bir ısıtma elemanı çıkış gücü kontrol edilerek istenilen akış veya sıcaklık seviyesi en düşük hata ile elde edilmeye çalışılır[6]. Tablo 1’de nesnemizin istenilen noktaya olan uzaklığını yani hatasını ve PID katsayıları verilmiştir. Tablo 1’e göre nesne görüntünün tam ortasında olması istenilmektedir. Yani X eksenindeki konumu 320 ve Y eksenindeki konumunun ise 240 olması istenilmektedir. Buna göre nesnenin konumu ve PID katsayıları Tablo 1’de verilmiştir. Tablo 1: Nesnenin Konumuna Göre PID Katsayıları Nesnenin X’deki Konumu 278 319 407 423 serial = fopen("/dev/ttyACM0", "w"); Buradaki kodun yaptığı iş seri portu yazma durumuna açmak için bir serial işaretçisi tanımlanır ve kullanılacak port girilir. İkinci argüman ise yapılacak işi gösterir. Burada porta bilgi göndereceğimizden “w” (write) olarak ayarlanmaktadır. Bir başka husus ise servo motorlarımızın 180 derece dönme kabiliyeti olduğundan 0-180 arası değerler alması gerekmektedir. Kamera çözünürlüğü X’de 640 ve Y’de 480 olduğundan bu değerleri 180’e göre modunu alıp göndermekteyiz. Arduino seri bilgiyi aşağıdaki komut ile okuruz. int posX = Serial.read(); int posY = Serial.read(); Olarak okunan seri bilgileri X ve Y koordinat bilgilerini alırız. Aldığımız bu bilgilerini Arduino’ya bağlı servo motorlara iletmek için aşağıdaki komut kullanılır. servoX.write(posX); servoY.write(posY); Nesnenin Y’deki Konumu 232 241 153 380 P I -8.04 -0,12 17,40 25,32 4,12 3,07 13,5 16,08 D -4,79 -1,01 -5,12 -6,56 4. Sonuçlar Sonuç olarak bu çalışmada görüntü işleme ile renkli hedef takibi nasıl yapılır? Hedef takibi yaparken nelere dikkat edilir? Renk algılama nedir? Renk algılama teknikleri nelerdir? Kısaca bunlara değinilmiştir. Yazılım kısmında renkli hedef ekranın tam orta noktasında olmasına dikkat edilmiş ve takip aşaması bu koşula göre yapılmıştır. Takip edilecek olan hedefin ağırlık merkezi görüntümüzün merkezinde olduğu için hareketteki sapmaları kontrol edilecek sisteme yani servo motorlara bilgiler gönderilmiştir. Yazmış olduğumuz görüntü işleme yazılımına bağlı olarak çalışan donanım şekil 11 ve 12’de gösterilmiştir. Donanım kısmı iki servonun biri X, diğeri Y yönünde hareket edecek şekilde tasarlanmıştır. Gönderilen koordinat bilgileri servo için 0-180 derece arasında dönme hareketi yapar. Servo motorlara gelen posX bilgisi X yönünde hareket eden servo motora kaç derece dönmesi gerektiğini söyler. Aynı şekilde gelen posY bilgisi de Y yönünde hareket eden servo motora kaç derece dönmesi gerektiğini söyler. Servo motorlarımızın Arduino geliştirme kartı aracılığıyla kontrolü kısaca bu şekildedir. 3.4. PID Kontrolünün Yapılması PID (proportional, Integral, Derivative) oransal-integraltürevsel denetleyici PID kontrol döngüsü yöntemi, yaygın endüstriyel kontrol sistemlerinde kullanılan genel bir kontrol döngüsü geribildirim mekanizmasıdır. Bir PID denetleyici ölçülü bir süreç içinde değişen ve istenilen ayar noktası ile arasındaki farkı "hata" değeri olarak hesaplar. Kontrolör proses kontrol girişini ayarlayarak hatayı en aza indirerek istenilen ayar değerine ulaşmak için çalışır. PID algoritması üç ayrı sabit parametreyi içerir ve buna göre bazen üç aşamalı kontrol denir: oransal, P ile gösterilir. Şekil 8:Yazılım sonuçları test görüntüsü 1 285 Otomati̇ k Kontrol Ulusal Toplantısı, TOK-2012, 11-13 Ekim 2012, Niğde Şekil 9: Yazılım sonuçları test görüntüsü 2 Şekil 12: Donanımın Yandan Görüntüsü 5. Kaynakça [1] M. Özden, “Ortalama Kayma Algoritmasının Geliştirilerek Görüntü Dizilerinde Hareketli Nesne Takibi ve Görüntü Kesimleme Amaçlı Kullanılması,” Kırıkkale Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi, 2005. [2] A. G. Pakfiliz, “Parazit Yankılı Ortamda Manevra Yapan Birden Çok Hedefin Takibi İçin Olasılıksal Bir Takip Algoritması Geliştirilmesi,” Ankara Üniversitesi Fen Bilimleri Enstitüsü, Doktora Tezi, 2004. [3] A. Beyoğlu, A. Kantarcı ve K. Erciyes “Telsiz Duyarga Ağlarında Çok Hızlı Hareket Eden Hedefler için Hedef Takip Algoritmaları,” 2012 [4] E. Dur, H. Temeltaş, S. Kurnaz, “Optik Akışın Hesaplanması ve Yapay Sinir Ağları ile Yorumlanarak Mobil Robotlar İçin Engel Tespiti ve Kaçınma Davranışında Kullanılması,” Havacılık ve Uzay Teknolojileri Dergisi Cilt 4 Sayı 1(77-87), Ocak 2009 [5] M. Şanlı, F. Zengin, O. Urhan, M. K. Güllü, “Web Kamerasıyla Hareketli Nesne Takibi” Elektronik ve Haberleşme Mühendisliği Bölümü Mühendislik Fakültesi, İzmit/KOCAELİ, 2005 [6] http://tr.wikipedia.org/wiki/PID (Erişim Tarihi: 06/2012) Şekil 10: Yazılım sonuçları test görüntüsü 3 Şekil 11: Donanımın Önden Görüntüsü 286