Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Doç.Dr.Erkan ÜLKER, Selçuk Üniversitesi Mühendislik F, Bilgisayar Mühendisliği Bölümü"

Transkript

1 Sayfa 1

2 ÖZET Bu eser veri noktalarının bir yüzeyinin generasyonu olan yüzey rekonstrüksiyonu konusu ile ilgilenir. Yaklaşımımız metaheurestic algoritmaya dayalıdır. (Particle Swarm Optimization) Bu makale, Bezier yüzey rekonstrüksiyonunda, data noktalarının uygun parametrelerini elde edebilme zorluğu ile ilgilenilerek, rekonstrüksiyon işlemini ve uygulamasını anlatır.. Önerilen metodun performansını tartışmak için basit fakat açıklayıcı sosyal ve cognitive parametrelerin seçimi hakkında deneysel bir örnek verilmiştir. 1. GİRİŞ Günümüzde, bilgisayar grafiklerinde en büyük atılım yüzey reconstruction işlemidir. Bu işlem verilen inputa, kullanılan yüzey türüne ve diğer ek kısıtlamalara bağlı olarak birçok farklı şekilde formüle edilebilir. Literatürdeki en yaygın şekli, verilen 3D data noktalarını tam olarak yakınsayan düz bir yüzey elde etmekten oluşur. Bu konu gerçek problemlerde önemli bir rol oynar. Örneğin, araba gövdesi, gemi dümeni ve diğer şekilsiz nesneler. Tipik örnek, free-form eğriler ve 3D lazer taraması yoluyla elde edilen nokta bulutlarından yüzeylerin çıkarıldığı Ters Mühendislikten gelir. Bilgisayar destekli Geometrik Dizayndaki yüzey rekonstrüksiyonu için alışılagelmiş modeller şekilsiz parametrik eğimler ve Bezier, Bspline and NURBS gibi yüzeylerdir. Bu ayrıca makale anlatılan yaklaşımdır. Özellikle Bezier yüzeyleri ele alacağız. Burada amaç, yüzeyin kontrol noktalarını elde etmektir. Bu problem önemsiz olmaktan uzaktır, çünkü yüzey parametriktir. Veri noktalarına uygun parametreleri elde etme ile uğraşırız. 1 de de bahsedildiği gibi uygun parametrelerin seçimi, topoloji rekonstrüksiyonu ve yüzey uygunluğu için gereklidir. Mevcut birçok metodun istenmeyen yüzeye ulaşan sonuçlara yol açan (gürültülü kendini ikiye bölen yüzeyler gibi) topolojik problemleri vardır. Genelde, [2,10 ] a uyan otomatikleştirilmiş yüzey için algoritmalar öncelikli belirli noktalar ile parametrik yüzey uyumu arasında bağlılık bilgisi gerektirir. Eğer koordinasyon verisini yakalanışı organize edilmezse ya da dağıtılırsa, bu görev gittikçe zor bir hal alır. Bilgisayar iletişiminde kullanılan birçok teknik, çatışmaları ve boşlukları engellemek için (ki bunlar meydana getirilen yüzeyin topolojisini önemli şekilde değiştirir). Yoğun bir veri dizisi gerektirir. Bazı makaleler göstermiştir ki Yapay Zeka uygulama teknikleri bu parametreleştirme ile ilgili çarpıcı sonuçlar vermektedir. Bu metotların bir çoğu SOM, Bernstein Temel Fonksiyon Ağı gibi bir takım sinir ağları üzerine oturtulmuştur. Bazı durumlarda bu ağ, dörtgensel topolojilerle kontrol köşe ızgaralarını oluşturmak ve verileri sadece sıraya koymak için kullanılır. Bu ön hazırlık işlem adımından sonra, herhangi bir yüzey rekonstrüksiyon metodu uygulanabilir. Farklı durumlarda sinir ağı yaklaşımları parçalı diferansiyel eşitliklerle ya da farklı yaklaşımlarla birleştirilebilir. Fonksiyonel ağlar için genelleştirme [5, 11, 12] de analiz edilmiştir. [7] ile gösterilen bir makale, hem eğriler hem de yüzeyler için güzel sonuçlar veren fonksiyonel ağları ve genetik algoritmalara ait uygulamaları anlatmaktadır. Stratejimiz aynı zamanda problemin bu şekildeki YZ tekniklerine ait olduğudur. Bu yazıda Bezier Yüzey Rekonstrüksiyonu için PSO metodu ile ilgileneceğiz. PSO, Bilgisayar Sayfa 2

