Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.

Rozměr: px
Začít zobrazení ze stránky:

Download "Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o."

Transkript

1 Zpracování obrazu v FPGA Leoš Maršálek ATEsystem s.r.o.

2 Základní pojmy

3 PROCESOROVÉ ČIPY Křemíkový čip zpracovávající obecné instrukce Různé architektury, pracují s různými paměti Výkon instrukcí je závislý na architektuře procesoru Velmi univerzální použití pro různé úlohy Využití podle na programování Přijatelná cena

4 ZÁKAZNICKÉ ČIPY Křemíkový čip vytvořený přesně dle požadavků zákazníka Mohou být extrémně rychlé Neexistuje prakticky omezení při návrhu Vyplatí se pouze při obrovských sériích Velmi složitý návrh a výroba Vysoká cena

5 PROGRAMOVATELNÁ HRADLOVÁ POLE - FPGA FPGA - Field Programmable Gate Array Jedná se o univerzální HW čip Návrh obvodového řešení je realizován SW cestou FPGA čip obsahuje spoustu logických prvku (Hradel NAND, AND, OR, XOR atd.) Některé čipy obsahují vyšší aritmetiku a logiku (signálové procesory, čipy pro FFT atd.) Některé čipy mohou obsahovat různé paměti

6 PROGRAMOVATELNÁ HRADLOVÁ POLE - FPGA Relativně jednoduchá cesta jak převést návrh čipu do finálního řešení Uživatel si sám vyvíjí obvodové zapojení čipu Čipy dokáží pracovat velmi rychle, ve většině případů plně nahradí zákaznické čipy Minimalizuje se cena za výrobu

7 Součásti FPGA

8 SOUČÁSTI ČIPU

9 SOUČÁSTI ČIPU Konfigurovatelné logické bloky (CLB, cells) Flip-Flop LUT (lookup table) Fixní logické bloky (multipliers) Paměťové bloky (RAM) I/O bloky

10 SOUČÁSTI ČIPU Binární posuvný registr Slouží k synchronizaci a uložení logického stavu mezi časovými cykly (True/False) Při časovém signálu přijme hodnotu na vstup a drží si ji do dalšího signálu Signálové procesory Specializované funkční bloky (FFT, atd.)

11 SOUČÁSTI ČIPU - LUT Paměť RAM Obsahuje pravdivostní tabulky pro veškeré logické operátory (AND, OR, NAND, XOR,...)

12 FPGA v zařízeních National Instruments

13 FPGA V ZAŘÍZENÍCH NATIONAL INSTRUMENTS NI pracuje s čipy Xilinx Existuje několik hlavních architektur: Virtex-II Pro Virtex-4 Virtex-5 Spartan Virtex má v sobě integrovány prvky Power PC

14 KARTA PRO ZPRACOVÁNÍ OBRAZU NI 1473R Frame graber s připojením Camera Link rozhraním PoCL napájení přes Camera Link Virtex-5 LX50 Možnost připojení externího I/O panelu 10tap režim snímání Full camera link podpora nejrychlejšího přenosu na CL

15 AUTONOMNÍ POUŽITÍ FPGA KARTY PC slouží pouze k napájení, spouštění PC vůbec nezasahuje do analýzy obrazu. Pokud se zhroutí OS na PC vyhodnocení poběží dále (vhodné pro kritické zpětnovazební řízení technologii ) Složitější SW návrh, vše musí řešit FPGA

16 ZÁVISLÉ POUŽITÍ FPGA KARTY PC + OS vstupuje do výpočtu FPGA má za úkol decimovat data nebo předpřipravit obraz do požadovaného stavu Pouze odlehčení systému na PC platformě některé úlohy by jinak nebyly řešitelné Jednodušší SW návrh, lze spoustu věcí udělat na PC

17 MODEL VRSTEV

18 Zpracování obrazu na FPGA

19 ZPRACOVÁNÍ OBRAZU NA FPGA Předzpracování obrazu na FPGA čipu a uvolnění výkonu CPU pro složitější operace Pro FPGA jsou vhodné algoritmy, které provádějí operace na jednotlivých pixelech Nevhodné jsou komplexnější funkce pracující na větší ploše jako Pattern Matching, OCR, Object Identification 850 Mpix/s 8 Mpix/s

20 VÝHODY FPGA x CPU Real time Zpětnovazební řízení velmi rychlá odezva na IO Extrémně rychlé zpracování obrazu Přesné časování

21 VHODNÉ ÚLOHY PRO FPGA Filtrování 1D a 2D FFT Bayerovo kódování Konverze barevného prostoru Detekce hran, binárních objektů a barev Výpočet centroidu Měření na velkých plochách Decimace dat

22 NEVHODNÉ ÚLOHY PRO FPGA Hledání vzoru Složité hranové detekce Analýza binárního obrazu (morfologie) Čtení čárových kódů (univerzální pojetí) OCR Kalibrace a narovnání obrazu složitější implementace Vícenásobné statistické metody

23 VELIKOST DAT Velikost obrázku 1920x1088 = 1,99 MByte Rychlost snímání 100 fps ->199MByte/s černobílý obraz 8bit Barevný obraz RGB 8bit na vrstvu -> 597Mbyte -> 4,66 Gbit Problém s přenosem Problém se zpracováním takového objemu dat Decimace barevné kamery do binárního obrazu 100fps, barevná kamera rozlišení 1920x Mbyte barevný obraz -> 24Mbyte binární obraz

24 PRAHOVÁNÍ Eliminace šedých tónů + eliminace barevných vrstev FPGA spočítá vrstvu světelnosti a pak na základě nastaveného prahu vytvoří binární obrázek RGB -> Binary decimace dat o 95%

25 KONVOLUČNÍ FILTR Konvoluční filtr (Gausovské rozostření) maticové zpracování obrazu v reálném čase Ulehčení nadřazenému systému s výpočtem, který je náročný pro CPU Vlastní postrocesing obrazu z kamery možnosti téměř neomezené

26 DETEKCE HRAN Nalezení hran v obraze podmnožina konvolučního filtru FPGA v reálném čase počítá pomocí konvoluce největší strmost hrany. Do nadřazené aplikace se předává upravený obrázek ve kterém jsou pouze hrany

27 DEBAYERIZACE Z BAREVNÉ KAMERY Přepočet z Bayerova kódování do klasické reprezentace RGB FPGA přepočítá obraz do třech barevných vrstev a do nadřazeného systému jde již přímo RGB obraz Šetří se strojový čas nadřazeného systému do systému se přenáší 3x více dat

28 VÝPOČET CENTROIDU Z obrazu se počítá těžiště binárního obrázku na jeden snímek 2 hodnoty FPGA řeší výraznou decimaci dat Ukázka na připraveném demu Souřadnice X: 300 Y 300 pixelů

29 Praktické využití centroidu SLEDOVÁNÍ LASEROVÉ STOPY Vypočítá těžiště binárního obrázku (laserový svazek je nejjasnější bod v zorném poli) Různá navádění na cíl označený laserem (od laserových stop v laboratoři až po navádění raket) Extrémně vysoká rychlost. Aktualizace souřadnic možná s každým pixelem. (48ns)

30 ZDROJE DAT A UŽITEČNÉ ODKAZY Camera Link Frame Grabber With FPGA Image Processing (National Instruments) Introduction to FPGA Vision Using the NI LabVIEW FPGA Module(National Instruments)

31 Děkuji za pozornost! Leoš Maršálek, ATEsystem s.r.o.