• Sonuç bulunamadı

Eşle/indirge yöntemine dayalı dağıtık hesaplama ile uydu görüntüleri üzerinden nesne çıkarım mimarisi

N/A
N/A
Protected

Academic year: 2021

Share "Eşle/indirge yöntemine dayalı dağıtık hesaplama ile uydu görüntüleri üzerinden nesne çıkarım mimarisi"

Copied!
133
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

KOCAEL˙I ÜN˙IVERS˙ITES˙I

FEN B˙IL˙IMLER˙I ENST˙ITÜSÜ

B˙ILG˙ISAYAR MÜHEND˙ISL˙I ˘

G˙I ANAB˙IL˙IM DALI

DOKTORA TEZ˙I

E ¸SLE/˙IND˙IRGE YÖNTEM˙INE DAYALI DA ˘

GITIK

HESAPLAMA ˙ILE UYDU GÖRÜNTÜLER˙I ÜZER˙INDEN

NESNE ÇIKARIM M˙IMAR˙IS˙I

SÜLEYMAN EKEN

(2)
(3)

ÖNSÖZ VE TE ¸SEKKÜR

Bu tez çalı¸sması kapsamında; E¸sle/˙Indirge paralel programlama modeline dayalı, ölçeklenebilir da˘gıtık hesaplama büyük veri i¸sleme altyapısı ile uydu görüntülerin birle¸stirilmesi sa˘glanmı¸stır. Altyapı olarak açık kaynak Apache Hadoop büyük veri çatısı kullanılmı¸stır. Önerilen sistemin uygulanabilirli˘gi çe¸sitli girdi görüntüleri üzerinde test edilmi¸s ve ba¸sarılı sonuçlar elde edildi˘gi gözlemlenmi¸stir.

Tez çalı¸sması, TÜB˙ITAK tarafından 3001 Ba¸slangıç Ar-Ge Projeleri Destekleme Programı kapsamında EEEAG 215E189 nolu “Parça Uydu Görüntülerinden Nesne Çıkarımı ˙Için E¸sle/˙Indirge Tabanlı Da˘gıtık ve Ölçeklenebilir Büyük Veri ˙I¸sleme Mimarisi” ismi ile desteklenmi¸stir. Ayrıca tez, TÜB˙ITAK B˙IDEB 2211-C Öncelikli Alanlara Yönelik Yurt ˙Içi Doktora Burs Programı kapsamında desteklenmi¸stir. Desteklerinden dolayı TÜB˙ITAK’a te¸sekkür ederim. Poligon kapsama problemi testleri için TÜB˙ITAK Bulut Bili¸sim ve Büyük Veri Laboratuvarı’na (B3LAB) sa˘glamı¸s oldukları altyapı için te¸sekkür ederim.

Tez çalı¸smamın planlanmasında, ara¸stırılmasında, yürütülmesinde ve olu¸sumunda ilgi ve deste˘gini esirgemeyen, engin bilgi ve tecrübelerinden yararlandı˘gım, yönlendirme ve bilgilendirmeleriyle çalı¸smamı bilimsel temeller ı¸sı˘gında ¸sekillendiren sayın hocam Doç. Dr. Ahmet SAYAR’a sonsuz te¸sekkürlerimi sunarım.

Doktora tez dönemi boyunca görü¸sleri ile çalı¸smalarıma katkıda bulunan, kar¸sıla¸stı˘gım her türlü zorlukta desteklerini ve zamanlarını esirgemeyen sayın hocalarım Prof. Dr. Ya¸sar BECER˙IKL˙I’ye ve Doç. Dr. Mehmet Sıddık AKTA ¸S’a te¸sekkürlerimi sunarım.

Akademik çalı¸smalarım sırasında, birçok a¸samada beni destekleyen Bilgisayar Mühendisli˘gi Bölümü ö˘gretim üyeleri ve ara¸stırma görevlilerine te¸sekkür ederim.

Bugünlere gelmemi sa˘glayan anneme, babama ve tezin hazırlanmasında bütün sıkıntılarıma katlanan ve çalı¸smalarım boyunca her türlü deste˘gini veren sevgili e¸sim Züleyha Betül EKEN’e ve tez çalı¸smam dolayısıyla bazen ilgilenemedi˘gim o˘glumuz Ahmet Selim’e sevgilerimi ve sonsuz te¸sekkürlerimi sunarım.

(4)

˙IÇ˙INDEK˙ILER

ÖNSÖZ VE TE ¸SEKKÜR ... i

˙IÇ˙INDEK˙ILER ... iii

¸SEK˙ILLER D˙IZ˙IN˙I ...v

TABLOLAR D˙IZ˙IN˙I ... vi

S˙IMGELER VE KISALTMALAR D˙IZ˙IN˙I ... vii

ÖZET ... ix

ABSTRACT ... xi

G˙IR˙I ¸S ... 1

1. FARKLI SEV˙IYE GÖRÜNTÜ ˙I ¸SLEME ALGOR˙ITMALARI ... 4

1.1. Görüntü Veri Temsil Seviyeleri ve Görüntü Veri Yapıları ... 4

1.2. Dü¸sük Seviye Görüntü ˙I¸sleme Algoritmaları ...7

1.3. Orta Seviye Görüntü ˙I¸sleme Algoritmaları...7

1.4. Yüksek Seviye Görüntü ˙I¸sleme Algoritmaları ... 8

1.5. Uzaktan Algılama Dijital Görüntü Analizi ... 8

2. PARALEL M˙IMAR˙ILER VE PROGRAMLAMA MODELLER˙I ... 11

2.1. Paralel Hesaplama Kavramsal Modeller... 11

2.1.1. Veri paralelle¸stirme modeli ... 11

2.1.2. Görev paralelle¸stirme modeli ... 12

2.1.3. Pipeline paralelle¸stirme modeli ... 12

2.1.4. Paralel sistem performans metrikleri ... 12

2.2. Paralel Hesaplama Mimarileri ... 14

2.2.1. MIMD sistemler... 15

2.2.2. SIMD sistemler... 16

2.3. Paralel Programlama Mekanizmaları ... 17

2.3.1. Da˘gıtık sistemler için mesaj gönderme mekanizması ... 17

2.3.2. Çok çekirdekli i¸slemciler için payla¸sımlı bellek mekanizması ... 18

2.4. Paralel Desen Kalıpları ... 19

2.5. Apache Büyük Veri Yı˘gını ve E¸sle/˙Indirge Programlama Modeli ... 20

2.5.1. E¸sle/˙Indirge uygulaması ya¸sam döngüsü... 22

2.5.2. Apache büyük veri yı˘gını ... 25

3. ˙ILG˙IL˙I ÇALI ¸SMALAR... 27

3.1. Büyük Veri, Karakteristi˘gi ve Uygulama Alanları ... 27

3.2. Da˘gıtık Mimaride Uydu Görüntülerinin ˙I¸slenmesi Çalı¸smaları ... 29

3.3. Büyük Ölçekli Uzaktan Algılama Görüntü Birle¸stirme Çalı¸smaları ... 32

4. B˙IRLE ¸SMEYE G˙IRECEK MOZA˙IKLER˙IN TESP˙IT˙I VE KAPSAMA PROBLEM˙I ... 35

(5)

4.1. Önerilen Sistemin Alt Bile¸senleri ... 35

4.1.1. Gerçek uydu görüntülerine eri¸sim ve i¸slenebilir hale getirilmesi ... 36

4.1.2. Mozaiklerin NoSQL veritabanlarından Hbase’de depolanması... 38

4.1.3. Birle¸sme i¸slemine girecek mozaiklerin belirlenmesi ... 40

4.1.3.1. Apache Hadoop tabanlı mozaik seçme ... 41

4.1.3.2. Apache Lucene tabanlı mozaik seçme ... 44

4.1.3.3. Mozaik seçme performans kar¸sıla¸stırması ... 45

4.1.4. Kapsama problemine çözüm... 47

4.1.4.1. Kapsama algoritmaları sentetik veriler üzerinde testler ... 50

4.1.4.2. Kapsama algoritmaları gerçek veriler üzerinde testler ... 55

5. DA ˘GITIK M˙IMAR˙IDE MOZA˙IKLER˙IN B˙IRLE ¸ST˙IR˙ILMES˙I ... 57

5.1. Uydu Görüntülerinin Da˘gıtık Mimaride Vektörle¸stirilmesi ... 57

5.2. Uydu Görüntülerinin Birle¸stirilmesi Yakla¸sımları ... 61

5.2.1. Sıralı nokta seti ¸sablonu tabanlı birle¸stirme... 61

5.2.2. E¸sle/˙Indirge mimarisinde NS ¸SE tabanlı birle¸stirme ... 67

5.3. Gerçekle¸stirilen Performans Test Sonuçları ... 72

6. SONUÇLAR VE ÖNER˙ILER ... 81

KAYNAKLAR ... 83

EKLER ... 93

K˙I ¸S˙ISEL YAYIN VE ESERLER ...112

(6)

¸SEK˙ILLER D˙IZ˙IN˙I

¸Sekil 1.1. Farklı görüntü veri yapıları a) Matris veri yapısı b) Zincir veri yapısı c) Çalı¸sma uzunlu˘gu kodlaması

d) Bölge biti¸siklik çizgesi ... 6

¸Sekil 2.1. ˙I¸slemcilerin komut ve veri yönetimlerine göre sınıflandırılması ... 14

¸Sekil 2.2. Bellek açısından MIMD modelleri a) Payla¸sımlı bellekli paralel bilgisayar yapısı b) Da˘gıtık bellekli paralel bilgisayar yapısı ... 15

¸Sekil 2.3. E¸sle/˙Indirge görevinin çalı¸stırılma ¸seması ... 23

¸Sekil 4.1. Önerilen sistemin alt bile¸senleri ... 35

¸Sekil 4.2. Da˘gıtık mimaride gerçeklenen alt bile¸senler... 35

¸Sekil 4.3. Marmara denizine ait örnek mozaik uydu görüntüsü ... 37

¸Sekil 4.4. Örnek uydu görüntüsü meta verisi ... 37

¸Sekil 4.5. Örnek mozaik uydu görüntüsünden iki adet dokunun kaldırılmı¸s hali ... 38

¸Sekil 4.6. Referans harita yardımıyla nesne seçimi ... 41

¸Sekil 4.7. Mozaik seçme probleminin görseli ... 43

¸Sekil 4.8. Hadoop tabanlı mozaik seçme performans sonuçları ... 44

¸Sekil 4.9. Lucene indekslerini da˘gıtma ve arama ... 45

¸Sekil 4.10. Lucene indeksleme ve sorgulama zamanları ... 46

¸Sekil 4.11. Önerilen yakla¸sımların çalı¸sma sürelerinin kar¸sıla¸stırılması... 46

¸Sekil 4.12. Kapsama problemi a) Kapsama var b) Kapsama yok ... 47

¸Sekil 4.13. Küçük hedef poligon için ölçeklenebilirlik ... 51

¸Sekil 4.14. Büyük hedef poligon için ölçeklenebilirlik ... 51

¸Sekil 4.15. Algoritma 1 küçük hedef poligon için yatay ölçeklenebilirlik analizi ... 52

¸Sekil 4.16. Algoritma 1 büyük hedef poligon için yatay ölçeklenebilirlik analizi ... 52

