Cuma, Eylül 26, 2008

Tecelli-i Esma

ALLAH(cc)!

Sensin ALLAH(cc) sanadır kulluğum
Sendedir çarem seninledir varlığım
Seni arar ruhum seni anar kalbim
Başkasına değil sana muhtacım
Başkasını değil seni çağırırım
Başkası yaratılmıştır sen yaradansın
Başkası devamsızdır sen daimsin ve daim eyleyensin
Başkaları muhtaçtır sen ihtiyaçsızsın ihtiyaçları görensin
Başka ilah yok sen ALLAH(cc)'sın
Sen ki eşi benzeri olmayansın
Sen ki bütün eksiksiz sıfatların sahibisin
Cemaline çevir yüzümü başkasına rağbet ettirme kalbimi

...

Ya Melik!

Kimsenin kimseye fayda vermediği gün hüküm senin
Gökler yarılırken sahibim sensin
Yıldızlar dağılırken sahibim sensin
Varlığım bana ait değil varım yoğum senin
Elimde olanlar benim değil sahiplendiklerim de senin
Yokluğa düşürme beni an senin
Darlık verme kalbime mekan senin
...

Ya Mümin!

Sen hidayetini göndermezsen kalpler nasıl mutmain olur
Sen kalplere itminan vermezsen kim inandığından emin olur
Sen inandırmazsan kim mümin kalır
Hevamın tuzağına düşürme beni nefsimin diline bırakma beni
Öyle mümin eyle ki beni pişmanlıklarım beni sana döndürsün
...

Ya Cebbar!

Sen ki mağrurları gururlarına esir eylersin
Sen ki kibirlenenlerin boynuna kibirlerini tasma eylersin
Sen ki zor kullanıp zulmedenleri vicdanlarının pençesine hapsedersin
Bir sineği vasıta eyle de Nemrutlardan kurtar beni
Bir asayı vesile eyle de firavunlara galip getir beni
Ebabilleri gönderde Ebrehelerin fillerinden koru kalbimi
Nefsimin beni isyana zorlamasına izin verme
Aklımın beni saptırmasına geçit verme
Hep itaat üzre sabit kıl beni
...

Ya Musavvir!

Yokluğa varlık suretini giydiren sensin
Hiçliğe varlık boyasını çalan sen
Güzeli güzel kılan ancak senin tasvirindir
Sen ki yüzümü benim için biricik sevdiklerim için tanıdık eylersin
Katında makbul olan güzellikle tasvir eyle suretimi
...

Ya Alim!

Senin için bilmenin başı yoktur
Ben ancak sonradan bilirim
Senin bilmediğin bir an yoktur
Ben ancak bazen bilirim
Sen açık edip söylediğimi de bilirsin
Sen susup kendime sakladığımı da bilirsin
Unutup kendimden sakladığımı da bilirsin
Kendi kuyularıma aklımın iplerini salarım
Kendime aklım ermez sen beni benden çok bilensin
Kalbimin kuytularında el yordamıyla dolaşırım
Kendime kendim yetmez sen bana benden çok sırdaşsın
Bildiğimi bilenlerden eyle beni bilmediğimi bilenlerden eyle beni
Sana malum olan ayıp ve kusurlarımla utandırma beni
...

Ya Hafiz!

Hıfzının hazinesinde alem bir noktadan ibarettir
Hıfzının ayinesinde ay ve güneş sönük bir parıltıdan ibarettir
Bahar kışa döner bir gün gün akşama çıkar
Sabahlar sendendir koru beni sabaha eriştir
Yıldızlar söner bir gün dağlar yerinden oynar
Gökler senindir koru beni kapına yetiştir
Göklerde ölür bir gün yer yerinden oynar
Her yer senindir koru beni menzile eriştir
Kuşlar dağılır bir gün denizler kaynar ufuklar senindir
Koru beni ötelere eriştir
İsmim unutulur bir gün sesim boşlukta çınlar
Yakınlıklar sendendir
Koru beni yakınlığına eriştir
Defterim açılır bir gün günahlarım çok tutar
Takdir senindir koru beni affını yetiştir
Sözüm biter bir gün sessizlik uzar kelam senindir
Koru beni müjdeni yetiştir
...
Amin

99 Esma / Senai Demirci


Kadir gecenizi tebrik eder dua eder dualarınızı bekleriz...

Cuma, Eylül 19, 2008

CvPreProcessor 0.7

