GRNT LEME ALGORTMALARININ FPGA DONANIMI ZERNDE GEREKLENMES Ali

  • Slides: 47
Download presentation
GÖRÜNTÜ İŞLEME ALGORİTMALARININ FPGA DONANIMI ÜZERİNDE GERÇEKLENMESİ Ali Recai ÇELİK

GÖRÜNTÜ İŞLEME ALGORİTMALARININ FPGA DONANIMI ÜZERİNDE GERÇEKLENMESİ Ali Recai ÇELİK

GİRİŞ: 1 -GÖRÜNTÜ İŞLEME 2 -KULLANILAN DONANIM 3 -YAZILIM 4 -UYGULAMA 5 -SONUÇ

GİRİŞ: 1 -GÖRÜNTÜ İŞLEME 2 -KULLANILAN DONANIM 3 -YAZILIM 4 -UYGULAMA 5 -SONUÇ

GÖRÜNTÜ İŞLEME • Görüntü işleme; görüntüleri değiştirmek, yabancılaştırmak veya iyileştirmek için kullanılır. • Üzerinde

GÖRÜNTÜ İŞLEME • Görüntü işleme; görüntüleri değiştirmek, yabancılaştırmak veya iyileştirmek için kullanılır. • Üzerinde çeşitli işlemler gerçekleştirilecek olan görüntü, kamera aracılığı ile alınan bir video veya fotoğraf görüntüsü olabileceği gibi; kullanıcılar tarafından kırmızı, yeşil, mavi ve bu renklerin birleşimleriyle elde edilen bir görüntü de olabilir.

KULLANIM ALANLARI; • Tıp ve Biyoloji • Uzay Bilimleri • Savunma Sanayi • Fraktal

KULLANIM ALANLARI; • Tıp ve Biyoloji • Uzay Bilimleri • Savunma Sanayi • Fraktal Şekiller • Coğrafi Bilimler • Animasyon Filmleri • Güvenlik Sistemleri • Akıllı Robot Sistemleri • Bilgisayar Grafikleri ve Oyunları

TEKNİKLERİ; • Kenar Bulma • Filtreleme • Yapısal Düzenleme • Bölümlendirme • Eşikleme •

TEKNİKLERİ; • Kenar Bulma • Filtreleme • Yapısal Düzenleme • Bölümlendirme • Eşikleme • Görüntü Değiştirme

FPGA DONANIMI • Programlanabilir Mantık Devreleri, mantık kapılarının ve flip- flopların birbirlerine bağlanmasıyla oluşturulan

FPGA DONANIMI • Programlanabilir Mantık Devreleri, mantık kapılarının ve flip- flopların birbirlerine bağlanmasıyla oluşturulan devreler şeklinde tanımlanabilir. • Sahada Programlanabilir Kapı Dizileri (FPGA – field programmable gate arrays) de bu alanda üretilmiş olan donanımlardan biridir. • FPGA, üretimden sonra istenilen fonksiyona göre, donanım yapısı kullanıcı tarafından değiştirilebilen entegre devre olarak tanımlanır.

FPGA ÖZELLİKLERİ • FPGA devrelerinin hızlı işlem yapabilme, içine çoğullayıcı gömülebilme, aritmetik işlemleri başarıyla

FPGA ÖZELLİKLERİ • FPGA devrelerinin hızlı işlem yapabilme, içine çoğullayıcı gömülebilme, aritmetik işlemleri başarıyla gerçekleştirebilme gibi özellikleri ve paralel işlem yapabilme yeteneği vardır. • Donanım üzerinde çok sayıda giriş-çıkış birimi mevcuttur. USB bağlantısı, RS 232 girişi, VGA çıkışı, Switch ve Key anahtarları, kırmızı ve yeşil LED’ler, SRAM ve SDRAM hafıza kartları, saat üretici vb. bu birimlerden bazılarıdır.

NEDEN FPGA? • Gömülü sistemlerde sistem mimarisi bakımından çeşitli alternatifler mevcuttur. Bunlar standart ASIC’ler,