¸Sekil 4.17. Algoritma 2 küçük hedef poligon için yatay ölçeklenebilirlik analizi ... 52

¸Sekil 4.18. Algoritma 2 büyük hedef poligon için yatay ölçeklenebilirlik analizi ... 53

¸Sekil 4.19. LandSat-8 uydu görüntüleri için ölçeklenebilirlik analizi ... 56

¸Sekil 5.1. Vektörle¸stirme örne˘gi a) Örnek bir raster LandSat-8 mozai˘gi b) Vektörize edilmi¸s LandSat-LandSat-8 mozai˘gi ... 59

¸Sekil 5.2. Vektörizasyon yatay ölçeklenebilirlik analizi ... 60

¸Sekil 5.3. Mozaik çiftlerinden ba˘glantıları belirleme ... 62

¸Sekil 5.4. Mozaik çiftlerinden ba˘glantıları belirleme ... 64

¸Sekil 5.5. Kesi¸sim alanı gösterimi ... 66

¸Sekil 5.6. Farklı büyüklükte girdiler için birle¸stirme ölçeklenebilirlik analizi ... 73

(7)

¸Sekil 5.7. Görüntü birle¸stirme performans sonuçları a)

Hızlanma (speedup) b) Verimlilik (efficiency) ... 76 ¸Sekil 5.8. Farklı yazılım do˘gru ve yanlı¸s birle¸stirme sonuçları

a) Panorama Composer university veriseti (do˘gru sonuç) b) Hugin glacier6 veriseti (do˘gru sonuç) c)

Hugin raster900_4 veriseti (yanlı¸s sonuç)... 78 ¸Sekil 5.9. Farklı yazılım do˘gru ve yanlı¸s birle¸stirme sonuçları

a) Image-Stitching bridge veriseti (do˘gru sonuç) b) Image-Stitching raster900_2 veriseti (yanlı¸s sonuç) c) ImageStitching house veriseti (do˘gru sonuç) d)

ImageStitching raster900_4 veriseti (yanlı¸s sonuç) ... 79 ¸Sekil 5.10. Farklı yazılım do˘gru ve yanlı¸s birle¸stirme sonuçları

a) Fiji Stitching glacier6 veriseti (do˘gru sonuç) b) Fiji Stitching bridge veriseti (yanlı¸s sonuç) c) Multiple Image Stitching uttower veriseti (do˘gru sonuç) d) Multiple Image Stitching raster900_2

(8)

TABLOLAR D˙IZ˙IN˙I

Tablo 2.1. Apache büyük veri yı˘gını ... 26

Tablo 4.1. LandSat-8 uydusunun özellikleri ... 36

Tablo 4.2. Mozaiklerin Hbase’de depolanması ... 40

Tablo 4.3. Önerilen yakla¸sımların istatistiksel sonuçları (sn) ... 47

Tablo 4.4. Algoritma 1’in küçük hedef poligon için istatistiksel sonuçları (sn) ... 53

Tablo 4.5. Algoritma 1’in büyük hedef poligon için istatistiksel sonuçları (sn) ... 54

Tablo 4.6. Algoritma 2’nin küçük hedef poligon için istatistiksel sonuçları (sn) ... 54

Tablo 4.7. Algoritma 2’nin büyük hedef poligon için istatistiksel sonuçları (sn) ... 55

Tablo 4.8. Pencere büyüklü˘gü için ölçeklenebilirlik de˘gerleri ... 55

Tablo 4.9. Gerçek veriler üzerinde algoritmaların istatistiksel sonuçları (ms) ... 56

Tablo 5.1. Vektörizasyon ölçeklenebilirlik istatistiksel sonuçları (sn) ... 59

Tablo 5.2. Mozaik çiftleri ba˘glantı belirleme ... 63

Tablo 5.3. Mozaik çiftlerine göre öteleme matrisi... 63

Tablo 5.4. 4x6 boyutlarında örnek bir girdi görüntüsü... 67

Tablo 5.5. 4x7 boyutlarında örnek bir girdi görüntüsü... 68

Tablo 5.6. Çapraz birle¸stirme i¸slemi sonrasında olu¸san yeni koordinatlar ... 69

Tablo 5.7. Görüntülerin birle¸stirilmesiyle ortaya çıkan yeni görüntü ... 70

Tablo 5.8. E¸sle girdi ve çıktı key-value de˘gerleri ... 71

Tablo 5.9. ˙Indirge girdi ve çıktı key-value de˘gerleri ... 72

Tablo 5.10. Donanımsal özellikler ... 74

Tablo 5.11. Yazılımsal özellikler... 74

Tablo 5.12. Sıralı mozaik birle¸stirme istatistiksel sonuçları (sn) ... 74

Tablo 5.13. Da˘gıtık mozaik birle¸stirme ölçeklenebilirlik istatistiksel sonuçları (sn) ... 75

Tablo 5.14. Görüntü birle¸stirme araçları ... 76

Tablo 5.15. Kullanılan verisetleri ... 77

Tablo 5.16. Farklı veri setleri üzerinde yapılan birle¸stirme testi sonuçları (ms) ... 77

(9)

S˙IMGELER VE KISALTMALAR D˙IZ˙IN˙I

Kısaltmalar

AMD : Advanced Micro Devices

API : Application Programming Interface (Uygulama Programlama Arayüzü)

ARM : Acorn RISC Machine

BRIEF : Binary Robust Independent Elementary Features (˙Ikili Sa˘glam Ba˘gımsız Temel Özellikler)

CBS : Co˘grafik Bilgi Sistemleri

CORBA : Common Object Request Broker Architecture (Ortak Nesne ˙Istem Aracısı Mimarisi)

CPU : Central Processing Unit (Merkezi ˙I¸slem Birimi) CSV : Comma Separated Values (Virgülle Ayrılmı¸s De˘gerler)

FAST : Features from Accelerated Segment Test (Hızlandırılmı¸s Segment Testinden Özellikler)

GFS : Google File System (Google Dosya Sistemi)

GIS : Geographic Information Systems (Co˘grafik Bilgi Sistemleri)

GNSS : Global Navigation Satellite Systems (Küresel Uydu Seyrüsefer Sistemleri)

GPU : Graphic Processing Unit (Grafik ˙I¸slem Birimi)

HDFS : Hadoop Distributed File System (Hadoop Da˘gıtık Dosya Sistemi) HIPI : Hadoop Image Processing Interface (Hadoop Görüntü ˙I¸sleme Arayüzü) HPC : High Performance Computing (Yüksek Performans Hesaplama)

HPF : High Performance Fortran (Yüksek Performans Fortran) HWT : Haar Wavelet Transform (Haar Dalgacık Dönü¸sümü) JDK : Java Development Kit (Java Geli¸stirme Kiti)

JSF : Java Server Faces

JSON : JavaScript Object Notation (JavaScript Obje Notasyonu) JVM : Java Virtual Machine (Java Sanal Makine)

KML : Keyhole Markup Language (Anahtar Deli˘gi Biçimlendirme Dili)

MBR : Minimum Bounding Rectangle (Minimum Kapsama Dikdörtgeni)

MIMD : Multiple Instruction Multiple Datastream (Çok Komut Çok Veri Akı¸sı) MISD : Multiple Instruction Single Datastream (Çok Komut Tek Veri Akı¸sı) MPI : Message Passing Interface (Mesaj Geçirme Arayüzü)

MPMD : Multiple Program Multiple Datastream (Çok Program Çok Veri Akı¸sı) NASA : National Aeronautics and Space Administration (Ulusal Havacılık ve

Uzay Dairesi)

NIR : Near-infrared (Yakın Kızılötesi)

NoSQL : Not Only SQL (NoSQL)

NUMA : Non-uniform Memory Access (Düzensiz Bellek Eri¸simi) OLI : Optical Land Imager (Optik Arazi Görüntüleyici)

(10)

OMA : Object Management Architecture (Nesne Yönetim Mimarisi)

OMG : Object Management Group (Nesne Yönetim Grubu)

OpenCL : Open Computing Language (Açık Hesaplama Dili) OpenMP : Open Multi Processing

ORB : Oriented FAST and Rotated BRIEF (Odaklı FAST ve Döndürülmü¸s

BRIEF)

PVM : Parallel Virtual Machine (Paralel Sanal Makine)

PAN : Panchromatic (Pankromatik)

POSIX : Portable Operating System Interface for Unix (UNIX için Ta¸sınabilir ˙I¸sletim Sistemi Arabirimi)

RAM : Random Access Memory (Rastgele Eri¸sim Belle˘gi) RMI : Remote Method Invocation (Uzak Metot Ça˘grısı) RPC : Remote Procedure Call (Uzak Prosedür Ça˘grısı) S3 : Simple Storage Service (Basit depolama Servisi)

SIFT : Scale-Invariant Feature Transform (Ölçek-Ba˘gımsız Özellik Dönü¸sümü) SIMD : Single Instruction Multiple Datastream (Tek Komut Çok Veri Akı¸sı) SISD : Single Instruction Single Datastream (Tek Komut Tek Veri Akı¸sı) SPMD : Single Program Multiple Datastream (Tek Program Çok Veri Akı¸sı) SURF : Speeded-Up Robust Features (Hızlandırılmı¸s Gürbüz Özellikler) SWIR : Short-wave Infrared (Kısa Dalga Kızılötesi)

TIR : Thermal- infrared (Termal Kızılötesi)

UMA : Uniform Memory Access (Tekdüze Bellek Eri¸simi)

UPC : Unified Parallel C

USGS : United States Geological Survey (Amerika Birle¸sik Devletleri Jeolojik Ara¸stırmalar)

VCPU : Virtual Central Processing Unit (Sanal Merkezi ˙I¸slem Birimi)

VGI : Volunteered Geographic Information (Gönüllüler Tarafından Toplanan Co˘grafi Bilgi)

VNIR : Visible and Near-infrared (Görünür ve Yakın Kızılötesi) XML : Extensible Markup Language (Geni¸sletilebilir ˙I¸saretleme Dili)

(11)

E ¸SLE/˙IND˙IRGE YÖNTEM˙INE DAYALI DA ˘GITIK HESAPLAMA ˙ILE UYDU GÖRÜNTÜLER˙I ÜZER˙INDEN NESNE ÇIKARIM M˙IMAR˙IS˙I

ÖZET

Uydular önceden belirlenen yörüngeleri etrafında ve belirli standart koordinat aralıklarında (bounding box) yerkürenin parça resimlerini çekerler ve yeryüzündeki istasyona iletirler. Bu ¸sekilde dünya etrafındaki tam devirlerini tamamlayıp, dünya yüzeyini parça görüntüleri seti olarak tanımlarlar. Bu parça görüntüleri, mozaik ya da kiremit olarak adlandırılır. Ancak bu resimler sabit-de˘gi¸smeyen yörüngeleri üzerindeki koordinat aralıklarına göre alındı˘gı için ço˘gu zaman nesne olarak tanımlanabilecek görüntüleri (yol, ada, göl vb.) bir bütün olarak yakalayamazlar. Di˘ger bir ifadeyle her bir imgenin sadece bir nesneyi gösterece˘gi yapıdaki görüntüleri olu¸sturmak hemen hemen imkânsızdır. Uzaktan algılama, geomatik, informatik, geofizik, harita mühendisli˘gi, cartografya, vb bilim alanlarında çe¸sitli çalı¸smalara (nesne çıkarımı/takibi/tanıma, spatial analizler, topolojik analizler, askeri ve sivil simulasyon uygulamaları, artırılmı¸s gerçeklik uygulamaları vb.) konu olan bu görüntüler için ço˘gu zaman bu mozaiklerin birle¸stirilmesi (örülmesi) gerekmektedir.

