Sayfalar

Salı, Haziran 24, 2008

Image Database Links



Bir vesile ile bunları yayınlama zorunda hissettim kendimi...
Pek düzenli ve açıklamalı değil, google ile sizin de ulaşabileceğiniz linkler ama olsun ben hepsini bir arada veriyorum sizde ekleme yapabilirsiniz. hatta vaktiniz varsa daha düzgün bir yerde daha düzenli ve açıklamalı olarak yayınlayada bilirsiniz. Üniversitelerimizinde daha iyilerini yayınlamaları dileğiyle...
Not : Bazı veritabanları için yazışma yapmanız gerekiyor.

Çarşamba, Haziran 18, 2008

Yazılım İhracatı

Her ailenin bir bütçesi vardır. Bu bütçede gelirler ve giderler vardır. Bir aile düşünün ki giderleri gelirlerinden çok. Bu aile ne vakte kadar sıkıntıya düşmeden geçinebilir? Dedelerden kalan mirası varsa onları satar, Tefecilerden borç bulur. Bu ayki açığı kapatır ama gelecek ayların açığı büyür. Eninde sonunda bir noktadan sonra tıkanır. Sonrasını 3. sayfa haberleri olarak okuruz.
.... Borçları yüzünden cinnet geçiren baba .....
sonrasını aktarmaya içim el vermiyor.

Bütün bunları niçin anlattım. Ülkeler de bir Aile gibidir gelirleri ve giderleri vardır. Ülke içindeki alışveriş aile için yardımlaşma nevindendir. Ülkenin asıl gelir gideri İthalat - Ülkeden çıkan para - ihracat - Ülkeye giren paradır - ve malesef Ülkemizde giderleri gelirlerinden çok olan bir ailedir. Sonucu tahmin etmeniz güçdeğildir sanırım ...

Peki bu durum da bizim elimizden ne gelir.
Öncelikle aldığımız her ithal mal gider hanemizi büyütüyor. Gerçekten ihtiyacımız olmadığı halde aldığımız yeni model bilimum elektronik alet edavatları düşünün. Bunları bir nebze azaltmamız bile faydalı olcaktır. Ailenin şımarık ve müsrif çocuğu olmayalım.

Şimdi gelelim asıl konumuza Programcılar ülke gelirini nasıl artırabilir. Bir örnek verelim.

Bilemiyorum aslinda bu durumu nasil ifade edeyim....
7 aydir Hindistanda Tata Consultancy Services de staj yapmaktayim.

Firma hindistan devi TATA firmasinin yazilim kisimi, 52.000 calisani ile dunyanin 33 ulkesine hizmet veriyor ve milyar dolarlik bir yazilim firmasi, almis oldugu projeler milyon dolarlar ile ifade ediliyor.1965 den beri IT sektorunde danismanlik hizmeti veriyorlar. Musterileri dunya devleri. 7 ay boyunca 3 ayri proje de neredeyse es zamanli olarak bulundum ve ben size bir projenin burda nasil gelistirildigini anlatayim.

Proje adi XXX, musteri Dunyanin bir cok yerinde calisan buyuk bir banka ve yapilacak olan is, bir departmanlarinin eski otomasyonunu ve databaselerini ihtiyaclarina gore degistirmek.proje takimi 12 kisi, 1 kisi pl, 3 module leader ve geriye kalanlar veritabaninda ve programin kullanici arayuzunde calisan gelistiriciler.

1 kisi gurubu temsilen onsite (Amerika) tarafa gider ve birkac ay boyunca musteri isteklerini anlamaya calisir.

Geri geldiginde hazirlamis oldugu analiz dokumanlarini takimi ile paylasir. Musteri taleblerini bildirir. Musteri ihtiyaclari analizi dokumani hazirlanir.Bu dokumandan yola cikarak yazilim ihtiyaclari dokumani ve bundan yola cikarak da Ust duzey ve alt duzey dizayn dokumanlari
hazirlanir.

Dizayn dokumani proje ile alakasi olsun olmasin herkesin bakinca anlayabilecegi sekilde, classlarin , programi kullanan kullanici ve program nesnelerinin birbiri ile olan iliskilerini gosteren ayrintili diagramlar icerir. ayni zamanda bu dokuman programin akisi ve algoritmayi goruntuler.Alt duzey dizayn dokumani kodun bir kisminida icerir.

Kisacasi bu uc dokumani okudugunuzda program hakkinda ince detaylara kadar her seyi gorursunuz ve alt duzel dizayn dokumani yardimiyla da kodunuzu yazarsiniz.

Bu dokumanlar firmada bu dokumani hazirlayabilecek tecrubeli kisilerce hazirlanir ve gelistirici takima verilir.

Kod yazilir, testten sorumlu kisiler testleri uygularlar ve bulunan buglar rapor edilip kod tekrardan duzenlenir. Tekrar testler ve musteriye gonderilir.Musteri testlerini uygular ve gerek gorulurse duzeltmeler yapilir.

Yukarida bahsetmedigim, yillar boyunca firma tarafinda gelistirilip kullanilan yontemleride var. Kalite testleri vs.
Buraya kadar bakilinca her sey harika.

Gelelim firma calisanlarina.
Hindistan deyince aklimiza yazilim ile ilgili ne geliyor, gozu kapali Java kodu yazan adamlar mi? Zor bulursunuz. :) Bu takima katildigimda takimda Delphi ile ilgili en tecrubeli 2. kisi bendim.bir egitimenin gelip ozel ders vermesini beklerken ben onlara 2 ay boyunca Delphi ye giris ve database programlama dersi verdim, bu yazdiklarima bakip benim Delphi de uzman oldugumu zannetmeyin, lise son sinif ve universite donemim boyunca 3 senelik bir tecrubem var.

Iclerinde iyi olanlarida var tabii ki ama inanin bir cogu universitede temel egitimlerini almis sadece bir konuda kendini yetistirmis, farkli bir teknoloji isin icine girince yardim bekleyen, belki kaba olucak ama universitilerde sadece sinavlari gecmek icin calisan sonunda da aldiklari limitli bilgi ile mezun olmus arkadaslarim gibi.

Benim isyanim da burda basliyor, hal bu iken nasil oluyorda bu firma milyon dolarlik bu isi alabiliyor
!!! Neden bizde de dunya devleri ile calisan firmalar yok!!! Ülke nufusunun yarisi genc diyoruz. Neden degerlendiremiyoruz.

Ben bu firmada calistigim sure boyunca benim cebime girecek uc bes kurusun yaninda bu firma yine dunya devi olma yolunda ilerleyisini surdurucek, hindistan kazanicak.

Bu gun Internette Turkiye'deki yazilim firmalarini aradim, ve iclerinden sadece bir kaci yurt disi ile calisiyor. Firma calisan sayisida 100 gecmiyor. Verdikleri hizmet yeni yazilim gelistirmek.

Dunaya genelindeki yazilim projelerinin %80 onarim iken neden biz de onarim projelerinde yer almiyoruz.
12 kisilik takım milyon dolarlık proje alıyor, bizde bunu yapacak 12 kişi mi yok!!!
...
http://www.fazlamesai.net/?a=article&cmode=nested&sid=3626

"Ya bizler kendi çapımızda ufak tefek insanlarız, nasıl yapabiliriz ?" demeyin sizin de bu işlere başlayabileceğiniz yerler var. mesela

GetAFreelancer
Rent a Coder

nasıl olacak bu işler diyorsanız konuyla ilgili yazılarda hazırlanmış bakınız 1 2 3 4

3-5 arkadaş - en az birisinin İyi derece ingilizcesi olması şart - başlayın. Hiç bir şey olmasa tecrübeniz artar. Evin müsrif çocuğu değil, ek gelir getiren hayrılı evladı olun. Boş durmayın boş duranı Allah sevmez.

Pazartesi, Haziran 16, 2008

