• Sonuç bulunamadı

WEB SERVİSLER İLE PARALEL GÖRÜNTÜ İŞLEME MİMARİSİ: RASTER İMGELERDE KENAR BELİRLEME UYGULANMASI

N/A
N/A
Protected

Academic year: 2022

Share "WEB SERVİSLER İLE PARALEL GÖRÜNTÜ İŞLEME MİMARİSİ: RASTER İMGELERDE KENAR BELİRLEME UYGULANMASI"

Copied!
5
0
0

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

Tam metin

(1)

WEB SERVİSLER İLE PARALEL GÖRÜNTÜ İŞLEME MİMARİSİ: RASTER İMGELERDE KENAR BELİRLEME

UYGULANMASI

Abdürrahim Özel, Çetin Kaya, Ramazan Eşmeli, Süleyman Eken, Ahmet Sayar

Bilgisayar Mühendisliği Bölümü

Kocaeli Üniversitesi, TR-41380 Umuttepe, Kocaeli

arahimozel@gmail.com, {cetin.kaya2, ramazan.esmeli1.08, suleyman.eken, ahmet.sayar}@kocaeli.edu.tr

Özet

Görüntü işleme; tıbbi görüntüleme, endüstriyel üretim, güvenlik sistemleri, biyometrik tanıma, insan-bilgisayar etkileşimi ve uydu görüntüleme gibi alanlar dâhil olmak üzere birçok uygulamada yaygın olarak kullanılmaktadır. Genellikle görüntünün büyüklüğü arttıkça işlem zamanı da artmaktadır. Bilimsel problemlerde yüksek performansın sağlanması, belleğin etkin kullanılması ve işlemcinin hızlı olması çok önemli parametrelerdir. Paralel programlama ile bu tür büyük ve karmaşık problemler alt problemlere bölünür ve her bir alt problemin hesaplamaları aynı anda farklı birimler tarafından yapılır. Bu çalışmanın amacı, görüntünün tek bir bilgisayarda bütün bir şekilde işlenmesi ile görüntünün parçalara ayrılıp web servisler yarımıyla paralel olarak işlenmesi arasındaki performans farlılıklarını göstermektir. Mimarinin etkinliği çeşitli simülasyonlarla gösterilmiştir.

1. Giriş

Görüntü işleme uygulamaları genellikle büyük miktarda hesaplama zamanı gerektirmektedirler.

Bilgisayar sistemlerinin performansının düşük olması hesaplamaların doğruluğunu kısıtlamaktadır. Daha yüksek performanslı sistemlerin kullanılması daha iyi sonuçların elde edilmesini sağlar. Bilgisayarlarda yapılacak büyük çapta bir işlem, seri programlamayla(birbirini takip eden daha önceden tanımlandığı sırada art arda) veya daha küçük görevlere ayrılarak paralel programlamayla eş zamanlı olarak yaptırılabilmektedir. Seri programlamada tek bir işlemciyle her seferinde tek bir emir icra edilirken;

paralel programlamada aynı işlem küçük alt parçalara ayrılarak, çok çekirdekli işlemciler ya da çoklu işlemcilerle gerçekleştirilmektedir [1,2].

Böylece karmaşık ve büyük problemlerin parçaları farklı işlemcilere dağıtılarak işlem zamanının kısalması ve performansın artması sağlanır.

Web servisleri hem yüksek başarımlı hesaplamalarda hem de dağıtık paralel

hesaplamalarda kritik rol oynar. SOA, yani servis odaklı mimari, farklı platformların iletişiminin, entegrasyonunun sağlanması amacıyla bileşenlerin tek bir ortam üzerinden tekrar kullanılabilen, standardize edilmiş ve birleştirilebilen servisler olarak diğer sistemlerin kullanımına açılmasıdır. Bir web servisi standardı olan SOA üzerinde, sözü edilen servisler tanımlanıp, yapılandırılarak dağıtık sistemlerin tek bir platform üzerinden, karşılıklı çalışabilir bir şekilde, birbirinden soyutlanmış olarak entegrasyonu sağlanır [3].

Görüntülerin kenarlarını belirlemek için araştırmacılar uzun bir süredir çalışmaktadır.

Buna rağmen kesinleşmiş ve çok etkili bir kenar belirleme metodu bulunmamaktadır [4].

