Sayfalar

Pazar, Temmuz 24, 2011

OpenCv 2.3 Yayınlandı


OpenCv 2.3RC'nin yayınlandığından bahsetmiştim zaten. Fazla arayı açmadan OpenCv 2.3'ü de yayınladılar sağolsunlar. Bizde şöyle üstün körü baktık.

Kurulum paketi hazırlamamışlar. Hazırlanan paket sadece sıkıştırılmış dosyaları açıyor. dll lerin path işlerini halletmek size kalmış.

Dökümantasyonu epey bir ilerletmşler, yeni kaynaklar ( pdf ) var
  • opencv_cheatsheet : OpenCv nin C++ arabiriminde ne nasıl yapılır konusunda kısa ve öz bir referans
  • opencv_tutorials :  OpenCv üzerine eğitici örnek programlar. Şimdilik  kısmen tamamlanmış.
  • opencv_user :  Kullanıcı rehberi
  • opencv2refman : Referans Kitabı
başlık dosyalarının ve kütüphane dosyalrının konumları için yeni düzenlemeler yapmanız lazım.
 kütüphane dosyalarının bölümlenmelerinde  ve isimlerindede değişiklikler var. detay için dökümantasyonlarına bakın.

Geriye uyumluluk konusunda bence gayet başarılı Üstteki resimdeki programı OpenCv 2.3 ile tekrar derledim. tek satır değiştirmeden.

Bu  sefer tavsiye ediyorum geç kalmadan OpenCv 2.3'e geçin.
Bir an öncede C++ API larını öğrenmeye bakın eskiden C API ları üzerine C++ yapısı kurulmuştu. Bir süredir tersine bir geçiş var. Yani artık OpenCv gelişimini C++ üzerinden yürütüyor. C API ları geriye uyumluluk ve diğer dillerden kullanılabilme adına tutuluyor.
Unutmadan OpenCvSharp da 2.3 versiyonunu yayınladı...

Cumartesi, Temmuz 02, 2011

Ordan Burdan Haberler

Aslında uzun uzun yazmak istediğimiz ama fırsat bulup yazamadığımız haberler var biriken. bu köşemizde   onlardan bahsediyoruz.  Köşemiz diyorum çünkü aynı başlık altında benzeri yazılar yazdım daha öncede. Detayların için yorum bırakabilir yada e-posta atabilirsiniz.

1 ) FLTK 1.3 kararlı sürüm olarak yayınlandı. Geliştiricilerin büyük gayretleri oldu ve FLTK 1.1 serisi üzerinden geliştirildiğinden genelde program uyumluluk sıkıntısı da çekilmeyecek. yapılanlara gelirisek;
UTF-8 desteği
2 yeni bileşen Fl_Tree ve Fl_Table
Daha işletim sisteminize uygun görünen Dosya seçiciniz Fl_Native_Filechooser
Cross-platform bir yazıcı desteği  ( FLTK nın OpenGl kısmıda dahil )

2 ) OpenCv 2.3 rc yayınlandı. yayınlandı yayınlanmasına ama benim bu versiyon yayınlamalarında hoşuma gitmeyen şeyler var. Yiğidi öldür hakkını yeme demişler, Öncelikle gerçekten hemen her versiyonla birlikte pek çok yenilik geliyor. Fakat dökümantasyon çoook geriden geliyor. dökümantasyonlarda yapılan yeniliklerle ilgili bir açıklama bulmak çoğu kez mümkün olmuyor. Keza yayınlanan sürümlerin kararlılığınada genelde pek dikkat edilmiyor. Keza bundan önceki sürümü denemiş fakat problemlerle karşılaştığım için vazgeçip bir öncekine geçmiştim. Vakit buluncabunuda deneyeceğim inşallah. sonuçları o zaman duyururum. Bu sürümün yeniliklerine bakmak için buraya müracaat edin
3 ) Internetten AR-GE  : Evet biz yataduralım elin oğlu bunuda yaptı. Hem neden yapmasınki. Bir AR-GE projesi için sınırlı sayıda ( maliyet ) insanla bir ekip kurup, Bu ekibin kısa sürede sonuça ulaşmaları umulurken. Şimdi Projeyi Internetten yarışma şeklinde duyrup ödülü koyarak - maliyet sabit - sınırsız sayıda kişi çalıştırıp. Parayı sadece başarana (en kısa sürede istenen sonuca ulaşan ekibe ) vermek, patronlarında işine gelir. Peki bizim niye işimize gelsin derseniz. Türkiye şartlarında kaç kişinin  kendi tercih edeceği bir projeye dahil olabilme imkanı varki. Internetten AR-GE ile Boş vakitlerinizde yada Boşa geçirdiğiniz vakitlerde tercih edeceğiniz bir konuda çalışabilirsiniz. Kazanamsanızda size tecrübe olmuş olur zaten boşa vakit geçirecektiniz...
neyse konuyu fazla uzatmadan linkleri vereyim. Girin siz kendiniz bakın detaylarına. Katılmak için ekip kurarsanızda haberimiz olsun...