Bir nesnenin görüntüsünün birden fazla mozaik görüntüye dü¸smesi durumunda, bu nesnenin tanımlanması, çıkarımı ve modellenmesi için söz konusu mozaiklerin örülmesi gerekmektedir. Birle¸stirilecek olan mozaik sayısı ve/veya boyutları arttıkça ihtiyaç duyulan i¸slem-gücü ve bellek miktarı üstel olarak artmaktadır. Bu da, i¸slemlerin tek makinada (merkezi) gerçeklenebilmesini imkansız kılmaktadır. Parça uydu görüntülerinden nesne çıkarımında kaynak yetersizli˘gi ve performans problemleri yanında, görüntülerin zaman-mekansal karakteristiklerinden do˘gan problemler de vardır. Kısmi çakı¸san mozaikler aynı konumlar (mekansal) için farklı zamanlarda çekilmi¸s (zamansal) olabilir. Bu durum, birçok nedenlerden dolayı (çekme anındaki hava durumu, uçan nesneler vb.) farklı piksel bilgilerine sahip olacakları için görüntü i¸sleme algoritmalarında ba¸sarısız sonuçlar verecektir. Spesifik olarak nesne çıkarımı uyglamarında tüm bu problemlere ilave olarak, neyin nesne oldu˘gu ve nereden ba¸slayıp nerede bitti˘gi sınır tanımı problemiyle kar¸sıla¸sılmaktadır. Günümüz teknolojileri ile bunun tam otomatik olarak kesin çözümü yoktur.

Bahsedilen bu problemleri genel olarak iki sınıfa ayırabiliriz. Bunlar, (1) nesne çıkarımı için parça uydu görüntülerin örülmesinde kaynak yetersizli˘gi ve performans problemleri ve (2) bir nesneye ait görüntünün sınırlarının ve ilgili mozaik setinin tespiti. ˙Ikinci konuyla ilgili olarak, nesnelerin tanımlanması konusunda, referans haritalar (Google Maps) üzerinden interaktif olarak kullanıcı yardımlı sezgisel bir yakla¸sım önerilmi¸stir. Bu yakla¸sımla nesnenin kabaca sınırları kullanıcı tarafından verilmi¸stir. Kaynak yetersizli˘gi ve performans problemiyle ilgili olarak ise e¸sle/indirge mimarisine dayalı, ölçeklenebilir ve yüksek ba¸sarımlı da˘gıtık hesaplama ile büyük veri i¸sleme altyapısı geli¸stirilmi¸stir. Altyapı olarak açık kaynak Apache Hadoop büyük veri çatısı

(12)

kullanılmı¸stır. E¸sle/indirge gerçeklenmesi için gerekli e¸sle ve indirge fonksiyonları, bu fonksiyonlar için girdi çıktı formatları ve nihai olarak birden fazla e¸sle/indirge setleri için i¸s/veri akı¸sları tanımlanmı¸stır. Piksel bazlı büyük mozaik görüntüleri birinci kademe e¸sle fonksiyonu ile vektörel modele dönü¸stürülerek a˘g tabanlı da˘gıtık sistemlerdeki bant geni¸sli˘gi problemleri en aza indirilmi¸stir. Vektörle¸sen mozaikler daha sonra e¸sle/indirge i¸s akı¸slarına göre en uygun pozisyonda örülmü¸stür. En uygun posizyon için nokta seti ¸sablon e¸sle¸stirmesi mantı˘gına dayalı bir yöntem geli¸stirilmi¸stir. Nokta seti ¸sablon e¸sle¸stirmesi yöntemi genel olarak hesaplamalı geometri ve görüntü i¸sleme alanlarında kullanılan bir yöntem olmakla beraber e¸sleme yapılacak iki nokta seti arasında birebir e¸sleme yaparak benzerlik ara¸stırır. Çıkarımı yapılan nesneler, Açık Co˘grafi Mekansal Konsorsiyumu standartlarında nokta, çizgi, çizgi-setleri ve poligon olarak standart mekânsal veri tabanlarında (PostGIS ve Oracle-Spatial) mekânsal ve topolojik sorgular ve analizler için kullanıma hazır hale getirilmi¸stir.

Bu çalı¸sma, uydu görüntüleri üzerinden büyük veri analizlerinin yapılmasını gerektiren birçok alanda (askeri/sivil, akademik/ticari) bilgi birikimi elde edilmi¸stir. Ayrıca büyük veri altyapılarının sadece metin bazlı veri madencili˘gi ve makine ö˘grenmesi uygulamaları için de˘gil, piksel bazlı görüntü i¸sleme uygulamalarında da ba¸sarıyla kullanılabilece˘gi gösterilmi¸stir. Sistemin yapılabilirlik ve ölçeklenebilirlik testleri gerçek nesneler üzerinde gerçek uydu görüntüleri ile test edilmi¸stir.

Anahtar Kelimeler: Büyük Veri, E¸sle/indirge, Görüntü Birle¸stirme, Nesne Çıkarımı, Ölçeklenebilirlik, Uydu Görüntüleri.

(13)

A MAP/REDUCE BASED DISTRIBUTED AND SCALABLE BIG DATA FRAMEWORK FOR OBJECT EXTRACTION FROM MOSAIC SATELLITE IMAGES

ABSTRACT

Earth Observation Satellites survey the earth by taking pictures along their pre-defined orbit, and send those pictures to ground stations. After having completed their rotations around the earth, they create a set of pictures defining and depicting earth’s surface. These satellite images are called tiles or mosaics. Most of the time mosaics cannot represent objects (road, island, lake) as a whole, and they need to be stitched to get a picture of a specific object. Stitching of satellite mosaics is used in many science domains such as remote sensing, geomatics, information science, geophysics, map engineering and cartography, and in many application areas such as object recognition/extraction/tracing, spatial analysis, topologic analysis, civil and military simulation applications, augmented reality applications etc.

When vision of the various parts of the same object falls in different mosaics, they need to be stitched together in order to obtain that object in one picture. This is inevitable in the applications of object recognition and extraction. For some other objects, we might need to stitch tens or even hundreds of mosaics. As the number and sizes of the mosaics to be stitched increases, the computation resources needed, such as CPU and memory, increases exponentially. This makes stitching in only one computer harder or even impossible. In central computations, we not only have resource shortage and poor performance problems but also some other problems stemming from the spatio-temporal characteristics of satellite images. That is, partially overlapping satellite images (mosaics) might be taken at different times (temporal) for the same location. This might cause misleading pixel values for the same object scattered on different mosaics, and as a result failure in image stitching and object extraction. In addition, it is not possible to determine the boundaries of an object presented as a satellite image. With today’s technologies, it does not have a fully automatic final solution.

Aforementioned problems can be classified into two groups. These are (1) resource and performance problems in central computation, i.e. single machine, for stitching mosaics to extract an object and (2) defining both boundaries of an object and corresponding mosaics on a satellite image. For the second problem, we proposed a heuristic approach based on user interactions with reference maps (Google Maps). Boundaries of an object are roughly defined by users’ mouse actions. Regarding resource and performance problems, we proposed a distributed big data framework based on MapReduce approach to enable scalable image stitching and object extraction. Apache Hadoop was placed at the core of the framework. To realize such a system, we first need to define mapper and reducer functions, and then their input and output formats. Moreover, in

(14)

case of having multiple levels of mapper and reducer functions, high level process and data flow needs to be defined. The first level mappers convert raster mosaics into vector counterparts and the following mappers and reducers are performed on the vector mosaics. Stitching of vector representations of the raster images is expected to give better performance in distributed computations by reducing the negative effects of bandwidth problem. Vectorised images were stitched with point set pattern matching based technique. Point set pattern matching is usually used computational geometry and image processing areas; it also looks for similarities between the pair of two point sets. After having done with stitching and extraction, extracted objects are made available for spatial and topological queries and analyzes in standard spatial databases (PostGIS and Oracle-Spatial) as point, line, line-sets and polygon in Open Geographical Spatial Consortium standards.

The outcomes of this study present valuable knowledge about image processing with distributed scalable big data frameworks. The product obtained by this study can be used in applications requiring spatial and temporal analysis on big satellite map images. This study also shows that big data frameworks are not only used in applications of text-based data mining and machine learning algorithms, but also used in applications of algorithms in image processing. Feasibility and scalability tests of the proposed system were tested with real satellite images on real objects.

Keywords: Big Data, MapReduce, Image Stitching, Object Extraction, Scalability, Satellite Images.

(15)

G˙IR˙I ¸S

Uydu, uzaktan algılama, uydu görüntülerinin yüksek performansta i¸slenmesi ve farklı uydu sensörlerinden elde edilen uydu görüntülerinden nesne çıkarım çalı¸smaları son yıllarda popüler bir konu olmu¸stur. Ülkemizde de ilk yerli alçak yörünge uyduları GÖKTÜRK-2 ve RASAT’ın kurulmasının ardından Ay’a derin gözlem uydusu göndermek de 2023 hedefleri arasında yer almaktadır. Tasarımı ve üzerindeki kontrol yazılımının tamamen yerli oldu˘gu di˘ger uyduların da gönderilmesi hedefler arasındadır. ˙Ilgili geli¸smelerle beraber uydu görüntülerinin çe¸sitli amaçlar do˘grultusunda daha etkin bir biçimde kullanılması da kaçınılmazdır.

Tez kapsamında, uyduların çekmi¸s oldu˘gu parça (mozaik) görüntüleri E¸sle/˙Indirge mimarisine dayalı büyük veri çatısıyla ölçeklenebilir bir ¸sekilde birle¸stirme ve nesne çıkarımı geçeklenmektedir. Uydu mozaik görüntülerinin zaman-mekânsal veriler olmasından dolayı bilinen piksel tabanlı özellik çıkarımı ve anahtar noktalar (key points) tespitine dayalı metotlarla [1–3] görüntülerin birle¸stirilmesi çok zor olmakta ve ba¸sarı oranı ise çok dü¸smektedir. Bu konuda da mozaik görüntülerin vektör modelleri olu¸sturulup vektör görüntülerin birle¸stirilmesi için yöntemler geli¸stirilmi¸stir. Bu yöntemler hem E¸sle/˙Indirge mantı˘gına hem de da˘gıtık hesaplama mantı˘gına yatkındır. Kısaca, mozaik birle¸stirme i¸slemi hesap yo˘gun bir i¸s olmasının yanında veri yo˘gun da bir i¸stir. Sistemin yapılabilirlik ve ölçeklenebilirlik testleri gerçek nesneler üzerinde gerçek uydu görüntüleri ile test edilmi¸stir.

Tez gerçeklenirken kar¸sıla¸sılan ara¸stırma problemleri ve bunlara çözümler a¸sa˘gıdaki gibi sıralanabilir:

• Uydu teknolojilerindeki geli¸smeler ile uydu görüntülerinin zamansal ve mekânsal çözünürlükleri artmı¸stır. Dolayısıyla sıradan makineler üzerinde bu görütüleri i¸slemek bellek ve CPU yetersizli˘gi gibi nedenlerden dolayı imkansız hale gelmi¸stir. Sıradan makineleri bir araya getirerek küme ¸seklinde raster formattaki bu büyük boyutta ve çok sayıdaki mozaik parça uydu görüntülerin büyük veri mimari çatısı ile ölçeklenebilir ¸sekilde birle¸stirilmesi sa˘glanmı¸stır (Bölüm 5.2’ye bakınız).

• Kullanılacak olan mozaik görüntülerin ili¸skisel veri tabanlarında depolanması ve büyük veri alt yapıları ile bu veri tabanlarının entegrasyonu da ayrı bir problemdir. Büyük boyutta ve çok sayıdaki uydu görüntülerinin doküman tabanlı NoSQL veri

(16)

tabanlarında Hbase’de meta verileri (burada mozai˘ge ait MBR bilgisi) ile beraber depolanması sa˘glanmı¸stır (Bölüm 4.1.2’ye bakınız).

• Uydu görütülerinden hangi nesnenin çıkarılaca˘gının ve dolayısıyla nesneye ait sınır de˘gerlerinin belirlenmesi gerekmektedir. Belirlenen sınırlar içinde kalan nesnenin çıkarımı yapılabilmektedir. Referans haritalar (Google Maps) üzerinden interaktif olarak kullanıcı destekli, yarı otomatik sezgisel (heuristic) nesne tanımlaması yapılması sa˘glanmı¸stır (Bölüm 4.1.3’e bakınız).

• NoSQL veri tabanlarından Hbase’de tutulan ve kullanıcının belirlemi¸s oldu˘gu nesne ile kesi¸sen mozaiklerin bulunması, tüm mozaik uzayı içinden belirlenen nesne ile ilintili olanların seçilmesini sa˘glar. Burada iki dikgen poligonun birbirleri ile etkile¸sim (kesi¸sim) içinde olup olmadıkları ara¸stırılarak birle¸stirme için kullanılacak mozaik uzayı küçültülmü¸stür (Bölüm 4.1.3’e bakınız).

• Bir önceki adımda bulunan mozaiklerin belirlenen nesneyi için yeterli olup olmadı˘gının ara¸stırılması da ayrı bir problemdir. Poligon kapsama problemi literatürde görüntü madencili˘ginde, hesaplamalı geometride, robotik ve nesne arama gibi alanlarda kullanılmı¸stır. Kapsama problemi çözüm algoritmalarının nesnenin bütün görüntüsünün elde edilmesi için gereken mozaiklerin tespitine uygulanması gerçeklenmi¸stir (Bölüm 4.1.4’e bakınız).

• Poligon kapsaması testinden geçilmi¸sse elimizdeki mozaiklerin çıkarılacak nesne için yeterli oldu˘gu kanısına varılmaktadır. Bu mozaiklerin vektör formata dönü¸stürülmesi gerekmektedir. E¸sle/˙Indirge büyük veri i¸sleme çatısı genelde metin tabanlı verilerin i¸slenmesi için tasarlanmı¸stır. Dolayısıyla görüntü verilerinin i¸slenebilmesi için girdi/çıktı ve kayıt okuma/yazma sınıfları gerçeklenmi¸stir (Bölüm 5.1’e bakınız).

• Vektör formata dönü¸stürülen görüntülerin da˘gıtık olarak birle¸stirilmesi de ayrı bir problemdir. Genelde E¸sle/˙Indirge büyük veri i¸sleme çatısı ile i¸slenen görüntüler üzerinde dü¸sük seviyeli görüntü i¸sleme operasyonları (kenar bulma, gürültü giderme vs.) ile ilgilenilmi¸stir. Da˘gıtık sistemdeki her bir makinede girdi görüntüler üzerinde i¸slemler yapılarak çıktılar üretilmi¸stir. ˙I¸slenen görüntülerin birbirleriyle ili¸skisi söz konusu de˘gildir. Görüntülerin da˘gıtık olarak birle¸stirilmesinde ise görüntülerin birbirleriyle ili¸skisini dikkate almak gerekmektedir. Vektör formattaki görüntülerin E¸sle/˙Indirge paradigmasında birle¸stirilmesi için da˘gıtık nokta seti ¸sablonu e¸sle¸stirmesi algoritması geli¸stirilmi¸stir (Bölüm 5.2.2’ye bakınız).

• Uydu görüntülerinden çıkarılıp vektörel modellenen nesnelerin, mekânsal veritabanlarında üçüncü ¸sahıslar (di˘ger ara¸stırmacılar) tarafından mekânsal ve topolojik analizlerinde kolaylıkla kullanabilecekleri yapıya getirilmesi sa˘glanmı¸stır (Bölüm 5.1’e bakınız).

• Yapılabilirlik ve ölçeklenebilirlik testleri gerçek uydu görüntüleri (LandSat-8) ve farklı görüntüler ile gerçeklenmi¸stir (Bölüm 5.3’e bakınız).

(17)

Tezin geri kalan kısmı ¸su ¸sekilde organize edilmi¸stir: Bölüm 1’de; görüntü temsili ve görüntü veri yapıları ile farklı seviye görüntü i¸sleme algoritmaları ve uzaktan algılama alanında en çok kullanılan görüntü i¸sleme algoritmaları sunulmu¸stur. Bölüm 2’de; paralel hesaplama mimarileri, paralel programlama mekanizmaları, paralel desen kalıpları ve E¸sle/˙Indirge paradigması açıklanmı¸stır. Büyük veri, karakteristi˘gi ve uygulama alanları ile da˘gıtık mimaride uydu görüntülerinin i¸slenmesi ve büyük ölçekli uydu görüntülerinin birle¸stirilmesi üzerine literatürde var olan çalı¸smalar 3. Bölümde sunulmu¸stur. Bölüm 4’te önerilen mimarinin ön i¸slem adımları (doku temizleme vb.), mozaiklerin depolanması, nesne ile kesi¸sen mozaiklerin bulunması ve kapsama problemi verilmi¸stir. Bölüm 5’te ise mozaiklerin da˘gıtık mimaride vektörle¸stirilmesi ve nokta seti ¸sablonu e¸sle¸stirmesi ile birle¸stirmesi ile gerçeklenen testlere ait performans de˘gerlendirmesi sunulmu¸stur. Son bölümde ise genel de˘gerlendirme verilip sonuçlarlar özetlenmi¸stir. Ayrıca aynı bölümde gelecek çalı¸smalar için yönlendirmeler verilmi¸stir.

(18)

1. FARKLI SEV˙IYE GÖRÜNTÜ ˙I ¸SLEME ALGOR˙ITMALARI

Bu bölüm, farklı seviyelerdeki görüntü i¸sleme alagoritmaları hakkında kısa bir giri¸s niteli˘gindedir ve bu algoritmaların uzaktan algılama görüntüleri üzerinde uygulamaları verilmi¸stir.

1.1. Görüntü Veri Temsil Seviyeleri ve Görüntü Veri Yapıları

Bir görselin/görüntünün içeri˘gini analiz edebilmek için önce görüntü bilgilerini temsil etme yolları geli¸stirilmelidir. Görüntü verisi farklı seviyelerde temsil edilebilmektedir. Bir görüntü hakkında bilgi depolamanın en basit yolu, piksel bazındadır. Piksel, görüntünün en küçük ö˘gesidir. Her piksel bir de˘gere kar¸sılık gelir. Herhangi bir noktadaki bir pikselin de˘geri, o noktaya çarpan ı¸sık fotonlarının yo˘gunlu˘guna kar¸sılık gelir. Her piksel, söz konusu konumdaki ı¸sık yo˘gunlu˘guna orantılı bir de˘ger depolar. Piksel ba¸sına dü¸sen yo˘gunluk de˘gerlerine göre görüntüleri farklı ¸sekillerde isimlendirmek mümkün olmaktadır. Bütün piksel de˘gerleri 0 veya 1 ise ikili (binary), piksel ba¸sına sadece bir yo˘gunluk de˘geri dü¸süyorsa gri-tonlamalı (grey-scale), her piksel için bir renk bilgisi varsa dijital renkli görüntü gibi ayrı¸sımlar yapılabilir [4].

Renkli görüntülerde her bir pikselde üç farklı banda (kırmızı, ye¸sil, mavi) ait bilgiler yer alırken multi-spektral görüntülerde her bir piksel bir vektör de˘gerine sahiptir. Multispektral sensörler genellikle ürettikleri görüntülerin her bir pikselinde 3-10 arasında de˘gi¸sen farklı bant ölçümüne sahiptir. Bu sensörlerde bant örnekleri tipik olarak görünür ye¸sil, görünür kırmızı, yakın kızıl ötesi vb. ¸seklindedir. Landsat, Quickbird ve Spot uyduları, multispektral sensörleri kullanan iyi bilinen uydu sensörleridir. Hiperspektral sensörler, multispektral sensörlerden daha dar ve daha çok sayıda bantta enerjiyi ölçer. Hiperspektral görüntüler, iki yüz (veya daha fazla) biti¸sik spektral bant içerebilir. Hiperspektral sensörlerin dar bantları, tüm elektromanyetik spektrum boyunca sürekli bir spektral ölçüm sa˘glar ve bu nedenle yansıyan enerjideki ince de˘gi¸sikliklere daha duyarlıdır. Hiperspektral sensörlerden üretilen görüntüler, multispektral sensörlerden alınan görüntülerden çok daha fazla veri içerir [5].

Bir di˘ger görüntü temsil ¸sekli bölge bazlı bölümlenmi¸s (segmente edilmi¸s) görüntülerdir. Bölümlenmi¸s görüntülerde görüntünün parçaları, muhtemelen aynı nesnelere ait olan gruplara birle¸stirilir. Görüntü segmentasyonu yaparken uygulama

(19)

alanıyla ilgili bir bilgiye sahip olmak yararlıdır. Ardından hatalı görüntü verisiyle ili¸skili gürültü ve di˘ger problemlerle ba¸sa çıkmak daha kolaydır [6]. Geometrik gösterimler (geometric representations), 2B ve 3B ¸sekiller hakkında bilgi sahibi olmak için kullanılır. Bir ¸seklin nicelle¸stirilmesi çok zor ama çok önemlidir [7]. ˙Ili¸skisel model gösterimi (relational level), verileri daha verimli ve daha yüksek bir soyutlama düzeyinde i¸sleme yetene˘gi verir. Çözülecek bir problem hakkındaki ön bilgiler genelde bu tür ili¸skisel modeli proses etmede kullanılır. Örne˘gin uydu görüntüleri kullanarak bir havaalanında bulunan uçakları sayma probleminde; havaalanının konumu (örne˘gin bir haritadan), görüntüdeki di˘ger nesnelerle olan ili¸skiler (örne˘gin, yollar, göller, kentsel alanlar) ve aranan uçakların geometrik modelleri birer ön bilgidir [8]. Yukarıda bahsedilen temsilleri programsal olarak modelleyebilmek için bir takım veri yapıları geli¸stirilmi¸stir. Bunlar genel olarak dörde ayrılır: (i) geleneksel, (ii) topolojik, (iii) ili¸skisel, ve (iv) hiyerar¸sik veri yapıları.