Günümüzde kullanılan en popüler kenar belirleme yöntemleri Sobel, Prewitt, Robert ve Canny operatörleridir [5-7]. Bu operatörler işlenecek olan pikselin yoğunluğu ile komşu piksellerin yoğunluklarının karşılaştırılması yöntemiyle çalışmaktadırlar. Ancak, bu operatörler görüntüdeki gürültüye çok duyarlı ve karmaşık matematiksel işlemler içerdiklerinden çok zaman almaktadırlar.

Bu çalışmada web servisleri ile görüntü işleme konuları üzerinde durulup, tek bir web servisin yaptığı iş birden çok web servise paralel olarak yaptırılarak performans artışı hedeflenmiştir.

Bunun için önce bir bilgisayar sunucu olarak ayarlanmış ve tüm görüntü üzerinde Sobel operatörü ile kenar görüntüsü hesaplanmış, daha sonra iki sunucu bilgisayara tüm görüntü ikiye bölünerek paralel olarak kenar bulma işlemi yaptırılıp kenar görüntüsü tekrar istemci tarafına gönderilmiştir. Her iki durum için performans değerleri karşılaştırılmıştır.

Makalenin geri kalan kısmı şu şekilde özetlenebilir: 2. bölüm ilgili çalışmaları kapsamaktadır. 3. bölümde yaptığımız çalışmanın genel mimarisi sunulmuştur. 4. bölümde gerçekleştirilen testler ve değerlendirilmesi ele alınmıştır. 5. bölümde ise yapılan çalışmanın sonuçları tartışılmış ve gelecek çalışmalara yer verilmiştir.

(2)

2. İlgili Çalışmalar

Web servisler keşfedilmesinden sonra üzerinde geniş çaplı araştırma çalışmalarının yapıldığı bir konudur. Web servisler dağıtık veri işleme sistemlerinde çokça kullanıldığı gibi paralel bilgisayarlar arasında veri işlemek amacıyla da sıkça kullanılmaktadır. Bu kısımda paralel veri işleme ile ilgili yapılan çalışmalardan bahsedilecektir.

Son zamanlarda karmaşık ve güncel problemlerin çözümüne yönelik paralel çözüm modelleri karşımıza çıkmaya başlamıştır. Gürkan [8] BS’de raster görüntülerin boyutlarının çok fazla olması nedeniyle daha hızlı bilgisayarlara ihtiyaç duyulduğu belirtilmiştir. Bu görüntüler üzerinde etkin bir şekilde yüksek performansa sahip işlemlerin yapılabilmesi için paralel bilgisayarlarla işlem yapılması gerekliliği belirtilmiştir. Dingju ve Jianping [9] de çalışmalarında sayısal şehir(bir bölgeye ait görüntüyü gerçek zamanlı ekrana taşıyan araçlar)den elde edilen görüntüler üzerinde paralel yöntemlerle daha başarılı performans gösteren için çözüm önerisi sunmuşlardır.

Bahsi geçen çalışmaların tümü paralel veri işleme adına önemli çalışmalardır. Bizim çalışmamız ise web servisler üzerinden en son hangi büyüklüklerde görüntü gönderilebileceğini belirleme, görüntünün tek bir bilgisayarda bütün bir şekilde işlenmesi ile görüntünün parçalara ayrılıp paralel bilgisayarlarda işlenmesini arasındaki performansı analiz etme açısından web servis kullanıcılarına yol göstermektedir.

Uygulamanın mimarisi aşağıda anlatıldığı üzeredir.

3. Mimari

Sunucularda ve ana makinede görüntü işleme web servisleri çalışmaktadır. Yani ana makine hem istemci hem sunucu görevi görmektedir.

Burada görüntü işleme olarak sadece kenar belirleme işlemi gerçekleştirilmiştir. Bunun için de Sobel kenar belirleme yöntemi kullanılmıştır.

Matematiksel olarak Sobel operatörü, biri yatay diğeri düşey yöndeki değişimleri hesaplamak için orijinal görüntü ile konvülasyona tabii tutulan 3x3’lük bir kernel kullanır. A, ham görüntü olmak üzere her bir noktasında yatay ve dikey yöndeki türev yaklaşım değerleri olan Gx ve Gy görüntüleri şu şekilde hesaplanır:

Gx

-1 1 -2 2 -1 1

*A Gy -1 -2 -1

1 2 1

*A (1)

Gx ve Gy gradyan değerlerinden gradyan büyüklüğü bulunabilir:

G Gx2+Gy2 (2)

Bu algoritma, T önceden belirlenmiş bir eşik seviyesi olmak üzere, G>T şartını sağlayan noktaları kenar noktası olarak belirleyen bir kenar algılayıcısı olarak kullanılır [10].

Görüntünün her bir sunucuya eşit yükler düşecek şekilde paylaştırılması demek, görüntünün binary şekilde rastgele sunucu sayısına bağlı olarak bölünmesi anlamına gelir.

Bu rastgele bölünmüş resimler paralel olarak sunuculardaki kenar belirleme web servislerinde işlenir. Resmin boyutu arttıkça resmin ana makine üzerinde işlenmesi zaman alacaktır. Eğer görüntü işleme süresinin azalması isteniyorsa, resim parçalara ayrılmalı, bu parçalar da paralel olarak, eş zamanlı işlenmesi sağlanmalıdır. Bunun sonucunda da ne kadar çok sunucu varsa performansta o kadar artacaktır. Mesela kenar belirleme web servisini çalıştıran beş sunucu varsa, bu görüntünün beş parçaya ayrılarak beş sunucuda işlenmesinin tek parça görüntünün bir sunucuda işlenmesine göre performansının yaklaşık beş kat artması beklenilir. Burada web servisleri çalıştıran makinelerin özellikleri performans sonuçlarını etkilemektedir. Projede kullanılan makinelerin aynı özellikte oldukları varsayılmıştır.

Sistemimizin çalışma mantığı şu şeklidedir:

Öncelikle kullanıcı için bir ara yüz tasarlandı.

Kullanıcı bu ara yüzden üzerinde işlem yapacağı görüntüyü seçer. Seçilen görüntü devamlı çalışır durumdaki web servis istemcisine iletilir. Burada binary dizisi haline getirilen görüntü web servis sunucusuna iletilir. Sunucuda binary dizisinden görüntü elde edilir ve üzerinde Sobel operatörü çalıştırılarak kenar görüntüsü elde edilir. Sunucu da bu görüntü binary dizisine çevrilip istemciye gönderilir. İstemci de bu diziden tekrar kenar görüntüsünü oluşturur. Oluşan görüntü kullanıcı ara yüzünde gösterilir.

Tüm bu işlemleri aynı anda paralel olarak yaptırabilmek için thread kullanılmıştır. Ve böylece fazla kod yazarak programın karmaşıklaşması engellenmiştir.

Tüm temel işlemler için ayrı ayrı süre belirlenmesi yapılmıştır. Bu işlemler: istemciden görüntünün web servise gönderilmesi, web serviste kenar belirleme yani görüntünün işlenmesi ve son olarak işlenmiş görüntünün tekrar istemciye gönderilmesidir. Tüm bu işlemler için her bir sunucunun süreleri belirlenmiştir.

Belirlenen süreler karşılaştırılmıştır. Süre belirleme işlemi için izlenen ana mantık her bir thread’in kendi sunucunda resim alma metodunu çağırmadan önceki zaman ile bu metottan çıktığı zaman belirlenip aradaki fark istemciden sunucuya gönderme zamanı olarak belirlenmiş, web serviste bulunan resim al metodu

(3)

çağrılmadan önceki zaman tutulmuş ve bu metottan çıktıktan sonraki zaman belirlenip aradaki fark ise web servisten sunucuya görüntünün gelme zamanı olarak belirlenmiştir.

Son olarak gelme zamanı ile gitme zamanı arasındaki fark bulunarak işlem süresi belirlenmiştir. Tüm bulunan bu süreler görüntünün boyutu arttıkça değişecek tek parça işleme ile aynı görüntüyü parçalayarak farklı sunucularda işleme arasındaki kazanç da değişecektir. Burada devreye verim girecektir.

Verimi de parçalanmamış görüntünün gitmesi işlenmesi gelmesinin toplam süresi ile parçalanmış halde bulunan toplam sürelerin arasındaki büyük olanın farkının 1 ile çarpımı ile bulunmuştur. Burada ki verim ve süreleri o anda bilgisayarın başka işle meşgul olup olmamasına, ağ yoğunluğuna bağlıdır. Bu nedenle her test sonucu farklı çıkabilmektedir. Bu verilerin detaylı anlatımı test bölümünde anlatılmıştır.