İlgi çok ! Tepki yok :(


Yukardaki grafiktende görebileceğiniz gibi dünyanın dört bir yanından ziyaretçilerimiz var. Pek tabii ki yoğunluk Türkiyede. İşin tuhafı yurt dışından ziyaret eden azınlıktan pek çok kişi sorularıyla yorumlarıyla bana ulaşıyorlar.
why you don't write your blog in english?"
diyerek yazıların İngilizce olmasını isteyenlerden
"Would you please explain a little bit ?"
açıklama isteyenlere
"great work; please indent your code properly as it makes it very hard to read otherwise;"
diye şikayet edenlere kadar pek çok tepkiyle karşılaşıyorum.

Türkiyeden iletişime geçenlerde ise durum biraz farklı, genellikle kendi ödev veya bitirme projeleri için yardım ! talep ediyorlar.
YSA kullanarak ... yapan bir kod var mı elinizde ?.. Ya da bu tarz bir kod yazabilir misiniz?
...
Tez için senin kodları kullandım. Bir arkadaşım da yardımcı oldu bu anlamda ama projenin son kısmı olan aşağıda izah ettiğim kısmı yarın halletmem gerekiyor. Yardımcı olabilirsen çok minnettar olacam.
...
benim bitirme tezi olarak pazartesiye bir YSA uygulaması gelistirmem gerek...

gibi mesajlara cevap yazmak zorunda kalıyorum. İşin kötü tarafı herşey bittikten sonra nezaketen arayıp sonuçlar konusunda haberdar bile etmiyorlar. Programlarımı indiren olmasa ilgi yok diyeceğim ama öyle de değil, Yani
İlgi çok ! Tepki yok :(

Haksızlık etmeyelim Türkiyden de gerçekten bu işlere hevesli kardeşler, arkadaşlar var. Artık okullarda kapanmak üzere olduğuna göre bu işlerle gerçekten ilgilenen insanlar ile muhatap olacağımı düşünüyorum. ( İnşallah ) Bir kaç kişiyle Ortaklaşa proje geliştirme gibi niyetlerimiz de var, ...
Kısmet artık

Cumartesi, Haziran 14, 2008

Göz Bulma II

Bir önceki yazıda programı ve kodu vermiştik, sıra geldi açıklamaya.

İlk iş Görüntü dosyalarını açıp içlerindeki yüzleri tespit edip 64x64 ebatına getirip kaydetmektir. Bu iş için Yüz tanıma programımızı da kullanabilirsiniz. bu şekilde bir yüz veritabanına sahip oluruz.

Bu yüzlerin dosya isimleri ve göz koordinatlarını bir text dosyaya attım. Göz koordinatlarını inceleyerek gözlerin muhtemelen bulunduğu bir alan belirledim. bizim programımızda bu alan her iki göz için ayrı ayrı olmak üzere 16x16 lık bir kare . Yüz görüntüsüne kenar bulma işlemi uyguladım ( cvCanny ) Gözün bulunduğu alanlarında yatay ve dikey histogram aldım. Bizim uygulamamızda 16 elemanlı bir dizi oluşur

0.063 0.063 0.125 0.188 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.188 0.188

bunu YSA için giriş değeri olarak kullandım
Çıkış değeri ise Gözün o alan için konumunu aldım. Yani gözün bulunduğu konum 1 diğerleri 0 olacak şekilde 16 elemanlı bir dizi mesela konum 9 için
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000


Bu işlemleri elimizdeki yüz -veri tabınına uygulayıp Yapay Sinir Ağları için eğitim verisi oluşturacak basit bir program yazdım. sonuçta
SagX.dat // Sağ Göz X Konumu için Eğitim verisi
SagY.dat // Sağ Göz Y Konumu için Eğitim verisi
SolX.dat // Sol Göz X Konumu için Eğitim verisi
SolY.dat // Sol Göz X Konumu için Eğitim verisi
dosyalarını oluşturdum.
YSA 'nın eğitim işlerini FannTool ile yaptım. Eeee biz bu günler için yaptık bu programı.
Eğitim sonunda Eğitilmiş YSA lar
SagX.net // Sağ Göz X Konumu için Eğitilmiş YSA
SagY.net // Sağ Göz Y Konumu için Eğitilmiş YSA
SolX.net // Sol Göz X Konumu için Eğitilmiş YSA
SolY.net // Sol Göz Y Konumu için Eğitilmiş YSA
adlarıyla kaydedildi.

Programımızda eğitilmiş YSA ları çağırıp istediği verileri girip göz konumlarını almak
için kolaylık olsun diye bir de Sınıf oluşturdum.
EyeFinder
Kullanımı gayet basit
EyeFinder *Eyes;
Eyes=new EyeFinder();
diyerek nesnemizi tanımlıyoruz
Eyes->SetImage(img);
diyerek işlem yapacağımız görüntüyü bildiriyoruz
Eyes->SetFaceRect(leftup.x,leftup.y,rightdown.x,rightdown.y);
diyerek yüzün konumunu bildiriyoruz - OpenCv haarcascade ile etspit ettiğimiz -
Eyes->Find();
diyerek YSAları çağırıp Göz konumlarını bulduruyoruz.
artık Göz konumlarına
Eyes->rightX; // Sağ Göz X Konumu
Eyes->rightY; // Sağ Göz Y Konumu
Eyes->leftX; // Sol Göz X Konumu
Eyes->leftY; // Sol Göz Y Konumu
şeklinde ulaşabiliriz...

Göz bulma programı bu haliyle bitmiş bir proje değil, başlanmış bir projedir performansını düzenlemek için pek çok şey yapılması gerekecektir. mesela YSA larının eğitimi için sadece 79 veri kullanılmıştır. Bu kadar az veriyle gösterdiği performansada şaşormadım desem yalan olur.
Bence yapılması gerekenlerlerden bazıları
  • Veri sayısı artırılmalı
  • Kenar bulmanın değişik metodları denenip performansları karşılaştırlılmalı
  • Gözlerin muhtemelen bulunduğu bir alan konum ve ebatlarında değişik alternatifler uygulanıp performansları karşılaştırlılmalı
Tahmin edebileceğiniz üzere benim bu konuda çalışmaya devam etmeye zamanım yok. Uğraşmak isteyen arkadaşlara yardıma da hazırım.
Okuyucu sana söylüyorum Volkan sen işit !

Pazartesi, Haziran 09, 2008

Göz Bulma I

Daha öncede belirttiğimiz gibi Yüzün konumlandırılması için örnek programımızda bir şey yapmadığımızı belirtmiş ve yüzün öğelerinin konumlarınıda tespit edip, gereken değişimleri yaparak düzeltme yapılabileceğinden bahsetmiştik.
Hiç şüphesiz bu öğelerden en önemlisi gözlerdir. Gözlerin konumlarını bulabilir ve buna göre bir düzeltme işlemi yaparsak, elde edeceğimiz yüzler nispeten daha standart olacaktır.

Göz koordinatlarını bulmak için ufak tefek bir program hazırladım aslında New Face programını adapte ettim. Göz konumlarının tespiti için YSA larını kullandım.
ve Her zaman olduğu gibi
IDE olarak : CodeBlocks
GUI olarak : FLTK
YSA için : FANN
Görüntü işleme için : OpenCv

Kullanıldı.
İndirmek için buradan buyrunuz
Download
Eye Finder by using Neural Networks for Linux
Eye Finder by using Neural Networks for Windows
Pekiiiiii iyi hoş da bütün bunları nasıl yaptık. İnşallah bir sonraki yazıda anlatmaya çalışalım.

Yüz Tanıma 3

Bir önceki yazımızda basit bir örnek program vermiştik, Daha gelişkin bir Yüz tanıma sistemi oluşturmak istersek neler yapmamız lazım

Yüz Tespiti :
Birinci aşama Yüzün Görüntü içindeki yerini tespit etmek lazım, Bu iş için OpenCv nin Haarcascad metodlarını kullanıyoruz. Yalnız şöyle problemler ortaya çıkıyor.
Görüntüdeki bütün yüzleri tespit edilemiyor. Yüz olmadığı olduğu halde yüz olduğu sanılan yerler bulunuyor. ilk problem için yapılacak şey, ya metodu değiştirmek, yada yeni daha iyi bir xml dosyası oluşturmak lazım. ikinci problemi tespit edilen alandaki renk yoğunluklarıyla uğraşarak halledilir gibi geliyor bana.

Yüz Standartlaştırma :
İkinci aşama bulduğumuz yüz görüntüsünü standartlaştırmak. Yüz Tanıma projelerininde genelde yüz veritabanlarının kullanıldığını görürüz. Bu Veri tabanlarındaki Yüzler nispeten sabit bir ışık, sabit bir konum ve ebattaki yüzlerle çalışırsınız. Gerçek hayatta ise bunların hiçbirini bulamıyacağınızdan, kendiniz yapmanız lazım. Bu işin önemi ise şuradan geliyor bir sonraki aşama olan tanıma işinin sağlıklı ve başarılı olabilmesi buna bağlı.
* Işık-Aydınlık etkisini minimuma indirgeme :
Aynı yerde aynı insanın farklı zamanlardaki fotoğrafları bile bu etki yüzünden farklı görünebilir. Bu etkiyi bir nebze düzenleyebilmek için bizim programımızda histogram eşitlemesi yaptık. Aslında RGB renk uzayından HSV renk uzayına geçip oralardan ayaralamak daha bir sağlıklı olabilir. Biz kolayına geçtik siz öyle yaparsınız artık.
* Konumlandırma hatalarını minimuma indigeme :
Haarcascade ile yüz yerini bize bir dikdörtgen içinde verir. Fakat bu dikdörtgenin içinde yüzün kounumu aynı olmaz. Bu durumda yüzün öğelerinin konumlarınıda tespit edip, gerekiyorsa büyüterek yada küçülterek yada çevirerek, başlangıç değerleri düzeltilir. Bu işlem için bizim programda hiç bir işlem yapılmamaktadır.

* İstenen ebatlarda getirme :
Basitçe bir ebat değişimi ile bizim seçeceğimiz bir büyüklüğe çeviriyoruz.

Yüz Tanıma :
İlk iki aşama bu aşama için bir ön hazırlıktan başka bir şey değildi. Bu aşamada artık elimizde standart bir yüz var ve Daha önceden öğrenmiş olduğumuz. yüzlere yakınlığına göre yüzü tanımaya çalışıyoruz. Bizim Programımızda bu iş için Eigenface metodu kullanıldı. Fakat Pek çok ML algorithması kullanılabilir hatta birden fazla ML metodu paralel olarakta kullanılabilir. ML deyip geçmeyeleim Mesela YSA HMM SVM vs ... . OpenCv nin de ML kütüphanesi bulunuyor, fakat pekde başarılı olduğu söylenemez. Değişik kütüphaneler tek yapı altında toplanmaya çalışılmış, inşallah yeni versiyonu daha kararlı olur.

Böylece bu serinin de sonuna geldik. Bütün bunları yazıyorumda yapacak vaktim takatim yok. Zaten tek başına hemencecik yapılacak bir şey de değil. Bir vakit Volkan böyle bir işe girişmişti, sonra o da boşladı. Ama benim bu konuda yapacağımı söylediğim bir şey vardı, sözümüzden dönmedik ve ufak tefek bir şeyler hazırladık bekleyiniz...

Çarşamba, Mayıs 21, 2008

Yüz Tanıma 2


Neye niyet neye kısmet !
Bu yazının ilkinde bahsettiğimiz makalelerde Eigenface metodunu kullanan bir örnek program olduğunu söylemiştik. Bu programdaki kodu web-cam ile kullanılabilecek şekilde adapte ettim.
ve ortaya bu program çıktı.
Face Recognation for Windows
Face Recognation for Linux

Programın kullanımı gayet basit
  1. "Open Web-Cam " düğmesine basarak web-cam'ninizi açın
  2. "Extract Face" düğmesine basarak web-cam den bir yüz seçmesini sağlayın
  3. Yüz seçilince , yüz için "Name" kısmına bir isim girin
  4. "Save and Add Face" düğmesine basarak yüzü kaydedip Listeye ekleyin
  5. Listenize yeterince yüz olana kadar yüz bulup eklemeye devam edin
  6. "Learn Faces" düğmesine basarak Listenizde kayıtlı yüzlerin öğrenmesini sağlayın
  7. Yüz tanıma işi için "Extract Face" ile yüz seçin
  8. "Recognize Face" ile Listede kayıtlı yüzlerden hangisine en çok benzediğini sorun

Tabii ki bu programdan çok fazla bir şey beklememek lazım. Bu sadece bir başlangıç ve giriş sevyesinde bir uygulama, yapılması gereken pek çok şey var...

Az kalsın unutuyordum bu program aynı zamanda Fl_OpenCv 0.85 versiyonunuda içeriyor. Her zaman olduğu gibi arabirim olarak FLTK ( 1.1.9 versiyonu ) ve IDE olarak CodeBlocks kullanıldı. Hem windows hem linux (OpenSuse 10.3 ) de derlendi.

Her türlü görüş, öneri, istek veya hata bildirimlerinizi çekinmeden bana yaza bilirisiniz, bekleriz .

Cuma, Mayıs 16, 2008

Yol ayrımında okuyucuyla hasbihal

Ne içindeyim zamanın,
Ne de büsbütün dışında;
Yekpâre, geniş bir ânın
Parçalanmaz akışında.


Bilenler bilir bilmiyenlerde şimdi öğrensin bendenizin işi bilgisayar yada programcılıkla ilgili değildir. Burada yazdığım yazıları ve projeleri akşamları hazırlıyorum.

Bugünlerde işlerimde epey bir yoğunluk olduğundan akşamları yorgun oluyorum. ve dolayısıyla pek bir şey yapamıyorum. Bir de bütün bunların üstüne ne yapacağıma karar verememiş olmam bezginliğimi artırıyor.

Peki sizce ne yapmam lazım buyrun yol ayrımından manzaralar.

FannTool
Epey bir zaman sonra FannTool'un yeni versiyonunu çıkarabildim. bu versiyonla artık FANN'nın en yeni versiyonundaki imkanlarada kavuşmuş olduk. FLTK 1.1.8 çıktıktan hemen sonra karşılaşılan birkaç problem yüzünden 1.1.9 versiyonu çıkarıldı. Bizde bu versiyonu kullandık. Şu an itibariyla 200'ün üzerinde download edilmiş durumda.

1) Eğitim sistemlerine Genetic eğitimi eklemek: bu aslında FANN kütüphanesi dahilinde yok ben FGA kullanarak böyle bir yenilik eklemek istiyorum.

2) Veri işleme kısmı : Gerçekten YSA larla uğraşmada en sıkıcı kısmı eğitim ve test verilerinin hazırlanmasıdır. Bir nebze olsun bu işleri kolaylaştıracak bir yapı tasarlıyorum.