Geleneksel görüntü veri yapıları (traditional data structures) sadece görüntü bilgilerinin do˘grudan temsili için de˘gil, aynı zamanda daha karma¸sık hiyerar¸sik görüntü temsili yöntemlerinin bir temeli olarak kullanılır. Geleneksel yapılar içinde matrisler, zincirler (chains), çizgeler (graphs) ve tablolar/ili¸skisel veritabanları yer alır ( ¸Sekil 1.1’e bakınız). Dü¸sük seviyeli görüntü temsili için en yaygın veri yapısı matrislerdir. Matrisin elemanları tam sayıdır. Bu çe¸sit görüntü verileri genellikle bir görüntü yakalama cihazının do˘grudan çıktısıdır. Seyrek matris, e¸sdizimlilik (co-occurrence) gibi çe¸sitli matris türevleri vardır [9].

Zincirler, nesne sınırlarının tanımlanması için kullanılır. Bir zincirdeki semboller genellikle görüntüdeki temel kom¸suluklara kar¸sılık gelir. Zincir yapılarının; zincir kodlama, ili¸skilendirilmi¸s dizgeler (attributed string) ve çalı¸sma uzunlu˘gu kodlaması (run length coding) gibi çe¸sitleri vardır. Zincirler, statik veri yapıları (örne˘gin 1B diziler) kullanılarak temsil edilebilir. Dinamik veri yapıları hafızayı efektif için daha avantajlıdır [10]. Çalı¸sma uzunlu˘gu kodlaması, genellikle görüntü matrisindeki sembol dizilerini temsil etmek için kullanılır. ˙Ikili görüntülerde, uzunluk kodlaması sadece görüntüdeki nesneye ait alanları tutar [11, 12]. Topolojik veri yapılarında görüntü elemanlar ve onların ili¸skisi ¸seklinde gösterilir. Topolojik yapılar içinde a˘gırlıklandırılmı¸s çizgeler (weighted graphs), bölge biti¸siklik çizgeleri (region adjacency graphs) [13] ve semantik net yer alırlar.

(20)

(a)

(b)

(c)

(d)

¸

Sekil 1.1. Farklı görüntü veri yapıları a) Matris veri yapısı b) Zincir veri yapısı c) Çalı¸sma uzunlu˘gu kodlaması d) Bölge biti¸siklik çizgesi

˙Ili¸skisel yapılarda, bilgi görüntünün anlamsal olarak önemli kısımları arasındaki ili¸skilerde yo˘gunla¸sır. Bu yapıda nesneler, segmentasyon sonucu elde edilir. Bu veri yapıları, üst düzey görüntü anlama algoritmalarında kullanılır [14]. Yapılan i¸sin do˘gası gere˘gi bigisayarla görü algoritmaları hesapsal açıdan pahalıdır. Çözümlerden biri paralel bilgisayarlar kullanmaktır. Birçok bilgisayarla görü problemini i¸slemciler arasında bölmek/da˘gıtmak zordur.

Hiyerar¸sik veri yapıları, nispeten küçük miktarlardaki verileri i¸slemeye dayanan bir strateji ile bu algoritmaların paralel i¸slenmesini mümkün kılmaktadır. Piramitler ve dörtlü a˘gaçlar (quad-trees) en tipik hiyerar¸sik yapı örnekleridir. Bir piramit, {MP, MP–1, ..., M0} görüntü dizisinden olu¸sur. MP orijinal görüntüyle aynı boyutlara ve ö˘gelere sahip oldu˘gu bir görüntü olup MP–1, MP’nin çözünürlü˘gü yarıya dü¸sürülerek olu¸sturulur. M0 ise bir piksele kar¸sılık gelir. Bir piramit içinde bir derece daha küçük bir çözünürlü˘ge sahip olan bir görüntü, dört kat daha az veri içerir, böylece yakla¸sık

(21)

dört kat hızlı bir ¸sekilde i¸slenir [15]. Dörtlü a˘gaç ise her dü˘gümü dört çocuk dü˘güme sahiptir (KB: kuzey-batı, kuzeydo˘gu: kuzeydo˘gu, güneybatı güneybatı, güneydo˘gu: güneydo˘gu). Görüntü, her hiyerar¸sik seviyede dört bölüme ayrılmı¸stır; fakat her seviyede bütün dü˘gümleri tutmak gerekli de˘gildir [16].

Genel olarak görüntü i¸sleme operasyonları üç grupta incelenebilir: (i) dü¸sük, (ii) orta ve (iii) yüksek seviyeli görüntü i¸sleme algoritmaları. Takip eden alt bölümlerde seviyelerle ilgili açıklamalar yapılacaktır.

1.2. Dü¸sük Seviye Görüntü ˙I¸sleme Algoritmaları

Dü¸sük seviye görüntü i¸sleme, görüntü üzerinde do˘grudan çalı¸sır ve insan algısını iyile¸stirmek ve görüntüleri otomatik analiz, ölçüm veya yorumlamaya hazırlamak için kullanılır. Dü¸sük seviye görüntü i¸sleme; tıbbi te¸shis, parmak izi analizi, endüstriyel denetim gibi birçok farklı uygulamalarda kullanılır. Görüntüler önce kameralar veya di˘ger sensörler tarafından yakalanır ve sayısal olarak saklanır. Saklanan görüntü genellikle iki boyutlu bir piksel dizisinden olu¸sur. Dü¸sük seviyeli görüntü i¸sleme algoritmaları gri seviye de˘gerlere veya farklı yo˘gunluklara sahip görüntüleri girdi olarak alır. Dü¸sük seviye i¸sleme, bireysel piksel de˘gerlerini görüntüyü de˘gi¸stirmek için kullanır. Görüntünün kontrastını artırma, kenar bulma, Hough dönü¸sümü veya görüntüden gürültü giderme gibi algoritmalar dü¸sük seviye i¸slemlere örnek olarak verilebilir. Dü¸sük seviye görüntü i¸sleme algoritmalarında genellikle görüntünün tüm pikselleri üzerinde piksel kom¸suları da dikkate alınarak i¸slem yapılmaktadır. Dolayısıyla dü¸sük seviye görüntü i¸slemleme algoritmaları için veri paralelizmi daha uygundur.

1.3. Orta Seviye Görüntü ˙I¸sleme Algoritmaları

Orta seviye görüntü i¸sleme operasyonları nesnelerin pikselleri üzerinde çalı¸sır ve listeler gibi daha kompakt veri yapıları üretir. Bölge etiketleme, nesne izleme, görüntü dönü¸sümleri, veri sıkı¸stırma ve kodlama bu seviye algoritmalara örnek olarak verilebilir. Dü¸sük seviyeli görüntü i¸sleme operasyonları ile kar¸sıla¸stırıldı˘gında, orta seviye algoritmaların paralelle¸stirilmesinde çe¸sitli konular dikkate alınmalıdır. Hesaplamalar daha çok nokta, çizgi veya alan verileri üzerinde gerçekle¸stirilir. ˙I¸slem yapılan veriler orta taneciklik büyüklü˘güne (medium size granularity) sahiptir. Operasyonlar yüksek oranda veriye ba˘gımlıdır ve kom¸su olmayan piksel verilerini gerektirebilir.

(22)

1.4. Yüksek Seviye Görüntü ˙I¸sleme Algoritmaları

Yüksek seviyeli görüntü i¸sleme, bilgi tabanlı (knowledge-based) i¸slemedir ve orta seviye i¸slemden çıkarılan yüksek düzey bilginin yorumlanmasıyla ilgilidir. Operasyonlar çizgeler ve listeler üzerinde çalı¸sır ve sonuçları bir uygulamada karar verme mekanizmasına etki eder. Sahne analizi, görüntü sınıflandırma, nesne tanıma yüksek seviye algoritmalara örnek olarak verilebilir. Mevcut paralellik iri tanecikliktedir (coarse grain) ve genellikle bir veri akı¸sı çizgesine ba˘glıdır.

1.5. Uzaktan Algılama Dijital Görüntü Analizi

Uzaktan algılama görüntülerinin yorumlanmasına yardımcı olmak ve görüntülerden mümkün oldu˘gunca fazla bilgi elde etmek için birçok görüntü i¸sleme ve analiz tekni˘gi geli¸stirilmi¸stir. Kullanılacak belirli tekniklerin veya algoritmaların seçimi, her bir projenin hedeflerine ba˘glıdır. Bu bölümde uzaktan algılama görüntülerini analiz etmek/yorumlamak için yaygın olarak kullanılan bazı prosedürleri inceleyece˘giz. Uzaktan algılama görüntülerine uygulanan i¸slemler genel olarak; görüntü ön i¸sleme (düzeltme) ve görüntü i¸sleme olarak ikiye ayrılır. Uzaktan algılama görüntüleri yapılarında sistematik ya da sistematik olmayan hatalar barındırırlar. Bu nedenle uygulamada kullanılabilmeleri için bir takım düzeltmelere tabi tutulmaları gerekir. Bu düzeltmelerin amacı hatalara maruz kalmı¸s görüntüyü daha anlamlı bir hale getirmek ve daha sonraki i¸slemler için görüntü kalitesini artırmaktır. Ön i¸slemler; görüntüyü belirli bir koordinat sistemine oturtmaya yarayan (geometrik düzeltme), algılanan görüntüde objeyi temsil etmeyen yansımaların giderilmesini amaçlayan (radyometrik düzeltme) ve verideki gürültünün giderilmesi adımlarını içerir.

Geometrik düzeltme, ham görüntüdeki geometrik bozulma etkilerinin giderilmesi, ve görüntünün yer kontrol noktaları kullanılarak tanımlı bir co˘grafi koordinat sistemine oturtulması i¸slemidir. Düzeltilecek görüntüdeki nokta koordinatları, yer kontrol noktalarının koordinatları ile tanımlanırken (enlem, boylam gibi) yapılan i¸sleme rektifikasyon, bu i¸slem iki görüntünün aynı noktalarını e¸sle¸stirme ya da bir görüntüyü di˘gerine göre düzeltme ¸seklinde yapılıyor ise geometrik kayıt denilmektedir [17]. Geometrik düzeltmelerin bazısı veya hemen hemen ço˘gu otomatik olarak görüntü verisi sa˘glayıcıları tarafından yapılmaktadır. Landsat programı, güvenilir uzaktan algılama görüntü veri seti sa˘glamak için hem geometrik hem radyometrik düzeltmeler için en son teknoloji ve metodolojiyi kullanır. Hatta Landsat’ın yüksek standartları ve iyi belgelenmi¸s geometrik ve radyometrik düzeltme yakla¸sımları nedeniyle di˘ger uydu görüntülerinin düzeltilmesi ve kalibrasyonu Landsat görüntülerinin kullanılmasıyla elde edilebilir.

(23)

Radyometrik düzeltmeler, bilgilerdeki düzensiz ve yanlı¸s algılamalara neden olan sis ve bulut gibi atmosferik etkilerin giderilmesini ve algılayıcılar tarafından algılanan radyasyondan (sistematik hatalar), objeleri tam olarak temsil etmeyen yansımaların düzeltilmesi yada elemine edilmesini içerir. Güne¸s ı¸sınlarının geli¸s açısından veya topo˘grafyadan kaynaklanan gölge etkisi de radyometrik hatalara sebep olmaktadır. Görüntü gürültüleri ise algılayıcı kısıtlamaları gibi nedenlerden, sinyal sayısalla¸stırma veya veri kayıt zamanlarında olu¸sabilir. Gürültü periyodik, rastgele veya bunların karı¸sımı ¸seklinde olabilir. Görüntü i¸sleme a¸samasına geçilmeden önce bu hata ve etkilerin giderilmesi gerekmektedir [18].

