LUCRARE DE DIPLOM Tehnici de prelucrare a imaginilor bazate pe circuite FPGA Coordonator tiinific: Prof. Dr. Ing. Adrian Petrescu Absolvent: Cristina Mihilescu BUCURETI 2009 2 CUPRINS INTRODUCERE....................................................................................................................... 5 CAPITOLUL 1. FORMATUL I AFIAREA IMAGINILOR................................................ 6 1.1. Structura imaginilor digitale...................................................................... 6 1.2. Camerele foto si ochiul uman.................................................................... 9 1.3. Ajustarea luminozitii i contrastului....................................................... 14 1.4. Transformri Greyscale.............................................................................. 18 1.5. Deformarea imaginilor............................................................................... 20 CAPITOLUL 2. PROCESAREA LINIAR A IMAGINILOR................................................ 23 2.1. Convoluia.................................................................................................. 23 2.2. Modificarea marginilor folosind PSF 3x3................................................. 28 2.3. Convoluia prin separare............................................................................ 30 2.4. Analiza Fourier a imaginilor...................................................................... 33 2.5. Convoluia transformatei Fast Fourier....................................................... 38 CAPITOLUL 3. TEHNICILE IMAGINILOR SPECIALE....................................................... 43 3.1. Rezoluia spaial........................................................................................ 43 3.2. Spaierea eantionului i apertura eantionrii............................................ 48 3.3. Raportul semnal - zgomot .......................................................................... 50 3.4. Procesarea morfologica a imaginilor.......................................................... 53 CAPITOLUL 4. FPGA.............................................................................................................. 56 4.1. Istoric......................................................................................................... 56 4.2. Comparaii FPGA...................................................................................... 57 4.3. Arhitectur................................................................................................. 58 4.4. Proiectare i programare FPGA................................................................. 60 3 4.5. Tehnologii FPGA....................................................................................... 61 4.6. Aplicaii...................................................................................................... 61 CAPITOLUL 5. ALGORITMI DE PROCESARE A IMAGINILOR...................................... 63 5.1. Citirea imaginii.......................................................................................... 63 5.2. Prelucrarea imaginilor RGB....................................................................... 63 5.3. Procesarea morfologic a imaginilor binare.............................................. 67 5.3.1. Dilatare............................................................................................... 67 5.3.2. Eroziune............................................................................................. 69 5.4. Semnale de control..................................................................................... 70 5.5. Afiarea imaginii....................................................................................... 70 CONCLUZII.............................................................................................................................. 71 ANEXE...................................................................................................................................... 72 BIBLIOGRAFIE........................................................................................................................ 84 4 INTRODUCERE Recent, tehnologiile FPGA au devenit o int viabil pentru implementarea algoritmilor de procesare a imaginilor. Arhitectura unic a acestor circuite a permis tehnologiei s fie folosit n nenumrate aplicaii ce cuprind toate aspectele procesrii de imagini. Scopul acestei lucrri este implementarea unor algoritmi de procesare a imaginilor pe circuitul FPGA, Spartan 3AN. Pentru documentarea lucrarii s-au folosit diverse surse ce pot fi citite n bibliografie. Pentru implementarea algoritmilor s-a folosit programul Matlab 2007b i utilitarul System Generator din programul Xilinx ISE 10.1. Capitolul 1 descrie formarea i prezentarea imaginilor digitale la observatorul uman, structura imaginilor digitale, urmnd ca subcapitolul urmtor s prezinte cteva informaii despre camerele fotografice si ochiul uman. n continuare se trateaz ajustarea luminozitii i a contrastului unei imagini i diferitele moduri n care aceste ajustri se pot realiza. Transformarea Grayscale prezentat n acest capitol mbuntete contrastul dintre valorile pixelilor de interes. Deformarea imaginilor ntlnit n cazul fotografiilor realizate n condiii dificile este prezentat n continuare, explicndu-se i principiul interpolrii biliniare. Capitolul 2 prezint dou tehnici pentru reducerea timpului de execuie: convoluia prin separabilitate i convoluia Transformatei Fast Fourier, informaii generale despre procesul de convoluie i un caz particular: Modificarea marginilor s-a fcut folosind PSF 3 x 3. n finalul capitolulul se prezint convoluia prin separare, o tehnic de convoluie ce folosete un PSF ce poate fi divizat ntr-o proiecie vertical i una orizontal i convoluia TFF. Capitolul 3 prezint cteva aspecte ale procesrii de imagini, modurile de rezoluie spaial, noiunile de spaierea eantionului i apertura eantionrii, analiza raportului dintre semnal i zgomot i informaii generale despre tehnicile morfologice. Penultimul capitol 4 prezint informatii generale despre circuitele FPGA - istoric, comparaie tehnologii, arhitectur, proiectare i programare i aplicaii. Ultimul capitol 5 reprezint partea practic a lucrrii, cuprinznd algoritmi de prelucrare a imaginilor ce au fost proiectai folosind programele Matlab i Xilinx. 5 CAPITOLUL 1 FORMATUL I AFIAREA IMAGINILOR Imaginile sunt o descrierea a variaiei unui parametru de-a lungul unei suprafete. De exemplu, imaginile vizuale sunt rezultatul variaiei intensitii luminoase de-a lungul unui plan bidimensional. Lumina nu este singurul parametru folosit n tiina imaginilor. O imagine poate fi format din caldura unui circuit integrat, de viteza sngelui din artera unui pacient, de emisia de raze X a unei galaxii sau de micarea pamntului n timpul unui cutremur. Aceste imagini exotice sunt de obicei convertite n imagini convenionale (imagini de lumin), n aa fel nct s fie evaluate de ochiul uman. Capitolul ce urmeaz descrie cum se formeaz i cum sunt prezentate imaginile digitale observatorului uman. 1.1. Structura imaginilor digitale Aceast imagine este a planetei Venus, obinut de un radar cu microunde de pe o sond de orbit. Imaginile obinute prin microunde sunt necesare deoarece atmosfera dens blocheaz lumina vizibil, fcnd fotografiatul imposibil. Imaginea este reprezentat prin 40.000 de eantioane aranjate ntr-un vector bidimensional de 200 coloane i 200 linii. Folosind semnale unidimensionale, aceste linii i coloane pot fi numerotate de la 0 la 199, sau de la 1 la 200. n jargon, fiecare eantion numindu-se pixel (picture element). Fiecare pixel din aceast imagine este un numr ntre 0 i 255. Cnd imaginea a fost achiziionat, acest numr se referea la cantitatea de energie reflectat de locaia corespunztoare pe suprafata planetei. Pentru a o reprezenta ca o imagine vizual, valoarea fiecarui pixel este convertit n grayscale, unde 0 reprezint negru, 255 reprezint alb iar valorile intermediare sunt diferite nuane de gri. Imaginile au propriile informaii codate n domeniul lor spaial, iar imaginea echivalent n domeniul timpului. Cu alte cuvinte, particularitile din imagini fiind reprezentate de frontiere (margini), nu de sinusoide. Acest lucru nsemn c spaierea i numrul de pixeli sunt determinate de ct de mici sunt marginilor vizibile i nu de constrngerile formale ale teoremei de eantionare. 6 Fig. 1.1. Structura unei imagini digitale. Confundarea poate aparea n imagini, dar este de obicei tratat ca o neplacere nu ca o problem major. n consecin, costumele pepite nu arat bine la televizor deoarece ablonul repetitiv este mai mare dect frecvena Nyquist. Frecvenele confundate apar ca benzi de lumina i ntuneric care se misca pe hainele persoanei, n cazul n care aceasta i schimb poziia. O imagine digital tipic este compus din aproximativ 500 linii i 500 coloane, aceasta fiind calitatea imaginii folosite n televiziune, aplicaiile calculatoarelor personale i n cercetrile tiintifice. Imaginile cu pixeli mai puini, 250 x 250 sunt considerate ca avnd o rezoluie slab, acesta este cazul noilor modaliti de imagini, cu ct tehnologia avanseaz sunt 7 adaugai mai muli pixeli. Aceste imagini cu rezoluie slab nu arat natural, putndu-se observa fiecare pixel. Pe de alt parte, imaginile cu mai mult de 1000 x 1000 pixeli sunt considerate excepionale, aceasta este calitatea celui mai bun calculator grafic, a televiziunii high-definition i a imaginilor 35 mm n micare. Exist aplicaii care necesit o rezoluie mai mare: fotografiile din spaiu i reclamele lucioase din reviste. Cea mai puternic motivaie pentru a folosi imagini cu o rezoluie scazut este aceea c sunt mai puini pixeli de manipulat. Una dintre cele mai mari probleme n procesarea imaginilor este aceea a manipulrii fluxul masiv de date. De exemplu, o secund de nregistrare audio necesit opt kilobytes, n comparaie cu o secund de nregistrare video care necesit opt Megabytes. Transmiterea unei imagini de 500 x 500 pixeli printr-un modem de 33,6 kbps necesit aproape un minut, n timp ce transmiterea unei imagini de 1000x1000 multiplic aceste probleme. De obicei se folosesc cele 256 nivele de gri (nivele de cuantificare) n prelucrarea imaginilor, corespunznd unui singur byte/pixel, deoarece pe de o parte pentru un singur byte este convenabil administrarea datelor, innd cont c aceasta este i modalitatea calculatoarelor de a stoca datele, pe de alt parte numrul mare de pixeli dintr-o imagine compenseaz un anumit gradient pentru un numr limitat de pai. De exemplu, dintr-un grup de pixeli adiaceni avnd valori alternnd ntre valorile 145 i 146, ochiul uman percepe o regiune cu o luminozitate de 145,5. Cu alte cuvinte, imaginea este foarte tremurat. Al treilea i cel mai important motiv este c pasul de luminozitate cu o valoare de 1/256 (0,39 %) este mai mic decat cel perceput de ochiul uman. O imagine prezentat unui observator uman nu va fi mbuntit dac se vor folosi mai mult de 256 nivele. Unele imagini necesit pentru a fi stocate mai mult de 8 biti/pixel. Valoarea fiecarui pixel din imaginile digitale reprezint o regiune din imaginea continu ce a fost digitalizat. De exemplu, imaginea planetei Venus reprezint o prob preluat la fiecare 10 metri din suprafaa planetei. Acest lucru definete un eantion de spaiere i o retea de eantionare, fiecare pixel reprezentnd o arie de 1 metru ptrat. Probele spaiale emit o explozie focalizat de energie micround, aferente unei suprafae circulare cu diametru de 15 metri, astfel fiecare pixel conine informaii cu privire la dimensiunea ariei de eantionare. Regiunea imaginii continue care contribuie la valoarea pixelului se numete apertura eantionului. Dimensiunea aperturii eantionului se refer, de obicei, la capabilitile motenite ale unui sistem de imagini ce este folosit. De exemplu, microscopurile sunt limitate de lungimea 8 de und a luminii, camerele sunt limitate de difuzia aleatoare a electronilor din senzorul imaginii. n majoritatea cazurilor, reeaua de eantionare este asemntoare cu apertura de eantionare a sistemului. Rezoluia imaginii digitale finale va fi determinat de cea mai mare dintre cele dou, apertura de eantionare i reeaua de eantionare. Culoarea este adugat imaginii digitale folosind trei numere pentru fiecare pixel, reprezentnd intensitatea celor trei culori primare: rou, verde i albastru. Amestecul acestor trei culori genereaz toate culorile posibile pe care ochiul uman le poate percepe. Un singur bit este folosit pentru memorarea fiecarei intensiti a culorii, oferind posibilitatea imaginii de a avea un total de 256 x 256 x 256 = 16,8 milioane de culori diferite. 1.2. Camerele foto i ochiul uman Structura i funcionarea ochiului uman este similar camerei foto, amndou fiind compuse din dou elemente majore: un ansamblu de lentile i un senzor de imagine. Ansamblul de lentile captureaz o poriune a luminii emanate de un obiect i o focalizeaz pe senzorul de imagine. Senzorul de imagine transforma monstra de lumin ntr-un semnal video, electronic sau neural. Figura 1.2 prezint funcionarea lentilelor. n acest exemplu este prezentat imaginea unui patinator proiectat pe un ecran. Termenul proiecie inseamn c exist o relaie de unu-la- unu ntre fiecare punct al patinatorului i punctele de pe ecran. De exemplu, n cazul unei regiuni de 1 mm x 1 mm, n lumina strlucitoare sunt aproximativ 100 trilioane fotoni de lumin care lovesc aceast suprafa de un milimetru ptrat n fiecare secund. Fig. 1.2. Focalizarea printr-o lentil. 9 n funcie de caracteristicile suprafeei se reflect n direcii aleatoare un procent de 1 % pana la 99 % din aceti fotoni de lumin. Numai o mic parte din aceti protoni (fotoni) reflectai vor trece prin lentil. De exemplu, numai a miliona parte din lumina reflectat va trece printr-o lentil cu diametru de un centimetru localizat la trei metri de obiect. O lentil reunete lumina provinit de la o surs punctiform i o foreaz s se ntoarc ntr-un punct dintr-o alt locaie. Astfel o lentil poate proiecta o imagine pe o suprafat. Refracia printr-o lentil schimba directia fotonilor n funcie de locaia si unghiul cu care lovesc suprafaa. Aceste schimbri de direcie duc la extinderea luminii de la un singur punct pentru a se ntoarce la un punct singular pe ecranul de proiecie. Toi aceti fotoni care se reflect de la extremiti i trec prin lentile se reunesc la extremitatea imaginii proiectate. ntr-un mod similar, o poriune de lumin provenit din orice punct aparinnd unui obiect va trece prin lentile i va fi focalizat ntr-un punct al imaginii proiectate. Fig. 1.3. Structura unei camere foto. Fig. 1.4. Structura ochiului uman. Figurile 1.3 i 1.4 prezint structura unei camere foto i a ochiului uman. Ambele sunt ca un spaiu nchis delimitat de lentile la un capt i de un senzor de micare la captul opus. Aparatul foto are acest spaiu umplut cu aer, pe cnd ochiul prezint un lichid transparent. Fiecare sistem de lentile prezint doi parametrii reglabili: focarul i diametrul irisului. Dac lentilele focalizeaz cum trebuie, fiecare punct al obiectului va fi proiectat pe o suprafa circular de pe senzorul de imagine, rezultnd o imagine nceoat. n cazul camerei foto, focalizarea este obinut prin micarea lentilelor nainte i napoi fa de senzorul de imagine. 10 Comparativ cu aceasta, ochiul uman conine dou lentile, o curbur n partea din fa numit cornee i o lentil ajustabil n interiorul ochiului. Corneea se ocup cu refracia luminii dar are o form i o localizare fix. Ajustarea focalizrii este realizat de lentila interioar, o structur flexibil ce poate fi deformat sub aciunea muchilor ciliari. Cnd muchii se contract lentilele se aplatizeaz pentru a realiza o focalizare mai precis. n ambele sisteme, irisul este folosit pentru a controla expunerea lentilelor i luminozitatea imaginii proiectat pe senzorul de imagine. Irisul ochiului uman este format dintr-un esut muscular opac ce se poate contracta pentru a face pupila mai mare (deschiderea de lumin). Irisul camerei foto este un ansamblu care realizeaz aceeai funcie. Parametrii sistemelor optice interacioneaz n mod neateptat. Acest lucru se intmpl deoarece diametrul irisului i timpul de expunere se modific pentru a transfera cantitatea necesar de la scena observat la senzorul de imagine. Dac folosim mai mult lumin dect cea necesar, diametrul irisului se poate reduce, obinnd astfel o profunzime mai mare a cmpului. O mai mare profunzime a cmpului ofer o imagine mai clar cnd obiectele se afl la distane variabile. n schimb, prezena luminii d posibilitatea reducerii timpului de expunere, rezultnd o reducere a umbririi n cazul micarii camerei sau a obiectelor in micare. Sistemele optice folosesc aceste tipuri de compensaii. Un iris ajustabil este necesar att n cazul camerelor foto ct i n cazul ochiului uman deoarece intervalul intensitii luminii n mediul nconjurtor este mai mare dect cel care poate fi folosit de senzorii de lumin. De exemplu, diferena intensitaii luminoase dintre soare i lun este de aproape un milion. Adaugnd reflecia care poate varia ntre 1 % si 99 %, rezult o intensitate luminoas ntr-un interval de aproape o sut de milioane. Intervalul dinamic al unei camere foto este de obicei, ntre 300 i 1000, definit ca cel mai nalt semnal care poate fi msurat, divizat de zgomotul propriu aparatului. n alt ordine de idei, semnalul maxim produs este de un volt i zgomotul rms n ntuneric este de aproape un milivolt. Lentilele camerelor tipice au un iris care i schimb suprafaa de deschidere a luminii cu un factor de 300. Acesta rezult dintr-o camera foto care are un interval dinamic de cateva sute de mii. Acelai ansamblu de lentile i de camere, folosite n timpul zilei, se dovedete a fi nefolositor pe timp de noapte. Ochiul uman opereaz cu un interval dinamic care abia acoper variaiile mediului nconjurtor. Surprinztor, irisul nu este singurul mod n care acest interval dinamic este obinut. 11 De la ntuneric la lumin, suprafaa pupilei se schimb doar cu un factor de 20. Celula nervoas responsabil de detectarea luminii ii ajusteaz senzitivitatea pentru a manevra intervalul dinamic rmas. Ochiul uman are nevoie de cteva minute pentru a se adapta luminii dup ieirea dintr-o sala de cinema intunecoas. Modul prin care DSP (Digital Signal Processing) mbuntete imaginile l reprezint reducerea intervalului dinamic pe care un observator l vede. O imagine reflectat este format din dou semnale: un ablon bidimensional ce reprezint iluminarea imaginii, multiplicat cu un ablon bidimensional al reflexiei prezente n scen. ablonul de reflexie are un interval dinamic mai mic de 100, deoarece materialele obinuite reflect ntre 1 % i 99 % din lumina incident, acesta coninnd majoritatea informaiilor imaginii i anume unde sunt situate obiectele n scen i care sunt caracteristicile suprafeei. Semnalul luminos depinde de sursele de lumin care se gsesc n apropiere, dar nu pe obiectele propriu-zise. Semnalul de iluminare poate avea un interval dinamic de milioane, dar numai 10 pn la 100 se regsesc n aceeai imagine. Semnalul luminos conine cteva informaii importante dar poate degrada imaginea final prin creterea intervalului dinamic. DSP poate mbuntii situaia atenund semnalul luminos, permiand semnalului de reflexie s domine imaginea. Suprafaa sensibil la lumin care acoper partea posterioar se numete retin. Cum se poate observa i n figura 1.5 retina este mprit n trei straturi de celule nervoase: unul pentru convertirea luminii n semnale neurale, unul pentru procesarea imaginii i unul pentru transferul informaiei de la nervul optic la creier. Aproape la toate animalele, aceste trei straturi sunt aparent poziionate n sens invers, celulele sensibile la lumina gsindu-se n ultimul strat, necesitnd trecerea luminii prin celelalte straturi nainte de a fi detectate. Sunt dou tipuri de celule care detecteaz lumina: conuri i bastonae, denumite dup forma lor observat la microscop. Bastonaele sunt specializate s opereze cu lumin puin. Imaginea apare foarte micat n absena luminii deoarece imaginea pare format dintr-un semnal cu un ablon granular n continu schimbare. O cantitate foarte mic de lumin intr n ochi astfel nct pot fi detectai aleator fotoni individuali. Acesta se numete zgomot statistic i poate fi ntlnit n toate imaginile fr prea mult lumin, ca sistemele militare cu vedere nocturn. Receptorii conuri sunt specializai n deosebirea culorilor, dar pot opera doar n prezena luminii. Sunt trei tipuri de conuri: roii, verzi si albastre. Acest lucru se datoreaz prezenei 12 diferiilor fotopigmeni, substane chimice care absorb diferite lungimi de und (culori) ale luminii. Fig. 1.5. Retina. Figura 1.6 prezint lungimile de und care declaneaz fiecare din aceti trei receptori. Acetia sunt cunoscui sub numele de codare RGB i reprezint modul n care informaia despre culoare prsete ochiul prin nervul optic. Sesizarea culorii la om este complicat de procesarea neural realizat la nivelul inferior al creierului. Codificarea RGB este convertit n alt schema de codificare, unde culorile sunt clasificate dup cum urmeaz: rou sau verde, albastru sau galben i lumin sau ntuneric. Fig. 1.6. Rspunsul spectral al ochiului uman. 13 Codificarea RGB reprezint o important limitare a vederii umane; lungimile de und ntlnite n mediul nconjurtor sunt reunite n trei categorii largi. n comparaie cu vzul uman, camerele specializare pot separa spectrul optic n sute sau mii de culori individuale. De exemplu, acestea pot fi folosite pentru a clasifica celulele n canceroase sau sntoase, pentru a nelege fizica unei stele ndeprtate sau pentru a vedea un soldat camuflat ascuns ntr-o pdure. Bastonaele i conurile au aproximativ 3 m i sunt aglomerate n suprafaa de 3 cm pe 3 cm a retinei. Acest lucru face ca retina sa fie format dintr-un vector de aproximativ 10,000 x 10,000 = 100 milioane receptori. Spre deosebire de aceasta, fiecare nerv optic are doar un milion de fibre nervoase care se conecteaz cu aceste celule. n medie, fiecare fibra a nervului optic este conectat prin aproximativ 100 senzori de lumin prin intermediul stratului conector. n partea central a retinei se gsete o mic regiune numit fovee folosit pentru o vedere cu rezoluie mare. Fovea este diferit de restul retinei din anumite puncte de vedere. n primul rnd, nervul optic i stratul conector se extind nspre fovea, permind receptorilor s fie mai expui luminii. Acest lucru duce la perceperea foveei ca o mic depresiune n retin. n al doilea rnd, numai conurile sunt prezente n fovee i sunt mult mai adunate dect n celelalte zone ale retinei. Absena bastonaelor din fovee explic de ce vederea n timpul nopii este mai bun cnd privim un obiect dintr-o parte dect cand l privim din fa. n al treilea rnd, fiecare fibr a nervului optic este influenat numai de cateva conuri, demonstrnd o bun abilitate de localizare. Fovea este surprinztor de mic. La o distan normal de citire, fovea vede doar o suprafa cu diametrul de 1mm. Rezoluia este echivalent cu o reea de pixeli de 20 x 20 din interiorul regiunii. Vederea uman compenseaz dimensiunea mic a foveei prin micarile sacadate ale ochiului. Aceste micari permit foveei de rezoluie nalt s scaneze cmpul vizual n cautare de informaii. n plus, conurile i bastonaele prezint un ablon de lumin n continu micare. Acest lucru este important din cauza capacitii retinei de a se adapta la schimbrile intensitii luminii. De altfel, dac ochiul este forat s rmn fix pe aceeai imagine, detaliile i culoarea ncep sa dispar n cateva secunde. 1.3. Ajustarea luminozitii i contrastului O imagine trebuie s aib o luminozitate corespunztoare i un bun contrast pentru o vedere mai bun. Luminozitatea se refer la totalitatea zonelor de lumin i ntuneric dintr-o imagine. Contrastul reprezint diferena de luminozitate dintre obiecte sau regiuni. De exemplu, 14 un iepure alb care alearg printr-un cmp alb are un contrast slab, n timp ce un caine negru pe acelasi fundal alb are un contrast bun. Figura 1.7 prezint patru posibiliti de ajustare incorect a luminozitii i a contrastului. n cazul n care luminozitatea este prea mare, cazul a, pixelii albi sunt saturai, distrugnd detaliile din acele zone. Opusul este prezentat n cazul b, unde luminozitatea este prea sczut, saturnd pixelii negrii. Figura c prezint un contrast setat prea mare rezultnd un negru i un alb. n final, d are un contrast scazut, toi pixelii sunt o nuan de gri, facnd astfel ca obiectele s nu se poat deosebi. Fig. 1.7. Ajustarea luminozitii i a contrastului. Figurile 1.8 i 1.9 prezint luminozitatea i contrastul n detaliu. O imagine de test este prezentat n figura 1.9, folosind ase nivele de luminozitate i contrast. Figura 1.8 prezint construcia imaginii de test, un vector de 80 x 32 pixeli, fiecare pixel avnd o valoare ntre 0 i 255. Fundalul imaginii de test prezint zgomot distribuit uniform ntre 0 i 255. Pixelii celor trei ptrate au valoarile 75, 150 i 225 de la stnga la dreapta. Fiecare ptrat conine doua triunghiuri cu pixeli de valori diferite. Cu alte cuvinte, exist n imagine o regiune ntunecat ce conine puine detalii, o regiune medie i o regiune luminoas ce conin doar cteva detalii. 15 Fig. 1.8. Imagine de test. Figura 1.9. prezint cum ajustarea contrastului i a luminozitii permite diferitelor caracteristici s fie vizibile. n figura 1.9, a luminozitatea i contrastul au un nivel normal. Graficul corespunzator fiecarei poze numit transformata ieirii, reprezint o curba gamma sau un tabel de look-up al rezultatului ce controleaz partea harware care afieaz imaginea. Valoarea fiecarui pixel din imaginea memorat, reprezentnd un numr ntre 0 i 255, este transmis prin tabelul de look-up pentru a produce un alt numr ntre 0 i 255. Noul numr digital dirijeaz circuitul intensitii video, cu 0 prin 255 transformat n negru prin alb. Astfel, tabelul de look-up reprezint numerele memorate n luminozitate. Figura 1.9 a arat cum apare imaginea, cnd rezultatul transformrii este setat s nu corecteze, semnalul de ieire este identic cu cel de intrare. Fiecare pixel din fundalul afectat de zgomot este o nuan aleatoare de gri, egal distribuit ntre alb i negru. Cele trei ptrate din figur sunt afiate ca diferite nuane de negru. Problema constatat este c triunghiurile din interior nu pot fi observate, contrastul este prea redus pentru ca ochiul s poat deosebi aceste regiuni de regiunile nconjurtoare. Figurile 1.9. b i c prezint efectul modificrii luminozitii. Creterea luminozitii duce transformata ieirii n stnga, n timp ce descreterea luminozitii duce transformata n dreapta. Creterea luminozitii face ca fiecare pixel s par mai luminat. n cazul scderii luminozitii, pixelii apar mai ntunecai. Aceste modificrii pot mbuntii vizibilitatea zonelor ntunecate sau luminate, dar vor satura imaginea. Figura 1.9. d reprezint o afiare optimizat pentru a observa valorile pixelilor care variaz n jurul valorii de 75. Acest lucru a fost realizat prin mrirea contrastului, rezultnd o imagine crescut n pant. De exemplu, valoarea memorat 71 i 75 a pixelului devine 100 i 116 n imagine, obinndu-se un factor de contrast de patru ori mai mare. Valorile dintre 46 i 16 109 sunt afiate ca un pixel negru, respectiv ca unul alb. Dezavantajul acestui contrast crescut l repezint saturarea la negru a valorilor de la 0 la 45 i al saturrii la alb pentru valorile de la 110 la 225. Fig. 1.9. Ajustarea luminozitii i a contrastului. 17 Figura 1.9. e prezint efectul creterii contrastului, rezultnd afiarea nesaturat a numai 16 din cele 256 nivele de stocare. Luminozitatea este sczut astfel nct cele 16 niveluri folosibile sunt centrate pe numarul digital 150 (Digital Number). Detaliile ptratului central sunt vizibile,restul imaginii fiind saturat, existnd doar civa pixeli cu nuan de gri. Aceast tehnic a folosirii contrastului ridicat pentru a observa doar cteva niveluri este numit i extindere greyscale. Ajustarea contrastului reprezint un mod de micorare pe un interval mai mic de pixeli. Controlul centrului luminozitii centreaz seciunea micorat pe valorile pixelului urmrit. Majoritatea sistemelor digitale permit ajustarea luminozitii i a contrastului n acest mod i de obicei permit o afisare grafic a rezultatului. Controlul luminozitii i al contrastului n televiziune i n monitoarele video este realizat de circuite analogice i pot opera diferit. De exemplu, controlul contrastului unui monitor poate ajusta amplificarea semnalului analogic, n timp ce luminozitatea poate crete sau scadea offset-ul circuitului digital. 1.4. Transformate Grayscale Ultima figur 1.9. f este diferit de celelalte, mai exact, n loc de folosirea unei pante n graficul pentru un interval de valori de intrare, folosete o pant n graficul pentru dou intervale. Acest lucru pesmite afiarea simultan a triunghiurilor din zonele aflate n stnga i n dreapta imaginii. Ideea transformatei grayscale este aceea de a mbuntii contrastul dintre valorile pixelilor de interes, aceasta realizndu-se prin definirea importanei fiecrui pixel ntre valorile posibile 0 i 255. Cu ct valoarea este mai mare, cu att este mai mare contrastul din imaginea afiat. Fig. 1.10. Procesarea grayscale. 18 Imaginea din figura 1.10. a, a fost fcuta n ntuneric total folosind o camera foto CCD care este sensibil la undele infraroii. Parametrul descris este temperatura, obiectul cu cea mai mare temperatur emite o energie mai mare i apare mai luminos n imagine. Imaginea a este dificil de vzut din cauza distribuiei inegale de valori pentru pixeli. Majoritatea imaginii este mai inchis de aceea anumite detalii nu pot fi observate. Pe de alt parte, reeaua este saturat aproape de alb. Histograma acestei imagini este prezentat n figura 1.11. a, artnd c fundalul, oamenii i reeaua au valori diferite. a b c Fig. 1.11. Dezvoltarea transformatei Greyscale. 19 Transformata grayscale rezultat din aplicarea acestei strategii este prezentat n figura 1.11. c, etichetat cu manual. i se poate afla normaliznd suma curbei din figura 1.11. b astfel ncat n partea dreapt s aib o valoare de 255. Contrastul n cazul unei valori particulare este egal cu panta rezultatului transformatei. Aplicnd imaginii din figura 1.10. a, transformata grayscale produce imaginea b. Fundalul este mai luminos, reeaua este mai ntunecat i amndou au un contrast mai bun. Aceste mbuntiri sunt puse pe seama contrastului, producnd o imagine nu foarte detaliat. Transformatele Greyscale pot mbuntii semnificativ vizibilitatea unei imagini. Egalizarea histogramelor este o modalitate de a automatiza procedura. Se poate observa c histograma din figura 1.11. a i curba de apreciere a contrastului din figura 1.11. b au aceeai form. Rezultatul transformrii poate fi aflat prin integrarea i normalizarea histogramei. Folosind acele valori care au cel mai mare numr de pixeli, se ajunge la obinerea celui mai bun contrast. Egalizarea histogramelor reprezint o interesant procedur matematic deoarece maximizeaz entropia unei imagini, o msur a cantitii de informaie transmis de un numar fix de bii. 1.5. Deformarea imaginilor Una din problemele fotografierii unei planete este distorsionarea formei sferice de la curbur. De exemplu, presupunnd c folosim un telescop pentru a fotografia o regiune sferic aproape de centrul unei planete, ca n figura 1.12. a, dup cteva ore, planeta se va roti in jurul axei sale, aprnd ca in figura 1.12. b. Regiunea fotografiat anterior apare deformat deoarece este curbat aproape de orizontul planetei. Fiecare din cele dou imagini conine informaii complete despre regiune, din dou perspective diferite. Este ceva obinuit s obinem o fotografie ca cea de la punctul a, dorind s arate ca b, sau invers. De exemplu, un satelit care dorete s cartografieze suprafaa unei planete, poate realiza mii de fotografii de deasupra, ca n fotografia 1.12. a. Pentru a realiza o fotografie mai natural a ntregii platene, ca fotografia planetei Saturn, figura 1.12, fiecare imagine trebuie deformat i plasat n poziia potrivit. Pe de alt parte, dac lum n considerare cazul un satelit ce monitorizez vremea, situat aproape de un uragan, acesta va obine imagini oblice, ca cele din figura 1.12. b. Imaginea este apoi convertit ntr-o imagine realizat de deasupra ca in figura 1.12. a. Aceste transformri spaiale se numesc deformri. Fotografia spaial folosete n mare 20 parte deformarea. Deformarea digital poate fi folosit pentru a corecta distorsiunile motenite de la dispozitivele cu vedere nocturn. Artitii ce lucreaz cu efecte speciale pe imagini n micare folosesc deformarea imaginilor. De exemplu, tehnica numit deformare morfologic a unui obiect n alt obiect, folosind o serie de cadre. Aceasta poate produce iluzii ca un copil transformat ntr-un adult sau un om transformat ntr-un lup. Fig. 1.12. Fotografierea unei planete. Deformarea preia imaginea iniial (un vector bidimensional) i genereaz o imagine deformat (alt vector bidimensional). Dndu-se o linie i calculndu-se o coloan a imaginii deformate, avem o linie i o coloan corespunztoare n imaginea original. Valoarea pixelului din imaginea original este transferat imaginii deformate pentru a efectua algoritmul. n jargon, linia i coloana din care provine un pixel n imaginea original este numit adresa surs. Tranferul fiecrui pixel din imaginea original n imaginea deformat este partea cea mai uoar. Cea mai dificil parte este calcularea adresei surs, pentru fiecare pixel din imaginea deformat, 21 aceasta fiind o problem pur matematic. Simpla laire a imaginii pe direcie orizontal sau vertical implic doar o multiplicare a numrului liniei sau coloanei pentru a afla adresa surs. Una din tehnicile folosite n deformare este interpolarea subpixelilor. De exemplu, presupunem dezvoltarea unui set de ecuaii ce transform o linie i o coloan din imaginea deformat, ntr-o adres surs din imaginea original. Se ncerc aflarea valoari pixelului din linia 10 i coloana 20 din imaginea deformat. Se introduc informaiile n ecuaii: linie = 10, coloan = 20 i se obine linie_surs = 20.2, coloan_surs = 14.5. Calculele vor folosii virgula mobil i adresa surs nu va fi un numr ntreg. Cea mai uoar metod este folosirea algoritmului Celui mai apropiat vecin care rotunjete adresa la cel mai apropiat numr ntreg. Interpolarea biliniar are nevoie de mai mult efort, dar se obine o imagine semnificativ mai bun. Figura 1.13 prezint modul de lucru al acestui algoritm. Fig. 1.13. Interpolarea bililiar. Se cunoate valoarea a patru pixeli situai de jur mprejurul adresei fracionale, valoarea pixelilor de pe linia 20 i 21, i coloana 14 i 15. n acest exemplu considerm pentru pixeli valorile 91, 210, 162 i 95. Problema const n interpolarea acestor patru valori. n primul rnd, interpolarea pe orizontal dintre coloanele 14 i 15. Aceasta produce dou valori intermediare 150.5 pe linia 20 i 128.5 pe linia 21. n al doilea rnd, se interpoleaz aceste dou valori intermediare pe vertical. Aceasta produce un pixel interpolat biliniar cu valoarea 139.5, ce va fi transferat imaginii deformate. 22 CAPITOLUL 2 PROCESAREA LINIAR A IMAGINILOR Procesarea liniar a imaginilor se bazeaz pe dou tehnici DSP convenionale: convoluia i analiza Fourier. Convoluia are o importan mai mare de cnd imaginile au informaiile codate n domeniul spaial. Filtrarea liniar poate mbuntii imaginile n mai multe moduri: ascuirea marginilor imaginilor, reducerea zgomotului aleator, corectarea iluminarea inegal, deconvoluia pentru corectarea neclaritaii i micrii. Aceste proceduri se realizeaz prin convoluia imaginii originale folosind un filtru potrivit, obinandu-se astfel imaginea filtrat. Cea mai serioas problem a convoluiei imaginilor o reprezint numrul mare de calcule ce trebuie efectuate, de obicei fiind folosit un timp de execuie foarte lung. Sunt prezentate n continuare dou tehnici importante pentru reducerea timpului de execuie: convoluia prin separabilitate i convoluia Transformatei Fast Fourier. 2.1. Convoluia Convoluia imaginilor funcioneaz ca o convoluie unidimensional. Imaginea poate fi vzut ca o sum de impulsuri, funcii delta scalate i deplasate. De asemenea, sistemele liniare sunt caracterizate de rspunsul lor la impulsuri. Imaginea rezultat este echivalent cu imaginea iniial combinat cu raspunsul sistemului la impuls. Funcia bidimensional delta, este o imagine compus numai din zerouri, cu excepia unui singur pixel din linia 0, coloana 0, care are valoarea unu. Deocamdat, presupunem c indecii liniilor i coloanelor pot avea att valori pozitive ct i negative, asemntor cu un unu situat n centrul unei mulimi de valori zero. Cnd funcia delta trece printr-un sistem liniar, singurul punct diferit de zero va fi convertit n alte abloane bidimensionale. Singurul lucru care se poate ntmpla unui punct este de a se ntinde, rspunsul impulsului numindu-se in jargon Funcie de Raspndire a Punctului (Point Spread Function). Ochiul uman ofer un bun exemplu acestor concepte. Dup cum este descris i n capitolul anterior, primul nivel al retinei transform imaginea reprezentat ca un ablon de 23 lumin ntr-o imagine reprezentat ca un ablon de impulsuri nervoase. Al doilea nivel al retinei proceseaz aceast imagine neural i o transmite celui de-al treilea nivel, fibrelor care formeaz nervul optic. Presupunnd c acest sistem este liniar, imaginea procesat n retin poate fi determinat de inspectarea imaginii ce apare pe nervul optic. Figura 2.1 evideniaz acest experiment. Figura 2.1. a prezint impulsul ce lovete retina n timp ce figura 2.1. b prezint imaginea ce apare pe nervul optic. Nivelul mijlociu al ochiului transmite unda luminoas, dar produce o zon circular de ntuneric. Ochiul ndeplinete acest lucru printr-un proces numit inhibiie lateral. Dac o celul nervoas din nivelul de mijloc este activat, descrete abilitatea vecinilor si de a deveni activi. Cnd o imagine este privit de ochi, fiecare punct al imaginii contribuie la o versiune scalat i deplasat a acestui rspuns n impuls al imaginii ce apare pe nervul optic. Cu alte cuvinte, imaginea privit este combinat cu PSF pentru a produce imaginea neural transmis creierului. Fig. 2.1. PFS ale ochiului. Fiinele umane i alte animale folosesc vederea pentru a identifica obiectele apropiate. Acest lucru este realizat prin deosebirea unei regiuni din imagine de alta regiune, bazndu-se pe diferenele de lumina i culoare. Cu alte cuvinte, primul pas n recunoaterea unui obiect este identificarea marginilor, discontinuitatea care separ un obiect de fundalul su. Nivelul de mijloc 24 al retinei ajut la realizarea acestei sarcini prin schiarea marginilor din imaginea privit. Figura 2.2. prezint o imagine ce trece de la ntuneric la lumin, producnd o margine neconturat. Fig. 2.2. Benzi Mach. Figura 2.2. a prezint profilul intensitii acestei imagini, ablonul luminozitii ce intr n ochi. Figura 2.2. b prezint profilul luminozitii ce apare pe nervul optic, imaginea transmis creierului. Procesarea din retin prezint marginea dintre zonele luminoase i cele ntunecate mult mai abrupt, susinnd c aceste dou regiuni sunt diferite. Supracreterea rspunsului marginilor creeaz o iluzie optic. n apropierea marginii, regiunea ntunecat apare ca fiind neobinuit de ntunecat, iar regiunea luminat apare ca fiind neobinuit de luminat. Lumina rezultat i fiile de ntuneric se numesc Benzi Mach, dup Ernst Mach (1838 - 1916), un fizician austriac care a descris pentru prima dat acest femomen. n cazul semnalelor unidimensionale, convoluia imaginii poate fi interpretat n dou moduri: la intrare i la ieire. La intrare, fiecare pixel al imaginii contribuie la scalarea i deplasarea versiunii funciei de rspndire a punctului la imaginea rezultat. Privit de la ieire, fiecare pixel din imaginea rezultat este influnat de un grup de pixeli din imaginea original. 25 Pentru semnale unidimensionale, regiunea de influen este rspunsul impusului inversat stnga-dreapta. Pentru semnalele imaginii este PSF inversat stnga-dreapta i sus-jos. De vreme ce majoritatea PSF folosite n DSP sunt simetrice n jurul axelor verticale i orizontale, aceste inversri nu influeneaz i de aceea pot fi ignorate. Fig. 2.3. Funcii comune de Raspndire a Punctului (PSF). Figura 2.3 prezint cele mai des folosite PSF. n figura 2.3. a, cazemata are vrf circular i margini drepte. De exemplu, dac lentilele unei camere foto nu focalizeaz, fiecare 26 punct al imaginii va fi proiectat ntr-un punct circular pe senzorul de imagine ( folosind figura 1.2, considerm efectul mutrii ecranului de protecie mai aproape sau mai departe de lentile). Cu alte cuvinte, cazemata este PSF al unei imagini neclare. Gaussianul prezentat n figura 2.3. b, este PSF al sistemelor de imagini limitate de imperfeciuni aleatoare. Prin urmare, imaginea de la un telescop este neclar din cauza turbulenelor atmosferice, ducnd la transformarea fiecrui punct de lumin ntr-un Gaussian n imaginea final. Senzorii de imagine, ca CCD i retina, sunt de obicei limitate de dispersia de lumin i/sau electroni. Teorema principal de limitare oblig ca o Gaussian neclar s fie cauzat de aceste tipuri de procese aleatoare. Cazemata i Gaussianul sunt folosite n procesarea de imagini ca i Filtrul medie alunectoare ce este folosit pentru semnale unidimensionale. O imagine combinat cu PSF va aprea neclar i va avea margini puin definite, dar va fi mai puin afectat de zgomotul aleator. Acestea se numesc filtre de netezire, prin aciunea lor n domeniul timp, sau filtre trece-jos, pentru felul n care trateaz domeniul frecven. Ptratul PSF, prezentat n figura 2.3. c, poate fi folosit ca un filtru de netezire, dar nu este unul circular simetric. Aceste lucru rezult din neclaritatea diferit pe direcii diagonale, comparativ cu direciile vertical i orizontal. Opusul unui filtru de netezire este intensificarea marginilor sau filtrul trece-sus. Tehnica de inversiune spectral este folosit pentru a interschimba cele dou filtre. Dup cum se poate observa n figura 2.3. d, nucleul filtrului pentru intensificarea marginilor este format din partea negativ a filtrului de netezire, adugnd o funcie delta n centrul su. Procesarea imaginilor ce se desfoar n retin reprezint un exemplu al acestui tip de filtru. Figura 2.3. e, prezint o funcie sinc bidimensional. Procesarea unui semnal unidimensional folosete filtru banda de tip sinc pentru separarea benzilor de frecven. Pentru c imaginile nu conin informaiile codate n domeniul frecven, funcia sinc este rareori folosit ca un nucleu al filtrului de imagini, dei poate fi folosit n cateva probleme teoretice. Aceast funcie poate fi greu de folosit deoarece partea inferioar descrete ncet n amplitudine (1/x), nsemnnd c trebuie tratat ca fiind infinit. Comparativ cu aceasta, partea inferioar a filtrului Gaussian descrete rapid ( 2 x e
) i poate fi trunchiat fr a o modifica.
Toate aceste nuclee ale filtrelor folosesc indeci negativi pentru linii i coloane, permind ca PSF s fie centrat n linie = 0 i coloana = 0. Indecii negativi sunt eliminai n DSP unidimensional, prin deplasarea nucleului filtrului pn cnd toate zerourile ajung la un 27 index pozitiv. Aceast deplasare mut i semnalul rezultat cu un grad egal, care de obicei nu intereseaz. n comparaie cu aceasta, deplasarea dintre imaginea iniial i cea final n general nu este acceptat. Indecii negativi reprezint norma nucleelor filtrelor folosite n procesarea imaginilor. O problem a convoluiei unei imagini este aceea a numrului mare de calcule. De exemplu, cnd o imagine de 512 x 512 pixeli este combinat cu o imagine PSF 64 x 64 pixeli, necesit mai mult de un miliard de multiplicri i adunri. Timpii crescui de execuie poate face aceast tehnic impracticabil. Trei interpretri sunt folosite pentru a mbuntii acest parametru. Prima strategie folosete o mic PSF de 3 x 3 pixeli. Aceasta este ndeplinit prin repetarea prin fiecare eantion al imaginii rezultate, folosind cod optimizat pentru multiplicarea i acumularea celor nou pixeli corespunztori din imaginea iniial. O cantitate surprinztoare de procesare poate fi efectuat numai cu 3 x 3 pixeli, deoarece este suficient de mare pentru a afecta marginile unei imagini. A doua strategie este folosit cnd se dorete o PSF mai mare. Aceasta necesit un nucleu al filtrului care e separabil, o proprietate care permite convoluiei s ndeplineas o serie de operaii unidimensionale. Aceasta strategie poate mbuntii viteza de execuie de sute de ori. A treia strategie este convoluia FFT, folosit n cazul nucleelor mari i are o anumit form. Chiar i n cazul mbuntirii vitezei cu ajutorul FFT, timpul de execuie va fi foarte mare.
2.2. Modificarea marginilor folosind PSF 3x3 Figura 2.4 prezint cateva operaii 3 x 3. Figura 2.4. a, reprezint o imagine capturat cu ajutorul unui scanner cu raze X pentru bagaje folosit n aeroporturi. Cnd aceast imagine este combinat cu funcia delta de 3x3 (un unu nconjurat de zerouri), imaginea ramane neschimbat. Figura 2.4. b, prezint imaginea combinat cu un nucleu de 3 x 3 constnd ntr-o cifr de unu negativ i apte zerouri. Aceasta operaie se numete deplasare i scadere, deoarece o versiune deplasat a imaginii (corespunznd lui -1) este scazut din imaginea iniial (corespunztoare lui 1). Aceast procesare produce o iluzie optic de apropiere sau de deprtare a unor obiecte, realiznd un efect 3D sau n relief. Creierul interpreteaz imaginile ca i cum lumina ar fi 28 deasupra, n forma normal n care lumea o prezint. Dac margimile unui obiect sunt luminoase n vrf i ntunecate la baz, obiectul este perceput ca stapungnd fundalul. Pentru a observa alt efect, se poate ntoarce imaginea invers i obiectele vor strpunge fundalul. Figura 2.4. c, prezint detectarea marginilor PSF i imaginea rezultat. Fiecare margine din imaginea iniial este transformat ntr-un ntuneric limitat i dungi luminoase paralele cu marginea original. Limita acestei imagini poate izola att dungile ntunecate sau luminoase, oferind un algoritm simplu de detectare a marginilor unei imagini.
Fig.2.4. Modificarea marginilor folosind PSF 3x3. 29 O tehnic comun de procesare a imaginii este prezentat n figura 2.4. d: intensificarea marginilor. Aceasta este numit uneori operaia de ascuire. n figura 2.4. a, obiectele au un contrast bun (nivel apropiat de ntuneric i lumin) dar margini neclare. n imaginea din figura 2.4. c, obiectele nu au contrast, dar margini foarte ascuite. Strategia este de a multiplica imaginea cu margini vizibile cu o constant k, i de a o aduga imaginii cu un bun contrast. Aceste operaii fiind echivalente cu imaginea iniial combinat cu PSF de 3 x 3 prezentat n figura 2.4. d. Dac avem k = 0, PSF devine o funcie delta i imaginea rmne neschimbat. Dac mrim valoarea lui k, imaginea prezint o definire mai bun a marginilor. n cazul imaginii din figura 2.4. d, valoarea k = 2 au fost folosite: dou pri din imaginea c i o parte imaginea a. Aceast operaie mimeaz abilitatea ochiului de a ascui marginile, obiectele fiind mai uor de separat de fundal. Cele patru operaii prezentate n figura 2.4 au fost realizate practic n capitolul 5 al lucrrii. Combinarea cu oricare din funciile de mai sus poate duce la apariia unor valori negative de pixeli n imaginea final. Chiar dac programul poate folosi valori negative pentru pixeli, imaginea afiat nu poate. Cea mai comun metod de rezolvare este adaugarea unui offset fiecarui pixel. O alternativ este trunchierea valorilor ce depesc intervalul. 2.3. Convoluia prin separare Aceasta este o tehnic pentru convoluie rapid, att timp ct PSF este separabil. Un PSF este separabil dac poate fi divizat n dou semnale bidimensionale: o proiecie vertical i una orizontal. Figura 2.5 prezint un exemplu de imagini separabile, patratul PSF. n mod specific, valoarea fiecrui pixel din imagine este egal cu punctul corespunztor proieciei orizontale nmulit cu punctul corespunztor proieciei verticale. Din punct de vedere matematic, poate fi exprimat n felul urmtor: x[r,c] = vert[r] * oriz[c] , (2.1) unde: x[r,c] reprezint o imagine bidimensional, vert[r] i oriz[c] sunt proieciile unidimensionale. 30 Fig. 2.6. Crearea unei PSF separabile. n mod evident, multe imagini nu ndeplinesc aceste cerine. De exemple, cazemata nu este separabil. Exist un numr infinit de imagini separate. Acest lucru poate fi privit ca generarea arbitrar a proieciilor verticale i orizontale, gsind astfel imaginea care le corespunde. De exemplu, figura 2.6 ilustraz aceste profile care sunt dublu exponeniale. Imaginea care corespunde acestora poate fi aflat din ecuaia 2.1. Cnd este afiat, imaginea apare ca un diamant ascuit care descrete spre zero, cu ct distana de la origine crete. 31 n cazul celor mai multe probleme, PSF ideal este simetric circular, asemntor cazematei. Cu toate acestea imaginile digitale sunt de obicei stocate i procesate n forme ortogonale, formate din linii coloane, dorindu-se modificarea imaginii n toate direciile. Fig. 2.7. Separarea unui Gaussian. Figura 2.7 ilustraz c proieciile unei imagini Gaussiene bidimensionale sunt de asemenea Gaussiene. Imaginea i proieciile au aceeai deviaie standard. Pentru a mbina o imagine cu nucleul unui filtru separabil, se mbin fiecare linie din imagine cu fiecare proiecie orizontal, rezultnd o imagine intermediar, apoi, se combin fiecare coloan a imaginii imtermediare cu proiecia vertical a PSF. Imaginea rezultat este identic cu mbinarea direct a imaginii iniiale cu nucleul unui filtru. Dac se mbin mai nti coloanele i apoi liniile, se obine acelai rezultat. mbinarea unei imagini NxN cu nucleul unui filtru necesit un timp proporional cu N 2 M 2 . Cu alte cuvinte, fiecare pixel din imaginea final depinde de toi pixelii nucleului. n comparaie, mbinarea prin separare necesit un timp proporional cu N 2 M. n cazul nucleelor de sute de pixeli, tehnica va reduce timpul de execuie cu un factor de cteva sute. 32 Lucrurile se pot mbuntii dac se dorete folosirea unui PSF ortogonal (Fig. 2.5) sau o PSF exponenial dubl (Fig. 2.6), calculele fiind mult mai eficiente. Acest lucru se ntmpla deoarece convoluii unidimensionale sunt filtre medii alunectoare, respectiv filtre singulare bidirecionale. Ambele filtre pot fi evideniate folosind recursivitatea. Acest fapt duce la un timp de convoluie de N 2 , complet independent de dimensiunea PSF. Cu alte cuvinte, o imagine poate fi combinat cu cte PSF este nevoie, cu doar cteva operaii per pixel. De exemplu, o convoluie a unei imagini de 512 x 512 necesit doar cteva sute de milisecunde pe un calculator. 2.4. Analiza Fourier a imaginilor Analiza Fourier este folosit n procesarea imaginilor asemntor cu semnalele unidimensioanale. Totui, imaginile nu au informaiile codificate n domeniul frecven, fcnd tehnica mai puin folosit. De exemplu, cnd transformata Fourier este preluat dintr-un semnal audio, formele de und ale domeniului timp sunt convertite ntr-un spectru de frecven usor de neles. n comparaie, obinerea unei transformate Fourier dintr-o imagine convertete informaia corect n domeniul spaial ntr-o form aglomerat. n domeniul frecven nu se folosete proiectarea filtrelor. Principala caracteristic a imaginii este marginea, linia ce separ un obiect sau regiune de un alt obiect sau regiune. De vreme ce o margine este compus dintr-un numr mare de componente de frecven, ncercarea de modificare a imaginii prin manipularea unui spectru de frecvene nu este avantajoas. Filtrele de imagine sunt proiectate n domeniul spaiu, unde informaia este codificat n forma sa simpl. Analiza imaginii Fourier are anumite proprieti utile. De exemplu, convoluia in domeniul spaial corespunde multiplicrii din domeniul frecven. Acest lucru este important deoarece multiplicarea este o operaie matematic mai simpl dect convoluia. n cazul semnalelor unidimensionale, aceast proprietate permite convoluia transformatei Fast Fourier i diferite tehnici inverse. O alt proprietate important n domeniul frecven este teorema Fourier (Fourier Slice Theoreme), relaia dintre o imagine i proieciile sale (imaginea vzut de pe marginile sale). Aceasta reprezint bazele tomografiei computerizate, o tehnic de fotografiere folosind raze X, folosit n medicin i industrie. Spectrul de frecven al unei imagini poate fi calculat n diferite moduri, dar metoda transformatei Fast Fourier prezentat este singura cu aplicare practic. Imaginea original trebuie 33 sa fie compus din N linii i N coloane, unde N reprezint o putere a lui 2. Dac dimensiunea imaginii iniiale nu este o putere a lui 2, atunci se adaug pixeli cu valoarea 0 pentru a se obine o dimensiune corect. Numim vectorul bidimensional care reine imaginea Vector Real. n plus, se va folosi nc un vector de aceeai dimensiune ce se va numi Vector Imaginar. Reeta pentru calcularea transformatei Fourier a unei imagini este foarte simpl: se extrage transformata Fast Fourier unidimensional a fiecarei linii, urmat de transformata Fast Fourier a fiecrei coloane. Mai exact, se incepe extragndu-se trasformata Fast Fourier a valorilor primilor N pixeli n linia 0 a vectorului Real. Partea real a rezultatului transformatei Fast Fourier este introdus napoi n linia 0 a vectorului Real, n timp ce partea imaginear a rezultatului este introdus n linia 0 a vectorului Imaginar. Dup repetarea acestei proceduri pentru fiecare linie de la 1 la N-1, att vectorul Real, ct i vectorul Imaginar conin imaginea intermediar. La pasul urmator, procedura se repet pentru fiecare coloan a datelor intermediare. Se iau cele N valori ale pixelilor din coloana 0 a vectorului Real i cele N valori din coloana 0 a vectorului Imaginar i se calculeaz transformata Fast Fourier. Partea real a rezultatului trasformatei Fast Fourier se introduce napoi n coloana 0 a vectorului Imaginar. Dup ce repetm pentru coloanele de la 1 la N-1, fiecare vector a fost suprascris cu spectrul de frecven al imaginii. De vreme ce direciile verticale i orizontale sunt echivalente ntr-o imagine, acest algoritm poate fi evideniat i prin transformarea coloanelor i a liniilor. Indiferent de oridinea folosit, rezultatul este acelai. Din modul n care trasformata Fast Fourier reine datele, amplitudinile componentelor de frecven joas se vor situa n colurile spectrului bidimensional, n timp ce frecvenele nalte vor fi n centru. Transformata Fourier invers a unei imagini este calculat aplicnd transformata Fast Fouriei invers fiecrei linii, urmat de tranformata Fast Fourier invers pentru fiecare coloan. Figura 2.9 prezint un exemplu de transformat Fourier a unei imagini. Figura 2.9. a reprezint imaginea iniial, o vedere la microscop a suprafeei unui circuit integrat. Figura 2.9. b prezint partea imaginar i real a spectrului de frecven a imaginii. Cum domeniul frecven poate conine valori negative ale pixelilor, valorile greyscale ale imaginii sunt interpretate astfel nct valorile negative reprezint ntuneric, zero reprezint gri i valorile pozitive reprezint lumin. Componentele cu frecven sczut prezente n imagine sunt mai mari n amplitudine dect componentele cu frecven crescut. Acest lucru justific prezena pixelilor foarte 34 ntunecai i foarte luminai n cele patru coluri ale figurii 2.9. b. n plus, spectrul imaginilor obinuite nu are o ordine precis, aprnd aleator. a. Imagine
b. Spectrul frecven afiat n form dreptunghiular c. Spectrul frecven afiat n form polar d. Spectrul frecven afiat n form polar cu spectrul deplasat pentru ca punctul zero sa fie n centru
Fig. 2.9. Spectrul de frecven a unei imagini. 35 Dup cum prezint figura 2.9. c, forma polar a spectrului unei imagini este uor de neles. Frecvenele sczute n marime au valori mari pozitive (colurile albe), n timp ce frecvenele mari au valori mici pozitive (centrul negru). Faza arat la fel n cazul frecvenei sczute sau ridicate, funcionnd aleator ntre i . Figura 2.9. d prezint un mod alternativ de afiare a spectrului imaginii. De vreme ce domeniul spaial conine semnal discret, vectorii domeniului frecven sunt dublate de un numr infinit de ori la stnga, dreapta, n sus i n jos. De pild, n cazul unui perete cu dale, fiecare dal avnd o dimensiune de NxN ca n figura 2.9. c. Figura 2.9. d reprezint, de asemenea, o seciune NxN din acelai perete, suprapunerea a patru dale; partea central a imaginii reprezint mbinarea celor patru dale. Cu alte cuvinte, imaginea din figura 2.9. c este echivalent cu cea din figura 2.9. d, doar c a fost deplasat orizontal cu N/2 pixeli i cu N/2 pixeli vertical n spectrul periodic al frecvenei. Aceast modificare aduce pixelii luminai n cele patru coluri ale figiurii 2.9. c i mpreun n centrul figurii 2.9. d. Figura 2.10 prezint cum este organizat un domeniu bidimensional de frecven (frecvenele sczute plasate n coluri). Linia N/2 i coloana N/2 mpart spectrul de frecven n patru cadrane. Pentru partea real i dimensiune, cadranul din dreapta-sus reprezint imaginea n oglind a cadranului din stnga-jos, n timp ce colul din stnga-sus este imaginea n oglind a cadranului din dreapta-sus. Aceast simetrie este prezent i n partea imaginar i n faz, cu precizarea c pixelii din oglind sunt de semn contrar. Cu alte cuvinte, fiecare punct din spectrul de frecven are un punct pereche n partea amplasat simetric. Unul dintre puncte reprezint frecvena pozitiv, iar celalalt corespunde frecvenei negative. Aceast simetrie poate fi exprimat astfel: ReX[r,c] = ReX [N-r,N-c] ImX[r,c] = -ImX [N-r,N-c] (2.2) Aceste ecuaii iau n considerare faptul c spectrul frecvenei este periodic, repetndu-se la fiecare N eantion cu indeci de la 0 la N-1. Cu alte cuvinte, X[r,N] este echivalent cu X[r,0], X[N,c] echivalent cu X[0,c] i X[N,N] echivalent cu X[0,0]. Aceste puncte sunt situate n punctele [0,0], [0,N/2], [N/2,0] i [N/2,N/2]. Fiecare pereche din domeniul frecven corespunde unei sinusoide n domeniul spaiu. Dup cum este prezentat i n figura 2.10. a, valoarea [0,0] corespunde sinusoidei de frecven 0 din domeniul spaial, componenta discret a imaginii. 36
Fig. 2.10. Sinusoide bidimensionale. 37 Exist reprezentat doar un singur punct, deoarece este propria sa pereche. n imaginile din figura 2.10.b, c i d sunt prezentate alte perechi de puncte ce corespund sinusoidelor bidimensionale care se prezint sub forma unor valuri. Sinusoidele unidimensionale au o frecven, o faz i o amplitudine. Sinusoidele bidimensionale au i direcie. Frecvena i direcia fiecrei sinusoide este determinat de localizarea perechii de puncte n domeniul frecven. Se traseaz o linie de la fiecare punct n punctul cu frecvena zero din colul exterior cadranului n care este situat punctul, [0,0], [0,N/2], [N/2,0] i [N/2,N/2] (lucru indicat de cercurile din figur). Direcia acestor linii determin direcia sinusoidei spaiale, n timp ce lungimea este proporional cu frecvena undei. Acest lucru duce la prezena frecvenelor sczute n apropierea colurilor i a frecvenelor mari n apropierea centrului. Cnd spectrul este afiat avnd frecvena zero n centru (Fig. 2.9. d), linia de la fiecare pereche de puncte este trasat pn la valoarea digital din centrul imaginii [N/2, N/2]. Aceast organizare este una comod, deoarece toate liniile sunt desenate n acelai punct. Alt avantaj al plasarii punctului zero n centru este suprapunerea sa peste spectrul frecvenei continue. Cnd domeniul spaial este continuu, domeniul frecven este aperiodic. Aceasta plaseaz frecvena zero n centru celelalte puncte cu frecvene mai mari pn la infinit fiind dispuse n celelalte direcii. Cu toate acestea, majoritatea calculelor sunt evideniate cu ajutorul unor vectori care rein datele n alt format ( frecvenele sczute n coluri). Chiar i n cazul trasformatei Fast Fourier, timpul necesar calculrii transformatei Fourier este extrem de mare. De exemplu, transformata Fourier a unei imagini de 512 x 512 necesit cteva minute pe un PC, acesta fiind de aproximativ 10.000 ori mai ncet dect timpul necesar unei procesri de imagini, 30 cadre pe secund. Acest timp de execuie rezult din cantitatea mare de informaie coninut n imagine. n comparaie sunt tot atia pixeli ntr-o imagine cte cuvinte sunt ntr-o carte. Procesarea de imagini prin intermediul domeniului frecven va deveni mai popular cu ct calculatoarele vor deveni mai rapide. 2.5. Convoluia transformatei Fast Fourier Chiar dac transformata Fourier nu este rapid, reprezint cea mai rapid modalitate de combinare a unei imaginii cu un mare nucleu al unui filtru. De exemplu, combinarea unei imaginii 512 x 512 cu un PSF de 50 x 50 este de 20 de ori mai rapid folosind transformata Fast Fourier comparativ cu convoluia convenional. 38 Convoluia transformatei Fast Fourier folosete principiul c multiplicarea n domeniul frecven corespunde convoluiei n domeniul timp. Semnalul de intrare este transformat n domeniul frecven folosind transformata Fourier discret (DFT), multiplicat cu rspunsul n frecven al filtrului, i apoi fiind transformat napoi n domeniul timp folosind inversa DFT. Aceast tehnic fundamental se cunotea i n zilele lui Fourier, dei nu era foarte folosit, acest lucru datorndu-se faptului c timpul necesar calculrii DFT este mai mare dect timpul necesar calculrii convoluiei. Acest lucru s-a schimbat n anul 1965, odat cu apariia tranformatei Fast Fourier (FFT). Folosind algoritmul transformatei Fast Fourier pentru calcularea transformatei Fourier discrete (DFT), convoluia prin domeniul frecven poate fi mai rapid dect convoluia direct a semnalelor n domeniul timp. Rezultatul final este acelai, numai numrul de calcule s-a modificat prin folosirea algoritmului mai eficient. Din acest motiv, convoluia FFT se numete i Convoluie High-Speed. Convoluia transformatei Fast Fourier folosete metoda adunrii cu suprapunere prezentat n figura 2.11, numai ordinea de convertire a segmentelor de intrare n segmente de ieire este schimbat. Figura 2.12 prezint un exemplu de convertire folosind convoluia FFT. Pentru nceput, rspunsul n frecven al filtrului este aflat obinnd DFT al nucleului, folosind FFT. Bunoar, figura 2.12. a prezint un exemplu de nucleu, un filtru trece-band filtru banda de tip sinc. FFT l convertete ntr-o parte real i una imaginar a rspunsului n frecven prezentat n figura 2.12. b i c. Aceste semnale din domeniul frecven nu seamn cu un filtru trece-band deoarece au o form dreptunghiular. Forma polar este folosit de oameni pentru a nelege mai bine domeniul frecven, n timp ce forma dreptunghiular este folosit pentru calculele matematice. Parile imaginar i real sunt stocate n calculator pentru a le folosi la calcularea fiecrui segment. Figura 2.12. d prezint segmentul de intrare ce urmeaz s fie procesat. Transformata Fast Fourier este folosit pentru a gsi spectrul de frecven, prezentat n figura 2.12. e i f. Spectrul frecven al segmentului de ieire, figura 2.12. h i i sunt gsite multiplicnd rspunsul n frecven a filtrului, figura 2.12. b i c, din spectrul segmentului de intrare, figura 2.12. e i f. Inversa FFT este folosit pentru a gsii segmentul de ieire, figura 2.12. g, fin spectrul de frecven, figura 2.12. h i i. Este important s se poat recunoate c acest segment de ieire este acelai cu cel obinut prin convoluia direct dintre segmentului de intrare, figura 2.12. d, i nucleul filtrului, figura 2.12. a. 39
Fig. 2.11. Metoda adunrii prin suprapunere. 40
Fig. 2.12. Convoluia FFT. FFT trebuie s fie destul de mare, astfel nct convoluia circlar s nu aib loc, adic segmentul de ieire figura 2.12. g s aib aceeai lungime ca i FFT. De pild, n exemplul din figura 2.12., nucleul filtrului conine 129 puncte i fiecare segment conine 128 puncte, obinndu-se un segment de ieire de 256 puncte. Acesta necesit folosirea a 256 puncte FFT. Nucleul filtrului figura 2.12. a, trebuie completat cu 127 de zerouri pentru a-l aduce la dimensiunea total de 256 puncte. n acelai mod, fiecare segment de intrare figura 2.12. d, trebuie completat cu 128 de zerouri. Ca un alt exemplu, se dorete combinarea unui semnal foarte lung cu un nucleu de filtru cu 600 de eantioane. O alternativ ar fi folosirea a 425 puncte i a 1024 puncte FFT. O a doua alternativ ar fi folosirea segmentelor de 1449 puncte i 2048 puncte FFT. 41 CAPITOLUL 3 TEHNICILE IMAGINILOR SPECIALE Acest capitol prezint cteva aspecte ale procesrii de imagini. Pentru nceput se vor caracteriza modurile de rezoluie spaial, acest lucru descriind dimensiunea minim a unui obiect pentru ca acesta s fie vizibil ntr-o imagine. Mai apoi, se va examina raportul semnal- zgomot, explicnd ct de estompat poate fi un obiect astfel nct s fie detectat. Al treilea aspect va introduce tehnicile morfologice, acestea fiind operaii neliniare folosite pentru manipularea imaginilor binare. 3.1. Rezoluia spaial Presupunem c dorim s comparm dou sisteme de imagini, cu scopul de a determina care are cea mai bun rezoluie spaial. Cu alte cuvinte, se dorete gsirea sistemului care poate detecta cel mai mic obiect. Pentru simplificarea lucrurilor, se va considera c un singur numr caracterizeaz un sistem. Acest lucru permite o comparare direct pe care s se bazeze deciziile proiectrii. Fig. 3.1. FWHM vs MTF. 42 Din nefericire, un singur parametru nu este ntotdeauna suficient pentru a caracteriza aspectele subtile ale imaginilor. Acest lucru este mai complicat deoarece rezoluia spaial este limitat de dou efecte distincte, dar interdependente: spaierea de prob (sample spacing) i dimensiunea aperturii de eantionare (sampling aperture size). Aceast seciune prezint dou teme importante i anume cum se poate folosi un singur parametru pentru a caracteriza rezoluia spaial i relaia dintre spaierea de prob i dimensiunea aperturii de eantionare. Figura 3.1. a prezint trei profile ale unor PSF circular simetrice: cazemata, Gaussiana i exponentiala. Acestea sunt reprezentative pentru PSF prezente n sistemele de imagini. Dup cum a fost descris n capitolul anterior, cazemata poate aprea din cauza focalizrii improprii a unui sistem de lentile. Gaussiana se formeaz n momentul n care erori aleatorii sunt combinate. Un PSF exponenial este generat cnd electronii sau cnd razele X lovesc un strat d fosfor i sunt convertite n lumin. Acest lucru este folosit n detectoarele de radiaii, amplificatoare pentru vederea nocturn i display-uri de tip CRT. PSF conine informaii complete despre rezoluia spaial. Pentru a exprima rezoluia spaial printr-un singur numr, putem ignora forma PSF i s masurm doar diametrul. Cel mai folosit mod de specificare a acestuia este valoarea FWHM (Laimea complet la jumtatea maxim (Full-Width-at-Half-Maximum)). De exemplu, toate PSF din figura 3.1. a au valoarea FWHM de o unitate. Din nefericire, aceast metod are dou neajunsuri. Primul este acela c nu corespunde cu alte msuri ale rezoluiei spaiale, inclusiv raionamentul subiectiv al observatorilor care privesc imaginea. Al doilea este acela c este de obicei foarte dificil s se msoare direct PSF. Imaginea alimenteaz un impuls dintr-un sistem de imagini; obinerea unui punct alb dintr-o imagine cu fundal negru. Prin definiie, imaginea obinut va fi PSF pentru sistem. Problema este c acest PSF msurat va conine doar caiva pixeli cu un contrast scazut. De exemplu, impulsul imaginii este un vector de 512 x 512 de zerouri, cu excepia unui pixel care are valoarea 255. Comparnd acest vector cu o imagine normal unde toi pixelii 512 x 512 au o valoare medie de 128, semnalul va fi de 100.000 de ori mai slab dect semnalul unei imagini normale. O tem ntlnit pe tot parcursul lucrrii este aceea c semnalele trebuie nelese n domeniul n care informaia este codificat. Prin urmare, semnalele audio vor fi prelucrate n domeniul frecven, n timp ce semnalele din imagini vor fi prelucrate n domeniul spaial. Cu toate acestea, o metod de msurare a rezoluiei unei imagini este prin observarea rspunsului n frecven. 43 Prin aplicarea transformatei Fourier bidimensionale unui PSF se obine un rspuns n frecven bidimensional. Dac PSF este circular simetric, rspunsul n frecven va fi deasemenea circular simetric. n acest caz, informaiile complete despre rspunsul n frecven se gsete n profil, dup calcularea domeniului frecven prin metoda FFT, fiind nevoie doar de coloanele 0 pn la N/2 din linia 0. Afiarea rspunsului n frecven se numete MTF (Modulation Transfer Function). Figura 3.1. b prezint MTF pentru cele trei PSF de la punctul (a). n cazurile n care PSF nu este circular simetric, ntreg rspunsul n frecven bidimensional conine informaia. Cu toate c, e necesar s cunoatem curbele MTF pe vertical i orizontal (coloanele 0, N/2 din linia 0 i liniile 0, N/2 din coloana 0). Fig. 3.2. Aparat de msur cu perechi de linii. Figura 3.2 prezint un aparat de msur cu perechi de linii, un dispozitiv folosit pentru msurarea rezoluiei cu ajutorul MTF. Aceste aparate pot avea diferte forme n funcie de aplicaia la care sunt folosite. De exemplu, ablonul alb i cel negru prezentate n figur pot fi folosite la testarea camerelor video. Pentru un sistem de raze X, nervurile sunt fcute din granit ntre care se gasete un material transparent. Principala caracteristic este aceea c liniile negre i albe prezint o spaiere ctre un capt. Cnd o imagine este preluat de la acest aparat de msur, liniile situate n apropiere unui capt vor fi suprapuse i nceoate, n timp ce la cellalt capt, 44 liniile vor fi distincte. Un observator ce privete imaginea citete rezoluia corespunztoare scrii calibrate. Modul n care nervurile sunt suprapuse i nceoate este important pentru nelegerea limitrilor acestei msurtori. Figurile 3.2. a i b prezint exemplele profilurilor la frecvene spaiale mici, respectiv mari. Acest lucru este reprezentat prin curba MTF pe care o reprezint figura 3.1. b, frecvenele spaiale crescute reduc amplitudinea. Nervurile individuale dintr-o imagine se pot deosebi att timp ct amplitudinea este mai mare decat un procent de 3 pn la 10% din nlimea original. Lucru datorat abilitii ochiului de a deosebi diferena de contrast dintre punctele minime i maxime n prezena unor zgomote. Avantajul puternic al aparatului de msur este simplitatea i viteza de lucru. Cel mai mare dezavantaj este c se bazeaz pe ochiul uman i prezint o component subiectiv. Dei curba MTF este msurat, cea mai bun metod de a exprima rezoluia sistemului este menionarea frecvenei unde MTF este redus la 3, 5 sau 10 %. Se observ c MTF este definit ca o sinusoid, n timp ce aparatul de msur folosete un semnal dreptunghiular, nervurile fiind regiuni uniform ntunecate separate de regiuni uniforme de lumin. La frecvene spaiale mari toate componentele, cu excepia celei fundamentale a semnalului dreptunghiular, dispar. Acest lucru face ca modulaia sa apar ca o sinusoid, ca n figura 3.2. a. La frecvenae sczute, figura 3.2. b, semnalul apare dreptunghiular. Semnalul sinusoidal fundamental coninut n semnalul dreptunghiular este de 4/ = 1,27 ori amplitudinea semnalului dreptunghiular. De vreme ce semnalele dreptunghiulare i cele sinusoidale sunt folosite interschimbabil pentru a msura MTF, n locul termenului ciclu pentru imagini se folosete termenul pereche de linii (o linie intunecat lng o linie luminoas). De exemplu, la o frecven spaial se poate face referire ca 25 de perechi pe milimetru, n loc de 25 cicluri pe milimetru. n figura 3.3, funcia de rspndire a liniei (LSF) este rspunsul sistemului la o linie subire ce traverseaz imaginea. Similar, rspunsul marginii este reprezentat de rspunsul sistemului la o margine. De vreme ce o linie reprezint derivata unei margini, LSF reprezint derivata rspunsului marginii. Exist nenumrate avantaje n folosirea rspunsului marginii pentru msurarea rezoluiei. n primul rnd, msurarea are aceeai form ca i informaia codat a imaginii. De altfel, motivul principal al cunoterii rezoluiei unui sistem este nelegerea imaginiilor neclare dintr-o imagine. 45 Al doilea avantaj l reprezint simplitatea msurrii folosind rspunsul marginilor, deoarece acestea sunt uor de generat n imagini. n caz de nevoie, LSF poate fi aflat prin calcularea primei diferene a rspunsului marginii. Fig. 3.3. LSF i Rspunsul marginilor. Fig. 3.4. Rspunsul marginilor i MTF. 46 Al treilea avantaj n reprezint forma comun a rspunsului marginilor, chiar dac ele pot proveni din PSF-uri diferite. Acest lucru este reprezentat n figura 3.4. a, unde sunt prezentate rspunsurile marginilor pentru un PSF cazemat, Gaussian i exponenial. De vreme ce formele sunt similare, un procent de 10% pn la 90% din distan reprezint un excelent parametru de msurare a rezoluiei. Al patrulea avantaj este acela al determinrii directe a MTF prin folosirea FFT unidimensional al LSF. Figura 3.4. b prezint MTF corespunztor rspunsurilor marginilor din figura 3.4. a. Cu alte cuvinte, curbele din figura 3.4. a sunt transformate n curbele din figura 3.4. b prin aplicarea primei diferene (pentru determinarea LSF) i apoi pentru obinerea FFT. Al cincilea avantaj este acela c MTF-ul i rspunsul marginilor au curbe similare, dup cum este prezentat n figura 3.4. a i b. Acest lucru permite uurarea convertirii dintre cele dou msurtori. Figura 3.5 ilustraz relaia matematic dintre PSF i LSF. Figura 3.5. a prezint un PSF cazemat, o suprafa circular de valoare 1, afiat ca fiind alb, ncercuit de o regiune cu zero- uri, afiat gri. Profilul PSF va fi un puls dreptunghiular. Figura 3.5. b prezint LSF-ul corespunztor PSF-ului. Fig. 3.5. Relaia dintre PSF i LSF. Se poate observa c LSF-ul este matematic egal cu profilul integrat al PSF-ului. Acesta se obine prin rotirea imaginii n cteva direcii dup cum arat sgeile. Fiecare valoare din profilul integrat este suma valorilor pixelului de-a lungul razei corespunztoare. 47 n exemplul n care razele sunt verticale, fiecare punct al profilului integrat este obinut prin adunarea tuturor pixelilor de pe fiecare coloan. Acest lucru corespunde LSF-ului unei linii verticale din imagine. LSF-ul liniilor orizontale din imagine este obinut prin adunarea valorilor pixelilor de pe fiecare linie. Pentru imagini continue aceste concepte se pstreaz, dar sumele sunt nlocuite de integrale. Dup cum se poate observa n exemplu, LSF-ul poate fi calculat direct din PSF, chiar dac PSF-ul nu poate fi calculat ntotdeauna din LSF. Acest lucru se datoreaz informaiei, despre rezoluia spaial n toate direciile, coninute de PSF, n timp ce LSF-ul este limitat la o singur direcie. Un sistem are doar un PSF, i un numr infinit de LSF-uri pentru fiecare unghi. 3.2. Spaierea eantionului i apertura eantionrii Figura 3.6 prezint dou exemple extreme de eantionare, pe care le vom numi detector perfect i detector estompat. Presupunem ca figura 3.6 a este o suprafa care detecteaz imaginile, ca un CCD. Lumina ce lovete interiorul unui pixel ptrat va contribui doar la valoarea pixelului. Acest lucru este prezentat n figur 3.6 prin apertura eantionrii ce umple exact unul dintre pixelii ptrai. Aceasta este o situaie optimal pentru un detector de imagini, doarece orice lumin este detectat i nu exist nici o suprapunere sau diafonica dintre pixelii adiaceni. Cu alte cuvinte, apertura eantionrii corespunde spaierii eantionului. Un exemplu alternativ este prezentat n figura 3.6. e. Apertura de eantionare este considerabil mai mare dect spaierea eantionului i urmeaz o distribuie Gaussian. Cu alte cuvinte, fiecare pixel din detector primete o contribuie de la lumina care lovete detectorul n regiunea ce nconjoar pixelul. Din punct de vedere al datelor de intrare, un fascicul ngust de raze ce lovete detectorul va contribui la valoarea unor pixeli vecini, potrivit distribuiei Gaussiene. n continuare vom observa rspunsul marginilor celor dou exemple. Indicatoarele din fiecare graf indic valorile actuale ale pixelilor din imagine, n timp ce liniile conectate prezint curbele fundamentale ce sunt eantionate. Un concept important este acela al formei acestei curbe fundamentale, form determinat doar de apertura de eantionare. nseamn c rezoluia din imaginea final poate fi limitat n dou moduri. n primul rnd, curba fundamental are o rezoluie sczut, rezultat din apertura de eantionare prea mare. n al doilea rnd, spaierea eantionului poate fi prea mare, rezultnd astfel detaliile pierdute printre eantioane. 48 Fig. 3.6. Exemple eantionare. 49 Curba MTF prezentat n figura 3.6. d arat c ambele procese limiteaz rezoluia sistemului. Scderea curbei frecvenei nalte reprezint pierderea de informaie datorat aperturii de eantionare. De vreme ce curba MTF nu a sczut la zero nainte de a avea frecvena 0,5, se pierde informaie n timpul eantionrii, rezultat al spaierii finite al eantionului. Toate aceste concepte se pot reduc la o singur regul practic. Se consider un sistem cu 10 % - 90 % din distana rspunsului marginilor de 1 mm. Dac spaierea eantionului este mai mare de 1mm, sistemul va fi limitat de aceast spaiere. Dac spaierea este mai mic de 0,33 mm (mai mult de 3 eantioane de-a lungul marginii), rezoluia va fi limitat de apertura de eantionare. Cnd un sistem are ntre unu i trei eantioane pe fiecare margine, acesta va fi limitat de ambii factori. 3.3. Raportul semnal-zgomot Un obiect dintr-o imagine este vizibil deoarece are o luminozitate diferit de cea mprejurimilor. Contrastul obiectului trebuie s depeasc zgomotul imaginii. Acesta poate fi mprit n dou categorii: limitri ale ochiului i limitri ale imformaiei. Figura 3.7 prezint un experiment de msurare a abilitii ochiului de a detecta semnalele slabe. n funcie de condiiile de observare, ochiul uman poate detecta un contrast minim de 0,5 % pn la 5 %. Cu alte cuvinte, fiinele umane pot deosebi ntre 20 i 200 nuane de gri ntre alb i negru. Numrul depinde de mai muli factori, cum ar fi luminozitatea luminrii ambientale, de distana dintre cele dou regiuni comparate i de felul n care se formeaz imaginea grayscale. Fig. 3.7. Detecia contrastului. Transformata greyscale prezentat n subcapitolul 1.4 poate fi folosit pentru a mri contrastul intervalului selectat al valorilor pixelilor, oferind un instrument valoros pentru 50 depirea limitrii ochiului uman. Contrastul unui nivel de luminozitate este crescut, prin reducerea contrastului altui nivel de luminozitate, cu toate c, acest lucru este posibil cnd contrastul unui obiect nu se pierde n zgomotul aleator al imaginii. Fig. 3.8. SNR minim detectabil. Figura 3.8 prezint o imagine ce conine trei ptrate cu contraste de 5 %, 10 % respectiv 20 %. Fundalul conine zgomot aleator distribuit normal cu o deviaie standard de 10 % din contrast. SNR este definit ca fiind contrastul divizat de deviaia standard a zgomotului, astfel cele trei ptrate au pentru SNR valorile 0,5, 1,0, respectiv 2,0. Probleme apar cnd SNR-ul scade sub 1,0. Valoarea exact a SNR-ului minim detectabil depinde de dimensiunea obiectului, cu ct este obiectul mai mare cu att este mai uor de detectat. Considerm imaginea din figura 3.8 liniarizat cu un nucleu de filtru ptrat de 3 x 3. Aceast liniarizare nu modific contrastul, dar reduce zgomotul cu un factor de 3 (rdcina ptrat a numrului de pixeli din nucleu). De vreme ce SNR-ul este triplat, obiectele cu un contrast slab pot fi observate. Capacitatea de detectare a unui obiect este proporional cu rdcina ptrat a ariei. Dac diametrul unui obiect este dublat, atunci se poate detecta de dou ori mai mult zgomot. Cele trei profile din figura 3.8 ilustreaz cum detecteaz fiinele umane obiectele dintr-un mediu turbulent. 51 Fig. 3.9. Imagine cu zgomot. Zgomotul aleator din imagini se prezint sub dou forme. Primul tip, prezent n figura 3.9. a, are o amplitudine constant, cu alte cuvinte, regiunile ntunecate i cele luminoase sunt egale din punct de vedere al turbulenelor. n comparaie, figura 3.9. b prezint zgomotul ce crete odat cu nivelul semnalului, rezultnd nite arii luminoase mai afectate de zgomot dect cele ntunecate. Ambele surse de zgomot sunt prezente n majoritatea imaginilor, dar una dintre cele dou este mai dominant. De exemplu, zgomotul descrete odata cu descreterea nivelului semnalului pn cnd ntlnete un nivel de zgomot cu amplitudine constant. O surs obinuit de zgomot cu amplitudine constant este preamplificatorul video. Toate circuitele analogice produc zgomot. Zgomotul produs de preamplificator provine din micarea aleatoare a electronilor din tranzistoare. Acest lucru face ca nivelul zgomotului s depind de modul de proiectare al electronicelor, i nu de nivelul de semnal ce este amplificat. Zgomotul ce crete odat cu nivelul semnalului apare cnd imaginea a fost reprezentat de un numr mic de particule individuale. De exemplu, acesta poate fi din razele X ce trec printr- un pacient sau din protonii de lumin ce intr n camer. Legile matematice ce guverneaz aceste variaii se numesc statistici Poisson. Se presupune c un CCD este iluminat uniform astfel nct o 52 medie de 10,000 electroni sunt generai n fiecare sond. Prin schimbarea curburii cteva sonde vor avea mai muli electroni, n timp ce altele vor avea mai puini. Pentru a fi mai exaci, numrul de electroni va fi distribuit normal cu o medie de 10,000, cu cteva deviaii standard care descriu ct variaie este de la o sond la alta. O caracteristic principal a statisticilor Poisson este aceea c deviaia standard este egal cu rdcina ptrat a numrului de particule individuale. Dac avem N particule n fiecare pixel, media este egal cu N i deviaia standard este N . Acest lucru face ca raportul semnal zgomot s fie de N N sau doar N . Sub form de ecuaii statisticile Poisson sunt: (3.1) unde este media, este deviaia standard, N este numrul de particule din fircare pixel, SNR este raportul semnal-zgomot. n exemplu cu CCD considerat, deviaia standard este 100 000 , 10 . n acelai mod, raportul semnal- zgomot este 100 000 , 10 . Dac media numrului de electroni pe sond este crescut cu un milion, att deviaia standard ct i SNR cresc cu 1,000. Cu alte cuvinte, zgomotul crete cu ct semnalul este mai mare dup cum se poate observa i n fiuga 3.9. b. Totui, semnalul crete mult mai repede dect zgomotul, ducnd la o mbuntire total a SNR-ului. Zgomotul din statisticile Poisson este dominant n momentul n care zgomotul rezultat din etapa de limitare (quantum sink) este mai mare dect zgomotul provocat de alte surse din sistem (de exemplu, electroni). 3.4. Procesarea morfologica a imaginilor Identificarea obiectelor dintr-o imagine poate fi sarcin dificil. O modalitate de simplificare a problemei este transformarea imaginii greyscale n imagine binar, n care fiecare pixel are valoarea 0 sau 1. Tehnicile folosite pe aceste imagini binare se numesc analiza grupului, analiza conectivitii i procesarea morfologic a imaginilor. Teoria mulimilor reprezint baza procesrii morfologice. Majoritatea algoritmilor morfologici sunt reprezentai 53 prin operaii logice simple i foarte ad-hoc. Cu alte cuvinte, fiecare aplicaie necesit o soluie obinuit obinut prin prob-i-eroare. Fig. 3.10. Operaii morfologice. Figura 3.10. a prezint un exemplu de imagine binar. Aceasta ar putea reprezenta un tanc inamic ntr-o imagine infrarosie, un asteroid ntr-o fotografie din spaiu sau o tumoare suspect observat la raze X. Fiecare pixel din fundal este afiat alb, n timp ce fiecare pixel din obiect este afiat negru. n mod frecvent, imaginile binare sunt formate prin aplicarea unui prag imaginii greyscale, pixelii cu o valoare mai mare dect valoarea prag sunt setai la 1, n timp ce pixelii cu valori sub valoarea prag sunt setai pe 0. nainte de a se aplica pragul, imaginea este supus unor prelucrri cu tehnici liniare. De exemplu, nivelarea iluminrii poate mbuntii calitatea imaginii binare iniiale. Figurile 3.10. b i c prezint cum este imaginea modificat de dou operaii morfologice: eroziune i dilatare. n cadrul operaiei de eroziune, fiecare pixel al obiectului care atinge un pixel al fundalului se schimb ntr-un pixel din fundal. n cadrul operaiei de dilatare, fiecare pixel din fundal care atinge un pixel dintr-un obiect este schimbat ntr-un pixel din obiect. Dilatarea face obiectele mai mari i poate mbina mai multe obiecte ntr-unul singur. Pentru demonstrarea acestor dou operaii ilustrate se va consulta subcapitolul 5.3 ce trateaza prelucrarea imaginilor binare. Dup cum este prezentat n figura 3.10. d, deschiderea este definit ca o eroziune urmat de o dilatare. Figura 3.10. e prezint operaia opus, nchiderea, definit ca o dilatare urmat de o 54 eroziune. Dup cum se observ n aceste exemple, deschiderea ndeprteaz micile insule i filamentele subiri din pixelii obiectelor, n timp ce nchiderea ndeprteaz insulele i filamentele din pixelii fundalului. Aceste tehnici sunt utile pentru prelucrarea imaginilor afectate de zgomot n care civa pixeli au valori binare greite. Fig. 3.11. Evideniere binar. Figura 3.11 prezint un exemplu de procesare morfologic. n figura 3.11. a este prezentat imaginea binar a unei amprente digitale. Algoritmii sunt folosii pentru a analiza aceste abloane, oferind posibilitatea comparaiei cu alte amprente din baza de date. Un pas firesc al acestor algoritmi este prezentat n figura 3.11. b, o operaie numit evideniere (skeletonization). Aceasta simplific imaginea prin eliminarea pixelilor redundani, schimbarea pixelilor apropiai din negru n alb. Acest proces duce la transformarea unei muchii ntr-o linie de un pixel lime. Un alt algoritm poate schimba informaia dintr-o imagine format bitmap ntr-un format vectorial. Acest lucru implic crearea unei liste de muchii coninute de imagine i de pixeli coninui de fiecare muchie. n forma vectorial, fiecare muchie a amprentei are o identitate individual, contrar unei imagini compuse din mai muli pixeli independeni. Acest lucru poate fi obinut prin parcurgerea imaginii pentru aflarea unui punct final al fiecrei linii, (pixelii care aveau numai un pixel negru vecin). ncepnd cu acel punc final, fiecare linie era trasat de la un pixel la altul conectat. Dup ce se ajunge la captul opus al liniei, fiecare pixel marcat este declarat un obiect i este tratat folosind anumii algoritmi.
55 CAPITOLUL 4 FPGA Un circuit FPGA (field-programmable gate array - reele de pori logice) reprezint o component semiconductoare ce poate fi configurat de cumprtor sau de proiectant dup fabricare, de unde i numele de programabil. FPGA-urile sunt programate folosind o diagram logic sau un cod surs scris n HDL (hardware description language) pentru a specifica cum va funciona chip-ul. Pot fi folosite pentru implementarea oricrei funcii logice pe care o poate interpreta un circuit integrat specific unei aplicaii (ASIC), dar cu posibilitatea de a mbuntii funcionalitatea acestuia dup expediere. FPGA conine componente logice programabile numite blocuri logice i o ierarhie de interconexiuni reconfigurabile care realizeaz conectivitatea dintre blocuri, ca un chip programabil provizoriu. Blocurile logice pot fi configurate s ndeplineasc funcii combinaionale complexe dar i pori logice simple cum ar fi AND sau XOR. n majoritatea circuitelor , blocurile logice pot include elemente de memorie, care pot fi simpli bistabili sau mai multe blocuri complete de memorie. 4.1. Istoric Industria FPGA a aprut odat cu memoriile PROM (programmable read only memory) i cu dispozitivele logice programabile (PLD). Att PROM-urile ct i PLD-urile conin opiunea de a fi programate n fabric sau la utilizator, dei porile logice sunt interconectate prin intermediul unor conductoare dure. ntemeietorii Xilinx, Ross Freeman i Bernard Vonderschmitt au inventat primul FPGA, XC2064 comercial n 1985. Acest circuit XC2064 coninea pori programabile i interconexiuni progrmabile ntre pori, nceputul unei noi tehnologii. XC2064 coninea doar 64 de blocuri logice configurabile(CLB), cu 3 tabele lookup de intrare (LUT). La sfritul anilor 1980, Departamentul Naval de Razboi a oferit fonduri pentru un experiment propus de Steve Casselman pentru realizarea unui calculator care va implementa 600,000 de pori reprogramabile. 56 Anii 1990 au fost o perioad exploziv pentru FPGA-uri. La nceput, FPGA-urile erau folosite n telecomunicaii i n reele. Pn la sfritul perioadei, FPGA-urile i-au fcut intrarea n aplicaiile industriale, n industria de automobile i n vnzri. n anul 1997, Adrian Thompson a mbinat tehnologia algoritmilor genetici cu FPGA-urile pentru a crea un dispozitiv de recunoatere a vocii. Algoritmul lui permitea unui vector de 64 x 64 celule ntr-un chip Xilinx FPGA s determine configuraia necesar recunoaterii de voce. O tendin recent este aceea a nlocuirii structurii brute prin combinarea blocurilor logice i a interconexiunilor tradiionalului FPGA cu un microprocesor integrat i periferice pentru a forma un sistem-on-chip programabil. Acest lucru a fost reflectat de arhitectura realizat de Ron Perlof i Hana Potash de la Burroughs Advanced Systems Group care au combinat arhitectura unui CPU reconfigurabil pe un singur chip ce se numea SB24. Exemplul unui astfel de hibrid poate fi gsit n placuele Xilinx Virtex-II PRO i Virtex-4, ce conin unul sau mai multe procesoare PowerPC integrat n structura logic a FPGA-ului. Majoritatea FPGA-urilor moderne au capacitatea de a fi reprogramate n timpul rulrii. Procesorul virtual Mitrion este un examplu al procesorului soft reconfigurabil, implementat pe FPGA. Dei nu suport reconfigurarea dinamic n timpul rulrii, el se adapteaz unui program specific. Din punct de vedere al numrului de pori logice, n anul 1987 Xilinx folosea 9,000 pori logice, n vreme ce cinci ani mai trziu, Departamentul Naval de Razboi folosea 600,000. 4.2. Comparaie FPGA Pe plan istoric, FPGA era mai ncet, cu o eficien sczut i mai puin funcional dect corespondentul su, ASIC. O combinaie de volum, mbuntirea fabricrii, cercetare, dezvoltare i capabilitile I/O a noilor supercalculatoare care au umplut lacuna dintre ASIC i FPGA. Avantajele includ abilitatea de a fi reprogramat pentru a se fixa bug-urile, costuri nerecurente sczute i TTM (time-to-market) sczut. Principala diferen dintre CPLD i FPGA este din punct de vedere arhitectural. Un CPLD are o structur restrictiv ce conine una sau mai muli vectori logici programabili pentru alimentarea unui numr relativ mic de regitrii de ceas. Rezultatul acestui fapt este flexibilitatea sczut, cu avantajul unor ntrzieri predictibile i o ridicat raie logic-interconectare. Arhitecturile FPGA sunt dominate de interconexiuni. Acest lucru l face mai flexibil dar i mult 57 mai complex pentru a fi proiectat. O alt diferen este prezen n majoritatea FPGA-urilor a funciilor integrate de nivel nalt (sumator multiplicator) i memorii integrate, dar i blocuri logice care implementeaz decodificatoare i funcii matematice. O parte din circuitele FPGA au posibilitatea de a se reconfigura parial ce las o poriune a dispozitivului reprogramabil n timp ce celelalte poriuni continu s funcioneze. 4.3. Arhitectur Arhitectura FPGA conine un vector de blocuri logice configurabile, extensii I/O i canale de rutare. n general, toate canalele de rutare au aceeai lime (numr de fire). Multiplele extensii I/O se pot monta n nlimea unei linii sau limea unei coloane din vector. Un circuit trebuie mapat pe un circuit FPGA folosind resursele adecvate. n timp ce numrul blocurilor logice i a I/O necesare sunt uor de determinat din proiect, numrul de drumuri rutabile necesare poate varia considerabil chiar i ntre proiecte ce folosesc aceeai logic. De vreme ce rutele nefolosite cresc costul i scad performana unei componente fr s ofere un alt beneficiu, producatorii de FPGA ncearc sa ofere rute necesare astfel nct majoritatea proiectelor s poat fi rutate n funcie de LUT (tabelele de lookup) i porturile de I/O. Fig. 4.1. Structur bloc logic. Un bloc logic FPGA clasic conine o tabel de lookup cu 4 intrri i un bistabil, dup cum se poate observa n figura 4.2. n ultimii ani, productorii trecut la realizarea unor tabele cu 6 intrri. Prezint doar un output, care poate fi o tabel de lookup nregistrat sau una nenregistrat. Blocul logic conine patru intrri pentru tabel i o intrare pentru ceas. De vreme ce semnalele de ceas sunt rutate pe reele de rutare dedicate n FPGA-urile comerciale, acesta i alte semnale sunt procesate separat. Pentru cazul tabelei de lookup cu patru intrri, pinii blocului logic sunt prezentai n figura 4.2. 58 Fig. 4.2. Pini bloc logic. Fiecare intrare este accesibil printr-o parte a blocului logic, n timp ce pinul de ieire se poate conecta la firele de rutare att prin canalul din dreapta ct i prin canalul situat sub blocul logic. Fiecare pin de ieire al blocului logic se poate conecta la fiecare segment de srm din canalele adiacente. Similar, porturile de I/O se pot conecta la oricare dintre cenalele adiacente. n general, rutarea FPGA este nesegmentat. Acest lucru nseamn c fiecare segment acoper doar un bloc logic nainte de a ajunge ntr-un comutator. Prin aprinderea unor comutatoare programabile dintr-un bloc comutator se pot determina multe rute. Pentru o interconectare mai mare, cteva arhitecturi FPGA folosesc linii de rutare ce acoper mai multe blocuri logice. Cnd se intersecteaz un canal vertical cu unul orizontal, acolo este un bloc comutator. n aceast arhitectur, cnd un fir intr ntr-un bloc comutator exist trei comutatoare programabile care i permit s se conecteze la alte trei fire din segmentele de canale adiacente. ablonul sau topologia de comutatoare folosit n aceast arhitectur este plan. n aceast topologie, un fir de pe pista numrul unu se conecteaz numai la fire din canalul numrul unu ale segmentelor de canale adiacente. Figura urmtoare, figura 4.3 prezint conexiunile dintr-un bloc comutator. Fig. 4.3. Topologie bloc comutator. 59 Familiile moderne de FPGA-uri se extind dincolo de capacitatea de includere n silicon a unei funcionaliti de nivel nalt. Prezena acestor funcii obinuite incorporate n silicon reduce suprafaa necesar i ofer funciilor o vitez crescut comparativ cu construirea lor din primitive. Exemple ale acestora sunt multiplicatorul, blocurile DSP generice, procesoarele incorporate, porturile logice I/O cu vitez mare i memoriile incorporate. 4.4. Proiectare i programare FPGA Pentru definirea comportamentului circuitului FPGA, utilizatorul furnizeaz un proiect schematic sau ntr-un limbaj de descrierea hardware (HDL). Acest limbaj de programare este utilizat n cazul structurilor mari deoarece se poate folosi doar specificarea numeric a acestora . Pe de alt parte, partea schematic ajut la vizualizarea proiectului. Folosirea unui instrument electronic de proiectare genereaz o tehnologie bazat pe conectivitate circuitului. Conectivitatea se poate potrivi pe arhitectura FPGA folosind un proces numit localizare-repartizare (place-and-route), de obicei realizat de companiile proprietare ale soft-ului. Utilizatorul va valida planul, va localiza i repartiza rezultatele prin intermediul analizei temporare, a simulrii i a altor metode de verificare. Dup ce proiectul i procesul de validare s-au ncheiat, fiierul binar generat este folosit pentru (re)configurarea FPGA. Fiierele surs introduse ntr-un program software, furnizat de fabricantul de FPGA/CPLD, care prin diferii pai va produce un fiier ce este mai apoi transferat pe FPGA/CPLD printr-o interfa serial sau pe o memorie extern EEPROM. Cele mai folosite limbaje de descriere hardware sunt VHDL i Verilog. Pentru a simplifica proiectarea pe FPGA a sistemelor complexe, exist librrii de funcii complexe i circuite predefinite care au fost testate i optimizate pentru a mbuntii procesul de proiectare. Aceste circuite predefinite se numesc nuclee IP i se pot procura de la furnizorii de FPGA. Alte circuite predefinite sunt disponibile n comunitile de programatori, cum ar fi OpenCores. n cazul proiectrii obinuite, programatorul unei aplicaii FPGA va simula proiectul n diferite stadii ale procesului de proiectare. Iniial descrierea RTL din VHDL sau Verilog este simulat prin crearea unor exemple de test pentru simularea sistemului i observarea rezultatelor. Apoi, dup ce mecanismul de sintez a mapat proiectul pe un netlist (conectivitatea unui proiect electronic), acesta este translatat pe un nivel de descriere, locul unde simularea va fi repetat 60 pentru a confirma c sinteza a rulat fr erori. La final, proiectul pus pe FPGA, punct n care sunt adugate ntrzierile de propagare i simularea ruleaz din nou cu aceste valori. 4.5. Tipuri de tehnologii SRAM (Static Random Access Memory) - bazat pe o tehnologie static. Este programabil n sistem i reprogramabil. Necesit dispozitive externe de bootare. Antifuse - Programabil o singur dat; EPROM (Erasable Programmable Read-Only Memory technology) - programabil n timpul produciei din cauza plasticului ce l acoper. Dispozitivele glisante pot fi terse folosind lumin ultravioleta (UV); EEPROM (Electrically Erasable Programmable Read-Only Memory technology) - poate fi tears chiar dac este acoperit cu plastic.O parte dintre aceste dispozitive EEPROM pot fi programate n sistem; Flash (Flash-erase EPROM technology) - poate fi tears.O parte dintre aceste dispozitive pot fi programabile n sistem. De obicei, o celul Flash este mai mic dect echivalentul celulei EEPROM; Fuse - Programabil o singur dat. Bipolar. 4.6. Aplicaii Aplicaiile FPGA includ procesarea semnalelor digitale, sisteme aeronavale i de aprare, prototipuri ASIC, formare de imagini medicale, recunoterea vocii, criptografie, bioinformatic, emularea hardware a calculatoarelor i o mulime de alte domenii. Circuitele FPGA gsesc aplicaii n orice domeniu sau algoritm ce necesit folosirea paralelismului masiv oferit de arhitectura sa. Un astfel de domeniu este cel al aplicaiilor ce necesit calcule de nalt performan unde nucleele computaionale ca FFT sau Convoluia sunt executate pe circuitele FPGA n locul microprocesoarelor. Flexibilitatea acestor circuite permite o performan mai ridicat prin schimbarea preciziei i a intervalului din formatul numrului cu numrul crescut al unitilor aritmetice paralele. Acest lucru a dus la un nou tip de procesare numit calcul reconfigurabil, unde task-urile riguroase din punct de vedere temporar sunt trecute transportate de la software la FPGA. 61 Adoptarea FPGA-urilor de ctre calculul de nalt performan este limitat momentan de complexitatea proiectrii FPGA comparat cu software-ul convenional i a timpilor extrem de lungi a uneltelor de proiectare ce necesit de la patru la opt ore de ateptare pentru o schimbare minor a codului surs. 62 CAPITOLUL 5 ALGORITMI DE PROCESARE A IMAGINILOR Pentru demonstrarea practic a algoritmilor studiai n partea teoretic s-a folosit programul Matlab 2007b i utilitarul System Generator coninut de Xilinx 10.1. Pornind de la o imagine cu anumite caracteristici i aplicnd prin convoluie un filtru s-a obinut o imagine imbuntit, filtrat. Pentru realizarea acestora s-a proiectat un filtru liniar 2D ce folosete un PSF de 3x3 i mai multe pori logice pentru realizarea convoluiei dintre imaginea iniial i nucleu. 5.1. Citirea imaginii Imaginea ce trebuie prelucrat este citit dintr-un fisier .m scris n Matlab, locul n care aceasta este mprit n cele trei planuri R,G i B i redimensionat, n funcie de semnalele de control, pentru ca mai apoi sa fie transmis blocului de prelucrare a imaginii, filtrului 2D_FIR ce folosete un PSF de 3 x 3. Ca semnalele de control s-au folosit : pix_en_in - semnal activare procesare (procesarea doar n cazul pix_en_in == enable) hsync_in, vsynch_in - semnale pentru afisarea imaginii. Codul surs al fisierului init.m poate fi vizualizat n Anexa 1. 5.2. Prelucrarea imaginilor RGB Dup cum se poate observa n figura 5.1, blocul 2D_FIR_RGB primete cte un pixel, sub forma a trei semnale(input_image_r, input_image_g, input_image_b),cte unul pentru fiecare plan (R,G,B), urmnd ca n interiorul su s se formeze matrici de 3 x 3 pixeli ce vor fi folosite pentru prelucrarea imaginii. Folosind comanda Look Under the Mask se poate observa nivelul urmtor de proiectare. Aici se ia fiecare pixel i folosind linii de ntrziere pentru a se putea accesa pixelii pe 3 linii succesive, pentru ca la ieirea din Line Buffers s fie 3 linii de pixeli. n urmtoarele blocuri, 3 x 63 3 Filter, cei 3x3 pixeli vor fi prelucrai pentru a rezulta pixelul prelucrat. Din fiecare 3x3 Filter se va obine o culoare a pixelului prelucrat(hw_out_r, hw_out_g, hw_out_b). Fig. 5.1. Filtrul 2D RGB (nivel 1 proiectare). Fig. 5.2. Obinerea matricilor 3 x 3 pixeli pentru cele 3 planuri (nivel 2 de prelucrare). 64 Prelucrarea pixelilor se realizeaz folosind diferite mti de convoluie de 3 x 3, corespunztoare operaiilor ce se doresc a fi realizate. Fig. 5.3. Prelucrarea pixelilor (nivel 3 de prelucrare). Pentru demonstrarea operaiilor de identitate (funcie delta), deplasare i scdere, detectare margini i intensificare prezentate n subcapitolul 2.2 s-au folosit urmtoarele mti de convoluie: edge = [ -1 -1 -1; ... -1 8 -1; ... -1 -1 -1 ]; edgeDiv = 1/8; deplas = [ 0 0 0; ... 0 1 0; ... 0 0 -1 ]; deplasDiv = 1; 65 intensif = [-1 -1 -1 ; ... -1 10 -1; ... -1 -1 -1 ]; intensifDiv = 1/2; % cazul k=4 identity = [ 0 0 0; ... 0 1 0; ... 0 0 0 ]; identityDiv = 1; Anexa 2 prezint operaia de iniiere a blocului 3 x 3 Filter ce realizeaz operaiile de prelucrare a imaginilor. Partea practic a lucrrii prezint i ali algoritmi fundamentali de detectare a marginilor unei imagini: gradienii Sobel verticali, Sobel orizontali ce se calculeaz prin convoluia cu mtile urmtoare: sobelX = [ -1 0 1; ... -2 0 2; ... -1 0 1 ]; sobelXDiv = 1; sobelY = [ 1 2 1; ... 0 0 0; ... -1 -2 -1 ]; sobelYDiv = 1; Pentru ndeprtarea zgomotului s-a folosit un operator gaussian. Operatorul gaussian 2D este un operator de convoluie ce este folosit pentru ndeprtarea zgomotului aprut ntr-o imagine. Pentru ndeprtarea zgomotului prezent n imagine, s-a folosit urmtoarea masc: gaussian = [ 1 2 1; ... 2 4 2; ... 1 2 1 ]; gaussianDiv = 1/16; n urma aplicrii mtilor prezentate s-au obinut rezultatele prezentate n Anexa 3. 66 5.3. Procesarea morfologic a imaginilor binare Pentru implementarea prelucrrii de imagini binare s-a pornit de la aceeai schem ca n cazul imaginilor RGB. Diferena fiind aceea c n cazul imaginilor binare nu exist dect un plan de procesare, dup cum se poate observa i n figura 5.4. Fig. 5.4. Filtru 2D binar (nivel 1 implementare). i n acest caz se folosesc aceleai semnale de control pentru care se poate vizualiza implementarea n Anexa X-1. 5.3.1. Dilatare Acest operaia realizata prin adugarea ariei unei zone de 1 dintr-o imagine binar urmrind frontiera cu un element dat pe exteriorul suprafeei. Pentru demonstrarea acestei operaii morfologice s-a realizat urmtoare schema logic. 67 Fig. 5.5. Dilatare - Obinerea matricilor 3 x 3 pixeli pentru un plan (nivel 2 de prelucrare). Din punct de vedere logic, dilatarea reprezint aplicarea operatorului AND pixelilor imaginii, astfel nct valoarea majoritar a pixelilor schimb celelalte valori. Fig. 5.6. Dilatare - Schema logic pentru prelucrarea pixelilor.(nivel 3 de prelucrare). Pentru simularea hardware s-a folosit un circuit FPGA, Spartan 3AN ce funcioneaz la o frecven de 50 MHz. Dup alegerea operaiei ce se dorete a fi efectuat se d dublu click pe blocul System Generator din schema prezentat n figura 5.4. Apoi se alege ca opiune a compilrii modelul circuitului FPGA (Spartan3AN), apoi se pornete generarea. Dup generare, schema din figura 5.4 devine: 68 Fig. 5.7. Schema dup rulare. Rezultatele obinute n urma rulrii programului pot fi observate n Anexa 3. 5.3.2. Eroziune Aceast operaie morfologic se realizeaz prin scaderea ariei unei zone de 1 dintr-o imagine binar urmrind frontierea acesteia, pe interior, cu elementul model. Pentru demonstrarea acestei operaii morfologice s-a realizat urmtoare schema logic. Fig. 5.8. Eroziune - Obinerea matricilor 3 x 3 pixeli pentru un plan (nivel 2 de prelucrare). 69 Figura 5.9 prezint schema logic a operaiei de eroziune. Aceasta reprezint aplicarea operatorului OR pixelilor imaginii, astfel nct valoarea minoritar a pixelilor schimb celelalte valori. Fig. 5.9. Eroziune - Schema logic pentru prelucrarea pixelilor (nivel 3 de prelucrare). Pentru vizualizarea rezultatelor obinute n urma rulrii programului consultai Anexa 4. 5.4. Semnale de control Semnalele de control prezentate n anexa 6 folosesc un circuit ce detecteaz pragul cresctor al unui semnal de intrare i liniile de ntrziere programabile. Parametrul de offset este folosit pentru controlarea lungimii liniei de ntrziere. Pentru vizualizarea implementrii semnalelor de control consultai Anexa 6. 5.5. Afiarea imaginii Afiarea imaginii este realizat n fiierul Matlab post.m care preia semnalele trasmise de blocul 2D_FIR, reconstriete imaginea i apoi afieaz imaginea iniial i imaginea prelucrat. Codul acestui fiier este prezentat n Anexa X. 70 CONCLUZII Dezvoltarea algoritmilor pentru procesarea imaginilor pe circuite FPGA poate fi dificil, dar rezultatele vorbesc de la sine. n cazul vitezelor foarte mari de procesare se doresc algoritmi de tip fereastr, aceast lucrare a artat c tehnologia FPGA se potrivete perfect acestui scop. De fapt, cu ajutorul generatorului de fereastr, o serie de tehnici de prelucrare a imaginilor poate fi folosit de proiectant, multe dintre acestea putnd fi folosite pentru aplicaii ce necesit o vitez de procesare mare. Lucrarea reprezint o introducere n procesarea imaginilor. Proiectarea hardware a unor algoritmi oferind posibilitatea nelegerii noiunilor de imagine, algoritm de procesare, operator fereastra din punct de vedere al transpunerii pe circuite FPGA. Odat cu finalizarea acestei lucrri s-au ctigat enorm de multe cunotine. n timp ce aceste circuite FPGA sunt excelente n anumite domenii, ca acesta al nenumratelor aplicaii pentru procesarea imaginilor, dificultile aprute n cazul aplicaiilor matematice complexe a dus la folosirea unui chip DSP dedicat. Desigur, un proiectant care dorete cea mai bun combinaie vitez flexibilitate trebuie s aleag un sistem bazat att pe FPGA ct i pe DSP. Acest sistem prezint avantajele fiecrei arhitecturi i permite proiectantului s creeze un algoritm pe un sistem care permite cel mai bine acest lucru. Simularea VHDL i uneltele de sintez FPGA sunt din ce n ce mai bune. Simularea unui VHDL de dimensiuni mari i foarte complex este acum simplu i rapid, VHDL-ul generic putnd fi cu uurin sintetizat n proiecte hardware. Este de ateptat ca odat cu mbuntirea circuitelor FPGA se vor mbuntii i utilitarele folosite. n viitor, timpul ridicat de dezvoltare al proiectelor FPGA poate diprea i devenind din ce n ce mai apropiate de proiectarea DSP. Aceast lucrarea poate reprezenta un punct de pornire pentru o aprofundare viitoare a tehnicilor de prelucrare a imaginilor ce devin din ce n ce mai des folosite n domenii ca: medicina i armat. 71 Anexa 1 init.m WV = 3; WH = 3; if (exist('input_stimulus','var')) if (strcmp(input_stimulus, 'colt.png')) input_file = imread('./test_images/colt.png'); elseif (strcmp(input_stimulus, 'peppers.png')) input_file = imread('peppers.png'); else input_file = imread('./test_images/fall.png'); end
else input_file = imread('peppers.png'); end
input_image = input_file; [size_y, size_x, planes] = size(input_image); % Reshape each color plane image into a single colunm vector input_image_r = reshape(input_image(:,:,1)', size_x*size_y, 1); input_image_g = reshape(input_image(:,:,2)', size_x*size_y, 1); input_image_b = reshape(input_image(:,:,3)', size_x*size_y, 1); PADDING = 6; FLUSH = 0; pix_en_period = 1; % Adding 10 delay samples to synchronize with control signals input_image_r = vertcat(zeros(PADDING,1), input_image_r); input_image_g = vertcat(zeros(PADDING,1), input_image_g); input_image_b = vertcat(zeros(PADDING,1), input_image_b);
% Reset generator: Insert ones whenever reset needs to be asserted reset = zeros(size_x*size_y,1); reset(1)=1;%% wh = find(reset == 1); last_reset = wh(size(wh,1)); % Temporary store input image for each color plane input_image_r_reshape =input_image_r; input_image_g_reshape =input_image_g; input_image_b_reshape =input_image_b; for i=1:size(wh,1) input_image_r_reshape = [input_image_r_reshape(1:wh(i)); input_image_r]; input_image_g_reshape = [input_image_g_reshape(1:wh(i)); input_image_g]; input_image_b_reshape = [input_image_b_reshape(1:wh(i)); input_image_b]; end size_resample = size(input_image_r_reshape,1); % Added 100 more samples
% Resampling the input according to pix_en_period (replicating samples pix_en_preiod times) input_image_r =[]; input_image_g =[]; input_image_b =[]; for i=1:pix_en_period input_image_r=horzcat(input_image_r, input_image_r_reshape); 72 input_image_g=horzcat(input_image_g, input_image_g_reshape); input_image_b=horzcat(input_image_b, input_image_b_reshape); end; input_image_r=reshape(input_image_r', size_resample*pix_en_period,1); input_image_g=reshape(input_image_g', size_resample*pix_en_period,1); input_image_b=reshape(input_image_b', size_resample*pix_en_period,1); clear input_image_r_reshape input_image_g_reshape input_image_b_reshape; %%%%%%%%%%%%%%%%%%%
stop_time = size_resample * pix_en_period+40; % resolution plus 40 clock latency if pix_en_period == active active_size = size_resample-PADDING;
% Generating pixel enable signal pix_en_in = ones(size_x*size_y+FLUSH,1); if (pix_en_period>1) pix_en_in=horzcat(pix_en_in, zeros(size(pix_en_in),pix_en_period-1)); pix_en_in=reshape(pix_en_in', size(pix_en_in,1)*pix_en_period ,1); end; pix_en_in = [zeros(PADDING*pix_en_period,1); pix_en_in ]; pix_en_in_reshape = pix_en_in; for i=1:size(wh,1) pix_en_in_reshape = [pix_en_in_reshape(1:wh(i)*pix_en_period); pix_en_in]; end pix_en_in = pix_en_in_reshape; %%%%%%%%%%%%%%%%%%%
%Generating hsync period hsync=zeros(size_x*pix_en_period,1); % insert hsync active signal hsync((size_x-2)*pix_en_period+1:(size_x-1)*pix_en_period)=1; hsync_full=hsync; %Replicate for all all rows for i=1:size_y-1 hsync_full=[hsync_full; hsync]; end %Insert PADDING zeros if any hsync_full=[zeros(PADDING*pix_en_period,1); hsync_full]; % size_x*size_y+PADDING = 8010 hsync_full((PADDING-3)*pix_en_period+1:(PADDING-2)*pix_en_period)=1; % insert 1 at PADDING-2 position hsync_reshape = hsync_full; for i=1:size(wh,1) hsync_reshape = [hsync_reshape(1:wh(i)*pix_en_period); hsync_full]; % size_x*size_y+PADDING+RESET = 8110 end hsync_in = hsync_reshape; % 8110
81 Anexa 6 - Implementarea semnalelor de control Anexa 7 - post.m if (exist('input_image_r','var') & exist('input_image_g','var') & exist('input_image_b','var') & exist('pix_en_in','var')) WV_real = 3; WH = 3; %post processing wh=find(reset == 1); last_reset = wh(size(wh,1)); mod = 2; %(WH+1)/2, missing outputs at startup out_size=size(hw_out_r,1); hw_out_r_t = hw_out_r(last_reset+3:out_size); hw_out_g_t = hw_out_g(last_reset+3:out_size); hw_out_b_t = hw_out_b(last_reset+3:out_size); hw_out_pix_en_t = hw_out_pix_en(last_reset+3:out_size); hw_image_r = uint8(zeros(size_y, size_x, 1)); 82 hw_image_g = uint8(zeros(size_y, size_x, 1)); hw_image_b = uint8(zeros(size_y, size_x, 1)); row=1; col=1; for i=1:size(hw_out_r_t,1) if (hw_out_pix_en_t(i)==1) hw_image_r(row, col, 1) = uint8(hw_out_r_t(i)); hw_image_g(row, col, 1) = uint8(hw_out_g_t(i)); hw_image_b(row, col, 1) = uint8(hw_out_b_t(i)); if (col==size_x) col=1; row=row+1; else col=col+1; end; end; end hw_image = hw_image_r; hw_image(:, :, 2) = hw_image_g; hw_image(:, :, 3) = hw_image_b; figure(1); imagesc(input_file); title('Original Image'); out_image = hw_image(WV_real:size_y, WH:size_x,:); figure(2); imagesc(out_image); title('Fixed-Point Version of Filtered Image'); end 83 BIBLIOGRAFIE 1. R., Gonzalez i R., Woods, 1992. Digital Image Processing, s.l.: Addison-Wesley Publishing Company. 2. S., Smith, 2007. The Scientist and Engineers Guide to Digital Signal Processing. California: Technical Publishing. 3. D., Silage, 2008. Embedded Design using Programmable Gate Arrays. s.l.: Bookstand Publishing. 4. G., Blanchet i M., Charbit. 2006. Digital Signal and Image Processing using MATLAB. Londra: ISTE. 5. S., Qureshi. 2005. Embedded Image Processing with DSP Examples in MATLAB. USA: Springer Science + Business Media, Inc. 6. B.D., Hahn i D.T., Valentine. 2007. Essential MATLAB for Engineers and Scientists. Third Edition. Oxford: Elsevier Linacre House. 7. B., Jahne. 2002. Digital Image Processing. Fifth Edition. Berlin: Springer-Verlag. 8. W.K., Pratt. 2007. Digital Image Processing. Fourth Edition. USA: Wiley-Interscience. 9. I., Grout. 2008. Digital ystems Design with FPGAs and CPLDs. USA: Newnes. 10. C. T., Johnston, K.T., Gribbon i D.G., Bailey. 2004. Implementing Image Processing Algorithms on FPGAs. Disponibil pe: http://www- ist.massey.ac.nz/dbailey/sprg/pdfs/2004_ENZCON_118.pdf , la data de 16.05.2009. 11. F. M., Waltz. 1998. The application of SKIPSM to various 3x3 image processing operations. Disponibil pe: www-personal.engin.umd.umich.edu/~jwvm/ece581/17_Misc3x3.pdf, la data de 19.05.2009. 12. T.A., Abbasi i M.U., Abbasi. 2007. A Proposed FPGA Based Architecture for Sobel Edge Detection Operator. Disponibil pe: http://www.oldcitypublishing.com/FullText/JAPEDfulltext/JAPED2.4fulltext/Abbasi.pdf, la data de 26.05.2009. 13. Matlab User Guide 2007b, Video and Image Processing Toolbox Disponibil pe: http://www.mathworks.com/access/helpdesk/help/pdf_doc/vipblks/vipblks.pdf, la data de 22.03.2009. 84 14. M., Liljestrm. 2008. Image Processing. Disponibil pe: http://www.miu.helsinki.fi/archive/coursematerial/MBI_Image_processing.pdf, la data de 26.05.2009. 15. D.E., Michek. 2005. Developing Image Processing Algorithms with System. Disponibil pe: http://www.xilinx.com/publications/xcellonline/xcell_51/xc_pdf/xc_dsp-video51.pdf, la data de 7.05.2009. 16. A.E., Nelson. 2000. Implementation of Image Processing algorithms on FPGA hardware. Disponibil pe: w3.isis.vanderbilt.edu/publications/archive/Nelson_T_0_0_2000_Implementa.pdf la data de 19.05.2009. 17. R., Borca-Muresan. 2008. Curs Procesarea Imaginilor. Operaii morfologice pe imagini binare. Disponibil pe: la data de 1.06.2009. 18. Y., Li. 2006. FPGA Implementation for Image Processing Algorithms. Disponibil pe: http://users.ecel.ufl.edu/~yl91/Report.pdf, la data de 25.06.2009. 19. R., Dahyot. 2003. Image Processing: a DSP application. Disponibil pe: https://www.cs.tcd.ie/Rozenn.Dahyot/pdf/TCD2003_edge%20detection_lecture.pdf, la data de 15.12.2008. 20. A., Schreiner. 2006. Image Processing Techniques for Face Recognition. Disponibil pe: http://homepages.cae.wisc.edu/~ece533/project/f06/schreiner_rpt.pdf, la data de 26.05.2009. 21. Xilinx System Generator v2.1 for Simulink. Disponibil pe: https://safe.nrao.edu/wiki/pub/CICADA/WebHome/xilinx_ref_guide.pdf , la data de 13.11.2009.