Pazartesi, Aralık 06, 2010

OpenCv 2.2 yayınlandı

OpenCv nin 2.2 versiyonu yayınlanmış
Neler değişmiş diyorsanız buraya
Kuralım bakalım diyorsanız
windows ve VS2010 için kurulum dosyası buraya
yok ben kendim derlerim arkadaş diyorsanız buraya
Linux için mecbur kendiniz derliyeceksiniz zaten buraya


Müracaat edin

Henüz kurmadım, yazılanlara göre konuşursak
  • Kütüphane komple yeniden organize edilmiş daha küçük parçalara böülünmüş (opencv_core, opencv_imgproc, opencv_highgui, opencv_ml , opencv_features2d, opencv_video, opencv_objdetect,  opencv_calib3d , opencv_flann, opencv_contrib,  opencv_legacy, opencv_gpu) tabii bu değişiklik link ayarlarını değiştirmemizi gerektirecek gibi
  • Android için OpenCv derelenebiliyormuş burada
  • Highgui için Qt destekli özellikler eklenmiş ( Bence tamamen saçma birde Qtnin dll lerini felan eklemek gerekecek tavsiye ederim eğer ekstra GUI özelliği lazımsa FLTK kullanın örenkleri bizim programlarımızda var )
  • GPU desteği verilmeye çalışılıyor fakat CUDA'lı  OpenCv  e-mail gurubundada tartışıldığı gibi bencede NVidia'nın CUDA sı yerine OpenCL'i kullanmak daha mantıklıydı fakat geliştiriciler böyle takdir etmişler. ( daha önce benzeri bir mantıksızlık OpenMP nin yerine İntelin TBB sine geçmekle yapılmıştı   BSD lisanslı bu popüler kütüphane ticari ürünlere eklemlenerek dolaylıda olsa bizi ücretli ürünlere mecbur etmeye çalışıyor gibi bakalım sonuçda ne olacak... )

Pazartesi, Kasım 15, 2010

Kurbandan Kurbiyete



Kurban bayramımızın Kurbiyete vesile olması duasıyla ...
Bayramımız mübarek olsun

Perşembe, Kasım 11, 2010

Bekle Beni Aziz İstanbul....

Bir Fura vesilesiyle Yarın ve ertesigün  ( 12 - 13 Kasım ) İstabula gidip geleceğim
Bekle beni Aziz İstanbul....

Pazartesi, Kasım 08, 2010

Zeki Tahmin Sistemleri Ve Yapay Zeka

Bir önceki yazımızın sonundaki sorudan başlayalım
Hangi Yapay Zeka metodlarını,  nasıl ne şekilde kullanabiliriz ? 
Aslında sorunun cevabı öyle bir çırpıda verilecek gibi değil elbet, yinede bir giriş yapmaya çalışacağız.

Yapay Sinir Ağları :
Sitemizdeki ilgili yazılar ve örneklerden görebelieceğiniz gibi YSA çok esnek bir YZ metodu. Sabit bir Giriş ve Çıkış değişkenleri şekline dönüştürülen hemen her probleme uygulanabilir.  Tahmin edilecek değerin Kendisinden önce gelen değerlerle ilişkili olduğu kabulunü düşünürsek zaten basitçe bir uygulamada mümkün. Daha gelişkin bir sistem için geçmiş değerlerin yanında dış etkenlerin de giriş değerlerine eklemek gerekir.

Zeki Optimizasyon Teknikleri 
Zeki Optimizasyon Tekniklerinden kastım arama tipi metodlar yani Genetik, Karınca Kolonisi, Parçacık Sürü  optimizasyonları gibi. Bu metodların kullanımı ise ; tahmin edilecek değere ulaştıracak fonksiyon oluşturulması yada ( İstatistik veya Kaos teorisi kaynaklı ) Fonksiyonların parameterelerinin bulunması şeklinde olabilir mesela.

Bulanık Mantık ve Uzman sistemler
Tahmin konusundaki Uzman insanların tecrübelerini Bulanık mantıkda kullanarak Modellenip Tahminler için kullanmakdan ibaret.

SVM ve benzeri Sınıflandırma Metodları :
Problemin Tahminden sınıflandırmaya dönüştürülmesiyle kullanılabilir. Mesela,  "A" ürünün fiyatlarını tahmin etmek istemiş olalım.  "A" nın bir "C " kadar zaman sonraki  fiyatı  şimdiki fiyatından
"%b" kadar fazlaysa artmış,
"%b" kadar azalmışsa düşmüş 
değilse sabit kalmış şeklinde