NEDEN FPGA? • Gömülü sistemlerde sistem mimarisi bakımından çeşitli alternatifler mevcuttur. Bunlar standart ASIC’ler, DSP’ler veya FPGA’ler gibi programlanabilir çözümlerdir. • Yüksek performans, hızlı işlem yapabilme, esnek programlanabilme, zahmetsiz güncelleme, düşük bakım maliyeti, güvenirlilik, düşük geliştirme maliyeti, zamanında pazara çıkabilme ve üretim adedi arttıkça düşük maliyete geçebilme yeteneği gibi özellikler ideal mimaride olması beklenen özelliklerdir.

NEDEN FPGA? • Yüksek hız için gerekli olan yüksek veri boyutu, yüksek performans ve

NEDEN FPGA? • Yüksek hız için gerekli olan yüksek veri boyutu, yüksek performans ve esnek programlanabilme özellikleri FPGA’lerde mevcuttur. • Yüksek hızlı sinyal işleme uygulamaları genellikle sayısal sinyal işleyici (DSP) kullanılarak gerçeklenmektedir. Fakat FPGA devrelerinin aynı işlemi daha hızlı yapabilme yeteneği nedeniyle günümüzde FPGA kullanımı artmaya başlamıştır.

NEDEN FPGA? •

NEDEN FPGA? •

YAZILIM • FPGA’lerde algoritmaları olus turmak için kullanılan programlama dillerine genel olarak “donanım tanımlama

YAZILIM • FPGA’lerde algoritmaları olus turmak için kullanılan programlama dillerine genel olarak “donanım tanımlama dili” denir. Donanım tanımlama dilleri FPGA’de bulunan mantıksal blokların ve ara bag lantı anahtarlarının uygun s ekilde programlanmasında kullanılır. En sık kullanılan diller VHDL ve VERILOG programlama dilleridir.

VERILOG • Verilog tasarımında modüller vardır ve bu modüller arasında bir hiyerars i bulunur.

VERILOG • Verilog tasarımında modüller vardır ve bu modüller arasında bir hiyerars i bulunur. Modüller bir takım giris , çıkıs ve çift yönlü portlar s eklinde tanımlanır. Bir modül içinde yazmaç (register) ve kablo (wire) listesi bulunur. • Ardıs ık ifadeler bir begin/end blog una konur ve blokla beraber ardıs ık olarak yürütülür. Tüm es zamanlı ifadeler ve begin/end blokları kos ut olarak yürütülür.

QUARTUS II • Altera firmasının üretmiş olduğu Fpga platformu ile uygulama gerçekleştirmek için, Quartus

QUARTUS II • Altera firmasının üretmiş olduğu Fpga platformu ile uygulama gerçekleştirmek için, Quartus II yazılımı kullanılır. • Quartus II yazılımı tamamen entegre bir yazılım geliştirme ortamıdır. Mantık kapıları tasarımı, devre dizaynı ve simulasyonu, HDL kodunun derlenmesi gibi işlemlerin gerçekleştirilmesini sağlar.

QUARTUS II

QUARTUS II

QUARTUS II

QUARTUS II

ALTERA DE 2 FPGA • FPGA üretiminde söz sahibi olan firmalar Xilinx ve Altera

ALTERA DE 2 FPGA • FPGA üretiminde söz sahibi olan firmalar Xilinx ve Altera firmalarıdır. Bu iki firmanın ürettiği çok çeşitli FPGA platformları vardır. • Platformların farklılığını belirleyen temel etmenler; hız, mantıksal blok sayısı, girişçıkış pinlerinin sayısı gibi donanımın sahip olduğu özelliklerdir.

ALTERA DE 2 FPGA

ALTERA DE 2 FPGA

ALTERA DE 2 FPGA donanımında bulunan giriş ve çıkış birimleri şunlardır; -Dahili Fpga için