Bu aralar uzun laf edecek durumda değilim Daha önce bahsettiğim görüntü Önişlemcisini ( cvPreProcessor ) biraz toparladım yayınlayıp bir fikir soralım hatalar bildirilsin onları düzeltelim dedim. Bilmem anlatabildim mi meramımı sayın okuyucu

İndirmek için buyrunuz : cvPreProcessor 0.7

Çarşamba, Eylül 17, 2008

Yapay Zeka Temellerin duruşması 5

Turing Testini geçemezsin demedim Adam Olamazsın dedim

Adamın birinin çok haylaz bir oğlu varmış adamcağız sürekli senden adam olmaz der dururmuş. Haylaz çocuk evden kaçmış ve yıllar sonra bir şekilde o yöreye vali olmuş. Makamına oturunca babasının adını verip alın getirin diye emir vermiş. adamı yaka paça tutup getirmişler. vali "baba bana adam olmaz diyordun bak ben vali oldum" demiş ihtiyar adam acı acı gülümsemiş şöyle demiş "be oğul ben sana vali olamazsın demedim adam olamazsın dedim"

Bu Kıssa herhalde fikrimiz anlatmamıza yeterli gelir. İnasanoğlunun zekasına ulaşacak bir sistemin inşası hesap üzere kurulamaz. Bu konuda çok itiraz var. Bizim de bahsettiğimiz Çin odası deneyi mesela. bilgisayarların Algoritmik olarak çalışması oysa algorithmik çözümü olmayan problemlerin varlığı insanın bunları çözebliyor olması. Sonra meşhur durma problemi. Gödelin Eksiklik teoremi gibi. Bunca itiraza rağman YZ ciler bunların teknik problemler olduğu bir şekilde ! aşılacağı konusunda sonderece iyimserler. Hatta iddiaya girenler bile var. Amma bütün bunların ötesinde bizce insanı insan yapan tek başına zeka da değildir.

Evet medarı iftiharımız Bütün dünyanın takdir ettiği bir Zekadan Oktay Sinanoğlundan bir alıntıyla devam edelim
Batı zannetmiştir ki, akıl her şeyden üstündür. Oysa bu düşünce eksiktir. Neden çünkü Akıl bir uzuvdur. Nasıl insanın bacağı yürümeye yararsa, akıl , beyin de biyolojik bilgisayar gibi bir şeyleri hesap etmeye yarar. Mesela Kastamonu'ya gitmeye karar verseniz, oraya giderken en kestirme kaç kilometre, nekadar engebelidir, haritalara bakarak öğrenilebili, bunu bilgisayarda yapar gibi saptayabilirsiniz. Bu işin bilgisayarıdır. Ama bilgisayar Kastamonu'ya gitmek için karar verdirmez. Nereye gitmek istediğini sana söyleyen içindeki sestir. Yani, gönüldür. İşin manevi tarafı birtakım önemli kararları aldırır. Ondan sonra işin ayrıntısını, nasılını akıl bulur.
...
Aklın gönlün emrinde olması lazım. Yoksa akıl muzırlıkla uğraşır. Nitekim her yerde görüyoruz. Gönül terbiyesinden, hatta gönül kavramından bile mahrum olan batı'da ki bilim adamlarından bazıları ne yapmışlardır ? Bilimle atom bombası yapmışlardır, çeşitli bombalar yapmışlardır. Zehirli gazlar, biyolojik silahlar yapmışlardır. Bunlarla milyonlarca insanın perişan edilmesine yol açmışlardır.
Gönül terbiyesi olan insanlar bbunu yapmaz. Bilimi insanlığın hayrına kullanır. Onun için gönül olmadan bilim ve akıldan zarar gelebilir.
Bilim bir çeşit alet gibidir, iyiyede kötüyede kullanılabilir. Bir bıçakla ekmek dilimleyip meyve soyabileceğiniz gibi insan da öldürebilirsiniz. Allah insanoğlunu halifeyi ruy-i zemin olarak yaratmıştır. İstidatlarına da hemen hemen had konulmadığı düşünülürse. İnsanoğlu Yapay Zeka konusunda bazı aşamalar kaydedebilmesi pekala mümkün. İşte bu aşamalara katkıda bulunurken dikkat edelim Bindiğimiz dalı kesiyor olmayalım. Bütün insanlığa zarar verecek bir çalışma içinde bulunmayalım. İlmimiz insanlığa faydalı olsun, Zarar vermesin hatta faydasızda olmasın.
Allahım! Faydasız ilimden,
ürpermeyen gönülden,
doymak bilmeyen nefisten ve
kabul olunmayan duadan sana sığınırım.