Bahsettiğimiz metodların dışında daha adını bile bilmediğimiz metodlarada ( mesela HMM geliyor aklıma ) bakmak gerekebilir. Hatta  birlikte kullanımlarıda mümkün elbet. Sonuçda bütün bunlara uygulama ve uygulamadaki ulaşılan sonuçlara göre karar vermek gerekiyor...

 Evet Bu yazı dizimiznden sonuna gelmiş bulunuyoruz. Oldukça teorik olduğunun farkındayım fakat şimdilik imkanlarımız ( vakit ve insan gücü ) bu kadar.
Daha sonra neler olur bilemeyiz elbet Nasip artık...

Pazar, Kasım 07, 2010

Zeki Tahmin Sistemleri ve İstatistik

Evet Zeki Tahmin Sistemi  yazılarımıza devam ediyoruz. Bir önceki ZTS ve Kaos teorisi yazısından sonra konunun İstatistiki yönüne bakmaya çalışacağız. Bir sondan bir baştan gibi olacak ama ne yapalım. İsmimiyle müsemma olan bir blogdanda daha düzenli yazı beklemeyelim lütfen.

Tahmin Sistemleri ve Özelde Zaman Serisi  tahmini için pek çok istatistiki çalışma yapılmış. Zaman serisinin belli bileşenlerden olduğu varsayımıyla bir modelleme yapılıyor. Bileşenlerine şöyle üstünkörü bakacak olursak

1) Tren Bileşeni  - Genel Eğim -   T  :   Değerlerin zaman içinde artma yada azalma eğilimi. Bu eğimin doğrusal olduğu gibi eğrisel - nonlineer  - olmasıda mümkün pekala


2 ) Mevsimsel Bileşen  M   : Belli bir zaman periyodundaki iniş ve çıkışlar (dalgalanmalar ) Mesela Meyve sebze fiyatlarının Mevsime göre değişimi

3)  Konjektürel Bileşen  K   : Periyodik olmayan fakat dögüsel olan değişimler. Mesela  Bir ekonomik kriz durumunun bütün ekonomik göstergeleri etkileneip düşüşe geçmesi , sonrasında uygulanan tedbirlerle ve zamanla tekrar yükselişe geçmesi gibi

4)  Rassal Bileşen  R  :  Düzensiz, rastgele olan değişmeler.

Bu bileşenler ile yapılan modellemelerd iki alternatifimiz varmış.

  • yt = Tt * Mt * Kt * Rt 
  • yt = Tt + Mt + Kt + Rt
Burada
yt = Zaman serisinin t zaman dönemindeki gözlem değerini,
Tt = Trend bileşeni’nin t zaman dönemindeki etkisini,
Mt = Mevsimsel bileşlenin  t zaman dönemindeki etkisini,
Kt = Konjonktürel bileşenin  t zaman dönemindeki etkisini,
Rt = Rassal bileşenin t zaman dönemindeki etkisini,

Bundan sonrası elimizdeki verilerle Bileşenlerin hesaplanıp geleceğe doğru tahminlerde kullanılmasından ibaret. Bileşenlerin ayrıştırılıp çıkraılması için de pek çok metod icad edilmiş.

Bütün bunlar aslında Klasik diyebileceğimiz metodlar. Dolaysıyla bizim ZTS için bu metodları doğrudan kullanmanın bir katkısı olmaz. Bence konuyu genel olarak bilip, bu istatistiki çalışmalardan ve Kaos teorisinden  faydalanan Yapay Zeka Temelli   bir sistem oluşturmak gerekir.

İyide, Hangi Yapay Zeka metodlarını,  nasıl ne şekilde kullanabiliriz ?
İşin İçine İstatistiki klasik metodları ve de Kaos terorisini nerde ve nasıl katabiliriz ?
...

Pazar, Ekim 24, 2010

OpenCvSharp Kurulumu ve Kullanımı

Aslında bu konuya pek de girmeyi istemiyordum, Çünkü C# da  ben zaten yeniyim. ama ısrarlı sorular ve Özellikle OPOS programını çalıştıramamaktan şikayetler üzerine açıklama yazmak şart oldu.

