Sony Ps3 EYE KAMERA 120 fps Nasıl Alırım.

Başlatan Rorschac, 11 Aralık 2016 - 15:20:26

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Rorschac

Arkadaşlar Merhaba;

Sony Ps3 EYE hem fiyatı hem performansı göz önüne alındığında bu alanda oldukça popüler bir kamera. Bende bitirme projemde bu kamerayı kullanmak istiyorum. Windows üzerinde 120 fps nin üzerinde bir performans almıştım. Ancak Ubuntu ile çalışmak istiyorum.

-Ubuntuda kamera ov534 adlı driver üzerinden çalışıyor ve ben de çalıştırdım.
-Test ederken V4L2 adlı yazılımı kullanıyorum.

Kamera 320x240 çözünürlüğe konfigüre edildiğinde 187 fps ye kadar imkan tanıyor. Bu ayarlamaları V4L2 yazılımı üzerinden yapabiliyorsunuz ve kamera programa eklendiğinde bu ayarlar otomatik olarak görünür hale geliyor. Ancak kofigürasyonları değiştirdiğimde beklenen sonuçları göremiyorum. Örneğin 320x240 çözünürlüğe ayarlayabiliyorum, 60'ın altındaki desteklenen tüm fps değerlerine ayarlayabiliyorum, fakat 60fps üzerine çıkamıyorum.
Bu problemin neden kaynakladğıyla ilgili fikri, bilgisi olan birileri yardımcı olabilir mi?

Ayrıca  driver olduğunu sandığım şöyle bir şey buldum. Bu çözüm olabilir mi? Nasıl uygularım?

http://lkml.iu.edu/hypermail/linux/kernel/1412.3/01236.html

plazma

Çözünürlük arttıkça fps düşecektir ama burada kamera kadar grafik işlemcininde görevi var desteklediği çözünürlük ve fpsler verilmiş burada [1]. Kullandığınız bilgisayar donanımı nasıl işlemci,ekran kartı, ram vs ve ubuntu sanal makinadamı kullanıyorsunuz yoksa birincil yada ikincil işletim sistemi olarak mı? Opencv uygulaması mı olacak bu?

Soru cevap kısmı var şurada [2] orada da wikisindeki [3] durum anlatılmış bazı özel uygulamalar ile yüksek fps alındığı ile ilgili. [4] bağlantıda çekirdek yaması ile ilgili bilgi var ama son çekirdeklerde elle bir düzenleme mi gerekiyor bunu araştırmalısınız

1. https://codelaboratories.com/forums/viewthread/77/
2. http://threespeech.com/blog/2007/04/playstation-eye-qa/
3. https://en.m.wikipedia.org/wiki/PlayStation_Eye
4. https://www.phoronix.com/scan.php?page=news_item&px=MTg3NTM
İncelenmesi için
5. http://htonoyan.blogspot.com.tr/2015/05/using-ps3-eye-toy-with-opencv.html
6: http://oftw.wikidot.com/install-ps3-eye-camera-in-ubuntu
7. https://github.com/opentrack/opentrack/issues/15
8. https://devtalk.nvidia.com/default/topic/766276/embedded-systems/guide-playstation-eye-on-jetson-tk1/

bugra9

Alıntı YapAyrıca  driver olduğunu sandığım şöyle bir şey buldum. Bu çözüm olabilir mi? Nasıl uygularım?

http://lkml.iu.edu/hypermail/linux/kernel/1412.3/01236.html
Alıntı Yap[4] bağlantıda çekirdek yaması ile ilgili bilgi var ama son çekirdeklerde elle bir düzenleme mi gerekiyor bunu araştırmalısınız

Zaten bu belirtilen yamalar çekirdeğe uygulanmış durumda yani bir şey yapmak gerekmiyor. Aşağıdaki bağlantıda bulunan kodlardan kontrol edebilirsiniz.
https://github.com/torvalds/linux/blob/master/drivers/media/usb/gspca/ov534.c

Rorschac

[mention=612669]@plazma[/mention] Evet opencv ile "ball and plate" denen bir kontrol uygulaması yapmak istiyorum. Bilgisayarım da UEFI modda 2 işletim sistemi (Ubuntu + window10) kurulu. Birincil olup olmadığını eğer GRUB taki sıralamadan anlıyorsak Ubuntu 1. sırada. * tabi ki uzman sizsiniz ama donanımla ilgili olduğunu düşünmüyorum, çünkü aynı donanımla windows10'da problemsiz çalışıyor ve ayrıca problemin kameranın configürasyonu ile ilgili olduğunu düşündüren durumlardan biri de şu: Kameraya 60fps üstünde bir ayarlama yaptığımda adeta 60 fps'ye ayarlanmış gibi tam 60fps ye oturuyor. Donanım yetersizliği ile ilgili olsaydı zannediyorum bilgisayarın o andaki iş yüküne göre fps'de 60-120 arası dalgalanmalar olurdu. Tabi bu benim yorumum.