Görüntüden istenilen bilgilerin elde edilebilmesi için görüntü zenginle¸stirme (enhancement), görüntü dönü¸sümleri, veri entegrasyonu/füzyonu, sınıflandırma, zamanla de˘gi¸sim analizi gibi bazı önemli i¸slemler gerçeklenebilir. Görüntü zenginle¸stirmenin amacı görsel yorumlamayı daha da iyile¸stirmektir. Belirli bir görüntünün belirli bir karesi çe¸sitli çevresel etkenlerden dolayı bozulmu¸s olabilir. Bu tip görüntüler kenar zenginle¸stirmesi, spektral oranlama, temel ve kanonik bile¸sen analizi, histogram e¸sleme gibi bir takım görüntü zenginle¸stirme yöntemleri uygulanarak bir özelli˘gine göre daha zengin hale getirilebilir [19].

Görüntü dönü¸sümleri, genellikle iki veya daha fazla görüntüden yararlanılarak ilgilenilen özelliklerin daha fazla ortaya çıktı˘gı yeni bir görüntünün olu¸sturulması i¸slemidir. Temel görüntü dönü¸sümleri görüntüye uygulanan basit aritmetik i¸slemlerdir. Örne˘gin, görüntü çıkarma i¸slemi genellikle farklı tarihlerde alınmı¸s olan görüntülerin arasındaki farklılıkları bulmak için yapılan bir uygulamadır [20]. Görüntü bölme veya orantılama i¸slemleri de sıkça kullanılan dönü¸sümlerdir.

Veri entegrasyonu, farklı kaynaklardan elde edilen bilgilerin daha iyi ve daha çok bilgi elde etmek üzere birle¸stirilmesidir. Bu kapsamda çok-zamanlı, çok-çözünürlüklü, çok-algılayıcılı veri kombinasyonları kullanılabilir. Bir uzaktan algılama veri setinin sınıflandırılmı¸s harita formatında olan sonuçları, ba¸ska bir veri kayna˘gı olan CBS güncelle¸stirmede kullanılabilir. Farklı veri setlerini ve kaynaklarını bir arada kullanmak çok daha iyi sonuçlara ula¸smak için iyi bir yakla¸sımdır [21].

Dijital görüntülerde farklı özellik tipleri, do˘gal spektral yansıtma ve yayma özelliklerine ba˘glı olarak farklı sayısal de˘gerler içeren kombinasyonlar olu¸sturmaktadır. Bu farklılıktan yararlanılarak aynı spektral özellikleri ta¸sıyan yer yüzündeki nesneler gruplandırılabilmektedir. Sınıflandırmada amaç, uydu görüntülerindeki her pikseli

(24)

spektral özelliklerine göre farklı gruplara ayırmak ve pikseli yansıtma de˘gerlerine göre yer yüzünde kar¸sılık geldi˘gi kümeye atamaktır. Sınıflandırmada; algılayıcı, algılama zamanı ve spektral bantların amaca uygun olarak seçimi ve amaca yönelik sınıflandırma algoritmaların seçimi önemlidir. Sınıflandırma danı¸smanlı veya danı¸smansız ¸sekilde yapılabilmektedir [22].

(25)

2. PARALEL M˙IMAR˙ILER VE PROGRAMLAMA MODELLER˙I

Bu bölümde paralel hesaplama mimarileri, paralel programlama mekanizmaları, paralel desen kalıpları ve E¸sle/˙Indirge paradigması açıklanmı¸stır.

2.1. Paralel Hesaplama Kavramsal Modeller

Uygulama gereksinimi, mevcut bütçe ve mimari seçimine ba˘glı olarak görüntü i¸sleme uygulamalarına uygulanacak paralelizm üç yolla olabilir: (i) veri paralelle¸stirme, (ii) görev (task) paralelle¸stirme ve (iii) boru hattı (pipeline) paralelle¸stirme.

Veri paralelle¸stirme modelinde, i¸slemciler arasında verilerin bölümlenmesi ve da˘gıtılmasıyla paralellik elde edilir. Görüntü i¸sleme algoritmalarında görüntüler bölünür ve her parça veya alt görüntü, farklı bir i¸slemci tarafından i¸slenir. Görev paralelle¸stirme modelinde, program parçaları/emirler görevler ¸seklinde gruplandırılarak her bir görev farklı i¸slemciye gönderilir. Paralel hesaplama modelleriyle ilgili açıklamalar takip eden alt bölümlerde verilmi¸stir.

2.1.1. Veri paralelle¸stirme modeli

Verinin paralelle¸stirilmesi yakla¸sımında veri bölünür ve hesaplama birimleri arasında da˘gıtılır. Burada verinin etkin bir ¸sekilde parçalanması ve sonucun tekrar elde edilmesi temel bir sorundur. Veri, birimler arasında en az haberle¸sme olacak ¸sekilde (veri yerelli˘gi) ve her bir birimin yakla¸sık olarak e¸sit olarak (load balancing) alması yoluyla da˘gıtılmalıdır.

Görüntü verisi üç yolla paralelle¸stirilebilir: (i) piksel bazında, (ii) satır veya sütun bazında görüntüyü parçalama ve (iii) blok bazında görüntüyü parçalama. Paralel görüntü i¸sleme algoritmalarında girdi görüntü(ler) en çok satır/sütun parçalamasına veya bloklar haline getirme ¸seklinde ayrı¸stırılır. Veri paralelizmi en çok dü¸sük seviye görüntü i¸sleme algoritmaları üzerine uygulanır. Bir programlama dilinde veriyi paralel model ile programlama, mesaj gönderme (message passing) veya veri paralel yapılı bir program yazarak gerçeklenir.

(26)

2.1.2. Görev paralelle¸stirme modeli

Görevlerin paralelle¸stirilmesinde, dü¸sük seviye operasyonları gruplandırılarak bir göreve dönü¸stürülür, her görev farklı hesaplama birimi üzerinde çalı¸stırılır. Bu yöntemde kar¸sıla¸sılacak problemler, etkili görev da˘gıtımı ve sonuçların birle¸stirilmesidir.

2.1.3. Pipeline paralelle¸stirme modeli

E˘ger görüntü i¸sleme uygulaması i¸slemek için birden fazla görüntüye ihtiyaç duyuyor ise görüntülerin pipeline i¸slenmesi yapılabilir. Pipeline i¸slemede, görüntüler zamanla farklı a¸samalarda bulunurlar [23].

2.1.4. Paralel sistem performans metrikleri

Bu alt bölüm altında bir takım metrikler ele alınacaktır: taneciklik büyüklü˘gü (granularity size), hızlanma (speed-up), ölçekleme (scalability), verimlilik (efficiency), maliyet (cost). Çok i¸slemcili/çok-dü˘gümlü bir platformda bir programın (uygulama) icra edilmesi, e¸szamanlı görevler yoluyla gerçeklenebilir. Paralel hesaplamada, bir görevin taneciklik büyüklü˘gü, bu görev tarafından yerine getirilen i¸s miktarının (veya hesaplamanın) bir ölçüsüdür. Tanecikli˘gin ba¸ska bir tanımı, çoklu i¸slemciler veya i¸slem elemanları arasındaki ileti¸sim yükünü hesaba katmadır. Hesaplama zamanının ileti¸sim süresine oranı taneciklik olarak tanımlar. Burada hesaplama zamanı bir görevin hesaplanması için gereken süredir ve ileti¸sim süresi i¸slemciler arasında veri alı¸sveri¸si için gereken zamandır. Tcomp hesaplama zamanını ve Tcomm ileti¸sim/haberle¸sme

süresini gösterirse, bir görevin tanecikli˘gi G ¸söyle hesaplanabilir: G = Tcomp/Tcomm.

Paralel bir görev tarafından gerçekle¸stirilen i¸sin miktarına ba˘glı olarak, paralellik üç kategoriye ayrılabilir: ince tanecikli (fine-grained, Tcomp << Tcomm), orta tanecikli

(medium-grained, Tcomp> Tcomm) ve iri tanecikli (coarse-grained, Tcomp>> Tcomm)

paralellik [24].

˙Ince tanecikli paralellikte, bir program çok sayıda küçük göreve ayrılır. Bu görevler, birçok i¸slemciye ayrı ayrı atanır. Paralel bir görevle ili¸skili i¸s miktarı dü¸süktür ve i¸s, i¸slemciler arasında e¸sit olarak da˘gıtılır. Bu nedenle, ince taneli paralellik yük dengelemeyi kolayla¸stırır. ˙Ince taneli paralellik, hızlı ileti¸simi destekleyen mimarilerde en iyi ¸sekilde kullanılır. Dü¸sük ileti¸sim yüküne sahip olan payla¸sımlı bellek mimarisi, ince paralellik için en uygun olanıdır. ˙Iri tanecikli paralellikte, bir program büyük görevlere ayrılır. Bu nedenle, i¸slemcilerde büyük miktarda hesaplama gerçekle¸sir. Bu, yük dengesizli˘gi ile sonuçlanabilir. Burada bazı görevler verinin büyük kısmını i¸slerken, di˘gerleri bo¸sta olabilir. Bu tür bir paralelli˘gin avantajı, dü¸sük ileti¸sim ve

(27)

senkronizasyon yüküdür. Mesaj gönderme mimarisinde, prosesler arasında ileti¸sim uzun zaman aldı˘gı için iri tanecikli paralelli˘ge uygundur. Orta tanecikli paralellik, ince tanecikli ve iri tanecikli paralellik arasında yer alır. Burada, ince tanecikli paralellikten daha büyük görev büyüklü˘gü ve ileti¸sim süresi; iri tanecikli paralellikten daha dü¸sük olan görev büyüklü˘gü ve ileti¸sim süresi söz konusudur. Genel amaçlı paralel bilgisayarların ço˘gu bu kategoriye girer.

Granülarite/tane büyüklü˘gü, paralel bilgisayarların performansını etkiler. ˙Ince tanecikli paralelizm veya küçük görevler kullanmak daha fazla paralellik ile sonuçlanır ve hızlanmayı arttırır. Bununla birlikte senkronizasyon ek yükü, zamanlama stratejileri vb. ince tanecikli görevlerin performansını olumsuz yönde etkileyebilir. Artan paralellik tek ba¸sına en iyi performansı veremez [25]. ˙Ileti¸sim yükünü azaltmak için, taneciklik arttırılabilir. ˙Iri tanecikli görevler daha az ileti¸sim yüküne sahiptir, ancak genellikle yük dengesizli˘gine neden olurlar. Bu nedenle, ince tanecikli ve iri tanecikli paralelliklerin iki ucu arasında en iyi performans elde edilir [26].

Bir programın problem boyutu N, programın sorunu çözmek için gerçekledi˘gi hesaplamaların sayısıdır. Genel olarak problem boyutu, hesaplama miktarı N ile orantılıdır. Bir programın çalı¸sma süresi T ise problemin cevabını hesaplamak için programın aldı˘gı süreyi belirtir. Burada T’yi birçok faktör etkiler:

• Donanım özellikleri: CPU hızı, bellek hızı, önbellekler vb. • Sorunu çözmek için kullanılan algoritma.

• Programın nasıl uygulandı˘gı. Aynı algoritma bazen farklı kodlandı˘gında daha hızlı çalı¸sır.

Program performansları kar¸sıla¸stırılırken daima aynı donanım üzerinde algoritmalar çalı¸stırılmalıdır. T’yi etkileyen faktörler; problem büyüklü˘gü (N) ve i¸slemci sayısı (P)’dır. N ve P’ye göre algoritma çalı¸sma süresi notasyonunu T(N,P) ile gösterirsek bir programın sıralı ve paralel çalı¸sma süreleri ¸su ¸sekilde ifade edilebilir:

Tsirali(N,P): Sıralı versiyon çalı¸sma süresi

Tparalel(N,P): Paralel versiyon çalı¸sma süresi

Bir programın hızlanması, programın sıralı versiyonunun çalı¸sma süresinin paralel versiyonunun çalı¸stı˘gı süreye oranından bulunur (Denklem (2.1)’e bakınız).

(28)

˙Ideal olarak, paralel bir program iki i¸slemci üzerinde iki kat daha hızlı çalı¸smalıdır. Üç i¸slemcide üç kat hızlı, dörtte dört kat daha hızlı. Bu nedenle ideal olarak, hızlanma P de˘gerine e¸sit olmalıdır. Gerçek paralel programlar genellikle ideal hızlandırmanın altına dü¸smektedirler. Verimlilik ise Denklem (2.2)’de gösterildi˘gi bir programın ideal hızlandırılmasına ne kadar yakın oldu˘gunu ölçen bir metriktir.

Verimlilik(N, P) = Hizlanma(N, P)/P (2.2)

Maliyet ise Denklem (2.3)’te gösterildi˘gi gibi, paralel çalı¸sma süresinin ve toplam i¸slemci sayısının çarpımına e¸sittir. Bir maliyeti optimal paralel sistem, tek bir i¸slemci üzerindeki en hızlı bilinen sıralı algoritmanın yürütme süresine orantılı bir maliyetle bir problemi çözmektedir.

Maliyet(N, P) = Tparalel(N, P)xP (2.3)

Belirli bir uygulamaya daha fazla kaynak ekleme yöntemleri, iki kategoriye ayrılır: yatay ve dikey ölçekleme. Yatay olarak ölçeklemek (scale-out), da˘gıtık bir sisteme yeni bir dü˘güm/bilgisayar eklemek (veya dü˘gümleri kaldırmak) anlamına gelir. Dikey olarak ölçeklemek (scale-up), tek bir bilgisayara CPU veya bellek eklemek gibi sistemdeki tek bir dü˘güme kaynak eklemek (veya kaynakları kaldırmak) anlamına gelir.

2.2. Paralel Hesaplama Mimarileri

Flynn [27], makinelerin veri akı¸slarının sayısı ve belirli bir zamanda i¸slenen farklı program akı¸slarının sayısına göre paralel makineleri kabaca dört sınıfa ayırmı¸stır: SISD, SIMD, MISD, MIMD ( ¸Sekil 2.1’e bakınız).

¸

Sekil 2.1. ˙I¸slemcilerin komut ve veri yönetimlerine göre sınıflandırılması [27]

(29)

SISD yapısında tek i¸slemci ve tek hafıza bulunmaktadır. Bu tek i¸slemciye bilgisayarda bulunan veri yolu (bus) sayesinde komutlar ve veriler akmaktadır. ˙I¸slemci bu akan veriler ve komutları alarak, i¸slenmi¸s verileri üretmektedir. Bu mimari klasik olarak Von Neumann makinesidir. MISD yapısında birden fazla i¸slemci bulunmaktadır. Veri tek bir kaynaktan akmakta ve verinin i¸slenmi¸s hali yine tek bir kaynakta toplanmaktadır. Bu anlamda, yukarıdaki i¸slemci modeli, bir önceki modelde olan SISD modelinde bulunan i¸slemci kutusunun açılmı¸s ¸sekli olarak dü¸sünülebilir. Yani kutuya dı¸sarıdan bakan ki¸sinin, sistemden beklentileri ve sisteme etkisi, sanki tek i¸slemci bulunuyormu¸s gibidir. Ancak sistemin içerisinde, i¸slemci kutusu alt i¸slemciler tarafından desteklenmektedir. Burada unutulmaması gereken verinin tek olması ancak komutların çoklu olmasıdır. Bu mimari, gerçek uygulamalarda çok kullanılmaz. Biraz daha teorik bir tasarımdır. Bunun en büyük sebebi, kaynakları kullanımda MISD yakla¸sımının, MIMD veya SIMD kadar ba¸sarılı olamamasıdır. Paralel veya da˘gıtık i¸sleme için MIMD veya SIMD sistemler daha detaylı incelenmi¸stir.

2.2.1. MIMD sistemler

MIMD birden çok veri kayna˘gı, birden çok komut giri¸si ile çalı¸smaktadır. Bu mimari modelinde, i¸slemciler ba˘gımsız olarak ve asenkron olarak çalı¸sabilmektedir. Bunun anlamı, bir i¸slemcinin di˘ger i¸slemcileri beklemesi gerekmemesi ve sonuçların birbirinden ba˘gımsız olarak i¸slenebilmesidir. MIMD modelinde, SISD modelinde olu¸sturulmu¸s birden fazla makine varmı¸s gibi dü¸sünülebilir. Bu dü¸sünce, do˘gru olmakla birlikte, çoklu SISD modeline göre avantajlar vardır. Örne˘gin i¸slemcilerin aynı donanım içerisinde olması sayesinde, veri ileti¸simi kolayla¸sabilmektedir. Zaten MIMD mimarilere bellek açısından bakıldı˘gında, kendi içerisinde payla¸sılmı¸s bellek (shared memory), da˘gıtılmı¸s bellek (distributed memory) ve bunların birle¸simi olan hibrit sistemler olarak üç grupta incelenir ( ¸Sekil 2.2’ye bakınız).

(a) (b)

¸

Sekil 2.2. Bellek açısından MIMD modelleri [28] a) Payla¸sımlı bellekli paralel bilgisayar yapısı b) Da˘gıtık bellekli paralel bilgisayar yapısı

Payla¸sılmı¸s bellek için durum, tek bir bellek üzerinde çalı¸san birden fazla i¸slemcidir. Burada bellekten kasıt, bilgisayarın birincil belle˘gi (primary memory, veya RAM)

(30)

olarak dü¸sünülebilir. Aynı problem i¸slemcilerin ön bellekleri (cache) için de bulunur. Yani i¸slemcilerin birden fazla önbellek kullanmaları veya tek önbellek üzerinden, birden fazla i¸slemcinin çalı¸sıyor olması birer tasarım kriteridir. Birçok da˘gıtılmı¸s bellek mimarisi, orta tanecikli paralellikten yararlanmak için düzenlenmi¸stir. Çünkü görev seviyesindeki paralelizmin etkili bir ¸sekilde kullanabilece˘ginden daha fazla i¸slemciye sahiptirler. Ayrıca, mesaj gönderme yükü, çok ince tanecikli paralellik için çalı¸sma hızından daha a˘gır basacaktır.

Gev¸sek ba˘glı bir sistemdeki (da˘gıtık bellekli) dü˘gümler genellikle sıradan bilgisayarlarıdır ve sistemden ayrıldıklarında ba˘gımsız makineler olarak geri dönü¸stürülebilir. Güç tüketimine bakıldı˘gında sıkı ba˘glı sistemler (payla¸sılmı¸s bellekli), çok daha fazla enerji verimi sa˘glayabilirler. Ayrıca gev¸sek ba˘glı sistemler, farklı sistemlerde farklı i¸sletim sistemleri veya i¸sletim sistemi sürümleri çalı¸stırma yetene˘gine sahiptirler. Bu sistemin genel özellikleri ¸su ¸sekildedir: Her i¸slemci, kendi fiziksel adres alanına sahiptir. Standart a˘g donanımları üzerinden birbirlerine ba˘glı bilgisayarın boyutu, on binlerce sunucuya ve daha fazlasına ula¸stı˘gında, depo ölçekli (warehouse-scale) bilgisayarlar (cloud computing) olarak adlandırılırlar. Bu i¸slemciler, mesaj gönderme yoluyla haberle¸sir [29].

2.2.2. SIMD sistemler

Veri farklı kaynaklardan geliyor ancak i¸slemci tek ise ve bu farklı kaynaklardan gelen veri, aynı anda i¸slemcide i¸sleniyorsa, bu modele SIMD ismi verilir. Bu tip makineler bazen i¸slemci-dizi (processor-array) makineleri olarak da bilinir. Bu konfigürasyonda, N tane i¸sleme elemanı bir ara ba˘glantı a˘gı üzerinden ba˘glanır. Her i¸slem elemanı (PE), yerel belle˘ge sahip bir i¸slemcidir. PE’ler, bir yayılım (broadcast) veriyolu vasıtasıyla kontrol i¸slemcisi (CP) tarafından da˘gıtılan talimatları uygular. Tek yönlü bir ara ba˘glantı a˘gı üzerinden PE’ler arasında veri alı¸sveri¸si yapılır. G/Ç veriyolu, PE’lerden G/Ç arayüzüne veri aktarmak veya tersi i¸slem için kullanılır. Sonuçları belirli PE’lerden CP’ye transfer etmek için sonuç veriyolu kullanılır.

SIMD mimarisinin en büyük avantajı; büyük, özde¸s verilerin i¸slenmesinde ortaya çıkar. Örne˘gin görüntü i¸sleme sırasında piksel bazlı veya piksel kom¸suları bazlı yapılan dü¸sük seviye görüntü i¸slemlerinin da˘gıtılması ve birden fazla i¸slemci üzerine aynı komutun verilmesi mümkündür. Örne˘gin görüntünün aydınlatılması için görüntüde bulunan her pikselin, belirli oranlarda aydınlatılması isteniyorsa, görüntüdeki pikseller farklı i¸slemcilerde aynı komut ile paralel olarak aydınlatılabilir. Di˘ger bir örnek matris çarpımı olabilir. Büyük bir matrisin, farklı i¸slemcilere bölünmesi ve bu bölünmü¸s i¸slemcilere aynı komutun verilmesi sonucunda matris üzerinde çarpma gibi i¸slemler

(31)

gerçekle¸stirilebilir [30].

2.3. Paralel Programlama Mekanizmaları

˙I¸slemci ve bellek, paralel donanımın temel kavramlarından olmasına ra˘gmen process paralel yazılımın temel kavramsal birimidir. Ba¸ska bir deyi¸sle process, fiziksel bir i¸slemci üzerinde yürütülen programın bir örne˘gidir. Da˘gıtılmı¸s bellek sisteminde SPMD veya MPMD modellerinin uygulanması, veri ileti¸simi ve i¸slemler arasındaki senkronizasyon ile mümkün olabilir. Veri haberle¸smesi için en önemli yöntemler, payla¸sılan de˘gi¸skenleri kullanma veya de˘gi¸skenleri haberle¸stirme ¸seklinde olur. Payla¸sılan de˘gi¸skenler haberle¸smesinde i¸slemler, i¸slemcilerin yerel belle˘ginde bulunabilen payla¸sımlı de˘gi¸skenlere do˘grudan eri¸sime sahiptir. Payla¸sılan de˘gi¸skenlerin e¸szamanlı güncellenmesini önlemek için farklı mekanizmalar kullanılır.