Baştan başlarsak OpenCv pek yaygın olarak kullanılan bir bilgisayarlı görü (ComputerVision)  kütüphanesidir. Bilgisayarlı Görü İşleminide sadece Görüntü işleme zannetmemek lazım, bakan değil gören bilgisayar meselesi aslında.
İşte Bu kütüphane (OpenCv) C / C++ da yazıldığında öyle doğrudan DotNet dilleriyle kullanamazsınız.  Bazı metodlarla çağrırmanız lazım. Bu noktada bir kolaylık var, bahsi geçen metodlarla OpenCv ye ulaşmamızı sağlayan  ara kütüphaneler (wrappers)  hazırlanmış. Onlardan biri ve de bizim tercihimiz  olan OpenCvSharp dır.

Meseleyi böylece özetlediğimize göre yapacaklarımızı anlatalım. OpenCvSharp'ı kullanmak için

OpenCv yi kurmanız lazım. Şu anki kullanılabilir sürüm OpenCv 2.1 İndirme adresinden Windows için  hazırlanmış  kurulumlu paketini (OpenCV-2.1.0-win32-vs2008.exe ) indirin ve kurun.

OpenCvSharp ın OpenCv 2.1 için hazırlanmış olan paketini indirin ve Bilgisayarınızda uygun bir yere açın.
İndirecekleriniz
Evet Programlamaya geçmek için yaptığımız hazırlıklar tamamlandı.

Visual C# 'ı çalıştırıp, yeni bir proje oluşturun Konsol yada Winform Farketmez. Sonrasında kullanacğımız kütüphaneleri eklememiz gerekiyor. Solution Explorer da  Reference kısmına sağ tıklayıp Add Reference deyip

Browse tabından OpenCvSharpı açtığımız dizine gidip

  • OpenCvSharp.Blob.dll
  • OpenCvSharp.CPlusPlus.dll 
  • OpenCvSharp.dll
  • OpenCvSharp.Extensions.dll
  • OpenCvSharp.MachineLearning.dll
  • OpenCvSharp.UserInterface.dll
Kütüphanelerini projenize ekleyin.
OpenCv nin Machine learning kısmı ve cvblob kütüphanesi C++ ile yazıldığından  onlarıda kullanmak istediğinizde "OpenCvSharpExtern.dll"   dosyasının da programınızla aynı yere koymanız lazım.

Bundan sonrası için yapmanız gereken şey OpenCv  programınızı yazıp derlemek

using System;
using OpenCvSharp;

class Program
{
    static void Main()
    {
        IplImage src = Cv.LoadImage("lenna.png", LoadMode.GrayScale);
        IplImage dst = Cv.CreateImage(new CvSize(src.Width, src.Height), BitDepth.U8, 1);
        Cv.Canny(src, dst, 50, 200);
        Cv.NamedWindow("src image"); 
        Cv.ShowImage("src image", src);
        Cv.NamedWindow("dst image"); 
        Cv.ShowImage("dst image", dst);
        Cv.WaitKey();
        Cv.DestroyAllWindows();
        Cv.ReleaseImage(src);
        Cv.ReleaseImage(dst);         
    }
}
 
Örnekden de görebileceğiniz gibi OpenCv biliyorsanız kolaylıkla OpenCvSharpda da program yazabilirsiniz.  OpenCvSharp'ın örnek programlarını yada bizim yayınladığımız programları incelemenizi tavsiye ederiz.

Yazı epey bir uzamış ama DLL Cehenneminden ( DLL Hell )  bahsetmeden geçmeyelim. Bizim yayınladığımız programı indirdiniz ve çalıştırmaya kalktınız. OpenCv yi OpenCvSharp 'ı kurduğunuz halde OpenCv dll hatası veriyorsa. İsimleri aynı olmuş olsada versiyonu farklı olan dll ler yüzünden kaynaklanıyordur problem. Yapmanız gereken
Örnek programla birlikte gelen DLL leri ve çalıştırılabilir programı silin.
Programın proje dosyasını açın ve OpenCvSharp referanslarını silin
Kendi sisteminizdeki OpenCv referanslarını ekleyin
Programı tekrar derleyin.

Probleminiz - umuyorum - Çözülmüş olacaktır.
Çözülmemişse de biz buralardayız, Sıkça Sorulan Sorular kısmını da açtık, sorularınızı bekleriz...

