p ătru vlad daniel < patru.vlad @cs.pub.ro>

31
Pătru Vlad Daniel <[email protected]> UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE

Upload: pooky

Post on 09-Jan-2016

67 views

Category:

Documents


2 download

DESCRIPTION

UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE. P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>. DFT. f(x, y) = x = [0, width-1] y = [0, height-1]. 2. Metodologia recuperării img. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Pătru Vlad Daniel<[email protected]>

Pătru Vlad Daniel<[email protected]>

UNIVERSITY POLITEHNICA of BUCHARESTDEPARTMENT OF COMPUTER SCIENCE

UNIVERSITY POLITEHNICA of BUCHARESTDEPARTMENT OF COMPUTER SCIENCE

Page 2: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

DFT

2

Ce înseamnă? Descrete Fourier tranform = tranformata Fourier discretă

Ce are special? Transformă o funcţie în altă funcţie

=> reprezentarea în domeniu frecvenţă = DFT-ul funcţiei originale

De ce ne interesează? f : N x N -> [0, 255] x [0, 255] x [0, 255], adică :

f(x, y) = x = [0, width-1]

y = [0, height-1]

Page 3: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Metodologia recuperării img.

3

• Împărţim imaginea în blocuri de imagini

• Inserăm o semnătură (watermark) în fiecare bloc

(watermark = pepene verde -> www.dictionar-englez-roman.ro)

• Detectăm dacă blocurile au fost alterate

• Dacă (bloc == alterat) at.:

• împărţim blocul în blocuri de 2 x 2

• înlocuim valoarea coeficientului DFT F(0, 0) cu o valoare estimată de noi prin calcul

Obs.: + hartă de indecşi

+ subset al valorilor coeficienţilor DFT din imgaginea originală

Page 4: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Introducere

4

Autentificarea imaginilor = procesul de verificare a originalităţii unei imagini pentru a stabili conformitatea integrală sau parţială cu imaginea originală.

Două modalităţi: criptografia şi emblemarea fragilă

Criptografia:

•criptarea totală => confidenţialitate şi autenticitate

•hashing

•semnătură electronică => scop: mesaj -asoc-> entitate origine

!!! Problemă: nu ascociază întotdeauna informaţia criptată cu conţinutul

Page 5: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Emblemare fragilă

5

semnătură digitală = un model de biţi inseraţi într-un element multimedia cum ar fi o imagine digitală, fişier audio sau video.

Proprietate: uşor de alterat atunci când modificăm câtuşi de puţin imaginea gazdă

Autentificare multimedia:

•riguroasă – nicio modifcare / compr. fără pierderi, sch. format

•permisivă – anumite manipulări (incidentale) / man. malicioase

Page 6: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Autentificarea imaginilor

6

Schema cu cheie privată de aut. a img. propusă de Wong şi Memon

•x(m,n) – img. tonuri de gri de dim. Mx * Nx

•inserat semnătură vizibilă => img. emblemată xw(m,n)

•x(m,n) – partiţionată în blocuri de I x J pixeli

•inserată o semnătură invizibilă în fiecare bloc

Page 7: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Inserţie semnătură

7

Page 8: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Inserţie semnătură

8

Page 9: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Inserţie semnătură

9

Page 10: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Reprezentarea binară a numerelor

10

În memoria calculatorului, numerele se reprezinta în binar (baza 2).Valoarea unui întreg fără semn, cu k cifre binare (biţi):ck-1,ck-2...c1,c0 (2) = ck-1*2^k-1+…+c1*2^1+c0*2^0ck-1 = bitul cel mai semnicativ (superior)c0 = bitul cel mai putin semnicativ (inferior)Obs.: c0 = 0 => nr. par; c0 = 1 => nr. impar

Page 11: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Inserţie semnătură

11

Page 12: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Inserţie semnătură

12

Page 13: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Extracţie semnătură

13

Dacă emblema nu a fost modificată at.:

Xwr = Yr

Ix = Iy

Mx = My

Nx = Ny

Implică:

Y~r = X~r

Cr = Gr

Y0r = Br

Page 14: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Proprietăţile semnăturii invizibile

14

•Gradul de distorsiune introdus de semnătură nu este vizibil•Dacă este folosită cheia corespunzătoare, semnătura extrasă

este identică cu cea originală•Dacă nu este fol. cheia coresp., extr. semn. => zgomot aleator•Dacă imaginea nu are semn., extr. => z. a.•Dacă anumiţi pixeli sunt alteraţi, procedura de extracţie a