3) geçen yılki GSoc da FANN ile ilgili yapılan yeniliklerin ana koda adeapte edilip FANN 3.0 çıkması bekleniyor o çıkınca yeni YSA çeşitleride FANN'a dahil olacak. O zaman yeni tür YSA lara göre FannTool da adapte edilmesi lazım.

4) FannTool'un kullanımını göstermek için bir tutorial tarzı bir uygulama yapmak lazım.

5) FANN kütüphanesine aşina olanlar için FannToolda kullanılabilecek ayarlar anlaşılır, Fakat sadece YSA tasarlamak için kullanmak isteyenler için zor olduğu aşikar. Bu yüzden basit bir help dosyası oluşturmak lazım.


Blueplayer :

Audiere kullanarak yazdığım basit bir ses çalma programıı. Arabirimini yine FLTK ile yazdım. ve benim ilk yayınladığım açık kaynak kodlu projem. yani ilk göz ağrım. elimde yayınlanmamış
0.7. versiyonu var, fırsat bulursam yayınlamayı düşünüyorum. ufak tefek düzenlemeler dışında AudioCD ses cd si çalma özelliğini eklemek lazım. Ama bu konuda pek de hevesli değilim epey bir süredir üzerinde çalışmıyorum. Talep olurda bu projeye devam etmek istiyen olursa buyursun gelsin memnun olur elimizden gelen yardımı esirgemeyiz.

Fl_OpenCV :
En son 0.8 versiyonunu Inpaint örneğiyle beraber yayınladım elimde 0.85 versiyonu var hatta bir de EigenFace ile yüz tanıma örneğide var. Ama ne zaman kısmet olurda yayınlayabiliriz bilemiyeceğim aslında Fl_OpenCV nin pek bir eksiği yok - en azından benim için - ama asıl olması gereken opencv nin Highgui'sinin içerisinden GTK lı kısımları kaldırıp Fl_OpenCv ile birleştirebilsem, highgui'ye alternatif olur.

Computer Vision veya OpenCV

İlk etapta OpenCv'nin görüntü işlemeyle ilgili kısımlarını daha sonra OpenCv'nin Machine Learning kütüphanesi için FannTool gibi bir GUI oluşturmak gibi fikirler var kafamda.

Yada işin kolayına kaçıp ufak tefek OpenCv'nin kullanımına dair programcıklar yazabilirim

Diğer Yapay Zeka konuları :
Fuzzy Logic SVM, HMM, OpenPNL , Soar ve benzeri diğer yapay zeka metodları üzerine uygumalar yazmak, pratik örnekler hazırlamak.


Sonuç olarak; fikirlerinizi, görüşlerinizi ve önerilerinizi bekliyorum. yoksa benim bu tembellikten kurtulacağım yok...

Perşembe, Mayıs 01, 2008

Linux altında OpenCv



Epeydir Linux'a OpenCv yi kurmaya çalışıyordum. Bir türlü ffmpeg'i aktifleştiremiyordum.
google ile aratınca bir kaç kaynak çıkıyordu 1 2 3 söylenenleri yaptığım halde olmuyordu.
Uğraşa uğraşa en sonunda kurabildim. meğerse OpenCv ffmpeg header dosyalarını bulamıyormuş. Kısaca anlatalım belki başka birisinin de işine yarar.

1) ffmpeg i indirin. ve açın
terminalde ffmpegi açtığınız dizine geçin
./configure --enable-shared
make
make install
2) super kullanıcı olarak bir filemaneger açıp
/usr/local/include/ffmpeg
dizinine gidin burada olması gereken header dosyaları ,
" /usr/local/include/ffmpeg /libavcodec"
ve benzeri alt dizinlerin içine konmuş alt dizinlerdeki bu header dosyalarını olması gereken yere yani
"/usr/local/include/ffmpeg "
dizinine kopyeleyin artık OpenCv yi gönül rahatlığıyla kurabilirsiniz.

3) opencv' i indirin. ve açın
terminalde opencv'yi açtığınız dizine geçin
./configure --with-ffmpeg --without-quicktime
deyin configure sonunda
Use ffmpeg: yes
sonucunu aldıysanız işlem tamamdır.
make
make install
deyip kurulumu tamamlayın

Not : artık OpenSuse 10.3 kullanıyorum

Çarşamba, Nisan 30, 2008

FannTool 0.93 Released

Hasretle ! beklenen FannTool'un yeni versiyonunu sunmaktan gurur duyarız.
Bu versiyonla birlikte, MSE değişimini grafik olarak görebileceksiniz. "Run with File" kısmıyla Test data dosyalarınızı gerçek ve hesaplanan değerlerini hemencecik alabileceksiniz. Gerek Normal gerekse Cascade eğitim için pek çok ince ayar yapma imkanına kavuşmuş olacaksınız.
Hem FLTK hem de FANN ın en yeni versiyonları kullanıldı, yani FannTool derlemek için artık FANN 2.1 ve FLTK 1.1.9 kullanmanız lazım.
Neyse efendim lafı fazla uzatmayalım indirmek için - Pek tabi ki kaynak kodu ve CodeBlocks proje dosyasıyla birlikte -
Download : FannTool 0.93 for Windows
FannTool 0.93 for Linux

Her türlü öneri istek ve hata bildirimlerinizi bekleriz

Pazartesi, Nisan 21, 2008

Bilişim teknolojilerinde gelecek

En son kısmetse "Bilişim teknolojilerinde gelecek" seminerine katılmaya niyetlendiğimi söyleyip, kısmet demiştim. Nasib oldu dün ODTÜ'ye seminere gittim

Anakarda yaşamama rağmen geçen seneki Özgür Yazılım Şenliğinden beri ODTÜ ye uğrayamamıştım. Her zaman güzel olan ODTÜ baharla daha bir güzel görünüyordu. Benim gibi Toz ve dumanlar içinde çalışan biri için cennet gibi bile denebilir.

saat 11 gibi ODTÜ'ye geldim. Biraz erken geldim ve gelmişken kütüphaneye uğrayıp kitap karıştırdım. ODTÜ nün kütüphanesi gibisi yoktur. İstediğiniz kitabı istediğiniz gibi kurcalarsınız. Okulda Laptop kullanımı epey bir artmış olmalı ki masalara fiş yeri konmuş. Bir kaç kişide de gördüm zaten Laptoplarını kitaplarını açmışlar uğraşıyorlardı. Hey gidi günler hey biz vakti zamanında Casio fx-3600 scientic ! hesap makinasını güç bela aldırdıydık.

Seminer duyrusunu ben Fazlamesai den duymuştum ilk seminer
Bilgisayar Dünyasında Akademik Açılımlar
o Prof. Dr. Volkan Atalay (Biyoinformatik)
o Prof. Dr. Fatoş Tünay Yalman-Vural (Görüntü İşleme)
o Yrd. Doç. Dr. Erol Şahin (Robotik)
o Dr. Atilla Özgit (İnternet Teknolojileri)

şeklinde geçiyordu. Bu seminerle birlikte hayal kırıklıklarımız başladı. İlk olarak Görüntü işleme hakkında konuşacak Fatoş Hanım başka bir program dolayısıyla katılamadı. İkinci olarak seminerin asıl konusu Biyoinformatik, Görüntü İşleme,Robotik, İnternet Teknolojileri den çok mezun adaylarının araştırmacı olmasını teşvik etemesi konusundaydı. Yinede böyle ileri teknoloji konularda yıllarını vermiş insanlardan çalıştıkları konularda bir iki kelime etmeleri de yeterdi ve yetti.

Sonraki iki konuşma benim ilgi alanıma zaten girmiyordu ben de o ara maddi ve manevi gıdalarımı aldım.

Son konuşma
Bilişim Sektöründe Girişimcilik
o Bora Güngören (Portakal Teknoloji)
o Eren Bali (Eofer)
o Gürkan Caner Birer (RotaSoft)
o Munir Ercan (RotaSoft)
idi. Bu 4 girişimci arkadaş bir salon dolusu girişimci adayıyla karşılaşınca sanırım biraz ürktüler!
"Biz şimdi bu girişimci adaylarını yüreklendirirsek yarın hepsi karşımıza rakip olarak çıkarlar, girişimcinin başını küçükken ezmek lazım" şeklinde düşünmüş olmalılarki hepsi birden verdiler veriştirdiler.
- Bulaşık yıkamayı , çöp toplamayı, bilmiyorsanız bu işlere girişmeyin gidin bir temizlik şirketinde staj yapın.
- şirket kurun 5 yıl boyunca batmazsanız, size ancak iş gelir.
- Kestiğiniz faturanın vergisini hemen ödersiniz, Parasını Allah bilir ne zaman alrısınız belki de alamazsınız.
- Küçük balık olmayı öğrenin ki büyük balıklar açlıktan ölmesin.

gibi iç ferahlatan ! ve yüreklendiren ! sözler sarfettiler. Şaka bir yana çok hoş bir sohbet oldu, sırf bu yüzden bile bu etkinliğe katılınırdı. Belkide pek çok kişinin ayaklarının yere basmasını sağlamışlardır.

Sonuç olarak şunu söylemek istiyorum. Çok güzel bir bahar gününde çok güzel bir etkinlik oldu. Emeği geçen herkese buradan teşekkür etmeyi borç bilir, tiz zaman da yeni seminerlerini bekleriz...


Sonuç olarak şunu söylemek istiyorum. Çok güzel bir bahar gününde çok güzel bir etkinlik oldu. Emeği geçen herkese buradan teşekkür etmeyi borç bilirim. Tiz zaman da yeni seminerlerini bekleriz...

Cuma, Nisan 18, 2008

Bir Adın Kalmalı

bir adın kalmalı geriye
bütün kırılmış şeylerin nihayetinde
aynaların ardında sır
yalnızlığın peşinde kuvvet
evet nihayet
bir adın kalmalı geriye
bir de o kahreden gurbet

sen say ki
ben hiç ağlamadım
hiç ateşe tutmadım yüreğimi
geceleri, koynuma almadım ihaneti
ve say ki
bütün şiirler gözlerini
bütün şarkılar saçlarını söylemedi
hele nihavent
hele buselik hiç geçmedi fikrimden
ve hiç gitmedi
bir topak kan gibi adın
içimin nehirlerinden
evet yangın
evet salaş yalvarmanın korkusunda talan
evet kaybetmenin o zehirli buğusu
evet nisyan
evet kahrolmuş sayfaların arasında adın
sokaklar dolusu bir adamın yalnızlığı
bu sevda biraz nadan
biraz da hıçkırık tadı
pencere önü menekşelerinde her akşam