ALTERA DE 2 FPGA donanımında bulunan giriş ve çıkış birimleri şunlardır; -Dahili Fpga için USB Blaster yapılanması -Mikrofon girişi -Ses çıkışı -Video girişi -Video çıkışı -RS-232 birimi

ALTERA DE 2 FPGA -Ethernet bağlantısı -PS/2 Mouse ve klavye bağlantı noktaları -SDRAM -SRAM

ALTERA DE 2 FPGA -Ethernet bağlantısı -PS/2 Mouse ve klavye bağlantı noktaları -SDRAM -SRAM -Anahtarlar -Saatler -18 adet kırmızı, 9 adet yeşil LED’ler -27 MHz ve 50 MHz osilatörler

CYCLONE II KART

CYCLONE II KART

VGA KONTROLÜ Video Grafik Dizisi bilgisayarlardaki analog görüntü standartı ile 15 pin D-sub konektörü

VGA KONTROLÜ Video Grafik Dizisi bilgisayarlardaki analog görüntü standartı ile 15 pin D-sub konektörü veya 640 x 480 çözünürlüğün kendisini ifade eder. İlk defa 1988 yılında IBM tarafından piyasaya sürülmüştür. VGA iletiminde 5 farklı sinyal kullanılır. Bunlar; • horizontal sync: Satır eşlemesini sağlayan dijital sinyal • vertical sync: Kare eşlemesini sağlayan dijital sinyal • red(R): Kırmızı renk bilgisini taşıyan analog sinyal • green(G): Yeşil renk bilgisini taşıyan analog sinyal • blue(B): Mavi renk bilgisini taşıyan analog sinyaldir

VGA KONTROLÜ // Yatay Senkronizasyon Parametreleri parameter H_SYNC_CYC = 95; parameter H_SYNC_BACK = 65;

VGA KONTROLÜ // Yatay Senkronizasyon Parametreleri parameter H_SYNC_CYC = 95; parameter H_SYNC_BACK = 65; parameter H_SYNC_ACT = 640; // Yatay olarak 640 piksel parameter H_SYNC_FRONT = 0; parameter H_SYNC_MAX = 799; // Düşey Senkronizasyon Parametreleri parameter V_SYNC_CYC = 2; parameter V_SYNC_BACK = 33; parameter V_SYNC_ACT = 480; // Düşey olarak 480 piksel parameter V_SYNC_FRONT = 10; parameter V_SYNC_MAX = 524; //

ALGORİTMA: ELMAS-KARE ALGORİTMASI • Uçuş simülasyonlarında, bilgisayar grafik ve oyunlarının oluşturulmasında, animasyon filmlerinde ve

ALGORİTMA: ELMAS-KARE ALGORİTMASI • Uçuş simülasyonlarında, bilgisayar grafik ve oyunlarının oluşturulmasında, animasyon filmlerinde ve daha birçok alanda, doğada var olan şekillerin gerçektekine benzer görüntülerinin oluşturulmasına ihtiyaç duyulur. • Bu görüntülerin elde edilmesi için, yükseklik ve doku eşlemelerinin gerçekleştirilmesi gereklidir. Yükseklik eşlemeleri, yükseklik ile ilgili verileri içerir. Doku eşlemeleri ise; bir, iki veya üç boyutlu matris olarak düzenlenen renk değerlerini içerir.

ELMAS-KARE ALGORİTMASI.

ELMAS-KARE ALGORİTMASI.

ELMAS-KARE ALGORİTMASI

ELMAS-KARE ALGORİTMASI

ELMAS-KARE ALGORİTMASI Örneğin; başlangıçta 4 köşesine yerleştirilen yükseklik değerleri aşağıdaki gibi olan bir karenin,

ELMAS-KARE ALGORİTMASI Örneğin; başlangıçta 4 köşesine yerleştirilen yükseklik değerleri aşağıdaki gibi olan bir karenin, önce elmas şekline dönüşmesi ve daha sonra dört adet küçük kareye dönüşmesi neticesinde meydana gelen yeni değerler şekilde verilmiştir. Bu işlemin bir sonraki tekrarı için, merkezde oluşan 3. 5 birim miktarındaki yüksekliğe rastgele bir değer eklenir.

