270 likes | 540 Views
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
E N D
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 • De ce algoritmi genetici? • Algoritmi genetici • Algoritmi existenti • Optimizari propuse • Rezultate • Concluzii
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.
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
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.
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
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.
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.
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.
Algoritmi genetici (1) • Optimizam algoritmul per se nu functiile sale • Reprezentare -gena -cromozomi • Operatori -mutatie -crossover • Fitness • Initalizare • Next gen - elitism
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
Algoritmi genetici(3) • Initializare (best->worst): - seeding - mapez dupa medie - mapez random
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
Algoritimi genetici(5) • Operatorul crossover • Nu se aplica tot timpul 85 – 100 % • Poate fi si mai departe optimizata
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
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
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
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
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
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.
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
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
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
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