3 Destekli İmalat ta kullanılan, biyolojik fikirlere sahip popüler bir metaheuristik bir tekniktir. Orijinal PSO algritması ilk olarak 1965 yılında James Kennedy ve Russell C. Eberhart tarafından 1995 yılında geliştirilmiştir. Bu yazının genel yapısı şu şekildedir: Bölüm 2 de yüey rekonstrüksiyon işlemi ayrıntılı olarak anlatılacaktır. Bölüm 3 te ayrıntıları ile PSO prosedürü anlatılacaktır. Uygulamalı basit bir örneği Bölüm 4 te yer alır. Bu bölüm aynı zamanda bu yazıda anlatılacak yaklaşım dahilinde PSO metotdunun social ve cognitive parametrelerin uygun/elverişli seçimini de tartışır. Sonuçlar ise Bölüm 5 te bulunmaktadır. 2. Yüzey Rekonstrüksiyon Problemi Yüzey rekonstrüksiyon problemi şu şekilde ifade edilebilir; Bilinmeyen bir U yüzeyi üzerine uydurmak için kabul edilmiş X noktalar kümesi, U ya yakınsayacak şekilde S yüzey modelini oluşturur. Bu problem genellikle en küçük kareler yakınsama şemasının ortalamaları ile ilgilenir. Klasik optimizasyon tekniği (ölçülen verinin dizisi verilirse) dataya olabildiğince yakınsayacak uygunluk fonksiyonuna (fitness function) ulaşmaya çalışır. Bu yaklaşım, hesaplanması gereken bazı parametrelere dayalı parçalı fonksiyon yapısına sahip bir f in olduğunu varsayar. Çalışmamızda, f in, aşağıda gösterilen (M,N) derecesinde S(u,v) parametrik B ezier yüzeyi olduğunu göz önünde bulunduracağız. Burada B i M (u) ve B j N (v) klasik Bernstein polinomları ve P i,j katsayıları kontrol noktalarıdır. Her bir {x k, y k, z k } kartezyen bileşenleri için verilen {D k } k=1,2,,nk 3D data noktaları ile ilgili olarak hataların kareleri toplamının minimizasyonunu hesaplayabiliriz. katsayıları, {x k, y k, z k }, k=1,2,,n k ile sağlanan bilgiler yardımıyla belirlenmelidir. Unutmamak gerekir ki; bu hataların akıllı bileşen minimizasyonunu uygulamak, bütün veri kümesi boyunca, data noktaları ile 3D uzay modeli ile verilen eş noktalar arasındaki Euclidean mesafeleri toplamını minimize etmeyle aynı şeydir. Yine unutulmamalıdır ki; temel fonksiyonların katsayılarına (P i,j ) ek olarak, (u k, v k ), }, k=1,2,,n k parametre değerleri -ki bunlar formülümüzde bilinmeyenler olarak görülürler- data noktaları ile ilişkilidir. Harmanlama fonksiyonlarının sırasıyla u ve v de nonlineer etkileri dolayısıyla hataların en küçük kareler minimizasyonu da geniş data noktaları kümesi için yüksek sayıda bilinmeyenler ile kuvvetle bir non-lineer problem haline gelir. 3. Particle Swarm Optimization Sayfa 3