2.3.1. Da˘gıtık sistemler için mesaj gönderme mekanizması

Da˘gıtık sistemler için mesaj gönderme mekanizması üç ba¸sık altında ele alınacaktır: (i) sıkı ba˘glı sistemler için MPI, PVM; (ii) gev¸sek ba˘glı sistemler için RPC, RMI, CORBA ve (iii) bulut hesaplama için E¸sle/˙Indirge. Mesaj gönderme, de˘gi¸skenlerin haberle¸smesi için kullanılan en yaygın yöntemdir. Mesaj göndermede, i¸slemler aktivitelerini mesaj gönderme ve alma ¸seklinde yaparlar. Takip eden paragraflarda kısaca yukarıda bahsedilen mesaj gönderme yapılarına de˘ginilecektir.

MPI, paralel programlama amacıyla kullanılan bir platformun ismidir. Çok çe¸sitli i¸sletim sistemlerinde ve çok çe¸sitli dillerde paralel uygulama geli¸stirmeye olanak sa˘glar. Ancak temel çıkı¸s sistemi Linux ve temel programlama dili olarak C dili kabul edilebilir. Buna kar¸sılık Windows, Unix gibi i¸sletim sistemleri ve JAVA, C++, C gibi programlama dillerinde de oldukça yo˘gun kullanıcıları bulunmaktadır. MPI, API ¸seklinde veya C, C++ and FORTRAN için kütüphane formunda bulunabilir. MPI temel olarak birden fazla bilgisayarın üzerinde aynı programın çalı¸stırılması ve bu çalı¸stırma sırasında programların birbiri ile ileti¸sime geçerek birbirinden veri transfer etmesine dayanır. Open MPI projesi1; akademik, ara¸stırma ve endüstri ortaklarından olu¸san bir konsorsiyum tarafından geli¸stirilen ve sürdürülen açık kaynaklı bir MPI uygulamasıdır.

PVM’de2, programcı problemi ayrı programlara veya görevlere ayırır. Her program C veya Fortran dilinde yazılmı¸stır ve a˘gdaki belirli bilgisayar türlerinde çalı¸sacak ¸sekilde derlenmi¸stir. A˘g homojense (aynı türden bilgisayarlardan olu¸smu¸ssa), bu tür bilgisayar

1https://www.open-mpi.org/

(32)

için programların sadece bir kez derlenmesi yeterlidir. PVM, ayrıca heterojen makinalardan olu¸san bir a˘gı tek bir da˘gıtık paralel i¸slemci olarak kullanmak için geli¸stirilmi¸stir. Büyük hesaplama yükü getiren problemler, pek çok bilgisayarın bir araya gelmesiyle sa˘glanan hız ve bellek sayesinde verimli bir ¸sekilde çözülebilir. Yazılım ta¸sınabilir özelliktedir.

Da˘gıtık hesaplamada bir bilgisayar programı genellikle payla¸sılan bir a˘gdaki ba¸ska bir bilgisayarda bir yordamın yürütülmesine neden oluyorsa bu RPC olarak bilinir. RPC, temelde istemci ve sunucu arasında yapılan i¸slemlerin ileti¸simi için istek-cevap mesaj göndermesi ¸seklidne tasarlanmı¸s bir servistir. Bir i¸slemin gerçekle¸smesi için bir gönderici (sunucu) ve bir de istemci vardır. Nesneye yönelik programlama paradigmasında, RPC ça˘grıları RMI ile temsil edilir. RPC’ler, farklı i¸slemlerin farklı adres uzaylarına sahip oldu˘gu bir i¸slemler arası ileti¸sim biçimidir. E˘ger i¸slemler aynı ana makine üzerinde ise fiziksel adres uzayları aynı olsa bile, farklı sanal adres uzaylarına sahiptirler. Farklı ana bilgisayarlarda iseler, fiziksel adres uzayları farklıdır [31]. CORBA, OMG’nin OMA ana bile¸senlerinden birisidir. OMA nesne modeli ve referans modelinden olu¸sur. Nesne modeli heterojen bir ortamda da˘gılmı¸s nesnelerin nasıl tanımlanabilece˘gini belirler. Referans modeli ise nesneler arası etkile¸simleri tanımlar. Dolayısıyla nesne yönetim mimarisi heterojen ortamlara da˘gılmı¸s beraber i¸sleyebilen da˘gıtık nesnelerin geli¸stirilmesine ve konu¸slandırılmasına yardımcı olur. CORBA sayesinde programcılar kullandıkları nesnelerin hangi dilde yazıldı˘gına, da˘gıtık olup olmadıklarına, i¸sletim sistemlerine ve ileti¸sim protokollerine bakmaksızın programları geli¸stirebilirler [32]. Hadoop ekosistemi ve E¸sle/˙Indirge paradigması Bölüm 2.5’te detaylı sunulmu¸stur.

2.3.2. Çok çekirdekli i¸slemciler için payla¸sımlı bellek mekanizması

Bu bölümde multi-threading yapılardan P-thread, OpenMP’ye ve paralel programlama dillerinden HPF ile UPC’ye de˘ginilecektir. Thread (iplik) kavramı, aynı i¸slem ortamında birden fazla i¸s yürütme imkanı sa˘glar. Bir i¸slemin (process’in) çalı¸smaya ba¸slaması ile birlikte bir thread (main thread) olu¸sturulur ve bu i¸slem içerisinde birden fazla iplik (multi-thread) olu¸sturulabilir. Olu¸sturulan iplikler aynı adres uzayında ko¸sarlar. Her ipli˘gin kendine has program sayacı, saklayıcıları, yı˘gını ve durumu (yok edilme, askıya alınma, önceli˘ginin de˘gi¸stirilmesi) vardır. Bir iplikteki de˘gi¸skeni aynı i¸slem tarafından üretilmi¸s bütün iplikler de˘gi¸stirebilir veya okuyabilir. P-thread (POSIX thread)1iplik kavramının C dili ile kodlanabilmesi için genellikle UNIX türevi i¸sletim sistemelerinde geli¸stirilen programlama kütüphanesidir. Benzer ¸sekilde JAVA’da da Thread sınıfından kalıtım yoluyla veya Runnable arayüzünden uygulanması ¸seklinde

(33)

veya paralel hesaplama için geli¸stirilmi¸s PCJ kütüphanesi1 kullanılarak multi-thread programlama gerçeklenebilir [33].

OpenMP2, payla¸sımlı bellekli çoklu i¸slemcili mimariler için geli¸stirilmi¸s ve derleyici direktifleri yardımıyla paralel programlama yapan bir uygulama geli¸stirme arayüzüdür. Derleyicide derlenen program komutlarını, paralel çoklu i¸slemciye/çekirde˘ge sahip sistemlerde da˘gıtır ve paralel olarak i¸sletilmesinin sa˘glar. OpenMP uygulamaları C/C++ ve Fortran dilleri ile geli¸stirilebilir ve bu dillere ait birçok derleyici OpenMP deste˘gi vermektedir.

HPF, Fortran 90’ın paralel hesaplamayı destekleyen bir uzantısıdır. HPF, birden fazla i¸slemci üzerinden tek bir dizi hesaplama çalı¸smasını yaymak için veri paralel bir hesaplama modeli kullanır. Bu, hem SIMD hem de MIMD stil mimarileri üzerinde etkili bir uygulama sa˘glar. UPC3, büyük ölçekli paralel makinelerde yüksek performanslı i¸slem için tasarlanmı¸s C programlama dilinin bir uzantısıdır. UPC, SPMD modelini kullanır. Dil hem payla¸sımlı hem de da˘gıtılmı¸s bellek donanımı için tek tip bir programlama modeli sunar. Ayrıca Cuda ve OpenCL gibi donanım spesifik diller vardır. CUDA, NVIDIA’nın GPU (grafik i¸slem birimi) gücünü kullanarak hesaplama performansında büyük ölçüde artı¸slara olanak veren paralel hesaplama mimarisidir. CUDA paralel hesaplama platformu, farklı özellikteki verileri ifade etmeye olanak veren birkaç basit C ve C++ uzantısı sa˘glar. Geli¸stiriciler için komple CUDA araçları ve ekosistem çözümleri4 bulunmaktadır. OpenCL5, Apple tarafından 2008 yılında kar amacı gütmeyen teknoloji ¸sirketleri birli˘gi Khronos Group’a önerilen, kabul gördükten sonra spesifikasyonu pek çok ¸sirketin katkılarıyla hazılanan heterojen hesaplama platformudur. OpenCL; destekli grafik i¸slemcileri, genel amaçlı i¸slemciler gibi farklı platformlarda hesaplama yapılmasına olanak sa˘glar. OpenCL; AMD, Intel, NVIDIA ve ARM tarafından desteklenmektedir.

2.4. Paralel Desen Kalıpları

Hem bilginin (kalıpların kendileri) hem de paralel kodların (çerçeveler aracılı˘gıyla) yeniden kullanılabilirli˘gi, paralel desen kalıplarının (parallel design patterns) içinde yer alır. Paralel kalıplar; algoritma stratejisi açısından paralel kalıplar ve gerçekleme stratejisi açısından paralel kalıplar olmak üzere ikiye ayrılır. Problem alanına daha

1http://pcj.icm.edu.pl/

2https://www.openmp.org/

3https://upc-lang.org/

4https://developer.nvidia.com/tools-ecosystem

Referanslar

Benzer Belgeler

Hadley Hücresi Ferrel Hücresi Kutup Hücresi.

■ Distributed com puting olarak adlandırılan dağıtık bilgi işlem e yöntem inin sanallaştırılm asını sağlayan çözüm m im arisine kısaca Grid Com puting

SPOT Image firması ile ortak yapılan programlama çalışması neticesinde alınan 12 Temmuz 2007 tarihli Formosat-2, 14 Temmuz 2007 tarihli SPOT-4 ve 15 Temmuz 2007 tarihli Spot-2

were divided into six groups: C6 glioma cells were inoculated in group A; tumor in combination with recombinant IL-12 (rIL-12) 10 ng were inoculated intracranially in group B;

Konumsal çözünürlüğün 10-100 metre arasında olduğu uydu görüntüleridir. Bu tür görüntüler genellikle 1/50.000 ve 1/100.000 ölçekli veri tabanlarının

Çalışma metodu; uydu görüntüsünün elde edilmesi, görüntü üzerinde radyometrik düzeltmelerin yapılması, band birleştirme işleminin yapılması, çalışma alanı

sayısı bu sebeple tespit edilememektedir. Önerilen yöntemin temel özelliği Tablo 2’te sunulan doğruluk düzeylerine ulaşmada binaya ait noktaların kaçıncı basamak ya

Bu kapsamda seçilen A* algoritması ile rota planlamaya çözüm üretilerek, ilgili çözümün yöntemleri çalışma zamanı bakımından paralel hesaplama yaklaşımı ile