2019 TBTAK ULUSLARARASI NSANSIZ HAVA ARACI YARIMASI HAVADAN

2019 TÜBİTAK ULUSLARARASI İNSANSIZ HAVA ARACI YARIŞMASI HAVADAN GÖRÜNTÜLEME VE NESNE TANIMA Prof. Dr. Raşit KÖKER Danışma ve Değerlendirme Kurulu Üyesi Mart 2019 / Gebze, TÜSSİDE

İçindekiler İHA görme sistemi yazılım ve donanım mimarisi Temel görüntü işlemleri Örnekleme, kuantalama, filtreleme ve eşikleme Nesne tanımada özellik çıkartımı Eyleyici (Actuator) kontrolü Havadan nesne tanıma örnek uygulama

İHA görme sistemi yazılım ve donanım mimarisi

Raspberry PI 3 Raspberry Pi 3 Model B Pi. Camera V 1 Raspbian Python 3 Open Cv 3. 4. 5 Raspberry Pi The Raspberry Foundation (Raspberry Pi Vakfı) tarafından üretilmiş mini bir bilgisayardır. İlk olarak 2012 yılında satışa sunulan Raspberry mini bilgisayar, düşük maliyeti, taşınabilirliği ve desteklediği özellikler ile yüksek satış rakamlarına ulaşmıştır.

Raspberry Pi 3 Teknik Özellikler Raspberry Pi 3 Mikrobilgisayar Teknik Özellikleri: Broadcom BCM 2837 So. C 1. 2 GHz 4 çekirdekli 64 bit ARM Cortex-A 53 işlemci 2 çekirdekli Videocore IV® Multimedia işlemcisi 1 GB LPDDR 2 bellek Dâhili 802. 11 b/g/n destekli Wi. Fi/Bluetooth için dahili çip anten CSI (kamera) ve DSI (ekran) konektörleri Mikro SD kart yuvası Tüm Raspberry Pi uyumlu Linux dağıtımlarını ve Windows 10 Io. T Core işletim sistemini destekler Bluetooth 4. 1, low-energy destekli 10/100 Mbit destekli Ethernet portu HDMI portu (HDMI 1. 4 destekli) Kompozit video ve ses çıkışı için 3. 5 mm TRRS (4 uçlu) konektör 4 adet USB 2. 0 portu 40 adet GPIO pini, önceki Raspberry Pi modelleri ile uyumlu

Raspberry Pi 3 Gpıo Pin Bilgileri

Görüntülerin Sayısallaştırılması 3 D Dünya 2 D Görüntü Görüş Açısı 2 D görme yapıldığında ne kaybederiz? – Açılar – Derinlik

Görüntü nedir? • Görüntü kısaca pikseller matrisi olarak ifade edilebilir. • Genellikle iki boyutlu bir sahneyi temsil eden veri olarak düşünülebilir. Dikdörtgen şeklindeki bir alan içerisinde yüksekliği ve genişliği olan bir resim anlamında kullanılır. • Fotoğraf veya resim gibi iki boyutlu görüntüler yanında hologram gibi üç boyutlu görüntüler de vardır.

Şekil: Bir Görüntünün Matematiksel Olarak Temsili

Görüntü Akışı Dünya Kamera Sayısallaştırıcı Sayısal Görüntü

Görüntü türleri • İkili Görüntü – Sadece siyah ve beyaz piksellerden oluşur. – 1 piksel, 1 bit yer kaplar [0, 1] • Gri Tonlamalı Görüntü – Sadece grinin tonlarından oluşur. – Genelde piksel başına 8 bit ayrılır. [0. . 255] • Renkli Görüntü – RGB renk modeli ve HSV, YUV, CIELab – RGB üç renk katmanından oluşur – RGB color: 3 8 -bit color planes Ir, Ig, Ib

Bir görüntünün en küçük elemanı piksel olarak tanımlanır. Piksel

Renk modelleri * RGB (Red, Green, Blue): Renkli monitör, renkli video kamera. * CMY (Cyan, Magenda, Yellow), CMYK (Cyan, Magenda, Yellow, blac. K) Renkli yazıcı. * HSI (Hue, Saturation, Intensity) İnsan renk tanımlama ve ayırt etmede. * YIQ Renkli NTSC yayın. * YCb. Cr Renkli sayısal TV yayını.

Şekil: Renkli bir görüntü kırmızı, yeşil ve mavi renk değerlerinin 3 bitle temsil edilmesi durumunda 8 farklı seviyede gösterilmesi