[mention=612677]@bugra9[/mention] Söylediğinizi destekleyen birde şöyle bir durum var. Sonuçta driver olmasa V4L2 programı kameranın varlığından bile bir haber olurdu. Programa kamerayı eklediğimde driverdan aldığı bilgilerle anında konfigürasyon seçenekleri değişiyor ve tamda kameranın forumlarda bahsedilenlere uygun çözünürlük(320x240, 640x480) ve fps(30, 37, 50, 60, 75, 100, 125, 137, 150) seçenekleri ortaya çıkıyor. Bu da siz söyleyince aklıma geldi. Umarım yanlış yorumlamıyorumdur. Programın ekran görüntüsünü ekleyecektim görmeniz için ama nedense program açıkken PrintScreen çalışmadı. (kapatınca çalışıyor)

Araştırırken şöyle birşeyle karşılaştım (1), burada q4l2 programında 60fps nin üstünü göremediğinden bahsetmiş. Burada kodlara benzer bir şeyler var ama ne yapmam gerektiğini tam anlayamadım. Bahsettiği bölümün de resmini ekliyorum aşağıya.

(1) https://lkml.org/lkml/2015/1/15/170


plazma

Benim demek istediğim yüksek fpsde oluşan bottleneck ti :) şuna bir göz gezdirin belki opencv tarafında buna benzer bir özelleştirme vardır.
http://www.pyimagesearch.com/2015/12/21/increasing-webcam-fps-with-python-and-opencv/

bugra9

Alıntı YapAraştırırken şöyle birşeyle karşılaştım (1), burada q4l2 programında 60fps nin üstünü göremediğinden bahsetmiş. Burada kodlara benzer bir şeyler var ama ne yapmam gerektiğini tam anlayamadım. Bahsettiği bölümün de resmini ekliyorum aşağıya.
Dikkat ederseniz 60fps olayının geçtiği ileti kodların gönderildiği iletiden sonra yazılmış. Daha önce söylediğim gibi o kodlar çekirdekte zaten uygulanmış olarak bulunuyor. Ayrıca 60 fps olayını iyi yakalamışsınız, orada öyle demiş ama nedense google ile aratınca en ufak bir sonuç ya da şikayet bulamıyorum. Sanki arada bambaşka bir durum var gibi duruyor, anlam veremedim.

Rorschac

#6
[mention=612824]@bugra9[/mention] Bende hiç bir anlam veremedim. Projeyide çok yavaşlattı zaten. Bu sebeple şimdilik çözüm aramaktan vazgeçip 60fps ile yetinmeye karar verdim. İlerleyen zamanda çözümü bulursam buraya da ekleyeceğim. Ancak önemli bir problemim daha var (bunun için yeni konu açmam gerekir mi bilmiyorum). Zannediyorum siz bu driver meseleleri ile ilgili tecrübelisiniz. Terminalden yada herhangi bir program vasıtasıyla kamera konfigürasyonu kalıcı ayarlamam mümkün mü? Yani mesela 320x240 çözünürlükte 60fps yi default olarak ayarlamak gibi. Kamera nasılsa istenirse düşük çözünürlük verebiliyor. Bu sebeple direk 640x480 alıp OpenCV de işlemci yüküne dönüştürüp gecikmeyi de arttırmak istemiyorum. Eğer kullandığım bu programlar bu ayarlamaları geçici olarak yapabiliyorsa sanıyorum manuel olarakta yapılıyordur. Driverdan nerelere bakmam, hangi  kodları nereye yazmam gerektiğiyle ilgili bilgi verebilir misiniz? Bu arada yardımlarınız için çok teşekkür ediyorum. Sizi çok yoruyorum belki ama, acemiyim ubuntu konusunda ve gerçekten öğrenmek için çok efor sarfediyorum, sizin yardımlarınızla anlamam epey hızlanıyor.

bugra9

Dosyalar burada. İlgili yerleri değiştirip, derleyip oluşan dosyayı bilgisayarınıza kopyalamanız gerekiyor.
https://github.com/torvalds/linux/blob/master/drivers/media/usb/gspca/ov534.c
Örneğin öntanımlı olarak 30fps ile başlaması yerine 60fps ile başlaması için sanırım dosyada "#define DEFAULT_FRAME_RATE 30" yazan yeri "#define DEFAULT_FRAME_RATE 60" olarak değiştirmelisiniz.