Israrlı Sorular Üzerine Ek: 

  1. OpenCv nin her yeni versiyonunu kurupda denem yapma imkanım ve zamanım yok.
  2. İlk aşamada bir şeyi öğrenirken var olanı aynen uygulmak lazımdır.
  3. Genelde oluşan problem OpenCv ve OpenCvSharp'ın yeni versiyonlarını kullanmaya kalkılıyor fakat uyumlu olmayanları kullanıyorsunuz mesela Siz OpenCv 2.4.3'ü kurmuşsunuz ve OpenCVsharp 2.4.0 ile çalıştırmaya çalışıyorsunuz...
  4. Versiyon uyumunu sağladığınız halde çalışmıyorsa eğer OpenCvSharp'a bir bug raporu yazın. ve hali hazırda çalışan örneği yani yukardaki versiyonları kullanarak aynen uygulayın....

Pazar, Ekim 10, 2010

Zeki Tahmin Sistemleri ve Kaos teorisi.


 Zeki tahmin sistemiyle kast ettiğim şey geleceğe dönük ekonomik göstergelerin, ticari manada bir getiri kazandıracak başarıda hesaplanması.  peki nasıl olacak bu...

Kainatta biz bilelim bilmeyelim bir düzen vardır. Bilim dediğimiz şeyde bu düzenin keşfi üzerine kurulu. Her yerde bir düzen varsa ve her şey bir şablona uygun davranış gösteriyorsa, ekonomik sistemlerde de bir düzen vardır. hem ne demişler "Kainatta tesadüfe tesadüf edilmezmiş"

Zeki tahmin sistemlerine giriş yaptığımız "YSA ile Basit bir Zaman Serisi Analizi" yazımızda tahminlerin kaos teorisindeki "Kelebek etkisi" sebebiyle ileri doğru gittikçe belirsizleşeceğinden bahsetmiştik. Fakat yine kaos teorisine göre düzensizliklerinde bir düzeni var. Garip çekiciler bu düzenin belkide görebileceğiniz bir yüzünü gösteriyor.  Mesela ülke ekonomisi üzerine kurulmuş bir çekici var "Tamari attractor". hatta birde simulatör yapılmış "Economic simulator".  Benzeri çalışmalar içine girilebilebilir

...

Zeki Tahmin sistemi nin uygulana bilmesi için  İstatistiki ve  Yapay zeka metodlarının yanında Kaos teorisi ilede uğraşmak gerekecek. Pek tabii ki bütün bunlar Fikir aşamasındaki konular, tek başıma nereye kadar yürütebilirim bilmem.

Pazar, Eylül 19, 2010

Yaşamayı Bileydim Yazarmıydım Hiç...

 Yaşamayı bileydim yazar mıydım hiç şiir?
Yaşamayabileydim yazar mıydım hiç şiir?
-Yaşama!
-Ya bileydim?
Yazar: Mıydım
Hiç: Şiir. 



İsmet Özel
Epeydir yazmıyorum / yazamıyorum.

Aslında yazmak / yapmak istediğim istediğim   pek çok konu var...


Öncelikle aktif projelerimizden başlayalım, FannTool en son  1.1 versiyonunu yayınladık. Aslında epey bir ilgide var, Tabii buda yeniliklere teşvik ediyor insanı. Fakat kolayda değil hani; Ana kütüphanede epeydir bir gelişme yok. Steffen Nissen sanırım bu işle uğraşmaz olmuş. En son GSOC 2007 de bazı çalışmalar yapıldı, onlarında eksiklikleri var. Bir türlü derlenip toplanıp ana kütüphaneye  eklenemedi. İyi haber Bazı münferit çalışmalar oluyor. Mesela Seth Price'ın GPU destekli bir FANN çalışması var
FANN forumdaki  ilgili başlık OpenCL Enhanced FANN ve kod  ( Unutmadan OpenCL konusunuda araştırmaya başlayın size tavsiye. )  Birde Softmax aktivasyon fonksiyon eklemesi var. Daniel Oebrhoff'un çalışması ve kod  Sonuçda bu tarz çalışmalar ana kütüphaneye eklenip FannTool'a dahil edilebilir. Yada benim bazı planlarım var YSA eğitimi için Genetik Algroritma ve / veya Yapay Arı Kolonisi Algoritmasının kullanımı.

