1 / 61

SISTEMEME NUMERICE PENTRU PRELUCRARI DE IMAGINI

SISTEMEME NUMERICE PENTRU PRELUCRARI DE IMAGINI. PROCESOARE DE MASIVE SISTEME SISTOLICE SISTEME IN BANDA DE ASAMBLARE SISTEME MIMD CU MEMORIE DISTRIBUITA SISTEME MIMD CU MEMORIE PARTAJATA SISTEME DE PRELUCRARE A IMAGINILOR CUPLATE LA PC.

vesna
Download Presentation

SISTEMEME NUMERICE PENTRU PRELUCRARI DE IMAGINI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SISTEMEME NUMERICE PENTRU PRELUCRARI DE IMAGINI PROCESOARE DE MASIVE SISTEME SISTOLICE SISTEME IN BANDA DE ASAMBLARE SISTEME MIMD CU MEMORIE DISTRIBUITA SISTEME MIMD CU MEMORIE PARTAJATA SISTEME DE PRELUCRARE A IMAGINILOR CUPLATE LA PC

  2. Un sistem de analiza de imagini = patru segmente de prelucrare: ‑preprocesarea: operatii initiale (filtrare, marirea contrastului, restaurare, detectare de contururi, segmentare); ‑extragerea de caracteristici => vectori de caracteristici corespunzand elementelor de interes din imagine; ‑clasificarea formelor: fiecare vector de caracteristici  clasa corespunzatoare de forme => formele de interes din imagine sunt clasificate; ‑analiza structurala: descrierea si interpretarea imaginii.

  3. Etapele procesului de prelucrare a unei imagini.

  4. Arhitecturile clasice SISD: eficienta scazuta in aplicatii de prelucrari de imagini (volum mare de calcule). Calculele  paralelism evident ! => noi arhitecturi de calculatoare: -procesoare de masive SIMD, inclusiv procesoare vectoriale; -sisteme sitolice; -procesoare in banda de asamblare; -sisteme MIMD cu memorie distribuita; -sisteme MIMD cu memorie partajata. Implementarea unor algoritmi de prelucrari de imagini si recunoastere de forme, direct in hardware => circuite VLSI pentru diferite tipuri de prelucrari, inclusiv recunoastere de forme (chiar si in timp real).

  5. PROCESOARE DE MASIVE 1958, S.H.Unger "A Computer Oriented Toward Spatial Problems“, "Pattern Detection and Recognition" : arii bidimensionale de elemente ~ arhitectura naturala pentru tratarea imaginilor si recunoasterea de forme. Comunicatiaintre celulele vecine! Fiecare celula primeste valoarea numerica corespunzatoare unui pixel ca data de intrare. Daca aria de celule < imaginea => ferestre de dimensiunile ariei si se tine seama de imbinarea sau suprapunerea ferestrelor.

  6. Ariile de celule bidimensionale costisitoare => dimensiunile mici. Mai ieftine ariile de celule unidimensionale (sirurile de celule, pentru prelucrarea de semnale). Sirurile de celule: extragerea de informatii din linii curbe sau regiuni inchise, reprezentate prin cod de inlantuire (secventa de puncte vecine ce trebuie parcurse pentru parcurgerea liniei curbe respective). Alta aplicatie: prelucrarea unei imagini bidimensionale scanata linie cu linie, executand operatii similare pe fiecare linie. Este necesar sa se memoreze unele linii pentru obtinerea de informatii asupra pixelilor vecini pixelului curent. => timp O(n) pentru o imagine n*n.

  7. Sistemul MPP Sistemul MPP ( "Massively Parallel Processor" ) construit pentru NASA de firma Goodyear Aerospace = arie de 16384 procesoare. -arhitectura tip SIMD; -utilizarea simultana a tuturor procesoarelor pentru calcularea de date statistice;-reconfigurat intr‑o arie de 128*128 procesoare pentru prelucrarea de ferestre de imagini => analize de imagini in timp real; -circuit integrat, special proiectat, cu 8 microprocesoare cu memorie dedicata; -o instructiune trimisa de unitatea de control executata in paralel de toate procesoarele din arie. -unitatea de control = calculator secvential de mare viteza; -unitatea de control conectata la aria de procesoare printr‑un set de registre de interfata utilizate pentru trimiterea de instructiuni, parametri si constante si pentru receptionarea de rezultate.

  8. -memoria: impachetarea si reformatarea datelor => prelucrare eficienta. -citirea unui bloc intreg de 16 Kcuvinte  aria de procesoare, fiecare procesor receptionand un cuvant. -citirea unui bloc de cuvinte de la adresa k=> se trimit catre procesoare datele citite de la adresele : k k+n k+2n ...... k+127n k+m k+n+m k+2n+m ...... k+127n+m ................................................. k+127m k+n+127m k+2n+127m ...... k+127n+127m (parametrii m si n, precum si adresa k, se specifica de catre utilizator prin program)

  9. Exemplu: memoria contine o imagine de 512*512 puncte si se doreste prelucrarea unei ferestre de 128*128 puncte avand coordonatele coltului stanga‑sus (x,y). Parametrii specificati de catre programator : k = 512 y + x n = 1 m = 512 Acces paralel la blocul de memorie.

  10. Setul de instructiuni : -instructiuni secventiale, executate numai de unitatea de control (incarcari, memorari, operatii aritmetice, logice, instructiuni de ramificatie) conducerea fluxului programului si pentru calcularea unor valori individuale; -instructiuni paralele trimise catre aria de procesoare prin intermediul registrelor de interfata, executate de fiecare din cele 16384 de procesoare (executie conditionata: fiecare procesor avand un registru de stare, bitii pozitionati la instructiunea curenta si testati la instructiunea urmatoare); -instructiunile de interfata: transferul de date intre sectiunea secventiala a sistemului si aria de procesoare.

  11. Aplicatii: clasificarea statistica, extragerea de caracteristici si analiza in timp real a scenelor. Cele 16384 de procesoare interconectate intr-o retea: fiecare comunica cu patru vecini => aria de procesoare ~ date structurate tip matrice din limbajele de nivel inalt. Exemplu: matrice ALFA(128,128), reprezentand valorile pixelilor dintr-o fereastra a unei imagini => elementul ALFA(i,j) memorat in microprocesorul (i,j),ALFA(i+1,j) in microprocesorul din dreapta etc.

  12. Cand un microprocesor preia date de la vecinii sai => toate microprocesoarele preiau date de la vecinii lor =>paralelism specificat in program prin caracterul '$' (notatia ALFA($+n,$)~ toate microprocesoarele preiau datele corespunzatoare din memorie si le trimit spre stanga peste n microprocesoare). Exemplu: instructiunea de mediere a valorilor tuturor pixelilor unei imagini utilizind cele doua valori din stinga si din dreapta: BETA[$,$]:=(ALFA[$-1,$]+ALFA[$,$]+ALFA[$+1,$])/3 realizand operatia aritmetica: i+1 BETA[i,j] = Σ ALFA[k,j]/3 k=i-1 Exemplu: detectarea de contururi, cu o fereastra W(3x3), pentru 128*128 pixeli: EDGE[$,$]:=0; for I:=-1 to 1 do for J:=-1 to 1 do EDGE[$,$]:=EDGE[$,$]+W[I,J]*ALFA[$+I,$+J];

  13. CLIP4 CLIP4 (Duff si Preston) = “Cellular Logic Image Processor” sistem din categoria procesoarelor de masive, avand la baza un element de prelucrare cu urmatoarea structura:

  14. Topologia retelei de interconectare: -fiecare element de prelucrare comunica cu opt vecini imediati; -operatii logice celulare  vecinatatea de elemente de prelucrare poate fi accesata in paralel; -operatii de vecinatate recursive, prin intermediul unui bistabil (Carry FF); -succesor al sistemului CLIP4  CLIP7 (Fountain): memorie mai mare per procesor, rata mai mare de transfer de I/E pentru imagini, control local imbunatatit si structura multibit.

  15. AIS-5000 Sistemul AIS-5000 (Schmitt si Wilson): procesor paralel de masive, un microprocesor de scop general si hardware de I/E foarte rapid. Aria paralela: maxim 1024 elemente de prelucrare programabile cu memorie locala si conexiuni catre doi vecini imediati:

  16. Elementele de prelucrare: -programabile; -operatii de diverse tipuri (booleene, aritmetice si de vecinatate). Implementarea unei operatii de vecinatate (operatia erode_nbr):

  17. Un element de prelucrare programat prin intermediul unei tabele de adevar (in hexazecimal). Exemplu:tabela de adevar, numarul hexazecimal corespunzator si elementul de structurare pentru implementarea operatiei de erodare:

  18. Paprica Sistemul Paprica (Broggi) ~ coprocesor morfologic masiv paralel, atasat pe sisteme de prelucrare generale. Cinci unitati functionale principale:

  19. -achizitia de cadre de imagine („Frame Grabber”), capabil sa achizitioneze imagini de 512x512 pixeli pe 8 biti la rata video; -memoria de progame; -memoria de imagini; -aria de procesoare; -unitatea de control. Modulul principal:aria de procesoare (preia o imagine intreaga).

  20. Aria contine doua tipuri de registre: registre morfologice (MOR) si registre logice (LOR). Blocul de registre MOR = registre de deplasare pe 5 biti, permit efectuarea de operatii morfologice pe o vecinatate 3x3 imbunatatita: Registrele LOR: memorarea temporara de date.

  21. Procesoare vectoriale  elemente de prelucrare multiple  operatii logice si aritmetice cu operanzi scalari si vectoriali, cuplate pe o magistrala multipla. Exemplu. Delft Image Processor: operatii de vecinatate asupra imaginilor in virgula mobila si operatii recursive.

  22. SISTEME SISTOLICE => cele mai performante solutii de prelucrare a imaginilor la nivel scazut! Reteau proiectata ~ implementarea hardware a unui anumit algoritm. Elementele de prelucrare nu sunt programabile! Datele sunt transferate din memorie catre elementele de prelucrare intr-o maniera ritmica si revin in final inapoi in memorie sub forma de rezultate.

  23. Solutia de interconectare: specifica algoritmului implementat. Exemplu: -algoritmul de inmultire matrice-vector  retea liniara; -algoritmul de inmultire de matrici  retea hexagonala. Sincronizarea datelor: ceas global de control.

  24. Implementarea operatiilor de dilatare si erodare Exemplu: retea pentru operatiile de dilatare si erodare pentru imagini cu mai multe niveluri de gri (Pitas si Venetsanopoulos). In cazul unidimensional: Unde F= imaginea; G= element de structurare. Se utilizeaza: -sumatoare/scazatoare A/S cu anticiparea transportului; -elemente compara-si-interschimba C/S („compare-and-swap”) pentru selectarea maximului / minimului (CS = comparator + multiplexor).

  25. Semnalul operation: selecteaza tipul de operatie (dilatare sau erodare), realizand comanda circuitelor sumator/scazator si selectie maxim/minim.

  26. Descompunerea de prag  tehnica pentru implementarea unor filtre (de exemplu filtrul median). => dezvoltarea teoriei filtrelor de stiva. Filtru de stiva = orice filtru care poate fi definit prin utilizarea descompunerii de prag si a unei functii booleene pozitive (PBF), implementata ca o suma logica de produse logice => un semnal multinivel care poate lua valorile 0, 1, ..., M-1 este descompus in M-1 semnale binare. Fiecare semnal binar este filtrat cu PBF. Iesirea filtrului de stiva = adunarea tuturor semnalelor binare.

  27. Exemplu: semnal unidimensional x descompus in trei semnale binare x1, x2 si x3. Fiecare semnal binar este filtrat printr-un filtru de maxim cu fereastra de 3x1 (poarta sau-exclusiv cu trei intrari). Rezultatele y1, y2 si y3 adunate => rezultatul final y (semnalul x filtrat cu un filtru de maxim). Tehnica utilizata pentru implementarea operatiilor morfologice pentru imagini cu mai multe niveluri de gri. Filtrul maxim sau minim: implementat prin descompunerea de prag, iar in final se aduna ofsetul corespunzator elementului de structurare.

  28. Structura unui modul pentru dilatarea multinivel: Se utilizeaza descompunerea de prag atat pentru imagine cat si pentru elementul de structurare, pe 4 biti. Dezavantaj: complexitatea hardware-ului creste foarte mult cu numarul de biti per pixel (b), fiind de ordinul O(22b+2b).

  29. Algoritm serial la nivel de bit Algoritm serial la nivel de bit: determinarea maximului / minimului in cadrul operatiilor morfologice pentru imagini cu mai multe niveluri de gri => Se utilizeaza o retea sistolica in care n numere sunt prelucrate de elemente de prelucrare dedicate in diferite segmente ale retelei. Exemplu: determinarea maximului dintre cinci numere pe patru biti fiecare. Initial, toate numerele sunt candidate pentru maxim (f0,i=1). Numerele sunt pacurse incepand cu MSB. In segmentul k (k=1,2,3,4 corespunzand in ordine rangurilor 3,2,1,0) pentru fiecare numar xi (i=1,2,3,4,5) se considera bk,i bitul de rang corespunzator din numarul xisi se asociaza un indicator fk,i indicand daca numarul este candidat pentru maxim (fk,i =1) sau nu (fk,i =0): astfel fk,i =1 daca numerele candidate de la pasul precedent au bk,i =1 si fk,i =0 in caz cotrar. Daca la un pas k toate numerele candidate au bitul curent = 0, atunci toate numerele sunt candidate pentru maxim.

  30. Structura unui element de prelucrare:

  31. Intrarea MAX/MIN# permite selectarea bitului j al maximului sau minimului dintre cele n numere de la intrare. Sistem sistolic care implementeaza acest algoritm pentru elemente de structurare cu noua pixeli de 8 biti poate realiza operatii morfologice pe imagini in timp real. unde:A/S= sumator/scazator, R= registru, y= iesire, pi= pixel de imagine, si= pixel al elementului de structurare, PE= element de prelucrare.

  32. SISTEME IN BANDA DE ASAMBLARE In prelucrarile de imagini fiecare pixel  succesiune de operatii identice. => utilizarea sistemelor in banda de asamblare (eficiente acolo unde exista mai multi pasi de program decat segmente de banda, in caz contrar unele segmente raman neutilizate). Arhitecturile in banda de asamblare: sisteme de recunoastere in timp real.

  33. Cytocomputer University of Michigan si Environmental Research Institute of Michigan prelucrarea de imagini medicale. Cytocomputer = procesor in banda de asamblare + limbaj de nivel inalt, special creat pentru prelucrari de imagini C-3PL ("Cytocomputer Parallel Picture Processing Language"). Universitatea din Michigan: efectele expunerii omului la factorii de mediu, in special la agentii care pot fi cancerigeni sau mutageni efectele pe termen lung ale substantelor chimice si radiatiilor de nivel scazut => adoptarea unei politici rationale in domeniul protectiei mediului ambiant. Etapa: studierea ratei de mutatii umane prin recoltare de singe de la noii nascuti si de la parintii acestora. Aparitia unei mutatii ~ eveniment foarte rar (1/100000 de esantioane)=> inspectarea esantioanelor operatie automata pe calculator (productivitate mult mai mare). Interventia specialistului uman: numai la suspectarea existentei unei mutatii.

  34. Cytocomputer: secvente de transformari de vecinatate asupra imaginilor digitizate ale esantioanelor de sange. Sistemul = banda seriala de segmente de prelucrare programabile, fiecare segment executand cate o singura transformare din secventa de prelucrare a unei imagini. Imaginea digitizata este introdusa in sistem intr-un format de explorare pe linii si avanseaza prin segmentele de prelucrare in timp real. Cytocomputer-ul = 88 de segmente de prelucrare cu ceas comun. Fiecare segment: registre de deplasare care memoreaza doua linii consecutive de scanare, fiecare de n pixeli + registre fereastra (memoreaza o fereastra 3*3). Toate transformarile de vecinatate si transferurile de date executate intr-o singura perioada de ceas.

  35. Transformarile implementate pe Cytocomputer: -transformari 2-D aplicate imaginilor binare plane; -transformari 3-D aplicate imaginilor cu mai multe nivele de gri. Pentru imagini binare: elemente de structurare3x3 (B1 si B2): 1 1 1 0 1 0 B1 1 1 1 B2 1 1 1 1 1 1 0 1 0 Secventa de transformari de vecinatate = subsecventa de erodari+ subsecventa de dilatari. Aplicand procesul de deschidere la imagini reprezentand esantioane de sange, utilizand diferite elemente de structurare, se pot elimina zgomotele!

  36. Sistem de prelucrare neliniara Sistem propus de Gasteratos (Univerity of Genoa) si Andreadis (Univerity of Thrace, Xanthi, Grecia): operatii asupra imaginilor, inclusiv operatii de erodare si dilatare, pe baza histogramei locale si a unei tehnici de aproximare succesiva pe ferestre 3x3. -arhitectura scalabila; -complexitatea hardware ~ dimensiunea ferestrei de imagine si numarul de biti per pixel; -implementare: circuit ASIC. Structura sistemului:

  37. Intrarile in schema: -input= magistrala de un octet; -reset; -clock. -S1S0= selectia demultiplexorului de intrare in dispozitiv se incarca: - S1S0=00: un octet de control specificand tipul de operatie depus in registrul k; -S1S0=01: succesiv, noua octeti reprezentand ponderile pixelilor dintr-o fereastra 3x3 plasati in registrele w; -S1S0=10: succesiv, noua octeti reprezentand elementul de structurare incarcati in registrele corespunzatoare; - S1S0=11: pixelii ferestrei de imagine, plasati in registrele de imagine. Blocul de sumatoare/scazatoare: operatiile de adunare/scadere necesare operatiei de dilatare/erodare. Modulul statistic: operatii neliniare, organizat in banda de asamblare.

  38. SISTEME MIMD CU MEMORIE DISTRIBUITA  mai multe procesoare interconectate printr-o retea, diferite topologii (inel, plasa, hipercub, piramida, etc): Fiecare procesor comunica cu memoria sa locala si cu procesoarele vecine. Reteaua inel: limiteaza numarul de noduri (intarzieri in comunicatie) anumiti algoritmi care nu necesita schimb intensiv de date. Topologia plasa: algoritmi care prelucreaza matrici  numerosi algoritmi de prelucrare imagini 2D.

  39. Reteaua piramidala = extensie a topologiei plasa (suprapunerea unor retele plasa succesive de dimensiuni descrescatoare) prelucrari de imagini de nivel scazut si intermediar, care necesita tranzactii intre pixeli departati. Hipercub: dimensiune n2n noduri. Exemplu: hipercuburi de dimensiune 1, 2, 3 si 4:

  40. Proteus  sistem hipercub: aplicatii de vedere cu ajutorul calculatorului (Haralick). Arhitectura sistemului: Retea de interconectare: ierarhica reconfigurabila  pe nivelul superior un hipercub imbunatatit cu comutare de circuite. Operatii morfologice (dilatare, erodare, inchidere si deschidere).

  41. Hipercub log(n)  arie de celule  fiecare celula poate comunica nu numai cu vecinii imediati, dar si cu vecinii situati la distantele de 2, 4, 8,...,2n de aceasta. Un mesaj transmis intr‑un timp maximO(log(n)).

  42. Exemplu: hipercub log(16)‑dimensional suma informatiilor detinute de fiecare celula.

  43. Piramida In cazul unidimensional (pentru semnale unidimensionale): triunghi de celule (suprapunere de mai multe siruri celulare, fiecare cu lungimea jumatate din lungimea celui precedent).

  44. Numarul total de celule pentru prelucrarea paralela a n valori: N = n + n/2 + n/4 + ... < 2n Fiecare celula conectata la doi "frati", doi "fii" si un "tata“ (cinci "vecini“)=> implementare cip bidimensional. In cazul bidimensional (pentru semnale bidimensionale, imagini): mai multe arii celulare, fiecare avand suprafata un sfert din suprafata celei precedente. Numarul total de celule pentru prelucrarea paralela a n valori: N = n + n/4 + n/16 + ... < 4n/3

  45. Fiecare celula conectata la patru "frati", patru "fii" si un "tata" (noua "vecini“). Dezavantaj: dificultatea implementarii intr‑un cip bidimensional.

  46. SISTEME MIMD CU MEMORIE PARTAJATA Solutii de interconectare a elementelor de prelucrare cu memoria partajata: -magistrala rapida (limitarea numarului de procesoare); -retea crossbar; -retea multinivel.

  47. Reteaua crossbar si reteaua multinivel: Avantaj: implementarea mai simpla fata de procesoarele de masive. Utilizare: mai ales in prelucrari de nivel inalt.

More Related