Mouse İşlevlerini Webcam Kullanarak Gerçekleştiriyorum

Başlatan KaraBekir, 11 Temmuz 2011, 10:34:28

KaraBekir

Bir süredir üzerinde çalıştığım bilgisayar görüşü (computer vision) projem. 

Uygulama el işaretleri kullanılarak mouse işlevlerinin gerçekleştirilmesini sağlıyor. Video dan görülebileceği gibi yakınlaştırma, uzaklaştırma, ileri, geri, tıklama, çift tıklama ve kursör hareketi işlevlerini webcamden elde edilen görüntüdeki elin işareti ve konumuna bağlı olarak gerçekleştiriyor.






Not:Video yu youtube a yükledikten sonra video üzerine belli zaman aralıklarla eklediğim anlık açıklamalar yukarıda gözükmüyor, bu adresten HD ve açıklamalı halini bulabilirsiniz: http://www.youtube.com/watch?v=pryrRBRzTRs

CoşkuN

Çok güzel bir çalışma olmuş emeğinize sağlık. Çalışmayla ilgili ayrıntılı bilgi olan bir web siteniz var mı?

Elektroemre

Elinize sağlık hocam, birazcık teknik detay vermeniz mümkün mü?
Hangi dilde yazdınız, hangi geliştirme araçlarını kullandınız vs.

İyi çalışmalar.

electronious

elinize sağlık, çok güzel olmuş. tebrik ediyorum. fakat biraz bu işlere başlayacaklara, başlamış olup da bir yerlerde takılanlara yol göstermesi bilgi vermesi açısından projenizin detaylarına değinseniz çok güzel olur. hatta kendinize projelerinizle ilgili bir websitesi blog vb. şeyler yapsanız, insanlar bilgilerinizden faydalansa, sizi tanısa çok güzel olur :)

SpeedyX

Tebrikler, güzel çalışma.

Diğer arkadaşlar bilgi edinmek için Dynamic Hands Gesture Recognition diye aratabilir.

Code olarak;
http://www.codeproject.com/KB/audio-video/hands_gesture_recognition.aspx
KaraBekir de C de yazmıştır zaten.

EMG81

Mükemmel olmuş. Çok güzel gözüküyor ama olayı birde programın yapımcısından duymak isteriz.

KaraBekir

Teşekkür ederim arkadaşlar.
Bu proje 6 farklı sınıfa ait 0 dan 5 e kadar olan sayılara karşılık gelen statik el işaretlerinin sınıflandırılması amacıyla başladı.


Daha sonra kullanım alanlarınına bir örnek oluşturması amacıyla insan bilgisayar etkileşimi (Human-Computer Interaction) üzerine yönelik yukarıdaki mesajda belirttiğim çalışma ortaya çıktı. 

SpeedyX in de dediği gibi programı C dilinde geliştirim. "Hand Gesture Recognition" "Human-Computer Interaction" gibi aramalar yaparak benzer çalışmalara, makalelere erişebilirsiniz.
Çalışmalarımı http://embeddedvision.wordpress.com adresinden takip edebilirsiniz.

İyi çalışmalar.

My75

Gerçekten iyi çalışma tebrikler..iyi bir matlap kullanıcısı görüntü işleme ile bunu çok rahat yapabilir,plaka okuma yanında bu çok basit kalır ama önemli olan bunu düşünüp ve uygulamış olmanız.Elinize sağlık..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

KaraBekir

Alıntı yapılan: My75 - 12 Temmuz 2011, 11:15:48
Gerçekten iyi çalışma tebrikler..iyi bir matlap kullanıcısı görüntü işleme ile bunu çok rahat yapabilir,plaka okuma yanında bu çok basit kalır ama önemli olan bunu düşünüp ve uygulamış olmanız.Elinize sağlık..
Çok teşekkür ederim.

Plaka tanıma ve bu proje arasındaki kolaylık-zorluk derecesini neye göre belirlediniz açıklayabilirmisiniz?

İyi çalışmalar.

