Cumartesi, Eylül 26, 2009

Plaka Okuma

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




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

Salı, Eylül 22, 2009

Nasrettin Hocadan Bulanık Mantık dersi

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

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

ve hoca anlatmaya devam etmiş.

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

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

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


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


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

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

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

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

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

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

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

Pazartesi, Eylül 21, 2009

Kriz üzerin bir bayram sohbeti

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

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

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

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

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

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

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

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

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

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

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

Hz. Ebû Bekir buyurdu ki:

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

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

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

Hz. Osman şu cevabı verdi:

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

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

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


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

Cuma, Eylül 11, 2009

OpenCv 2.0 Beta yayınlandı

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


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

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

- CXCORE, CV, CVAUX:

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

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

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

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

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

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

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

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

+ Self-similarity features - contributed by Rainer Leinhart

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pazar, Eylül 06, 2009

Yapay Zeka Tıbbın Hizmetinde 3

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

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

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

Verilerin nelerden oluştuğuna bakarsak

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

detaylı bilgi için makaleye bakabilirsiniz.

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

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

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

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

Cumartesi, Eylül 05, 2009

FannTool için Kullanım Kılavuzu

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

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

Kılavuzun Hata eksikliklerini bildirirseniz seviniriz.

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