4)  OpenCv için yeni bir kitap çıktı. C++ ve OpenCv 2 versiyon temelli olarak anlatıyor
OpenCV 2 Computer Vision Application Programming Cookbook
5)  Matlab Görüntülü Dersler :  Daha önce İnternetten dağıtılan İlmin zekatı diye bir yazıda yazmış idim. videolectures.net ve www.academicearth.org gibi yurt dışı kaynaklı derslerden bahsetmiştim. Türkiyedede yaygın olmasada benzeri imkanlar başladı. İsmail Arı da Matlab Dersleriyle ilminin zekatını verenlere öncülük ediyor. Matlab öğrenmek gibi bir niyetim olmasada,  duyurmamak olmaz diyoruz ve projenin tanıtımındaki
      "Not: Proje MATLAB eğitimi ile başlamıştır fakat ileride farklı konular eklenecektir."
 ifadesiyle ümitvar oluyoruz.

Pazar, Haziran 26, 2011

KNIME ve Haber Metinlerinin Sınıflandırılması 2

Uygulamamız, Başlıkdanda anlayacağınız gibi Haber Metinlerinin otomatik sınıflandırılması. Uygulamamız için gereken veriyi Kemik den aldık. Kemik  Yıldız  Teknik Üniversitesinin Doğal Dil İşleme Grubu.  Neden Kemik? sorusunuda "Çünkü dilin kemiği yoktur" diye cevaplıyorlar.

Gurubun yayınladığı veri kümelerinden 75Haber diye geçen veri kümesini kullanacağız Veri kümesi  M.Fatih Amasyalı tarafından hazırlanmış ve bu makalede
 Otomatik Haber Metinleri Sınıflandırma", M.Fatih Amasyalı, Tülay Yıldırım, SIU 2004
kullanılmıştır.

5 farklı haber sınıfına ait 15’şer, toplamda 75 haber içermektedir.
Haber metinlerinin sınıfları:
  1. ekonomi
  2. magazin
  3. sağlık
  4. siyasi
  5. spor 

KNIME ile veri okunup test ve eğitim olarak 2 ye ayrıldı ( 50 eğitim 25 test ) SVM ve Weka-Bayes ile sınıflandırma işlemi yapıldı
İşlemin akış şeması


ve Test verileri için sonuçlar şöyle
Bayes  25 yazıdan 22 sini doğru sınıflandırmış
 SVM  ise 25 yazıdan 13'ünü doğru sınıflandırmış

KNIME ve Haber Metinlerinin Sınıflandırılması 1



Öncelikle KNIME de nedir ki sorusuna cevap verelim
KNIME yani "Konstanz Information Miner" almanyada Konstanz üniversitesinde geliştirilmiş açık kaynak kodlu ve ücretsiz bir programdır. Veri madenciliği , Veri yükleme, işleme, yazma,  görselleştirme işlerinizi gayet kolay yapabilirsiniz.



Başlangıçda İlaç endüstrisi için yazılmış olsa da artık pek çok alanda kullanımı mümkün kılan özellikleri var.  mesela
  • CRM müşteri veri analizi, 
  • iş zekası ve finansal veri analizi
  • Doğal Dil İşleme
  • Görüntü İşleme
gibi. Neyse kafı fazla uzatmıyayım.
www.knime.org
adresinden indirip kurmanızı  ve   sonra, ek özelliklerininde (Extensions) kurulması için menüden
"File ->Install KNIME extensions" ile kurulumu tamamlayıp incelemenizi tavsiye ederiz.
( Weka ve R entegrasyonu , Python ve Perl Scripting, LibSVM gibi pek çok özellik bu şekilde ekleniyor )
Bu kadar laftan sonra bir uygulamada hazırlayalım istedik. Bekleyiniz yakında ....

