FPGA İle Görüntü İşleme

Başlatan OrhanYaman, 27 Temmuz 2013, 16:45:09

OrhanYaman

Merhaba Arkadaşlar
     Arkadaşlar 1 aydan fazladır her gün fpga ile görüntü işlemeye çalışıyorum. Fpga ile ilgili temel bilgilere sahibim. Altera De0 kitim ve 5mp kameram da var. Öncelikle araştırma yaptığımda görüntü işleme ile ilgili örnek bir uygulama buldum. Bu uygulamada kameradan alınan görüntüyü doğrudan monitöre veriyordu. Bu uygulama ile uğraştığımda görüntüyü gri formata dönüştürüp monitörde gösterdim. Fakat kenar çıkarımı yapmak istediğimde beceremedim. Sorun kameradan alınan her görüntü pikseli direk monitörde görüntüleniyordu. Yani kenar çıkarımı için elimde kullanabileceğim bir matris olmalıydı. Bu uygulamanın benim için çok zor olduğunu düşündüm.
    Daha sonra sdramin kullanımını öğrenip sdram in içine bir resmin piksellerini içeren matris atıp o matris üzerinde çalışayım dedim. Fakat yine kodunu yazamadım. Verilog veya vhdl kodunun zor olduğunu görünce nios ile işlemci oluşturup oradan görüntü işleme yapayım dedim. Bu seferde SOPC Builder da işlemci tasarlarken hangi kompenetleri kullanacağımı bilmiyordum.

Benim acilen nasıl olursa olsun fpga da görüntü işleme yapmam lazım. Yardım edebilir misiniz? Çok çaresizim

Icarus

#1
Önce hiçbir dış kaynağı kullanmadan plan yapın. Sonra kodlayın. Ama FPGA'de yaptığınız şey "yazılım kodlamak" değil. Elektronik devrelerin farklı bir teknikle(yazarak) şemasını çizmektir.

Siz tavsiyem şuan sistemin bir blok diagramını çizin, gerekirse kalem kağıt ile çizin.
Daha sonra her bir işlevi daha ufak yönetilebilir parçalara ayırın.
Bu minik kısımları kodlayın + tek tek bağımsız olarak test edin.
Ve sonunda hepsini birleştirin

OrhanYaman

Yardımlarınız için çok teşekkür ederim.

kralsam

Selamlar hocam,
1 AY bence çok fazla bir süre değil. Özellikle FPGA kullanacaksan değil. Sende fark etmişsindir, hazır bir yapı yok. Sistem yapman gerekiyorsa onlardan esinlenerek kendin tasarlamalısın. Bu konuya @Icarus hocam da değinmiş zaten ama,

- önce genel yapıyı blok diyagramı olarak bir çiz.
- Sonra o blokların içlerinde ne olması gerektiğini çiz ve onun alt birimlerine de uygula. (Matematiksel ifadeye kadar gel.)
- Sonra bu en küçük yapıları diğerlerine uyumlu olacak şekilde parametrik input-output 'larla tasarlayıp similasyonlarını yap.
- Sonra bunları yukarı doğru toplayarak bitir.

zaman alacak bir iş. Eğer yapmak istiyorsan kısa sürede yapma çabasına değil sadece yapabilme çabasında ol.

İyi çalışmalar.

OrhanYaman


yxsdf

Size model olabilecek bir proje: http://www.nintendoninja.com/

Bu proje de video girişinden gelen veriye göre otomatik olarak Super Mario'nun ilk bölümünü oynuyor.
Videosu: FPGA Mario solver

Ayrıca proje açık kaynak.
www.yxsdf.com © 2014

OrhanYaman

Merhaba Arkadaşlar

Öncelikle yxsdf Hocama teşekkür ederim.

Görüntü işleme için öncelikle Sdram i öğrenmeye başladım. Çalışma mantığını iyice öğrendim.  Uygulama yapmak için verilog kodunu yazarken kafamda sorunlar oluştu. Sorun şu: SDRAM i kullanırken SDRAM controller inide kullanmalımıyız. Blok diyagramı veya kodunu oluştururken böyle bir blok kullanmak gerekiyor mu? 

Mnemonic

Merhaba
çok uzun zaman olmuş konuyu yeniden hortlatayım dedim. bende buna yakın bir şeyle uğraşıyorum ve bir yandan fpga öğreniyorum. bende sizin gibi dil olarak verilogu tercih ettim(daha kolay geldi) projede ne durumdasınız biraz bilgi verebilirmisiniz ? paylaşabileceğiniz kodlar varmı ?

alicavuslu

Merhabalar. Aşağıda verilen linkte VHDL ile imgede kenar bulma işlemine ait kodlar bulunmaktadır. Umarım işinize yarar. Kolay gelsin...

http://www.alicavuslu.gen.tr/2014/07/05/vhdl-ile-imgede-kenar-bulma/

makdeniz

PC için yazılmış bir projem mevcut usb kameradan gelen görüntüye göre çeşitli işlemler yaparak yine PC'ye usb den bağlı microcontroller'ımdan DO ve Analog çıkış alıyorum.

Bunu gömülü bir sisteme en kolay nasıl aktarabilirim.

Programlama dili Visual C# ve proje için opencv kullanıldı.

teşekkürler
Karanlık olmadan aydınlık, Ölüm olmadan yaşam mantıksız.

Mnemonic

#10
alicavuslu merhaba;
anladığım kadarı ile bu kodlar içerisinde ram yönetimi ve kamera hw ayarları ile ilgili bir kısım yok. sadece görüntü işleme kısmı var doğrumu ?

alicavuslu

#11
Merhaba..

Kameradan gelen kısmını dosyadan okuyarak simüle edildir. RAM modülü kontrolü kodda mevcutur. Kodlar doğrudan herhangi bir modülden gelen datayı direk RAM'a yazmakta ve imge işleme işlemlerini yapmaktadır. Eğer USB kullanıyorsan data transferinde UART modülü ile bunu rahatlıkla halledebilirsin. Yapman gereken tek şey PC'den uygun şekilde datayı FPGA tarafında okumak ve okuduğun datayı RAM'a yazmak.