FPGA ile görüntü işleme

Başlatan yamak, 24 Aralık 2011, 02:18:55

yamak

Bölümde bir kaç grup FPGA ile görüntü işleme ile ilgili bitirme ödevi almış. Hangi aşamadasınız diye sorduğumda bana şu ana sadece matlab ile görüntü işlemeye çalışıyoz daha sonra VHDL öğrenmeye geçececez diyolar.Matlab ile yapabildik mi VHDL ile yapması kolay diye duymuşlar. Matlab kodlarını direkt vhdl e dönüştürüp öyle mi yapacaksınız dediğimde hayır dedile. Benim bilmediğim bişey mi var? Matlab ile VHDL in başka ne alakası var.

ErsinErce

matlab de tasarladığınız sistemin vhdl kodunu ürettirebileceğiniz araçlar mevcut, "matlab fpga" diye aratınca birçok uygulama ve not çıkıyor karşınıza

yamak

Böyle bişey olduğunu biliyorum ama bu şekilde bişey yapmayacaklarmış

ErsinErce

o şundan kaynaklanabilir;
bende aynı yöntemi kullanacağım sistemi ilk başta matlab üzerinde çalıştırıp düzgün sonuçlar elde ettikten sonra uygulamasına geçireceklerdir,
diğer türlü "derle, yükle, çalıştır, çalışmadı, neden, virgül eksik oldu" gibi hataların önüne geçip hız kazanmak için

yamak

Evet bundan kaynaklanıyo olabilir.

yamak

Konu açılmışken sorayım.Xilinxte image processing e ait logic core ların performansı nasıl bu konu hakkında bi bilginiz var mı?

ErsinErce

o kadar detaylı bilgim yok malesef, tez için kullanırım diye aldığım DE0-Nano Board'um yatıyor hâlâ,
ön araştırma sırasında edindiğim çok az bir bilgiye sahibim sadece

fatihinanc

Selam,

Simulink içerisinde HDL Coder diye bir araç var. Bununla tasarımlarınızı HDL'e çevirip VHDL ya da Verilog kodu üretebiliyorsunuz.
Hatta Xilinx'in bazı boardları doğrudan Matlab destekli. Matlab'den başka araç kullanmadan(ISE) FPGA içerisine programı atabiliyorsunuz ve çıkışı Matlab'de grafiksel olarak gözlemleyebiliyorsunuz.

Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

pic365

Matlab kodunu HDL'e çevrilebilir şekilde yazmak kolay olmasa gerek. Daha önce böyle bir araç kullanmadım ama HDL'i sıfırdan yazmaktan bile daha zor olabilir gibi geliyor bana.

kralsam

Alıntı yapılan: yamak - 24 Aralık 2011, 02:18:55
Bölümde bir kaç grup FPGA ile görüntü işleme ile ilgili bitirme ödevi almış. Hangi aşamadasınız diye sorduğumda bana şu ana sadece matlab ile görüntü işlemeye çalışıyoz daha sonra VHDL öğrenmeye geçececez diyolar.Matlab ile yapabildik mi VHDL ile yapması kolay diye duymuşlar. Matlab kodlarını direkt vhdl e dönüştürüp öyle mi yapacaksınız dediğimde hayır dedile. Benim bilmediğim bişey mi var? Matlab ile VHDL in başka ne alakası var.
Arkadaşım eğer yapacağın görüntü işleme algoritmalarının matematiksel boyutunu iyi biliyor ve bunu dijital olarak nasıl gerçekleştirebileceğini biliyorsan kendin tasarım yapabilirsin. (HDL olarak..) Genelde ticari olanlar bu şekilde geliştiriliyor.

MATLAB'a gelince fatihinanc arkadaşımında yazdığı gibi özellikle Xilinx ile çalışıyorsan direk MATLAB bağlantılı çalışabiliyorsun.(Ben uygulamadım ama MATLAB seminer kayıtlarında uygulamaları vardı sanırım.) Yani hazrır toollar ile sistemi blok diyagramı gibi hazırlayıp test te edebiliyorsunuz.

Altera'da da kullanılıyor diye gördüm ama pek uygulama görmedim. (Alteranın kendi sitesi yada forumunda görmüştüm.)