Bu çalışma için de farklı boyutlardaki görüntüler, öncelikle tek parça olarak ana makine üzerinde işlenerek (Şekil 1) performans sonuçları incelendi. Daha sonra aynı görüntü iki eş parçaya ayrılarak bu iki parçanın iki sunucuda paralel işlenmesi sağlanarak (Şekil 2) ana makinenin yaptığı işin iki sunucu ile gerçekleştirilmesiyle elde edilen performans sonuçları karşılaştırıldı.

Şekil 1. Ana makine üzerinde kenar bulma işlemi

Şekil 2. İki sunucu ile paralel görüntü işleme Farklı ve daha büyük boyuttaki başka bir görüntü ana makine üzerinde işlenerek performans sonuçları elde edildi. Daha sonra aynı görüntü dört eş parçaya bölünerek paralel olarak dört sunucu ile işlendi (Şekil 3) ve performans sonuçları tek makineden elde edilen sonuçlarla karşılaştırıldı.

Şekil 3. Dört sunucu ile paralel görüntü işleme

4. Gerçekleştirilen Testler ve Değerlendirilmesi

Gerçekleştirilen testlerde analiz sonuçlarını elde edebilmek için bazı kriterlerin değişiminin incelenmesi gerekiyor. Bu çalışmada; resmin gönderilen sunuculara ulaşma süresi,işlenmiş verinin sunuculardan alım süresi, sunucu üzerinde işleme süresi gibi kriterlere göre analiz sonuçları incelenmiştir.

İşleme süresi, oluşturulan theread ile gönderilen resmin sunucu üzerinde işleme süresidir.

Gidiş Süresi, gönderilen resmin sunuculara ulaşma süresidir. (Verim hesaplama için parçalardan sunucuya en uzun sürede ulaşanın değeri kabul edilmiştir.)

Geliş Süresi, sunucuda işlenen resmin tekrar istemciye geri gelme süresidir. (Parçalardan en uzun sürede gelenin değeri verim için ele alınmıştır.)

Gidiş süresinin geliş süresinden genellikle daha uzun olduğu analizler sonucu görülmüştür.

Bunun sebebinin resmin ilk gönderim sırasında bağlantı kurmak için harcadığı süre olduğu düşünülüyor. Daha sonra resim işlendikten sonra bağlantı kurma ile zaman harcanılmadığı için daha kısa sürede sonuç alınıyor.

Tablo 1. İstemci ve sunucunun fiziksel özellikleri

Bilgisayar İşlemci Saat Hzı

Ram Veri Yolu Ana

makine

Intel Core dual T3200 32 Bit

2 Ghz

4 Gb

800 Mhz Sunucu1 Intel Core i3

330UM 64 Bit

1.2 Ghz

4 Gb

800 Mhz Sunucu2 Intel core i5

2410m 64 Bit

2.3 Ghz

4 Gb

1066 Mhz

Sunucu3 Intel core i5 460m 64 Bit

2.53 Ghz

4 Gb

1066 Mhz

(4)

İstemci ve sunucu olarak kullanılan bilgisayarların işlemci, ram veri yolu hızı ve veri iletim hızı gibi özellikleri analiz sonuçlarını etkileyeceği açıktır. Bu projede analiz sonuçlarının elde edildiği bilgisayar özellikleri Tablo 1’de belirtilmiştir. Farklı bilgisayarlarda farklı verim sonuçları ile karşılaşmak muhtemeldir.

Gerçekleştirilen senaryolar ve sonuçları aşağıdaki gibidir:

Senaryo 1’de küçük boyutlu (1 Kb) resimin bir, iki ve dört sunucu üzerinde işleme sonuçları incelendi. Burada da görüldüğü gibi küçük boyutlu resmin binary halde web servislere gönderilmesi ve binary şeklinde geri gelmesi çok küçük bir zaman değeri aldığından hiçbir şekilde verim alınamamıştır. (Şekil 4).

Şekil 4. Senaryo 1’in analiz sonuçları

