Digital Image Watermarking ELE 488 Final Project, Fall 2011 Princeton University Ali JavadiAbhari Watermarking Why? • Fingerprinting (tracking) • Indexing (search engines) • Copyright protection and owner identification • Data hiding • Data authentication (fragile watermarks) • Recovery (self-embedding) Properties • Visibility (transparency) • Robustness • Payload • Security (not through obscurity) 2 In This Project • Three techniques 1. Yeung-Mintzer (bit-plane slicing) 2. Cox (spread spectrum watermarking) 3. Fridrich (Self-embedding) They show a wide range of applications of watermarking. Their comparison reveals valuable information. 3 Yeung-Mintzer • LUT based fragile watermarking method in the spatial domain • Good for tamper detection at single pixel level • Limit run of 1s and 0s in LUT to avoid large effect on original image • On average only half the pixels are modified 4 Yeung-Mintzer • Change to the image are invisible 5 Yeung-Mintzer • Change to the image are invisible 6 Yeung-Mintzer • Good for local modification detection (e.g. Cropping) 7 Yeung-Mintzer • Good for local modification detection (e.g. Cropping) 8 Yeung-Mintzer • Very fragile. Lighting up the whole image by 10 intensity values: 9 Yeung-Mintzer • Very fragile. Lighting up the whole image by 10 intensity values: 10 Cox • Watermarking in the frequency (DCT) domain • Series of random numbers ωi are inserted into the K most significant coefficients by: ci'=ci.(1+αωi) 1≤i≤K • Gamma (γ) is a measure to let us know the extent of manipulation, and cannot show where the tampering has taken place (unlike Yeung-Mintzer) and obviously cannot provide the correct form (unlike Fridrich) • Quite robust (retains random numbers’ values) 11 Cox • The watermark’s effect can be found only with close inspection, still pretty invisible: 12 Cox • The watermark’s effect can be found only with close inspection, still pretty invisible: 13 Fridrich • Self-embedding • DCT of 8x8 blocks is taken, encoded into 64-bit string, and embedded in LSB of destination block • Source and destination block linked via an encoding vector, usually 0.3 of image size in length • Has recovering capabilities, unlike previous methods • The recovered parts are of low quality (less than 50% JPEG) • Works best for local changes (forgery) since both destination and source must not be modified 14 Fridrich • Example 1: (Vector=0.4hor+0.1ver) 15 Fridrich • Example 1: (Vector=0.4hor+0.1ver) 16 Fridrich • Example 2: (Vector=0.4hor+0.1ver) 17 Fridrich • Example 2: (Vector=0.4hor+0.1ver) 18 Contribution • Previous method shows a flaw in the method proposed in the paper by Fridrich • If Block 2 is inconsistent with both Block 1 and Block 3, it might be that Block 2 is not tampered but the other two are. Need to check Block 0 to be sure Block 0 Encryption vector Block 1 Block 2 Block 3 19 Contribution • Example 2: (Vector=0.4hor+0.1ver) 20 Comparisons Yeung-Mintzer Cox Fridrich Philosophy Detect any change, at the level of individual pixels Be more robust; determine weather change is strong enough or not Detect local tampering, and also correct it Visibility (qualitative transparency) Invisible Invisible Invisible Effect on original image * (quantitative transparency) 0.1619 % 1.4694 % 0.1117 % Robustness Very Fragile Very robust Robust to local modifications Information needed for decoding LUT K largest coefficients, their indices, the random numbers and alpha Encoding vector Recoverable No No Yes *Based on Lenna. Measuring average difference between pixels by summing differences, and dividing by image size times pixel range (256) 21 Comparisons Using morphological transformations as benchmarks: Yeung-Mintzer (recovered logo) Cox (γ) Fridrich (recovered image) Crop Shows crop location 0.2065 (unacceptable) Recovered Filter Edges ruined 0.8856 (acceptable) Destroyed Illuminate Destroyed 0.4870 (acceptable) Partial destruction Noise Noisy 0.5690 (acceptable) Partial destruction Rotate Same rotation 0.0170 (unacceptable) - 22 Cropping out a rectangle (Yeung-Mintzer) γ=0.2065 (Cox) (Fridrich) 23 Lowpass Filtering (Yeung-Mintzer) γ=0.8856 (Cox) (Fridrich) 24 Illuminating (Yeung-Mintzer) γ=0.4870 (Cox) (Fridrich) 25 Adding Noise (Yeung-Mintzer) γ=0.5690 (Cox) (Fridrich) 26 Rotating (Yeung-Mintzer) γ=0.0170 (Cox) MATLAB out-of-bound access in Fridrich algorithm (Fridrich) 27 References • [1] M. Yeung and F. Mintzer. Invisible Watermarking for Image Verification. Journal of Electronic Imaging, pp. 576-591, 1998. • [2] I. Cox, J. Kilian, T. Leighton, T. Shamoon. Secure Spread Spectrum Watermarking for Multimedia, IEEE Transaction on Image Processing, vol.6, no.12, pp.1673-1687, 1997. • [3] J. Fridrich, M. Goljan, Protection of Digital Images Using SelfEmbedding, Symposium on Content Security and Data Hiding in Digital Media, NJ, USA, May 14, 1999. • [4] R. C. Gonzalez and R.E. Woods, Digital Image Processing 4th Edition, Prentice Hall, New Jersey, 2009. • [5] B.B. Zhu, M.D. Swanson and A.H. Tewfik. When seeing isn’t believing. IEEE Signal Processing Magazine, pp. 40–49, 2004. 28 Thank You! Any Questions? 29