electronious

Hazır bu başlık açılmışken bu başlık altında bu konuyla ilgili birkaç sorum olacak. Henüz FPGA de tecrübesiz biri olarak tecrübeli arkadaşlardan fikir almak, düşüncelerimi teyit ettirmek istiyorum.

Örneğin 300x300 bir RGB görüntüm var. Bir pikselde 3 kanal bilgisi olacak ve bu bilgi de 0-255 arası bir bilgi olacak. Yani 2^8=256 bu da 8 bit  demek. Her piksel için 24 bit, 300x300x24=2 160 000 bit giriş yapıcam. Bunları işlemek için toplam-fark-çarpım işlemleri kullancam. Yani bunun için basit FPGA lerden ziyada daha kapasiteli FPGA lere ihtiyacım olacak. Bu da fazladan maliyet getirecek. O zaman bu işi işlemci yerine FPGA de yapmam için çok kritik bir iş olması gerekiyor anladığım kadarıyla.

Yanlış şeyler mi düşünüyorum?

yamak

Bi iş için FPGA kullanmanız tabiki de sizin yararınıza olacaktır.Xilinx in Vİrtex serisi FPGA larını kullanabilirsiniz.

fatihinanc

Alıntı yapılan: kralsam - 30 Aralık 2011, 14:10:19
Altera'da da kullanılıyor diye gördüm ama pek uygulama görmedim. (Alteranın kendi sitesi yada forumunda görmüştüm.)

Eğer Matlab kurmadan önce Quartus yüklü ise Matlab kurulurken DSP Builder'ı yüklemeye dahil ederseniz DSP Builder Blockset ve Advanced DSP Builder Blockset adında iki adet kütüphane ekliyor Simulink içerisine.
Bu araçların içerisinde örnek kodlar, Altera'ya özel filtre ve FFT blokları, Terasic ve Altera Boardlarının tamamı bulunabiliyor. Simulink'te tasarım yaparken doğrudan kendi FPGA kitinizi seçip blok olarak ekleyebiliyorsunuz.

Güzel bir özellik fakat Xilinx için sunulan araçlar kadar başarılı değil maalesef.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

berat23

eğer özel araçlar kullanmayacaklarsa önce matlabta tasarlayıp ordan vhdl'e geçmek öyle kolay değil.gerçi bu matlab yazılımına da bağlı,hazır fonksiyonlar kullanılmazsa o kadar zor olmayabilir fakat vhdl ile normal sequential kod yazmak arasında epey fark var.


pic365

Alıntı yapılan: electronious - 30 Aralık 2011, 15:05:17
Hazır bu başlık açılmışken bu başlık altında bu konuyla ilgili birkaç sorum olacak. Henüz FPGA de tecrübesiz biri olarak tecrübeli arkadaşlardan fikir almak, düşüncelerimi teyit ettirmek istiyorum.

Örneğin 300x300 bir RGB görüntüm var. Bir pikselde 3 kanal bilgisi olacak ve bu bilgi de 0-255 arası bir bilgi olacak. Yani 2^8=256 bu da 8 bit  demek. Her piksel için 24 bit, 300x300x24=2 160 000 bit giriş yapıcam. Bunları işlemek için toplam-fark-çarpım işlemleri kullancam. Yani bunun için basit FPGA lerden ziyada daha kapasiteli FPGA lere ihtiyacım olacak. Bu da fazladan maliyet getirecek. O zaman bu işi işlemci yerine FPGA de yapmam için çok kritik bir iş olması gerekiyor anladığım kadarıyla.

Yanlış şeyler mi düşünüyorum?

FPGA'in içerisinde genelde bir video karesinin tamamı tutulmaz. Örneğin 3x3'lük bir filtreniz varsa görüntünün 2 veya 3 satırını tutarsınız sadece. Devrenizin alanı çözünürlükten çok filtrelerinizin ne kadar karmaşık olduğuna bağlı. Spartan-6'nın en küçük modelinde (XC6SLX4) 2400 LUT var. Bu kaynakla FULL HD görüntüyü bile arka arkaya birkaç filtreden geçirebilirsiniz.