Perşembe, Haziran 23, 2011

Yaz Tatili Ödevi !

Epeydir yazı yazamıyıyorum. aslında kafamda tasarladığım pek çok konu oldu ama vakit bulup da  yazıya dökmek nasip olmadı. Vaktimin olmaması aslında bir bahene, blogdaki pek çok yazıyı ne sıkışık zamanlarda yazdığımı ben bilirim. İnşallah şu üzerimdeki tembellik kalkarda aklımdaki yazıları yazabilirim.

Tembellik dedimde aklıma geldi. Okullar kapandı, blogdaki yazılarımızı ilgi duyan ve bitirme tezini bu tür konularda almayı planlayan, öğrenci kardeşler için bu yaz tatili zamanı büyük bir fırsattır. Seneye derslerdi, sınavlardı derken, tez verme zamanı gelipde
" Önümüzdeki hafta tezi tamamlamam lazım yoksa okul uzayacak "
şeklinde sızlanmamak için şimdiden gayret göstermek lazım. Hem zaten Öğrencilikten Talebeliğe  geçişde ancak böyle mümkün tabii böyle bir niyetiniz varsa

Bu yazıda iki kitap tavsiyesinde bulunmak istiyoruz.

İlki  Zekai Şen hocamızın;

"Bilimsel Düşünce ve Matematik Modelleme"
Konu başlıkları şöyle
  • Düşünce ve Model 
  • Matematik Modeller
  • Akılcı (Rasyonel) Mantık Modelleri 
  • Akılcı Sonsuz Küçük Aralık (Diferansiyel) Modelleri 
  • Deneyci (Ampirik) Modelleme İlkeleri 
  • Akılcı-Deneyci (Analitik) Modelleme
  • Sonlu Küçük Aralık (Sayısal) Modelleme 
  • İhtimal Yöntemleri ile Modelleme
  • Çalkantı (Pertürbasyon) Modelleri 
  • Bulanık Mantık Yöntemleri ile Model Geliştirme
Kitapdan  bir kaç parça
"Ülkemiz  eğitim sisteminde, özellikle mühendislik eğitiminde çok fazla sayıda formül ve matematik ifadelere yer verilmektedir. Bunların çıkarılmalarındaki temel düşünce  ve mantık kurallarına ağırlık  verilmediği için , mühendislik eğitimi  sanki bir formüller dizisini  bilme ve uygulama kalıplarına oturtulmuş olarak görülmektedir. Halbuki her formül bir modeldir"

"Bir kişi dogmatik ve sistematik denilen eğitim sisteminde ezberci olarak kaldı, hocaları ile tartışmalı ve eleştirel bilgiler almadı ise... veya hocalar tarafından bu biilgiler verilmedi ise , o toplulukta ne akılcı ne deneyci ne de bunların ikisinin karışımı  biçimlerinde bilgi üretimi olamaz. Bunun doğal sonucu olarak da  incelenmesi mümkün olayların bile modelleri yapılamaz"
Keşke daha gençken okusaydım dediğim bir kitap tavsiye ederiz.

İkinci kitabımız "Görüntü İşleme Teknikleri ve Mühendislik Uygulamaları"

 Bu kitapta geleneksel iki boyutlu filtreler dışında yapay sinir ağları, rasgele sinir ağları, zorlamalı yapay sinir ağları, hücresel yapay sinir ağları, hücresel rasgele yapay sinir ağları, dalgacık dönüşümü, dalgacık hücresel yapay sinir ağları, Markov rasgele alan süzgeçleri, iteratif hücresel resim işleme algoritması, yönlendirme süzgeçleri, genetik algoritma ve görüntü iletimi gibi son derece güncel konular anlatılmaktadır. Bu yöntemler çeşitli sentetik verilere ve gerçek problemlere uygulanmış olup sonuçlar ve yöntemlerin performansları bu kitapta değerlendirilmiştir.

 Tanıtımından da anlaşılacağı üzere bir ders kitabı nitelğinden çok yapılmış makale çalışmalarının derlenmesiyle oluşmuş bir kitaptır. Öğretici olmakdan çok Ufuk açıcı ve ilham verici bir kitap. Erol Gelenbe 'nin geliştirmiş olduğu Rasgele Yapay Sinir Ağları hakkında bilgiler ve uygulamaları görebileceğiniz kaç kitap vardırki türkçede...