dağlar sonra oynadı yerinden
ve hallaçlar attı pamuğu fütursuzca
sen say ki
yerin dibine geçti
geçmeyesi sevdam
ve ben seni sevdiğim zaman
bu şehre yağmurlar yağdı
yani ben seni sevdiğim zaman
ayrılık kurşun kadar ağır
gülüşün kadar felaketiydi yaşamanın
yine de bir adın kalmalı geriye
bütün kırılmış şeylerin nihayetinde
aynaların ardında sır
yalnızlığın peşinde kuvvet
evet nihayet
bir adın kalmalı geriye
bir de o kahreden gurbet
beni affet
Kaybetmek için erken, sevmek için çok geç

İhtiyarlıyormuyum ne ? aynen şiirdeki gibi kaybetmek için çok erken ama bir şeyler yapabilmek için de çoook geç olduğunu düşünüyor bir miskinliğe bir tembelliğe düşüyorum.
Buradaki çok geç aynen
Dönülmez akşamın ufkundayız vakit çok geç
deki gibi olduğunu hatırlatırım.

Bu adam nereler de kaldı 15 -20 gündür sesi soluğu çıkmıyor diyenler için deep not
Yoğun! istek alan FannTool'un 0.85 versiyonunu yayınlayacaktım vazgeçtim 0.9 versiyonunu hazırlıyorum, sabredin biraz.
Jardel Mustafa yaptığım ortayı aut'a attı, kısmet artık bu sayede size bir süriz çıkabilir
Özğür yazılım şenliği duyrusu beklerken "Bilişim Teknolojilerinde Gelecek" adlı bir etkinliğini duydum kısmetse Bu pazar oradayım.






Pazartesi, Mart 31, 2008

Yüz Tanıma

Küçücük bir bebek sizin yabancı olduğunuzu bilip, ağlamaya başlıyor. Tanıdık bir yüz görünce yüzünde gülücükler açıyor. İnsan olarak yüz tanımak bize çok kolay geliyor. Yalnız neye istinaden tanıdığımızı açıklamaya kalkınca iş, içinden çıkılmaz hale geliyor. Yani
Fesübhanallah! Yüzün o küçük sayfasında nasıl gayr-ı mütenahi nişanlar derc edilmiştir ki, gözle okunur da nazarla, yani akılla görünmez.
diye boşuna denmemiş...

Daha yürümesini, konuşmasını bile bilmeyen bir bebeğin yapabildiğini, bilgisayarda yaptırtabilmek için neler yapılımış neler. Nice algorithmlar geliştirilmiş, nice programlar yazılmış, nice tezler hazırlanmış, ve niceleri de yapılmaya devam ediyor. Çünkü hala dört dörtlük bir metod bulunmuş değil.

Vakiti zamanında SERVO magazinde Seeing with OpenCv diye 5 bölümden oluşan bir makale yayınlandı. Bu makalede OpenCv'ye hızlı bir giriş ve yüz tespiti, takibi ve tanıma konuları işlendi. Tanıma işi için EigenFace metodu kullanıldı. EigenFace metodu yüz tanıma metodlarının başlıcalarından ve en eskilerinden birdir. Internette zahmet edipte aramayın. DerinDeliMavi'nin büyüük hizmeti Buyrun indirin

Cuma, Mart 28, 2008

FLTK 1.1.8 çıktı


Evet epeydir beklediğimiz FLTK'nın son versiyonu çıktı.
FLTK 1.1.8 in 1.1.7 den farkları için buraya , indirmek için şuraya bakın
Bu versiyonla 1.1.x serisi bitti artık UTF-8 eklenmiş haliyle FLTK 1.3 versiyonu geliştirilmeye başlanıyor. Üstteki resim FLTK 1.1.8 ile gelen demolardan biri olan Block Attacks oyunundan alınmıştır.

Pazartesi, Mart 24, 2008

Bu aralar neler yapıyoruz ?

Bu aralar abuk subuk yazılar yazmanın dışunda neler yaptığımızı merak edenler olabilir ?
Merak etmesenizde bir şey değişmeyecek ben yine de anlatacağım
  • Jardel Mustafa'ya beklediği ortayı yaptım. Pek matah birşey olmasada top artık onda
  • Daha önceden duyurduğumuz CodeBlocks'un kararlı sürümünü Hem windows hem de Linux altında kurdum
  • FannTool'un yeni versiyonu üzerinde çalışıyorum. Bir kaç kişiye yeni halini gönderdim. Eğer zahmet edipte fikirlerini beyan ederlerse bir kaç düzenleme daha yapıp yayınlayacağım. FANN'ın yeni versiyonundan bir haber yok. Ben de bu sefer 2.1 versiyonunu kullandım.
  • FLTK 1.1.8 rc3 yayınlandı kurup denedim gayet güzel, FLTK 1.1.8'in eli kulağında bekliyoruz.
  • OpenCv'yi linux'a kurmayı tekrar denemem lazım beceremedim bir türlü :(
  • Volkan ile yaptığımız projeyle ilgili bir çalışma var, Problem zihnimde tamamlandı kod yazmam lazım.
  • e-mail ile gelen sorularınızı bildiğimiz kadarıyla cevaplamaya çalışyoruz. Bu soru cevapları toparlayıp bir yazı haline getirmek lazım...

Cumartesi, Mart 22, 2008

Beni kör kuyularda hamaksız bıraktın !


Kim ne tarafa çektirse o tarafa yöneliyorum. İşte ayrı, Internette ayrı, Ev de ayrı, Derslerde ayrı bir insan oluyorum. Bir bölünüş bir parçalanış bu ...
Bilsem şimdi nerdeyim
Bir uzun seferdeyim
gücüm - ömrüm - yetene kadar
Nazarımda kıymetli olana insanlar değer vermiyor. Zannımca pek de önemli olmayan, ben olmasamda pek ala - hatta daha ala - olacak işlere, başkaları kıymet ve değer veriyorlar. Nazarımın ve zannımın peşinden gidemiyorum çünkü Rızkı kazanmak başkalarının verdiği değerden geçiyor. ve ilk parçalanış...

Ev başka bir alem. Hayatı hayatımla kesişmiş insanlar. Bir taraftan herkesin ayrı dünyaları var. Diğer taraftan Kesişmiş hayat çizgilerimizden gelen hayatımda istekleri ve dahi hakları var. ve bir parça daha...
Derin kederlere sal beni
Canın sağ olsunda kır beni
Hep sinin üstüne, hep benim üstüme. Bir nasihat, bir musibet, bir hastalık bir ölümle gelen idrak.
"Madem dünya fanidir demiyor alakayı kalbe"
biliyorum ama kalbimin alakasını kese biliyormuyum ? Tonla kitap okumuş, okuyor ve dahi okuyacak olmak ve bilmek kurtarıyor mu insanı ?
kahretsin bilmek böyle bir şey işte ; Bilmenin insanı kurtarmaya yetmediğini de biliyor insan

sözlerimin anlamı beni ürkütüyor
böylesine hazırlıklı değilim daha
bilmek buda ürkütüyor
gene de biliyorum
Kapanmazmış günahların açtığı yaralar insanda.

Saffeti kalbi, itminanı kalbi nerden, nasıl bulacağız ?

Günümüzde bütün bunlara ilaç olarak hamakta sallanmayı tavsiye ediyorlar.
Kör kuyularda hamağı nerden bulupta nasıl sallanacağız.
Hadi yaptık diyelim, kör kuyuda olduğumuz gerçeğini değiştiyor mu hamakta sallanmak.
Olsa olsa unutturuyor o da muvakkaten.
Yüreğimizdeki yaralar yüzümüzü karartmış , Yusuf yüzlüler dururken kim bize merdiven salar
...
Haber aldım ki, yarın yâd olacakmış bize yar
Ne büyük yâre ki kimler buna derman olacak
Bu büyük derd ü elemden kime şekva edeyim?
İşiten nâlemi, hep ben gibi nâlân olacak.

O şifa bahş olan envarını sen çeksen eğer
Bana kim nur verecek, kim bana Lokman olacak!
O temiz pâk nefesin, âb-ı hayatı bu çölün
Onu dûr etme ki her fert ona reyyan olacak
... *
Ve yine
ve yine
yine de biliyorum umutsuzluk yakışmaz bize...

ve kör kuyulardan sesleniyoruz

"Ey bu yerlerin hâkimi! Senin bahtına düştüm. Sana dehalet ediyorum ve sana hizmetkârım ve senin rızanı istiyorum ve seni arıyorum."

Senin kapından başka hangi kapıya gideyim?
Hangi kapı var?
Senden başka Rab yok ki dergâhına gidilsin.
Senden başka hak mâbud yoktur ki ona iltica edilsin."

Çarşamba, Mart 19, 2008

Tazarru ve Niyaz

...Biliniz ki, ben hilâf-ı âdet olarak, gizlemesi lâzım gelen, Rabbime karşı kalbimin tazarru ve niyaz ve münâcâtını bazan yazdığımın sebebi; ölüm, dilimi susturduğu zamanlarda, dilime bedel kitabımın söylemesinin kabulünü rahmet-i İlâhiyeden rica etmektir. Evet, kısa bir ömürde, hadsiz günahlarıma kefaret olacak, muvakkat lisanımın tevbe ve nedametleri kâfi gelmiyor. Sabit ve bir derece daim olan kitabın lisanı daha ziyade o işe yarar...

Ey Rabb-i Rahîmim ve ey Hâlık-ı Kerîmim! Benim sû-i ihtiyarımla ömrüm ve gençliğim zayi olup gitti. Ve o ömür ve gençliğin meyvelerinden elimde kalan, elem verici günahlar, zillet verici elemler, dalâlet verici vesveseler kalmıştır. Ve bu ağır yük ve hastalıklı kalb ve hacâletli yüzümle kabre yakınlaşıyorum. Bilmüşahede, göre göre, gayet sür'atle, sağa ve sola inhiraf etmeyerek, ihtiyarsız bir tarzda, vefat eden ahbap ve akran ve akaribim gibi, kabir kapısına yanaşıyorum.

O kabir, bu dâr-i fâniden firâk-ı ebedî ile ebedü'l-âbâd yolunda kurulmuş, açılmış evvelki menzil ve birinci kapıdır. Ve bu bağlandığım ve meftun olduğum şu dâr-ı dünya da, kat'î bir yakîn ile anladım ki, hâliktir gider ve fânidir ölür. Ve bilmüşahede, içindeki mevcudat dahi, birbiri arkasından kafile kafile göçüp gider, kaybolur. Hususan benim gibi nefs-i emmâreyi taşıyanlara şu dünya çok gaddardır, mekkârdır. Bir lezzet verse, bin elem takar, çektirir. Bir üzüm yedirse, yüz tokat vurur.

...

"El-aman, el-aman! Ya Rahmân! Yâ Hannân! Yâ Mennân! Yâ Deyyân! Beni çirkin günahlarımın arkadaşlıklarından kurtar! Yerimi genişlettir! İlâhî, Senin rahmetin melceimdir ve Rahmeten li'l-Âlemîn olan Habibin, Senin rahmetine yetişmek için vesilemdir. Senden şekvâ değil, belki nefsimi ve halimi Sana şekvâ ediyorum.

"Ey Hâlık-ı Kerîmim ve ey Rabb-i Rahîmim! Senin B... K... ismindeki mahlûkun ve masnuun ve abdin, hem âsi, hem âciz, hem gafil, hem cahil, hem alîl, hem zelîl, hem müsi', hem müsin, hem şakî, hem seyyidinden kaçmış bir köle olduğu halde, ... sene sonra nedamet edip Senin dergâhına avdet etmek istiyor. Senin rahmetine iltica ediyor. Hadsiz günah ve hatîatlarını itiraf ediyor. Evham ve türlü türlü illetlerle müptelâ olmuş.

Sana tazarru ve niyaz eder. Eğer kemâl-i rahmetinle onu kabul etsen, mağfiret edip rahmet etsen, zaten o Senin şânındır. Çünkü Erhamürrâhimînsin. Eğer kabul etmezsen,

Senin kapından başka hangi kapıya gideyim?
Hangi kapı var?
Senden başka Rab yok ki dergâhına gidilsin.
Senden başka hak mâbud yoktur ki ona iltica edilsin."

17. Lema 12. Nota'dan

Çarşamba, Mart 05, 2008

Code::Blocks 8.02 has been released

Fazla söze gerek yok Sonunda Nightly Builds den kurtuluyoruz. CodeBlocks IDE yeni kararlı sürümünü çıkardı.
Özellikleri için : Features
İndirmek için : Downloads
Linkte de görebileceğiniz gibi windows, Mac OS X, ve bilimum Linux sürümleri ( Ubuntu, Debian, Fedora ve OpenSuse üstelik 64 bit versiyonlarıda var.* ) için paketleri hazır kullanabilirsiniz.
Programcılık camiasına hayırlı olsun.

* Birileri de Pardus versiyonunu çıkarsada biz de Fedoraymış yok Suseymiş Yok Ubuntuymuş gezeleyip durmasak :)