emblemei va detecta şi localiza modificările•Biţii semnăturii sunt inseraţi în bps ai img. Dacă se încearcă

înlăturarea semnăturii inv. prin modificarea unor straturi de biţi, proc. de extr. va detecta schimbările

•Nu este posibilă modificarea img. / bloc a.î. Emblema să pară neschimbată (propr. fcţ. hash – 2 input !=> output)

Page 15: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

15

- Mod de lucru -

Page 16: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

16

DFT-ul unei fcţ. f(x,y) de dim. M x N:

pt. u=0, M-1; v=0, N-1

Inversa DFT (pt. F(u,v) dat):

pt. x=0, M-1; y=0, N-1

Page 17: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

17

Funcţia img. f(x,y) este înmulţită cu (-1)^(x+y) înainte de calculul DFT.

Se poate dem. că:

unde denotă DFT-ul argumentului.

Ecuaţia de mai sus ne arată că DFT-ul fcţ. f(x,y)*(-1)^(x+y) este localizată la u=M/2 şi v=N/2.

Valorea transformatei la (u,v)=(0,0):

Page 18: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

18

•Blocul alterat => împărţit în blocuri de 2 x 2

•Val. coef. DFT F(0,0) este înlocuită cu F(0,0) estimat prin calcul

•Celorlaltor trei valori li se atribuie val. 0

•Se calc. inv. DFT pt. a restabili valorile pixelilor pt. fiecare bloc

Pt. a det. F(0,0) estimat folosim două fişiere:

•harta indecşilor

•un fişier ce conţine coef. DFT parţiali ai img. orig.

Page 19: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

19

Hartă indecşi – plasează blocurile în două categorii(cazuri):

•cazul când informaţia spaţială din împrejurimi ne oferă suficiente indicii pt. estimarea blocului alterat (bl. neted)

•cazul când nu ex. indicii suficiente (bl. margine sau textură)

Page 20: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

20

Dacă dim. img. este r x c => (r/n) x (c/n) blocuri

Fiecare valoare în matrice are 1 bit (0/1)

•bit 1 – bl. margine

•bit 0 – bl. zonă netedă

Harta de indecşi a fost calculată folosind detecţia de margini Sobel.

Marginile sunt găsite calculând gradientul local al semnalului luminos folosind filtrare spaţială de tip Sobel.

Rezultat: img. binară 1=margine, 0=altfel

Page 21: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

21

Blocurile primesc indecşi “graniţă” după formula:

unde:

bij = un bit din img binară

Bk = indexul margine al bl. k din img. orig. (de dim r x c)

n = dim. bl.

Ik = val. de bit (0/1) a bl. k din harta de indecşi

t = var. pt. stabilirea sensibilităţii la det. mrg.

Page 22: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

22

Page 23: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

23

Fişierul cu coef. DFT parţiali

Dacă o img. are k bl. indexate 1 => k x n/2 x n/2 valori ale cDFTp

Atât harta de indecşi cât şi fişierul cu cDFTp sunt transmişi de la emiţător la receptor printr-un sistem de criptare cu cheie publică.

Page 24: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

24

Procedura de recuperare:

•dacă bl. index 0 (zonă netedă):

•estimăm F(0,0) în fcţ. coef. din împrejurimi

•alegem bl. de 2 x 2 înconjurătoare nealterate

•calc. apoi DFT pt. fiecare bloc mic în parte pt a obţ. coef. DFT F(0,0)

•coef. DFT F(0,0) nec. este estimat ca medie a coef. F(0,0) înconjurători

•odată calc., coef. dev. parte activă a alg. pt. det. altor coef.

•dacă bl. index 1 (textură, margine)

Page 25: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

25

•nu avem suf. inf. în bl. înconj. pt. recuperarea bl. alterat

•ne ajutăm de fişierul cu cDFTp din img. orig. =>

•înlocuim coef. F(0,0) nec. cu cel coresp. din fişier

•Odată ce coef. F este det., celelalte 3 din grupul de bl. sunt înlocuite cu 0.

•Inversul DFT este calc. pt. a restabili valorile pixelilor din blocul alterat.

Page 26: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Algoritmul de recuperare a img.

26

Page 27: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Rezultate experimentale

27

Page 28: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Rezultate experimentale

28

Page 29: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Rezultate experimentale

29

Page 30: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Rezultate experimentale

30

Page 31: P ătru Vlad Daniel < patru.vlad @CS.PUB.RO>

Date suplimentare

31