Dip Not:  Yazıyı yayınladıktan sonra daha önce yazdığım kitap tavsiyelerinide etiketledim. Artık kitap katagorisinden kolaylıkla ulaşabilirsiniz. Bu vesileyle reklamını yaptığım için satış rekorları kıran kitap sahiplerindende komisyonumun ! tarafıma gönderilmesini bekliyoruz  ;)

Pazartesi, Mayıs 02, 2011

Ardımdan Deli Diyorlar Belkide Yalan Değil

 Okuma Parçası :
- Abi senin siteyi yasaklamışlar
- Öylemi olmuş, Ne bu kardeşim ya bu çağda böyle yasakçı zihniyet felan. Hem benim zararımı kim karşılayacak.
- Ne zararı Abi.
- Reklam gelirlerimizde felan büyük düşüş oluyor
- Sen siteye reklam almıyorsun ki abi 
- Ama alsaydım olacaktı. Hem  sietmin hit sayısının düşmesi Sitenin değerinide düşürüyor.
- Site zaten senin değilki abi sitene gelen hit blogspot'un değerini artırıyor.
- Bakalım buna ne diyeceksin bu siteye gelen hit sayınsınca meşhur oldum sayılılır. Böyle engellemeler ünümü engelliyor
- İyi de abi sitende adını kullanmıyorsunki  olsa olsa nickname'in meşhur oluyor.
- Peki kardeş ben bir şey sorayım ben niye yazıyorum bu sitede ?
- Bilmem ki abi sakın sitenin adındaki sebepten olmasın " Delilik "
- "Ardımdan Deli diyorlar. Belkide yalan değil."
 Evet Yasaklanmamız hakkında bir şeyler yazayım istedim. Kısmet bu güneymiş

Pazar, Nisan 10, 2011

Renk Filitresi



Uzun uzun anlatmaya gerek  Değişik Renk uzaylarında, Web kamerasından alacağınız görüntüler üzerine gerçek zamanlı renk filitreleme yapabileceğiniz pratik bir program.
Hatta üzerine Renk filitrelemeyle elde ettiğiniz mask görüntüyle Inpaint uygulama imkanıda var.
Program C# ile yazıldı elbette OpenCvSharp kütüphanesi kullanıldı.
İndirmek için : ColorFilter

Pazar, Nisan 03, 2011

Plaka Okuma III


Aslında bu konuda tekrar yazacağımı sanmıyordum ama Yoğun ilgi ve ısrarlı sorular ve yoğun indirilmesi fikrimi değiştirmeme sebep oldu.
Soruların Bir kısmı örnek programın çalıştırılamaması üzerine bu sorular için OpenCvSharp Kurulumu üzerine yazdığımız yazı var, cevap orda ordaki söylenenleri dikkatlice uygulayanlar meseleyi hallediyorlar. Konuyu iyi okumadan, anlamadığı halde söylenenlerin bir kısmını farklı yapanlar, yakınmaya devam ediyor,

"Biz orda yazanları yaptık ama olmuyor"

cevap şu orda yazan kuralları dikkatli uygılarsanız olur.

Soruların diğer kısmı ise daha iyi plaka bulma, karekter ayrıştırma, plaka tanıma üzerine felan oluyor. Örneğin iyi olmadığından dem vuranda olmuyor değil, hani.

Evet haklılar elbette örnek çok başarılı bir örnek değil. ama  Zaten doğrudan ticari kullanıma uygun bir örnek yayınlıyoruz diye bir iddiamızda olmadı. Bu program bir İskelet içeriyor, üzerinde daha çok emek ve imkan ister.

Madem bu kadar alaka çekiyor ( bu gün itibarıyla 1322 kez indirilmiş ),  belki devam etmek isteyen çıkar, belki üzerinde geliştrime yapmış, paylaşmak isteyen insanlar olabilir, yayınlayacak yer olsun diye ayrı bir sayfa açtık. Microsoft'un açık kaynak kodlu projeler için açtığı Codeplex den bir sayfa aldık.