Cumartesi, Mart 01, 2008

Yapay Zeka Tıbbın Hizmetinde 2

İlk yazımızdaki programı indirip inceleyen - şu an itibarıyla 4 kişi - ÇOK! sayıda insandan biriyseniz Programın YSA yı uygulayan kısımının Heasapla fonksiyonun içinde olduğu ve Normalizasyon kısımlarını saymaksak üç beş satırdan oluştuğunu görmüşsünüzdür. Peki bu işler bu kadar kolaymı ?
cevap veriyorum Hayır. İsterseniz o üç beş satırı yazabilmek için neler yapmamız gerektiğine bir bakalım.

YSA ya bir şeyler öğretebilmek için eğitim gerekli, Eğitim içinse veri.
Sınıflandırma yapmamız için etkili olan faktörler tespit edilir - Giriş değişkenleri - Sonuçta bu faktörlere göre bir sınıflara ulaşırız -Çıkış değerleri - İşte Bu giriş ve çıkış değerleri YSA nın giriş ve çıkış değerleri oluyor.
Peki YSA verileri doğrudan verebilirmiyiz ?
Malesef veremeyiz. YSA da katmanlar arasında veri iletişimi bir çeşit aktivasyon fonksiyonundan geçerek sağlanır. Bu fonksiyonlarda tipine göre (0 - 1 ) yada (-1 1) aralığında sonuçlar verir. Bu durumda bizim verilerinizi bu aralıklara çekmemiz lazım. Peki Bu normalizasyon işlemini nasıl yapacağız. Değişkenin en küçük (min) ve en büyük (max) değerleri tespit edilir ve bir aralık hesaplanır
range = max-min
Biz bu uygulamamızda ( 0 - 1) aralığını kullandığımızdan normalizasyon formülümüz şöyle oluyor.
Norm(x)= (x-min)/range
ufak bir tavsiyede bulanayım değişkenin veri kümesinden tespit ettiğimiz min max değerlerini aralığı hafifçe açacak şekilde genişletirseniz daha iyi olur. bu arada sizede ufak bir ev ödev i! (-1 - 1) aralığında normalizasyon için gereken formülüde siz bulun.

Giriş değişkeni eğer mantıksal bir değişkense, (doğru-yanlış) gibi sadece iki değeri içeriyorsa normalizasyonu gayet kolay değerin biri 0 diğeri 1 olarak YSA ya bildirilir.

Peki değişken eğer sayısal değilse ne yapacağız mesela bizim örneğimizde "chest pain type"
göğüs ağrısı tipi diye bir değişken var ve bu değişken {angina, abnang, notang, asympt} gibi 4
değişik tipten oluşuyor. Bu durumda yapacağımız şey bu tip değişkenleri mantıksal değişkenlere
bölmek yani chest pain type değişkenini 4 adet mantıksal alana yayıyoruz eğer ağrı tipi
angina ise 1 0 0 0 yok notang ise 0 0 1 0 gibi.
Şimdi gelelim verilerimize verilerin aslı aşağıdaki gibi bir matriste tutuluyor

60, male, asympt, 140, 293, fal, hyp, 170, fal, 1.2, flat, 2, rev, sick.
37, male, notang, 130, 250, fal, norm, 187, fal, 3.5, down, 0, norm, buff.
64, male, angina, 110, 211, fal, hyp, 144, true, 1.8, flat, 0, norm, buff.

bu matriste 14 sütün var ilk 13 ü giriş değişkenleri son sütün çıkış değişkeni. fakat biz bu
değişkenleri YSA ya aktarabilmek için normalize ederken sütün sayımız 25 e çıkıyor nasıl mı oluyor bakınız


ANN Dizaynı

| Inputs
| ------------------------
| -- 1. age : 1 sütun
| -- 2. sex : 1 sütun
| -- 3. chest pain type (4 values) : 4 sütun
| -- 4. resting blood pressure : 1 sütun
| -- 5. serum cholestoral in mg/dl : 1 sütun
| -- 6. fasting blood sugar > 120 mg/dl : 1 sütun
| -- 7. resting electrocardiographic results (values 0,1,2) : 3 sütun
| -- 8. maximum heart rate achieved : 1 sütun
| -- 9. exercise induced angina : 1 sütun
| -- 10. oldpeak = ST depression induced by exercise relative to rest : 1 sütun
| -- 11. the slope of the peak exercise ST segment : 3 sütun
| -- 12. number of major vessels (0-3) colored by flourosopy : 4 sütun
| -- 13. thal: ( normal, fixed defect,reversable defect) : 3 sütun
25 giriş

| Outputs
| ------------------------
| Absence (1) or presence (2) of heart disease 1 sütun

1 Çıkış

evet Elimizdeki 180 adet veriyi bin bir meşakkatle normalize ettiktten sonra ikiye ayırıyoruz.
155 adedi eğitim için 25 adedi test için. ve verileri FANN kütüphanesinin standartına uygun olarak kaydediyoruz. - FANN kullanımı yazılarım -