Bits=8 Şekil: Farklı Kuvantalama Örnekleri (1 Bit, 2 Bit, 3 Bit, …)


Şekil: Farklı örnekleme uygulamaları (4 x 4, 8 x 8, 16 x 16, …)


Bilgisayar Görmesinin Diğer Disiplinlerle İlişkisi: Yapay zeka Robotik Makine öğrenmesi Bilgisayar Görmesi Bilgisayar grafiği Psikoloji ve nöroloji Görüntü işleme

Dijital Görüntü Matrisi Şekil: Örnek Bir Bilgisayar Görmesi İş İstasyonu

Renkli görüntünün gri seviyeli görüntüye dönüştürülmesi 1. Metot 2. Metot Her iki yöntemde etkili bir şekilde renkli görüntünün gri seviyeli görüntüye dönüştürülmesinde kullanılmaktadır.

Histogram Gri seviyesi histogramı, görüntü içindeki her bir gri seviyesine karşılık gelen ilgili gri seviyesindeki piksel sayısını karşılık düşüren bir fonksiyondur. Apsis ekseni gri seviyesini gösterirken ordinat ekseni ise meydana gelme sıklığını göstermektedir. Aşağıdaki şekil bir örnek gösterilmektedir. Histogram, sayısal bir resim içerisinde her renk değerinden kaç adet olduğunu gösteren grafiktir. Bu grafiğe bakılarak resmin parlaklık durumu ya da tonları hakkında bilgi sahibi olunabilir.

Şekil: Bir Görüntünün İşlenmesine Örnek

Şekil: Bir Görüntünün Sayısal Bir Matris Olarak Temsil Edilmesi

Şekil: Komşuluk prensibi (4 -komşuluk, 8 -komşuluk)

Aydınlatma Bir bilgisayar görmesi sisteminde aydınlatmanın önemi büyüktür. Görüntü işleme programlarının başarısını büyük oranda etkiler. • Bir görme sisteminde en önemli iki problem yansıma ve gölgelerdir. • Çeşitli aydınlatma sistemlerini tartışalım.

Işık ve Renk (Aydınlatma) (Algılama) (Yansıma)

GÜRÜLTÜ Bütün istenmeyen işaretler gürültü olarak adlandırılır. Bir görüntüde ki gürültü görüntü kirliliği olarak da adlandırılır. Dijital görüntüler çeşitli gürültü tiplerine maruz kalabilirler. Bir görüntüdeki gürültü, görüntü akışı prosesi sırasında gerçeği yansıtmayan piksel değerlerinin oluşması sonucunda ortaya çıkar. Bu gerçeği yansıtmayan değerlerin oluşmasına neden olan çeşitli nedenler bulunmaktadır. Örneğin, • Görüntü bir tarayıcı aracılığı ile bilgisayar ortamına alınacaksa tarayıcı tarafından bilgisayar ortamına aktarılırken gürültü oluşabilir. • Eğer görüntü direk olarak dijital formatta elde ediliyorsa, verilerin birleştirilmesi sırasında (örneğin CCD dedektör kullanılarak) gürültü oluşabilir. • Görüntünün elektronik olarak transferi sırasında kullanılan donanımlardan dolayı gürültü oluşabilir.

Gürültü azaltma algoritmaları görüntülerdeki gürültüleri yok etmek üzere uygulanırlar. Genellikle iki grup olarak sınıflandırılırlar: 1. Alçak geçiren filtreler 2. Yüksek geçiren filtreler

Salt & Pepper (Tuz ve Biber) Tipi Gürültü

Gaussian Gürültüsü

Aritmetik Ortalama Filtresinden Sonra Medyan Filtreden Sonra

Ortalamanın Alınması 0 0 0 0 0 0 90 90 90 0 0 90 90 90 0 90 90 90 0 0 0 0 0 0 0 0 0

Ortalamanın Alınması 0 0 0 0 0 0 90 90 90 0 0 90 90 90 0 90 90 90 0 0 0 0 0 0 0 0 0 10

Ortalamanın Alınması 0 0 0 0 0 0 90 90 90 0 0 90 90 90 0 90 90 90 0 0 0 0 0 0 0 0 0 10 20

Ortalamanın Alınması 0 0 0 0 0 0 90 90 90 0 0 90 90 90 0 90 90 90 0 0 0 0 0 0 0 0 0 10 20 30

