b)
2.2.4.3 Ưu điểm của wavelet và ứng dụng
2.2.4.3.1 Ưu điểm
Theo nguyên tắc: Không thể đạt được độ phân giải cao trong cả 2 miền thời gian và tần số. Đặc tính đáng chú ý của phép biến đổi wavelet là độ phân giải thời gian tốt ở tần số cao, độ phân giải tần số tốt ở tần số thấp. Vì vậy thích hợp với việc phân tích các tín hiệu gồm các thành phần tần số cao có thời gian tồn tại ngắn và các thành phần tần số thấp có thời gian tồn tại dài.
2.2.4.3.2 Ứng dụng
Nén tín hiệu
Do đặc điểm của mình, Wavelet đặc biệt tốt khi sử dụng để nén hay phân tích các tín hiệu không dừng, nhất là tín hiệu ảnh số và các ứng dụng nén tiếng nói, nén dữ liệu.
Vì tính chất chỉ tồn tại trong các khoảng thời gian ngắn (khi phân tích tín hiệu trong miền thời gian tần số) mà các hệ số của biến đổi Wavelet có khả năng tập trung năng lượng rất tốt vào các hệ số biến đổi. Các hệ số mang thông tin chi tiết của biến đổi Wavelet thường rất nhỏ và có thể bỏ qua mà không ảnh hưởng tới việc mả hóa dữ liệu (trong phương pháp mả hóa ảnh là những tín hiệu cho phép mả hóa có tổn thất thông tin).
Khử nhiểu
Có một phương pháp khử nhiểu gọi là “Wavelet Shrinkage Denoising” (WSD). Ý tưởng cơ bản của WSD dựa trên việc tín hiệu nhiểu sẻ lộ rỏ khi phân tích bằng biến đổi wavelet ở các hệ số biến đổi bậc cao. Việc áp dụng các ngưỡng loại bỏ tương ứng với các bậc cao hơn của hệ số wavelet sẽ có thể dễ dàng laoi bỏ nhiểu trong tín hiệu.
Mã hóa nguồn và mã hóa kênh
Trong mã hóa nguồn ta cần khả năng nén với tỷ lệ nén cao còn trong mã hóa kênh thì cần khả năng chống nhiễu tốt. Biến đổi wavelet kết hợp với 1 số phương pháp mã hóa như mã hóa Hufman hay mã hóa số học có thể thực hiện được cả 2 điều vừa nói trên.
www.7gio.com
32
2.2.4.4 Một số họ wavelets
Biến đổi wavelet Haar
Biến đổi wavelet haar là biến đổi đơn giản nhất trong các phép biến đổi wavelet. Hình 3.14 mô tả dạng hàm ψ(t) với biến đổi Haar. Do tính chất đơn giản của biến đổi Haar nên nó được ứng dụng nhiều trong nén ảnh và dấu thông tin trong ảnh (Watermarking).
Haar wavelet có đặc tính: Độ rộng xác định: 1 Độ dài bộ lọc: 2
Sóng moment bằng 0 đối với hàm wavelet: 1
Biến đổi wavelet Daubechies
Là 1 trong những biến đổi phức tạp nhất trong biến đổi wavelet, nó khám phá ra cái wavelet trực giao khoảng chặt – khiến cho phân tích wavelet rời rạc có giá trị thực tế. Họ biến đổi này được ứng dụng hết sức rộng rãi, biến đổi wavelet áp dụng trong JPEG2000 là 1 biến đổi wavelet Daubechies.
Hình 2.10 Hàm ψ(t) của biến đổi Haar
Hình 2.11 Hàm ψ(t) của họ biến đổi Daubechies n với n=2,3,4,5
www.7gio.com
33 DbN có đặc tính:
Độ rộng xác định: 2N – 1 Độ dài bộ lọc: 2N
Số moment bằng 0 đối với hàm wavelets: N
Biến đổi wavelet Biorthogonal
Nhờ dùng 2 wavelet, 1 cho phân tích bên trái và 1 cho tái tạo bên phải thay vì chỉ dùng Chung 1 cái, đã đạt được các đặc tính thú vị.
Biến đổi wavelet Coiflets
Biến đổi wavelet Morlet
Wavelet này có hàm mức, nhưng rỏ rang
Hình 2.12 Một vài hàm ψ(t) của các cặp họ biến đổi Biorthogonal
Hình 2.13 Hàm ψ(t) của họ biến đổi Coiflets
Hình 2.14 Hàm ψ(t) của họ biến đổi Morlet
www.7gio.com
34
Biến đổi wavelet Mexican hat
Wavelet này không có hàm mức và là dẫn xuất của một hàm mà tỷ lệ với đạo hàm bậc hai của hàm mật độ xác suất Gauss.
Biến đổi wavelet Meyer
Đây là 1 hàm biến đổi wavelet thông dụng, và là hàm mức xác định theo tần số. biến đổi này có khả năng phân tích tín hiệu tốt hơn nhiều so với biến đổi Haar.
2.2.4.5 Watermarking ảnh số dùng phân tích wavelet
Kỹ thuật watermarking cơ bản sử dụng phép biến đổi DWT thường phân tích ảnh gốc thành bốn băng tần số khác LL1, LH1, HL1, HH1 bằng cách sắp xếp các bộ lọc băng con. Để tạo thêm được các hệ số wavelet, băng con LL1 lại tiếp tục được phân tích
Hình 2.15 Hàm ψ(t) của họ biến đổi Mexican Hat
Hình 2.16 Hàm ψ(t) của họ biến đổi Meyer
www.7gio.com
35
tiếp. Quá trình này được lặp lại cho đến khi có được kết quả mong muốn nhằm phù hợp với từng ứng dụng. Sau đó nhúng thông tin watermark vào một hoặc một số wavelet băng con với các hệ số khác nhau. Dưới đây là một ví dụ về phân tích wavelet mức 3 (level 3).
Hình 2.17 Phân tích wavelet mức 3 cho ảnh số
Mức 1 Mức 2 Mức 3
www.7gio.com
36
CHƯƠNG 3. THUẬT TOÁN VÀ CHƯƠNG TRÌNH
3.1 Giới thiệu
Vì giới hạn về thời gian nên em chỉ đưa ra mô hình nhúng và trích ảnh trong trường hợp cần có ảnh gốc và ảnh watermark. Nếu ứng dụng vào việc bảo vệ bản quyền ảnh số thì chưa tối ưu được nhưng với điều kiện tác giả có đăng ký bản quyền trước với các nhà chức trách thì việc sử dụng ảnh gốc trong quá trình trích watermark sẻ thực hiện được đơn giản hơn.
Trong đó ảnh gốc là ảnh màu baboon kích thước 256×256(A) và ảnh watermark là ảnh màu Lena(B) có cùng kích thước với ảnh gốc, cả 2 ảnh đều có định dạng JPEG. Thuật toán thực hiện nhúng thành công dùng biến đổi DWT mức 3 từ đó đánh giá 1 vài đại lượng chủ quan như MSE (Mean Square Error) – trị trung bình bình phương sai số của ảnh và PSNR (Peak Signal Noise Ratio) – tỷ số tín hiệu cực đại trên nhiểu và khảo sát độ mạnh watermark ∝.
Ở đây phần mềm được sử dụng là MATLAB 7.11.0 (R2010b).
www.7gio.com
37
3.2 Lưu đồ giải thuật Quá trình nhúng: Quá trình nhúng: A=rgb2gray(A) P1=im2double(A) P=imresize(P1,[2048 2048]) LL2=DWT_P_mức 3 P2=rgb2gray(B) watermark =im2double(P2) watermark =imresize(watermark,[2048 2048]) L-L2= DWT_watermark_mức 3 watermark =imresize(watermark,[2048 2048]) + + ∝ Watermarked image= LL2 + ∝*L-L2 Watermarked image- final=IDWT_Watermarked image_mức 3
Đây là ảnh sau khi nhúng
www.7gio.com
38
Quá trình trích:
-
3.3 Các thông số đánh giá chủ quan (MSE và PSNR)
Ta có với pic1=P; pic2=watermarked image_final thì
2 1 1 [( 1( , ) 2( , )) 1 1, 2 ] n m i j
mse MSE pic pic pic i j p
mn ic i j 2 1 1 (max(pic1)) [ 1, 2] 10 log n m i j psnr PSNR pic pic mse dB
Khi mse tiến tới 0 và psnr tiến tới vô hạn thì quá trình watermarking cho ảnh sau nhúng đạt chất lượng tốt nhất. 3.4 Chương trình matlab Chương trình chính: clc; clear all; warning off; chos=0; possibility=11; ∝=0.09; Watermarked image- final=IDWT_Watermarked image_mức 3 aaa= DWT-watermarked image_final_mức 3 LL2=DWT_P_mức 3 - + ∝ Recoverd-image= (aaa-LL2)/∝ www.7gio.com
39
while chos~=possibility,
chos=menu('Digital 3-level image watermarking','select the cover image','select the watermark image','show 3-level coverimage','show 3-level
watermarkimage','show watermarked image','show extracted image','Calculate MSE for embedding','Calculate PSNR for embedding','Calculate MSE for extraction','Calculate PSNR for extraction','exit');
if chos==1
[fname pname]=uigetfile('*.jpg','select the Cover Image'); %eval('imageinput=imread(fname)'); imageinput=imread(fname); A=rgb2gray(imageinput); P1=im2double(A); P=imresize(P1,[2048 2048]); %imshow(P); %figure(1); %title('original image'); [F1,F2]= wfilters('haar', 'd'); [LL,LH,HL,HH] = dwt2(P,'haar','d'); [LL1,LH1,HL1,HH1] = dwt2(LL,'haar','d'); [LL2,LH2,HL2,HH2] = dwt2(LL1,'haar','d'); %figure(2)
%imshow(LL2,'DisplayRange',[]), title('3 level dwt of cover image'); end
if chos==2
[fname pname]=uigetfile('*.jpg','select the Watermark'); %eval('imageinput=imread(fname)');
%imageinput=imread(fname); B=imread(fname);
P2=rgb2gray(B);
www.7gio.com
40 watermark=im2double(P2); watermark=imresize(watermark,[2048 2048]); %figure(3) %imshow(uint8(watermark));title('watermark image') [WF1,WF2]= wfilters('haar', 'd'); [L_L,L_H,H_L,H_H] = dwt2(watermark,'haar','d'); [L_L1,L_H1,H_L1,H_H1] = dwt2(L_L,'haar','d'); [L_L2,L_H2,H_L2,H_H2] = dwt2(L_L1,'haar','d'); %figure(4)
%imshow(L_L2,'DisplayRange',[]), title('3 level dwt of watermark image'); end
if chos==3
imshow(LL2,'DisplayRange',[]), title('3 level dwt of cover image') end
if chos==4
imshow(L_L2,'DisplayRange',[]), title('3 level dwt of watermark image') end if chos==5 Watermarkedimage=LL2+∝*L_L2;
%computing level-1 idwt2
Watermarkedimage_level1= idwt2(Watermarkedimage,LH2,HL2,HH2,'haar'); %figure(5)
%imshow(Watermarkedimage_level1,'DisplayRange',[]), title('Watermarkedimage level1');
%computing level-2 idwt2
Watermarkedimage_level2=idwt2(Watermarkedimage_level1,LH1,HL1,HH1,'h aar');
%figure(6)
www.7gio.com
41
%imshow(Watermarkedimage_level2,'DisplayRange',[]), title('Watermarkedimage level2');
%computing level-3 idwt2
Watermarkedimage_final=idwt2(Watermarkedimage_level2,LH,HL,HH,'haar'); %figure(7)
imshow(Watermarkedimage_final,'DisplayRange',[]), title('Watermarkedimage final')
end
if chos==6
[F11,F22]= wfilters('haar', 'd');
[a b c d]=dwt2(Watermarkedimage_final,'haar','d'); [aa bb cc dd]=dwt2(a,'haar','d');
[aaa bbb ccc ddd]=dwt2(aa,'haar','d'); recovered_image=(aaa-LL2)/∝; %figure(8) imshow(recovered_image,[]); %title('extracted watermark') end if chos==7 pic1= P; pic2= Watermarkedimage_final; mse=MSE(pic1,pic2) end if chos==8 pic1= P; pic2= Watermarkedimage_final; psnr=PSNR(pic1,pic2) end if chos==9 clear pic1; www.7gio.com
42 clear pic2; pic1=L_L2; pic2=recovered_image; mse_extraction=MSE(pic1,pic2) end if chos==10 psnr_extraction=PSNR(pic1,pic2) end end Hàm tính MSE
function [ out ] = MSE( pic1,pic2 )
%UNTITLED Summary of this function goes here % Detailed explanation goes here
e=0; [m n]=size(pic1); for i=1:m for j=1:n e=e+double((pic1(i,j)-pic2(i,j))^2); end end out=e/(m*n); end Hàm tính PSNR
function [ out ] = PSNR( pic1,pic2 )
%UNTITLED2 Summary of this function goes here % Detailed explanation goes here
e=MSE(pic1,pic2); m=max(max(pic1));
out=10*log((double(m)^2)/e);
end
www.7gio.com
43
CHƯƠNG 4. KẾT QUẢ MÔ PHỎNG
Với việc khảo sát các thông số ∝ ta thu được các kết quả như sau:
4.1 Với ∝ = 0.01
Hình 4.1 Ảnh nhúng thu được khi ∝=0.01
www.7gio.com
44 MSE và PSNR: mse =2.7098×10^-005 psnr = 101.8624 mse_extraction =1.3885×10^-25 psnr_extraction =612.3606 4.2 Với ∝ = 0.02
Hình 4.2 Ảnh watermark thu được khi ∝=0.01
www.7gio.com
45
Hình 4.3 Ảnh nhúng thu được khi ∝=0.02
www.7gio.com
46 Kết quả MSE và PSNR: mse =1.0839e-004 psnr =87.9994 mse_extraction =3.5271e-026 psnr_extraction =626.0640 Với e là cơ số 10
Hình 4.4 Ảnh watermark thu được khi ∝=0.02
www.7gio.com
47
4.3 Với ∝ = 0.03
Hình 4.5 Ảnh nhúng thu được khi ∝=0.03
www.7gio.com
48 Kết quả MSE và PSNR: mse = 2.4388e-004 psnr =79.8901 mse_extraction =1.5938e-026 psnr_extraction =634.0072
Hình 4.6 Ảnh watermark thu được khi ∝=0.03
www.7gio.com
49
4.4 Với ∝ = 0.04
Hình 4.7 Ảnh nhúng thu được khi ∝=0.04
www.7gio.com
50 Các giá trị MSE và PSNR: mse = 4.3356e-004 psnr = 74.1365 mse_extraction = 9.1160e-027 psnr_extraction = 639.5942
Hình 4.8 Ảnh watermark thu được khi ∝=0.04
www.7gio.com
51
4.5 Với ∝ = 0.05
Hình 4.9 Ảnh nhúng thu được khi ∝=0.05
www.7gio.com
52 Các giá trị MSE và PSNR: mse = 6.7744e-004 psnr = 69.6736 mse_extraction = 5.9457e-027 psnr_extraction = 643.8678
Và tương tự có các khảo sát với các hệ số ∝ khác nhau từ 0.06 đến 0.09 thì đều cho kết quả MSE và PSNR xấp xỉ nhau, chất lượng ảnh sau nhúng cũng gần với ảnh gốc. Nhưng đến khi thay ∝ = 0.2 thì ta có kết quả khác biệt
Hình 4.10 Ảnh watermark thu được khi ∝=0.05
www.7gio.com
53
Hình 4.11 Ảnh nhúng thu được khi ∝=0.2
www.7gio.com
54
Tới đây ta thấy ảnh sau nhúng không còn rỏ nét bằng các giá trị ∝ lúc trước. Và watermark là thông tin cần dấu sẻ hiện mờ trên ảnh đả nhúng.
Để thấy rỏ điều này hơn ta cho ∝=10, ảnh sau khi nhúng thấy rất rỏ thông tin cần giấu, trong khi dữ liệu ảnh gốc bị
Và các giá trị mse và psnr không đáp ứng được yêu cầu về chất lượng của ảnh, trị mse quá lớn trong khi psnr thì quá bé.
Hình 4.12 Ảnh nhúng thu được khi ∝=10
www.7gio.com
55
4.6 Kết luận
Sau khi lấy trung bình cộng của các giá trị mse và psnr của các giá trị khi khảo sát ∝ từ 0.01 đến 0.09 ta được: MSE(TB) = 0.001036 ; PSNR(TB) = 71,653.
Vậy qua kết quả thu được ta nhận thấy việc giấu tin dùng phân tích DWT cho kết quả tốt, MSE dần về 0 và PSNR rất cao.
Vì giới hạn về mặt thời gian nên em chưa có điều kiện để mô phỏng và khảo sát các tấn công xảy ra.
www.7gio.com
56
CHƯƠNG 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
4.1 KẾT LUẬN
Nhiều phương pháp giấu thông tin đã và đang được nghiên cứu, mỗi phương pháp có những ưu điểm, nhược điểm và các ứng dụng khác nhau. Phương pháp sử dụng các bít trọng số nhỏ đơn giản tuy nhiên thông tin giấu không bền vững trước nhiều hình thức tấn công. Phương pháp sử dụng các hệ số biến đổi (chẳng hạn biến đổi từ miền không gian sang miền tần số như DFT, DCT, hay wavelets,...) nói chung có tính bền vững cao, tuy nhiên khá phức tạp trong cài đặt.
Nội dung luận văn đã đề cập đến phương pháp watermark trong miền biến đổi wavelets cho Định dạng ảnh số.
Sau thời gian thực hiện, luận văn đạt đã hoàn thành các công việc sau:
- Nghiên cứu các phương pháp, nguyên lý và kỹ thuật watermark cho ảnh số.
- Nghiên cứu về kỷ về phép biến đổi wavelet, kỹ thuật biến đổi wavelets rời rạc, kỹ thuật nhúng và trích watermark trong miền DWT.
- Phần thực nghiệm, đã xây dựng nên 1 thuật toán và sử dụng phần mềm mô phỏng Matlab để viết chương trình thực hiện nhúng và trích watermark cho ảnh số. Mặc dù không mô phỏng được các tấn công xảy ra nhưng cũng đả tính toán và đánh giá được 1 vài thông số chủ quan.
4.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Việc mô phỏng chỉ tính được 1 vài thông số chủ quan, chưa đưa ra được các thông số khách quan. Chưa khảo sát được cách lựa chọn băng tần nhúng cũng như việc lựa chọn họ wavelet để làm tăng thêm tính mạnh mẽ cho thuật toán. Ngoài ra cũng chưa mô phỏng được các tấn công nhất là tấn công JPEG, 1 tấn công rất đặc trưng đối với phép biến đổi wavelet. Nên những điều đó sẽ là hướng nghiên cứu tiếp theo.
Việc thực hiện thành công nhúng, trích watermark trong miền DWT mở ra nhiều hướng nghiên cứu mới:
- Việc thực hiện nhúng, trích dữ liệu mới được thực hiện trong các định dạng ảnh tĩnh nên có thể tiếp tục nghiên cứu cho các định dạng video, audio và các định dạng khác. - Nghiên cứu, xây dựng các phương pháp watermark khác.
www.7gio.com
57
TÀI LIÊỤ THAM KHẢO
1. A Robust Image Watermarking Based on Inmage Restoration Using SIFT
Tác giả: Haijun LUO, Xingming SUN, Hengfu YANG, Zihua XIA 2. A Survey Paper On Digital Watermarking Techniques( ISSN –
1/2014)
Tác giả: Ketul K.Patel
3. Digital Image Watermarking Based on Mixed Error Correcting Code Tác giả: Yonghong, Jiancong Chen
4. http://www.mathworks.com; www.dientuvietnam.net...
www.7gio.com