Not : Fazlasıyla acele bir bitiş oldu ama kusura bakmayın, söylenecek söz çok da bizde istidat yok

Salı, Eylül 09, 2008

OpenMP ve OpenCv ile Kenar Bulma

Öncelikle uygulamamızdan bahsetmek istiyorum. Basit bir kenar bulma işlemi yapacağız. Hem OpenMP'li Hemde normal yapacağız ki performans farkını görelim
  • İlk etapta resmi siyah beyaza çeviriyoruz. Bu işlemi programda görüntüyü yüklerken "CV_LOAD_IMAGE_GRAYSCALE" diyerek hallediyoruz. (bakınız işin kolayına kaçma metodları s-??? )
  • Kenar bulma için kullanacağımız metod ise gayet basit. Bir pikselin solundaki veya üstündeki piksel ile olan renk farkı belli bir eşik değerini aşıyorsa kenardır, beyaz (255) olarak işaretlenir. Aşmıyorsa kenar değildir, Siyah (0 ) değeri atanır.yani
X kenarı bulunacak görüntü dosyası olsun K ise Kenarları gösterdiğimiz görüntü dosyası olsun

Eğer |X(i,j)-X(i-1,j)| > eşik veya |X(i,j)-X(i,j-1)| > eşik
ise K(i,j)=255;
değil ise K(i,j)=0;
  • işlemin mantığından da anlayabileceğiniz gibi her piksel için yapılacak işlem bağımsız. ve paralel olarak çalıştırmak için gayet uygun bir metod.
  • Kenar bulma fonksiyonumuzda bir döngü ( for ) içinde pikselin kenar olup olmadığını bulan kodu yazıyoruz.
  • Şimdi geldik işin en zor kısmı olan paralel versiyonunu yazmaya. Kenar bulma fonksiyonumuzu kopyele yapıştır deyip 2. bir nüshasını alıyoruz ! Adını OpenMP li olarak değiştiriyoruz. for döngümüzden önceki satıra şu çoook zor satırı yazıyoruz.
#pragma omp parallel for
yani diyoruz ki bundan sonraki for döngüsünü paralel çalıştırılsın.
Sonarasında çalıştırıp sonuçları gözlüyoruz.


Benim evdeki AMD64 çift çekirdekli işlemcideki performansı Resimde de görebilirsiniz. % 44 lük bir hızlanma hem de tek satırlık eklemeyle hiç fena değil öyle değilmi ? Farkın nereden geldiğini CPU Usage grafiğinde rahatlıkla görebilirsiniz. OpenMP siz kenar bulma fonksiyonu çalışırken işlemcinin sadece biri çalışıyor. OpenMP li versiyonunda işlemci kullanımı % 100 lere ulaşıyor.

Sonuç : OpenMP ile işlemcinizin atıl duran çekirdeklerinide çalıştırıp programlarınızı hızlandırabilirsiniz. Hatta hiç başka bir detay öğrenmeseniz bile bizim burada bahsettiğimiz paralel çalıştırılabilecek döngüler çok işinize yarıyacaktır eminim. Helede İşlemcilerin çekirdek sayılarının arttığını düşürsek - 4 çekirdekli çıktı bile-

Örneği İndirmek için : OpenCV & OpenMP

4 çekirdekli işlemcisi olup da deneyen olursa performans artışını bize bildirsin. seviniriz.

Pazartesi, Eylül 08, 2008

OpenMP

ReklamlarStart();
DerinDeliMavi'den bir ilk daha , Sizler için hiçbir fedakarlıktan kaçmayan sitemiz size yine yeni imkanlar sunuyor. Hafta sonu yemeyip içmeyip - oruç oruç - sizlere neler hazırladık neler...
ReklamlarEnd();

Benim gibi çiftçekirdekli bir işlemciniz varsa yazdığınız programların CPU kullanımına baktığınızda Yukardaki grafikteki I numaralı bölümdeki gibi bir manzarayla karşılaşırsanız. Yani uzunlafın kısası Bilgisayarınız çift çekirdekli ama Yazıl sadece birini kullanıyor. Paralel programlama işi de burada ortaya çıkıyor. Bütün her iş için olmasada paralel olarak çalıştırarak programın hızlanması imkanına sahibiz. Grafiğin II kısmında görebileceğiniz gibi. Yapılacak iş teorik olarak şöyle ; Aynı görevi, küçük bir birinden bağımsız çalışmasında mahzuru olmayacak şekilde bölüp çoklu işlemcilerde eş zamanlı olarak çalıştırılmasıdır.