Bundan sonrasını FannTool'u kullanarak yapacağız. FannTool'u çalıştırın ve Eğitim için Training
Data File olaraka "heart_train_data.dat" yükleyin Artık Keyfinize ve tecrübelerinize göre eğitim denemelerinini yapabilrsiniz.
ilk etapta saklı katman sayısı (# of Layer) ve bu katmanlardaki hücre sayılarını (Hid Layer 1 ...) ayarlaya bilirsiniz.
İsterseniz Eğitim metodunu (Detect Optimum Training Algorithm) ve Aktivasyon foksiyonlarını
(Detect Optimum Activation Functions ) sizin için seçmesini istiyebilirsiniz.

Artık Train -> Normal diyerek YSA eğitimini başlata bilirsiniz. Eğer Belirlediğiniz hata değerine yada altına ulaşıldığında Eğitilmiş YSA yı kaydetmek için sizden bir dosya ismi istenir. Bir isim verip kaydedin .net uzantılı olarak kaydetmeniniz iyi olur.

İşimiz bittmi ? ellbette hayır. Biz boşunamı test datası oluşturduk. Testing Data File olarak test dosyamızı yüklüyoruz. Test ANN düğmesine basıyoruz. Bizeden eğitilmiş YSA dosyası isteniyor kaydettiğimiz .net dosyasını seçiyoruz. Sonuçta bize test verileriyle ulaşılan bir MSE (ortalama hata ) değeri hesaplanır.
Bu değer eğer çok yüksekse. Bizim YSA eğitimi iyi olmamış demektir. Tabiri caiz ise YSA mız Eğitim verilerini ezberlemiştir. Muhtemel sebeplerine gelirsek Düşük veri sayısı veya yüksek hücre sayısı veya istenen hata değerinin çok düşüklüğü....
Ama istenen ezberleme değil genellemedir. Böyle durumlarda eğitimi değişik kombinasyonları deyerek tekrarlamak gerekir.
Eğitimin bir diğer metoduda Train->Cascade dir bu metodda YSA nın Saklı katmanlarını kendisi dinamik olarak belirler. Siz sadece kullanabileceği maksimum hücre sayısını belirtebilirsiniz. Bu değeri de FannTool Saklı katmanlardaki hücre sayılarını giriş ve çıkış hücre sayılarına ekleyerek hesaplar.

Bütün bunlardan sonra Eğitimizi tamamlayıp testimizi yapıp sonucunda tatminkar hata değerine ulaştıktan sonra yapılacak şey basit bir arabirim yazmaktırki onuda ilk yazımızda verdik.

Sizinde gördüğünüğüz gibi üç beş satırın arkasında epey bir emek var. İnşallah FannTool 'un ilerki versiyonlarında Veri işlemeyi nispeten kolaylaştıran bir kısımı da eklemeyi planlıyorum.
Artık nasip...

Salı, Şubat 26, 2008

Aney

Aney
Bu akşam aklıma yine sen geldin
Dersi bıraktım çalışamadım.
Saat 1'e geliyordu Aney, yatamadım
Uyku gözüme girmedi
Sen bu saatlerde benim beşiğimi sallardın
Uykunu harab ederdin benim için
Ağladığım zaman, sancılandığım zaman
Kalkardın, süt verirdin, nane kaynatırdın
Aney, canım aney, kurban aney
Hayalin önümde şimdi anıt gibi durur
Sen şimdi leğenin başına oturmuş, hamur yoğuruyorsun
Yarın ekmek yapacaksın, akşama kadar
Gözlerin tezek dumanından yaşaracak
Alnında ter bulgur bulgur kabaracak
Sıcak bazlamalar yapacaksın.
Ben orda yokum ağlayacaksın
Ağlama Aney ağlama, gündür bu, nasıl olsa geçer
İnsan insana tez kavuşur.
Ben sizi hiç unutmadım, hiç unutmayacağım
Ben okuyorum Aney okuyorum mühendis olacağım
...
Ah Aney daha neler var neler sana yazamadığım
Mektubumu burada bitirirken,
Beni büyüten ellerinden, binlerce kere öperim
Canım Aney, Kurban Aney, Can Aney.......


Mehmet Atilla Maraş

Yapay Zeka Tıbbın Hizmetinde 1

İsmine bakıpta büyük beklentileriniz olmasın. Yapılan iş basit! bir sınıflandırma işi. Daha önceki tecrübe verilerini kullanarak kişilerin kalp hastası yada sağıklı olduğuna karar veriliyor.
Öncelikle veriler bulunuyor. YSA ile kullanmak için normalize ediliyor. FannTool ile değişik metodlarla deneye yanıla uygun bir YSA ya ulaştıktan sonrası kolay. Yazıyoruz basit bir kullanıcı arabirimi işte karşınızda Heart.zip
Eğer isteyen olursa yada vakit bulabilirsem Linux versiyonunuda yayınlarım. Zaten FLTK ve FANN kullanıldığında kod taşınabilir, siz de derleyebilirsiniz. Giriş verilerinin isimlerini çevirmedim çünkü ne manaya geldiğini bilmediğim tıbbi terimler de var. Yarı ingilzce yarı türkçe olmasındansa bu şekli daha doğru buldum.
Son bir not : Türkiyede niye böyle uygulamalar için hazırlanmış veri tabanları yok ? Eğer varsa neden duyrusu iyi bir şekilde yapılmıyor ? Eğer böyle veritabanları hazırlanırsa tutupta "Cleveland Clinic Foundation" yerine kendi veritabanlarımız kullanabilirdik. Güzide üniversitelerimizdeki güzide hocalarımızdan ısrarla istiyoruz.

Cumartesi, Şubat 16, 2008

birbirini bilmemek insaf değil

Efendim bendeniz sahaflada gezinmekten çok hoşlanırım. Lüzumlu lüzumsuz pek çok kitap almışlığım da vardır sahaflardan. Geçenlerde yine sahaflarda geziniyordum. Fakat bu sefer Cogito nun yapay Zeka sayısını arıyordum.

Aslında Cogitonun Yapay Zeka sayısını defalarca kitapçılarda elime alıp alsammı diye düşünmüşlüğüm vardı ama çok teorik diye vazgeçmiştim. Son okuduğum kitaptaki ant-i ütopya yazıları fikrimi değiştirmeme sebep oldu -Matrix / Kırmızı Hapı Yutmak- Felsefi ve etik yönünden de bilgi sahibi olmak lazım yoksa "ehramlara taş taşıyan birer köle"* den ne farkımız kalır dedim.

Neyse Konuyu dağıttım yine... Sahafların birine girdim ve Cogitonun Yapay Zeka saysısını sordum. Adama gülümsiyerek bulsam ben alacağım dedi. Meğer o da Yapay Zekayla ilgilenen bir müşteriymiş. Ayak üstü bir kaç kelam ettik, Makina tasrımında Yapay Zekayla ilgileniyormuş. Bu kısa karşılaşma bile bana tuhaf bir mutluluk verdi. Öyle ya aynı ilgi alanlarına sahip insanların tanışması konuşması insanı mutlu ediyor.

Düşünüyorumda belki yüzyüze tanışmak çok zor ama Internette niye yapamıyoruz ki bunu ? Yaptığınız çalışmaları duyuracağınız, Başkalarının çalışmalarını görebileceğimiz yerler var. www.yapay-zeka.org Türkiye'nin Yapay Zeka Portalı. Bence büyük bir eksikliği var, - Eskiden vardı - şu an forum'u yok. E-mail gurupları aynı işi görmüyor. Bu eksikliğide gidermek için size tavsiyem ceturk forumunda Yapay zekaya ayrılan kısımı kullanmanızdır. Bahsettiğim mekanların sahibi değilim fakat yine de sizleri davet ediyorum. Gelin Bu konuyla ilgilenen insanlar tanışalım, tartışalım, sorular sorup, cevaplar verelim, çalışmlarımızı anlatıp, çalışmalara katkılarda bulunalım. İnsafsızlık ! etmeyelim Ne demiş Nefi
ehl-i dil birbirini bilmemek insaf değil

* "mefhumların kah gülünç, kah korkuç maskelerle raksa çıktığı bir karnaval balosu, fikir hayatımız. tanımıyoruz onları, nereden geliyorlar bilen yok. fir'avunlara benziyorlar, kalabalığa çehrelerini göstermeyen fir'avunlara. ve aydınlarımız, o meçhul heyulalar için ehramlara taş taşıyan birer köle."
Cemil Meriç

Salı, Şubat 05, 2008

Nayır Nolamaz yine mi nETA ?

- yada Yazılım sektörümüzün hali pür melali Bölüm I -

Olayımız bir Muhasebe bürosunda geçiyor. tuzu kuru yazılım firmalarımızdan nETA'nın muhasebe paketini kullanan binlerce muhasebeciden biri.

İhtiyar Muhasebeci -İM - , kendi kendine
- Nihayet nETA muhasebe paketinin güncellemesi geldi
zarfı açıp kağıdı okur.
- Hey gidi hey adamlar yapyor ya. AGİ değişikliğinide içeren yeni sürümü eskisinin üzerine otamatik yüklüyormuş. Yinede benim için karışık ben en iyisi yine çaycının çırağını çağrayım.
Zile basıp 1 çay 1 gazoz söyler. Çok geçmeden Çaycı Çocuk - ÇÇ - çıkar gelir, çayı adamın önüne koyup gazoz kimin diye soran gözlerle muhasebeciye bakar. muhasebeci muzip şekilde gülümsiyerek.
İM - Gazoz senin için otur bakalım bilgisayarın başına bi-zahmet! şunu yükleyeceksin.
Çaycı Çocuk suratını ekşiterek
ÇÇ - Nayır Nolamaz yine mi nETA ?... Bilgisayarınızı yenileyince XP altında çalıştırabilmek için neler çektiğimzi hatırlamıyormusun?
İM - Alışmışız işte, sen bırak mızmızlanmayı da işine bak hem bu sefer tam otomatik yapmışlar
ÇÇ - Hadi canım
İM - Kağıtlarına bak
Çaycı çocuk kağıtlara göz atar.
ÇÇ - Hımm hakkaten ya bir programla işlem tamam oluyormuş.
ÇÇ - Tamam CD'ye bakalım eee bahsi geçen program yok !
İM - iyi bak oralardadır.
ÇÇ - Evet buldum fakat bu kurulacak programların içinde demek ki önce yeni versiyonu kurup öyle yapacağız.
... yaklaşık 10 dakika sonra
ÇÇ - Abi olmuyor bu program ... hatası veriyor yükseltmiyor.
İM- Bir işi beceremedin dur ben destek hattını arayayımda oradakiyle konuş
- meşgul
- meşguuuul
- meşguuuuuuul
İM - ya bu hat niye bu kadar meşgul ki
Çaycı Çocuk sırıtarak
ÇÇ - Tam-otamatik versiyon artırıcı yüzünden olmasın :)
İM - hah düştü Alo şimdi bizim bir problemimiz vardı da.
Sekreter - Tam otamatik versiyon yükselticiyle ilgili değilmi ? bekleyin birazdan İlgili Arkadaşa -İA - aktaracağım
İM - peki bekliyoruz...
İM - al birazdan bağlaycaklar sen görüş.
ÇÇ - hıh bağlandı
İA - Problemi biliyorum şimdi CD yi takın ve falanca yerdeki dosyaları filanca yere kopyalayın
ÇÇ - tamam
İA - şimdi filanca yerdeki dosyaları falanca yere kopyalayın
ÇÇ - tamam
İA - şimdi Tam-Otomatik ! versiyon güncelleme programını çalıştırın
ÇÇ - tamam
İA - sorduğu dizinleri yazın
ÇÇ - ben bunu yaptım olmadı ve yine olmuyor
İA - dizinleri yanış yazıyorsunuzdur
ÇÇ - yo doğru yazıyorum zaten configurasyoın dosyasını bulamıyorum demiyorki ... hatası diyor.
İA - anladım siz motoru boğdurmuşsunuz.
ÇÇ - nasıl ? ne motoru
İA - Daha önce uğraşarak bilgisayarı kastırmışsınız motoru boğdırmuşsunuz o yüzden çalışmıyor
ÇÇ - öyle olsun peki ne yapmamız lazım ?
İA - Kafdağını bilirsiniz oaranın ardında ki Zümrüd-ü Anka kuşunun kuyruğundan bir tüy alıp bilgisayarı gıdıklayacaksınız. Bilgisayarınız gevşeyecek.
ÇÇ - Ya İlgili Arkadaşım şimdi kışta kıyamette kaf dağına gitmesi zor. yok mu bunun başka bir hal çaresi ?
İA - olmamı Merkezi arayıp install alacaksınız.
ÇÇ - Yani bütün bu olan biten şeylerin sebebi İnstall almamak için miydi ?
İA - Evet
ÇÇ - Hay ben sizin Tam-otomatik versiyon yükselticinizi Zümrüt-ü Anka kuşunun kuyruk tüyüyle gıdıklayım
İA - Bizde öyle diyoruz zaten
....
Merkez aranır program için install alınır. Program çalışmaya başlar. İhtiyar Muhasebeci Bilgisayarın başına oturur ve kontrol etmeye başlar.
ÇÇ - Abi müsade edecektin ben Bu programı Turbo-Debugger ile bir gıdıklayacaktım bak daha kolay ve daha kısa sürede çalıştıracaktık.
İM - TurboDebugger de ne ola ?
ÇÇ - Anka Kuşunun ecnebi versiyonu !
İM - Eeee AGİ bilgilerini girebiliyorum ama listede göremiyorum ?
ÇÇ - Onu da bir dahaki güncellemde kaktırırlar pardon verirler
İhtiytar Muhasebeci somurtur...
ÇÇ - Abi bırak bu nETA yı META yıda Tekir ile uğraşmaya başlasana
İhtiytar Muhasebecinin iyice canı sıkılır
İM - ooo bakıyorumda iyice laubali olmaya başladın, "Bırak bu işleride kedi köpekle uğraş" diyorsun ha
ÇÇ - Ama abi yanlış anladın
İM - Birde anlayışı kıt diyorsun ha beni daha fazla kızdırmadan boşlarını alda çık
Çaycı çocuk söylene söylene çıkar...
İhtiyar Muhasebeci bir ya Sabır çekip işine döner, bir taraftanda radyoda çalan türküye o bet sesiyle eşlik etmeye başlar
Kendim ettim kendim buldum kendim ettim kendim buldum
Gül gibi sarardım soldum eyvah eyvah eyvah ey

ve perde kapanır...

