Sayfalar

C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Cumartesi, Mayıs 19, 2012

Yapay Sinir Ağları ile Ses Tanıma 4


Eveet Nihayet serimizin sonuna ermiş bulunuyoruz. YSA uygulaması kısmında yine söz bize kaldı...

Tuhaf tuhaf sembollerle dolu tuhaf formüller,bir o kadar acayip grafiklerden sonra elimiz de kalan nedir diye bakıyoruz.
Başlangıçta
Kaliteli bir sesin 20 ms kısmındaki örnek sayısı
yaklaşık 20 * 10^-3 * 44100 = 882.
Şeklindeki veriyi her pencere için  36 adet veriye düşürdük, İlaveten  Sözcüğün uzunluğuna söylenişinin hızına göre değişik sayıda penceremiz var.
Değişken  sayıdaki  veri; YSA ve  pekçok Yapay öğrenme metodu için uygun değil. keza minimum 200 pencereden(200x36) gibi pek de pratik olmayan veri ortaya çıkıyor.

YSA yı uygulayabilmemiz için iki şey yapmamız lazım
  • Sabit bir uzunluğa çevirmek
  • Pratikte kullanılabilir bir sayıya düşürmek

Salı, Mayıs 15, 2012

Yapay Sinir Ağları ile Ses Tanıma 3

Kaldığımız yerden devam ediyoruz sadece mel filitreleme ile iş bitmiyor
 LOG
Kulağımız sesin şiddetini logaritmik bir ölçüde algılar. Benzer şekilde elde ettiğimiz 12 adet verinin logaritmik kullanılması toplam sistem başarımını arttırıyor.  Log işlemi için doğal logaritma iyi sonuç veriyor. Tekrar yeri gelmişken, Bkz. Euler ve ilk değinen J.Bernouilli için bkz. Bileşik faiz problemi. 
IDCT (ters ayrık cosinus dönüşümü)

DCT aslında DFT ile akraba diyebileceğimiz bir dönüşüm işlemidir ancak DFT den farklı olarak DCT de imaginer kısım yoktur yalnızda Reel bileşenler vardır. Ek bilgi; DCT imge sıkıştırmada frekans bileşenlerinin bulunması için sık kullanılır. Bknz.jpeg

İfadesi aşağıdaki gibi;

Pazartesi, Mayıs 14, 2012

Yapay Sinir Ağları ile Ses Tanıma 2


Yazımıza devam ediyoruz.


FFT – Artık frekansa geçme zamanı geldi :)

Pencerelenmiş dizimize şimdi Fourier dönüşümü uygulayarak frekanstaki ifadesini buluyoruz.


Fourier dönüşümünün matematiksel ifadesi yukarıdaki gibidir.  Doğal olarak ifadedeki integral işlemi ayrık işaretler için uygulanamıyor.
Hatırlarsanız biz mikroişlemci ortamında ayrık bir dünyadayız, bu nedenle aynı ifadenin ayrık şekli olan


İfadesi bizim için geçerli.
FFT kodunu kendimizin yazmamıza gerek yok ama araştırmakta tabii ki yarar var.
Yeri gelmişken matematikçilerden kahramanım diyebileceğim üçü, sırayla;  Euler, Gauss ve Fourier ‘in çalışmalarını ve hayatlarını araştırmanızı tavsiye ederim. Gaz açısından : )

Cuma, Mayıs 04, 2012

Yapay Sinir Ağları ile Ses Tanıma 1

,
Geçen seneki Kasım ayındaki yazımızda
 Eğer "o kadar yazını okuduk, bizim de üzerimizde borç var bizde bir ucundan destek olalım"  deyip bir şeyler karalarsanız bizde burdan yayınlamaya çalışırız.
 diye bir duyruda bulunmuştuk . Bu Duyrumuza İstanbuldan Şubat ayında bir cevap geldi. Firmalarında yaz stajına gelen öğrencilerle beraber yaptırdıkları bir projeyi anlatmak istiyorlardı.
Yazı yanınlanmak üzre geldi ama, öncelikle yazılım atölyesinde sunum yapılması tercih edildiğinden, yayınlanması bu zamana kadar tehir edildi.
Şimdi bu yazıyı yayınlamaya başlıyoruz ve sizlerden de yenilerini bekliyoruz...

Yapay Sinir Ağları ile Ses Tanıma
Ses Tanıma genel olarak  üç aşamadan oluşuyor.
1) Ön işleme
2) Öznitelik Çıkarma
3) Tanıma ( YSA, başka Yapay Zeka yada Makine Öğrenmesi (Machine Learning) ile)
Deneysel olarak yaptığımız çalışmada biz, RASTA-PLP, MFCC ve LP yöntemlerini gerçekleştirdik. Bu yazıda akustik vektörlerin MFCC (mel frequency cepstral coefficients) yöntemiyle oluşturulması anlatılıyor.

Pazar, Şubat 26, 2012

Kameralı Ölçüm Sistemi 2


Kameralı Ölçüm Sistemi from bluekid on Vimeo.


Vakti zamanında yaptığımız bir Çalışmaya ek yaptık

Bu haliyle program Kamera üzerinden,  sabit uzaklıktaki  2 boyutlu
  • Uzunluk 
  • Dikdörten Alanı
  • Daire Alanı
  • Açı
 Ölçümü yapabilmektedir.

Kalibrasyon : iki nokta seçilip gerçek uzunluğu verilir.  bu şekilde piksel cinsinden uzaklıklar gerçek değere çevrilir.
Uzunluk için Koodinatları bilinen iki noktadan ve Pisagor teroemiyle hesaplanır. Sonuç Piksel cinsinden gerçek değere çevirmek için Kalibrasyon faktörüyle çarpılır
Dikdörten ve Daire alanı içinde şekillerin ebatları hesaplanır, kalibrasyon faktörüyle çarpılıp İlgili alan formülleri kullanılır.
Açı hesabı için : Seçilen Üç noktadan  hesaplanan uzunluklar Cosininus Teoremindeki yerine konulup açı çekilir

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

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

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 :

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

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