Değişiklik sonrası yapmanız gerekenleri anlatan birkaç bağlantı paylaşıyorum.
http://bear24rw.blogspot.com.tr/2009/11/ps3-eye-driver-patch.html
http://therandomlab.blogspot.com.tr/2011/12/ps3-eye-driver-framerate-patch.html
http://wiki.tekkotsu.org/index.php/Sony_PlayStation_Eye_driver_install_instructions

Rorschac

#8
[mention=613080]@bugra9[/mention]

(1)-http://bear24rw.blogspot.com.tr/2009/11/ps3-eye-driver-patch.html

Burada (1)(sizin gönderdiğiniz link, üçü ile de aynı durumları yaşıyorum.) bahsedildiği gibi drivers/media/video/gspca/ov534.c dizinini bulamıyorum. drivers/media dan sonrası bende mevcut değil. Ayrıca bilgisayarımda src/ dosyası içinde dört tane farklı kernel var. Bu durumu en ileri tarihli olan için söylüyor olsam da diğerlerini de kontrol ettim, yine doğrultuda /usr/src/linux-headers-4.4.0-53-generic/drivers/media dan ileri gidemiyorum, yani /video ve /ov534.c dosyasını bulamıyorum. Ancak ov534 diye uzantı belirtmeden arattığımda /usr/src/linux-headers-4.4.0-53-generic/include/config/usb/gspca/ov534.h dosyasını buluyorum. Dikkat ederseniz burada ov534.c yerine ov534.h görünüyor. Hem tamamen farklı bir dosya dizininde hem de farklı bir uzantı ile bulunuyor. Bu sebeple gönderdiğiniz linklerde ki Kernel derleme ve driver patch işlemini yapamıyorum. Ayrıca daha önce bahsettiğim sorunlar da bundan kaynaklanıyor olabilir mi diye düşündürüyor. Tabi bunu blogun yayınlanma tarihi olan 2009 yılından buyana kernelde yapısal değişiklikler olup olmadığını bilmeden söylüyorum, belki de bendeki şimdiki olağan durumdur, bilmiyorum. Eğer öyleyse bu linklerdeki driver patch edip kernel derleme olayı benim için havada kalıyor. Siz ne dersiniz bu konuda. Nasıl bir yol izlemeliyim sizce?

bugra9

#9
Oradaki anlatımı şu şekilde daha da basitleştirip güncelleyeyim.

Kaynak kodları alma;

cp /lib/modules/$(uname -r)/kernel/drivers/media/usb/gspca/gspca_ov534.ko ~/gspca_ov534.ko.backup
sudo apt-get install linux-source
tar -xjf /usr/src/linux-source-*/linux-source-*.tar.bz2 -C ~
gedit ~/linux-source-*/drivers/media/usb/gspca/ov534.c

- İlk önce değişiklik yapacağımız dosyayı yedekledik.
- Daha sonra çekideğin kaynak kodlarını indirdik.
- Sıkıştırılmış şekilde inen kaynak kodları ev dizinine açtık.
- Kaynak kod üzerinde değişiklik yapacağımız dosyayı metin düzenleyicisi (gedit) ile açtık.

Daha sonra bu dosyada üzerinde yapmak istediğin değişiklikleri yapıp kaydedersin.

Derleme;

cp /usr/src/linux-headers-$(uname -r)/Module.symvers ~/linux-source-*
cd ~/linux-source-*
make oldconfig
make modules_prepare
make SUBDIRS=drivers/media/usb/gspca modules


Yükleme;

sudo cp ~/linux-source-*/drivers/media/usb/gspca/gspca_ov534.ko /lib/modules/$(uname -r)/kernel/drivers/media/usb/gspca
sudo depmod


Şunu tekrar belirteyim, internette bulduğunuz yamaların gerekli olanlarının hemen hemen hepsi zaten çekirdeğe uygulanmış durumda. Bunu anlatımların çok eski yıllara ait olmasından fark edebilirsiniz. Sizin yaşadığınız sorun sürücülerden ziyade başka bir şeyden kaynaklanıyor gibi geliyor. Oradaki kaynakları ön tanımlı ayarları değiştirmek istediğiniz için vermiştim. Yanlış bir değişiklikte cihazınıza zarar verebileceğinizi unutmayın.

Kaynak;
http://bear24rw.blogspot.com.tr/2009/11/ps3-eye-driver-patch.html
http://therandomlab.blogspot.com.tr/2011/12/ps3-eye-driver-framerate-patch.html
http://wiki.tekkotsu.org/index.php/Sony_PlayStation_Eye_driver_install_instructions