Wavelet watermerk

Wiskunde is niet alleen een vak op school. Kom je ergens in de praktijk (bijvoorbeeld tijdens je werk) een wiskundig probleem tegen dan kun je hier om hulp vragen.
Plaats reactie
pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Wavelet watermerk

Bericht door pixebility » 07 jun 2014, 13:46

Hallo allemaal,

Ik wil na mijn eerste implementatie van een watermerk ook een tweede watermerk implementeren. Dit watermerk is eentje waarbij gebruik wordt gemaakt van wavelet transformatie. Uit het artikel op http://arxiv.org/pdf/1310.5653.pdf heb ik de volgende formules gehaald.

Bij wavelets worden afbeeldingen ontleed in verschillende sub-bands in drie verschillende richtingen: horizontaal, verticaal en diagonaal. Door gebruik te maken van high en low pass filters.

en

waarbij waarbij H (ω) en G (ω) orthogonaal moeten zijn:



De verkregen coëfficiënten zijn:



De reconstructie IDWT van het oorspronkelijke signaal het omgekeerde proces van DWT. Het wordt samengevat door de volgende formule:


Kan iemand me de high en low pass filter uitleggen aan de hand van een voorbeeld?
Ik begrijp niet waar de variabelen omega, h, k, e en j voorstellen in dit voorbeeld. Om een goede implementatie te kunnen maken moet ik de theorie eerst goed begrijpen en ik begrijp het helaas nog niet.

Vast bedankt!

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: Wavelet watermerk

Bericht door arie » 08 jun 2014, 17:32

pixebility schreef: Kan iemand me de high en low pass filter uitleggen aan de hand van een voorbeeld?
Een high pass filter laat hoge frequenties door en blokkeert lage frequenties.
Een low pass filter laat lage frequenties door en blokkeert hoge frequenties.
Vergelijk dit met een muziekspeler: daar zitten vaak knoppen op om hoge tonen weg te draaien (low pass: lage tonen blijven behouden) of om lage tonen (bassen) weg te draaien (high pass: hoge tonen blijven behouden).
In 2D plaatjes komen lage frequenties overeen met de egale gebieden, hoge frequenties met overgangen (randen van figuur-elementen)
pixebility schreef: Ik begrijp niet waar de variabelen omega, h, k, e en j voorstellen in dit voorbeeld. Om een goede implementatie te kunnen maken
omega is de frequentie
h is de functie in tijddomein
H is dezelfde functie in het frequentiedomein
k is een index die van min oneindig tot plus oneindig loopt
e = grondtal natuurlijke logaritmen
j = i = imaginaire eenheid
pixebility schreef: ... moet ik de theorie eerst goed begrijpen ...
Dat is verstandig, maar wel erg ambitieus: er zit heel veel theorie achter.
Heb je al eens met Fourier transformaties gewerkt (FT, DFT, FFT etc) ?
Heb je ook de beschikking over een rekenpakket wat de DWT en IDWT kan bepalen ?

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Wavelet watermerk

Bericht door pixebility » 09 jun 2014, 13:04

arie schreef: h is de functie in tijddomein
H is dezelfde functie in het frequentiedomein
Hetzelfde geld voor G en g neem ik aan?
arie schreef: Heb je al eens met Fourier transformaties gewerkt (FT, DFT, FFT etc) ?
Heb je ook de beschikking over een rekenpakket wat de DWT en IDWT kan bepalen ?
Nee niet mee gewerkt helaas en hoewel ik er graag meer van zou willen weten moet ik snel een implementatie hebben en snappen hoe dit algoritme werkt.
Ik weet wel wat Fourier transformatie is net als wavelet transformatie. Bij Fourier zet je een signaal van het tijddomein om naar het frequentie domein. In het frequentie domein zie je alleen welke frequenties voorkomen in het signaal maar weet je niet wanneer in tijd deze frequentie voorkomt. Bij wavelet met behulp van schaal frequentie in tijd vastleggen. Met een kleine schaal meet je hoge frequenties en met een hoge schaal meet je lage frequenties.

Ik heb hierover gelezen op http://users.rowan.edu/~polikar/WAVELET ... orial.html maar helaas snap ik daar ook al die formules niet maar wel wat uiteindelijk het resultaat is.

Inmiddels heb ik dit artikel gevonden http://www.whydomath.org/node/wavlets/hwt.html wat mij al een hoop duidelijk heeft gemaakt hoewel dit haar wavelet transform is en geen discrete wavelet transform (ik weet niet of dit uitmaakt).