Deep Not : Bütün olanlar bir hayal ürünüdür gerçek kişi ve kuruluşlarla olan benzerlik tamamen tesadüftür ;)

Pazartesi, Şubat 04, 2008

Beni sigaya çeken bir molla chelebi


Yukarda sıfatını görmekle müşerref olduğunuz zat Molla Chelebi. O zat-ı mübarekle tanışık olmam benim gibi pür-kusur bir amatör için bir övünç vesilesidir. İyide bu Molla Chelebi de kim mi diyorsunuz ? sakın ha tövbe deyin.
Bu zat Evliya Çelebiden Gezginliği Mola Kasımdan da Mollalığı almış çağımızın en müstesna Coderlarından MBA ve epey bir kilo sahabısı. VAIO dan aşağısı kesmeyen Bir Proffessional Coderdır O. Über programcı yanında acemi kalır. O kadar prof dur ki artıkın program yazmasına müsade edilmiyor. Haksız rekabeti önleme kurulu rica etmiş "Zatınız program yazarsa diğer programcılar ne yapar ne eder, açlıktan telef olurlar." Tabii bu mübarek zatta büyüklüğünü gösterip bu işlerden elini eteğini çekmiş. Geçenlerde sitemizi de şereflendirmiş ve kulağımızı çekmiştir. Bizde biçare yunus gibi deriz...
amatör bluekid bu sözü eğri büğrü söyleme
seni sigaya çeker bir molla chelebi gelir

Pazartesi, Ocak 28, 2008

BushSweeper 1.0 çıktı



Söz verdiğimiz gibi yarım kalan projelerimizden olan BushSweeper'ı bitirdik ve yayınlıyoruz. Darısı BluePlayer'ın başına... Pek tabiiki hem Linux hemde Windows versiyonu ile birlikte yalnız bu sefer Linux versiyonunu KDevelop projesi olarak yayınlıyoruz, çünkü hala CodeBlocks'u kuramadım Fedora'ya. Tabii bu benimle alakalı kimsenin kabahati yok, mesela OpenCv'yi de ffmpeg li olarak kuramadım. Linux versiyonuyla ilgili olarak direk binary programı kullanmayı deneyebilirsiz, FLTK static olarak bağlandığından sanırım çalışacaktır. Her ne ise gevezeliği bırakıp linkleri verelim
BushSweeper 1.0 Linux binary and source
BushSweeper 1.0 Windows binary and source

Cuma, Ocak 25, 2008

Nihayet toparlandım !


Başımdan geçen o tatsız olay sonrasında mütevazi bir bilgisayar aldım faka bir türlü fırsat bulup Linux yükleyememiştim. Önce eski alışık olduğum Suse 10.1 i kurmaya çalıştım maalesef mümkün olmadı - Hard Diski bulamıyor ! - yeni versiyonunu da indirmeye takatım yetmiyor 4 GB'ın üzerinde. Her ne ise efendim bir kaç ay önce Bilgisyar dergilerinden biri Fedora 8 in DVD iso'nu vemişdi . Linux dağıtımlarından her hangi birine özel bir hayranlığım yok, ben de kaprissiz Fedora 8'i kurdum. Kurarken DVD'nin içinde ne var ne yok hepsini kurmasını söyledim. malum Linux da program kurulumu bir dert, hele de internetiniz yoksa. Boşunamı DVD li dağıtımlarını tercih ediyorum sanıyorsunuz.

Konuyu dağıttım farkındayım. Şu an itibarıyla artık bir Fedora kullanıcısıyım. FLTK , FANN, Audiere, OpenCv gibi kütüphaneleri kurdum. Yalnız ffmpeg'i kuramadığımdan OpenCv video desteksiz. ve Halen CodeBlocks'u kuramadım - beceriksizlik işte - Tabiki pes etmedim çalışmalara devam ediyorum. CodeBlocks yerine KDevelop ile şimdilik idare ediyorum. Bundan sonra yine eskisi gibi yayınlarımız Cross-Platform olacak.

Bu arada eski programlarımı Fedora altında derlemeye başladım. Mesela artık Fedora altında mp3 leri BluePlayer ile dinliyorum, Fedoranın ruhuna aykırı ama ne yapalım. Unutmadan çoook yakın zamanda BushSweeper'in son halini yayınlayıp bitireceğim.

Bugünlerde Dolunay var biliyormuydunuz ? Tuhaf bir şekilde beni etkilemeye başladı ;) anlaymadım...

Çarşamba, Ocak 16, 2008

Geç kalmış bir muhasebe 2007


Üstteki grafiği counter servisinden aldım geçen seneki durumu özetliyor..
Şöyle bir geri dönüp bakıyorumda Epey iş yapmışız geçen sene..

Bizim Fatih Presta'nın 2DPathfinder kütüphanesi için bir ugulama programı : PathFinder Demo
Download Sayısı : Windows (520) Linux (165)

Bush'un hatırına yaptığımız BushSweeper mayın tarlası benzeri bir oyun programı Download Sayısı : Windows (126) Linux (290)

Genetik metodla 4 Bilinmiyenli Denklem Çözümü Download Sayısı : 377

YSA ile Tic-Tac-Toe : Download Sayısı : 300
KGDD lerde Nodul sayısı tespiti : Hem OpenCv hemde FANN için örnek program... Download Sayısı : 102

Yeni Projelerimden Fl_OpenCv ve de Basit OpenCv uygulamaları

Treshold + Fl_OpenCv 0.3 Download Sayısı : 269

cvBlobsLib kullanım örneği ve Fl_OpenCv 0.5 Bu programa
http://opencvlibrary.sourceforge.net/cvBlobsLib de Project samples kısmında link de verildi. Download Sayısı : 295

Yüz Bulma ve Fl_OpenCv 0.7 Download Sayısı : 462

ve Bir diğer Yeni Projem FannTool Download Sayısı : Windows (124) Linux (115)
Geçen sene boyunca pek çok dizi yazımız da oldu

* Debugging Hakkında 1 2
* Cross-Platform Programlama hakkında 1 2 3 4 5
* FANN ( Fast Artificial Neural Network Library) kullanımı hakkında 1 2 3
* Kırılamayacak Program olurmu ? sorusuna cevap aradığımız yazılar 1 2 3
* OpenCv'ye Giriş 1 2 3 4 5

Gelelim yapmadıklarımıza BluePlayer ile hiç uğraşmadım ve yarım olarak kaldı ve BushSweeper'ı tamalayamadım

Peki bu sene neler yapacağız. Öncelikle Yarım kalan projelerimi tamamlamak istiyorum

BluePlayer'a AudioCD desteği eklenecek
Bush emekli olmadan Bushsweeper'ı tamamlamak istiyorum Neme lazım Irakı özgürleştirdikleri gibi bütün dünyayıda özgürleştirmeye çalışacak başka Bushlar çıkabilir ! Bir de bush hakkında usturuklu bir yazı lazım İngilizce.

Fl_OpenCv zaten tamamlanmak üzere bug raporu felan gelmezse versiyon numarası 1.0'a yükseltilip tamamlanacak belki HighGUI deki video write fonksiyonlarıda münassip şekilde eklenebilir...

FannTool'un durumu biraz karışık, Ufak tefek düzenlemelerin dışında Run with File Ve Data Process kısmının yazılması lazımdı. Steffen Nissen gsoc2007 deki yeniliklerle birlikte FANN'ın yeni versiyonunu Şubat gibi çıkaracağını ve Pek çok yeniliklerin yanı sıra eski versiyonuyla uyumsuz olacağını açıkladı. Bu durumda FannTool'un bu versiyonuna uzun vadeli eklemeler yapmamı gereksizleştiriyor. FANN 3.0 çıksın bu projenin yönü ona göre değişecek gibi. Ama en azından - HB ile görüşmelerimizden anladığım - FannTool'un kullanımına dair bir yazı yazmak lazım.

Yarım kalan işlerimizin dışında Yeni projelerimizde olacak inşallah. Öncelikle Kendini Jardel sanan arkadaşa bir orta sözüm var ;) Daha sonra Volkan kaytarmazsa ortak bir şeyler yapacağız. Bütün bunların dışında Bulanık mantık konusunda bir pratik uygulama, Poor because Poor'un devamını ve AK nin sayesinde gördüğüm YSA ile kenar bulma üzerine yazmayı da istiyorum. Nasip Kısmet artık. Öneri ve istekleriniz olursa -olmazda hani belki - memnuniyetle ilgilenmeye çalışırız. Bekleriz efendim...

SetEnaniyet(KAF_DAGI);
Hey gidi hey siz ne zannediyorsunuz tuhaf bir adamın yazdığı tuhaf yazılarla dolu bir tuhaf sitemi ? Bu yazıları Ne Addison-Wesley ler ne McGraw-Hill/Osborne istedide vermedim. İsterler Tabii Böyle Pratik uygulamalarıyla birlikte bu konularada böyle yazıları kim kaybetmişde kim bulsun. Kıymetini bilin Kıymetini !
RelaseEnaniyet();

Çarşamba, Ocak 02, 2008

Fl_OpenCV 0.8 ve Inpainting




Fl_OpenCv nin yeni versiyonunu çıkarmış bulunuyoruz. Yeniliklerine gelince artık callback atayarak fare eventlerini kullanabiliyorsunuz fakat OpenCv değil FLTK eventları olarak...

Aynı daha önceki versiyonlarında olduğu gibi bir de örnek uygulamayla birlikte geliyor. Inpaint; Resimlerden nesne silme bozulmaları düzeltme gibi işler için kullanılan bir method. Bakınız üstteki resimler. Detaylı bilgi için google sizi bekliyor. OpenCv de cvInpaint diye hazır bir fonksiyon var. Biz de onu kullandık zaten. Navier-Stokes ve Alexandru Telea diye geçen İki farklı metodu kullanabiliyorsunuz.
Kullanımı basit inpaint yapmak istediğiniz yeri gidip fareyle işaretliyorsunuz. Inpaint tuşuyla gereken işlem yapılıyor. Kullanılacak metodu da isterseniz değiştirebilirsiniz. Neyse efendim lafı fazla uzatmayalım buyrunuz.
Inpaint with Fl_OpenCv 0.8

Cumartesi, Aralık 29, 2007

Poor because Poor !

Yıllar yıllar evvel - hey gidi günler hey - Üniversitede okurken diğer mühendislik bölümlerinin aksine biz ekonomi dersini İktisadi ve idari bilimler fakültesinden aldık. Diğer mühendislik bölümleri Mühedislik Bilimlerinden alıyordu. Ve bizim dönemimizde bir de yeni bir uygulama yapıldı. Dersin Her bölümünü ayrı bir hoca gelip ders anlatmıştı. Ekonominin bir çeşit mission impossible* olduğunuda oradan öğrendik. Hocalardan biri Fakir ülkeler niçin fakirdir üzerine bir şeyler anlatmıştı. Ve o Anllattığı şeyler aklımızda yer etmişti . Çok sonra öğrendim ki bu konunun evveliyatı varmış.
ben size konuyu oradan aktarmak istiyorum