ELMAS-KARE ALGORİTMASI Birinci elmas-kare dönüşümünden sonra elde edilen 9 noktanın birbirlerine bağlanması ile Şekildeki

ELMAS-KARE ALGORİTMASI Birinci elmas-kare dönüşümünden sonra elde edilen 9 noktanın birbirlerine bağlanması ile Şekildeki gibi bir yüzey şekli elde edilebilir.

ELMAS-KARE ALGORİTMASI İkinci tekrarlamadan sonra gerçekleşen elmaskare dönüşümü ile 16 küçük kare ve 25

ELMAS-KARE ALGORİTMASI İkinci tekrarlamadan sonra gerçekleşen elmaskare dönüşümü ile 16 küçük kare ve 25 nokta oluşur. Bu noktaların birleştirilmesiyle elde edilebilecek yüzey şekli ise Şekilde görülmektedir

ELMAS-KARE ALGORİTMASI Bu işlemler tekrar edilmeye devam edilirse elde edilen şeklin yoğunluğu artmış olur.

ELMAS-KARE ALGORİTMASI Bu işlemler tekrar edilmeye devam edilirse elde edilen şeklin yoğunluğu artmış olur. Örneğin, 5. tekrarlamadan sonra Şekil’deki gibi bir yüzey elde edilebilir. Sonuç olarak yükseklik değerlerinin ataması yapılmış bir şekil elde edilmiştir.

ELMAS-KARE ALGORİTMASI Yüzey şekli oluşturulduktan sonra doku eşlemi gerçekleştirilir. Oluşturulan şeklin yeşil renk ile

ELMAS-KARE ALGORİTMASI Yüzey şekli oluşturulduktan sonra doku eşlemi gerçekleştirilir. Oluşturulan şeklin yeşil renk ile renklendirilmesi yapıldıktan sonra aşağıdaki şekillerde verilen görüntüler meydana gelir.

UYGULAMA: • Dağ, ova, göl ve vadi gibi farklı coğrafik şekiller, aynı resim içinde

UYGULAMA: • Dağ, ova, göl ve vadi gibi farklı coğrafik şekiller, aynı resim içinde gerçek zamanlı olarak üretilmiştir. • Elmas-kare algoritmasının kullanıldığı bu uygulamada, 4 farklı yükseklik ve renk değeri kullanılarak şekillerin gerçektekine benzer görüntülerinin oluşturulması sağlanmıştır. • Uygulama Verilog programlama dili kullanılmış ve FPGA platformunda bulunan VGA çıkış birimi aracılığı ile görüntüler ekrana aktarılmıştır.

UYGULAMA: .

UYGULAMA: .

GÖRÜNTÜ NETLEŞTİRME Görüntüdeki gürültünün yani bozucu etkinin yok edilmesi veya indirgenmesinde görüntü yumuşatma ve

GÖRÜNTÜ NETLEŞTİRME Görüntüdeki gürültünün yani bozucu etkinin yok edilmesi veya indirgenmesinde görüntü yumuşatma ve iyileştirme operatörleri kullanılır. Bir resim üzerinde düzleştirme ve iyileştirme işleminin yapılmasında kullanılan en önemli teknik filtreleme tekniğidir.

GÖRÜNTÜ NETLEŞTİRME Highpass filtresi, Gauss filtresi, Sinc filtresi, Sobel operatörü filtresi, Laplace filtresi gibi

GÖRÜNTÜ NETLEŞTİRME Highpass filtresi, Gauss filtresi, Sinc filtresi, Sobel operatörü filtresi, Laplace filtresi gibi filtre çeşitleri vardır. Bu filtrelerden Gauss filtresi blur efektini artırır ve görüntüyü yumuşatır.

GAUSS FİLTRESİ Resimler Gauss filtre aracılığıyla yumuşutalarak pürüzsüz hale getirilebilir. 3 satır ve 3

