rezumatul tezei de doctorat - ucv · metode noi de vizualizare, procesare, compresie și stocare a...
TRANSCRIPT
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE
ȘI ELECTRONICĂ
ȘCOALA DOCTORALĂ „CONSTANTIN BELEA”
Algoritmi performanți pentru prelucrarea
imaginilor şi a semnalelor
Rezumatul tezei de doctorat
COORDONATOR ŞTIINŢIFIC: Prof. Dr. Ing. Dan Popescu
DOCTORAND: Ing. Bogdan Popa
CRAIOVA, 2019
Cuprins
INTRODUCERE................................................................................................................................................1
SCOP ........................................................................................................................................................ 1
MOTIVARE ................................................................................................................................................. 2
PERSPECTIVA CERCETĂRII ............................................................................................................................. 2
1 SISTEME ITERATIVE DE FUNCȚII PENTRU PROCESAREA IMAGINILOR FRACTALE ..................................... 3
1.1 SETUL MANDELBROT ................................................................................................................................... 3
1.2 IMPLEMENTAREA SOLUŢIILOR SOFTWARE ......................................................................................................... 4
1.2.1 Algoritmul Mandelbrot secvenţial ..................................................................................................... 4
1.2.2 Soluţia Software propusă .................................................................................................................. 6
1.2.3 Posibilităţi de optimizare – abordarea paralelă ................................................................................ 7
1.2.4 Rezultate obţinute ............................................................................................................................. 8
1.3 CONCLUZII .............................................................................................................................................. 10
2 COMPRESIA IMAGINILOR FĂRĂ PIERDERI.............................................................................................. 11
2.1 SOLUŢIA PROPUSĂ ................................................................................................................................... 11
2.2 PREZENTAREA APLICAŢIEI ŞI A REZULTATELOR ................................................................................................. 13
2.3 POSIBILITĂŢI DE APLICARE: STUDIU ASUPRA VOLUMULUI DE VIZUALIZARE PENTRU DISPOZITIVE MEDICALE ................... 17
2.4 CONCLUZII .............................................................................................................................................. 18
3 POSIBILITĂŢI DE PARALELIZARE PENTRU ALGORITMI DE DETECTARE A MUCHIILOR ȘI PENTRU CEL MAI
SCURT DRUM ................................................................................................................................................ 19
3.1 STUDIU ASUPRA ALGORITMULUI DE DETECTARE A MUCHIILOR (EDGE DETECTION) ŞI POSIBILITĂŢI DE UTILIZARE ........... 19
3.1.1 Îmbunătăţiri propuse pentru arhitectura algoritmilor de tip Edge Detection ................................. 19
3.1.2 Rezultate ale evaluărilor ................................................................................................................. 20
3.1.3 Utilizare practică şi propuneri viitoare ............................................................................................ 21
3.1.4 Concluzii .......................................................................................................................................... 22
3.2 POSIBILITĂŢI DE OPTIMIZARE A ALGORITMILOR PENTRU CEL MAI SCURT DRUM. STUDII DE CAZ ................................. 23
3.2.1 Algoritmul Dijkstra şi posibilităţi de paralelizare. Studiu de caz ..................................................... 23
3.2.2 Structura generală şi arhitectura algoritmului paralel .................................................................... 23
3.2.3 Compararea algoritmilor pentru găsirea celui mai scurt drum, tipuri de paralelizări și
posibilităţi de aplicare ............................................................................................................................... 26
3.2.4 Concluzii .......................................................................................................................................... 27
4 EVALUARE ÎN PARALEL ȘI PROCESARE ÎN TIMP REAL A UNOR SEMNALE DE VIBRAȚII FOLOSIND
TEHNOLOGIA FPGA ....................................................................................................................................... 28
4.1 INTRODUCERE .......................................................................................................................................... 28
4.2 ARHITECTURA SISTEMULUI DE ACHIZITIE ........................................................................................................ 30
4.2.1 Schemele generale ale scenariilor de achiziție și prelucrare propuse ............................................. 32
4.3 DEZVOLTAREA APLICAȚIEI SOFTWARE DE PRELUCRARE . .................................................................................... 34
4.3.1 Cazul 1. Prelucrare FFT la nivel FPGA .............................................................................................. 35
4.3.2 Cazul 2. Prelucrare FFT la nivel Microprocesor RT ........................................................................... 37
4.3.3 Cazul 3. Prelucrare FFT la nivel PC ................................................................................................... 37
4.4 REZULTATE EXPERIMENTALE ....................................................................................................................... 39
4.4.1 Performanța în timp ........................................................................................................................ 39
4.4.2 Spectre obținute în diverse scenarii pentru motor .......................................................................... 41
4.4.2.1 Cazul 1. Prelucrare la nivel FPGA ................................................................................................. 41
4.4.2.2 Cazul 2. Prelucrare la nivel procesor RT ....................................................................................... 43
4.4.2.3 Cazul 3. Prelucrare la nivel procesor PC ....................................................................................... 44
4.5 CONCLUZII .............................................................................................................................................. 44
CONCLUZII FINALE ......................................................................................................................................... 45
CONTRIBUȚIILE AUTORULUI .......................................................................................................................... 48
DIRECȚII VIITOARE DE DEZVOLTARE .............................................................................................................. 49
PUBLICAȚIILE AUTORULUI ............................................................................................................................. 50
BIBLIOGRAFIE SELECTIVĂ .............................................................................................................................. 53
1
INTRODUCERE
Scop
Prima parte a acestei teze se referă la imaginile fractale şi la posibilitățile de a analiza
imagini naturale cu ajutorul generărilor fractale plecând de la fundamentele matematice cu care
pot fi construite.
Generarea unor imagini fractale utilizând mijloacele clasice precum mulțimile
Mandelbrot sau Julia este redundantă din punct de vedere al timpului determinat de resursele
hardware existente astăzi, fiind un proces iterativ de generare, astfel încât acest demers
secvenţial conduce la o serie foarte mare de calcule. Timpul de execuţie este unul dintre cei mai
importanți factori ai tehnicilor software, în prezent acesta având un impact direct ca resursă de
stres asupra sistemelor, dar şi financiară pentru companiile mari. Ideea de bază în cadrul
primului capitol se referă la posibilitățile de generare a imaginilor fractale cu ajutorul tehnicilor
de programare paralelă. Se prezintă un studiu comparativ ca timp de execuție între abordarea
secvențială și cea paralelă la nivel de calcul. Rezultatele obținute confirmă diferența de timp de
execuție pentru generarea imaginilor fractale.
Scopul principal al celui de-al doilea capitol îl constituie posibilitatea de stocare a
imaginilor de capacitate mare cu ajutorul mijloacelor de compresie şi de decompresie a
informaţiilor date de imagini, pentru a eficientiza acest proces. De asemenea, se tratează
mijloace noi de stocare cu ajutorul prelucrărilor wavelet, dar şi a tehnicilor de programare, care
pot conduce la rezultate mult mai bune pentru sistemele cu procesare distribuită care prezintă,
teoretic, un calcul repetitiv şi independent. În cadrul acestui capitol se vor comprima și restaura
imaginile fractale generate în prima parte a tezei, acest proces fiind abordat la nivel secvențial
dar și cu câteva posibilități de abordare paralelă cum ar fi înmulțirea coeficienților în cadrul
proceselor de aplicare a unor filtre asupra imaginilor.
În cel de-al treilea capitol se tratează problema drumurilor minime în diferite scenarii,
problemă care se dorește a fi optimizată. Acest tip de algoritm este utilizat astăzi pentru hărțile
din sistemul GPS, pentru realizarea sistemelor de fluidizare a traficului, pentru gestionarea
documentelor, pentru gestionarea sistemelor de conexiune la internet şi transfer de date mari,
dar şi pentru stocarea datelor în baze de date foarte mari. Scopul practic al dezvoltării acestor
metode noi de vizualizare, procesare, compresie și stocare a imaginilor are ca rezultat studiul
descris în cadrul capitolului 3, în care este prezentat unul dintre cei mai utilizați algoritmi pentru
prelucrare de imagini şi anume „Edge detection algorithm”, dar şi utilizarea algoritmilor trataţi
anterior cu ajutorul dispozitivelor şi a tehnicilor medicale moderne.
În ultimul capitol sunt abordate o serie de aplicații de prelucrare pentru semnalele de
vibrații cu ajutorul tehnologiei propuse recent de firma Național Instruments. Metodele de
achiziție și prelucrare paralelă au fost dezvoltate în cadrul proiectului: „Tehnologie
informațională pentru achiziția, prelucrarea paralelă, sincronizată și în timp real a unor
semnale de vibrații, folosind tehnologia FPGA (TIAVIB)” [TEH, 2017], desfășurat de către
2
Universitatea din Craiova în parteneriat cu firma S.C. Vonrep S.R.L, în cadrul căruia am
participat ca membru în echipa de cercetare. În cadrul acestui capitol este propus un sistem
inovativ de achiziție a semnalelor de vibrații în timp real, utilizând tehnologia FPGA (Field
Programmable Gate Array). În zilele noastre achiziția și prelucrarea semnalelor de vibrații
generate de structuri dinamice din mediu industrial conduce la o serie de probleme la nivel de
transmitere de informații precum conexiunile de lungimi mari între traductoare și sistemul de
achiziție care pot compromite informația. Una dintre soluțiile acestei probleme este realizarea
unui sistem care să realizeze achiziția local, cat mai aproape de sursă, cu o perioadă de
eșantionare foarte mică. Un alt avantaj îl poate constitui prelucrarea datelor la același nivel local
și ulterior transmiterea rezultatelor prelucrărilor sau a unor mesaje de eroare, ceea ce reprezintă
un număr de octeți mai mic transmis. Componenta de achiziție și prelucrare a semnalelor de
vibrații se realizează in timp real în paralel pentru 3 semnale de vibrații distincte folosind
avantajele circuitelor FPGA integrate în sistemul Compact Rio 9024 al firmei National
Instruments. Prelucrarea paralelă odată cu achiziția a constat în aplicarea metodei FFT (Fast
Fourier Transform – spectrul de putere).
Motivare
În opinia autorului, domeniul de prelucrare a imaginilor are astăzi o ascensiune foarte
rapidă, fiind considerat unul dintre mijloacele de bază ale noii realități multimedia. Lucrarea de
doctorat ilustrează rolul algoritmilor paraleli în viitorul analizei procesării imaginilor pentru
funcţiile complexe de procesare, în mijloace moderne de programare pentru uneltele software
disponibile.
Ultimul capitol evidențiază prelucrarea semnalelor de vibrații. Totodată, vor fi
prezentate o serie de analize practice ale unor scenarii de test. Evoluția sistemelor embedded
(sisteme încapsulate/încorporate) către sisteme inteligente (smart embedded systems), care au
posibilitatea de comunicare între ele, a condus la realizarea unui anumit task cu productivitate
mult mai mare, fiind una dintre inovațiile din acest domeniu.
Perspectiva cercetării
În cadrul lucrării de doctorat realizate sunt prezentate mai multe unelte de prelucrare
a imaginilor cu impact în analiza unor algoritmi diferiţi, care, ilustrați sub diferite feluri de teste
oferă rezultate spectaculoase. Astfel, sunt dezvoltate mai multe structuri de programe care
tratează acești algoritmi şi pot fi enumerate exemple pentru:
1) Prelucrare şi generare a seturilor Mandelbrot
Algoritmul secvenţial şi implementarea paralelă sunt testați în diferite scenarii, pentru
imagini de diferite dimensiuni. Această metodă, derivată din setul complex, poate genera
imagini asemănătoare cu cele naturale.
2) Generare fractală cu ajutorul seturilor Julia
Sunt propuse implementări ale mulțimilor fractale Julia pentru diferite scenarii în
comparație cu seturile Mandelbrot. Sunt prezentate rezultate comparative între cele două
3
interpretări fractale cu diverse funcționalități. Se poate spune că această metodă este mai
generală şi oferă scenarii mai ample asupra acestor tipuri de generări.
3) Analiza şi implementarea unor unelte pentru metodele de compresie fără
pierderi ale imaginilor
Plecând de la sistemul de compresie wavelet, este prezentat un sistem de paralelizare
la nivel de calcul pentru realizarea compresiei și decompresiei imaginilor de orice tip, accentul
fiind pus pe imaginile fractale generate anterior. Se va analiza aportul acestor metode de
compresie și în domeniul medical.
4) Algoritmi secvențiali şi propuneri de algoritmi paraleli pentru problema celui
mai scurt drum
Una dintre propunerile noi se bazează pe testarea algoritmilor secvențiali şi paraleli
pentru algoritmii care prezintă rezolvări pentru problema de drum minim sau cost minim.
Astfel sunt prezentate posibilităţi de paralelizare şi scenarii asupra algoritmilor
Dijkstra, Bellman-Ford, Floyd-Warshall, Viterbi. De asemenea, este propus un sistem de
gestiune al situațiilor în care abordarea paralelă conduce la rezultate favorabile.
5) Aplicații practice asupra algoritmilor de tip edge detection
Testarea algoritmului pentru detectarea muchiilor se face în diferite scenarii în funcţie
de posibilitățile de calcul distribuit date de tipul de imagine utilizat. Se propune o posibilitate
de calcul paralel pentru implementarea acestui algoritm și se evaluează eficiența propunerii.
6) Sistem de monitorizare și prelucrare a unor semnale de vibrații în timp real
Aplicația presupune proiectarea şi implementarea unui sistem de monitorizare și
prelucrare în timp real pentru semnalele de vibrații ale unui ax circular. Acest sistem presupune
achiziționarea și prelucrarea în timp real, în paralel a mai multor semnale de vibrații
achiziționate de pe cele 3 axe Ox, Oy și Oz. Principalul scop este prezentarea oportunității de
prelucrare a semnalelor “la sursă”, acolo unde se produc și cât mai rapid. Inovația de integrare,
între sistemul de achiziție de date și procesorul de timp-real, a unui circuit FPGA, are ca rezultat
prelucrarea în timp real a datelor aproape de sursa de apariție a lor. Rezultatele prelucrării vor
avea o dimensiune mai mică de date (un număr redus de octeți) ce pot fi transmise mai rapid în
spațiul IIoT (Industrial Internet of Things).
1. SISTEME ITERATIVE DE FUNCŢII PENTRU
PROCESAREA IMAGINILOR FRACTALE
1.1 Setul Mandelbrot
Setul Mandelbrot, M, este definit de o serie de polinoame complexe pătratice:
𝑃𝑐: ∁→ ∁ (1.1)
unde C reprezintă mulțimea numerelor complexe, date de :
𝑃𝑐: 𝑧 → 𝑧2 + 𝑐 (1.2)
4
unde este un parametru complex. Pentru fiecare , se consideră următoarea serie:
(0, 𝑃𝑐(0), 𝑃𝑐(𝑃𝑐(0)),𝑃𝑐 (𝑃𝑐(𝑃𝑐(0))) , … ) (1.3)
obținută iterând 𝑃𝑐(𝑧), pornind din punctul critic 𝑧 = 0, astfel 𝑃𝑐(𝑧) tinde către infinit sau este
menținut într-o anumită limită [DEV,1989,a].
Setul Mandelbrot este definit ca mulțimea tuturor punctelor 𝑐 astfel încât secvenţa de
mai sus nu tinde la infinit. Se poate spune că setul Mandelbrot este un set compact, aflat în
discul închis cu o rază de valoare 2 în jurul originii sale. Concret, un punct aparţine setului
Mandelbrot dacă şi numai dacă |𝑃𝑐𝑛(0)| ≤ 2 pentru 𝑛 ≥ 2. Setul poate părăsi limita dacă
𝑃𝑐𝑛(0) devine mai mare decât 2, iar secvenţa va tinde către infinit.
Setul Julia al unei funcții f este notat J(ƒ), iar setul Fatou este notat F(ƒ). Aceste
denumiri provin de la matematicienii francezi Gaston Julia şi Pierre Fatou care sunt cunoscuţi
pentru studiul de început al dinamicii complexe, în secolul al XX-lea.
Fie R(z) considerată o funcţie fracţională:
𝑅(𝑧) = (𝑃(𝑧))/(𝑄(𝑧)) (1.4)
unde z € C*, C* este considerată sfera Riemann, P și Q sunt considerate polinoame fără divizori
comuni. „Umplerea” setului Julia, J(z) este reprezentată de setul punctelor z, ai căror coeficienți
nu tind către infinit, după ce J(z) este reiterată (corespunzător unei zone de atracţie). Seturile
pătratice Julia sunt generate de maparea pătratică:
𝑍𝑛+1 = 𝑍𝑛2 + 𝑐 (1.5)
pentru un c fix. Pentru fiecare c, această transformare generează un fractal.
1.2 Implementarea soluţiilor software
1.2.1 Algoritmul Mandelbrot secvenţial
Codul specific pentru o vizualizare a setului Mandelbrot poate fi considerat următorul
(aici în C ++, dar programabil cu uşurinţă în aproape orice limbaj):
double MinReal = -2.0;
double MaxReal = 1.0;
double MinImag = -1.2;
double MaxImag = MinImag+(MaxRe-MinRe)*ImageHeight/ImageWidth;
double Re_factor = (MaxReal-MinReal)/(ImageWidth-1);
double Im_factor = (MaxIm-MinIm)/(ImageHeight-1);
for(unsigned y=0; y<ImageHeight; ++y)
{ double c_im = MaxImag - y*Im_factor;
for(unsigned x=0; x<ImageWidth; ++x)
{ double c_re = MinReal + x*Re_factor;
// Calculează dacă c aparține setului Mandelbrot sau
// nu și desenează pixelul de coordonatele (x,y) în consecinţă
} }
Practic, în formula de calcul a culorii fiecărui pixel pe baza unei palete de culori
predefinită, cel mai important factor este variabila complexă liberă c, din calculul setului
Mandelbrot [POP, 2016, a] . Această variabilă este prestabilită pe baza unui raport între valorile
5
Min și Max, real și imaginar corelate cu dimensiunea imaginii. În fapt variabila complexă c va
avea câte o valoare distinctă, consecutivă, pentru fiecare iterație de determinare a culorii pentru
fiecare pixel din plan. Astfel, formula de calcul va introduce o variabilă diferită la fiecare
prelucrare și automat va crește diversitatea culorilor alocate fiecărui pixel. Codul presupune
parcurgerea pentru fiecare pixel din imagine şi calculează numărul complex echivalent pentru
fiecare pixel în c_re şi c_im (parametrii numărului complex C). Structura de cod precedentă
este nucleul de bază iterativ al calculării valorii fiecărui pixel din setul Mandelbrot, pe baza
unui parametru prestabilit de număr de iterații sau de depăşire a valorilor pentru modulul lui C
< 2. În cazul în care n este numărul maxim de iterații, atunci se cunoaşte că funcția are un
modul mai mare decât 2, iar C actual este (cel mai probabil) o parte a setului şi putem colora,
de exemplu, cu negru (sau orice culoare dorim). În cazul în care n este mai mic decât numărul
maxim de iterații, atunci se cunoaşte că C nu aparţine setului şi apoi se poate mapa valoarea lui
n la o culoare şi seta pixelul cu acea culoare.
În calitate de membru al proiectului [SYS, 2017], în urma prezentării acestei aplicații,
cu tema principală de evaluare a performanței timpului de calcul, s-a propus analiza
comparativă a complexității algoritmului prin estimare teoretică și rezultatele practice. Astfel
s-a determinat ca numărul de iterații al fiecărui ciclu este greu de aproximat, acesta fiind și parte
a componentei de haos a teoriei fractale.
După o analiză a nucleului de cod care generează o astfel de imagine cu ajutorul setului
Mandelbrot, pentru stabilirea condițiilor de ieșire trebuie ținut cont de următoarele aspecte:
1. Ordinul de complexitate este 𝑂(𝑛2).
2. Parametrul Maxiteration – barieră care limitează numărul de iterații are o pondere foarte
importantă în timpul de lucru.
3. Condiția |z|<2.0 oferă posibilitatea ieșirii din buclă după 1 sau Maxiteration pași.
Schema din Fig. 1.1 prezintă o descriere simplă a sistemului de colorare a unei imagini
cu ajutorul randării setului Mandelbrot. Cei 6 pași sunt următorii:
1) Setarea parametrilor;
2) Adaptarea parametrilor pentru imagine în funcție de dimensiune;
3) Decizia de rulare în mod paralel sau secvențial;
4) Partea 1 a condițiilor Mandelbrot – generarea valorilor parametrului c;
5) Partea 2 Testarea condițiilor de ieșire, aplicarea buclei;
6) Partea 3 Colorarea finală.
Schema presupune și izolarea într-un chenar roșu a rutinelor aplicate în sistem paralel,
iterativ, care permit calculul independent. Fiind un proces iterativ similar pentru fiecare
determinare, este evident că o soluție de optimizare constă în abordarea calcului independent la
nivel de pixel.
6
Figura 1.1. Schemă funcțională a aplicației propuse
1.2.2 Soluția Software propusă
Aplicația propusă în teza de doctorat este realizată în limbajul C# şi permite
utilizatorului să exploreze interactiv setul Mandelbrot, să păstreze imaginile generate, precum
şi coordonatele ferestrei de vizualizare implementate (Fig. 1.2., Fig. 1.3). Pentru a avea o
imagine de ansamblu a setului Mandelbrot, pur şi simplu trebuie efectuat clic pe butonul
„Calculate" situat în meniul de sus.
Figura 1.2. Interfața setului Mandelbrot
7
Figura 1.3. Exemplu de imagine reajustată
Comenzile specifice sunt:
a. Calculate: pentru a regenera imaginea principală.
b. Save: salvează imaginea principală într-un fişier, ca un bitmap Windows.
De asemenea, salvează parametrii într-un fişier XML, purtând același
nume.
c. Reset: restabilește toţi parametrii la valorile implicite.
d. Copy: copiază imaginea principală în clipboard.
e. Copy parameters: copiază parametrii în clipboard.
1.2.3 Posibilităţi de optimizare – abordarea paralelă
Paralelismul a fost utilizat timp de mai mulți ani, în principal în calculul de înaltă
performanță, dar interesul pentru el a crescut în ultimul timp, datorită constrângerilor fizice date
de problemele de scalabilitate [ADV, 2008]. În cadrul problemelor de generare a fractalilor se
poate spune că procesul în sine este costisitor, cu un timp destul de ridicat de execuţie. Fiecare
pixel trebuie acordat cu valoarea generată de iterațiile stabilite în ciclurile respective, în cazul
în care nu se îndeplinește nici o condiţie de ieșire. Astfel, se poate evidenția faptul că pentru
calculul fiecărui pixel, datele de pornire se cunosc şi acest proces se poate efectua independent
până la umplerea imaginii respective.
Figura 1.4. Exemplu pentru aplicația 2 care tratează diferența de abordare secvențială sau paralelă
8
Conceptul este simplu, bucla principală, execuția de bază, este executată în paralel cu
o execuţie normală. Numărul de ecuații Mandelbrot care trebuie rezolvate este fixat şi este dat
de dimensiunea imaginii şi a parametrilor inițiali, aceasta permite execuția în paralel a buclei.
Calculul timpului intern se stabilește între momentul de începere a calculului pentru primul
pixel, până la terminarea întregii imagini. Această aplicație prezentată în Fig.1.4. permite
setarea limitelor de calcul şi a numărului de iterații dorite, dar şi a paletei de culori dorită pentru
generarea imaginii. Timpul este factorul determinant pentru a crea imaginea, pentru
completarea setului şi este afișat în partea din stânga jos a interfeței. Acesta se calculează în
milisecunde.
1.2.4 Rezultate obținute
Pornind de la propunerile anterioare s-au luat în considerare două perspective asupra
timpului de calcul asociat calculării seturilor de fractali:
1. Analiză comparativă asupra setului secvenţial şi paralel Mandelbrot;
2. Analiză asupra diferențelor de execuţie pentru seturile Mandelbrot şi Julia pentru
câteva cazuri particulare de generare.
Aceste rezultate sunt prezentate în graficele și analizele următoare, plecând de la
ipoteza că datele prelucrate sunt realizate cu ajutorul unui PC uzual care folosește tehnologie
Intel pentru procesor, acesta fiind un model I7 Q720, cu 4Gb de RAM, pe acest sistem fiind
instalat un sistem de operare Windows 7, iar rezultatul este generat cu un Visual Studio 10.
După cum se poate observa din Tabelul 1.1, timpul de execuţie cu această
implementare paralelă este semnificativ mai bun. Un număr de iterații specifice buclei este un
factor care conduce la un timp de calcul mai mare.
Timp
256 iterații 500 iterații 1000 iterații
Secvențial 0.583 s 1.062 s 1.992 s
Static Paralel 0.172 s 0.341 s 0.535 s
Tabel 1.1. Rezultatele timpului de calcul pentru algoritmul Mandelbrot secvențial și paralel
Figura 1.5. Analiza grafică a rezultatelor secvenţial vs. paralel pentru proiectare Mandelbrot
0
500
1000
1500
2000
2500
256 iter 500 iter 1000 iter
TIM
P (
MIL
ISEC
UN
DE)
NUMARUL DE ITERAȚII
parallel secvential
9
Graficul din Fig. 1.5 este rezultatul comparativ al timpului de calcul între cele două
metode pentru generarea de fractali pentru ipoteza propusă. Se poate observa că pe măsură ce
numărul de iterații este mai mare, calculul secvenţial devine greoi şi necesită alte soluţii [POP,
2015, b].
În Fig. 1.6. este prezentat un exemplu asemănător cu sarcinile globale la nivel de
activități ale procesorului utilizat. Sunt ilustrate celelalte procese existente în momentul testării
pe computerul de test, procesele de sistem, momentele de așteptare, dar și modul în care
influențează aplicația dezvoltată funcționarea procesorului și implicarea puterii de calcul. Se
evidențiază două momente de calcul care suprasolicită resursele de calcul. Aceste două
momente sunt în cazul unor generări secvențiale de durată. Mai mult, se poate observa utilizarea
în cazul generărilor paralele. Aceasta este una rapidă ca timp, care utilizează toate cele 8 resurse
disponibile. În cazul paralel, procesul de utilizare a celor 8 resurse disponibile, oferă un timp
de generare foarte scurt, dar eficient, în timp ce utilizarea constantă a unei singure resurse
necesită o perioadă mai lungă ca timp, ineficientă din punct de vedere al utilității. În Fig. 1.7
sunt prezentate valori de timp rezultate pentru generarea unor imagini fractale sub formă
Mandelbrot secvenţial, Julia secvenţial, Mandelbrot paralel şi Julia paralel în milisecunde.
Astfel, se poate evidenția timpul redus în comparație cu cel secvenţial oferit de abordarea
paralelă.
Figura 1.7. Timpul de execuție, în milisecunde, rezultat pentru imagini de dimensiuni distincte
Figura 1.6. Evoluția numărului de nuclee utilizate pentru un scenariu de test
10
1.3. Concluzii
Rezultatele acestui capitol constau în testarea şi realizarea de comparații pentru unele
aplicaţii de generare de seturi fractale, cum ar fi seturile Julia şi Mandelbrot. Partea de generare
fractală reprezintă un domeniu de analiză și de ilustrare a modalităților de calcul paralel.
Această metodă implică un grad foarte mare de precizie, respectând modelul
matematic de generare fractală selectat şi nu reprezintă o metodă specializată pe un anumit tip
de imagini. În particular, am ales ca acest studiu fractal să fie exemplificat în special prin setul
Mandelbrot, pentru că reprezintă o metodă care își dezvăluie utilitatea în diverse aplicaţii din
diferite domenii. În timpul studiului, am descoperit diferite tipuri de imagini care cu greu pot fi
obținute prin alte metode şi pot fi comparate, în ceea ce privește complexitatea, doar cu unele
naturale, extrem de frumoase. Complexitatea şi infinitudinea acestor imagini creează un nou
domeniu de cercetare pentru viitor.
Acest capitol își propune să prezinte un mod interesant de a proiecta seturi de fractali,
luând în considerare metode diferite, pornind de la aportul programării paralele în contrast cu
programarea secvențială, pentru a evidenția metodele moderne de accelerare a timpului de
calcul. Personal, consider că au fost dezvoltate două aplicaţii din sfera fractalilor care pot fi
utilizate în diverse domenii. Cu ajutorul acestor sisteme „naturale”, se poate realiza o adevărată
enciclopedie a formelor neregulate, punct foarte important în cadrul problematicii de prelucrare
a imaginilor. Industria graficii pe calculator are o componentă care poate fi împrospătată pe
baza acestor cercetări în domeniu.
În acest capitol au fost aduse contribuții privind:
1) Testarea și compararea algoritmilor secvențiali de generare fractală pentru seturile
Mandelbrot și Julia.
2) A fost propus algoritmul de paralelizare din Fig. 1.1, valabil pentru ambele variante de
seturi fractale.
3) Au fost dezvoltate aplicații pentru generarea și analiza imaginilor fractale.
4) A fost prezentat un raport la nivel de CPU în cadrul Fig. 1.6 în care se observă aportul
optimizării la nivel de execuție paralelă.
5) Au fost generate o serie de măsurători ale timpilor de execuție în Tabelul 1.1 și în Fig.
1.7, care ilustrează diferențele din punct de vedere al rapidității calcului.
În concluzie, propunerile sunt benefice pentru dezvoltarea aplicațiilor care utilizează
sisteme de vizualizare pentru generarea fractalilor. Aceste rezultate vor fi utilizate în capitolele
următoare și pot fi asociate cu un set de imagini complexe ca date de intrare pentru următoarele
aplicaţii sau pentru diferite sisteme de încadrare a acestor imagini şi de clasificare.
11
2. COMPRESIA IMAGINILOR FĂRĂ PIERDERI
Prezentul capitol are la bază o serie de cercetări asupra metodelor de compresie, fără
pierderi de date. De asemenea, se prezintă un studiu al metodelor de compresie şi de procesare
a imaginii, pornind de la metodele deja existente şi de la funcţiile realizate, utilizând totodată
tehnologii de prelucrare moderne. Rezultatul se concretizează în descoperirea unor soluții și
modalități inovatoare, menite a îmbunătăți metodele actuale, metode ce vizează posibilitatea
stocării imaginilor, a compresiei, dar și a decompresiei lor. În continuare, este prezentat un
algoritm recursiv axat pe arhitectura bazată pe linie. Imaginea care urmează să fie prelucrată
este stocată într-o matrice (2-D). Ulterior, toate elementele dintr-un rând al matricei sunt
obţinute în mod particular pe baza acestui tip de transformare. Pe baza convoluţiei, în timp se
va segmenta imaginea în două părţi, numărul de rânduri pentru fiecare fiind parte egală cu
jumătate din imagine. Această matrice este din nou calculată pe baza convoluției recursive, dar
de data aceasta, pe baza unei prelucrări la nivel de coloană. Rezultatul procesării DWT pentru
imagine va împărţi coeficienții rezultaţi pe baza unor procedee care vor fi explicate ulterior pe
4 zone distincte ca stagiu de comprimare pentru imagine ca în Fig. 2.1. Coeficienții de
aproximare a imaginii vor ocupa zona din stânga sus a imaginii (LL1), coeficienții orizontali
vor ocupa zona din stânga jos a imaginii (LH1), coeficienții verticali vor ocupa zona din dreapta
sus a imaginii (HL), iar coeficienții diagonali vor ocupa zona din dreapta jos a matricei (HH).
Figura 2.1. Arhitectură bazată pe transformare în linie pentru DWT 2-D
2.1 Soluţia propusă
Având în vedere că procesul de compresie pentru imagini de o dimensiune mare este
unul lent şi că pe baza procedeului prezentat anterior se poate implementa o soluţie software,
în acest paragraf este prezentată o posibilitate utilă de optimizare, din punct de vedere al
timpului de compresie. Mai mult, pe baza avantajelor programării paralele, soluția propusă
aduce câteva noţiuni utile în diverse domenii de cercetare. Implementarea propusă este realizată
în limbajul C++ și prezintă noţiuni specifice acestui limbaj pentru diferite imagini utilizate ca
test. Procedura presupune ca imaginea, să fie mai întâi divizată în blocuri de 32x32. Fiecare
bloc este apoi trecut prin două filtre: prima descompunere de nivel este realizată pentru a
12
descompune datele de intrare în coeficienţi de aproximare şi detaliu. După obţinerea matricei
transformate, detaliile şi coeficienții aproximați sunt separaţi ca LL, HL, LH şi HH. Toţi
coeficienții sunt eliminaţi cu excepţia coeficienților LL, care sunt transformaţi în al doilea nivel.
Coeficienții sunt apoi trecuţi printr-un factor de scalare constant pentru a atinge
raportul de compresie dorit. Fiecare transformare a coeficienților matricei necesită o serie lungă
şi complexă de calcule sau de multiplicare a matricelor. O metodă utilă presupune o programare
paralelă prototip pentru fiecare proces de aplicare şi de construcţie a unui filtru sau bloc
specificat. Un exemplu de descompunere multi-nivel se regăsește în lucrarea [DEO, 2006].
Având în vedere faptul că acest proces reprezintă o serie de calcule la nivel de pixeli, este
evident că este foarte dificil pentru o rezoluţie înaltă [POP, 2016, b]. Aplicația C ++ este formată
din mai multe clase:
• BaseFWT2D - Clasa de bază abstractă pentru transformare
• FWT2D - Implementarea FWT în 2D, aceasta este o clasa derivată din BaseFWT2D
• vec1D - 1D -Vector pentru filtre
Pornind de la soluţia propusă, este utilizată tehnica de aplicare a filtrelor prin
instanțierea obiectelor cu numele de filtru utilizat, oferind calea completă către locaţia sa. De
asemenea, trebuie să fie verificată starea fiecărui obiect; inițializarea presupune şi setarea pentru
lăţime şi înălţime, pentru un singur canal al imaginii dorite şi se continuă cu transformare şi
sinteză. În acest fel, fiecare obiect al clasei este direcţionat spre canalul wavelet al filtrului şi
imaginea specifică. Modelul 2D transformă imaginile conform prezentărilor teoretice, funcţiile
de sinteză sunt definite în BaseFWT2D şi utilizează funcţii private virtuale pentru transformarea
şi sintetizarea rândurilor şi coloanelor imaginii, care sunt puse în aplicare în clasa FWT2D.
Funcțiile de bază apelate sunt trans() pentru aplicarea transformării diadice și synth() pentru
restaurarea imaginii inițiale. Aceste funcții implementează practic compresia și decompresia
imaginii încărcate.
Clasa de bază abstractă oferă toate funcţiile pentru BaseFWT2D de procesare şi de
reconstrucţie a imaginii, obţinerea spectrului de filtre wavelet de încărcare şi de recuperare
pentru numărul de secvenţe necesare. Această structură de cod poate fi extinsă, dar pentru
această procedură este nevoie să se redacteze o nouă clasă BaseFWT2D şi să se rescrie optim
o serie de clase (transrows, transcols, synthrow, şi synthcols). O posibilitate propusă ţine de
refacerea rapidă a imaginii pe baza unei metode care diminuează timpul de execuţie, dar scade
acurateţea şi scade foarte mult calitatea imaginii. Metoda presupune că în matricea de refacere,
să se utilizeze o procedură de aproximare a pixelilor din 2 în 2 şi să se refacă imaginea cu acest
deficit de calitate, practic un deficit calitativ foarte mare pentru imagine. Aplicarea unui filtru
asupra unei imagini înseamnă, în termenii acestei aplicaţii, înmulţirea matricei coeficienților
imaginii standard cu matricea filtrului. Aceasta din urmă are o serie de valori prestabilite şi
cunoscute în prezent pentru fiecare tip de filtru clasic utilizat. Procesul este apelat de mai multe
ori în cadrul aplicaţiei, el fiind unul greoi, dependent de mărimea imaginii, dar poate fi realizat
independent, cazul de înmulţire a matricelor fiind un caz tipic pentru programarea paralelă şi
13
pentru a îmbunătăți timpul de calcul, distribuind lucrul pentru linii şi coloane. De obicei, această
metodă permite un aport considerabil pentru timpul de execuţie, dar şi acest aport este direct
influențat de metoda de programare, de compilator, de tipul procesorului, dar şi de o serie foarte
mare de factori fizici, care pot influența foarte puternic rezultatele obținute. Procesul este lent,
cu timp de calcul ridicat, are o foarte mare aplicabilitate în industria jocurilor video, al cărui
parametru de bază îl reprezintă aceste fps-uri (frames per seconds), adică posibilitatea de a oferi
mai multe informaţii ale imaginilor cât mai rapid.
2.2 Prezentarea aplicaţiei şi a rezultatelor
Plecând de la natura imaginilor utilizate pentru compresie şi decompresie, se poate
spune că în mare parte au fost testate imagini complexe, majoritatea fiind generate prin
intermediul aplicaţiei prezentate în primul capitol. Acestea reprezintă imagini specifice pentru
tipul de seturi fractale. Pe baza acestei selecţii se instanțiază obiecte de tipul filtrului selectat.
Mai mult, se poate selecta numărul de niveluri aplicate pentru filtrare şi de divizare conform
împărţirii diadice. Valorile filtrelor aplicabile sunt cunoscute, se află într-o listă de fişiere .txt
şi sunt baza de plecare la înmulţirea matricelor de pixeli. Se poate spune că aceşti parametri se
regăsesc şi în bibliotecile oferite de către Windows. Fig. 2.2 arată posibilitatea de selecţie şi de
încărcare a unei imagini pentru a fi trecută prin procesul ulterior; se poate observa că au fost
selectate imagini fractale, generate cu prima aplicaţie prezentată în capitolul precedent. În acest
exemplu, imaginea este originală.
Figura 2.2. Exemplu de imagine selectată pentru a fi comprimată
În Fig. 2.3 este prezentat fluxul aplicației. Asemănător unei descrieri a posibilităților
de selecție, schema din Fig. 2.3 ilustrează în 6 pași deciziile cele mai importante luate pe
parcursul prelucrării:
1. Generare, încărcare imagine din memoria locală.
2. Selectare filtru pentru compresie.
3. Inițializare parametri pentru aplicarea decompoziției – decizie secvențială sau paralelă.
4. Inițializarea buclelor de calcul pentru fiecare ciclu conform parametrului selectat, de
repetare a decompoziției.
5. Aplicare succesivă a filtrelor.
6. De asemenea, este prezentat si procesul invers, reversibil, de reconstrucţie a imaginii.
14
Figura 2.3. Diagramă de flux pentru aplicația dezvoltată
Figura 2.4. Exemplul 1: prima imagine comprimată şi refăcută, cea de-a doua comprimată
Pornind de la metodele de optimizare propuse s-au efectuat o serie de teste, ca în Fig.
2.4, care pun în evidenţă soluţia de optimizare prezentată, cazuri de testare diferite, prezentarea
timpilor de execuție pentru acest proces. În cadrul testelor efectuate s-au utilizat două imagini
compuse cu ajutorului metodei prezentate propuse în capitolul precedent. Acestea sunt:
Figura 2.5. Figura 1 luată în considerare
pentru măsurători
Figura 2.6. Figura 2 luată în considerare
pentru măsurători
15
Se pot enumera mai mulţi factori care influenţează direct timpul de execuţie:
1. Complexitatea imaginii
2. Mărimea imaginii
3. Filtrul ales
4. Puterea de calcul a procesorului
5. Capacitatea plăcii video
6. Memoria RAM a calculatorului
7. Compilatorul utilizat
8. Factori fizici (temperatură, umiditate etc.)
Timpii de execuţie (în milisecunde), folosind diferite familii wavelet, pentru
comprimare şi pentru restaurarea imaginilor anterioare (wi - weak image - imagini slabe),
conduc către rezultatele prezentate în [POP, 2016, b] şi [POP, 2014].
S. No.
Biorthogonal
Wavelet Compression
Time I1 [ms]
Compression
Time I2
Recover
Time I1
Recover
Time I2
1 Bior 1.1 4833 5687 8514 9214
2 Bior 1.3 4837 5702 8758 9238
3 Bior 1.5 4843 5714 8689 9249
4 Bior 2.2 4902 5723 9316 9789
5 Bior 2.4 4910 5731 9373 9890
6 Bior 2.6 4920 5744 9409-wi 9909-wi
7 Bior 2.8 4931 5752 9412-wi 9972-wi
8 Bior 3.1 4842 5701 9201-wi 9321-wi
9 Bior 3.3 4947 5768 9663-wi 9233-wi
10 Bior 3.5 4856 5777 9823-wi 9993-wi
11 Bior 3.7 4928 5789 9834-wi 9999-wi
12 Bior 3.9 4801 5794 9987-wi Wi
13 Bior 4.4 4934 5722 8452 9162
14 Bior 5.5i 4900 5701 7333 9223
15 Bior 6.8 4890 5710 8590 9200
Tabelul 2.1. Tabel pentru aplicarea filtrelor Biortogonale. Analiză de timp [POP, 2016, b]
Aceste rezultate sunt puternic influenţate de modelul de procesor utilizat, sarcinile
procesorului din momentul respectiv sau tipul de imagine. Pentru scenariile de test au fost
utilizate imagini mai complexe, generate anterior, imagini fractale obținute cu aplicația
prezentată în capitolul 1. Tabelul de mai sus reprezintă timpul de prelucrare pentru comprimare
şi decomprimare rezultat din procesele prezentate pentru imaginile anterioare, ca un exemplu
simplu. Sunt prezentați timpii de execuţie (în milisecunde), folosind diferite familii wavelet,
pentru comprimare şi pentru restaurarea imaginilor anterioare (wi - weak image- imagini slabe).
Şi pentru aceste seturi de teste a fost utilizat un model de staţie de lucru care utilizează un
procesor Intel I7 model Q720, rulând un sistem de operare Windows 7 pe 64 biţi, 8Gb de RAM
şi care s-a axat în special pe această prelucrare şi nu a mai avut de realizat task-uri
complementare în afară de cele normale.
16
Figura 2.7. Grafic pentru filtrul biortogonal, imaginea 1 vs imaginea 2 [POP, 2016, b]
Diferenţa dintre calculul realizat secvenţial şi cazul paralel, evidențiază că pentru
varianta paralelă se obţin rezultate mai bune cu aproximativ 30% din timp, în comparație cu
calculul secvențial. Un aspect foarte important, regăsit în toate acestea este faptul că, dacă
dimensiunea imaginii este mai mare, cu atât mai utilă este implementarea paralelă şi diferenţele
sunt mai sesizabile. Pe baza graficului din Fig. 2.7 este transpusă evoluţia în timp pentru
cazurile de teste în care cele două imagini sunt comprimate şi refăcute pentru diferite tipuri de
filtre din familiile Biortogonale, acest lucru evidențiind timpul de calcul mai bun, furnizat de
metoda propusă.
Fig. 2.8 prezintă un exemplu de compresie pentru o imagine medicală. Medicina este
un domeniu în care aceste modele de compresie sunt foarte utilizate în diverse proceduri și
unelte software. Această metodă oferă și acuratețe pentru obținerea rezultatelor și este o metodă
sigură, pentru că presupune compresie și decompresie fără pierderi. Fig. 2.9 prezintă o
perspectivă asemănătoare testelor efectuate în primul capitol asupra momentelor de utilizare a
procesorului. În acest caz de utilizare secvențială, se observă foarte simplu momentele de calcul
pentru compresie și decompresie pentru că acestea sunt singurele care presupun o utilizare a
mai mare a unității de calcul, în jurul a 30%. Practic, acest domeniu îmbină cunoştinţe din
cadrul prelucrării semnalelor, cu aplicabilitate specifică pentru prelucrarea de imagini. Se poate
spune că acest domeniu de prelucrare a semnalelor are o componentă foarte importantă pentru
soluţia propusă, prin aplicarea filtrelor utilizate direct pentru coeficienţii imaginilor pentru
compresie.
Figura 2.8. Imagine medicală încărcată și salvată
17
Figura 2.9. Evoluția utilizării procesorului în cadrul proceselor de compresie și decompresie în timp.
2.3 Posibilităţi de aplicare: Studiu asupra vizualizării volumului pentru
dispozitive medicale
Se poate spune că în Fig. 2.10 se observă reprezentarea unui exemplu de imagine
medicală, care ilustrează un model DICOM cu 743 imagini. De exemplu, dacă luăm în
considerare propunerile din articolul [POP, 2016, d] şi rezultatele pentru metodele de compresie
fără pierderi a peste 743 de imagini, putem menţiona că acesta poate fi un bun exemplu de
îmbunătăţire a vitezei de procesare. Standardul folosit este de asemenea foarte important, pentru
că acesta trebuie să fie recunoscut de o serie de aparate, sisteme software, sisteme de transfer şi
de vizualizare de înalt nivel, având un aport în întreg procesul. Timpul de lucru este puternic
influenţat de factori cum ar fi dimensiunea imaginilor, calitatea lor, dar există analize asupra
acestor factori. Extinzând acest exemplu către toate cele 743 imagini din exemplul precedent,
se poate spune că acest proces este scalabil către fiecare scenariu. Următorul pas este de a
calcula factorul de viteză pentru un exemplu simplu, care realizează compresia şi decompresia
mai rapid. O altă strategie pentru obținerea unor rezultate eficiente presupune schimbarea
algoritmului de descompunere wavelet.
Figura 2.10. Exemplu simplu pentru vizualizarea sistemului AORTE SPC
18
2.4 Concluzii
În cadrul acestui capitol au fost prezentate o serie de posibilități de optimizare pentru
metoda DWT de compresie a imaginilor. Aceste propuneri se bazează pe posibilități de calcul
paralel la nivel de aplicare a filtrelor de compresie a imaginilor. Pornind de la modelul de
optimizare la nivel de calcul paralel din Fig. 2.3 s-a implementat o soluție rapidă de compresie
și decompresie de imagini.
Metoda propusă este implementată în cadrul soluției software prezentată în
subcapitolul 2.2. Aceasta se bazează pe avantajul multiplicării independent al coeficienților la
aplicarea filtrelor de compresie. Au fost utilizate imagini fractale generate în primul capitol
pentru comprimare și restaurare. Mai mult, o analiză comparativă a fost realizată pe baza
filtrelor selectate, rezultatele fiind prezentate în Fig. 2.1, Tab. 2.1. Pornind de la aplicația
implementată a fost realizată și o analiză la nivel de procesor. Aplicația este analizată în cadrul
Fig. 2.9 pentru un ciclu mai lung de aplicare a metodei de compresie implementată. Evoluția
parametrilor selectați se reflectă și la nivelul gradului de utilizare a procesorului, dar acesta este
influențată și de alți factori. Contribuțiile proprii din capitolul 2 constau în:
1) Implementarea unei soluții de compresie și decompresie de imagini fără pierderi pe baza
unui model de eficientizare la nivel de calcul paralel.
2) Compararea rezultatelor obținute în funcție de tipuri de filtre diferite selectate.
3) Posibilitatea de compresie și decompresie rapidă pentru imaginile fractale, dar și pentru
cele medicale.
4) Analiza la nivel de procesor pentru un caz de compresie și decompresie multiplă
În concluzie, capitolul 2 presupune integrarea imaginilor fractale în cadrul unor
mijloace de compresie moderne cu grad de eficiență ridicat. Și în acest capitol se pune accent
pe nivelul de utilizare al procesorului utilizat, dar și pe tehnici de distribuire a calcului. Un alt
domeniu de aplicabilitate pentru soluțiile software dezvoltate este domeniul medical. Pommert
şi Hohne [POM, 2006] concluzionează în evaluarea lor despre metodele de vizualizare a
volumului medical că cea mai bună metodă de studiu este aceea de a testa aceşti algoritmi pe
un corp uman. Aplicaţiile de redare de volum sunt numeroase şi variate, forţa motrice este în
primul rând utilizată în domeniul medical, care poate folosi imaginile furnizate pentru a ajuta
la diagnosticarea bolilor, sau de a practica şi efectua operaţii virtuale. Cercetările ce stau la baza
tezei de doctorat ilustrează beneficiul tehnicilor de procesare a imaginii asupra domeniului
imaginii medicale şi propun îmbunătăţiri aplicabile pentru algoritmi care utilizează compresia
imaginilor. De asemenea, există o mulţime de factori care influenţează medicina umană,
pornind de la evoluţia tehnologiei pentru diferite domenii şi până la noile metode inovatoare
medicale. Toate aceste metode sunt strict legate de tehnologia DICOM, precum şi de toate
computerele şi dispozitivele medicale care utilizează acest standard.
19
3. POSIBILITĂŢI DE PARALELIZARE PENTRU ALGORITMI
DE DETECTARE A MUCHIILOR ȘI PENTRU CEL MAI
SCURT DRUM
3.1 Studiu asupra algoritmului de detectare a muchiilor (Edge Detection) şi
posibilităţi de utilizare
Algoritmul „Edge Detection”, foarte utilizat în prezent pentru analiza imaginilor, este
unul dintre pașii principali în identificarea facială, în cadrul tehnicilor de vizionare a imaginilor
de către roboții industriali. Importanța detectorului eficient pentru margine, în cele mai multe
sisteme de viziune, a fost acceptată pe scară largă conform [CAN,1986].
Capitolul al treilea are în vedere descrierea principalilor algoritmi de detectare a
marginilor, dar și identificarea posibilelor îmbunătățiri asupra etapelor iterative, folosind
tehnicile de programare paralelă exemplificate prin testele realizate.
3.1.1 Îmbunătățiri propuse pentru arhitectura algoritmilor de tip Edge Detection
Pornind de la tehnicile de multiplicare a matricelor bazate pe algoritmi matematici, se
poate spune că acest proces necesită foarte mult timp pentru imagini comune, timp ce depinde
de puterea de calcul a computerului utilizat. Un alt motiv bun pentru optimizarea algoritmului
este faptul că această metodă de programare, calculul paralel, este un domeniu interesant şi
promițător pentru a fi explorat astăzi, în special datorită costurilor în scădere a resurselor
hardware [BAR, 2018]. Aceste sisteme de procesare a imaginii propun un sistem de tip
multitasking şi pot rezolva probleme mai mari în timp mult mai scurt. Prima soluţie de calcul
distribuit propusă în teză, dă posibilitatea detectării marginii Cany pentru pasul de utilizare a
filtrului Gaussian, conform sistemului de multiplicare de matrice explicat, de asemenea, în
sistemele de filtrare prin compresie, prezentate în articolul [POP, 2014]. Acest lucru a fost
exemplificat pentru diferite scenarii, dar va constitui una dintre îmbunătăţiri pentru detectorul
de muchii Canny. A doua îmbunătăţire propusă în teză constă în calculul diferențiat pentru
primul pas al algoritmului Sobel pentru construirea componentelor 𝐺𝑥(1) și 𝐺𝑦(2) în paralel,
deoarece aceste componente sunt independente. Codul este reprezentat mai jos:
# parallel for sections shared(no,n1,n2)
//n0,n1,n2 valori pentru parametrii de inițializare-ex a,b, index
for(int a = 0; a < 3; a++)
{ for(int b = 0; b < 3; b++)
{ int x1 = x + a - 1;
int y1 = y + b - 1;
int index = x1 + y1 * dim;
magX1 += imag[index] * kernelsx[a][b]; }}
20
Figura 3.1. Arhitectura propusă, bazată pe sistemul de imagine divizată, utilizat pentru calculul
distribuit
Această structură de cod reprezintă calculul aplicat pe imaginea de intrare, efectuat în
paralel. Este evident că acest pas nu va da rezultate spectaculoase, dar acestea sunt influenţate
direct de ordinul matricei pentru algoritmul Sobel utilizat. În exemplu va fi utilizată, de
asemenea, și o matrice dimensiune 5x5.
3.1.2 Rezultate ale evaluărilor
În testele de caz au fost folosite PC-uri obișnuite, care sunt prezentate în tabelul următor:
Componentele Descrierea
# of Processor Cores 4 (Quad) 4 (Quad)
Processor I7 CPU Q720 la 1.60GHz I7 CPU 6700HQ la 2.59GHz
Threads 8 8
RAM 4.0 GB DDR-2 RAM 7.84 GB DDR-3 RAM
Cache 6 MB 6 MB
System Windows 7 x64 bit
operating system
Windows 10 x64 bit operating
system
Tabel 3.1: Hardware-ul utilizat
În Fig. 3.2 este prezentat un exemplu de aplicare a algoritmilor Sobel și Robert pentru
un exemplu de imagine inițială. Timpul oferit de algoritmul secvenţial al primei imagini de test
este prezentat în tabelul următor, acesta fiind influenţat de mărimea figurii. Această dimensiune
este ajustată, începând să se taie din colțul din dreapta jos. Astfel, se obțin imagini de dimensiuni
diferite, care influențează diferit algoritmul. Un alt factor interesant este timpul dat de fiecare
metodă și diferența dintre metode, luând în considerare calitatea informațiilor produse de
imaginea finală. A doua propunere se va concentra asupra posibilităţii distribuite de a executa
aceste tipuri de algoritmi mai rapid. Rezultatele obținute cu arhitectura paralelă utilizată sunt
reflectate în graficul din Fig. 3.3. Aceasta oferă posibilitatea de a analiza calculul distribuit şi a
evidenția diferenţele oferite de cele două procesoare, dar şi timpul de lucru în funcţie de soluțiile
secvenţiale.
21
a) b) c)
Figura 3.2. Exemplu de imagine: (a) Imagine inițială;
(b) Imagine obținută cu algoritmul Sobel, (c) Imagine obţinută cu algoritmul Robert
Figura 3.3. Analiză a timpului de calcul pentru metodele secvențiale cât şi pentru algoritmii paraleli
dezvoltați
Pornind de la graficul anterior, din Fig 3.3, rezultatele confirmă faptul că doar pentru
primul caz de testare, pentru imaginea cu dimensiunea 360x640, algoritmii propuşi în paralel
pot oferi rezultate mai bune şi pot oferi o perspectivă pentru sistemele de imagini mai mari.
Acest lucru este dat de dimensiunea imaginii. Este evident că aceste metode pot fi luate în calcul
doar pentru procesări de imagini foarte mari, pentru că mecanismul de distribuire necesită în
sine o secvenţa de timp care influențează rezultatele.
3.1.3 Utilizare practică şi propuneri viitoare
Pentru activitatea viitoare de cercetare se poate propune un sistem automat în timp
real, care poate găsi numărul de plante pe metru pătrat în cadrul unei aplicații din domeniul
agriculturii.
0
200
400
600
800
1000
1200
1400
1600
1800
360x640 340x600 300x550 280x480 240x400 200x360 200x300 150x250 100x200
Tim
p in
mili
secu
nd
e
Dimensiune imagine
Robert's algorithm Robert's parallelSobel's algorithm Sobel's parallelLaplacian 3x3 Laplacian 3x3 parallelLaplacian 5x5 parallel Laplacian 5x5
22
Figura 3.4. Schemă generală de analiză propusă
După implementarea unui sistem static, acesta poate fi dezvoltat și transformat în unul
mobil care să determine numărul de plante de un singur tip pe suprafețe mari de teren. Acest
prototip poate funcționa mai bine pentru imagini reale, captate din momentul răsăririi plantelor.
Acesta poate avea o acuratețe mai mare în primele zile de răsărire, deoarece se bazează pe
diferența dintre apariția zonelor verzi pe fondul culorii pământului. O schemă practică empirică
este propusă şi ilustrată în Fig. 3.4, aceasta este foarte utilă, pentru rezultate mai rapide, o viteză
mare de lucru, deoarece pentru suprafețe mari va fi necesară o bună capacitate de calcul pe
partea mobilă şi ca acesta să acopere în timp real o suprafață cât mai consistentă. Tipul acesta
de estimare are o parte negativă, și anume faptul că imaginile nu pot fi luate prin satelit.
3.1.4 Concluzii
Studiul din acest capitol scoate în evidenţă faptul că există algoritmi, cum ar fi Robert
sau Sobel utilizați pentru detectarea muchiilor şi propune modalităţi practice de îmbunătăţire a
lor cu ajutorul tehnologiei moderne, prin utilizarea completă a procesorului pentru întreaga sa
capacitate. Acest capitol oferă o analiză comparativă asupra rezultatelor noului algoritm propus
pentru detectarea de muchii care realizează aplicarea filtrelor distribuit la nivel de linii și
coloane. Strategia se bazează pe posibilitatea de calcul multiplu şi performanțe bune ca timp de
execuţie. Această analiză poate converge către o utilizare practică pentru sistemul propus de
numărare de plante. Strategiile paralele propuse sunt mai rapide decât prelucrarea secvențială
în ceea ce privește viteza, dar cu un compromis de performanță şi eficiență utilizând procesoare
în mod direct, doar pentru aceste procesări. John Canny a considerat foarte importantă problema
matematică de selectare a unui filtru optim de aplicare datorată criteriilor de detectare și
localizare, acesta rezumând opțiunile la o singură metoda de calcul [CAN, 1986].
Teza de doctorat oferă câteva analize care pot fi considerate începutul pentru alte studii
de cercetare care să identifice metode adecvate de procesare rapidă a unor cantități mari de date
şi oferă unele caracteristici practice, în diferite domenii, cum ar fi domeniul agricol. Pornind de
la cele trei tipuri de optimizări propuse: (fragmentarea imaginii inițiale și calculul pe bucăți,
realizarea calcului componentelor Canny în paralel și paralelizarea la nivel de buclă pentru
fiecare pixel) şi de la testele efectuate, se poate spune că în acest moment este necesar să se
analizeze toate posibilitățile de a optimiza acest algoritm în funcție de timpul de execuţie.
23
3.2 Posibilităţi de optimizare a algoritmilor pentru cel mai scurt drum.
Studii de caz.
3.2.1 Algoritmul Dijkstra şi posibilităţi de paralelizare. Studiu de caz
Scopul acestei cercetări din teză este de a crea o aplicație paralelă pentru
algoritmul Dijkstra, cu un grad ridicat de eficiență. Să considerăm un graf orientat G = (V,
E). Problema propusă poate fi enunțată astfel: Determinați lungimea pentru calea cea mai
scurtă de la sursă la fiecare dintre celelalte noduri ale grafului.
3.2.2 Structura generală şi arhitectura algoritmului paralel
Algoritmul propus face paralelizarea de la începutul procesului. Începe să găsească
calea cea mai scurtă de la nodul de pornire pentru orice alt nod folosind în cele mai bune cazuri,
diferite căi şi în cazurile cele mai nefavorabile se pot folosi aceleaşi căi pentru mai multe rute
către noduri. Acest proces este unul redundant, pentru că se parcurge practic o rută de mai multe
ori, nefiind eficient [POP, 2015, a]. Cazurile favorabile se pot găsi cu o rată mai mică de 1% în
pachetele de testare aleatoare, dar există cazuri în care acest scenariu este util.
Pseudocodul pentru structura paralelă propusă este următorul:
for all v in G:
//unde G reprezintă mulțimea nodurilor din graf
// v reprezintă un nod oarecare, d() reprezintă distanța, U reprezintă mulțimea nodurilor
//w(u,u) reprezintă matricea de adiacență cu distanțe
d(v) = infinity;
D = {s};
U = {G-s}; // pentru toate nodurile din G
for all u adjacent to s:
d(u) = w(u, s);
while U is not empty { /* procedura care lucrează în paralel este următoarea */
Let v be the node from U with minimal d(v);
U = U / v;
D = D union v;
for all u adiacent to v {
if d(u) > w(u,v) + d(v) then
d(u) = w(u,v) + d(v);
} }
Figura 3.5. Schema algoritmului Dijkstra pentru cazul paralel propus
24
Este evident că în testele efectuate cu un număr limitat de noduri, această metodă este
redundantă, pentru că începe o altă execuţie pentru fiecare alt nod faţă de nodul de pornire.
Pentru scenariile de test, practic, timpul de calcul implică parametri cum ar fi:
1. numărul de noduri; numărul muchiilor;
2. pentru acest caz, în special „înălțimea" grafului (numărul maxim de muchii de la nodul
de pornire până la cel mai îndepărtat nod).
În cadrul Fig. 3.5 sunt prezentate cele două modele de abordare. În primul caz este
prezentat algoritmul secvențial de calcul, iar în ce de-al doilea, modelul paralel propus în teză.
Cazurile favorabile se întâlnesc la capacități foarte mari de prelucrare, în cazul sistemelor cu un
punct central de căutare, de exemplu un telefon sau un dispecerat cu conexiuni de rețea pentru
un oraș cu mai multe milioane de locuitori. În aceste cazuri, există comenzi centralizate şi sistem
de informaţii care trebuie să răspundă rapid, arhitectura pentru aceste tipuri de rețele poate fi
inclusă în tipurile favorabile de aplicare pentru soluția propusă. De la început, este evident că
ideea principală a acestor implementări constă în structura grafului. Pentru testele cu mai puține
noduri se poate concluziona că există unele cazuri diferite. În urma analizei acestor cazuri tipul
grafului influențează decisiv parcurgerea şi poate conduce la rezultate diferite. Mai mult, în
cazul unor grafuri temporale, utilizate astăzi în diferite scenarii reale cum ar fi rețelele de
transport, evoluția influențează clar tipul rezultatelor oferite de cei doi algoritmi (cel secvențial
sau despre cel paralel propus).
Figura 3.6. Schemă pentru cazurile cele mai favorabile [POP, 2015, a]
Figura 3.7. Schemă pentru cazurile mai dezavantajoase [POP, 2015, a]
Figura 3.8. Schemă pentru cazurile mixte de parcurgeri [POP, 2015, a]
25
Pe baza modelului de graf din Fig. 3.6, se poate spune că tipul acesta conduce la puține
parcurgeri pentru un nod central către celelalte puncte prin noduri intermediare. Acest lucru
poate fi enunțat ținând cont de faptul că ideea de centralizare a căutărilor şi independența lor de
parcurgere este favorabilă abordării paralele propuse pentru că scenariul propus presupune
parcurgeri de la nodul selectat către toate celelalte noduri independent. Astfel, practic, fiecare
căutare este independentă şi algoritmul de căutare pornește algoritmul pentru fiecare nod în
parte.
În exemplul de graf din Fig. 3.6 este evident că un nod de plecare, sau nod central, poate
ajuta din punct de vedere al parcurgerii, având un număr mare de noduri apropiate. Acest
avantaj nu se mai regăsește în modelul de graf din Fig. 3.7 unde distanța dintre nodul central și
celelalte noduri este mult mai mare. Pentru cazurile cel mai puţin favorabile, se poate spune că
înălțimea (distanţa cea mai mare dintre vârf şi noduri) grafului influențează negativ căutarea
celui mai scurt drum pentru analiza paralelă, acest lucru fiind dat de necesitatea de parcurgere
a aceluiași drum de foarte multe ori. Practic, pentru căutarea unei zone de mai multe noduri se
străbate şi se calculează de fiecare dată același cost pentru o rută necesară de parcurgere. Având
în vedere că parcurgerea aceleiași rute este costisitoare şi că arhitectura algoritmului propus se
bazează pe începerea căutării către toate nodurile, acest lucru influențează negativ rezultatele
de calcul şi de timp pentru căutare. În cazul scenariilor de teste ca în Fig. 3.8, acest lucru va fi
foarte vizibil, practic testele la pachete aleatoare de grafuri, în funcţie de arhitectură, conduc la
rezultate foarte eterogene în funcţie de natura informaţiilor, respectiv de distribuția grafului.
Practic, acest tip de teste se efectuează pe exemple de date masive pentru a se observa natura
algoritmilor propuşi cu exactitate. Luând în considerare eficiența, în ceea ce privește noțiunea
de ordin de complexitate este 𝑂(𝑛2). În mod specific, să presupunem că G are n noduri şi m
muchii. În cazul în care graful de test este cel din Fig. 3.9, se poate spune ca varianta de
paralelizare pentru algoritmul Dijkstra este favorabilă ca timp de execuție. Graful din Fig. 3.9
are 200 de noduri și 210 muchii, având un nod central (nodul 0) și legături între acesta și toate
celelalte noduri. Pentru acest caz de test timpul oferit de algoritmul paralel este de 100ms, iar
de cel secvențial de 110ms ceea ce confirmă ipoteza că natura grafului este foarte importantă în
analiza de timp de execuție. Mai mult, se poate defini un model de date de intrare pentru care
algoritmul de căutare în paralel să evolueze favorabil. Trebuie menționat că timpii calculați sunt
puternic influențați de job-urile procesorului la momentul respectiv de calcul.
Figura 3.9. Exemplu de graf pentru testare a algoritmului paralel propus cu cel secvențial
26
3.2.3 Compararea algoritmilor pentru găsirea celui mai scurt drum, tipuri de
paralelizări și posibilităţi de aplicare
Această cercetare propune, în primă instanță, o analiză inovativă şi eficientă a
algoritmilor Dijkstra, Bellman Ford, Floyd-Warshall şi Viterbi, prin abordări paralele, analiza
rezultatelor obţinute în diferite teste, dar și o comparație a acestor strategii pentru căutare pe
diferite sisteme de grafuri. Schimbarea algoritmilor, propusă în teză, presupune paralelizarea
de la începutul procesului, aşa cum a fost prezentată mai sus, în cazul algoritmului Dijkstra.
Algoritmul propus începe să găsească calea cea mai scurtă de la nodul de pornire pentru orice
alt nod, folosind în cele mai bune cazuri, diferite căi. În cazurile cele mai nefavorabile se poate
folosi aceeaşi cale pentru mai multe noduri de mai multe ori acesta conducând la timp mai mare
de execuție. Cazurile favorabile pot avea o pondere mai mică de 1% în pachetele de testare
aleatoare, dar există cazuri în care acest scenariu este util [POP, 2016, c]. Varianta de pseudocod
propusă pentru algoritmul Bellman-Ford este următoarea:
Bellman-Ford(G, sursa)
Pentru i de la 1 la |U| execută
dist[i] = dist[i] +inf
predecesor[i] = null
dist[sursa] = 0
pentru i in 1 to (|U| - 1) executa
pentru fiecare Edge e din Edges(G) executa
/* paralelizare implementata aici */
daca dist[e.from] + length(e) < dist[e.to] executa
dist[e.to] = dist[e.from] + length(e)
predecesor[e.to] = e.from
pentru fiecare Edge e in Edges(G) executa
/* paralelizare implementata aici */
daca dist[e.from] + length(e) < dist[e.to] executa
error("graful conține cicluri sau lungimi negative")
return predecesor
În primul caz, trebuie să fie luaţi în considerare timpii de execuţie pentru algoritmii
secvenţiali, prezentați în Fig. 3.10. Este evident că algoritmul Floyd-Warshall este mai lent,
deoarece este un tip de algoritm de drumuri minime care poate consuma mai mult timp pentru
execuţia sa; plecând de la această concluzie, acest algoritm nu va fi testat în următoarele
cercetări. În Fig. 3.11 este prezentat timpul de execuție pentru cei doi algoritmi, Dijkstra și
Bellman Ford (secvențiali și paraleli propuși) în contextul unor exemple de test crescătoare ca
volum de date. Totuşi, există o serie de abordări în paralel eficiente, care pun în practică strategii
utile pentru acest tip de algoritmi. Luând în considerare rezultatele studiului practic şi ordinul
de complexitate pentru fiecare dintre algoritmi, Dijkstra este mai eficient decât Bellman-Ford
pentru implementarea secvențială. Strategia propusă de algoritmul Bellman Ford nu este
recomandată pentru rețele de capacitate foarte mare pentru că are o serie de dezavantaje.
27
Figura 3.10 Graficul rezultat din testele efectuate pentru algoritmii secvențiali cu numere diferite de
noduri în graf [POP, 2016, c]
Figura 3.11. Graficul rezultatelor pentru evaluările ca timp pentru patru tipuri diferite de algoritmi
[POP, 2016, c]
3.2.4 Concluzii
Capitolul al treilea propune noi metode de implementări paralele pentru utilizarea
celor mai populari algoritmi pentru cea mai scurtă cale. Această metodă este utilă în unele cazuri
de aplicare, cum ar fi sistemele de grupare de informaţii asociate unui graf cu o înălțime mică,
dar densitate mare de noduri. Algoritmul Bellman-Ford oferă perspective în protocoalele de
rutare la distanţă, pentru rutele optime. Floyd-Warshall este utilizat în aplicaţii în care se dorește
găsirea căii cu debitul maxim între două noduri, pentru calcularea rapidă a rețelelor de
informaţii. Algoritmul Viterbi este utilizat pentru aplicarea algoritmilor de programare
dinamică la maximizarea problemelor care implică probabilități, pentru analiza vocii şi pentru
sistemele de probabilitate pentru drumuri. George Dvorsky [DVO, 2014] a încercat să explice
care sunt cei mai importanți algoritmi în zilele noastre. El a făcut un top de algoritmi după
impactul major şi algoritmul lui Dijkstra este pe locul al treilea, în urma algoritmilor de sortare
şi transformată Fourier. Chiar şi atunci când avem soluţii mai bune la problema de a găsi calea
cea mai scurtă, algoritmul lui Dijkstra este încă folosit în sistemele care necesită stabilitate.
În ultimul subcapitol au fost aduse aporturi privind:
1. Testarea și compararea algoritmilor secvențiali pentru cel mai scurt drum (Dijkstra,
Bellman-Ford, Floyd-Warshall, Viterbi).
28
2. Pe baza algoritmul de paralelizare propus din Fig. 3.5, pentru algoritmul Dijkstra s-a
identificat un model de grafuri favorabil (ca în exemplul din Fig. 3.9). Au fost definite
3 modele generale de grafuri pentru cazurile favorabile, nefavorabile sau mixte.
3. Strategia de paralelizare a fost extinsă și către algoritmul Bellman-Ford.
4. Algoritmii implementați au fost testați din punct de vedere al timpilor de execuție,
rezultatele fiind prezentate în Tabelul 3.3 și în Fig. 3.12.
În partea de analiză sunt explicate strategiile alese pentru soluțiile paralele existente
astăzi și comparații cu metoda implementată. Se poate afirma că soluția de paralelizare
propusă în teză este specifică unei configurații aparte. În prezent există și alte strategii propuse,
luând în considerare sistemele de grupare pentru testele cu un număr mare de noduri şi muchii.
4. EVALUARE ÎN PARALEL ȘI PROCESARE ÎN TIMP REAL A
UNOR SEMNALE DE VIBRAȚII FOLOSIND TEHNOLOGIA
FPGA
4.1 Introducere
Acest capitol tratează o serie de aplicații de prelucrare paralelă pentru semnale de
vibrații dezvoltate în cadrul proiectului [TEH, 2017], desfășurat de către Universitatea din
Craiova în parteneriat cu firma S.C. Vonrep S.R.L, în cadrul căruia am participat ca membru în
echipa de cercetare. Una dintre soluțiile pentru monitorizarea semnalelor de vibrații poate
fi realizarea unui sistem de achiziție local, care să poată prelucra datele local și să fie capabil să
transmită informațiile prelucrate la un nivel superior de calcul. Luând în considerare cazul
practic al semnalelor de vibrații, sistemul local trebuie să aibă o viteză de achiziție mare pentru
a facilita prelucrări în timp real. Se spune că, prin această metodă, prelucrarea și achiziția se
realizează aproape de sursa de generare a semnalelor, în timp real și astfel rezultatele prelucrării
au un număr de octeți pentru transfer mult mai mic. Mai mult, ideea procesării datelor cât mai
aproape de sursă poate rezolva problema inundării canalelor de comunicație cu fluxuri de date
mari. Toate acestea au determinat compania National Instruments să propună introducerea unui
circuit FPGA (Field Programmable Gate Array) între sistemul de achiziție și procesorul de
timp-real având ca efect prelucrarea în timp real a datelor direct la sursa de apariție a lor, iar
rezultatele prelucrării au, evident, un număr mai mic de octeți ce pot fi transportați mai ușor în
spațiul IoT. În Fig. 4.1. este prezentată arhitectura principală a circuitelor FPGA în comparație
cu o arhitectură clasică de sistem cu microprocesor. Există o serie de factori care trebuie luați
în calcul în timpul proiectării aplicațiilor la nivel FPGA. De asemenea, tehnologia FPGA oferă
o serie de avantaje cheie, cum ar fi: Risc în proiectare scăzut; Costuri reduse; Economie de
spațiu pe placa de circuit imprimat. Unul dintre cele mai mari avantaje este flexibilitatea, pentru
că aceste dispozitive sunt complet programabile. Arhitectura din Fig. 4.1 [POP, 2017, a], [FPG,
2009] permite dezvoltarea de aplicaţii folosind microprocesoare împreună cu hardware
programabil realizat cu circuite FPGA.
29
Figura. 4.1. Arhitectura principială a circuitelor FPGA comparativ cu
Arhitectura de sistem cu microprocesor [POP, 2017, a]
Dezvoltarea software se poate realiza în mediul de dezvoltare grafică LabVIEW şi
astfel se combină fiabilitatea şi robustețea automatelor programabile (PLC - Programmable
Logic Controller), cu performanțele unui PC (Personal Computer), cu flexibilitatea circuitelor
FPGA (Field Programmable Gate Array). Astfel, rezultatele prelucrării se realizează în timp
real, ceea ce conduce la obținerea de decizii rapide pentru proces. Arhitectura sistemului NI
PAC Compact RIO este prezentată în Fig.4.2. Avantajele logicii FPGA sunt:
1. Performanțe mai bune;
2. Posibilitatea efectuării de operații paralele;
3. Implementarea paralelă care duce la optimizarea performanțelor și/sau a costului;
4. Răspuns rapid la intrări multiple, simultane.
Dezavantajele logicii FPGA sunt:
1. Aplicațiile de tip mașină de stare sau de control sunt mai dificil de programat;
2. Resursele logice cresc odată cu creșterea complexității.
➢ Bloc de Memorie
➢ Configurare Logică
➢ Procesare Digitală
➢ Interconexiuni
programabile
➢ Bloc Intrări/Ieșiri
Algoritm.exe Date
de
Date
de
Date
de
Date
de
Date
de
Date
de
Task 1
Task 2
Figura 4.2. Arhitectura PAC- Programmable Automation Controller [NIC, 2018]
30
4.2 Arhitectura sistemului de achiziție
Arhitectura de sistem de achiziție și prelucrare propusă este prezentată în Fig. 4.3 și
stă la baza tuturor aplicațiilor, prelucrărilor și concluziilor din paragrafele următoare.
Configurarea acestei arhitecturi are la bază sistemul NI Compact RIO, dezvoltat de firma
National Instruments, ce reprezintă o inovație la nivel de prelucrare numerică. Ideea inovativă
se bazează pe inserarea între arhitectura de sistem cu microprocesor și sistemul de achiziții de
date (convertoarele CAN și CNA) a unui circuit FPGA care conduce la timpi de prelucrare
numerică extremi de mici [NIC, 2018]. În cadrul acestei figuri este reprezentat fluxul
transferului de informație: de la vibrația generată la nivelul structurii mecanice, prin intermediul
accelerometrului, la nivelul modulului sistemului de achiziție, prelucrarea de la nivel FPGA,
prelucrare la nivel procesor real-time al Compact RIO și până la nivel PC. Toate acestea
înglobează un sistem de prelucrare rapid, la nivelul sursei de producere a evenimentului. În Fig.
4.4 sunt prezentate:
a) Arhitectura sistemului de testare;
b) Conectare traductoare de vibrații la NI Compact RIO;
c) Detaliile de conectare magnetică a traductorului de vibrații pe structura mecanică.
d) Detaliile de conectare magnetică a traductorului de vibrații pe structura mecanică-2.
Figura 4.3. Arhitectura propusă, bazată pe sistemul de test, utilizat pentru calculul distribuit
NI Compact RIO-FPGA NI Compact RIO-Procesor RT
NI Compact RIO-
Modul sistem de
achizitie
Accelerometru
Structura mecanică
Computer PC
Figura 4.4. Stand experimental pentru testarea tehnologiei de prelucrare în timp real
a semnalelor de vibrații
31
Semnalele sunt achiziționate pe cele 3 axe cu ajutorul unui accelerometru (cod:603C01
produs de firma PCB Piezotronics), după care, cu ajutorul sistemului NI CompactRIO pot fi
prelucrate prin intermediul unor algoritmi corespunzători, în scopul analizei cât mai rapide a
rezultatelor. Avantajul acestei structuri constă în faptul că permite o procesare sau preprocesare
la nivelul sursei de vibrații, cu un cost redus. Pentru testarea algoritmilor propuși, a fost realizat
un stand experimental ce constă într-un motor de acționare și un ax poziționat pe două lagăre,
prezentat în Fig 4.5. Vibrațiile sunt sesizate cu ajutorul unor senzori piezoelectrici al căror
semnal de ieșire este aplicat unui circuit de condiționare de semnal, pentru a putea fi apoi
transformat în semnal numeric, utilizând un sistem de achiziție. Aplicația este implementată în
LabVIEW - un mediu de dezvoltare bazat pe un limbaj de programare grafic - pentru a compila
și ulterior a rescrie memoria FPGA-ului este nevoie de o perioadă de aproximativ 35 de minute.
Pentru generarea vibrațiilor vor fi utilizate 2 scenarii diferite de lucru:
1. Sistem ax circular cu rulmenți la capete și fulie de transmisie în interior (Fig.4.5);
2. Sistem masiv de transmisie semnal de vibrații tip șoc – bară metalică (Fig.4.6).
În cadrul acestor două figuri, se poate observa poziționarea traductoarelor de vibrații
(transversal, longitudinal și vertical). Se va realiza o achiziție simultană pe cele trei axe.
În exemplul din Fig. 4.7 este prezentat un accelerometru cu discuri piezoelectrice
comprimate. Acest tip de accelerometru reprezintă un captor seismic în care discurile ceramice
formează elementul elastic al sistemului masă-arc. Elementul piezoelectric este cuprins între
masa seismică şi baza captorului. Sub acțiunea vibrațiilor, masa creează o forță variabilă asupra
discurilor piezoelectrice. Sarcina electrică este proporțională cu forța aplicată, care la rândul ei
este proporțională cu accelerația masei.
Figura 4.5. Sistem ax circular cu rulmenți
la capete și fulie de transmisie în interior
Figura 4.6. Sistem masiv de transmitere
vibrații de tip șoc
Figura 4.7. Accelerometrul piezoelectric cu discuri piezoelectrice comprimate
32
4.2.1. Schemele generale ale scenariilor de achiziție și prelucrare propuse
Tehnologia propusă de NI Compact RIO combină un procesor de timp real încorporat,
un FPGA de înaltă performanță și module de tip I/O care se pot monta pe sloturile sale. Fiecare
modul I / O montat este conectat direct la FPGA. FPGA este conectat la procesorul încorporat
de timp real prin intermediul unei magistrale PCI duplex de mare viteză. LabVIEW conține
mecanisme integrate de transfer de date, utilizate pentru a transmite date către FPGA din
modulele de intrare / ieșire și de asemenea la procesorul încorporat de la FPGA. Aceste
transferuri sunt utilizate pentru analiza în timp real, prelucrarea datelor, stocarea datelor sau
comunicarea cu un computer conectat. Partea de prelucrare propusă în teză a fost realizată sub
forma unor scenarii de testare, accentul este pus pe comparația rezultatelor obținute pentru
diferite cazuri de generare de semnale de vibrații .
Cazul 1: Procesare FFT la nivelul circuitului FPGA
Conform structurii standului realizat și prezentat în Fig. 4.3, Fig. 4.4, se achiziționează
semnale de vibrații generate în timp real de pe cele 3 axe (Orizontală, Longitudinală și
Verticală) cu ajutorul senzorilor montați cu ajutorul magneților direct la sursa de vibrație,
respectiv, pe carcasa rulmentului. Acești 3 senzori sunt conectați la modulul CAN al sistemului
Compact RIO, iar la nivelul circuitului FPGA se realizează prelucrarea semnalului prin FFT.
După ce din semnalul de vibrații a fost achiziționat numărul de eșantioane stabilit și prelucrat
în paralel la nivelul circuitului FPGA, rezultatele se transmit la nivelul micro-procesorului Real
Time, unde se realizează o serie de alte prelucrări. La final, rezultatele sunt afișate pe unitatea
de lucru în format grafic. În Fig. 4.8 este prezentată diagrama generală de calcul care înglobează
cele 5 faze ale sistemului, denumite pe scurt astfel: generare vibrații, sistem de achiziție, FPGA,
Procesor RT, PC. Se poate observa, pe întreg fluxul, că achiziția, dar și prelucrarea se realizează
în paralel, independent pentru cele 3 axe (x, y, z) și că rezultatele se generează simultan. În
cadrul sistemului Compact RIO sunt prevăzute, pentru transfer de informații și conexiune, un
sistem DMA (DMA FIFO – Dynamic Memory Allocation cu stivă FIFO (First input – First
out)) plasat între FPGA și Procesorul RT și un sistem TCP/IP de comunicație între Procesorul
RT și PC. Cele 3 cazuri propun următoarele scenarii: calculul pentru FFT la nivel FPGA pentru
cazul 1, la nivel Procesor RT pentru cazul 2, la nivel PC pentru cazul 3.
Figura 4.8. Diagramă generală de prelucrare a FFT pentru cele 3 scenarii
33
Figura 4.9. Schema sistemului de prelucrare FPGA + Procesor
În Fig. 4.9 este prezentată o schemă minimalistă pentru cazul 1, cu calculul FFT la
nivel FPGA în care se observă că partea de analiză se poate realiza la nivel PC. În cadrul
sistemelor industriale se poate aplica la nivel FPGA un algoritm complex care să transmită
numai informații despre proces, cu două stări, adevărat sau fals. Astfel, partea de transfer de
informații la nivel PC se elimină, timpul de calcul nu mai necesită și transfer la PC și analiza
se realizează mult mai rapid.
Cazul 2: Procesare FFT la nivel Microprocesor
Spre deosebire de primul caz, acest scenariu de test presupune o procesare directă la
nivel Procesor Real Time și doar o transmitere a informațiilor achiziționate la nivel FPGA.
Calculul este desfășurat la nivel microprocesor, fără a implica posibilitatea de preprocesare
FPGA. Aceste două scenarii vor genera timpi diferiți de calcul pentru cele două procesări. Se
va prezenta o analiză a rezultatelor, din punct de vedere al timpilor obținuți pentru
prelucrarea în paralel a celor 3 semnale de vibrații. Mai mult, se va prezenta oportunitatea
folosirii modalității de preprocesare la nivel FPGA. Inovația propusă constă în achiziția și
prelucrarea simultană pe cele 3 axe pentru semnalele generate, acest lucru fiind tratat prin
două scenarii distincte. Utilizarea logicii încorporate FPGA poate aduce beneficii la nivel de
timp de prelucrare. Accentul este pus pe realizarea calculului aferent transformatei Fourier la
nivel de FPGA pentru a preprocesa informațiile și a nu le transmite în format direct. Mai mult,
această preprocesare „la sursă" scade în mod considerabil timpul de execuție pentru setul de
eșantioane prelucrate. Elementul de noutate este dat de aplicarea tehnicilor de calcul
simultane și independente pentru cele 3 componente Ox, Oy și Oz cu ajutorul sistemului
FPGA în timp real. În cazul unor sisteme, când este nevoie de transport de informație pentru o
distanță mai mare, acest sistem de achiziție înglobează avantajul achiziției și prelucrării
încapsulate pentru cele 3 valori, dar aduce și o reducere considerabilă de volum de informație
transportată. Practic, implementarea în limbajul C a mediului vizual de lucru abordează un
calcul independent pentru cele 3 axe și stocarea informațiilor în stive de tip FIFO. Mecanismul
întreruperilor este de asemenea utilizat, dar și mecanismul buclelor de așteptare în cazul
achizițiilor, dar și al prelucrărilor.
Cazul 3: Procesare FFT la nivel PC
34
Cazul 3 prevede procesarea transformatei Fourier la nivel de calculator PC, spre
deosebire de primele două scenarii, acum, la nivelul circuitul FPGA și procesorul Real-Time
se realizează achiziția și se transmite semnalul către PC. Acest scenariu presupune transferul
informațiilor neprelucrate prin FPGA, Procesor RT până la PC, unde se realizează prelucrarea.
Acest scenariu presupune aplicarea transformării FFT la nivel PC și utilizează mediul Compact
RIO doar pentru achiziție și transfer de date.
4.3. Dezvoltarea aplicației software de prelucrare
Aplicația software propusă are la bază posibilități de distribuire și optimizare a
prelucrării în paralel pentru 3 semnale de vibrații măsurate pe 3 axe (Orizontal, Longitudinal și
Vertical) ale unei structuri mecanice analizate. La nivel FPGA, avem fișierul
m_FPGA_function.vi care va fi compilat și încărcat chiar în circuitul FPGA. La acest nivel se
realizează prelucrări complexe precum: achiziție simultană a celor 3 semnale de vibrații,
prelucrare paralelă prin FFT (transformată Fourier), transmiterea datelor prelucrate către
procesorul real-time (plasat în arhitectura Compact RIO). Fișierul m_RT_function.vi este alocat
procesorului RT încorporat, care poate efectua operații complexe, specifice procesoarelor
CISC. Acest procesor realizează gestiunea rezultatelor prelucrării propuse. Totodată, la acest
nivel se regăsește și comunicarea cu un sistem de pe un nivel superior pentru sincronizare și
coordonare. La nivel de calculator PC este alocat fișierul m_PC_function.vi. Acesta este
instrumentul virtual care reprezintă aplicația implementată. La acest nivel se mai poate realiza
prelucrarea sau transmiterea la nivelul unui sistem SCADA/HMI a informației, gestiunea unui
volum mai mare de informații, o arhivă a datelor etc.. În Fig. 4.10 se poate observa definirea
celor 3 stive FIFO (First Input First Out) care sunt utilizate la nivelul FPGA pentru stocarea
semnalelor achiziționate. În această figură este prezentată de fapt arhitectura proiectului.
Figura 4.10. Arhitectura aplicației la nivel software de achiziție și prelucrare paralelă în timp real
implementată în mediul de dezvoltare grafică LabVIEW
35
4.3.1. Cazul 1. Prelucrare FFT la nivel FPGA
În Fig. 4.11 este prezentat modul de lucru al blocului LabVIEW utilizat pentru
calcularea transformatei Fourier rapide (FFT). Se pot observa partea de achiziție, de prelucrare
și de răspuns a blocului. Începând cu al 3-lea set de eșantioane achiziționate, se poate spune că
blocul execută trei operațiuni în același timp:
1. Citește un set de eșantioane (testele principale s-au realizat prin achiziția a 4096 de
eșantioane preluate la viteza de 102.4 KS/sec pe 3 canale de achiziție simultan);
2. Prelucrează setul de eșantioane preluat anterior;
3. Transmite rezultatele prelucrării anterioare.
Figura 4.11. Descrierea modului de lucru al blocului FFT disponibil la nivel FPGA
Fig
ura
4.1
2.
Dia
gra
ma
de
tim
p ș
i si
ncr
oniz
are
pen
tru p
roce
sare
sem
nal
e d
e vib
rați
i la
niv
el d
e ci
rcuit
FP
GA
36
În Fig. 4.12 este prezentată diagrama de timp și sincronizare pentru procesare la nivel
de circuit FPGA, continuată cu transmiterea rezultatelor la procesorul RT (prin DMA), pentru
afișare continuată apoi cu transmiterea la calculatorul PC pentru afișare (prin TCP/IP).
Procesorul RT este pe post de MASTER, iar circuitul FPGA și calculatorul PC sunt SLAVE.
Primul pas îl reprezintă pornirea sistemelor sincronizate, respectiv: Aplicația de la
nivelul circuitului FPGA (Start FPGA), care va aștepta să pornească procesorul RT (Start
FPGA) (setare IP, load bitfile.exe).
În mod asemănător, și aplicația de la nivel PC este pornită și așteptă un timp mai lung,
până când va primi confirmarea (ACK1-RT) de la nivel RT. După ce aplicațiile de la nivel
FPGA și RT sunt sincronizate următorul pas este dat de ACK0 prin care aplicația FPGA
așteaptă setarea FIFO de la nivel RT. După ce a fost configurată stiva FIFO și a fost transmisă
confirmarea către aplicația FPGA se începe achiziția setului de eșantioane E1 (4096 de
eșantioane), prelucrarea, în paralel cu achiziția, și totodată, tot în paralel (eșantion cu eșantion),
informațiile se scriu în FIFO. Pe parcursul acestui proces aplicația de la nivel RT așteaptă
scrierea întregului set de eșantioane. În momentul finalizării acestui proces (confirmat de ACK-
FPGA) se începe citirea FIFO la nivel RT și plotarea, timp în care aplicația de la nivel FPGA
este întreruptă (se așteaptă semnalul ACK1-RT). În acest stadiu, la nivel RT se realizează și
scrierea către PC cu ajutorul protocolului TCP/IP. În acest moment, se poate spune că primul
ciclu se încheie și odată cu semnalul ACK1- RT, de la nivel RT, se declanșează următorul ciclu
de achiziție/prelucrare la nivel de FPGA pentru următorul set de eșantioane. Începând cu al
doilea ciclu, mecanismul de sincronizare FPGA RT este asemănător, dar se marchează activarea
aplicației de la nivel PC unde se citesc informațiile transmise prin TCP/IP, se poate realiza o
plotare sau alți algoritmi de prelucrare, după care se așteaptă următorul eșantion.
La nivel FPGA, pentru ciclul al doilea se realizează achiziția setului de eșantioane E2,
calculul FFT pentru setul de eșantioane E1. În acest moment, blocul FFT de la nivel FPGA
încă nu furnizează ieșiri și din această cauză vom efectua o plotare la nivel RT „falsă". Începând
cu al treilea ciclu, specific celui de-al treilea set de eșantioane E3, la nivelul aplicației FPGA se
realizează o achiziție, calcul FFT pentru E2 și output FFT pentru E1 și la nivelul aplicației RT
se va plota răspunsul prelucrat al FFT pentru E1. Practic acest mecanism presupune că se citesc
informațiile continuu, fără pierderi și se pot prelucra complet, conform blocului de la nivel
FPGA cu o întârziere de ieșire de două seturi de eșantioane (frame-uri). Se poate spune că astfel
se realizează o achiziție, prelucrare completă, rapidă și aproape de sursă. Acest lucru este util
pentru a se realiza o achiziție/prelucrare la viteza de achiziție a modulului hardware de 102.4
kS/sec. Această procedură propusă în teză este inovativă și înglobează cea mai bună variantă
din punct de vedere al achiziției de semnal, al timpului de calcul ce permite în mod real
prelucrare paralelă. În cadrul figurii 4.13, este prezentată arhitectura (diagrama) aplicației
dezvoltată cu ajutorul mediului de programare grafică LabVIEW.
37
4.3.2. Cazul 2. Prelucrare FFT la nivel Microprocesor RT
În acest caz achiziția se realizează la nivel de circuit FPGA, după care rezultatele se
transmit la procesorul RT (prin DMA) pentru prelucrare prin FFT + afișare, după care se
transmit la calculatorul PC pentru afișare (prin TCP/IP). Procesorul RT este pe post de
MASTER, iar circuitul FPGA și calculatorul PC sunt SLAVE. În acest caz, la nivel FPGA, se
efectuează doar achiziția semnalelor de vibrații. În acest caz, datorită timpului de așteptare la
nivel FPGA pentru terminarea prelucrării la nivelul procesorului RT, se pierd eșantioane, adică
pe perioada de prelucrare la nivel de procesor RT nu se mai pot achiziționa eșantioane. Se poate
specifica faptul că, și în acest caz, achiziția semnalelor de vibrații se realizează în mod
paralel/simultan pe cele 3 canale de achiziție, dar prelucrarea este realizată ulterior după ce setul
de 4096 x 3 canale a fost transmis la nivelul procesorului RT. După realizarea prelucrării la
nivel de procesor RT se trimit rezultatele (spectrul de putere) către un calculator PC pentru
prelucrări suplimentare. Mecanismul de sincronizare a aplicațiilor la nivel circuit FPGA,
procesor RT și PC este identică cu cazul 1, diferența fiind realizarea prelucrării FFT asupra
semnalelor la nivel de procesor RT.
4.3.3. Cazul 3. Prelucrare FFT la nivel PC
În Fig. 4.14 este prezentată diagrama de timp și sincronizare pentru achiziție la nivel
de circuit FPGA, după care rezultatele se transmit la procesorul RT (prin DMA), ulterior
transmițându-se la calculatorul PC (prin TCP/IP) pentru FFT + afișare. Procesorul RT este pe
post de MASTER, iar circuitul FPGA și calculatorul PC sunt SLAVE. Se poate spune că, în
Fig
ura
4.1
3.
Arh
itec
tura
apli
cați
ei d
ezv
olt
ată
în m
ediu
l
Lab
VIE
W p
entr
u n
ivel
ul
de
circ
uit
FP
GA
38
acest caz, aplicația FPGA are rol doar de achiziție, cea de la nivel RT doar intermediar, de
transfer, iar calculul se realizează la nivel PC. Practic, primele două aplicații implementează
același mecanism de sincronizare pentru a transfera datele/ informațiile neprelucrate la nivel
PC. Astfel, prelucrarea se realizează într-un timp mai mare decât în primele două cazuri.
Totodată, chiar dacă achiziția eșantioanelor se face simultan pe trei canale (la nivel FPGA),
prelucrarea se realizează ulterior, când setul de eșantioane ajunge prin comunicație la
calculatorul PC. În acest caz se realizează o prelucrare off-line a semnalelor. La aceste chestiuni
se adaugă și faptul că pe intervalul de timp al transmisiei către calculatorul PC și al prelucrării
la nivelul acestuia, achiziția este oprită, deci se pierd eșantioane de vibrații, adică achiziția și
prelucrarea nu mai sunt continue. Acest lucru confirmă din punct de vedere practic propunerea
din teză. Se poate spune că acest model ar avea un impact negativ mai mare în cazul unor
algoritmi mult mai complecși care nu pot fi interpretați la nivel FPGA sau RT intern.
În teză este prezentată și diagrama de timp și sincronizare pentru procesare totală la
nivel de circuit FPGA, după care semnalele nu se mai transmit la procesorul RT sau la
calculatorul PC, ci doar un rezultat „OK/FAULT”. Procesorul RT este pe post de MASTER,
iar circuitul FPGA și calculatorul PC sunt SLAVE. Se poate observa că timpii de prelucrare a
grupelor de eșantioane sunt aproape neîntrerupți, iar timpii de așteptare pentru sincronizare cu
procesorul RT sunt extrem de mici. Această abordare poate genera o posibilă aplicație pentru
mediul industrial care să determine în timp real erorile apărute la nivelul structurilor
monitorizate (exemplu de utilizare pentru Campact Rio 9024 în [POP, 2018, a]). În acest
Fig
ura
4.1
4.
Dia
gra
ma
de
tim
p ș
i si
ncr
oniz
are
pen
tru
pro
cesa
re s
emnal
e de
vib
rați
i la
niv
el P
C
39
scenariu, la nivel FPGA, este realizat întregul algoritm de prelucrare și acesta transmite doar
rezultatul OK/FAULT, timpii dintre ACK-FPGA și ACK-RT tinzând către 0. Aceasta reprezintă
un sistem „embedded" și, în acest caz, timpii de comunicare care se adaugă prelucrării la nivel
FPGA sunt foarte mici (transfer de 2 octeți). În urma analizei soluției dezvoltate în cadrul
proiectului [TEH, 2017], s-a constatat și o problemă practică: costul echipamentelor hardware
este destul de ridicat. Echipamentele hardware utilizate, cum ar fi sistemul Compact RIO, care
reprezintă un echipament inovativ și profesional, costă peste 10.000 euro, iar dacă se vor adăuga
module de achiziție, costul va crește semnificativ. Chiar acesta este avantajul ideii inovative
propuse în cadrul tezei care utilizează tehnologia introdusă de firma Național Instruments.
Aceasta permite dezvoltarea programului din circuitul FPGA prin limbajul grafic LabVIEW,
foarte simplu de folosit, acesta generând productivitate ridicată la nivel de dezvoltare software.
4.4. Rezultate experimentale
Performanțele de procesare în timp real sunt obținute prin diferite metode specifice
aplicațiilor de timp real, cu cea mai mare parte a procesării realizată la nivelul circuitului
FPGA. Optimizarea performanței la nivel de circuit FPGA poate fi evidențiată prin creșterea
vitezei de procesare, ca urmare a utilizării sistemelor de porți logice dedicate [POP, 2018, b].
Astfel, principala tehnică de creștere a performanței este de a reduce pe cât posibil
complexitatea logicii combinatorice. Evident, o logică complexă combinatorică ocupă multe
perioade de ceas. După simplificarea logicii, se poate merge mai departe prin împărțirea codului
în sarcini discrete mici și încercarea de a efectua procesarea paralelă a acestora.
4.4.1. Performanța în timp
Pentru operația de compilare a codului de la nivelul circuitul FPGA au fost selectați
ca parametri:
1) Strategia de proiectare: varianta echilibrată;
2) Obiectivul optimizării: variantă de viteză, cu un efort normal;
3) Nivelul general de efort al matricei de configurație: ridicat;
4) Rută și spațiu: nivel standard.
Fig. 4.15 prezintă rezultatul comparativ al utilizării resurselor pentru primele două
scenarii propuse în cadrul acestui capitol. Se poate observa că, în primul caz propus, nivelul
utilizării resurselor este mult mai ridicat. În acest caz s-a încercat optimizarea resurselor; o
serie de probleme de limitare au fost întâmpinate la nivel de blocuri DSP și blocuri RAM. Se
poate observa că numărul de blocuri RAM este la limitat. Una dintre principalele diferențe
aduse de procentele de utilizare este dat de calculul transformării și utilizării blocului FFT
pentru cele două procesări în paralel. Problema resurselor nu mai este de actualitate, la nivel
FPGA se realizează doar partea de transfer de informații neprelucrate. Modelele proiectate cu
sistem de transfer DMA folosesc capabilitățile de procesare paralelă ale FPGA pentru a spori
eficiența codului secvențial.
40
În Fig. 4.16 este prezentat gradul de utilizare al procesorului de timp real al sistemului
Compact RIO în cele trei cazuri: procesarea prin Transformarea Fourier a celor trei semnale de
vibrație Ox, Oy, Oz la circuitul FPGA. Se poate observa cu uşurinţă că nu există o încărcare
foarte mare a procesorului în timp real în cazul 2 și cazul 3, dar se preiau doar rezultatele FFT.
Unul dintre avantajele majore ale acestor metode propuse în teză este că tehnologia FPGA este
ușor de rescris și permite dezvoltarea unor probleme cu algoritmi diverși. În cadrul celor trei
cazuri de prelucrare paralelă propuse în teză, pentru cele trei semnale de vibrații, se poate
observa nivelul de utilizare al procesorului după cum urmează:
1) În primul caz se observă utilizarea procesorului RT de la nivel Compact Rio cu un procent
de 41%, acest procent este obținut cu ajutorul prelucrărilor efectuate la nivel FPGA care
diminuează din calculul procesorului RT;
2) În al doilea caz, în care procesorul RT realizează mare parte a calculului, tratează
scenariul 2 propus (FFT la nivel RT). Astfel se obține o utilizare mai ridicată, de 65%
pentru procesorul RT;
3) În al treilea caz propus, se observă că nivelul de utilizare este asemănător cu cazul 2,
pentru că arhitecturile de procesor sunt asemănătoare, pentru procesorul de la nivel PC.
Figura 4.15. Starea configurației fișierului compilat din cazul 1 (FFT la nivel FPGA) vs. cazul
2 (FFT la nivel procesor RT)
41
Rezultatul complet la nivel de timp de prelucrare din momentul achiziției unui eșantion
și până la obținerea datelor prelucrate este prezentat în Fig. 4.17. Practic în cele trei scenarii se
obțin următorii timpi: 49168 µs, 77721 µs și 90328 µs. Aceste rezultate confirmă ideea din acest
capitol și argumentează una dintre inovațiile propuse: de prelucrare în timp real cu eficiență
de timp. Se poate spune că, timpul de transfer, timpul de stocare și de prelucrare mărește timpul
total de obținere a rezultatelor pentru scenariile 2 și 3. Aceste rezultate confirmă și argumentul
de prelucrare la sursa de apariție a evenimentelor, cu atât mai mult, în cazul semnalelor de
vibrații care au un comportament dinamic. Varianta propusă în teză de prelucrare la sursă
împiedică apariția unor probleme la nivelul conectării traductoarelor de vibrații pe cabluri lungi
care creează pierderi de informații.
4.4.2. Spectre obținute în diverse scenarii pentru motor
4.4.2.1 Cazul 1. Prelucrare la nivel FPGA
În Cazul.1 aplicația implementează în mod paralel realizează:
➢ achiziția simultană a 4096 eșantioane din fiecare semnal de vibrații de pe cele trei axe
(Ox, Oy, Oz);
➢ calcul FFT;
➢ sincronizarea comunicației cu procesorul RT din structura sistemului CompactRIO;
Figura 4.16. Utilizarea unităților de procesare pentru cele trei cazuri propuse în acest capitol
Caz 1. Circuit FPGA Caz 2. Procesor RT Caz 3. PC
Figura 4.17. Timpii obținuți pentru prelucrare la nivel de frame pentru cele trei scenarii
42
Scenariul de achiziție în cazul unui sistem mecanic format din 2 rulmenți atașați unui
ax, care este învârtit de un motor cu turația în jur de 1900rot/min este prezentat la nivel software
în Fig. 4.18. În Fig. 4.18 este prezentată interfața aplicației software de achiziție și prelucrare
paralelă în timp real, implementată la nivelul circuitului FPGA din arhitectura sistemului
CompactRIO, unde doar afișarea se realizează la nivel de calculator PC. Spectrul de putere
realizat la nivelul circuitului FPGA este transmis prin intermediul procesorului RT din
arhitectura sistemului CompactRIO către un calculator PC. Fig. 4.19 prezintă aceeași aplicație
de achiziție/prelucrare în paralel a celor 3 semnale de vibrații, unde pe lângă vibrația datorată
învârtirii axului cu rulmenți, s-a mai generat și un impuls de „șoc” prin lovirea structurii
mecanice cu un ciocan. Se poate observa o extindere a benzii spectrului de putere a semnalului
măsurat prin suprapunerea șocului generat peste vibrația normală a axului mecanic. Astfel,
comparativ cu Fig. 4.18, spectrul de putere realizat se extinde acum până la frecvențe de peste
40kHz. Imaginea din Fig. 4.19 prezintă efectiv prelucrarea a 3 seturi de câte 4096 eșantioane
preluate în paralel pe cele 3 canale de achiziție (Ox, Oy, Oz) la nivel de circuit FPGA. Sistemul
CompactRIO, prin modulul de achiziție, lucrează la o viteză de 102,4 kS/sec (din catalog), de
unde rezultă o perioadă de eșantionare de 9,7µs. În Fig. 4.19 se poate observa creșterea benzii
de frecvență în spectrul de putere. Timpul total de achiziție și prelucrare a celor 3 seturi de
eșantioane (frame-uri) preluate simultan pe 3 canale, precum și timpul de comunicație, este
Ttotal_frame=49335 µs. În aplicația de timp real din FPGA din Fig. 4.39. perioada de eșantionare
este măsurată efectiv și are valoarea Te_FPGA=9.7 µs. Timpul total de achiziție și prelucrare
măsurat la nivel FPGA este de Tachiz_prel= Te_FPGA * Nr.Eșantioane_Frame =(9.7 µs) * (4096
Eșantioane) => Tachiz_prel =39731.2 µs. Se poate observa în timp real paralelismul achiziției și
prelucrării prin faptul că șocul este achiziționat simultan pe cele 3 canale alături de prelucrarea
la nivel de circuit FPGA.
Figura 4.18. Interfața aplicației software de achiziție și prelucrare paralelă în timp real, implementată
cu prelucrare la nivelul circuitului FPGA
43
4.4.2.2 Cazul 2. Prelucrare la nivel procesor RT
În scenariul cazului 2, semnalele de vibrații au fost achiziționate simultan pe cele 3
canale reconfigurabile de la nivelul circuitului FPGA, după care au fost transmise prin
comunicație (canal DMA) la procesorul RT din arhitectura sistemului Compact RIO. La nivelul
acestui procesor a fost realizat calculul pentru spectrul de putere. Afișarea grafică a semnalelor
de vibrații achiziționate și a spectrelor de putere realizate se vizualizează în modul Debugger al
aplicației de la nivel de procesor RT. Practic, sunt afișate frame-urile de câte 4096 eșantioane
preluate din semnalele de vibrații achiziționate pe cele 3 canale (Ox, Oy și Oz).
În Fig. 4.20 este prezentat un experiment prin care cele 3 traductoare de vibrații sunt
lovite de o tijă flexibilă conectată pe axul pe care sunt montați rulmenții. La viteza de achiziție
de 102,4kS/sec s-au preluat 16000 de eșantioane, simultan, pentru fiecare din cele trei semnale
de vibrații, ce conțin si aceste șocuri. Se poate observa că distanța în timp între două pulsuri de
tip șoc este aceeași pe fiecare din cele 3 canale fiind de 6400 de eșantioane.
Figura 4.20. Exemplu analiză turație motor
Figura 4.19. Interfața aplicației software de achiziție/prelucrare la nivelul circuitului FPGA unde
s-a introdus și un semnal de tip „șoc”.
44
Frecvența de eșantionare pentru semnalul achiziționat este 𝑓𝑒 = 102,400 𝐾𝑠/𝑠𝑒𝑐,
ceea ce corespunde unei perioade de eșantionare 𝑇𝑒 =1
𝑓𝑒=
1
102,400 𝑠/𝑠𝑒𝑐 = 9,7 µ𝑠.
Perioada dintre două pulsuri de tip șoc este 𝑇2 = 6.400 𝑒ș𝑎𝑛𝑡𝑖𝑜𝑎𝑛𝑒 ∗ 𝑇𝑒 = 6.400 ∗ 9,7 =
0,06208𝑠. Obținem astfel o frecvență de apariție a șocurilor: 𝑓 =1
𝑇2=
1
0.06208𝑠=
16,11 𝑟𝑜𝑡/𝑠𝑒𝑐, ceea ce corespunde unei turații a motorului de
𝑛𝑚𝑜𝑡𝑜𝑟 = 966 𝑟𝑜𝑡/𝑚𝑖𝑛. Conform raportului dintre diametrele (1/2) fuliilor axelor rezultă că
viteza de rotație generată de motor în acest caz este de aproximativ 1932 rot/min.
Figura 4.21. Interfața aplicației software de achiziție și prelucrare paralelă în timp real la nivelul
circuitului FPGA pentru analiza în timp real a unor semnale de vibrații de tip „șoc”.
În Fig.4.21. este prezentată aplicația la nivel de circuit FPGA pentru achiziția unui
semnal de vibrație generat de o șină metalică. În această situație se poate observa foarte bine
sincronizarea semnalului de “șoc” pe cele 3 canale achiziționate.
4.4.2.3 Cazul 3. Prelucrare la nivel procesor PC
Aplicația la nivel de calculator PC a fost dezvoltată tot în mediul de programare grafică
LabVIEW, dar la acest nivel poate fi folosit orice mediu de dezvoltare cu capabilități de
comunicație TCP/IP. Se poate observa simultaneitatea achiziției celor 3 semnale de vibrație
prin faptul că un impuls de „șoc” este sincron afișat pe fiecare semnal de vibrație. Timpul total
de prelucrare crește la valoarea 86301µs și se confirmă noțiunea de prelucrare off-line cu
pierdere de eșantioane.
4.5. Concluzii
În acest capitol din teză a fost propus un sistem de achiziție și analiză de vibrații. Ideea
propusă de achiziție de vibrații a pornit de la problema achiziției semnalelor cu dinamică foarte
rapidă de tipul semnalului de vibrație la rulmenții unui motor. Sistemul de achiziție necesită
plasarea foarte aproape de sistemul mecanic, deoarece o linie de semnal analogic poate fi
perturbată și se pierde astfel informație.
S-a utilizat sistemul dezvoltat de firma National Instruments care oferă posibilitatea
prelucrării la sursă cu ajutorului circuitului FPGA încorporat în varianta Compact Rio 9024,
45
acest sistem a fost utilizat și în [ADC, 2014-2017] pentru un proces de monitorizare al unui
cuptor de coacere. Una dintre probleme principale este că numărul de date (eșantioane)
numerice care trebuie transmis este foarte mare, iar comunicația către un sistem de calcul se
face mult mai lent. Obiectivul principal al sistemului propus este de prelucrare cât mai rapidă a
transformatei Fourier pentru semnalul achiziționat și de transmitere a informațiilor într-un
regim ridicat de viteză. S-a propus un sistem de achiziție paralelă pe trei canale a semnalelor de
vibrații și prelucrarea lor la în timp real. În cadrul acestui capitol s-au prezentat 3 cazuri distincte
de prelucrare la nivelul sistemului Compact Rio 9024:
• Prelucrare la nivel FPGA.
• Prelucrare la nivel RT.
• Prelucrare la nivel PC.
Pentru cele trei cazuri s-au implementat soluții software în mediul de dezvoltare
LabVIEW accentul fiind pus pe paralelism și pe viteza de prelucrare. Rezultate obținute
confirmă că prelucrarea transformatei Fourier rapidă la nivel FPGA este cea mai eficientă din
punct de vedere al timpului de lucru. Această soluție oferă avantaje de prelucrare în timp real,
aproape de sursă și poate fi considerată un sistem local capabil să transmită informații prelucrate
la un nivel superior. Un alt factor inovativ este faptul că se achiziționează semnale pe trei canale
independente și acestea se prelucrează în paralel.
CONCLUZII FINALE
Pornind de la nevoia de dezvoltare și adaptare a algoritmilor la mijloacele noi de calcul,
teza de doctorat cu titlul “Algoritmi performanți pentru prelucrarea imaginilor şi a semnalelor”
a avut drept obiectiv dezvoltarea unor algoritmi moderni la nivel de prelucrare de imagini și
semnale, implementarea și testarea unor soluții software adecvate, în vederea îmbunătățirii
timpului de calcul. Tema dezvoltată în teza de doctorat este de viitor şi încearcă să răspundă
unor probleme legate de optimizarea algoritmilor, îmbunătățirea timpului de execuție, dar
dezvoltă și noi abordări și propuneri eficiente. Pentru atingerea obiectivului asumat, în cadrul
tezei au fost tratate următoarele aspecte:
• Dezvoltarea unor soluții software secvențiale de generare fractală pentru seturile
Mandelbrot și Julia.
• Propunerea unor soluții software de calcul distribuit pentru generarea imaginilor fractale.
• Analiza comparativă a soluțiilor software implementate, analiza la nivel de timp de calcul
și influență la nivel de procesor.
• Dezvoltarea, implementarea și testarea unor soluții de compresie a imaginilor fără
pierderi.
• Implementarea unor soluții de optimizare la nivel de compresie DWT prin optimizarea
unor zone de cod cu ajutorul calcului paralel.
46
• Analiza rezultatelor timpilor de execuție, influenței asupra CPU la nivel de sistem de
compresie a imaginilor.
• Propunerea unor mijloace noi de aplicabilitate pentru compresie rapidă la nivel de imagini
medicale.
• Dezvoltarea, implementarea și testarea unei propuneri de îmbunătățire la nivel de calcul
pentru algoritmul Edge Detection (detectare de muchii), precum și analiza rezultatelor
pentru diferite tipuri de imagini.
• Dezvoltarea unei posibilități de paralelizare la nivelul algoritmilor Shortest Path (pentru
cel mai scurt drum).
• Testarea și compararea algoritmilor Dijkstra, Bellman-Ford, Floyd-Walshall, în varianta
propusă și definirea unui model de utilizare favorabilă.
• Dezvoltarea, implementarea și testarea unor soluții moderne de prelucrare a semnalelor
de vibrații în paralel cu ajutorul sistemului Compact Rio 9024 produs de firma National
Instruments.
• Abordarea comparativă a celor 3 metode de prelucrare FFT propuse, cu soluții de calcul
în diferite zone ale sistemului.
• Analiza rezultatelor și determinarea optimă a variantei de prelucrare a FFT la nivel de
FPGA, cât mai aproape de sursă.
Pentru îndeplinirea obiectivelor propuse a fost important un studiu sistematic și gradat
începând cu elementele de bază necesare descrierii algoritmilor propuși pentru optimizare.
Astfel, în capitolul 1 au fost descrise mulțimile fractale Mandelbrot și Julia. Pornind de la
aspectele matematice și de la nevoile de calcul complex s-a abordat modelul de proiectare a
setului Mandelbrot din subcapitolul 1.2. Soluția software implementată pe baza acestui algoritm
generează exemple de imagini cum ar fi cele din Fig.1.2 sau Fig. 1.3. În cadrul acestui
subcapitol este prezentat și impactul acestor prelucrări la nivel de CPU. Începând cu
subcapitolul 1.2.3 este prezentată varianta de paralelizare la nivel de buclă de parcurgere a
pixelilor. Această soluție este mult mai rapidă decât varianta secvențială acest aspect fiind
reliefat și de rezultatele din Fig. 1.5 și Fig. 1.6 și Fig.1.7 . În concluzie, implementările, testările
și analizele prezentate în Cap.1 sunt un mijloc de testare pentru soluția de compresie din Cap.2
și accentuează diferența mare între timpii de execuție pentru generarea fractală prin soluția
secvențială și cea paralelă.
În capitolul 2 este prezentată metoda de compresie fără pierderi DWT, pornind de la
noțiunile de bază ale algoritmilor de compresie, descrierea metodei de decompoziție diadică,
dar și propunerea unei metode de eficientizare pentru transformata wavelet discretă. Soluția
implementată este descrisă în subcapitolul 2.1 și reprezintă implementarea metodei de
compresie cu ajutorul propunerii software prezentată în subcapitolul 2.2. Această soluție se
bazează pe posibilitatea de înmulțire distribuită a matricelor (coeficienți de filtre) și este
prezentată în Fig. 2.2, alături de diagrama funcțională din Fig. 2.3.
47
Capitolul 3 prezintă o serie de studii pentru posibilități de paralelizare pentru
algoritmul de detectare a muchiilor (Edge Detection), dar şi posibilităţi de utilizare. Astfel, sunt
descrise tipuri diferite de algoritmi „Edge detection”, sunt abordate metodele de detectare
Robert's şi Sobel cărora le sunt aplicate o serie de îmbunătățiri la nivel de arhitectură. În cadrul
subcapitolului 3.1 se regăsesc prezentate soluțiile pe baza înmulțirii în paralel a coeficienților
sau pentru divizare a imaginii, toate aceste soluții conducând la rezultatele comparative
prezentate în Fig. 3.3. Tot în cadrul acestui subcapitol este propusă o soluție de aplicabilitate
practică la nivel de sistem de numărare plante pentru culturi agricole, un răspuns rapid al
algoritmului de detectare fiind principalul punct forte pentru un astfel de produs.
Partea a doua a capitolului 3 tratează soluțiile propuse și implementate pentru
algoritmii de căutare la nivel de graf Dijkstra, Bellman-Ford, Floyd-Warshall. Principala soluție
de paralelizare fiind o metodă inovativă ce presupune nefolosirea rutelor deja parcurse și
începerea căutării independente către toate celelalte noduri. Pe baza acestei soluții sunt
determinate o serie de modele de grafuri favorabile, nefavorabile sau mixte prezentate succint
în Fig. 3.6, Fig. 3.7, Fig. 3. 8.. În cadrul acestui capitol, pornind de la varianta de paralelizare
propusă, modelul este extins și către alți algoritmi de căutare, rezultatele timpilor de calcul fiind
prezentate în subcapitolul 3.2.4.
Capitolul 4 propune o implementare a procesării paralele a unor semnale de vibrații
folosind sistemul Compact RIO 9024 al firmei National Instruments. Unele dintre principalele
avantaje din acest sistem de monitorizare propus sunt prețul scăzut, consumul redus, dar și
răspunsul rapid în conformitate cu nivelul algoritmului de procesare propus. În cadrul activității
de cercetare sunt prezentate o serie de rezultate obținute pentru monitorizarea semnalelor de
vibrații în diferite scenarii. În cadrul Capitulului 4 sunt prezentate:
• Noțiuni generale despre posibilitățile de calcul la nivel industrial existente în prezent și
analiza comparativă a sistemului CPU și al FPGA (în subcapitolul 4.1).
• Arhitectura sistemului de achiziție Compact Rio 9024 (în subcapitolul 4.2) și a standului
experimental de generare, achiziție și prelucrare paralelă a semnalelor de vibrații.
• Schemele generale ale scenariilor de achiziție și prelucrare (în subcapitolul 4.3) propuse
pentru cele 3 cazuri de aplicare a calcului la nivel FPGA, RT și PC.
• Dezvoltarea aplicației software de prelucrare în mediul LabVIEW.
• Descrierea mecanismului de paralelizare, sincronizare și comunicare pentru cele 3
scenarii (în subcapitolul 4.3).
• Prezentarea rezultatelor experimentale obținute (în subcapitolul 4.4).
Ca rezultat al testelor efectuate în capitolul 4, s-a constatat că cea mai bună variantă
de procesare pentru FFT este la nivel FPGA, aceasta oferind și un număr mai mare de
evenimente procesate în timp real. Astfel este propus un mijloc modern, rapid și util în mediile
industriale de procesare a semnalelor de vibrații în paralel și în timp real.
48
CONTRIBUȚIILE AUTORULUI
Se poate spune că în fiecare capitol apar elemente de noutate, principalele contribuții
personale şi originale ale autorului din această teză se regăsesc în zona eficientizării
algoritmilor. În continuare sunt formulate, pe capitole, aceste realizări:
Capitolul 1
• Îmbunătățirea timpilor mari de generare a imaginilor fractale cu algoritmul secvențial,
prin algoritmul paralel propus.
• Implementarea soluției de generare secvențială pentru generarea imaginilor cu ajutorul
seturilor Mandelbrot și Julia (Fig. 1.2, Fig. 1.3).
• Implementarea soluției software de generare fractală pentru algoritmul paralel (Fig. 1.4).
• Analiza procesorului pentru scenariile de test (Fig. 1.6, Fig. 1.7) și analiza comparativă a
implementărilor secvențiale și paralele ca timp și ca utilizare a resurselor CPU.
Capitolul 2
• Propunerea unei variante de paralelizare (schema din Fig. 2.3) pentru o zonă de cod în
cadrul metodei de compresie fără pierderi DWT.
• Prezentarea aplicaţiei implementate (subcapitolul 2.2).
• Prezentarea comparativă a rezultatelor măsurătorilor de timp de compresie și decompresie
(Fig. 2. 7 și Fig. 2.9).
• Propunerea unei posibilități de aplicare în domeniul medical.
Capitolul 3
• Îmbunătățiri propuse pentru arhitectura algoritmilor de tip Edge Detection, dezvoltate și
testate.
• Propunerea și implementarea unei variante de paralelizare pentru algoritmul de căutare a
drumului cel mai scurt, Dijkstra, pornind de la arhitectura prezentată în Fig. 3..
• Determinarea, pe baza testelor, a unor scenarii favorabile pentru structurile de graf în care
se efectuează căutarea (exemplu Fig. 3. 9).
• Modelul de paralelizare a fost extins și pentru alți algoritmi de căutare cum ar fi Bellman
Ford, Floyd-Warshall.
• Măsurători comparative pentru algoritmii de căutare propuși Fig. 3.10, Fig. 3.11
Capitolul 4
• Realizarea unui stand experimental pentru testarea tehnologiei de prelucrare în timp real
a semnalelor de vibrații pentru două sisteme de generare de vibrații:
• Sistemul cu ax circular cu rulmenți la capete și fulie de transmisie în interior (Fig.4.5);
• Sistemul de transmisie semnal de vibrații tip șoc – bară metalică (Fig.4.6).
49
• Propunerea și implementarea a 3 scenarii de achiziție și prelucrare FFT a semnalelor de
vibrații pentru sistemul Compact Rio 9024:
• Procesare FFT la nivelul circuitului FPGA (subcapitolul 4.3.1).
• Procesare FFT la nivelul microprocesorului RT (subcapitolul 4.3.2).
• Procesare FFT la nivel PC (subcapitolul 4.3.3).
• Implementarea soluției software (subcap. 4.3).
• Spectre obținute în diverse scenarii (subcap. 4.4.2)
DIRECȚII VIITOARE DE DEZVOLTARE
Dezvoltarea permanentă a mijloacelor software de prelucrare a imaginilor și
semnalelor conduce la o serie de propuneri de dezvoltare ulterioare pentru metodele propuse în
această teză. Direcțiile care pot fi aprofundate în viitor sunt următoarele:
• Crearea unei librării on-line de generare fractală și de identificare a imaginilor naturale cu
ajutorul mijloacelor fractale.
• Implementarea algoritmilor de compresie și de detectare de muchii la nivel de procesor
grafic-GPU, acesta oferind posibilități de paralelizare mult mai puternice.
• Realizarea sistemului de numărare de plante în timp real propus în subcapitolul 3.1..
• Testarea soluțiilor propuse pentru algoritmii de căutare de rute minime în cazuri de orașe
mari cu volum mare de informații și capacități mari de procesare.
• Dezvoltarea sistemului propus în Cap. 4 pentru determinarea erorilor generate de vibrații
la nivel de motoare sau alte mijloace mecanice.
• Scalarea exemplului de prelucrare a semnalelor pe un nou sistem cu capacitate mai mare
de calcul Compact Rio 9039, fără probleme generate de resursele de memorie, acesta fiind
capabil să achiziționeze și să prelucreze semnale din 24 de puncte distincte.
50
PUBLICAȚIILE AUTORULUI
Rezultatele cercetărilor din cadrul studiilor doctorale (algoritmi, implementări
software, rezultate obținute, teste) au fost diseminate, prin publicare în lucrări științifice de
specialitate (în țară şi în străinătate), după cum urmează:
Articole prezentate la conferinţe internaţionale indexate ISI (ISI Proc.)
1. Popa B., „Iterative Function Systems for Natural Image Processing”, Proc. of 2015, 16th
Int. Carpathian Control Conf. (ICCC’2015), 27 May - 30 May 2015, Szilvásvárad,
Hungary, pp. 46 - 49, DOI: 10.1109/CarpathianCC.2015.7145043, Publisher: IEEE,
Electronic ISBN 978-1-4799-7369-9. WOS:000380488000009
2. Popa B., „Dijkstra algorithm in parallel- Case study”, Proc. of 2015, 16th Int. Carpathian
Control Conf. (ICCC’2015), 27 May - 30 May 2015, Szilvásvárad, Hungary, pp. 50 - 53,
DOI: 10.1109/CarpathianCC.2015.7145044, Publisher: IEEE, Electronic ISBN 978-1-
4799-7369-9. WOS:000380488000010
3. Popa B., Popescu D., „Analysis of Algorithms for Shortest Path Problem in Parallel”,
Proc. of 2016 17th Int. Carpathian Control Conf. (ICCC’2016), May 29 – June 1, 2016,
Tatranská Lomnica, Slovakia, DOI: 10.1109/CarpathianCC.2016.7501169, Publisher:
IEEE, Electronic ISBN: 978-1-4673-8606-7, ISBN: 978-1-4673-8605-0.
WOS:000389829000114
4. Popa B., Popescu M., „The analysis parameters for the AC engine for actuating of a
grinding wheat system”, 2017, 18TH INTERNATIONAL CARPATHIAN CONTROL
CONFERENCE (ICCC), p. 400-405, DOI: 10.1109/CarpathianCC.2017.7970433,
Publisher: IEEE, ISBN:978-1-5090-4862-5, WOS:000426954400074
5. Popa B., „Study about the edge detection algorithm and its applications”, 2017, 18th
International Carpathian Control Conference (ICCC),p. 417-422, DOI:
10.1109/CarpathianCC.2017.7970436, Publisher: IEEE, ISBN:978-1-5090-4862-5.
WOS:000426954400077
6. Popa B., Popescu I.M., Popescu D., Bobasu. E., „Real-time monitoring system of a closed
oven”, 2018, 19th International Carpathian Control Conference (ICCC), p. 27-32, DOI:
10.1109/CarpathianCC.2018.8399597, Publisher: IEEE, ISBN:978-1-5386-4762-2.
WOS:000439260500010
7. Selişteanu D., Roman M., Şendrescu D., Petre E., Popa B. „A Distributed Control System
for Processes in Food Industry: Architecture and Implementation”, 2018, 19th
International Carpathian Control Conference (ICCC),p. 128-133, DOI:
10.1109/CarpathianCC.2018.8399615, Publisher: IEEE, ISBN:978-1-5386-4762-2.
WOS:000439260500028
8. Popescu I.M., Popa B., Prejbeanu R., Ionete C., „Evaluation of Parallel and Real-Time
Processing Performance for Some Vibration Signals Using FPGA Technology”, 2018,
19th International Carpathian Control Conference (ICCC),p. 365-370, DOI:
10.1109/CarpathianCC.2018.8399657, Publisher: IEEE, ISBN:978-1-5386-4762-2.
WOS:000439260500069
51
9. Constantinov C., Mocanu M., Poteraş C., Popa B., „Using a Graph Database for
Evaluating and Enhancing a Social Reputation Engine”, 2018, 19th International
Carpathian Control Conference (ICCC),p. 518-523, DOI:
10.1109/CarpathianCC.2018.8399685, Publisher: IEEE, ISBN:978-1-5386-4762-2.
WOS:000439260500096
Articole prezentate la conferinţe internaţionale indexate
1. Popa B., “Algorithms for Lossless Compression in Image Processing Systems”, 2016,
20th Panhellenic Conference on Informatics (PCI). Patra, Greece, ACM Digital Library,
Conference Proceedings Series (ICPS), ISBN: 978-1-4503-4789-1
2. Popa B., “Innovative Computing Systems in Volume Rendering for the Medical Images”,
2016, 20th Panhellenic Conference on Informatics (PCI). Patra, Greece, ACM Digital
Library, Conference Proceedings Series (ICPS), ISBN: 978-1-4503-4789-1
3. Popa B., Roman M., Constantinescu R.L. „Fast Fourier processing and real-time
transformation system for a dynamic vibration signal”, 2019, 20th International
Carpathian Control Conference (ICCC), Kraków - Wieliczka, Poland, May 26-29, 2019,
Conference record:#45736, IEEE Catalog Number: CFP1942L-USB, ISBN: 978-1-7281-
0701-1
4. Popa B., Popescu D., Roman M., Constantinescu R.L. „Optimizing algorithms for low
CPU usage in different scenarios”, 2019, 20th International Carpathian Control
Conference (ICCC), Kraków - Wieliczka, Poland, May 26-29, 2019, Conference
record:#45736, IEEE Catalog Number: CFP1942L-USB, ISBN: 978-1-7281-0701-1
5. Constantinescu R.L., Roman M., Popa B., Selișteanu D. „An Improved Numerical Method
for the Simulation of Nonlinear Systems”, 2019, 20th International Carpathian Control
Conference (ICCC), Kraków - Wieliczka, Poland, May 26-29, 2019, Conference
record:#45736, IEEE Catalog Number: CFP1942L-USB, ISBN: 978-1-7281-0701-1
Reviste B și B+
1. Popa B.,Popescu D. “Lossless Compression in Image Processing Technologies and
Applications”, 2014, Annals of the University of Craiova, 2014 Volume 11 no. 2, p. 13-
18, ISSN 1841-0626.
2. Popa B.,Popescu D. “Improving of the Backtracking Algorithm using different strategy
for solving the 2-d problems”,2015, Annals of the University of Craiova, 2015 Volume
12 no. 1, p. 29-33, ISSN 1841-0626
Reviste neindexate
1. Popa B. “Visual Study About the Fractals and New Means of Viewing”,2016,
International Journal of Scientific Research, October 2016, Volume 5, Issue 10,p 383-
386, ISSN No 2277 – 8179.
2. I.M. Popescu, B. Popa, R. Prejbeanu “Technology based on FPGA circuits and
simultaneous processing of signals with great dynamic over time”, 2017, Annals of the
University of Craiova, Volume 14 no. 1, p. 25-30, ISSN 1841-0626
52
3. Popa B., Popescu D. “Summary of bread production and review of new methods for
estimating process parameters”, 2017, Annals of the University of Craiova, Volume 14
no. 2, p. 26-33, ISSN 1841-0626
Articole prezentate la conferinţe internaţionale neindexate
1. Popa B. ”The influence of the ICT and IoT in the teaching systems”, 2017, New innovative
approaches in teaching, 6-7 May 2017, Vidin ,Bulgaria, p. 155-160, ISBN: 978-954-9399-
47-9
2. Popa B., Radulescu V., Poenaru M.L., "International system for connecting high-school
graduate study databases", New innovative approaches in teaching, 6-7 May 2017, Vidin,
Bulgaria, Erasmus+ project 2015-1BG01-KA219-014218-"Opening up education
through the school projects and ICT". ISBN: 978-954-9399-47-9
Capitole în cărţi publicate în edituri internaţionale
1. Dan Selișteanu, Ion Marian Popescu, Emil Petre, Monica Roman, Dorin Șendrescu,
Bogdan Popa, „Distributed Control Systems for a Wastewater Treatment Plant:
Architectures and Advanced Control Solutions”, Wastewater and Water Quality,
IntechOpen, DOI: 10.5772/intechopen.74827
Membru în echipa granturilor de cercetare
1. Sisteme de conducere avansată a unor bioprocese din industria alimentară
(ADCOSBIO), PN-II-PT-PCCA-2013-4-0544, PNCDI II, Parteneriate – PCCA, contract
nr. 211/2014, 2014-2017, coordonator Univ. Craiova, nr. înreg. UCV 66C/2014, parteneri:
S.C. Moara Calafatului SRL, Univ. Politehnica Timișoara, Univ. „Dunărea de Jos” din
Galaţi, director: Selișteanu D.
2. Sisteme cu propagare: abordări noi în sinteza comenzii pentru eliminarea
oscilațiilor–ProCO, grant finanțat de MCI, CCCDI‐UEFISCDI, PNCDIIII, Program 3:
CooperareInternațională și Europeană, Subprogram 3.1 Bilateral/Multilateral, Cooperare
Bilaterală România‐Franţa, Cod:PN‐III‐P3‐3.1‐PM‐RO‐FR‐2016‐0055,
Contract:78BM/2017, Nr.Inreg.UEFISCDI:PN3‐P3‐229/04.04.2017, Nr.Inreg. Univ. din
Craiova:7C/03.04.2017, Partener: Laboratoire des Signaux et Systèmes, CNRS‐Centrale
Supelec‐Université ParisSud, Gif‐sur‐Yvette,Franţa,2017‐2018, director: Danciu D.
3. Tehnologie informațională pentru achiziția, prelucrarea paralelă, sincronizată și în
timp real a unor semnale de vibrații, folosind tehnologia FPGA (TIAVIB). National.
PN-III-P2-2.1-CI-2017-0167. Cecuri de inovare UEFISCDI Nr. 116Cl/2017, director:
Popescu M.
4. Modelarea, simularea și controlul avansat al biosistemelor (MOSCBIOS),
Programul: Resurse umane - Proiecte de cercetare pentru stimularea tinerelor echipe
independente, Cod depunere proiect UEFISCDI: PN-III-P1-1.1-TE-2016-0862, Nr.
contract de finanţare: 25/2018, Nr. înregistrare Univ. din Craiova: 5C/27.04.2018, Nr.
Înregistrare UEFISCDI: 1004/04.05.2018, director: Roman M.
53
BIBLIOGRAFIE SELECTIVĂ
[ADC, 2014-
2017]
Universitatea din Craiova, Depatamentul de automatic și electronică (2017). “Sisteme de conducere avansata a unor bioprocese din industria alimentara (ADCOSBIO)”, nr. proiect: 211/ 2014, cod proiect: PN-II-PT-PCCA-2013-4-0544, http://www.ace.ucv.ro/ adcosbio/
[CAN, 1986] J. Canny, “A Computational Approach to Edge Detection”, IEEE Trans., publicat în:
IEEE Transactions on Pattern Analysis and Machine Intelligence (Volum: PAMI-8,
Issue: 6, Nov. 1986), Page(s): 679 – 698, Data publicării: Nov. 1986.
[DEO, 2006] Mandar P. Deolalikar, Nicolaos B. Karayiannis, „Image codec for efficient embedded
bitstream transmission with low decoder complexity”, J. Electron. Imaging. 15(1),
013006 (Martie 03, 2006). doi:10.1117/1.2178267
[DEV, 1989] Robert L. Devaney, Linda Keen, “Chaos and Fractals”, Proceedings of symposia in
applied mathematics, Volume 39, p 62., 1989;
[DVO, 2014] George Dvorsky,” The 10 Algorithms That Dominate Our World “, 2014;
[FPG, 2009] FPGA Architecture Presentation, https://www.slideshare.net/ omutukuda/presentation-
1993175, Omesh Mutukuda (Masc. Candidate);
[NIC, 2018] http://www.ni.com/compactrio/; pagina web a firmei National Instruments
[POM, 2006]
[POP, 2014]
Pommert A, Hohne KH, Burmester E, Gehrmann S, Leuwer R,Petersik A, Pflesser
B, Tiede U. Computer-based anatomy: "Aprerequisite for computer-assisted
radiology and surgery", AcadRadiol 2006; 13: 104 – 112.
Popa B., Popescu D. “Lossless Compression in Image Processing Technologies and
Applications”,2014, Annals of the University of Craiova, 2014 Volume 11 no. 2, p. 13-
18, ISSN 1841-0626;
[POP, 2015, a] Popa B., “Dijkstra algorithm in parallel- Case study”, 2015 Carpathian Control
Conference (ICCC), 2015 16th International. Szilvasvarad, IEEE Explore INSPEC
Accession Number: 15287410, p. 50 - 53, ISBN 978-1-4799-7369-9.
[POP,2015, b]
[POP, 2016, a]
Popa B., “Iterative Function Systems for Natural Image Processing”, 2015 Carpathian
Control Conference (ICCC), 2015 16th International. Szilvasvarad, IEEE Explore
INSPEC Accession Number:15287380 p. 46 - 49, ISBN 978-1-4799-7369-9;
Popa B., “Visual Study About the Fractals and New Means of Viewing”,2016,
International Journal of Scientific Research, October 2016, Volume 5, Issue 10, p 383-
386, ISSN 2277 – 8179.
[POP, 2016, b]
Popa B., “Algorithms for Lossless Compression in Image Processing Systems”, 2016,
20th Panhellenic Conference on Informatics (PCI). Patra, Greece, ACM Digital
Library, Conference Proceedings Series (ICPS), ISBN: 978-1-4503-4789-1.
[POP, 2016, c]
Popa B., Popescu D. “Analysis of Algorithms for Shortest Path Problem in Parallel”,
2016 Carpathian Control Conference (ICCC), 2016, 17th International. Tatranská
Lomnica, Slovak Republic, IEEE Catalog Number: CFP1642L-USB, ISBN: 978-1-
4673-8605-0;
[POP, 2016, d]
Popa B., “Innovative Computing Systems in Volume Rendering for the Medical
Images”, 2016, 20th Panhellenic Conference on Informatics (PCI). Patra, Greece, ACM
Digital Library, Conference Proceedings Series (ICPS), ISBN: 978-1-4503-4789-1
http://dl.acm.org/citation.cfm?id=3003752;
54
[POP, 2017, a]
Ion Marian Popescu, Bogdan Popa, Razvan Prejbeanu, "Technology based on FPGA
circuits and simultaneous processing of signals with great dynamic over time", Annals
of the University of Craiova, Series: AUTOMATION, COMPUTERS,
ELECTRONICS and MECHATRONIC, Volume 14 issues 1, 2017;
[POP, 2017, b]
Popa B., “Study about the edge detection algorithm and his applications”, 2017
Carpathian Control Conference (ICCC), 2017 18th International. Sinaia, IEEE Explore
INSPEC Accession Number:15287380 p. 46 - 49, ISBN 978-1-4799-7369-9
[POP, 2018, a]
Bogdan Popa, Ion Marian Popescu, Dan Popescu, Eugen Bobasu, “Real-time
monitoring system of a closed oven”, 19th International Carpathian Control Conference
(ICCC),28-31 May 2018, Szilvasvarad, Hungary, Electronic ISBN: 978-1-5386-4762-
2, DOI: 10.1109/CarpathianCC.2018.8399597;
[POP, 2018, b]
Ion Marian Popescu, Bogdan Popa, Răsvan Prejbeanu, Ionete Cosmin, ”Evaluation of
parallel and real-time processing performance for some vibration signals using FPGA
technology”, 19th International Carpathian Control Conference (ICCC),28-31 May
2018, Szilvasvarad, Hungary, Electronic ISBN: 978-1-5386-4762-2, DOI:
10.1109/CarpathianCC.2018.8399657
[SYS, 2017]
Sisteme cu propagare: abordări noi în sinteza comenzii pentru eliminarea oscilațiilor–
ProCO, grant finanțat de MCI, CCCDI‐UEFISCDI,PNCDIIII, Program3: Cooperare
Internațională și Europeană, Subprogram 3.1Bilateral/ Multilateral, Cooperare
Bilaterală România‐Franţa, Cod:PN‐III‐P3‐3.1‐PM‐RO‐FR‐2016‐0055,
Contract:78BM/2017,Nr.Inreg.UEFISCDI:PN3‐P3 229/04.04.2017,Nr.Inreg.Univ.din
Craiova:7C/03.04.2017, Partener: Laboratoire des Signaux et Systèmes, CNRS‐
Centrale Supelec‐Université Paris Sud, Gif‐sur‐Yvette, Franţa,2017‐2018. Director:
Daniela Danciu, 2017‐ 2018. Echipa de implementare: 11 membrii (8 cercetători, 2
doctoranzi, 1 masterand) Membru în echipa proiectului: drd. Popa Bogdan, Bursa
cercetare Supelec Paris, 5.06.2017 – 2.07.2017.
[TEH, 2017]
Tehnologie informațională pentru achiziția, prelucrarea paralelă, sincronizată și în
timp real a unor semnale de vibrații, folosind tehnologia FPGA (TIAVIB), Programul:
Creșterea competitivității economiei românești prin cercetare, dezvoltare și inovare,
Cecuri de inovare PN-III-P2-2.1-CI-2017-0167, Nr. contract de finanțare: 116Cl/2017,
Nr. înregistrare Univ. din Craiova: 21C/25.08.2017, Parteneriat Universitatea din
Craiova, S.C. Vonrep S.R.L;