Sayfalar

Cumartesi, Mayıs 01, 2010

Tezlerede FannTool

YSA ile ilgili tezlerde FannTool kullanmı artıyor.%200 bir artış! var.  Daha önce bir başka tezdende bahsetmiştik.
Bahsedeceğimiz ilk Tez Ahmet Mert AKTAŞ'ın  TUIK uzmanlık tezi

Yapay Sinir Ağları Metodolojisi  İle Düzeltme  Yöntemi Öngörüsü
Günümüzde, teknolojinin gelişmesi ile  bilgisayarlar karar verici organlar olmaya başlamış ve insan zekasına haiz birçok durumu bir arada değerlendirme yeteneğine, çesitli algoritmalar ile erişmişlerdir. İnsan zekası benzeri bir yapıyı, bilgisayara aktarma konusunda yazılım  yöntemlerinden biri de yapay sinir ağları ve yapay zeka’dır. Bu çalışmada, yapay sinir ağlarının düzeltme yöntemi olarak kullanılmasıyla ilgili kapsamlı bir arastırma olusturulması amaçlanmıstır. Öncelikle yapay zeka kavramından bahsedilmis, yapay zekanın bir alt baslığı olan yapay sinir ağları kullanılarak Yapısal İş İstatistikleri Ana Soru Kağıdı (A101) için düzeltme yöntemi  öngörülerinde bulunulmustur. Yapmıs olduğumuz bu öngörülerin somut verilerle elde edilen basarısı değerlendirilmistir. Özellikle soru kağıdı üzerindeki nitelikli isgücünü arttırması ve cevaplayıcı yükünü azaltması gibi belirgin avantajları nedeniyle yapay sinir ağlarını, soru kağıtları için düzeltme yöntemi olarak kullanmanın gerekliliği çok önemlidir. Standart uygulamaların altyapısı ancak insani unsurların tam kontrollü sistemlere aktarılmasıyla mümkün olacaktır. Ancak yıllık olarak derlenen soru kağıtlarından elde edilen verilerin su an için sınırlı sayıda olması ve ilgili periyotta birçok farklı değiskenden etkilenmesi gibi nedenlerle uygulama üzerinde daha çok arastırma yapılmalıdır.
İkincisi  Turan Güzel'in  İnşaat mühendisliği Yüksek Lisanas tezi

Filyos Hisarönü Dalga Verilerinin Yapay Sinir Ağları, ARIMA Modelleri ve Melez Modeller ile Tahmini

Zaman serilerinin çözümünde birçok yaklaşım kullanılmaktadır. Kıyı yapılarının projelendirilmesinde, özellikle proje sahasında yapılan ölçümlerden elde edilen verilerin kullanılması yapılacak projenin devamlılığı açısından önemlidir. Bu çalışmada planlanan Filyos Limanı için yörede yapılan dalga yüksekliği ölçüm verileri kullanılmıştır. Bu verilerin oluşturduğu zaman serisi elde olmayan sebeplerden dolayı kesintilere uğramıştır. Eksik kalan dalga yüksekliği verileri Yapay Sinir Ağları, ARIMA Modelleri ve Melez Modeller kullanılarak tamamlanmıştır. Yapay Sinir Ağı Modeli seçilen zaman serisine en iyi uyumu sağlamasına rağmen, ARIMA Modeli diğer serilere Yapay Sinir Ağı modelinden daha yakın sonuçlar verdiğinden dolayı göz ardı edilmemelidir.
Bundan sonrada FannTool'un kullanılacağı tez veya projeler için hertürlü yardımı yapmaya ve bittikten sonrada tantımlarını buradan yapmayı planlıyoruz. Tabi haber ederseniz....

Cumartesi, Nisan 24, 2010

YSA ile Basit bir Zaman Serisi Analizi

Öncelikle tanım ile başlıyalım. " Zaman değişkeniyle ilişlkili bir değişken hakkında, elde edilen gözlem değerlerini zamana göre sıralanmış olarak gösteren serilere, “zaman serisi” denir." detaylı istatistiki açıklamalar için şuraya müracaat edin.

Bizim YSA ile analizinden kast ettiğimiz için  Zaman serisi üzerinde Yapay Sinir Ağları ile ileri ye doğru tahmin yürütmektir. Bunun için Öncelikle Zaman serisini dönüşrümemiz gerekiyor.  Dönüşüm için kullanacağımız varsayımımız da şöyle

"Zaman serisinde bir değer kendinden önce gelen değerlerle ilişkili ve dolayısıyla onlarla tahmin edilebilir"

Mesela Yarınki hava sıcaklığı geçen günlerdeki hava sıcaklıklarıyla İlişkilidir. Bu durumda YSA dizaynı için çıkış değişken saymızı belli zaman serimizin bir sonraki değeri. Giriş değerlerimizde önceki veriler.  Örneğimizde dönersek yarınki Hava sıcaklığı bugünki ile ilişkilidir. Bugünkü de dünküyle, dünkü önceki gündeki ilişkili olduğuna göre onlarda Yarınki hava sıcaklığıyla nispeten etkileri azalarakda olsa ilişkilidir. Burada bir seçim yapmamız lazım Giriş değerleri olarak kullanacağımız verileri ne kadar geriye götüreceğiz.  Onu seçince artık giriş değişken sayımızda belirlenmiş olur.
Mesela bunu 4 seçersek şöyel bir ilişki kurmuş oluruz



Bundan sonrası elimizdeki verileri bu ilişkiye göre hazırlayıp, Bir YSA dizayn edip eğitmek kalıyor. FannTool'un DataProcessing kısmıyla her satıra bir değer gelecek şekilde hazırladığınız verileri. yukarda bahsettiğimiz şekle kolayca sokabilirsiniz.

Basit bir örnek yaparsak, Şöyle bir Zaman Serimiz olsun








Bu verileri,  Çıkışı 1 girişini 9 olan bir YSA ile Modelleyelim. Eğtim aşamasından sonra. Test edelim ve Gerçek sonuçlarla YSA tahminlerinin uyuşmasını kontrol edelim










Grafikdende  göreceğiniz gibi YSA gayet de uygun tahminler vermiş. Peki Aynı YSA'yı kullanarak ileriye doğru tahmin yürütmeye devam edersek ne olur. Yani yarınki değeri YSA ile tahmin edip. sonra bu tahmini giriş gibi kullanıp ertesi günkü değeri hesaplasak

( T1 , T2 , T3 , T4) -> T5
( T2 , T3 , T4, T5 ) -> T6
( T3 , T4 , T5, T6 ) -> T7
...

Hemen FannToolu'muzun  "Run as TS"*  kısmını açıp kaç kere ileriye doğru çalıştıracağını belirtip, sonuçları  alıyoruz. Ve Grafiğimize tekrar bakıyoruz








Hiçde iç açıcı bir bir grafik değil.  Aslında metodumuzun pek çok eksiliği var. Fakat müekemmel diyebileceğimiz bir sistem bile kursak, tahminlerimizdeki hata payı ileriye doğru yayılıyor. Daha detaylı bilgi için Kelebek etkisi ve Kaos Teorisi  konularına bakabilirsiniz. Yok kim okuyacak onu ben filmini seyredeyim diyorsanız, boşuna Kelebek etkisi filimlerine bakmayın. Esas hala izlememişseniz Pi Filmini ** izleyin


Not :
*  Boşuna elinizdeki programda aramayın yakın zaman da yayınlamayı umuduğum versiyonda olacak İnşallah
**  Filminden bir parça
Restate my assumptions.
-One: Mathematics is the language of nature.
-Two: Everything around us can be represented and understood through numbers.
-Three: If you graph the numbers of any system, patterns emerge. Therefore, there are patterns everywhere in nature.
-Evidence: The cycling of disease epidemics,  the wax and wane of caribou populations, sun spot cycles, the rise and fall of the Nile.
So, what about the stock market? The universe of numbers that represents the global economy. Millions of hands at work, billions of minds. A vast network, screaming with life. An organism. A natural organism.
-My hypothesis: Within the stock market,|there is a pattern as well... Right in front of me, hiding behind the numbers. Always has been.

Pazar, Nisan 18, 2010

cvPreProcessor for OpenCv 2.1


Aslında bir yenilik yok. Zaten şu aralar pek de uğraşamıyorum. ama cvPreProcessor'u yayınladıktan sonra OpenCV 'nin 1.1 , 2.0 ve şimdide 2.1 versiyonları çıktı.
Şimdi cvPreProcessor'u kullanmak istiyenlere tekrar derleyi verin yada OpenCv 1.0 'ın dll lerini bulup yanına koyun demekde  pek şık olmuyordu.
Bende En azından windows kullanıcıları için, yanında dll leriyle sadece çalıştırılabilir bir halde yayınlıyorum.

İndirmek için  : cvPreProcessor for OpenCv 2.1
İşinize yaraması umuduyla

Cuma, Nisan 09, 2010

OpenCv 2.1 Çıktı