...

ODTÜ, İdari Bilimler Fakültesi'nin kurucusu Fuat Çobanoğlu, 1959 yılında bizlere ‘‘Fakir milletler, niçin fakirdir?’’ diye yazılı bir sınav vermişti. Bir hafta sonra yazılının sonuçlarını sorduğumuzda, ‘‘Nasıl olsa saçmalamışsınızdır, zaten ben káğıtları mandalcıya verdim’’ dedi. İsyan ettik. Peki öyleyse, sınavı sözlü olarak tekrar ediyorum; sırayla cevaplayın dedi. Hatırladığım kadarıyla cevaplarımız üç sebepte birleşti. Bunlardan birincisi, ‘‘Medeniyet sıcaktan kaçar’’, ikincisi ‘‘Dinler, gelişmeyi köstekler’’, üçüncüsü ise ‘‘Gelişmiş ülkeler, az gelişmişleri sömürür’’ idi. Fuat Bey, medeniyetin sıcak ülkelerde kurulduğunu söyleyerek, tek fiskeyle birinci cevabı yıktı. Dinlerin gelişmeyi kösteklediği iddiasına karşı, insanlığın tarihi gelişiminde, dinlerin medeniyete çok büyük katkılarda bulunduğunu örnekleriyle anlattı. O sebep de havaya uçtu. Geldik üçüncü sebebe. Yani ‘‘sömürü’’ teorisine. Şu soruyu sordu. Niçin siyah Afrikalılar, yaptıkları top ve tüfeklerle, gemilerine binip Avrupa sahillerine çıkarak beyaz Avrupalıları sömürge ulus haline getirmediler? Verdiğimiz cevap, siyahların o kadar ileri olmadığı idi. Çobanoğlu, işte ben de onu soruyorum. Niçin siyahlar, beyazlar kadar ileri gidememiştir? Sizin cevabınız, geriliğin (yani fakirliğin) nereden kaynaklandığının değil, geri kalmış olanların niçin başının beladan kurtulamadığının açıklaması.

Peki hocam siz söyleyin, dedik. Fakir ülkeler, niçin fakirdir?

(Son söz, Çobanoğlu'ndan.)

SON SÖZ: Fakir ülkeler, fakir olduğu için fakirdir.
...
Saçamamı buludunuz. Şöyle açıklayayım Pek çok sektörde para kazanabilmeniz için para harcamanız gerekir. yine Ege Cansenden devam edelim

‘Fakir ülkeler niçin fakirdir’ sorusuna verilen ‘çünkü fakirdir’ cevabı, saçma değildir. Çünkü, fakirlik hangi sebepten başlamış olursa olsun; fakir ülkelerin, fakir oldukları için fakir kalma ihtimalleri büyüktür. Fakirlik, tuzaklarlarla dolu bir kısır döngüdür. Önemli olan, bu çemberinin nereden ve nasıl kırılacağının bilmektir. Zenginleşememek ‘fakirlik tuzaklarından’ kurtulamamaktır. Dolayısıyla, refaha giden yolun birinci adımı, ‘fakirlik tuzakları’nın neler olduğunu teşhis ve bunlardan kurtulma yöntemlerini bulmaktır.

Peki bütün bunların burada işimi ne ? açıklayayım. Bence Programlama bu kısır döngüyü kırmamızda yardımı olacak bir sektördür. Çünkü Başlangıç için gereken sermayeye** sahibiz ve dünyanın herhangi bir yerindeki yazılımcının imkanları bizim burada sahip olduğumuzun üstünde değil.

Peki niçin olmuyor niçin dünya çapında yazılım şirketlerimiz yok. Anlatacağız efendim sabırlı olun ...

* Economics is the study of the use of SCARCE resources to SATISFY UNLİMİTED human wants
** Orta halli bir bilgisayar İntenet gibi devasa bir kaynak ve Çalışan bir kafa ve en önemlisi çalışan insan. En önemlisi diye özellikle yazdım diğerlerine fazlasıyla sahip olupta internette ömür çürüten pek çok insan var...

Salı, Aralık 25, 2007

FLTK Linkleri


Yazdığım programların tamamında FLTK kullandığımı biliyorsunuz. Bu programları epey bir indiren de var downloads sayıları öyle gösteriyor. Ama kimseden kod konusunda yorum ve düzeltme isteği gelmiyor. Ben bunu FLTK nın pek bilinmemesine bağlıyorum. Bu eksikliğe bir nebze olsun faydası dokunacak kaynakları göstereyim istedim
Öncelikle Ana Site
http://www.fltk.org/
Online Dökümantasyonu
http://www.fltk.org/documentation.php/doc-1.1/toc.html
PDF versiyonu da var referans bilgilerinin yanında nasıl kullanılacağına dair örnekler ve yazılar içeren bir e-kitap.

FLTK nin 3 ana versiyonu var 1.1.x , 1.3.x ve  2.0.x. Sondan başlarsak  2. versiyonu daha gelişmiş bir sürüm olarak dizayn ediliyormuş fakat kararlı bir sürümü yok. Yakın gelecekte de olacak gibi görünmüyor, tavsiyem hiç bulaşmayın.

1.1.x serisi daha bir oturmuş 1.1.9 kararlı sürümü olarak var 1.1.10 in eli kulağında. Ve söylenenlere göre bu 1.1.x serisinin son sürümü olacak. Benim tavsiyem vede kullandığım 1.1.x versiyonu.

Bana UTF8 lazım diyorsanız  1.3.x de UTF8 de var. yapı olarak 1.1.x serisine benziyor extra widgetlerde eklenmesi düşünülüyor. Halen kararlı bir sürümü olmasada oldukça kararlı bir yapısı olduğu söyleniyor. Zaten 1.1.10 dan sonra bütün çalışmalar bu seriye yönelecek gibi görünüyor. 


FLTK öğrenecekseniz size ilk seçenek olarak Erco'nun videolarını önerebiliriz
Yine Erco'nun küçük örneklerden oluşan Erco's FLTK Cheat Page de işinize yarayacak pek çok şey bulabilirsiniz Size tavsiyem referans olarak da kullanın.
Oralara  kadar gitmişken  Fl_Table ,  Fl_Native_File_Chooser  ve Fl_Tree ye bakmadan geçmeyin çok faydalı ve kullanışlı bileşenler.

Bir FLTK ya giriş yazısı : Beginner Fltk Tutorial

Pekiii bir yerlerde takıldınız nereden yardım alacaksınız 2 seçeneğiniz var. Ana sitedeki forum kısmı yada GIDForums -> Computer Programming Forums -> FLTK Forum
Son bahsettiğimiz. forumdan FLTK kullanımı ile ilgili iki makale
GUI programming with FLTK
FLTK && fluid In Motion

FLUID den daha önceleri bahsetmiştim. FLTK'nın GUI tasarlamak için çok pratik bir aracı.
FLTK ve FLUID için hazırlanmış bir dizi makale 1 2 3 4 yazılar Almanca fakat FoxLingo'nuz varsa problem yok :)

FLTK nın en büyük eksikliği insan Kullanan ve ilgilenen insan sayısı artsa pek çok GUI kütüphanesini geçer. Çünkü çok sağlam ve bir temeli var. Hemen her platformda çalışıyor.
Ama ilgilenen sayısının eksikliği, Kaynak, ekstra bileşen -widget - ve örnek azlığına sebep oluyor. Bu eksikliği bir nebze olsun gidermenin yolu FLTK kullanılarak yazılmış programların
Kodlarını inclemekten geçer. Bunlardan bazıları

Gmsh: a three-dimensional finite element mesh generator
Avimator is an easy-to-use, open source tool for creating and editing avatar animations for Second Life.
PosteRazor Make your own poster!
Nuke : The Nuke-2D compositing software allows for the creation of complex interactive digital composites using relatively modest computing hardware. FLTK nın babası Bill Spitzak'ın yazdığı ödüllü program ayrıca bakınız Linux and Star Trek ve FLTK ile yapamayacağınızın olmadığını anlayın
flPhoto : flPhoto is a basic image management and display program
Sudoku : Sudoku game
SPTK library : FLTK temelli bir GUI kütüphanesi yanında pek çok Veritabanına ulaşmanızı sağlayan SPDB ile birlikte
Ve Ekstra bileşenler
Fltk_Contour : The Fltk_Contour is an attempt to develop an easy scientific data visualization widget for the FLTK library.
Flmm : Flmm is a collection of new and improved widgets for the FLTK toolkit.

Bütün bunların üstüne benim yazdığım programlarda sizin için -pek iyi olmasada -örnek sayılabilir. FannTool, BluePlayer, BushSweeper, ...
FLTK öğrenmeye başlarsanız elimden geldiğince yardımcı olmaya çalışacağımı söylememe gerek yok sanırım...

Cumartesi, Aralık 01, 2007

Ölümden Yaşama


Baş koymuşum Türkiyemin yoluna
Düzlüğüne yokuşuna ölürüm
Asırlardır kır atımı suladım
Irmağının akışına ölürüm

Uğrunda ölürüz öldürürüz. Bir şehidin yerini bin alır. En son ocağımız sönmeden sönmez bu şafaklarda yüzen al sancak. Fakat...

Bu ülke 89'dan beri su alan bir gemi. Fransız ihtilali yalnız Batı feodalitesini değil ihtiyar şark'ın da ölümü olacaktır. Osmanlı, bir başka medeniyetin varlığını o zaman farkeder: henüz ne imanını kaybetmiştir ne de haysiyetini... Zirvelerden bakar Diyar' ı küfre; Avrupa maddedir kendisi ruh. Bu tanımadığı dünyanın kesif ve müselsel taarruzları karşısında kuvvetinden şüphe etmeye başlar,.. Hayret yerini hayranlığa bırakır., hayranlık Teslimiyete.

Fakat kabul edelim ki cenk devri bitti Bayrağın bayrak olması için kan, Toprağın vatan olması için ölmek yetmiyor. Iramağın akışına ölmek değil, bir zerresini boşa akıtmamak için alınteri dökmek lazım. Sıktığında şüheda fışkıran toprağın düzlüğünü, yokuşunu artık alın terimizle sulamanın vakit gelmedimi ?
Bayrakları bayrak yapan üstündeki kandır,
Vatan eğer uğrunda ölen varsa vatandır.
Yüzyıllarca uygulanmış ama yeterli olmamıştır. Üstüne birazda

Bayrakları bayrak yapan üstündeki alınteridir,
Vatan eğer uğrunda yaşayan varsa vatandır.
demek lazım

Mehmet Akif'in "Allah bir daha bu millete istiklal marşı yazdırmasın" duasına canı gönülden amin deyip bunun için gerekli olan fiili duaya -çalışmaya uğrunda yaşamaya - bir an önce başlayın.

Not : Bu yazı kısmen Uçaktaki bir tanımadıkla yapılan memleket kurtarma sohbeti sonrası Münih te bir Otel odasında güneş doğarken yazıldı