Senaryo 2’de daha büyük boyutlu (100 Kb) bir resmin analiz sonuçları incelenmiştir. Gidiş geliş süreleri, resmin sunuculara ulaşma sürelerini temsil eder. Gidiş süresinin gelişten daha uzun sürme sebebi öncelikle bağlantı kurulmasıdır.

İşleme süresi ise resmin boyutu ve ayrıntısı ile alakalı olarak değişkenlik gösterebilir.Tek bir makinede işlemeye göre iki makinede işlemek bize yaklaşık yarı yarıya verim sağlamıştır. (Şekil 5).

Şekil 5. Senaryo 2’nin analiz sonuçları Senaryo 3’te resim boyutunun artması (1 Mb) sonucu gidiş ve geliş sürelerinde artma, işleme zamanında da artma meydana gelmiştir. Resmin iki sunucuda işlenmesiyle dört sunucuda işlenmesi arasındaki fark iyice artmıştır. Dört sunucuda resmin boyutunun azalmasıyla hem işleme süresi azalmış, hem de gönderme süresi azalmıştır (Şekil 6). 1 Mb görüntüde iki makinede

işlem yapmak bir makinede işlem yapmaya göre yaklaşık %60 daha verimlidir.

Şekil 6. Senaryo 3’ün analiz sonuçları Senaryo 4’te 1 Mb’lık resim tek parça halinde işlenmesi durumunda resmin binary’e çevrilip göndermesiyle gönderilen resmin işlenme süresi çok fazla olmaktadır. Bu resim birden fazla parça hale getirilip ayrı sunucularda işlenirse, boyutun az olmasından dolayı hem ağdan servise iletilme süresi hem de serviste işleme süresi tek parça olana göre daha verimli olmaktadır (Şekil 7).

Aynı resim dört parçaya ayrılıp ayrı sunuculardaki web servislere gönderilip işletilirse hem iki sunucuda işlemeye oranla hem de iletim süresine göre yine kârlı olmaktadır. Buradaki dikkat çeken nokta ise gidiş süresi ile geliş süresi arasında bariz bir farkın olmasıdır. Bunun sebebinin ilk bağlantı kurulumu esnasındaki zaman kaybı olduğu düşünülmektedir. Geliş süresi var olan bir bağlantı yolunu kullandığından daha az süre aldığı düşünülmektedir.Genel olarak 1 mb görüntüyü 2 makinede işlemek tek bir makinede işlemeye göre bize yaklaşık yüzde 8 oranında verim sağlar.

Şekil 7. Senaryo 4’ün analiz sonuçları

Şekil 8’de ise farklı büyüklükteki (1-10000 Kb arası değişen) görüntülerin ana makine, iki ve dört sunucu üzerindeki işleme süreleri gösterilmiştir.

(5)

Şekil 8. Senaryo 4’ün analiz sonuçları

5. Tartışma ve Gelecek Çalışmalar

Bu çalışmada web servisler kullanılarak farklı dosya boyutundaki görüntüler üzerinde paralel görüntü işleme yapılmıştır. Benzer işlevleri yapan web servislerine eşit boyutlara sahip görüntüler gönderilip işlenmiştir. Daha sonra ana veri daha küçük alt parçalara ayırma işlemine tabi tutulduktan sonra web servislerinin üzerinde işlediği makinelere paylaştırılmıştır. Bu makinelere islemci havuzu diyebiliriz. Bu havuzdaki makinalar sistem çalışmadan önce sistemde tanımlandı. Görüntünün parçalara ayrılıp işlenmesinin bize ne kadar performans sağladığı hesaplanmıştır. İnternet dünyası ve bununla ilgili teknolojilerin gelişmesi web tabanlı dağıtık sistemlerde web servis uygulamalarını hızla artmıştır. Bu tür uygulamalarda sınırlı network bant genişliği ve internet alt yapısı, yüksek boyutlu resimlerin etkin transferi ve işlenmesine olanak vermemektedir. Önerilen yaklaşımla büyük boyutlu görüntüler parçalara ayrılmakta ve her bir parçanın farklı bir bilgisayarda işlenmesi sağlanmaktadır. Bu sayede hem büyük boyutlu görüntüler işlenebilmekte hem de daha hızlı olmaktadır.