Evet OpenCv 2.1 sessiz sedasız yayınlandı, Haberdar edelim ve İlk izlenimlerimizi  söyleyelim dedik...

  • Pekçok bug temizlenmiş
  •  OpenMP yerine TBB koymuşlar ( bence malesef  Anlayabildiğim kadarıyla TBB nin iki lisansı var biri ticari 299 $ cık diğeri GPL v2. GPL'inde ticari kullanımı sıkıntılı. BSD gibi ticari uygulamaya uygun bir lisansa sahip olan OpenCv'ye bu haldeki TBB yi yamamak bence çok saçma olmuş. Pek tabiiki Intelin açısından bakılırsa gayet münasip de görünebilir.
  • autotools desteğinide  kaldırmış. Özellikle Linux için gayet kolay oluyordu, artık Linux da da CMake ile cebelleşmemiz lazım.
  • 64 bit derleme desteği geliştirilmiş.
  • Statik derleme imkanı sunulmuş. Gayet güzel  dll dertlerinden kurtuluruz bu sayede...
İlave Notlar  :
  • Statik derleme seçeneği hata veriyor ve build tamamlanamıyor hem VS Express hemde Code Blocks için denedim sonuç aynı
  • OpenCvSharp da OpenCv 2.1 için uygun paketini yayınladı

    Pazar, Nisan 04, 2010

    Yapay Zeka Tıbbın Hizmetinde 4 ( Acute Inflammations )


    FANN 'ın C# ile kullanımını göstermek için uygun bir fırsat bekliyorduk. Ve şimdi karşınızdayız
    Acute Inflammations veri setini kullandık. Veriler bir uzman sistem için oluşturulmuş ama biz YSA kullancağız.


    Konunun detayını aynen aktarıyorum. ( Zaten iyi olmayan ingilizcemle birde Hiç bilmediğim Tıp alınandaki yazıyı çevrime cüretini gösteremedim anlayacağınız )

    The main idea of this data set is to prepare the algorithm of the expert system, which will perform the presumptive diagnosis of two diseases of urinary system. It will be the example of diagnosing of the acute inflammations of urinary bladder and acute nephritises. For better understanding of the problem let us consider definitions of both diseases given by medics. Acute inflammation of urinary bladder is characterised by sudden occurrence of pains in the abdomen region and the urination in form of constant urine pushing, micturition pains and sometimes lack of urine keeping. Temperature of the body is rising, however most often not above 38C. The excreted urine is turbid and sometimes bloody. At proper treatment, symptoms decay usually within several days. However, there is inclination to returns. At persons with acute inflammation of urinary bladder, we should expect that the illness will turn into protracted form.

    Acute nephritis of renal pelvis origin occurs considerably more often at women than at men. It begins with sudden fever, which reaches, and sometimes exceeds 40C. The fever is accompanied by shivers and one- or both-side lumbar pains, which are sometimes very strong. Symptoms of acute inflammation of urinary bladder appear very often. Quite not infrequently there are nausea and vomiting and spread pains of whole abdomen.  The data was created by a medical expert as a data set to test the expert system, which will perform the presumptive diagnosis of two diseases of urinary system. The basis for rules detection was Rough Sets Theory. Each instance represents an potential patient
    Attribute Information:

    a1 Temperature of patient { 35C-42C }
    a2 Occurrence of nausea { yes, no }
    a3 Lumbar pain { yes, no }
    a4 Urine pushing (continuous need for urination) { yes, no }
    a5 Micturition pains { yes, no }
    a6 Burning of urethra, itch, swelling of urethra outlet { yes, no }
    d1 decision: Inflammation of urinary bladder { yes, no }
    d2 decision: Nephritis of renal pelvis origin { yes, no }


     Yapılan işlem diğerlerinden farklı değil aslında. Yinede soracağınız bir şey olursa biz buralardayız. YSA eğitimi için yine FannTool 'u kullandık. ve sonuçda Eğitilen YSA oldukça iyi oldu. Başarısı hem test hemde Eğtim verileri için % 100.

    C# kısmında Basit bir GUI tasarlayıp Giriş değerlerini Kullanıcadan alıp Eğitilmiş YSA'yı bu giriş değerleriyle çalıştırmak. Ve tabii ki sonuçlarıda göstermek.


    Indirmek için :   Acute_Inflammations

    Not :
    • Artık Ben C# kullanıyorum FANN'ı nasıl kullanabilirim ? sorusununda cevabını vermiş oluyoruz. 
    • Böyle el alemin yayınladığı veriler yerine Sizin verilerinizide  kullanılabilir, Mümkün mertebe yardımcı olmaya çalışırız duyrulur...
    • "Yapay Zeka Tıbbın Hizmetinde" serisinin önceki yazıları 1 2 3

    Pazar, Mart 14, 2010

    Yazılım Atölyesi Ankara'da Mart ayı etkinliği

    Yazılım Atölyesi Ankara'da Mart ayı etkinliğine katılmak için dün yollara düştük.  Önce Kızılayda Otobüs durağında Hüseyin ile karşılaştık. Kendisi cıva gibi, genç ve cevval bir arkadaş, e-devlet kesmemiş birde buralara gelmiş sağ olsun. ( Geçen sefer bizim verdiğimiz sunumdan kaçmak için şehir dışına kaçmasını unutmadık bir kenara ilerde aleyhinde delil olarak kullanılmak üzre yazıldı )  Neyse efendim otobüs yolculuğu sırasında arkadaş cevvaliyetinden yerinde duramadı ve atlayı verdi, ve tabii ki bende peşinden  ne de olsa yoldaşını yarı yolda bırakmak olmaz. Neyse geri kalan yolu yayan tamamlayıp, etkinliğin yapılacağı yere vasıl olduk.

    Etkinliğe vardığımızda Ahmet Alp kardeşin  başkanılığınıda (TBD Genç )  görmüş olduk. Sağa sola kükrüyordu. mesela "Tiz standa dön" diye kızcağızlara fırça attığına şahidiz. Normal karşıladık nede olsa organizasyonu çevirmeye uğraşıyordu. Oragnizasyona katılımının çokluğu , bu işi kotardığını gösteriyordu.

    Vakit tamam olunca öncelikle sahneye Hamdi Kavak çıktı. Bize n-tier olamayan  “Katmanlı Yazılım Mimarisi” üzerine bir şeyler anlatmaya çalıştı. Öyle eskisi gibi gecekondu tipi ( yada hala benim yaptığım gibi ) yazılım kabul edilimiyormuş. İlla bir mimari proje neyin çiziktirmek gerekiyormuş. Konuşma sonundaki sorudan hazirunun konudan ne kadar haberdar olduğunuda anlamış bulunduk.

    Sonraki konuşma daha çok TBD ve TBD Genç Reklamları  mesabesindeydi. TBD de olacak kadar kelli felli ve bilişimde iş güç sahabısı olmadığımızdan, Gençde olmadığımızdan pek ilgimizi çekmedi. Zaten konunun sonunda vakti zemanında TBD genç kurucu başkanına söz veriiince iş iyice sarpa sardı. Bu arkadaş TBD genç de koşturmak yerine kendiniz yetiştirmeğe bakın, diyecekken ana konuya zıt düşmemek için lafı biraz çevirerek vaziyeti kurtardı.

    Sonraki konuşma Ahmet Akdağ tarafında  "Yazılım Geliştirme Süreçleri: Agile Modeling" .  Bu arkadaşda  "Müşteri her zaman haklıdır" düsturunun ingilizcesinden bahsetti. Yazılımı bu düsturla yaparsak daha bir başarılı ve kaliteli oluyormuş. Ben bazı sorularımla kısmen konuşmayı sabote etmeğe çalışsamda. Ortam ve vakit pek müsait değildi, kısmet. 

    Etkinlik sonunda, o kadar kişi önünde yapılmış sunumlarla meşhur olmuş arkadaşlardan, imza istekleriyle olması muhtemel  izdihamı önlemek adına,  Adımıza imzalanmış kağıtlar dağıtıldı. (Başkanın organizasyon dehasını gösteren bir örnek daha )

    Etkinlik arası tenefüssler ve çay, kahve  ikramı ben içmemiş olsamda iyi oluyor. Ama yine not ediyorum 3 konuşma fazla geliyor, Organizatörlere duyrulur.


    Bir dahaki  etkinlikte görüşmek üzre

    Çarşamba, Şubat 24, 2010

    Bir Ömür Harab Oldu...


    Dertliyim ruhuma hicranımı sardım da yine
    İnlerim, şimdi uzaklarda solan gün gibiyim
    Gecenin rengini kattım içimin matemine
    Sönen ümit ile günden güne ölgün gibiyim
    ...
    Üstteki resim Sedef Taylan Ceylan isimli bir öğretmenimizin eseri. 
    Sözler ise Güftesi Vecdi Bingöle bestesi Sadettin Kaynağ'a ait olan Meşhur  "Üzgünüm Leyla"  dan.
    Sönen ümit ile günden güne ölgün olan ise benim...

    Pazar, Şubat 21, 2010

    Yazılım Atölyesi 2 ( Handwritten Digit Recognation )

    Ankara Yazılımcıları'nın düzenlediği Yazılım Atölyesinin ikincisini dün TOBB ETÜ de yaptık. Konusu Yapay Sinir Ağlarıydı. YSA teorik kısmı üzerine olan sunumu Ahmet yaptı uygulama kısmı ise bize düşmüştü.


    YSA uygulaması için konu olarak Elyazısı Rakam Tanıma yı seçtik. Veriler hazır aldık  "Semeion Handwritten Digit Data Set" 'i kullandık. Bir de program yazdık


    Program C++ ile yazıldı Fakat FANN kütüphanesini ve eğitilmiş YSA yı kullanarak başka bir dildede yazabilirsiniz. Kendi eğittiğiniz YSAyı, yada Veri dosyasını deneme imkanına sahipsiniz.

    File->Load ANN
    File->Load Test File

     Clear ile Matrisi temizleyip kendi çizeceğiniz karekteride okutabilirsiniz

    Sunumu dosyasını ve kodu indirmek için : Download

    Pazar, Şubat 07, 2010

    Bulanık mantıkla Inverted Pendulum kontrolü

     

    Inverted Pendulum -Ters Sarkaç- dedikleri sistemin   Uzun yıllar kontrol teorileri için ilginç bir araştırma konusu olmuşmuş. Ben söyleyenlerin yalancısıyım. Lafı uzatmayalım M.Ali Akcayol'un "Klasik Bulanık Mantık Denetleyici Problemi  Inverted Pendulum" dökümanındaki açıklamalar esas alınarak hazırlanmış bir program yazdık. 


     

    Programlama dili C#.  Bulanık mantık işleri için yazılmış, açık kaynak kodlu LGPL lisansına sahip güzel bir kütüphane olan DotFuzzy kullandık. Ekranda gördüğününüz grafik için de ZedGraph bileşeni kullanıldı. Bu bileşende LGPL lisansına sahip açık kaynak kodlu bir proje. 

    Program  "Inverted_Pendulum1.xml" ve "Inverted_Pendulum2.xml"  dosyalarındaki Bulanık mantık sisteminin kayıtlarını kullanarak sistemi çalışmasını gösteriyor. Modeli değiştirmek içim Load Model ile ilgili dosyayı seçip yüklemeniz yeterli. 
    Ben de değişik bir model hazırlayım diyorsanız; Programın  "InitFuzzySystem()" kısmında Model tanımlamalarının Nasıl yapılacağınıda görebilirsiniz.  Detaylar için Yukarda linkini verdiğimiz dökümana mürcaat edin.
    İndirmek için  (Download) : IPendulum
    Her zaman dediğimiz gibi Analaşılmayan bir yerler varsa biz buralardayız danışabilirsiniz

    Pazar, Ocak 31, 2010

    Plaka Okuma II

    Öncelikle tekrar  Plaka Okuma  yazımıza göz atmanızda fayda var

    Evet İlk yazımızda belirttiğimiz gibi. Bu tip bir uygulma için elimizde örnek verilerin olması lazım. Bizim öyle bir imkanımız malesef yoktu. Bizde JavaANPR de kullanılan verileri alıp onlar üzerinden bir şeyler hazırlamaya çalıştık. 

    Bu veriler ilk aşama için yeterli olsada diğer aşamalar için yetersizdi. mesela Karakter tanıma için ; plakada geçen her harf ve rakam için yeteri sayıda örnek görüntü lazım. Bu durumda işin kolayına kaçıp bulunan plakayı okuması için Optik Karakter Tanyıcı (OCR) programına havale ettik.Pek tabikii bu durumda sistemin başarısı OCR nin başarısına bağlı kaldı... 

    Sonuç olarak Otomatik Plaka Okuyucu Sistemi dediğimiz program ortaya çıktı.


    Programa aslında C++ ile başlamış olsamda. bur aralar C# pekiştirdiğimizden  C# ile tekrar yazıldı ve tamamlandı. İsmi de bu yüzden OPOSSharp oldu. Pek Tabii ki OpenCvSharp kullanıldı. OCR programı olarak GOCR kullanıldı.
    Üzerinde çalışmaya devam etmek gibi bir niyetim yok. Eğer böyle bir niyetim olsaydı ayrı bir proje sayfası açardık.  Unutmadan kodların lisansı GPL ve Projeye devam etmek isteyenler olursa da yardımcı olmaya çalışırız.

    Download : İndirmek için

    Cumartesi, Ocak 23, 2010

    Histogram of oriented gradient object detection

    Nesne tespiti için pek çok metod var. Mesela yüz bulma için OpenCv de HaarCascade metodu kullanılıyor. OpenCv 2.0 ile birlikte Histogram of oriented gradient object detection  yani HOG de eklendi. Örnek programlarda "peopledetect.cpp" dosyasınında kullanımını görebilirsiniz.

    Biz C# ve OpenCvSharp ile bir örnek hazırladık. Bu örnekde hem Hog kullanımını hemde Video dosyasınından görüntü çekmeyi göreceksiniz. Hog 'un şu andaki performansını pek de beğenmedim ama daha iyi  "HOGDescriptor" kullanılarak belkide daha iyi sonuçlara ulaşılabilir. Konuyla ilgili daha teferruatlı bilgi için
    Object Detection Using opencv - Integral Histogram for fast Calculation of HOG Features I  II III

    İndirmek için :  HogObjectDetection

    Not : Resimdeki görüntü Sezai Karakoç'un Mona Roza şiirinin Sacit Onanın okuyuşundan. Yoksa siz hala dinlemediniz mi ? ne ayıp...

    Pazar, Ocak 17, 2010

    Ankara Yazılımcılar Workshop'u 1

    Dün duyrusunu yaptığımız aktiviteye katıldım. 
    Kısaca yapılanlardan bahsedeyim program biraz gecikmeyle başladı
    Önce Yasin Okumuş dan "Azıcık Ucundan Spring" konusunda bir şeyler dinledik. Sonrasında Hüseyin Mert den "0auth'ta giriş"başlığı altında 0auth'un meziyetlerini dinledik. Varılan nihayi nokta ; eğer yaygınlaşırsa kullanıcıların başına bayağı bir bela olacak. Son olarak da Mustafa Dalcı dan "Kullanılabilirlik Sunumu" dinledik. İlgimi çeken şey Web sitesine girildiğinde gözlerin nereye baktıklarını çıkarmışlar. ve ona göre önerilerde ve çıkarımlarda  bulunuyorlar. 

    Neyse Sonuç olarak Yazılımcıları çoğunun  web-programlama üzerine çalışdığını anlamış oldum. Ben amatör olduğumda olsa gerek konular genelde ilgimi çekmiyor, sadece Kullanıcı göz hareketlerininin YSA ile modellenebileceği aklıma geldi. yani mesela Web sayfasının görütüsünü veriyorsunuz size nerelerin dikkat çektiğini veriyor neden olmasın.

    Program sonrası gençler  Çatıya çıkalım dediler! Ben ihtiyar adamım çatılarda işimne düşerim felan diye gitmedim. Hem zaten kaçmak üzre olan büyük bir davet vardı ona yetiştim...

    Bir dahaki sefer için önerilerime gelirsek;
    • 3 sunum fazla geliyor 2 sunum daha mantıklı
    • Sunumlar arası biraz tenffüs de iyi gider gibi
    • Tanışma faslı konulabilir. İnsanların çoğu bir birini tanıyordu belkide bu yüzden gerek duymadılar sanırım
     Organize edenelere Sunumları yapanlara teşekkürler...

    Cumartesi, Ocak 16, 2010

    Ordan Burdan Haberler

    Aslında uzun uzun yazmak istediğim ama fırsat bulamadığım haberler var. En iyisi kısa kısa duyurmak yoksa unutup gideceğim.
    • FLTK nın 1.10 kararlı sürümü yayınlandı. FLTK 1.3 ise son sürat gelişmesine devam ediyor ( erconun bileşenleri  -widget-  eklendi mesela  Fl_Native_File_Chooser, Fl_Table, ve Fl_Tree_View.)
    •  Artık güzide memleketimde FLTK konusunda yalnız değilim. Ufuk Şanlı kardeşimiz bu konuda çalışmalar yapıyor. Hatta yeni bir FLTK bileşeni (widget) de yazdı  spriteBox 1 2 ( naçizane ismini Fl_Sprite_Box olmasını buradan öneriyoruz biraz daha standart FLTK notasyonuna benzesin diye )
    • Dünyanın seçkin üniversitelerinde ders dinleme imkanına sahibiz artık www.academicearth.org daha öncede benzeri bir siteden bahsetmiştik faka bu sitenin güzel tarafı dersleri indirme imkanını tanıması  darısı memleketimizin seçkin üniversitelerinin başına

    • OpenCv nin geliştiricilerinden Gary Bradski Willow Garage da staj için duyuru yaptı aynen aktarıyoruz belki birilerine faydası dokunur
      We (Willow Garage http://www.willowgarage.com a robotics institute/incubator) can use an intern in 3D model capture.

      That is: using silhouettes to capture an object and combine that with structure from motion and stereo clues to create 3D object meshes out of objects. Pay is good, free food, great location, work with robots, sensors -- you can best summarize Willow as: Fun. Papers will be written, hard work but good times, see examples at http://www.willowgarage.com/pages/community/interns-and-visiting-scholars .

      Who:
      US, or US work visa is easiest. For more exceptional people who can stay longer than 3 months, we'll deal with helping obtain a work visa. This is an internship which means you are enrolled in some school. We might also consider doing this with a consulting arrangement for non-students, but at Intern rates. For real exceptional situations, work in place may be possible and/or student grants to fund work in place.

      Timing:
      Winter, Spring, Fall. Summer is very full here already with interns. Exception: Come in Spring and stay through the Summer.

      Requirements:
      MUST:
      You must be a seasoned programmer in C++. There is no time for learning curves, we work with robots and fairly complex systems.
      You must have a good understanding of geometric vision. Calibration, homography, structure from motion.
      PLUS:
      Computer graphics a big plus
      Experience in optimization, CUDA etc also a plus.
      Experience working with robots is a plus.

      If you meet the "MUST" above, send application to jobs@willowgarage.com Put in the title: "Intern: 3D Model Capture"


    şimdilik bu kadar.

    Pazartesi, Ocak 11, 2010

    Yüz Nitelik Seçici



    Bu programımız ile verilen resimdeki yüzler OpenCv nin haarcascade detectorleriyle tespit edilip standart ebata ( bu programda 64x64 ) çevriliyor sonrasında yüz niteliklerinin koordinatlarını seçip kaydediyoruz.
    Bu koordinatlar İlerde bize "Göz Bulma" türü programlar  hazırlamamız için  gereken verileri sağlayacak. Bu konuda çalışma yapanlara bir faydası dokunur belki. Hatta biraz daha üzerinde çalışılsa daha genel bir Nitelik işaretleme programı olabilir.

    Bu aralar C# pekiştirmeye çalıştığımızdan programımızda C# da yazıldı. Pek tabiiki OpenCVSharp kütüphanesi kullanıldı

    İndirmek için :

    Çarşamba, Ocak 06, 2010

    YSA METODU İLE KALIP İŞLERİNDE BİR VERİMLİLİK VE ADAM-SAAT TAHMİNİ MODELİ

    ÖZET

    1980’li yılların başından itibaren mühendislikte artarak uygulama alanı bulan yapay sinir ağları yöntemi, temelinde insan beyninin çalışma ilkelerini taklite derek çalışan bir problem çözümleme yöntemidir. Yöntemin en önemli özelliği  gerçek veriler ile kurulan modelin eğitilmesi ve eğitilmiş olan modelin yeni veriler için sonuç üretebilmesidir. Bu bağlamda kurulan model sürekli olarak yeni veriler ile sürekli kendini yenileyebilmesidir. Diğer bir deyişle model sürekli öğrenerek kendini geliştirebilmektedir. Bu çalışmada, bina türü projelerde kaba yapı maliyetleri içerisinde önemli yer tutan kalıp işlerine ait adam-saat ve verimlilik değerlerinin sağlıklı tahmini amacıyla yapay sinir ağları yöntemi ile bir karar destek sistemi oluşturulması hedeflenmiştir. Bu amaçla çalışmanın ilk aşamasında bir yapay sinir ağı oluşturulmuştur. Bu aşamanın en önemli kısmı girdi ve çıktı değişkenlerinin tespitidir. İkinci aşamada oluşturulan bu ağ elde mevcut bulunan üstyapı projelerine ait kalıp puantajları eğitilmiştir. Üçüncü ve son aşamada ise modelin sağlıklı çalışıp çalışmadığı farklı projelerden elde edilen veriler ile test edilmiştir.
    ABSTRACT

    With the growing amount of applications through the engineering processes since the early 1980, “Artificial Neural Networks” method is a problem solving technique which runs by imitating the basic working principles of a human brain. The most important feature of this method is the training of the model,  which is created by the using of current real data values, therefore the corresponding trained model is able to produce consequences (outputs) according to the given new data values. The model that is created by such a technique can therefore update itself according to the new data sequences. In other words, the model can develop itselft via a continuously learning procedure. In this study; it is aimed to obtain a reliable decision back-up system which demonstrates reliable output values for the man-hour and efficiency analysis of a moulding operation, which takes an important part within the rough construction costs. For that purpose, an artificial neural network has been constructed at the first section of the study. The most important part of this section is the determination of the input and output variables. At the second section, the constructed network is trained with respect to the “moulding puantajları” that belong to the current up-structure projects. At the third stage, the reliability of the model has been checked according to the data values that are obtained from the different projects.

    Murat SÖNMEZ

    Not :  Konunun bizi ilgilendiren kısmı YSA uyglama kısmında FannTool'un kullanılmış olmasıdır. Sağolsun Murat bey bize tezini gönderdi ve yayınlamamız için izin verdi
    İndirmek için:  Murat SÖNMEZ Tez

    Cuma, Ocak 01, 2010

    2009 Muhasebesi



    Geçen seneye nazaran ziyaretçi sayımızda epey bir artış var. Fakat yayınlanan yazı sayısında düşüş var  Bu düşüşün başlıca sebebide 1 aylık Necefli Maşrapa gösterisi...

    İlk olarak bulanık mantık ile başlamışız

    Çoğunlukla  hali hazırdaki projelerimiz üzerinde çalışmalar yapmışız

    FannTool  :
    FannTool'un 1.0 versiyonu çıkarılmış ve FannTool kullanımına dair yazılar yazılmış
    OpenCv : En çok ilgi gören çalışmalarımızın bu alanda olduğu  görünüyor



    C# / .Net :

    Bütün bunlar yetmiyormuş gibi bir sebepten C# a da başladık bu arada birkaç örnek programda yayınladık

    Unutmadan Bu sene bazı ilker daha oldu ;
    • Önce ufak bir yardımım olan birisi Sağolsun tezi bitince yolladı ve kendi siitesini açana kadar biz yayınladık
    • Okurlarımızdan birinin yazısını yayınladık
    Bu senede benzeri katılımlarınızı bekliyoruz...

    ...
    İşte Koca seneyi böyle geçirmişiz. 
    Peki acaba bu sene neler yapmak lazım nelere ağırlık vermek lazım ?
    önerilerinizi bekleriz

    Perşembe, Aralık 24, 2009

    ITK Örneği DicomViewer



    ITK da neymiş diyenleriniz olabilir Tıbbi görüntü İşleme ve ITK yazımıza bakabilirler. O yazıda basit bir örnek hazırlama niyetinde olduğumuzu söylemiştik. Nasip bu güneymiş.

    C# içinde ITK kullanabilmek için ManagedITK ya ihtiyacımız var.
    Öyle güçlü bir dökümantasyonu yok malesef
    ManagedITK article ile yetinmeniz lazım
    Derlenmiş kütüphaneyi indirin ve ilgili dll' leri referansa ekleyin

    DICOM (Digital Imaging and Communications in Medicine) değişik cihazlardan elde edilen medikal görüntülerin formatıdır.  Programımızda  basit bir Dicom Göstericisi
    Daha Teferruatlı gösterici için VTK ilede uğraşmak gerekiyor...
    İndirmek için : DicomViewer

    Cumartesi, Aralık 12, 2009

    RSS ile Çalıntılama

    Epey bir süredir burada yazılar yazmaktayız. Bu yazılardan maddi bir beklentim yok. Ama pek çok reklam içerisinde ve hiç de tasvip etmediğim bir ortamda izinsiz ve bağlantı verilmeksizin, yazılarımın Çalınması hoşuma gitmiyor.  Bu  daha önce de başıma gelmişti e-maill ile halletmiştim yine aynı metodu uyguladım ;Çalıntılama yapan sitenin sahibine  whois çekerek bilgilerini aldım  (sitesine koymamış ne hikmetse )
        Orhan Yasar Celik (saykorhan@gmail.com)
        isiklar1apt 34/24 kozyatagi istanbul
        ISTANBUL
        Tel. +90.2163623956
    burdaki e-mail adesiyle ulaşmaya çalıştım. Yazdığım maile karşılık

    Delivery to the following recipient failed permanently:
    saykorhan@gmail.com
    Technical details of permanent failure:
    Account disabled

    cevabını aldım
    Sonra o sitedeki Adsense reklamlardan "Google reklamları " kısmına tıklayınca açılan
    "Google Yardımı › AdSense Yardım › Destek Ekibine Ulaşarak "  sayfasından
    "Biraz önce gördüðünüz site veya reklamlarla ilgili politika ihlalini bildirin" kısmına tıklayıp
    sorun konusu web sitesi seçeneğini işaretleyip
    "Bu site, iznim olmaksızın, telif hakkıyla korunan içeriğimi barındırıyor veya dağıtıyor."
    seçeneği ile e-mail adresimi vererek ve sayfanın orjinalinin linkiyle şikayette bulundum bir kaç kez
    ama Google adsense dende bana cevap gelmedi pek umurlarında değil sanki
    bütün bunların üstüne
    Eğer yazılarınızın dolaşmasını istiyorsanız rss nizi açarsınız, istemiyorsanız kapatırsınız.
    Blog, insanların yazı yazdığı dolayısıyla paylaşım yapılan biryerdir, benim sitem ise, farklı blogları sizlere burada tanıtmakta ve yazılarının RSS kısmını göstermektedir.
    Yazılarını çaldığımı söyleyen insanlar ; bilmelidirki, rss lerini açarak, bu yazıların burada yayınlanmasını kendileri bizzat istediklerini göstermektedir. Ortada işlenen bir suç vs. yoktur.


    yazma  pişkinliğini gösterdi...
    Neyse lafı uzatmayalım işin detayını "Bir Blog Hırsızlığının Anatomisi" yazısından öğrenebilirsiniz.Sonuç olarak blogun RSS desteği kaldırmak zorunda kaldım ve Telif hakkı kısmı koydum. Sitede yayınladığım Programlar için aksi belirtilmediği sürece lisansları GPL dir.
    .
    Not : RSS desteğini kaldırdığım halde eski bir yazımı yine araklamış ne yapsak bilmem ki   :(

    Yeni Not  :  Şu an itibarıyla ilgili site çeşitli gayretler sonucu kapattırılmıştır...

    C# ile OpenCv kullanmak

    C# ile daha doğrusu .Net in dillerinden biriyle OpenCv kütüphanesine ulaşmanız mümkün. Bu iş için yazılmış .Net kütüphanelerini hızlıca  tanıyalım

    • SharperCV :  Uzun süredir güncellenmiyor lisansı kötü
    • OpenCVDotNet : Managed c++ ile hazırlanmış, uzun süredir güncellenmiyor, lisansıda GPL
    • The OpenCV Wrapper Project : Yapı olarak aslında OpenCv ye oldukça uyumlu düşünülmüş son güncelleme Mayıs 2009 yani güncel sayılır. Fakat  "We don't allow to use the wrapper for commercial purposes. This includes reselling wether in the original or modified form (sources or binaries) or using in commercial projects." diyen çok kötü bir lisansa sahip
    •  Emgu Cv :  c# ile yazılmış ve mono ile de derlenebildiğinden cross-platform , lisansı GPL yada ticari olabiliyor tek kullanıcı için 199 $ fiyat biçmişler "If you are upgrading, you save 50% off the license fee." gibi cabası da var ve belkide ticari yanı olması sebebiyle  en profesyöneli
    • OpenCvSharp :  C# ile yazılmış ve oldukça güncel ve ticari kullanım içinde gayet uygun LGPL lisansına sahip Mono ile de kullanılabiliyormuş yani cross-platform. Bizim tavsiye ve tercih ettiğimiz kütüphane de bu.




    Gelelim Örneğimize  Web Kamera dan Görüntü alıp onun üzerinde basit işlemler uygulayan ve avi olarak kaydedebilen küçük bir programcık.
    IDE olarak Visual C# 2008 Express kullanıldı
    Derlemek için OpenCvSharp OpenCv 2.0 için olan versiyonu kullanıldı

    Indirmek için burdan buyrun  :  Effects

    Cuma, Aralık 04, 2009

    Text Generator



    ısırmış ve, “Al bak harika!” diyerek uzatmış, küçük oğlana gelmiş. Elindeki ışığı kızın ana-babasına yollamış. Onları karşısında görünce hemen ormana varmışlar. Ormanda bir ülkeye gitmiş. Tavukla horozun parlak ışıklar sızan son gemiden ona acımışlar ve sert geçmiş. Çirkin Ördek, ama prense dönüşmüş. "Korkma, " En altta eşek, köpek eşeğe. " diye düşünmüş Güzel. “Seninle evlenmek zorunda bırakmışlar. Küçük oğlan hemen bir daha fazla bir kucak dolusu güzel bir çocukmuş. Sabah gözlerini açmış sanki. Her yer istemiş. Ak sakallı adam kıza dönerek "burada her rastgeldiği insana, “Bu taraftan gelin,” demiş. Dışarı çıkmış; arpa getirerek tavukla horozun önüne serpmiş. İneğe de öğle yemeğimi büyük ve bir süre sonra her şeyden bol bol var! Haydi merdivenden yukarı çıkmış. Güzel tavukla horozun önüne serpmiş. İneğe de soğukmuş. Şimşekler çakıyor, rüzgâr yerden çıkıp gitmişti... Herhalde dosdoğru yoluna oğul, ben Çirkin Ördek’in tam mı yitireyim?” demiş. "Bir kese altının çalıntı olduğuna karar vermiş, üçünü de dillerde yankılanmış. 
     İlk C# örneğimizi yayınlıyoruz. Bir ilk de örneğin alanı -ucundan kıyıcığından bir örnek sayılır belki - Doğal Dil İşleme ( Natural Language Processing).

    Yapılan işlem pek de karmaşık değil.Kendisine verdiğimiz yazıları kelime çiftlerine ayırıp peş peşe gelme sayılarını tutuyor. ve  Yazı üreteceği zaman bir kelimeden diğerine peş peşe gelme sıklığını  kullanarak seçiyor.sonuçtada yukardaki gibi yazılar çıkıyor.Başlangıç verileri için İnternetten bulduğum masalları ekledim.


    İndirmek için : TextGen

    Çarşamba, Aralık 02, 2009

    Bizden Haberler

    Necefli Maşrapa ile ara verdik Bu da geçer Ya Hu ile döndük şükür...

    Ekonomik krizin etkisiyle azalan işler, azalan çalışma saatleriyle devam ediyor. Bütün bunların üstüne ücretsiz izinler ve olan işinide kaybetme psikolojisindeki patronlarla muhatap olmak gibi sıkıntılar içindeyiz.

    Bu artan sıkıntılarımızdan ve boş vaktimizden haberdar bazı dostların   " Bırak bu entel dantel işleride .Net öğren piyasanın %70'i bunu istiyor artık. olurda işsiz kalırsan işine yarar" mealindeki nasihatlarına uyup C# öğrenmeye başladım.

    C  / C++ bilen biri olarak pekde zorlanmadım. Pek çok özelliği aynı. Programlama ortamı da bana (Toprağı bol olsun ! ) bizim CBuilderı hatırlattı.  Yabancılık çekmedim kısacası. Tuhaf buluğum taraflarıda oldu tabii
    • printf yerine paskalvari writeline kullanmışlar en kötüsüde güzelim format sitilini değiştirmişler
    • Referans ve Değer kullanımını aynı şekilde yapmışlar.
    • Fonksiyon pointerlar yerine Delegate denen bir şey varki evlere şenlik
    • Dilin özelliklerinin sürekli değişmeside hoşuma gitmedi Başlangıçta beğenilen sistemlerin özelliklerinin alınması iyi bir şey ama bu nun süerkli hale gelmesi hiç hoş değil bence. Ben şahsen Dilin kurallarının biraz durağan olması taraftarıyım. zırt pırt değişmesi hoş değil.
    • FLTK ya alışmış biri olara bir kamyon DLL ile bağlı program yazmak tuhaf geliyor.
    işin güzel olan tarafı Pek çok Kütüphanenin eşleniği yada .Net wrapper'ı var. Alıştığımız kütüpanelerden feragat etmemiş olacağız yani. Üstelik Microsoftun şimdilik göz yumduğu Mono sayesinde Cross-Platform uygulama geliştirmeniz mümkün. Sözün kısası  C / C ++ dan vazgeçmedik ama Pekiştirmek için bir süre C# ile yazılmış örnek programlar görürseniz şaşırmayın.

    Gelelim ikinci haberimize.  FannTool'un kullanım kılavuzunun İngilizce versiyonu çıktı. Sağ olsun  Dr. Michael Schaale yardımcı oldu. indirmek için FannTool Users Guide laf aramızda Türkçesinden de daha derli toplu oldu.FannTool  için yardım istediğimizide bu vesileyle duyurmuş olalım. Kimbilir belki sesimizi Türkiyeden de duyan olur...

    Cumartesi, Kasım 28, 2009

    Bu da geçer Ya Hu



    Hem dünyaya tapınırcasına bağlanan böylece yüreği taşlaşan, hem de bin bir sıkıntı içinde kıvranan, dertlenen insana ne güzel bir ders verir. “Bu da geçer ya hu!.

    Günümüz insanı; yalnızlığı, huzursuzluğu derinden yaşıyor. Hep maddi çıkar peşinde koşan, adeta insanlığı, insani değerlerini unutan insan, kendi ektiğini acı bir şekilde biçiyor.
    “Hep ben, hep bana” düşüncesini kendisine rehber edinen, böylece bireyselliği tapınacak bir değere çıkaran tavır, toplum halinde yaşamayı, birbirini anlamayı, yardımlaşmayı itiyor ve arkasından yalnız, yapayalnız bir dünyayı getiriyor.

    Evet, “bu da geçer.” Dert de geçer, sıkıntılar da geçer. Sabretmek, her teşebbüste bulunarak nihayetinde kadere teslim olmak, “bu da geçer” demek. Zenginlik de biter, Karun gibi yaşamak, Firavunca zulmetmek de geçer. Ne güzel bir ders, derin bir öğüt, eskimeyen, her an yeni bir “ikaz” ve “uyarı” levhası: “Bu da geçer ya hu!..”

    Salı, Ekim 27, 2009

    Necefli Maşrapa Göstermek


    Yaşı büyük olanlar zaten bilir bilmeyenler içinde anlatalım. Eskiden yegane televizyon kanalı TRT idi. Bütün herkesin seyrettiği bu yegane kanal sık sık teknik arızalar sebebiyle kesintiye uğrardı. İşte TRT de yayının kesildiği anlarda yukarda arz-ı endam eden necefli maşrapa sahneye çıkar, arıza giderilinceye kadar ekranda salınmaya! devam ederdi...

    Bazı iş sıkıntıları sebebiyle biz de necefli maşrapa gösteriyoruz ve bir süreliğine yazı yayınlamayacağız. Eski yazılarımıza ve Necefli maşrapaya bakmaya devam edebilir, Gerekiyorsa profil sayfasındaki adresden e-posta ile bize ulaşmayı deneyebilirsiniz.

    Şimdi tekrar ne yapsam dedirtme bana yarabbi
    taşınacak suyu göster,kırılacak odunu
    kaldı bu silinmez yaşamak suçu üzerimde
    bileyim hangi suyun sakasıyım ya rabbelalemin
    tütmesi gereken ocak nerde?
    İsmet Özel (Münacaattan )

    Cumartesi, Ekim 24, 2009

    Bulanık Mantıkla Otamatik Pilot !

    Evet itiraf ediyorum Nasrettin Hocadan Bulanık Mantık Dersi yazımız bir giriş yazısı değildi. İyi kötü bulanık mantık konusunda bir şeyler okumuş ve fakat aklında bütün bunları toparlayamayanlar için yazılmıştır. Ama Biraz ön okumayla o yazıdan şek çok şey öğrenebilirsiniz. Yinede biraz soyut kaçıyordu.

    İşte bu yazımızda biz basit ve somut bir bulanık mantık uygulaması örneği hazırladık.

    Ali sevilmez mi hey dost delimisin sen

    - Hocam bu gün çok canım sıkkın. acaba sıkıntıyı giderecek birşeyeler okusanızda dinlesek
    Kütüphaneden bir kitap seçti ve okumaya başladı
    Bil ki göklerin, yeryüzünün hazîneleri elinde olan, sana duâ etmek için izin vermiş, icâbet edeceğini de vaad etmiştir.
    Dilemeni emretmiştir, dilediğini vermek için;
    Acımasını istemeni emretmiştir, sana acımak için.
    Seninle arasına bir perde çekmemiştir; seni, onun katında şefâat edecek birisine muhtaç etmemiştir.

    Kötü bir iş işlersen tövbe etmekten men etmemiştir seni;
    Azâbını hemencecik göndererek ukubete salmamıştır seni;
    Tövbeyle Ona yüz tutarsan reddetmez;
    Azâba uğramaya lâyık olduğun suç yüzünden de seni rüsva eylemez.
    Suç yüzünden tövbeni kabûl etmezlikte bulunmaz;
    Cürmünü yüzüne vurmaz;
    Rahmetinden seni meyûs etmez.
    Hattâ suçundan geçmeni de bir sevap sayar;
    Yaptığın kötülüğe karşı bir günah yazar;
    İşlediğin iyiliğe karşı on sevap verir.
    Sana tövbe kapısını açmış, özrünü kabûl etmeyi vaad etmiştir.
    Onu çağırdın mı sesini duyar; gizli yalvardın mı gönlündekini bilir.
    İhtiyacını Ona söylersin;
    G
    önlündekini Ona açarsın;
    Dertlerini Ona şikâyet edersin, sıkıntılarının giderilmesini Ondan istersin;
    İşlerinde Ondan yardım dilersin;
    Ömür çokluğu, beden sıhhati, rızık bolluğu gibi Ondan başkasının
    veremeyeceği şeyleri Ondan beklersin.
    Sonra hazînelerinin anahtarlarını da, Ondan dilemeye izin vererek senin ellerine teslîm etmiştir;
    Ne vakit dilersen, duâ ile nimetlerinin kapılarını açarsın, çorak dilek yerlerini sulamak için rahmetini istersin.
    İcâbeti gecikirse de ümidini kesmemelisin; çünkü vergi ve ihsan, niyetle yeksandır.
    Nice kere, isteyenin ecri çoğalsın, umana daha da fazla ihsan edilsin diye icâbet gecikir.
    Nice kere bir şey istersin, verilmez; fakat hemencecik, yahut bir zaman sonra ondan daha hayırlısı verilir, ondan daha hayırlısı verilmek için o verilmez, geciktirilir.
    Nice şeyler vardır ki sen istersin onu; fakat verilse o yüzden dinin helâk olur.
    Şu halde güzelliği sana kalacak, vebâli senden gidecek şey
    istemelisin. Mal sana kalmaz; sen de ebedi olarak mala sâhip olamazsın.

    ...

    - Okuduklarınız Nerdendi hocam
    - Bu Hz Ali'nin Hz Hasana yazdığı vasiyetnameden bir parça
    Nehc'ül Belaga' da geçiyor
    - Çok sevdim
    - Seversin tabii hem zaten "Ali sevilmez mi hey dost delimisin sen"

    Çarşamba, Ekim 21, 2009

    Ordan Burdan

    1) Volkan Salma OpenCv de SVM kullanımı üzerine bir yazı hazırladı. Oraya kadar gitmişken  Zeki Optimizasyon Teknikleri Yazı dizisine de bakmayı unutmayın ; İlk Yazı Hill Climbing üzerine. Devamınıda tez zamanda bekliyoruz.

    2) İsmail Arı'nın günlüğünde tasarım ve ufak bir adres değişikliği oldu. "gunluk.ismailari.com" sitesi ismailari.com kök dizinine taşındı. Duyuruyor ve hayırlı olsun diyoruz.

    3) www.GlobalEkonomi.com dan FVolkanY den daha önce bahsetmiştik , Yapay Zekalı tahmin sistemleri üzerine çalışıyordu.  Yakında ürün (Forex ve Borsa Sistemleri ) satışına başlıyacak gibi  hemde  sonuçlar oldukça iddialı ne diyelim hayırlı olsun.

    4) Bora Kardeşimizden yine yeni bir icad Casus Klavye  Kimin işine yarar bilmem ama Boranın performansını ve ilerde neler yapabileceğini gösteriyor...

    Cumartesi, Ekim 17, 2009

    Sitemli OpenCv 2.0 Kurulumu - Install -

    Aslında böyle bir yazı yazmayı düşünmüyordum ama gelen sorular yüzünden yazmak zorunda kaldım. Önce konumuzu anlatalım

    OpenCv2.0 windows versiyonunu C ye kurun .
    CMake' i kurun ve çalıştırın

    Yukardaki ekran gelir OpenCv 2.0 ı kurduğunuz dizini seçin
    kurulumun yapılacağı dizini yazıyoruz Visual için "vs2008" seçtik mesela

    Cumartesi, Ekim 10, 2009

    OpenCv 2.0 İzlenimleri

    Bir Makina mühendisi bir elektirik mühendisi ve bir bilgisayar mühendisi arabayla yolculuk yaparlarken araba arızalanır ve durur.
    makina mühendisi arabadan iner ve arabanın mekanik aksamına bakar ama araba çalışmaz
    elektirik mühendisi arabadan iner ve arabanın elektirik aksamına bakar ama araba yine çalışmaz.
    Son olarak Bilgisayar mühendisi bir öneride bulunur
    "Arabadan inip yeniden binelim belki çalışır"

    Uzun uzadıya bir inceleme yapmaya ne ehilim ne de zamanım var. Ama artık OpenCv 2.0 yayınlandığına göre uygulamalarımızda mecbur kullanmak zorundayız, yoksa sonradan güncel versiyona geçişte epey bir problem olur.

    OpenCv 2.0 windows versiyonu zaten kurulum programıyla geliyordu, kolayca kuruverdim.
    Header ve Library dosya ayarlarını yapıp programı tekrar derledim. Hatasız derlendi, bende sevindim tabii. Fakat programı çalıştırınca hevesim kursağımda kaldı. Program çalıştı fakat bazı işlemlerde program çakılıyordu. Acaba fonksiyon parametrelerinde bir değişiklikmi olmuş diye ufak bir incelem yaptım görünürde bir şey bulamadım. İşin ilginç yanı cvPreprocessorun ürettiği kodları komut satırı uygulaması olarak çalıştırdığımda problem yoktu. Tek istisna Laplace fonksiyonu. sizinde aklınızda olsun
    void cvLaplace(constCvArr *src,CvArr *dst, int aperture size=3);

    aperture size 'a değer olarak -1 kullandığınızda program çalışma zamanı hata veriyor. Neyse biz konumuza dönelim windowsta ki hezimetin ardından linux'a yöneldim.

    Benim Bilgisayarda kullandığım Linux dağıtımı OpenSuse 10.3 biraz eskidi ama işimiz görüyor. Linux versiyounu dediğimiz zaten kaynak kod. Uygun bir yere açıp
    ./configure
    make
    make install
    diyerek derledim ve cvPreProcessor'u denedim gayet güzel çalışıyordu yukarda bahsettiğim Laplace istisnası hariç.

    Linux versiyonun çalışması üzerine tekrar windows'a döndüm ve dağıtlan kütüphane programında bozukluk yada uyumsuzluk olabileceğinden kuşkulandım. ve
    CMake
    Mingw
    MSYS
    programlarını kaldırıp en son versiyonlarını tekrar kurdum. Sonra Cmake OpenCv 2.0 için Codeblocks projesi oluşturdum ve C::B ile build ettim. Nihayet Mutlu son. Artık programlarım doğru bir şekilde çalışıyor.
    az kalsın unutuyordum "İnip tekrar binmek bazen işe yarıyor" :)

    Perşembe, Ekim 01, 2009

    OpenCv 2.0 yayınlandı

    OpenCv 2.0 beta aşamasını hızlıca geçti ve yayınlandı
    Indirmek için ; Windows için kurulum dosyası
    Linux için kaynak kodu

    Cumartesi, Eylül 26, 2009

    Plaka Okuma

    Plaka okuma günümüz Türkiyesinde belkide en yaygın bilgisayarlı görü -Computer Vision- uygulamasıdır. Ufak bir araştırmayla bu konuda pek çok tez verildiğini (1 2 ) ve bazı türk firmalarınında ürün geliştirdiklerini görebilirsiniz. Uygulama alanının genişliği düşünüldüğünde çalışmaların devam edeceğinide varsayabiliriz.




    Resimden Plaka bilgisini alma işini nasıl yapabiliriz ? Kabaca anlatmaya çalışalım.

    Salı, Eylül 22, 2009

    Nasrettin Hocadan Bulanık Mantık dersi

    Zeka Hakkında Kıssalı Yazılar - 5 *

    Hoca Nasrettinin kadılık yaptığı zamanlarda geçiyor olayımız.
    Adamın birisi komşusundan şikayetçi olmuş. Hoca adamın şikayetini dinlemiş ve haklısın deyip adamı yollamış.
    Şikayet edilen adamın getirtilmesini emretmiş. Adamı yaka paça tutup getirmişler. Adam şikayet konusunu doğrulamış ve fakat değip mazeretlerini beyan etmiş hoca adamı dinledikten sonra adama haklısın diyerek salıvermiş.
    Bir kenardan olan biteni seyretmiş olan hanımı hocaya yanaşmış ve hayret içinde sormuş.
    "Efendi sen hem davacıya hem davalıya haklısın dedin bu nasıl iş ?"
    hoca gülümsemiş ve "Ne diyeyim hanım sen de haklısın " demiş.
    Bakmayın sitenin kıymetini bilen yok. ama Hikayenin bundan sonrasını sadece bizden dinleyebilirsiniz.

    ve hoca anlatmaya devam etmiş.

    Suçun da dereceleri vardır bir mesela cinayet bir suçtur, komşusunu gece gürütü yaparak rahatsız etmekte suçtur. ama ikisini bir tutmak mümkünmü, değil elbet. Kısaca büyük suçlar vardır küçük suçlar vardır. Keza suçun oluş şeklininde önemi vardır. mesela kasten adam öldürmekle kazaen adam öldürmek bir değidir. yani Suçun bir hafifletici sebeblerine bakmak lazım.

    Hüküm verme işlemi için ilk etapda suçun ve hafifletici sebeplerin mertebelerini bulmamız gerekiyor ki buna Bulanıklaştırma deniyor

    Bir kağıda Suç ve Hafifletici sebep grafiklerini çizip anlatmaya devam etmiş


    Adamın suçu ( A kadar küçük suç ) ve (B kadar büyük suç ) kapsamına giriyor.


    Hafifletici sebep ise ( C kadar küçük ) ve ( D kadar büyüktür )

    işte bunları öğrendikten sonra karar vermek için kurallarımız vardır.

    1) Eğer (Suç Büyük ) ve (Hafifletici Sebep Küçük ) ise Büyük Ceza
    2) Eğer [(Suç Küçük ) ve (Hafifletici Sebep Küçük ) ] veya
    [(Suç Büyük ) ve (Hafifletici Sebep Büyük ) ] ise Orta Ceza
    3) Eğer (Suç Küçük ) ve (Hafifletici Sebep Büyük ) ise Küçük Ceza

    Bu kuralları uygulayınca adamın ceza mertebeleri çıkıyor ki buna Kuralların İşleme Safhası denir

    1. Kuraldan (B ve C ) -> M mertebesinde Büyük Ceza
    2. Kuraldan [(A ve C ) veya (B ve D )] -> L mertebesinde Orta Ceza
    3. Kuraldan (A ve D ) -> K mertebesinde Az Ceza

    hak ettiği anlaşılıyor deyip ceza grafiğinide çizmiş
    Fakat bu grafikden adama ne kadar ceza verilmesi gerektiğinin çıkarılması için bulanıklaştırmayı kaldırmamız gerekiyor. Bu işleme Durulaştırma denir. ve En büyüklük, ağırlık merkezi, ortalama en büyük.... gibi pek çok metodu vardır. Biz de basit bir tanesini kullanıyoruz.
    Deyip bir grafik daha çizdi. ve üzerine Adamın hak ettiği cezayı işaretledi.
    Hayretler içinde bakan hanımına dönen hoca laflarını şöyle bitirmiş
    Gördüğün gibi hanım bende haklıyım...

    * Zeka Hakkında Kıssalı Yazılar Serisi - 1 2 3 4
    ** Düzeltmeler için Volkana Teşekkürler

    Pazartesi, Eylül 21, 2009

    Kriz üzerin bir bayram sohbeti

    BK - Hocam bayramınız mübarek olsun nasılsınız ?
    MCH - Ooo BK kardeş Bayramda olmasa uğradığın yok. Allaha şükür iyiyiz sen nasılsın ?
    - Bende iyiyim Allah şükür. Ama haklısınız hocam uğruyamıyoruz.
    - Sizi yakalamışken bir şey sorabilirmiyim hocam
    - tabbi buyrun
    - Hocam ne olacak bu ekonomik kriz ?
    ( gülümsiyerek ) - sanırım işleriniz kesat
    - Evet hocam ufaktan ücretsiz izinlere başlandı.
    - Kriz ne zaman yokdu ki
    Dedem açlıktan yiyecek bir şey olsun diye mısır koçanını öğtüp ekmek! yapıp yemiş
    Biz Yağ Şeker Tüp kuyruklarında ömür tükettik. Bu sadece bizim ülkemizdeki durum bir de dünyadaki açlık varki. içler acısı

    - Haklısınızda Şimdide pek çok insan işsiz kalıyor hocam.

    - Ben bir kıssa anlatayım da dinle
    Vakti zamanında geçimini süt satarak sağlayan bir adamcağız varmış. İki ineğinden sağdığı sütü satmaya çalışır fakat tamamını satamadığından kıt kanaat geçinirmiş. Bir gün geçim sıkıntısını şikayet etmek için büyük bildiği birisine danışmış.

    Efendim benim iki ineğim var onların sütünü satarak geçiniyorum ama bir türlü sütün hepsini satıpda rahat geçinecek parayı kazanamıyorum ne yapabilirim
    demiş
    "Sütüne su kat evladım" demiş
    Adamın kafası karışmış aklı yatmamış ama bir deneyelim bakalım demiş.

    Ertesi gün sütün içine bir miktar su katıp satmaya gitmiş. Gün sonunda bir de bakmış ki sütün tamamı satılmış.
    Akıl danıştığı kişinin yanına varmış
    Efendim Su katılmış süt tamamiyle satıldı. ama ben biliyorum ki bu doğru bir şey değil ne dir bu işin hikmeti.

    Evladım Halis sütü satarken kazandığın helal rızkındır. Su katınca daha fazla kazana bilirsin ama kazancına haram akrıştırmış olursun. Bize düşen helal yoldan kazanç için elimizden geleni yaptıktan sonra gelene razı olmaktır. işin umumi yönü de şöyle olmak gerektir ki "senin halis helal sütünü alabilecek helal para çok azalmış sen o yüzden satmakta zorlanıyorsun."

    - yani hocam
    - yanisi Umumi eksikliklerden gelen bir sıkıntı var. Umumen değişmedikçe sıkıntısını çekmeye devam ederiz. Sen kendin kendi adına elinden geleni yap. Sonuçta gelene razı ol.
    - hocam zenginlerimizin hiç mi suçu yok. "kriz zamanında en çok sızlanan onlar oldu. vay araba satamıyoruz vay beyaz eşya satamıyoruz. stoklar yığıldı kaldı" dediler ama gördük ki bir sıkıntıları yokmuş. Vergiler inip satışlar artınca ellerinde stok olmadığını gördük. Stoklar bitti yeni üretim yapıyoruz bu da yeni fiyattan değip zam yaptılar. Stoklarının olmaması gösterirki fabrikalarını çoktan tatile çıkarmış işçilerini ücretsiz izne yollamışlar.
    - Pek tabii ki onların veballeri daha büyük. Vebalden kurtulmak istiyeninde Hz Osmanın hatırlatması lazım

    "Bir defasında Medîne’de kıtlık vardı. O sırada Hz. Osman’ın Şam’dan yüz deve yükü buğday kervanı gelmişti. Eshâb-ı kirâm satın almak için yanına gittiler. Hz. Osman dedi ki:

    - Sizden daha iyi alıcım var ve sizden daha fazla veren var, ona vereceğim.

    Eshâb-ı kirâm durumu Hz. Ebû Bekir’e bildirip dediler ki:

    - Kıtlık zamanında böyle yapması uygun olur mu?

    Hz. Ebû Bekir buyurdu ki:

    - Hz. Osman Resûlullahın dâmâdı olmakla şeref kazanmıştır ve Cennette onun arkadaşıdır. Siz onun sözünü yanlış anladınız, beraber gidelim.

    Hz. Ebû Bekir, Hz. Osman’ın yanına gidip durumu anlatarak buyurdu ki:

    - Yâ Osman, Eshâb-ı kirâm senin bir sözüne üzülmüşler.

    Hz. Osman şu cevabı verdi:

    - Evet ey Resûlullahın halîfesi, onlardan iyi alıcı olan, bire yediyüz veriyor. Onlar bire yedi veriyor. Biz bu buğdayı bire yediyüz verip alana verdik.

    Bundan sonra yüz deve yükü buğdayı Medîne’de bulunan fakîrlere, Eshâb-ı kirâma bedava dağıttı. Yüz deveyi de kesip fakîrlere yedirdi."

    el hasıl ;
    "Biz mutlaka sizi biraz korku ile, biraz açlık ile, yahut mala, cana veya ürünlere gelecek noksanlıkla deneriz. Sen sabredenleri müjdele!" ( Bakara -155 )


    buyrulmuştur Bu mübârek Ramazan bayramı hürmetine, yoksullarımıza sabır, zenginlerimize de anlayış lütfeyle. Bizleri de İslâm’ı eksiksiz yaşama şerefi ile şereflendir, yâ Rabbi!
    - Âmin,

    Cuma, Eylül 11, 2009

    OpenCv 2.0 Beta yayınlandı

    Evet Biraz gecikmelide olsa OpenCv 2.0 Beta yayınlandı
    Kurarken OpenCv 1.2 olarak kuruyor ama ;)
    Daha önce den bahsettiğimiz dökümantasyon düzenlemesi meyvesini vermiş güzel bir pdf olarak geliyor. Ne gibi yenilikler var diyorsanız


    - General:
    * The brand-new C++ interface for most of OpenCV functionality
    (cxcore, cv, highgui) has been introduced.

    * The primary build system is CMake, http://www.cmake.org (2.6.x is the preferable version).

    - CXCORE, CV, CVAUX:

    * CXCORE now uses Lapack (CLapack 3.1.1.1 in OpenCV 2.0) in its various linear algebra functions
    (such as solve, invert, SVD, determinant, eigen etc.) and the corresponding old-style functions
    (cvSolve, cvInvert etc.)

    * Lots of new feature and object detectors and descriptors have been added
    (there is no documentation on them yet), see cv.hpp and cvaux.hpp:

    + FAST - the fast corner detector, submitted by Edward Rosten

    + MSER - maximally stable extremal regions, submitted by Liu Liu

    + LDetector - fast circle-based feature detector by V. Lepetit (a.k.a. YAPE)

    + Fern-based point classifier and the planar object detector -
    based on the works by M. Ozuysal and V. Lepetit

    + One-way descriptor - a powerful PCA-based feature descriptor,
    (S. Hinterstoisser, O. Kutter, N. Navab, P. Fua, and V. Lepetit,
    "Real-Time Learning of Accurate Patch Rectification").
    Contributed by Victor Eruhimov

    + Spin Images 3D feature descriptor - based on the A. Johnson PhD thesis;
    implemented by Anatoly Baksheev

    + Self-similarity features - contributed by Rainer Leinhart

    + HOG people and object detector - the reimplementation of Navneet Dalal framework
    (http://pascal.inrialpes.fr/soft/olt/). Currently, only the detection part is ported,
    but it is fully compatible with the original training code.
    See cvaux.hpp and opencv/samples/c/peopledetect.cpp.

    + Extended variant of the Haar feature-based object detector - implemented by Maria Dimashova.
    It now supports Haar features and LBPs (local binary patterns);
    other features can be more or less easily added

    + Adaptive skin detector and the fuzzy meanshift tracker - contributed by Farhad Dadgostar,
    see cvaux.hpp and opencv/samples/c/adaptiveskindetector.cpp

    * The new traincascade application complementing the new-style HAAR+LBP object detector has been added.
    See opencv/apps/traincascade.

    * The powerful library for approximate nearest neighbor search FLANN by Marius Muja
    is now shipped with OpenCV, and the OpenCV-style interface to the library
    is included into cxcore. See cxcore.hpp and opencv/samples/c/find_obj.cpp

    * The bundle adjustment engine has been contributed by PhaseSpace; see cvaux.hpp

    * Added dense optical flow estimation function (based on the paper
    "Two-Frame Motion Estimation Based on Polynomial Expansion" by G. Farnerback).
    See cv::calcOpticalFlowFarneback and the C++ documentation

    * Image warping operations (resize, remap, warpAffine, warpPerspective)
    now all support bicubic and Lanczos interpolation.

    * Most of the new linear and non-linear filtering operations (filter2D, sepFilter2D, erode, dilate ...)
    support arbitrary border modes and can use the valid image pixels outside of the ROI
    (i.e. the ROIs are not "isolated" anymore), see the C++ documentation.

    * The data can now be saved to and loaded from GZIP-compressed XML/YML files, e.g.:
    cvSave("a.xml.gz", my_huge_matrix);

    - MLL:
    * Added the Extremely Random Trees that train super-fast,
    comparing to Boosting or Random Trees (by Maria Dimashova).

    * The decision tree engine and based on it classes
    (Decision Tree itself, Boost, Random Trees)
    have been reworked and now:
    + they consume much less memory (up to 200% savings)
    + the training can be run in multiple threads (when OpenCV is built with OpenMP support)
    + the boosting classification on numerical variables is especially
    fast because of the specialized low-overhead branch.

    * mltest has been added. While far from being complete,
    it contains correctness tests for some of the MLL classes.

    - HighGUI:
    * [Linux] The support for stereo cameras (currently Videre only) has been added.
    There is now uniform interface for capturing video from two-, three- ... n-head cameras.

    * Images can now be compressed to or decompressed from buffers in the memory,
    see the C++ HighGUI reference manual

    - Samples, misc.:
    * Better eye detector has been contributed by Shiqi Yu,
    see opencv/data/haarcascades/*[lefteye|righteye]*.xml
    * sample LBP cascade for the frontal face detection
    has been created by Maria Dimashova,
    see opencv/data/lbpcascades/lbpcascade_frontalface.xml
    * Several high-quality body parts and facial feature detectors
    have been contributed by Modesto Castrillon-Santana,
    see opencv/data/haarcascades/haarcascade_mcs*.xml

    >>> Optimization:
    * Many of the basic functions and the image processing operations
    (like arithmetic operations, geometric image transformations, filtering etc.)
    have got SSE2 optimization, so they are several times faster.

    artık CvPreProcessor'u da kontrol edip bu versiyona geçmem gerekecek.

    Pazar, Eylül 06, 2009

    Yapay Zeka Tıbbın Hizmetinde 3

    FannTool'un kılavuzunu hazırlamak için kullandığım diğer bir veride Parkinson Hastalığınının kişinin konuşmasından teşhisi üzerineydi. Kılavuzu boştan yere şişirmemek için oraya koyamadım ama yayınlanmadan kalmasınınada gönlüm razı olmadı.

    Orjinal Çalışma
    'Suitability of dysphonia measurements for telemonitoring of Parkinson's disease'
    diye geçen makale. Oxford Üniversitesinden Max Little'in National Centre for Voice and Speech ile olan işbirliğiyle hazırlanmış.ve görebildiğim kadarıyla sınıflandırma için SVM kullanmışlar. Biz tahmin edeceğiniz üzre Yapay Sinir Ağı kullanacağız.

    23'ü parkinson hastası olan 31 kişinin toplamda 195 ses kaydı yapılmış ve bu ses kayıtlarından çıkarılan özniteliklerle (feature extraction) Kişinin Hastamı Sağlıklımı olduğuna karar vermek gerekiyor.

    Verilerin nelerden oluştuğuna bakarsak

    1 ) MDVP:Fo(Hz) - Average vocal fundamental frequency
    2 ) MDVP:Fhi(Hz) - Maximum vocal fundamental frequency
    3 ) MDVP:Flo(Hz) - Minimum vocal fundamental frequency
    4 ) MDVP:Jitter(%),
    5 ) MDVP:Jitter(Abs),
    6 ) MDVP:RAP,
    7 ) MDVP:PPQ,
    8 ) Jitter:DDP - Several measures of variation in fundamental frequency
    9 ) MDVP:Shimmer,
    10) MDVP:Shimmer(dB),
    11) Shimmer:APQ3,
    12) Shimmer:APQ5,
    13 ) MDVP:APQ,
    14) Shimmer:DDA - Several measures of variation in amplitude
    15) NHR,
    16) HNR - Two measures of ratio of noise to tonal components in the voice
    17) RPDE,
    18) D2 - Two nonlinear dynamical complexity measures
    19) DFA - Signal fractal scaling exponent
    20) spread1,
    21) spread2,
    22) PPE - Three nonlinear measures of fundamental frequency variation
    23) status - Health status of the subject (one) - Parkinson's, (zero) - healthy

    detaylı bilgi için makaleye bakabilirsiniz.

    Orjinal veriyi Tablolama programımıza aktarıyoruz ve Status kısmını son sütüna taşıyoruz.sonra sadece verileri seçip bir text dosyasına kaydediyoruz. "ParkinsonRaw.txt" bundan sonrası için FannTool kılavuzuna müracaaat edeblirsiniz.

    Sonuçlardan bahsederek yazıyı bitirmek istiyorum.
    Çeşitli denemelerden sonra optimum bir sonuç veren YSA kaydedildi.

    Eğtim verisinde 117 verinin hepsi doğru sınıflandırılıyor ve başarı yüzdesi %100
    Test Verisiyle ulaşılan sonuçlar ise
    58 Parkinson Hastasının 56 sı doğru tahmin ediliyor başarı yüzdesi %96,55
    20 Sağlıklı kişinin 17 si doğru tahmin ediliyor başarı yüzdesi %85

    Konuyla ilgili çalışmaları görmek için
    Parkinson

    Cumartesi, Eylül 05, 2009

    FannTool için Kullanım Kılavuzu

    FannTool kullanımı ile ilgili pek çok sorulara muhatap oluyorduk. bu yüzden her ne kadar zor ve angarya gibi de olsa bir kullanım kılavuzu yazmak zorundaydık. bir iki hafta sonu sahur sonrası sabahlayarak bir şeyler yazdık. İnşallah bir faydası dokunur. Ama aslında Bundan sonrası daha zor çünkü kılavuzun asıl ingilizcesi lazım, malum yurt dışından ilgi daha çok. Bu işi yapacak birisi olursa minnetdar oluruz.

    Kılavuzu İndirmek için
    FannTool Kullanım Kılavuzu

    Kılavuzun Hata eksikliklerini bildirirseniz seviniriz.

    Elinizde YSA projesi var ve Nereden başlayacağınızı bilmiyorsanız yine bize ulaşabilirsiniz. memnuniyetle yardımcı olmaya gayret ederiz. FannTool ile hazırladığınız projeler yada çalışmalar varsa bildirin link verelim yada tanıtımın yazalım.