Bir Diğer aktif projemiz cvPreProcessor. Bu proje aslında umduğum kadar ilgi göremedi. Tanıtımını iyi yapamadığım kanaatindeyim. Hali hazırdaki haliyle temel görüntü işleme fonksiyonlarının çoğunu kapsıyor. Bazı eksikliklerin sebebi Kod üretici olarakda çalışması. Kod üretim kısmını askıya alıp, daha rahat eklemeler yapabileceğim yönünde fikirlerim var. yapılacak eklemelere gelirsek;
  • Doğrudan Kameradan yada Video dosyasından görüntü alma. 
  • Yatay ve dikey histogram çıkarma
  • Doğru Bulma
  • Çember Bulma
  • Dış Kenar  ( Contour ) Bulma
  • Blob Bulma
  • Nesne Bulma ( Haar )
  • Nesne Bulma ( Hog )
  • ...
Bütün bunların dışında merak saldığım yep yeni konular var. Hayal ettiğim yarım kalmış pek çok proje var. Var var olmasında yapacak adam buralarda değil...


Sanayide işlerde epey bir artış var. Eskisine göre çok daha yoğun geçiyor.  Hatta işteki bazı değişiklikler sebebiyle çok daha sıkıntılı , bunaltıcı ve yıpratıcı geçiyor. Akşamları yorgunluk ve tembellik sebebiyle pek bir şey yapamaz oldum. Cumartesileri de çalışıyoruz artık. Pazar günleri ise kırk derede  kırk iş çıkıyor...

Bütün bunlar elbette mazeret. Üzerimdeki yılgınlığı, bıkkınlığı atabilirsem, etkisinin  azalacağı da aşikar. Atamazsam, bilemiyorum artık...

Seyreyle Güzel Kudret-İ Mevla Neler Eyler
Allaha Sığın Adl-İ Teala Neler Eyler

Pazar, Ağustos 01, 2010

Yarım Kalmış Projeler 2,75



SetEnaniyetKafDağı();  

Avrupalı bir Terlik firması afrikanın iki değişik alanına pazar araştırması için iki personel yollar.
bir süre sonra cevaplar gelir firmaya;
İlki “Burada malaesef hiç bir şansımız yok herkes çıplak ayakla geziyor.” şeklinde bir rapor gönderir firmasına
ikincinin cevabıysa ilginçtir;
“Burda müthiş bir pazar var kimsenin ayağında terlik yok “

Gelelim üçüncü aşamamıza : Pazarlama Tanıtım.
Yıllar yıllar evvel yazmış olduğu programın pazarlamasını yapamayarak. Programlama camiasından boynu bükük ayrılıp, sanayi de burun sürtmeye devam benim için ayrı bir önemi var konunun. yukarda geçen kıssamızın ise ana fikri gayet açık, işi ehline verin.

Fikri bulan ve Uygulamayı yapan kişiler, işin satış ( pazarlama, tanıtım )  aşamasını küçük görüyor, önemsemiyor.  İşin ehli olan kişilerin isteyecekleri payı yüksek görüp, Ya kendisi uğraşıyor bu işlerle, yada işin ehli olmayan kişilere havale ediyorlar. Oysa bu aşamada en az  diğerleri kadar önemli. Ve belki de pek çok projenin adı sanı pek duyulmadan bir kenarda unutulup gitmelerinin asıl sebebi oluyor. Uğraşıp didinip uygulamanızı yapıyorsunuz ve sıra karşılığını almaya geldiğinde acemilik yapıyorsunuz. Böyle olmaz, bütün emeğinizi heba etmektense paylaşmak iyidir.

ReleaseEnaniyet();

NefisMuhasebesi.Enabled();
 
Gelelim “Ya bu işler niye böyle yarım yamalak kalıyor ?” sorumuzun cevabına 
aslında serinin son yazısınında böylecek yarım yamalak kalmasından belli...
Bırakın ekip kurmayı,  açık kaynak kodlu projesi için beta testi yapacak insan bile bulamayan birinin, Projelerinin, ve Yazılarının yarım kalmasına şaşmamak gerekir....

NefisMuhasebesi.Disabled();

Not : Bu günlerde babamın sağlık problemleri var. Hayır dualarınızı bekleriz....

Pazar, Temmuz 18, 2010

Yarım Kalmış Projeler 2


SetEnaniyetKafDağı(); 
İkinci aşamamız Uygulama:
bu aşamayla zora girmiş bulunuyoruz. Bir önceki aşamada tatlı tatlı hayaller kurmayı bırakıp kolları sıvamak gerekiyor.

Bence bu aşamanın ana noktası insan. hemen şimdi blogun künyesine bir bakın. 