Ortalamanın Alınması 0 0 0 0 0 0 90 90 90 0 0 90 90 90 0 90 90 90 0 0 0 0 0 0 0 0 0 10 20 30 30

Ortalamanın Alınması 0 0 0 0 0 0 10 20 30 30 30 20 10 0 90 90 90 0 20 40 60 60 60 40 20 0 90 90 90 0 30 60 90 90 90 60 30 0 90 90 90 0 30 50 80 80 90 60 30 0 90 90 90 0 20 30 50 50 60 40 20 0 0 10 20 30 30 20 10 0 0 90 0 0 0 10 10 10 0 0 0 Source: S. Seitz

Medyan Filtre: Medyan filtreleme, lineer bir işlem değildir. Merkezi bizim pikselimiz olan bir bölgenin çevresindeki piksellerin medyanlarının alınmasına dayanır. Aritmetik ortalama ve medyan filtresi alçak geçiren filtrelerdir. 4 5 5 15 16 16 17 17 40 Sayı Dizisinde Medyan Değeri

Kenar Belirleme Kenar belirleme, görüntü işlemede temel öneme sahip konulardan birisidir. Bir görüntüdeki kenar, aydınlatma veya yüzey yansımaları gibi bir görüntünün fiziksel görünüşünde oluşan önemli bir değişime karşı düşer ki bu değişim kendisini parlaklık, renk ve doku olarak gösterir. Ancak burada kenar anlamında, sadece görüntü parlaklıklarındaki değişikliklerle ilgilenilecektir. Bu anlamda, bir görüntünün gri seviyelerinde ani değişikliklerin olduğu bölgelere kenar adı verilecektir.

Kenarlar Oluşturan Nedenler Normal Yüzey Kesiti Derinlik Kesiti Yüzey Renk Kesiti Aydınlatma Kesiti Kenarlar Çeşitli Nedenlerden Oluşur

Kenarların Karakteristikleri Kenar bir görüntü parlaklık fonksiyonunda ani değişim yerleridir. Görüntü Parlaklık Fonksiyonu (Along Horizontal Scanline) Birinci türev Extremum Noktaları Kenarları Belirtir.

Kenar bulma algoritmalarını 3 grupta sınıflandırabiliriz: 1. Gradyan Tabanlı Algoritmalar 2. Laplacian Tabanlı Algoritmalar 3. Model Tabanlı Algoritmalar

Bu sinyalin gradyanını alırsak (bir boyutta, t ye göre ilk türevini alırsak) takip etmemiz gerekenler: Açıkça, Gradyan kenarı etrafında büyük bir tepe vardır. Eşik değeri ile karşılaştırarak, eşik aşıldığında kenarı belirleriz (yukarıda gösterildiği gibi). Bu durumda, biz kenarı buluruz, ama kenar eşikleme nedeni ile ‘kalın’ hale gelmiştir. Halbuki, kenarlar tepede gerçekleşir, biz Laplacian bilgisayarlar ile bunu yerelleştirebiliriz (bir boyutta, t ye göre ikinci türev) ve sıfır geçişleri buluruz. Yukarıdaki şekil bir-boyutlu sinyalin Laplacianını gösterir. Beklendiği gibi, kenar sıfır geçişe karşılık gelir, ama gördüğümüz diğer sıfır geçişler orjinal sinyaldeki küçük dalgalanmalara karşılık gelmektedir.

Kenar Belirleme •

Yatay ve Dikey A) Sobel B) Prewitt Kenar Bulma Operatörleri

Gri Seviye Değerleri Eğer Gradyan Yazılacak Olursa: Yatay Ve Dikey Operatörler: Gradyanın Büyüklüğü İse Aşağıdaki Şekilde İfade Edilir: or

Bir Kenar Bulma Algoritmasının Özelliklere Sahip Olması İstenir: Aşağıdaki 1 - Lokal olarak çalışmalı, 2 - Etkin çalışabilmeli, 3 - Kenarların yönüne ve şiddetine karşı duyarlı olmalı, 4 - Gürültülü ortamlarda yüksek başarı göstermeli, 5 - Bir kenar için birden fazla kenar üretmemeli.

Gradyan Tabanlı Kenar Bulma Operatörleri: • • Sobel Prewit Kirch Roberts Laplacian Tabanlı Kenar Bulma Operatörleri: • Laplacian 1 • Laplacian 2 Model Tabanlı Kenar Bulma Operatörleri

Gradyan Tabanlı Kenar Bulma Operatörleri: Örnek Sobel;