Bu çalışmada büyük boyutlu görüntülerin parçalanarak işlenmesiyle başarılı sonuçlar elde edilebileceği gerçekleştirilen testler ile gösterilmiştir. Test sonuçlarından da görüleceği gibi büyük boyutlu görüntüler için performans, görüntü boyutu arttıkça artmaktadır. İleride yapılacak işler olarak, bu havuzdaki makineler up-to-date(güncel) tutulacak. Herhangi bir makine ulaşılamaz veya çalışamaz durumda olduğunda havuzdan otomatik olarak düşülecek.

Ya da aynı şekilde aynı işlemi sağlayan herhangi bir makine sisteme girdiğinde havuz güncellenecek.

6. Kaynaklar

[1] A. Grama, G. Karypis, V. Kumar ve A.

Gupta, Introduction to Parallel Programming, Addison-Wesley, 2003.

[2] T. Raauber ve G. Runger, Parallel programming: For multicore and cluster systems, Springer, Berlin, 2010.

[3] Computerworld Türkiye, SOA Tanımlamalar ve Çözümler: Service-Oriented Architecture

(SOA) nedir?,

http://www.computerworld.com.tr/soa- tanimlamalar-ve-cozumler-detay_4327- sayfa_1.html (accessed 20 Jan. 2012)

[4] A.M. Albora, A. Bal ve O.N. Ucan, “A new approach for border detection of Dumluca (Turkey) iron ore area: Wavelet Cellular Neural Networks”, Pure and Applied Geophysics, 164, 2007, s. 119-215.

[5] I. Sobel, “Neighborhood coding of binary images for fast contour following and general binary array processing”, Computer Graphics and Image Processing, 8:127-135, 1978.

[6] R.C. Gonzales ve R.E. Woods, Digital Image Processing, Addison-Wesley, 1993.

[7] J. Canny, “A computational approach to edge detection,” IEEE Trans. Pattern Analysis and Machine Intelligence, 8(6), 1986, s. 679-714.

[8] G. Tuna, “Yüksek Performanslı lerinde Önemi”, 2. Uzaktan Algılama ve İşlem Kümelerinin Coğrafi Bilgi SistemCoğrafi Bilgi Sistemleri Sempozyumu, Kayseri, 2008.

[9] D. Zhu ve J. Fan, “Application of Parallel Computing in Digital City”, 10th IEEE International Conference on High

Performance Computing and

Communications, 2008, s. 845-848.

[10] R.O. Duda, ve P.E Hart, Pattern Classification and Scene Analysis, John Wiley and Sons, NY, 271-273, 1973.

Referanslar

Benzer Belgeler

karşısında büyük kenar bulunur. Şekilde verilen açı ölçülerine göre en uzun kenar hangi kenardır?. 3. Sınıf Matematik

Sunucu sorunsuz olarak başlatıldıktan sonra, vncserver’a bir şifre ile bağlanabilinmesi için aşağıdaki komut ile bu şifre belirlenir... Çünkü vnc sunucu

Her fark yedek aldığımızda Dosya yedekleme için hazır kutucuğunu temizlemeyip alınan son tam yedeğe kadar olan tüm farkları geri aldığı için her günü ayrı ayrı

SunucuEVİM'den hizmet almadan önce bu sözleşmedeki uyarı ve beyanları okumuş olduğunuz farz ve tarafınızca kabul edilmekle bu hususta herhangi bir anlaşmazlık, iddia ve

Üç yüz kırk undesilyon iki yüz seksen iki desilyon üç yüz altmış altı nonilyon dokuz yüz yirmi oktilyon dokuz yüz otuz sekiz septilyon dört yüz altmış üç seksilyon

Fiziksel bir makine gibi, bir sanal makinenin de kendi işletim sistemi (Windows, Linux, vb.), depolama alanı, ağ bağlantısı, yapılandırma ayarları ve yazılımı vardır ve bu

Sunucu bilgisayar sunduğu servise göre de web sitesi yayınlıyorsa Web Sunucusu, Eğer posta servislerini yayınlıyorsa E-Posta Sunucusu veya Veritabanı sunucusu

Fakat Yahya Kemal, beşyüz yılda ancak beş gazel yazıl­ dım söylediği Divan ■ edebiyatını, günümüz edebiyatından daha çok beğenir; hattâ, Divan