Pamuk ipliğinden biraz daha sağlam tek bağ: düşünce birliği. O da rüzgarın her an tehdit ettiği bir kandil. Düşünce birliği, düşünen insanlar arasında olur. İnsanların kaçta kaçı düşünür? Düşünenlerin kaçta kaçı karşılaşır ve açılır birbirine


Evet, projenin değişik kısımları için değişik niteliklere ( bilgi, tecrübe, para, vakit ) sahip düşünce birliği yapmış insanlar lazım. Biz buna ekip kurmak diyoruz. 

Ekipsiz olmaz mı ?.

Bence olmaz;
Mesela Açık kaynak kodlu, Önüne Geleni Vur tipi bir oyunda bilgisayarla yönetilen düşmanların daha zeki oynamalarını sağlamak istiyoruz. Ekip için;  Oyunun geliştiricilerinden biri lazım, Yapay Zekadan anlayan birisi lazım. O Oyunu iyi oynayan değişik insanlar lazım. Hepsini ben yapıyorum deseniz test için yine başka insanlar lazım...

Zor da olsa bu niteliklere sahip insanlar olarak bir araya geldik, ve bir ekip kurduk diyelim. Bütün problemler bitti mi ?

Hayır daha yeni başlıyor. Kıssamıza bakalım;

Bir Acem bir Türk bir de Rum   ortaklaşa bir işte çalışmışlar  gün bitip de parayı  aldıktan sonra ne alınacağına karar vermeleri gerekmiş. hepsi de kendi dilinde üzüm istemişler sonrada  başlamışlar kavgaya   benim istediğim alınacak diye...
Evet ekibi bekleyen ana tehlike anlaşamamazlık, değişik şekillerde başa gelebiliyor.

Mesela  yukarıdaki kıssanın tersi bir durum var. aynı şeyi istiyoruz diyerek bir araya gelmişiz ama aslında birimiz çekirdeksiz üzüm birimiz hasan dede üzümü bir diğerimizde kuru üzüm istiyor .  Yani aslında ekip kuramamışız, kurduğumuzu sanıyoruz.

Ekibi gerçekten kurabilmişsek bu sefer de kıssadaki gibi bir duruma düşmemek için aynı dili konuşmak lazım, yoksa yok yere anlaşmazlığa düşebiliriz.

Başka ?
Ekip üyelerinin belli bir disiplinde, sürekli ve irtibatlı olarak projede çalışmaları lazım.
Bir zamanlar benim bir Elektronik mühendisi olan arkadaşım, aynı iş yerinden diğer arkadaşlarıyla birlikte bir iş dışında projeye başladılar. Projede yapacakları iş aslında işte yaptıklarıyla aynıydı, fakat yapamadılar. Yapamayışları yapamayacaklarından değildi, irtibat, disiplin ve süreklilik eksikliğindendi...

Başka ?

“İyi bazen en iyiden daha iyidir” düsturuna uymamak da anlaşmazlık problemini doğurur.  Bizce yapılması gereken en doğru seçenek vardır, fakat ekibin diğer üyelerinin de başka başka en doğru seçenek kanaatleri olabilir.  Ekip arkadaşlarımızla ortaklaşa kabul edeceğimiz doğru seçenek, ittifak edemeyeceğimiz en doğru seçenekten daha iyidir.
 Başka
...

ReleaseEnaniyet();

Çarşamba, Temmuz 14, 2010

Yarım Kalmış Projeler 1


SetEnaniyetKafDağı(); 

Yarım kalmış projeler külliyatımıza, ha bire ekleme yapmaktan sıkıldığımızdan.  Ya bu işler niye böyle yarım yamalak kalıyor ? diyerek bir iki adım geri çekilip mevzuya bakmaya çalışıyoruz

Projeler zannımca 3 aşama  veya  kısımdan oluşuyor

  • Fikir
  • Uygulama
  • Pazarlama / Tanıtım / Yaygınlaştırma
 İlk aşamamız Fikir. Temel bir aşamadır ve diğer aşamalarında etkiler. İyi bir fikir vasat uygulama ve vasat  pazarlamayla başarılı olabilirken. Kötü bir fikrin  iyi uygulama ve iyi pazarlamayla da olsa başarılı olma ihtimali düşüktür. 

İyide zaten kim kötü bir fikirle yoluna devam eder ki ?
hiç kimse. Her kötü fikirde aslında iyi olduğu zannıyla yürütülür. 
 
Peki fikrimizin gerçekten iyi mi kötü mü olduğunu nasıl bilebiliriz ?
Aslıda bu sorunun cevabı her halde bilemeyiz. 

