1 / 25

Petrescu Alexandru-Lucian alexandru.petrescu@CS.PUB.RO

UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE. Transmisia datelor multimedia in retele de calculatoare Studiu despre compresia cu fractali optimizata cu algorimi genetici. Petrescu Alexandru-Lucian alexandru.petrescu@CS.PUB.RO. Cuprins. Introducere Fractali

kohana
Download Presentation

Petrescu Alexandru-Lucian alexandru.petrescu@CS.PUB.RO

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

E N D

Presentation Transcript


  1. UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE Transmisia datelor multimedia in retele de calculatoare Studiu despre compresia cu fractali optimizata cu algorimi genetici Petrescu Alexandru-Lucian alexandru.petrescu@CS.PUB.RO

  2. Cuprins • Introducere • Fractali • De ce algoritmi genetici? • Algoritmi genetici • Algoritmi existenti • Optimizari propuse • Rezultate • Concluzii

  3. Introducere (1) • Compresia datelor este necesara in multe aplicatii • Exista cazuri in care o compresie cu pierderi minore este acceptata (imagini satelit Hubble de ex.) • De ce fractali? In general in natura se urmeaza o ordine , de exemplu anumite plante (in img: floarea soarelui) au o structura matematica.

  4. Introducere (2) • Fractal = o forma geometrică fragmentată sau frântă care poate fi divizată în părţi, astfel încât fiecare dintre acestea să fie (cel puţin aproximativ) o copie in miniatura a întregului • Setul mandelbrot

  5. Fractali (1) • Formal, fie o functie: W:X -> X , X un set compact Se numeste contractor o mapare: W:D -> D daca D inclus in X si exista d metrica pe X a.i d(W(x),W(y))<c*d(x,y), 0<c<1 O familie de contractori {w1, w2 … wn} se numeste LIFS (Local Iterated Function Scheme) Daca exista un F a.i. W(F)=w1(F)+w2(F)+…+wn(F) , atunci F se numeste invariant. Este “self similar” fata de W.

  6. Fractali (2) • Daca E e un set nevid, compact a.i W(E)=w1(F)+w2(F)+ … +wn(F) atunci F= ∑Wk(E) , deci F atractor pentru orice E • Deci orice set E determinabil din F prin w-uri va converge la F. • Atunci o familie de contractii w1..wn poate aproxima domenii complexe • O imagine e un domeniu R3

  7. Fractali (3) • Definirea metricii: Fie V(X,r) multimea punctelor din vecinatea de distanta r a lui X, unde X set. Fie metrica d(A,B)=infimum{y | A-V(B,y)= B-V(A,y)=0} (metrica Haussdorf) • Teorema de colaj: minimizarea d(I,∑wi(I)) e echivalenta cu gasirea LIFS.

  8. De ce algoritmi genetici? (1) • Deci am demonstrat ca avem o problema de cautare • Pentru niste regiuni Ri se cauta domenii Dj a.i. W(Dj) sa aproximeze bine pe Ri, unde W={w1, .. wn} • Pentru o imagine se cauta mapari. • Problemele algoritmului de baza de pe slide-ul urmator sunt complexitatea si numarul de operatii • Mapari = cautare in spatiu de solutii, problema NP-hard=> optimizare cu algoritmi genetici.

  9. De ce algoritmi genetici? (2) • Un algoritm de compresie cu fractali general (k putere a lui 2) Descompune Imagine I in k x k regiuni; While ( exista regiuni necodate ) If numar de regiuni > limita gaseste codare pentru regiuni in D = multimea tuturor subseturilor de s*size regiune din I Else foloseste cea mai buna codare existenta IEnd (size regiune)=(size regiune)/2 Wend O(∑(1/2)depth *size*2size) => Hard computational! NP-hard.

  10. Algoritmi genetici (1) • Optimizam algoritmul per se nu functiile sale • Reprezentare -gena -cromozomi • Operatori -mutatie -crossover • Fitness • Initalizare • Next gen - elitism

  11. Algoritmi genetici(2) • Un algoritm intuitiv: While exista regiuni necodate: genereaza o populatie de posibile solutii While exista regiuni necodate si nu e ultima generatie Calculeaza fitnessul regiunilor sau overall Daca se gaseste o mapare buna tine minte Genereaza o noua populatie folosind crossover si mutatii Wend in functie de algoritm schimba nivelul de cautare (size regiune) sau foloseste cea mai buna mapare existenta Wend

  12. Algoritmi genetici(3) • Initializare (best->worst): - seeding - mapez dupa medie - mapez random

  13. Algoritmi genetici (4) • O gena: Xdom, Ydom. Flip in total logX +logY +3 biti per gena • Un cromozom = o posibila solutie, este o multime de gene

  14. Algoritimi genetici(5) • Operatorul crossover • Nu se aplica tot timpul 85 – 100 % • Poate fi si mai departe optimizata

  15. Algoritmi genetici (6) • Operatorul de mutatie • Se aplica foarte rar, din teoria algoritmilor genetici este indicat ca procentul de aplicare sa fie < 1% (altfel se randomizeaza prea agresiv) => populatie haotica

  16. Algoritmi genetici (7) • Functia de fitness, determina cat de bun pentru reproducere este cromozomul • Eroare maxima = | s*Di − Rjk| • s = [0.45, 0.6, 0.8, 0.97] – bazat pe studiu statistic, s este luminanta • Se poate rafina Eroare maxima tinand cont de contrastul imaginii o=(∑∑Rij)/n2 e=func(e,o) ex: e=e*o

  17. Algoritmi existenti(1) • Perspectiva holistica - rapid - high miss rate - buna pentru anumite tipuri de probleme (ex: satelit) • Perspectiva regiune - mai incet (totusi, mult mai rapid ca un alg fractal pur) - scadere de calitate la decromprimare aproape nesesizabila

  18. Algoritmi existenti(2) • Holistic (doar metrica Haussdorf pe I, ca la Th. colajului) creeza populatie P de inceput solutie=false; times=0; While ( !solutie^! ((times++)>timeout)) calculeaza fitness pentru fiecare cromozom C din P daca fitness > minim solutie=true; else Genereaza o noua populatie folosind crossover si mutatii plecand de la cromozomii cu cel mai bun fitness Wend

  19. Algoritmi existenti(3) • La nivel de regiune (Haussdorf la nivel de regiune) initializeaza mapari[W,H]=0 creeaza populatie initiala cu mapari cu tot While exista regiuni necodate: genereaza o populatie de posibile solutii While exista regiuni necodate si nu e ultima generatie Calculeaza fitnessul regiunilor if(d(Ri,W(Dj))<eroare) actualizeaza mapare Genereaza o noua populatie folosind crossover si mutatii pe cromozomii cu cel mai bun fitness Wend elimina Ri mapati din cautare regiune size=regiune size/2 recalculeaza error Wend

  20. Optimizari propuse(1) • 2 erori, de acceptare si de cautare - la acceptare inseamna ca am o mapare indeajuns de buna incat sa nu mai caut => elimin instantaneu Ri din cautare (practic scad spatiul de cautare imediat in loc de la sfarsitul evolutiei pe dimensiunea respectiva de regiune) - la cautare inseamna ca e o mapare buna dar nu indeajuns • Elitism => cromozomii buni sunt copiati direct in urmatoarea populatie • Verificare convergenta generatie • Initializare seeded, adaug seedurile: - fiecare regiune Ri de size 2k la Dj de size 2k+1 , cu propietatea ca Dj contine mai mult de ½ din Ri - atentie la k pentru a preveni bottleneck-uri.

  21. Optimizari propuse(2) • Un algoritm optimizat initializeaza mapari[W,H]=0 creeaza populatie initiala folosing seeding While exista regiuni necodate: initalizeaza sir de fitness de generatie genereaza o populatie de posibile solutii While exista regiuni necodate si nu e ultima generatie Calculeaza fitnessul regiunilor if(d(Ri,W(Dj))<eroare_acceptare) regiuni necodate– Ri if(d(Ri,W(Dj))<eroare_cautare) actualizeaza map

  22. Optimizari propuse(3) Cloneaza cei mai buni cromozomi direct in next generation Genereaza o noua populatie folosind crossover si mutatii pe cromozomii cu cel mai bun fitness Verifica sirul de convergenta si daca fitness-ul scade sau nu creste in ultimele X generatii => ultima generatie (saturare) Daca no_generations=maxgen => ultima generatie Wend elimina Ri mapati din cautare (cei ne-eliminati direct) regiune size=regiune size/2 recalculeaza erori Wend

  23. Rezultate • Viteza de compresie aproape dublata din cauza spatiului de cautare mult micsorat • Imagini in urma decomprimarii unei imagini comprimate cu 10 generatii;la multe generatii nu apar diferente vizibile

  24. Concluzii • Folosind algoritmi genetici se imbunatateste vizibil algoritmul de compresie cu fractali • Folosind optimizarile propuse se scade si mai mult spatiul de cautare • Imaginile se pot reconstrui pe orice dimensiune. • Se ofera un grad de flexibilitate al compresiei cu fractali prin variabilele de control de genul: max generations, error size etc

More Related