4 PSO problem çözmek amacı ile popülasyon evrimine dayalı stokastik bir algoritmadır. PSO bir çeşit swarm intelligence (yığın, sürü zekası) dır. Swarm Intelligence; Çevresi ile ya da bir başkası ile lokal olarak etkileşen kolektif ya da dağınık bireylerin toplu davranışı ile oluşan sistemdir. Popülasyon evrimini, merkezi davranış olarak tanımlamak yerine, sürünün bireyleri arasındaki genel davranışın oluşturulmasına sebep olan lokal etkileşim olarak tanımlayabiliriz. PSO için; kuş sürülerinin belli bir yol takip etmek üzere beraber hareket etme davranışını, karınca kolonilerini, hayvan ya da balık sürülerini örnek verebiliriz. PSO da, particle swarm (parçacık sürü), toplumlarda bulunan yüksek seviyeli örgütlenme ile sosyal optimizasyonu simüle eder. Verilen bir örnekte, (2) deki gibi bazı uygunluk fonksiyonları amaçlanan çözüm için hesaplanmalıdır. İyi bir çözüm elde etmek üzere, PSO metotları, hem komşuların lokal etkilerini hem de bireyler kümesinin hareketlerinin global eğilimlerini birleştirir. PSO prosedürleri, parçalar olarak bilinen, çok boyutlu uzayda rastgele aday fonksiyonların popülasyonunu (sürüsünü) seçerek başlar. Daha sonra global ve lokal etkileri de hesaba katarak optimumu aramak üzere domainleri boyunca yer değiştirir. Gelinen en son biçim her bir parçanın komşuluğudur. Bu amaçla, bütün parçalar bir pozisyon ve hıza sahiptir. Bu parçaların tamamı, iki temel düşünce yeteneğine bağlı olarak hyperspace boyunca evrimleşir. Bunlar; en iyi pozisyonlarının hafızası ve global ya da en iyi komşuluklarının bilgisi. En iyi kavramı, problem çözümü bağlamında iyi anlaşılmalıdır. Bir minimizasyon probleminde (bu yazıda olduğu gibi), en iyi kavramı, hedef fonksiyon için en küçük değer ile belirlenen pozisyondur Sayfa 4

5 Begin K = 0 Pop(k) içerisindeki bireylerin P i pozisyonlarının ve V i hızlarının rastgele başlatılması Pop(k) nın uygunluk fonksiyonu hesabı While!(sonlandırma şartı) do P b g en iyi uygun particle hesapla For Pop(k) içindeki her bir i birey için do En iyi uygunlukla P b i particle position hesapla (3) e bağlı olarak i particle için Vi hızı hesapla While not kabul edilebilir P i + V i do V i ye ölçekleme faktörünü uygula End While end For k = k +1 End While End Begin Tablo 1: PSO algoritmasının genel yapısı Particle swarm un dinamikleri başarılı iterasyonlar boyunca göz önünde bulundurulur, zaman örnekleri gibi. Her particle, problemin içerdiği değişkenlerin domaini içinde tanımlanmış en iyi pozisyonunun izini koruyarak, P i pozisyonunu iterasyonlar boyunca değiştirir. Bu, her bir particle için, f b i ye karşılık gelen uygunluk değeri ile gerçekleştirilen en iyi (uygun) çözüm ile ilişkilendirilmiş P b i koordinatlarını depolayarak gerçekleştirilir. Bu değerler en iyi particle pozisyonun hafızası için hesaplanır. Ek olarak, swarmun üyeleri birbiri ile iyi pozisyonlarda etkileşirler. Böylece kendi pozisyonları ve hızlarını bu bilgiye bağlı olarak uyarlayabilirler. Dolayısıyla, bu amaç için, başlangıç iterasyonundan itibaren popülasyon içindeki bütün particlelar arasında en iyi f b g uygunluk değerini ve P b g pozisyonunu elde edebiliriz. Bu her bir particle ın pozisyon değişikliği için global bir bilgidir. Sonuç olarak her bir i particle için evrim şu şekilde gösterilebilir: Burada P i (k) ve V i (k) sırasıyla k anında particle pozisyonunu ve hızını gösterir. w durgunluk ağırlığıdır ve eski hızın yenisine ne kadar etki edeceğine karar verir. α ve β katsayıları sabit değerlerdir ve öğrenme faktörleri olarak bilinir. P g b ve P i b nin etki derecesine karar verir. Özellikle, β zaman süresince birey particle ın hafızası için hesaba katılan cognitive bileşeni gösterirken α sosyal bileşen için hesaba katılan ağırlıktır. R 1 ve R 2, tarama yüzeyine değer katmak için [0,1] aralığında dağınık rastgele sayılardır. Son olarak pozisyon kalitesini hesaplamak için uygunluk fonksiyonu verilmelidir. Bu prosedür bir sonlandırma kriterine ulaşılıncaya kadar defalarca tekrarlanır. Sonlandırma kriterine, düşük bir eşik değeri sağlayan bir çözüm bulunduğunda ya da sabit sayıda nesil sayısına ulaşıldığında ya da daha fazla iyi sonuçlar üretmeyen başarılı iterasyonlara erişildiğinde ulaşılır. Son PSO prosedürü Tablo 1 de gösterilmiştir Sayfa 5