Fakat şöyle bir şey yapılabilir gibi geliyor bana.  bu konuda fikrin sahibi olarak kendimize güvenemeyiz. malum “Kargaya yavrusu şahin görünürmüş “ Yapılacak olan ; işin ehli, güvenilir ve dost  ( acı söyleyeninden ) birisine, o bizim yerlere göklere sığdıramadığımız, muhteşem ötesi fikrimizi anlatmaktır. Zaten anlatmaya başlayınca aslında o kadarda muhteşem olmadığının farkına varırız. Sonra Dostta acı konuşmasını yapınca, ayaklarımız daha bir yere basarak fikrimizi değerlendirebiliriz. Bütün bunlardan sonra hala fikirimizin iyi olduğunu düşünüyorsak çare yok devam edeceğiz. fani adamın güzel sözündeki gibi “Hak bellediğin yolda yalnız gideceksin!”

Fikirimiz iyiyse  fakat orijinal değilse ne olur ?
Bu durumda Projenin başarısı sonraki aşamaların başarısına bağlıdır. Rakiplerinden daha iyi uygulama ve pazarlama gerektirir.

Bir sonraki safhaya geçmeden not edelim Fikir ile Hayal’i ayıran şey ikinci ve üçüncü aşamalardaki yeteneğimiz yada bilgimizdir. Fikrin nasıl uygulanacağını  bilmiyorsak, yaptığımız şey aslında sadece hayal kurmakdır. Hayal ilede en fazla ulaşacağınız paye olada başka birisi benzeri bir fikri hayata geçirirse "Ya ben bunu düşünmüştüm " diyerek kendinize bir  övünme vesilesi çıkarmanızdır...


ReleaseEnaniyet();

Çarşamba, Temmuz 07, 2010

Farkındamıyız ?

Göklerin ve yerin mülkü Allah'ındır. Allah, herşeye güç yetirendir.
Şüphesiz göklerin ve yerin yaratılışında, gece ile gündüzün art arda gelişinde temiz akıl sahipleri için gerçekten ayetler vardır.
Onlar, ayakta iken, otururken, yan yatarken Allah'ı zikrederler ve göklerin ve yerin yaratılışı konusunda düşünürler.
(Ve derler ki:) "Rabbimiz, Sen bunu boşuna yaratmadın. Sen pek Yücesin, bizi ateşin azabından koru."
Al-i İmran 189 - 191

Üç Aylar geçiyor
Fırsatlar kaçıyor
Ömür tükeniyor
Farkındamıyız ? 
....


Ya Müheymin!
Sensin gariplerin sığınağı
Sensin kimsesizlerin dayanağı
Sensin hakkı himaye eden
Sensin aklımı aldanışlardan kollayan
Sensin ayağımı tuzaklardan kurtaran
Sen ki zayıfları kuvvetlilerin şerrinden himaye edersin
Mazlumların hakkını zalimlerden almayı vaat edersin
Sen ki benim en küçük¸ en önemsiz¸
En gizli arzularımı da bilir bana merhamet edersin
Nefsimin aldatmalarına kanmaktan koru beni
Aşağıların aşağısına yuvarlanmaktan koru beni


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


Bütün soruların cevapları Esma’ul Hüsnada gizleniyor 
Üç Aylar geçiyor
Fırsatlar kaçıyor
Ömür tükeniyor
Farkındamıyız ? 
....

Pazar, Haziran 27, 2010

Kameralı Ölçüm Sistemi

Sanayide üretimin önemli bir aşamasıda Kalite kontroldür. Kalite kontrol de ürünlerin pek çok kıstasla sınanması lazım gelebilir. İşte onlardan biride ürünün istenen hassasiyette ebatlara sahip olmasıdır. İşte bu veya benzeri pek çok amaç için basit bir Kameralı ölçüm sistem programı hazırladık 

Ve Örnek ölçüm görüntülerimiz


Ben Bunları basit bir kumpaslada ölçerim demeyin.

   
 Kameranızı  mikroskopa bağlayıp neler ölçebileceğinizi de düşünün... 

Programımız C# ile yazıldı ve OpenCvSharp kütüphanesi kullanıldı
Indirmek için :  Cetvel

Pazar, Haziran 13, 2010

FannTool 1.1 Released



