Fpga Verilog Görüntü İşleme

Başlatan integer, 24 Aralık 2012, 10:49:53

integer

Merhabalar
  fpga ile görüntü alıp işleme ile alakalı bitirme projesi aldım.Verilog kullanıyorum elimde altera cyclon II pluto 3 kiti ve ona bağlı Cmos sensör var ilk aşamada sensörden işlemciye gelen verileri direk rs232 ile porta basıyorum Realterm programı ile ayrıca bu program bu gelen veriyi txt olarak da basıyor ben bu txt i matlab de açıyorum ama görüntü yerine karartı geliyor .cmos 648x488 boyutunda alıyor görüntüyü benim sorum rs232 ile ilgili atladığım bir nokta mı var neden görüntü gelmiyor.Yada hız konusunda bir şey mi atlıyorum ?

SpeedyX

#1
CMOS sensörün önünde optik var mı?
Bayer pattern mi kullanıyor? Matlabda nasıl işliyorsun?

integer

Evet sensörün önünde lens var eğer onu kast ediyorsanız.Kullandığım sensör KODAK KAC-9647
CMOS IMAGE SENSOR
648 (H) X 488 (V)
VGA 68 fps
Color CIS

işleme kısmına daha geçmedik ilk aşama görüntüyü almak sonra evet matlabde işleyip sonuçlara göre fpga ye uyarlamak istiyoruz

SpeedyX

Anladım. Sensörden gelen verileri alıp matlabda resme çeviriyorum karartı görüyorum diyorsun. Resim verisi bayer pattern olarak geliyor, onu görüntülemek için özel bir algoritma kullanman gerekiyor.
Bunun dışında, gelen veriyi pclk veya sync pinleri ile senkronize bir şekilde aldığından da emin ol.
Ayrıca bayer pattern e göre dizip gerçek pixel değerlerini bulunca bir de normalizasyon yapman gerekecek.

integer

#4
Şöle bir çalışma sistemi kurdum.işlemci 25 mhz  clk sinyali var ben cmos a bunun yarısını yolluyorum mclk olarak yani her iki clock darbesinde bir resim al diye hsync ve vsybc ile de tarama ile durumlarına göre yani 1 0 olma durumlarına göre resmi alayım diyorum her seferinde 8 bit yolluyor zaten ben bu 8 biti fpga ya alıp seriden hex halinde txt te ye yazıyorum.Sonra bu hex txt dosyasını okuyup resim haline getiriyorum ama resim elde edemiyorum.Acaba rs 232 çok mu geç kalır sensöre göre verileri alıp ram e yazıp sonra beklete beklete mi almam gerekiyor seriden.

SpeedyX

Aynen öyle, önce ram de tüm pixelleri biriktir, sonra tek tek rs232 den gönder.

Ersin

RS232 e datayi gönderirken 25MHz ile göndermiyosun değil mi.  :)

integer

Valla her clck darbesinde gönderiyorum.Ama sonra ufak bir deneme yaptım her clck darbesinde artan ve sayısı porta basan bir program ile deneme yaptım 58 er atlayarak bastı 2600 lük  bir counter yardımıyla bekletip basınca porta normal saymaya başladı .Sensöre yetişemiyor galiba seri port yada yetişmesi mümkünmü sizce 115200 bound  rate kullandım .Başlangıçta öle yolladım sonra yavaşlatıp yolladım yine olmadı.bu seferde pixel atlıyor galiba anlamadım .

speak48

görüntüyü vga portunda elde etmek ilk aşamada daha kolay olacaktır.

integer

Hocam kitin vga portu yok malesef dışarı tek çıkışı var o da rs 232 sizce böyle direk veriyi alamamızın sebebi rs232 portunun yavaş kalması mı :( tıkandı kaldı böyle görüntüyü görmeden işlemeye de başlayamıyoruz

berat23

elde ettiğin göründü verilerini koyarsan nerde hata var anlayabiliriz.bayer patternini normal görüntüye çevirirken kabaca interpolasyon yapan bir fltre kullanacaksın.

Ersin

#11
Realtime işlem olmayacaksa rs232 ye hangi hızda göndereceksen memory yi de o hızla oku, önce memory nin adres sayacını resetlemeyi unutma.

Şunu anlamadım fpga ile processing yapacaksın ama seriden gönderiyosun, bu sadece monitoring amaçlı değil mi.

Anladığım kadarı ile konu ile ilgili fazla bilgin yok ama derinlere girmişin birden. :)

Ayrıca o bordu nerden buldun oyle , neden bunu almadın mesela.
http://www.cizgi-tagem.org/e-market/product.aspx?id=23

integer


speak48

görüntüyü 8bit aldığını düşünürsek
640*480*3*8=7372800 bit veriyi bir karede yani 1/25-30 sn de göderebilmen gerekiyor.
senin rs232        115200 bit per second   
realtimeda düşünürsek  115200/30 bir framede ancak  7372800 bitten 3840 bitini gönderiyorsun kimbilir neler gönderdi.
yani görüntüyü hafızaya almazsan bir karenin 1 bitlerini bile gönderemiyorsun.

integer

Evet böyle almamın sebebi resmi görebilmek zaten dediğiniz gibi işleme yapıcaz ama ne geldiğini görmek istiyoruz.Dediğiniz gibi konuya çok hakim değiliz öğrenmeye çalışıyoruz.