My75

Yaptığınız işlem matlab'da görüntü işleme olarak geçiyor,ben Matlab öğrenmeye niyetlendim ama gözümde büyüdü :D  Neyse zorluk derecesi şöyle,plaka okuma sistemindede aynı mantıkda piksel işleme mantığı ile yapılıyor tek farkı çeşit çeşit plaka olması ve kamera açısı.Bu yüzden oldukça zor ve problemli bir uygulamadır..Sizin yaptığınız eğer videodaki gibi olacaksa mantık olarak önce piksel renk tespiti yapıyorsunuz.Daha sonra x-y koordinatları arasındaki piksel renk kontrolu ile olayı bitiriyorsunuz sanırım..Kısaca beyaz renk üzerinde ortalama dikine parmak ölçümü ile yapılır.Doğru orantıda atıyorum 30x120 piksel gibi bir renk değişiminin adedinin tespiti yani..

Eleştiri olsun diye yazmıyorum gerçekten tebrik ederim güzel çalışma keşke bende yapabilsem ama maalesef vakit ayıramıyorum..Bir önerim olabilir size çok rahat yapabilirsiniz,piyasada personel sayma sistemleri var yazılım ile işi bitiriyorlar,mağaza girişinin tepesine konulan bir kamera ve giren çıkan insanların sayısını tespit ediyor.Uğraşmaya değer yani..İyi çalışmalar..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

KaraBekir

#10
Merhaba,

Görüntü işlemede bir problem birden çok yolla çözülebilir. Yukarıdaki çalışmayı 3 farklı yöntemle daha geliştirdim. Burada önemli olan probleme en uygun çözümü bulmaktır.

Bu yöntemde el görüntüsünden sınıflandırma yapmak için elin şekli lokal değil bütün olarak ve elin kameradan alınan görüntüdeki pozisyonundan, dönüşünden ve kameraya olan uzaklığınan bağımsız olacak şekilde işleniyor. Böylece el 0 ile 360 derece arasında herhangi bir değerde döndürülmüş, kameraya yakınlaştırılmış yada uzaklaştırılmış olsada görüntüde nerede olursa olsun doğru bir şekilde çalışıyor. Bununla birlikte kameranın hedefe olan görüş açısıda önemli bir etken. Hedef ile kamera arasındaki görüş açısı değişimlerinin sonuca etkisini azaltmak için kendi içerisinde otomatik olarak kendini ayarlayan bir yapı sayesinde sınıflandırıcının daha sağlıklı karar vermesi sağlanıyor.

Kullanıcının kısa kollu yada uzun kollu giymesi, parmakların ne kadar açık-yumuk olduğu, elin aynı işaretler için bile birbirinen farklı pozlar olabileceği, parmak uçlarının bulunması gibi bazı detaylarda sistemde değerlendiriliyor.

Yaptığım testler sonucunda doğruluğu tatmin edici olduğu için ve gerçek zamanlı olarak çalışabilecek bir yapıya sahip olduğu için "mouseless" kontrolü bu yöntem ile  gerçekleştirdim. Diğer geliştirdiğim üç yöntem de daha karmaşık yapıya sahip olanda vardı daha basit olanda vardı. Çalışmanın başarısı genelde karmaşıklığıyla artarken hesap yüküde artıyor. Önemli olan başarı ve hız oranın en uygun olduğu uygulamayı oluşturmak.

Yukarıda belirttiklerimden dolayı, denilebilirki bahsettiğiniz tip plaka tanıma sisteminden daha karmaşık olan el işareti tanıma sistemleride vardır daha basit olan el işareti tanıma sistemleride vardır. Fakat proje karşılaştırılması yapılacaksa, bu karşılaştırmanın anlam içermesi için aynı amaç hedeflenerek tasarlanmış projeler olması doğru olacaktır.

Bu arada öneriniz için de teşekkür ederim, uygun bir vakitte araştırma yapmayı düşünüyorum.

Selamlar, iyi çalışmalar.