6 Şekil 1: PSO ile yüzey rekonstrüksiyonu örneği; Rekonstrüksiyon yapılmış bikübik Bezier yüzey ve veri noktaları 4. Açıklayıcı Bir Örnek Bu bölümde amaçlanan metodun performansını göstermek üzere basit, aydınlatıcı bir örnek analiz edeceğiz. Bu amaçla, bir Bezier yüzeyden üretilmiş 256 data noktasını input olarak şu şekilde alacağız: Data noktalarının u ve v leri için [0, 0.2] ve [0.8, 1] aralığında 2 grup 8 adet eşit uzaklıkta parametre değeri seçeceğiz. Bu bize 256 adet 3D data nokta kümesini verir. Hedefimiz bu noktalardan yararlanarak rekonstrüksiyonu gerçekleştirmektir. Bunu yapmak için, bir Bikubik Bezier yüzey göz önüne alacağız. Burada bilinmeyenler; 3 x 16 = 48 adet skaler katsayı ve 256 data noktası ile ilişkilendirilmiş u ve v için 2 parametre vektörüdür. (her birinin boyutu 16 olacak) Bu da toplam 80 skaler bilinmeyen demektir. İstenen çözüm (Örneğin 0 hata değeri ile) bu problem için vardır. Şekil 2: PSO üzerinden bir yüzey rekonstrüksiyon örneği, (Sol taraf):generasyonlar boyunca en iyi hata (noktalı çizgi) ve ortalama hataları (kalın çizgi); (Sağ taraf): parametrik domain üzerinde u ve v ler için optimum parametre değerleri Sayfa 6

7 PSO algoritması için input parametre değerleri: Popülasyon boyutu : Her particle ın u ve v gibi iki vektörle gösterildiği 200 birey ya da particle, u ve v lerin her biri [0,1] aralığında rastgele, uniform değerlerle, artan sırada 16 adet bileşenle başlatılmıştır, durgunluk katsayısı w = 1. Sonlandırma kriteri, 30 iterasyondan sonra çözüm ilerletilmeyecektir. Data noktaları üzerinden Rekonstrüksiyon yapılmış yüzeye ait bir örnek Şekil 1 de gösterilmiştir. Bu örnek, En iyi çözüme karşılık gelmemektedir. Aslında bu ortalama bir çözümdür. 3 ve 4 numaralı denklemlerden elde edilmiştir. Burada generasyon 432 de α = β = 0.5 olmak üzere şu sonuçlar elde edilmiştir. En iyi hata : Ortalama hata : Hesaplama zamanı : sn. Bu yazıdaki bütün hesaplamalar 2 GB RAM ile 2.4 GHz. Intel Core 2 Duo sistem üzerinde çalıştırılmıştır. Kaynak kod MATLAB 7.0 üzerinde yazılmıştır. Şekil 2 de sol taraf, iterasyonlara bağlı olarak noktalı çizgi ile en iyi mesafe hatasının, kalın çizgi ise ortalama hatanın evrimini gösterir. u ve v için optimum parametre değerleri de Şekil 2 nin sağ tarafında gösterilmiştir. Burada fitting process, data noktalarına atanmış parametre değerlerinin dağılımını tutar. Burada elde edilen parametre değerlerinin (başlangıçta birim kareye düzenli olarak dağıtılmış) eğiliminden, birim kare parametre domaininin köşeleri üzerine yoğunlaşmaktan böylece giriş bilgisini güzelleştirmekten bahsetmek zahmete değer olacaktır. Bu nedenle, hem (u,v) çifti köşeler üzerine düzenli dağıtılır hem de u ve v sırasıyla [0, 0.2] ve [0, 0.8] aralığında yer alır. Bu da şu demek olur ki aslında sonuçlar geliştirilmiştir. Bu metotta kritik konu, sırasıyla lokal ya da global etkenleri de hesaba katarak α ve β katsayılarını seçmektir. Yaklaşımımızdaki rollerini tanımlamak ve seçimlerinin metodun performansına nasıl etki ettiğini görmek için, α ve β değerlerini 0.1 artış değeri ile 0.1 den 0.9 aralığında değişmek üzere, ancak aralarında da α + β = 1 şeklinde bir bağıntı olacak şekilde belirledik. Bu seçim bize α ve β çiftini olasılıksal olarak ilişkilendirme imkanı tanıdı. Böylece etkileşimi daha iyi anlaşıldı ve analiz edildi. Unutulmamalıdır ki, α veya β parametreleri için 0 ve 1 limit değerleri, otomatik olarak diğerini devre dışı bırakır ve çalışmamızda bu göz önünde tutulmadı. Ayrıca, bazı deneylerde, iki extrem durum, social-only model ve cognitive-only model, bunların her ikisi de uygulanmış ve ikisinin de PSO nun başarısı için temel olduğu tarafından bulunmuştur. Diğer taraftan, metodumuzda rastgele doğallıktan kurtulmak için bu parametrelerin her seçiminde 25 execution yürüttük. En kötü 15 sonuç, lokal minimaya ulaşmak üzere suni çözümlerin görünümünü ortadan kaldırmak amacıyla yok edildi. Geri kalan 10 exec. Tablo 2 ve 3 te görülmektedir Sayfa 7

