|
|
|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WM]: Need help with implemetation of Hybrid algorithm by Deguillaume,Voloshynovskiy and Pun
Hi All,
My name is Hamud and I am a masters student doing a minor project in digital watermarking.
The goal of my project is to implement and anlyse the
paper: "Secure hybrid robust watermarking resistant against tampering and copy attack", by F.Deguillaume,S.Voloshynovskiy,T,Pun, May
2003.
Page 2137 of the paper section 2.1.1 explains the message encoding part.
I have generated a randon vector of say r_vect of 178 numbers. Then I mapped these numbers in a set of {-1,1}; After that I created
a 16x16 matrix called t1t2, and populated the r_vect in t1t2. Since t1t2 contains 256 cells, and C is made up of 178 cells, the
remaining 78 cells will be the reference cells(42 cells) and empty(36 cells).
Going this gives me the density ratio similar to Deguillaume et al's paper. I am trying to replicate the paper initially in order to
compare my results.
The next step is to upscale t1t2, flip and copy 3 times which results in 4t1 x 4t2 matrix (64x64 in my case).
Then is tile this matrix into a matrix size of the cover image, which is 256x256; Now in the embdedding, I use Daubechies 8-tap
filter decomposing into 5 resultion levels.
I am using the following function in matlab:
[C,S] = wavedec2(Img,Levels,'db8');
Then I embed the watermark in the H,V,D, coefficeints of each level using a linear additive manner ie x'=x+(alpha)*watermark (I
have not used NVF yet).
Then a do an inverse from level 5 to level 1sequential
using:
Level5_IDWT= idwt2(coA5,coH5x,coV5x,coD5x,'db8');
Level4_IDWT=
idwt2(Level5_IDWT,coH4x,coV4x,coD4x,'db8',45); and so on
Now, the problem I have is during the Robust watermark extraction.
To estimate the watermark, I am using the equtaion in section 2.2 pg 2139 where
w^(n1,n2)=(variance of w(n1,n2)/variance of w(n1,n2)+variance of X(n1,n2)
)*(y'(n1,n2)-ybar'(n1,n2)
To calculate the variance, I managed to find the following formulas from the net for matlab:
1)
kern = ones(3,3)/9; % window size of 3x3 Y_mean = filter2(kern, X);%get the mean
% the variance can be computed as the mean of the squares in each neighborhood, minus the square of the mean.
Var_Stego_Image = filter2(kern, X.^2) - Y_mean.^2;
2)
Var_Stego_Image= nlfilter(Level1_IDWT, [16 16], 'var(x(:))'); % for a 3x3 window size
I am not sure which one above is the correct one, as the results for both are not similar
After computing the estimated watermark, when calculate |F(estimated watermark)|^2 as mentioned in page 2140 section 2.3.1, I do not
get the results similiar to the paper's results on page 2141.
I have attached the the Robust_embed.m file for embedding and Robust-detect.m for detection.
I am using lena image 256x256.
Have I done any mistakes in my implementation as explained above?
Your help is much appreciated.
Also, is there any one with the NVF matlab code so that I can use it in this implementation.
Thanks
Regards
Hamud
______________________________________________________________________________
Watermarking Mailing List - http://www.watermarkingworld.org/ml.html
To unsubscribe send email to "majordomo@watermarkingworld.org" with
"unsubscribe watermarking YOURMAIL" in the body.
______________________________________________________________________________
|