Opos.CodePlex.Com
Programın en son halininide yayınladık. Çok büyük bir gelişme yok aslında yeni bir Ocr ( Puma.Net ) eklendi.  Görebildiğim kadarıylada Gocrden daha başarılı gibi.
Fırsat buldukça elimizdeki dökümantasyonlarıda orada yayınlamayı düşünüzyoruz.
bu konuda ilk yazımda
- Açık kaynak kodlu bir sistem yapılabilirmi ?
- Pek tabiiki mümkün ama esas mesele belli bir düzeye gelmesi için gereken desteği alması
- Açık kaynak kodlu böyle bir sistem sizce gereken desteği alabilirmi ?
- Pek sanmıyorum.
 diyerek pek umutlu olmadığımı belirtmişim, ama işte 1300 küsür insandan 3-5 kişi çıksa bu iş yürür diye umutlanıyorum.
bakıp göreceğiz...

Çarşamba, Mart 09, 2011

Ankara Yazılım Atölyesinde Son durumlar

Epeydir elimiz değipde bir şeyler yazamadık. Aslında yazmak pek çok konu oldu. Ama bu yazı fikirleri tıpkı kuşlar gibi oluyor. Kelimelere döküp kafeslemezseniz uçup gidiyor.

 Her ne ise Kronolojik olarak başlayalım. Ankara Yazılım Atölyesi olarak uzun bir aradan sonra OpenCv ağırlıklı bir buluşma . Öncelikle  buradan katılanlardan ve katılmaya gelmiş fakat kapı duvar bulamayan  kişiler varsa buradan özür diliyorum. Etkinliğin yerini ben ayarlamıştım.  Fakat yetkili şahsın rahatsızlığı ve telefonlada ulaşamamam sebebiyle, ortada kalma durumumuz oldu. Neyseki sayımız azdıda, bir şekilde  başımızın çaresine baktık.

Önce Volkan kardeş  epey emekle hazırladığı, OpenCv sunumunu yaptı;
OpenCv Nedir ? OpenCv  ile neler yapılabilir ,Pratik (Ticari ) Uygulamaları, Örnek videolara eşliğinde bir güzel anlatıldı.

Ramazan Kardeş ise OpenCv + YSA + SVM 'li bir karekter tanıma çalışmasını tanıttı.

Sonuç olarak güzel bir toplantı oldu. Hüseyin toplantının Flash!  ismi oldu. Epey sorular sordu. Sorularından da anlayabildiğimiz  kadarıyla ilginç Web tabanılı OpenCv, projeleri ( yırttık abicim ) var. İnşallah vazgeçmezde bizde görürüz.

Bu arada aradan epey geçtiği halde. Volkan bey OpenCv diplomamızı yollamadı, Bekliyoruz, o kadarda dinledik kardeşim.

Ankara Yazılım Atölyesi Şubat ayı içinde planlama yapıldı fakat malesef  uygun bir mekan bulunamadı. Tez zamanda yer sorununu çözülmezse, faliyetler tarihe karışacak. Zaten Ahmet kardeşde "Yaylalar Yaylar" türküsünü çalışmaya başladı, Askerede giderse halimiz harap. Gençler el atında bu faliyet kaybolup gitmesin. Hiç bir şey öğrenmemiş olsakda tanışmamıza vesile oluyor malum Bir birini bilmemek insaf değil....

Cumartesi, Şubat 05, 2011

Yapay Zeka Tıbbın Hizmetinde 5 ( Fetal Cardiotocograms )

Bir  Yapay Zeka Tıbbın hizmetinde yazısıyla yine karşınızdayız. İşin açıkçası içindeki tabirler tıbbi terimler olduğundan tercüme etmeğe kalkışmadım. Zaten bizim için sadece Yapay Sinir Ağları ile sınıflandırma işlemiydi


2126 fetal cardiotocograms (CTGs) were automatically processed and the respective diagnostic features measured. The CTGs were also classified by three expert obstetricians and a consensus classification label assigned to each of them. Classification was both with respect to a morphologic pattern (A, B, C. ...) and to a fetal state (N, S, P). Therefore the dataset can be used either for 10-class or 3-class experiments.

Attribute Information:

LB - FHR baseline (beats per minute)
AC - # of accelerations per second
FM - # of fetal movements per second
UC - # of uterine contractions per second
DL - # of light decelerations per second
DS - # of severe decelerations per second
DP - # of prolongued decelerations per second
ASTV - percentage of time with abnormal short term variability
MSTV - mean value of short term variability
ALTV - percentage of time with abnormal long term variability
MLTV - mean value of long term variability
Width - width of FHR histogram
Min - minimum of FHR histogram
Max - Maximum of FHR histogram
Nmax - # of histogram peaks
Nzeros - # of histogram zeros
Mode - histogram mode
Mean - histogram mean
Median - histogram median
Variance - histogram variance
Tendency - histogram tendency
CLASS - FHR pattern class code (1 to 10)
NSP - fetal state class code (N=normal; S=suspect; P=pathologic)
 Orjinal verinin 2 çeşit çıktısı var. İlkinde 10 çeşit FHR tipinden hangisi olduğu, ikincisinde ise üç çeşit Fetal State için (N=normal; S=suspect; P=pathologic) bir sınıflandırma var. Biz Örneğimiz için ikincisini kullandık.
Bütün YSA işlemleri FannTool ile yapıldı. Bir Önceki örneğimizdeki gibi program yazmadık sonuçalrı Excell Dosyasındaki "Full Sonuç-Eğitim" ve "Full Sonuç-Test" sayfalarında görebilirsiniz

Eğitim Verileri için Başarı Oranı :  % 98,72  (  1488 Örnekden  1469 Doğru )
Test Verileri için  Başarı Oranı   :  % 94.2  ( 638 Örnekden 601 Doğru  )
Dosyalar İndirmek İçin :  CTG.zip
Not :  "Yapay Zeka Tıbbın Hizmetinde" serisinin önceki yazıları 1 2 3 4

Pazar, Ocak 16, 2011

Yazılım Atölyesi Yeniden

Uzun bir aradan sonra nihayet yeniden başlıyor.
23 Ocak Pazar Günü saat 10-12 arasında  GaziSEM de olacak.  Konusu OpenCv olacak. detaylar için yazılım atölyesinin sitesine bakınız.

Konuyla ilgilenen arkadaşları bekliyoruz...

Cumartesi, Ocak 01, 2011

2010 Yılı Muhasebesi


Koca bir yılı daha geride bıraktık ziyaretçi grafiğimize bakarsanız Geçen seneye nazaran bir parça artış varmış gibi görünüyor. Fakat yayınladığımız yazı sayısına bakarsak epey bir düşüş var. nerdeyse yarıya düşmüş,
bu gidiş pekde iyi değil ama hayırlısı artık.

Geçen senin en büyük faaliyetlerinden bir muhakakki Yazılım Atölyesi Çalışmalarıdır. Sanalda tanışıklığımız olan arkadaşlarla gerçek hayattada tanışma ve görüşme imkanına ulaşmış olduk.
Hatta bir konuşmada biz hazırladık. Malesef sonradan nedense arkası kesildi
  1. Ankara Yazılımcılar Workshop'u 1  
  2. Yazılım Atölyesi 2 ( Handwritten Digit Recognation )
  3. Yazılım Atölyesi Ankara'da Mart ayı etkinliği
  4. Yazılım Atölyesi Ankara'da Nisan ayı etkinliği
Epeydir bu faaliyeti tekrar başlatmak için gereken ikna çalışmalarını ( Volkan ve Ramazanın kulakları çınlasın ) yapıyoruz, İnşallah tez zamanda tekrar bir başlangıç yaparız....

Başaka neler yaptık diye bakacak olursak

  • Plaka Okuma yazımızın ikincisini yayınladık hemde C# örneğiyle, Oldukçada ilgi gördüğünüde eklemeden geçmeyelim
  • FannTool'un yeni verisyonunu yayınladık 1 2
  • OpenCvSharp örnekleri 1 2 3 son olarakda Kurulumu ve Kullanımı üzerine bir yazı
  • C# da Bulanık Mantıık Örneği olan yazımız
  • C# da YSA örneği olan yazımız aynı Zamanda Yapay Zeka tıbbın Hizmetinde serisininde dördüncüsü,  Tıp camiasından  gereken ilgiyi bekliyoruz.
  • Zeki Tahmin Sitemi üzerine yazılarımız 1 2 3 4 
  • Yarım Kalan Projeler üzerine, yarım kalmış bir yazı dizisi 1 2 2,75
Özetle Koca yılı böyle tüketmişiz. Bu sene neler yapabileceğiz kimbilir ? Görüş ve önerilerinizi bekleriz

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.