8 Sayfa 8

9 Bu tabloların sütunları sırası ile en iyi ve ortalama hatalarını, iterasyon sayısını, saniye cinsinden hesaplama süresini göstermektedir. Unutmayalım ki, en iyi ve ortalama hatalar, belli belirsiz faklı olsa da birbirine çok yakın değerlere sahiptir. Bir çok durumda aralarındaki fark 10-5 seviyelerindedir. Aynı zamanda, iterasyon sayısı ve hesaplama zamanı, farklı executionlar arasında bir çok değişiklik göstermiştir. Bununla beraber, fazla sayıda iterasyon genellikle daha az hata anlamına gelmez. 5. Sonuçlar ve Gelecekteki Çalışmalar Bu makalede data noktalarının 3D dizisinden Bezier yüzey rekonstrüksiyon işlemini ele aldık. Esas sorun, data noktalarının düzgün parametreleştirilmesini elde etmektir. Bu amaç doğrultusunda da, makalede kısaca anlatılan PSO algoritmasının kullanımını öneriyoruz. Metodun performansı birkaç basit örnek yardımıyla tartışılmıştır. Genelde PSO nun performansı yazıda verilen örnek için tatmin edicidir. Hatalar, yüksek değerler elde edilmesine rağmen (muhtemelen daha düşük) uygulamamızda (0.9, 2.6) aralıklarla düşer. Bu şu anlama gelmektedir. Şu anki metot, PSO output domaini boyunca dağınık sonuçlar vermesine rağmen [7] de verilen GA yaklaşımı ile mukayese edilebilir. Bir diğer gözle görülür özellik şudur ki; ortalama ve en iyi hatalar tüm durumlar birbirine çok yakındır. Farklılıkların genelde daha çok olduğu GA yaklaşımının aksine, iterasyon sayısı ile sonuçların kalitesi arasında da bir ilişki yoktur. Bu şu anlama gelebilir; Problemimizin asıl yerini bulma yolumuz henüz optimal değildir. Dolayısıyla geliştirmek için daha çok neden vardır. Bu PSO parametrelerini akılcı seçimi ile başarılabilir. İlk adım olarak PSO nun (α, β) parametrelerinin seçimi hakkında deneysel bir analiz uyguladık (başlangıç popülasyonu ve her bir particle için komşuların sayısı gibi diğer parametrelerle ilgilenilmesine rağmen). Sonuçlar gösteriyor ki; konveks (yakınsak) kombinasyon şeklinde (α, β) değerlerini değiştirdiğimiz zaman ( β α durumunun daha iyi sonuçlar üretecek olmasına rağmen) çok önemli değişiklikler olmadı. Ancak daha fazla, daha kapsamlı bir araştırma, parametre değerlerinin rolünü belirlemek için gereklidir. Gelecekteki eserimiz; PSO parametrelerinin, sonuçların niteliği üzerindeki etkisi hakkında daha geniş bir analiz olacaktır. Orijinal PSO şeması üzerinde bazı değişiklikler daha iyi sonuçlara yol açabilir. Daha ilerideki eserimiz düğüm vektörleri ile ilgilenmek için hesaplamalı processlerdeki bazı değişiklikleri ortaya koyarak B-Spline ya da NURBS gibi polinomal modelleri ele almak olacaktır. Ayrıca araştırma sürecinin nasıl global olarak geliştirileceği konusundaki bazı fikirler de gelecekteki eserimizin bir parçası olacaktır Sayfa 9