Evet FannTool 1.1 Betayı yayınlıyalı 4 hafta olmuş, ve 161 kişi indirmiş. Her zaman olduğu gibi süper ! yazmışım, hata bildirimi felan olmadı. Bir dahaki sefere - tabii ki bir dahaki sefer olursa  - direk yayınlarım, nasıl olsa hata felan çıkmıyor...
Aslında bu kadar da beklemeyecektimde,  "Run as Classifier" diye bir kısım da ekleyeyim diye bekledim ama  olmadı. Bu aralar üstümde bir tutukluk var, bir türlü elim varıpda ekleyemedim, kısmet.
Neyse lafı uzatmayayım  İndirmek için aşağıdaki linklere müracaat edin.
Download :



Olmazya hani belki  diyorum bir ihtimal; Görüş, öneri veya eleştirlieriniz varsa bekleriz duymakdanda menuniyet duyarız. Yardıma ihtiyacınız olursada elmizden geldiğince ve bildiğimiz kadarıyla yardımcı olmayada çalışırız. duyrulur...

Pazar, Mayıs 16, 2010

FannTool 1.1 Beta


Evet en sonunda beta haline getirebildim. Aslıda fazla bir değişiklik yok, ama pek çok düzeltme var.
Değişikliklerden kısaca bahsedersek ;
  • Run as Time Series diye bir kısım ile Zaman serileri için ileri doğru tahmin çalıştırmasını yapan bir kısım eklendi.
  • GUI kütüphanesinin yeni versiyonu kullanıldı ( FLTK 1.1.10  )
  • Pek çok Bug temizlendi
  • Kullanım kolaylığı için bazı düzeltmeler yapıldı
  • Icon ve Yeni Logo hazırlandı ( İlker Yoldaş hazırladı kendisine burdan teşekkürde etmiş olalım )
  • Dosya Seçme kısımlarının Native hale getirildi windows için

İndirmek için : FannTool 1.1 Beta

Deneyip fikirleriniz beyan ederseniz sevinirim

Pazar, Mayıs 09, 2010

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

Geçen ayki yazılım atölyesi etkinliğinden bahsetmemişdim. Çünkü konular benim ilgi ve de bilgi alanıma girmiyordu. Daha bilgili ve ilgili  katılımcıların izlenimlerini bekleyip durdum.Lakin Görebildiğim kadarıyla anlatan olmadı, bizde bir kaç satırda olsa bir şeyler karalayım dedik...

Yazlım Atölyeleri sayesinde Üniversitelerimizi gezer olduk. Geçen ayda Çankaya Üniversitesindeydik.

İlk Önce Halil Ağın bey Java camiasının ORM'si Hibernate den bahsetti. Bahsettidemek aslında biraz haksızlık olur. Uzun ve hızlıca bir ders işledi. Benim anlayabildiğim kadarıyla mevzu şundan ibaret. Veri tabanı cephesinde  ekseriyetle ilişkisel veritabanları (relational databases)  hakimiyeti var.Yazılımda da da OOP sevdasıdır sürüp gidiyor ( Allah sonumuzu hayretsin ... ) Şimdi bu OOP sevdalılarının
"ya bu İlişkisel Veritabanı mantığı bizi bozmasın hoca biz bunlarıda OOP ye dönüştürelim"
demesiyle ORM oluşmuş. Bu dönüşüm için epece cebelleştikten hatta yapının OOP ye daha uygun olabilmesi için İlişkisel veritabanı sistemine göre gereksiz tablolarda ekledikten sonra. Mutlu sona ulaşıp kolayca Veritabanı işlemlerini OOP mantığıyla yapabiliyormuşuz.

İkinci arkadaş Ahmet Oğuz Koca ise Entity Framework'u anlattı. Anlatışındaki Microsoft kurnazlığı ve kıvraklığıda gözden kaçmıyordu. Bir önceki konuşmada  Hibarnate anlatıldıya, İşte onun sağladığı bütün kolaylıklara ve avantajlara  Entity Framework ile çok daha kolay ve görsel olarak ulaşabilecekmişiz. Üstelik Visual Studio'nun leb demeden leblebiyi anlayan imkanlarıda elimizin altında olacakmış. Bu Microsoft'un  kurnazlığıyla ve kıvarklığıyla Javacıların işi zor. Ve kayıpları devam edecek gibi görünüyor.

Özetle geçen ay bunlar oldu. Peki bu ay ne yapacakasınız diyorsanız, bende bilmiyorum. Sahi biz bu ay ne yapacağız ?

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...