GAUSS FİLTRESİ Resimler Gauss filtre aracılığıyla yumuşutalarak pürüzsüz hale getirilebilir. 3 satır ve 3 sütundan oluşan Gauss Kernel filtresi Şekil’deki matris gibidir.

GÖRÜNTÜ NETLEŞTİRME Gauss filtre matrisi kulanarak, uygulama 2’de elde edilen görüntü üzerinde ‘görüntü netleştirme’

GÖRÜNTÜ NETLEŞTİRME Gauss filtre matrisi kulanarak, uygulama 2’de elde edilen görüntü üzerinde ‘görüntü netleştirme’ işlemi gerçekleştirme uygulaması. . .

UYGULAMA: GÖRÜNTÜ NETLEŞTİRME.

UYGULAMA: GÖRÜNTÜ NETLEŞTİRME.

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ • Uygulama 1’de oluşturulup, uygulama 2’de netleştirilen

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ • Uygulama 1’de oluşturulup, uygulama 2’de netleştirilen resim 2 boyutlu olarak görülmektedir. Bu görüntünün 3 boyutlu olarak görülmesi için X ekseni etrafında döndürülmesi gerekir. • Başka bir ifadeyle; görüntü, manzara resminin üstten görüntüsüdür. Resim sadece x-y ekseni olarak yani en ve boy olarak görülmektedir. Yükseklik miktarı yani z ekseni görülmemektedir.

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ Resmin x ekseni etrafında belli açı değerleri

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ Resmin x ekseni etrafında belli açı değerleri ile döndürülmesi neticesinde, görüntünün en-boyyükseklik özellikleri net bir şekilde görülür.

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ Bir görüntünün X ekseni, Y ekseni ve

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ Bir görüntünün X ekseni, Y ekseni ve Z ekseni etrafında döndürülmesi için gerekli döndürme matrisleri sırasıyla aşağıdaki gibidir:

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ Uygulama 1’de elde edilen manzara resminde ‘x’

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ Uygulama 1’de elde edilen manzara resminde ‘x’ ve ‘y’ piksel değerini, ‘z’ ise yükseklik değerini gösteriyor olsun. Bu değerleri ifade eden matris A matrisi olarak isimlendirilir ise; matrisin değeri aşağıdaki gibi ifade edilebilir.

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ Resmi X ekseni etrafında döndürmek istediğimiz için

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ Resmi X ekseni etrafında döndürmek istediğimiz için Rx(θ) matrisi ile A matrisi çarpılır. Bu işlem neticesinde x sabit kalırken, y ve z değişime uğrar. Fakat z değerinin yani yükseklik değerinin değişmesine gerek duyulmadığından, işlemlere z değeri değiştirilmeden devam edilir.

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ Değişim neticesinde oluşması gereken yeni y değeri;

2 BOYUTLU RESMİN 3 BOYUTLU ŞEKİLDE GÖRÜNTÜLENMESİ Değişim neticesinde oluşması gereken yeni y değeri; yyeni = y*cos(θ) - z*sin(θ) olur. Açı değerlerine göre sinüs ve kosinüs fonksiyonlarının değerinin ne olacağı, yazılan programda alt modüller içerisinde belirtilmiştir.

UYGULAMA: İKİ BOYUTLU RESMİN ÜÇ BOYUTLU OLARAK GÖRÜNTÜLENMESİ Elde edilen ve Gauss filtresi ile

UYGULAMA: İKİ BOYUTLU RESMİN ÜÇ BOYUTLU OLARAK GÖRÜNTÜLENMESİ Elde edilen ve Gauss filtresi ile pürüzsüz hale getirilen resmi 3 boyutlu olarak görüntüleme uygulaması. Uygulamada ‘Rotation Matrix’ kullanılmıştır.

UYGULAMA: İKİ BOYUTLU RESMİN ÜÇ BOYUTLU OLARAK GÖRÜNTÜLENMESİ

UYGULAMA: İKİ BOYUTLU RESMİN ÜÇ BOYUTLU OLARAK GÖRÜNTÜLENMESİ