Wat ik al vermoedde maar nu zeker weet is dat het signaal in een afbeelding een rij pixels zijn hetzij horizontaal hetzij verticaal. In dit geval wordt de wavelet transformatie zowel horizontaal als verticaal uitgevoerd aangezien een afbeelding uit rijen en kolommen bestaat. In zijn voorbeeld zie ik hoe het signaal [100, 200, 44, 50, 20, 20, 4, 2] wordt gecomprimeerd naar [150, 47, 20, 3] door (100 + 200) / 2, (44 + 50) / 2, (20 + 20) / 2 en (4 + 2) / 2 uit te voeren. Daarna verteld de schrijver hoe je deze kan decomprimeren. Daar snap ik nog wat er gebeurd vervolgens vanaf het kopje Matrix Formulation snap ik het niet meer helemaal. Hoe komt hij aan die matrix?

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Wavelet watermerk

Bericht door pixebility » 09 jun 2014, 13:46

pixebility schreef:
arie schreef: h is de functie in tijddomein
H is dezelfde functie in het frequentiedomein
Hetzelfde geld voor G en g neem ik aan?
arie schreef: Heb je al eens met Fourier transformaties gewerkt (FT, DFT, FFT etc) ?
Heb je ook de beschikking over een rekenpakket wat de DWT en IDWT kan bepalen ?
Nee niet mee gewerkt helaas en hoewel ik er graag meer van zou willen weten moet ik snel een implementatie hebben en snappen hoe dit algoritme werkt.
Ik weet wel wat Fourier transformatie is net als wavelet transformatie. Bij Fourier zet je een signaal van het tijddomein om naar het frequentie domein. In het frequentie domein zie je alleen welke frequenties voorkomen in het signaal maar weet je niet wanneer in tijd deze frequentie voorkomt. Bij wavelet met behulp van schaal frequentie in tijd vastleggen. Met een kleine schaal meet je hoge frequenties en met een hoge schaal meet je lage frequenties.

Ik heb hierover gelezen op http://users.rowan.edu/~polikar/WAVELET ... orial.html maar helaas snap ik daar ook al die formules niet maar wel wat uiteindelijk het resultaat is.

Inmiddels heb ik dit artikel gevonden http://www.whydomath.org/node/wavlets/hwt.html wat mij al een hoop duidelijk heeft gemaakt hoewel dit haar wavelet transform is en geen discrete wavelet transform (ik weet niet of dit uitmaakt).

Wat ik al vermoedde maar nu zeker weet is dat het signaal in een afbeelding een rij pixels zijn hetzij horizontaal hetzij verticaal. In dit geval wordt de wavelet transformatie zowel horizontaal als verticaal uitgevoerd aangezien een afbeelding uit rijen en kolommen bestaat. In zijn voorbeeld zie ik hoe het signaal [100, 200, 44, 50, 20, 20, 4, 2] wordt gecomprimeerd naar [150, 47, 20, 3] door (100 + 200) / 2, (44 + 50) / 2, (20 + 20) / 2 en (4 + 2) / 2 uit te voeren. Daarna verteld de schrijver hoe je deze kan decomprimeren. Daar snap ik nog wat er gebeurd vervolgens vanaf het kopje Matrix Formulation snap ik het niet meer helemaal. Hoe komt hij aan die matrix?
arie schreef:Heb je ook de beschikking over een rekenpakket wat de DWT en IDWT kan bepalen ?
Ik heb Scilab op mijn computer volgens mij kan het daarmee.

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: Wavelet watermerk

Bericht door arie » 09 jun 2014, 17:00

Dan zou ik in eerste instantie proberen het algoritme van het oorspronkelijke artikel in Scilab te implementeren.
Je hebt dan de 2D-varianten van de (I)DWT nodig, waarschijnlijk zijn dat de functies DWT2 en IDWT2.

Met DWT zet je je image over naar het frequentiedomein, daarin verwerk je je watermerk, het resultaat zet je dan terug om naar een plaatje (tijddomein = imagedomein) via de IDWT.

Plot in Scilab ook het resultaat van de DWT getransformeerde, als het goed is moet je een soortgelijk plaatje krijgen als in het artikel.

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Wavelet watermerk

Bericht door pixebility » 11 jun 2014, 10:51

Ok de compressie stap daar kom ik nu wel uit. Wat gebeurd er nou verderop in het algoritme?

These two blocks (a) and (b) can be modeled as edges : the first is a rising and the second is a
falling edge. Therefore, their gradient (formula 5) along the horizontal axis is a peak for (a) and
a hollow for (b).

Hoe komen ze aan deze blokken? wat stellen deze voor? Zijn dit bits van het watermerk? Zijn het pixels van het watermerk?

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Wavelet watermerk

Bericht door pixebility » 16 jun 2014, 07:46

Kan iemand me helpen met dit gedeelte?

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Wavelet watermerk

Bericht door pixebility » 16 jun 2014, 10:15

Klopt het dat er een blok wordt gemaakt van bijvoorbeeld 4 bij 4 met de volgende waarden?

Voor de rising edge en:

Voor de falling edge?

Plaats reactie