İşte OpenMP bu işi kolaylaştırmak için yapılmış API dır. Pek çok donanım ve işletim siteminde çalışan ve basit derleyici ön işlem direktifleriyle kullanacağınız bir sistem.


OpenMP nin çalışma sistemi program paralel işletilmesi gereken kısımlarda dallanır paralel çalışıp işlem bitince tekrar birleşmesi şeklinde olur. ( Fork - Join Model )

Bu kadar teorik bilgi yeter daha fazlasını merak eden google'dan soruştursun. Yukarda bahsettiğimiz üzere OpenMP derleyici önişlem direktifleri kullanıyor yani öncelikle OpenMP desteği sunan bir derliyiciye ihtiyacınız olacak.
OpenMP desteği sunan derleyiciler
http://openmp.org/wp/openmp-compilers/

Linkde gördüğünüz gibi Eğer Linux kullanıcısıysanız ve derleyiciniz gcc 4.2 ve üstünde probleminiz yok. Microsoft Visual kullanıyorsanız OpenMP 2.0 destekleniyor ve ücretsiz versiyonlarında olup olmadığından da emin değilim. Benim gibi CodeBlocks ile Mingw32 kullanıyorsanız "TDM's Experimental GCC/MinGW32 Builds" kurmanız lazım.

Yapılacak işlemler
  1. http://www.tdragon.net/recentgcc/ adresinden Bundled Installer ı indirin
  2. Daha önceden Mingw yi kurğunuz yerin üzerine kurun.
  3. Hemen güzel bir OpenMP makalesi okuyun.
  4. CodeBlocks ' çalıştırıp yeni bir console projesi oluşturun
  5. Project->Build Options kısmından Linker settings tabında Link libraries kısmına gomp ve pthread girin
  6. Project->Build Options->Compiler Settings tabının other options kısmına -fopenmp girin

İşlem tamam. Artık bütün bunlarun üstüne şöyle basitçe hemde OpeCv li bir program yazmaya başlayabiliriz. Malum Performans en çok Görüntü işlemede lazım oluyor...

Devam edecek...

Cumartesi, Eylül 06, 2008

İnternette dağıtılan İlmin zekatı

Eskiden herhangi bir konuda örnek program bile bulabilmek zor işti. Bilgisayar dergileri ya programlamayla ilgili ekler verirlerdi yada içlerinde 3 - 5 yazı olurdu. Ve o zor imkanlarla elimize geçen kaynakları tabiri caiz ise son damlasına kadar kullanırdık. Günümüzde özelliklede internet sayesinde bilgiye ulaşmanın çok kolaylaşmasına rağmen insanlar bu imkanlardan yeterince faydalanmıyorlar. Bu konuda eski bir arkadaşa sızlandığımda. Arkadaşım "Bir şeyler kolayca elde edilince kıymeti bilinmiyor" dedi ve galiba haklıydıda...

Ben şimdi size yine İngilizcesi ve de İyi bir internet bağlantısı olan için gayet kolayca ulaşabileceğiniz bir kaynakdan bahsedeceğim. videolectures.net "exchange ideas / share knowledge" sloganıyla çalışan bir site. Envai çeşit konuda video şeklinde dersleri slayt gösteriside yanında olmak üzere seyredebiliyorsunuz. Mesela Computer Vision konusunda 41 tane ders görünüyor. Öğrenmek isteyen için büyük fırsat.

Hemen her filim için türkçe alt yazı hazırlayan internette kolaylıkla bulabilmeniz için siteler hazırlayan fedakar insanlarımızın bu video derslerinden haberleri yok herhalde. Yoksa filimlerden katbe kat memleketimiz için daha faydalı olan dersler içinde alt yazı hazırlamazlar mı ...

Üniversitedeki Fedakar hocalarımızın böyle bir imkandan haberleri yok olmalı. Yoksa hocalarımız ilimlerinin zekatını seve seve vermezlermiydi. Benzeri bir siteyi Türkiyede türkçe olarak oluşturmazlarmıydı...

İşte Haberdar oldunuz ey Fedakar arkadaşlar ! çalışmalarınızı ve ve Ey Fedakar Hocalarımız İlminizin zekatını bekliyoruz. Malum Zekat fakirin hakkıdır, zenginin lutfu değil !