Laplacian Tabanlı Kenar Bulma Operatörleri:

Nesne tanımaya yönelik özellik çıkartımı Bu bölümde bazı özellik çıkartım yöntemlerine bakacağız: 1 - Renk değerleri, alan, geometrik ağırlık merkezi 2 - Zincir kodları 3 - Run-Lenght kodu 4 - Yatay ve Dikey İzdüşüm

Zincir Kodları: Kenarları elde edildikten sonra, kenar kodlarına ihtiyacımız olur. . Bu nedenle, kodları belirlemek için bazı kodlama yöntemleri kullanılır. Zincir kodları bu kodlardan biridir. 4 ve 8 li zincir kodları kullanılabilir. Aşağıdaki şekilde, 4 ve 8 li zincir kodları gösterilmiştir. Şekil: a) 4 lü zincir code b) 8 li zincir kodu

Şekil: 4 lü Zincir Kodu Tabanlı Kenar Görüntüsü Bu nesne için özellik vektörü şöyle olacaktır: V = [0 0 3 3 3 2 1 2 2 3 2 2 1 1 0 1 1 ]

8 li Zincir Kodu 4 lü Zincir Koduna göre daha hassastır. Aşağıdaki örnekte verilmiştir. Şekil: Kenar Görüntüsü için 8 li Zincir Kodu Kullanımı Bu nesne için özellik vektörü şöyle olacaktır: V=[7 7 4 4 2 2 ]

Run-Lenght Kodu: Bu yöntem, beyaz ya da siyah piksellerin ardışık numaralandırılmasına dayalı bir kodlama yöntemidir. Run-Lenght Kodu: (323252328) Eğer ilk bit “ 0” başlarsa, eklenecek ifade; R=[0, 3, 2, 5, 2, 3, 2, 8] Açıkça görüldüğü gibi orjinal görüntü 30 pikselden oluşur. Bu pikseller bellekte 30 baytlık alan kaplar. Ancak, runlength kod belleğinde 10 bayt yer alır. Şekil: Run-Length Kodu Gösterimi

Yatay ve Dikey Projeksiyonlar: Görüntü matrisi içerisinde her bir yatay sıradaki siyah piksel sayısı yatay projeksiyon, her bir dikey kolondaki siyah piksel sayısı dikey projeksiyon değerini verecektir. Aşağıdaki formül yardımıyla yatay ve dikey projeksiyon değerleri hesaplanır.

Servo Nedir ? Servo, mekanizmalardaki açısal-doğrusal pozisyon, hız ve ivme kontrolünü hatasız bir şekilde yapan tahrik sistemi olarak tanımlanır. Yani hareket kontrolü yapılan bir düzenektir. Servo motorlar, robot teknolojilerinde en çok kullanılan motor çeşidi olmakla birlikte, RC (Radio Control) uygulamalarda da kullanılmaktadırlar.

Servo Çalışma Prensibi

Duty Cycle Hesaplama •

Raspberry Pi Bağlantısı

Raspberry Pi Servo Kontrol Kodu

Nesne tanıma uygulaması:

Kamera aç gri görüntü al

Görüntü okuma

Kırmızı topu videoda algılama

Kırmızı topu videogörüntüsünde algılama

Resim döndürme import numpy as np import cv 2 as cv img = cv. imread(‘top. jpg', 0) rows, cols = img. shape M = cv. get. Rotation. Matrix 2 D(((cols-1)/2. 0, (rows 1)/2. 0), 90, 1) dst = cv. warp. Affine(img, M, (cols, rows)) cv. imshow('img', dst) cv. wait. Key(0) cv. destroy. All. Windows()

Kaynaklar • Gonzalez, R. C. , Woods, R. , “Digital Image Processing”, 3 rd Edition, Prentice-Hall, 2008. • Mathworks Matlab : Figures and Examples • Kuyumcu B. , Open. Cv Görüntü İşleme ve yapay öğrenme, Level kitap, 2018. • Kılıçdağı A. , Raspberry Pi, Dikeyeksen yayıncılık, 2014.

TEŞEKKÜRLER 2019 TÜBİTAK ULUSLARARASI İNSANSIZ HAVA ARACI YARIŞMASI iha. tubitak. gov. tr iha@tubitak. gov. tr 2019 TÜBİTAK Uluslararası İHA Yarışması Eğitim Programı, 23 -24 / 29 -30 Mart 2019, Gebze
- Slides: 73