7. Bố cục của luận văn
2.2. Các thuật toán thủy vân ảnh số dựa vào các phép biến đổi rời rạc
2.2.1. Thủy vân ảnh số dựa vào phép biến đổi Cosine rời rạc
2.2.1.1. Quá trình nhúng thủy vân
Thuật toán dưới đây sẽ sử dụng phương pháp nhúng thuỷ vân trong miền tần số của ảnh, giải tần được sử dụng để chứa tín hiệu thuỷ vân là miền tần số ở giữa của một khối DCT 8x8. Trong đó, các khối DCT 8x8 là những khối ảnh cùng kích thước đã được chọn ra ngẫu nhiên từ ảnh ban đầu và được áp dụng phép biến đổi cosin rời rạc DCT để chuyển sang miền tần số. Mỗi tín hiệu thuỷ vân sẽ được chứa trong một khối.
Input:
Một chuỗi các bit thể hiện bản quyền
Một ảnh
Output:
Một ảnh sau khi thủy vân
Khóa để giải mã
Các bước thực hiện
Bước 1: Ảnh F có kích thước m × n sẽ được chia thành (m × n) /64 khối 8 ×8, mỗi bit của thủy vân sẽ được giấu trong khối Bk.
Bước 2: Chọn một khối bất kì Bk và biến đổi DCT khối đó thu được Ck Ck = DCT(Bk).
Bước 3: Chọn hai hệ số ở vị trí bất kì trong miền tần số giữa của khối Ck, gọi hai hệ số đó là Ck[i, j] = Ck[p, q].
Bước 4: Tính độ lệch d = ||Ck[i, j]| - |Ck[p, q]|| mod a. Trong đó a là một tham số thỏa mãn a = 2 (2t + 1), với t là một số nguyên dương.
Bước 5: Bit bk sẽ được nhúng vào khối Ck sao cho thỏa mãn điều kiện sau:
1 2 1 2 t d t d Nếu bk = 1 Nếu bk = 0
28
Bước 6: Nếu d < 2t + 1 và bk = 1 thì trong hệ số DCT Ck[i,j] hoặc Ck[p,q] có giá trị tuyệt đối lớn hơn sẽ bị thay đổi để thỏa d ≥ 2t + 1 theo công thức sau:
Max (|Ck[i, j]|, |Ck[p, q]|) + (INT(0.75a) – d)
Hệ số được chọn sẽ được cộng thêm một lượng là (INT(0.75a) – d) Min (|Ck[i, j]|, |Ck[p, q]|) - (INT(0.75a) + d)
Hệ số được chọn sẽ được trừ đi 1 lượng là (INT(0.75a) + d)
Bước 7: Nếu d ≥ 2t + 1 và bk = 0 thì một trong hai hệ số DCT Ck[i, j] hoặc Ck[p, q] có giá trị tuyệt đối lớn hơn sẽ bị thay đổi để thỏa mãn d < 2t + 1 theo công thức sau:
Max (|Ck[i, j]|, |Ck[p, q]|) - (d - INT(0.75a))
Hệ số được chọn sẽ bị trừ đi một lượng là (d - INT(0.75a) Min (|Ck[i, j]|, |Ck[p, q]|) + (INT(0.75a) - d)
Hệ số được chọn sẽ được cộng thêm một lượng là (INT(0.75a) - d) Bước 8: Thực hiện phép biến đổi ngược IDCT đối với khối Ck, Bk = IDCT(Ck). Bước 9: Ghép các khối ảnh B’k để được ảnh chứa thủy vân F’.
Quá trình nhúng thủy vân được mô tả qua sơ đồ sau:
watermark
Tách khối
Biến đổi DCT
Nhúng thủy vân
Biến đổi IDCT
Ghép ảnh
Ảnh gốc
Các khối ảnh
Các khối DCT
Các khối đã nhúng thủy vân
Các khối đã biến đổi ngược IDCT
29 Ví dụ:
Giả sử ta cần giấu một bit thủy vân b = 0 vào khối B 8 × 8 được cho dưới đây. Ta chọn a = 26 = 2(2 × 6 + 1), do đó t = 6. B = 33 84 66 58 15 159 183 146 28 75 15 37 161 157 136 134 29 59 44 65 192 166 144 139 15 15 15 67 113 123 192 170 88 76 15 102 168 104 199 177 19 10 15 218 140 198 164 141 15 15 15 179 241 235 190 107 15 17 89 181 168 234 190 190
Biến đổi DCT(B) ta thu được khối C như sau:
C= 869 -438 -102 115 18 7 -62 -41 -110 64 143 -18 -78 -62 -2 38 30 -4 -37 -7 -67 8 55 -42 -7 27 22 -10 -3 57 -26 -57 -3 -2 109 -69 -33 41 6 9 -23 -27 -26 9 -29 33 6 -10 12 5 -8 -46 -13 33 38 -42 42 33 5 28 5 -31 -24 40
30
Trong miền tần số giữa của khối C, ta chọn hai hệ số bất kỳ, giả sử là C[2,3] = 143 và C[6,2] = -27.
Tính độ lệch d = ||143| - |-27|| mod 26 = 116 mod 26 = 12.
Với bit thủy vân b = 0 thì ta phải thay đổi một trong hai hệ số C[2,3] = 143 hoặc C[6,2] = -27 đã chọn để thu được d < 2t + 1.
Vì C[2,3] = 143 có giá trị tuyệt đối lớn hơn C[6,2], theo công thức (2,7) ta tính giá trị mới của C[2,3] là:
C[2,3] = C[2,3] – (d – INT(0.25a)) = 143 – (14 – INT(0.25 × 26)) = 135 Khi đã thay đổi hệ số C[2,3] = 135 ta thực hiện phép biến đổi ngược IDCT(C) và thu được khối B’ như sau:
B = 31 83 67 60 17 160 183 143 27 74 16 38 163 158 136 132 28 59 48 66 193 167 144 138 15 15 15 67 114 123 192 169 88 76 15 102 168 104 200 177 20 10 15 27 139 197 165 141 17 16 15 178 240 235 191 109 17 18 88 178 166 232 191 190
2.2.1.2. Quá trình tách thủy vân
Input
Ảnh đã nhúng thủy vân F’
Khóa K (nếu có)
Output
Thủy vân đã nhúng W biểu diễn qua dãy bit bk
Các bước thực hiện
31
Bước 2: Biến đổi DCT các khối B’k. Bk = DCT(B’k)
Bước 3: Lấy ra vị trí hai hệ số đã biến đổi Bk[i,j] và Bk[p,q].
Bước 4: Tính d = | Bk[i,j] - Bk[p,q | mod a với a = 2(2t+1) đã chọn khi nhúng thủy vân.
Bước 5: Nếu d ≥ 2t + 1 thì được bit bk = 1 ngược lại bk = 0.
Bước 6: Ghép các bit bk tách được từ các khối để được thủy vân đầy đủ W.
Ví dụ:
Với khối B’ ở ví dụ trên, quá trình tách thủy vân như sau:
Ta thực hiện phép biến đổi ngược IDCT của khối B’ để thu được khối B sau:
B = 869 -438 -102 115 18 7 -62 -41 -110 64 135 -18 -78 -62 -2 38 30 -4 -37 -7 -67 8 55 -42 -7 27 22 -10 -3 57 -26 -57 -3 -2 109 -69 -33 41 6 9 -23 -27 -26 9 -29 33 6 -10 12 5 -8 -46 -13 33 38 -42 42 33 5 28 5 -31 -24 40 watermarks Khối đã biến đổi DCT
Tách khối
Biến đổi DCT
Ảnh đã nhúng thủy vân
32
Ta lấy hai hệ số B[2, 3] = 135 và B[6, 2] = -27 Tính độ lệch d = ||B[2, 3]| - | B[6, 2] || mod 26 = 4.
Ta thấy d < 2t + 1 = 13, vậy bit b = 0 đã được giấu vào khối. 2.2.2. Thủy vân ảnh số dựa vào phép biến đổi sóng nhỏ rời rạc
Kỹ thuật thuỷ vân sử dụng phép biến đổi DWT thường phân tích ảnh gốc thành các miền tần số LL, LH, HL và HH sau đó nhúng thông tin thuỷ vân vào một hoặc một số miền tần số với các hệ số tương quan khác nhau. Ảnh chứa thuỷ vân sau đó được thử qua các phép biến đổi ảnh thông thường rồi tìm lại thuỷ vân. Kết quả, thuỷ vân trong các băng thể hiện tính bền vững khác nhau trước các phép biến đổi.
2.2.2.1. Quá trình nhúng thủy vân
Mô tả thuật toán:
Input:
- Một ảnh nhỏ được sử dụng làm thuỷ vân
Hình 2.3 Ảnh thuỷ vân trong kỹ thuật thuỷ vân DWT
- Một ảnh F kích thước 512x512 cần nhúng thuỷ vân để bảo vệ bản quyền
Hình 2.4 Ảnh chủ trong kỹ thuật thuỷ vân DWT
- Một khoá bí mật k để nhúng và giải thuỷ vân
33
* Qui trình nhúng thuỷ vân:
- Đọc ảnh chủ - Đọc ảnh thuỷ vân 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 ………. Tổng hợp ảnh chủ bằng IDWT từ các băng cA1, cD1 và các băng đã
nhúng thuỷ vân cH1 và cH2 .Ghi ảnh đã thuỷ vân lên đĩa Đọc ảnh chủ
Đọc ảnh thuỷ vân
Phân tích DWT mức 1 cho ảnh chủ
Đặt khoá K làm trạng thái cho bộ sinh chuỗi giả ngẫu nhiên
Tại những điểm thuỷ vân bằng 0 cộng thêm cho giá trị tương ứng của băng cH1 và cH2 một số giả ngẫu nhiên tương ứng trong hai dãy
34
chuyển ảnh thuỷ vân thành một vector: 0 1 0 1 0 1 1 1 ……… - Phân tích DWT mức 1 cho ảnh chủ Cột 120 đến cột 126: -1.0000 1.0000 -0.5000 0.5000 -0.5000 0 1.5000 1.5000 1.0000 -0.5000 0 -2.0000 4.5000 3.5000 1.5000 1.5000 -0.5000 0 -2.0000 1.0000 -0.5000 0 0.5000 -0.0000 0.5000 -0.5000 -2.0000 0.5000 0.5000 1.0000 1.5000 -2.5000 -4.0000 2.0000 -0.0000 1.5000 0.0000 -3.0000 0 2.5000 -0.5000 -4.0000 -0.5000 -2.0000 -1.0000 4.5000 3.0000 -3.0000 -1.0000
- Đọc khoá k làm trạng thái cho bộ sinh chuỗi giả ngẫu nhiên
- Tại những điểm thuỷ vân bằng 0 cộng thêm cho giá trị tương ứng của băng cH1 và cH2 một số giả ngẫu nhiên tương ứng trong hai dãy.
-69.0000 51.0000 61.5000 20.5000 63.5000 79.0000 23.5000 17.5000 19.0000 77.5000 55.0000 -50.0000 55.5000 -35.5000 18.5000 31.5000 -89.5000 8.0000 95.0000 -1.0000 1.5000 40.0000 -8.5000 51.0000 15.5000 -55.5000 -2.0000 -32.5000 23.5000 -24.0000 -59.5000 -15.5000 -5.0000 57.0000 -27.0000 4.5000 -22.0000 21.0000 78.0000 44.5000 -15.5000 18.0000 -4.5000 -2.0000 36.0000 -55.5000 -87.0000 -35.0000 -49.0000
35 ……….. Cột 120 đến cột 126 (băng cV1) -8.0000 38.0000 -18.5000 43.5000 4.5000 -12.0000 13.5000 38.5000 -14.0000 19.5000 -41.0000 3.0000 0.5000 -88.5000 2.5000 5.5000 -55.5000 -41.0000 -3.0000 -37.0000 66.5000 -13.0000 -51.5000 0 -106.5000 55.5000 -33.0000 -66.5000 48.5000 -42.0000 -68.5000 11.5000 -76.0000 -65.0000 -36.0000 55.5000 65.0000 -79.0000 -27.0000 14.500 -28.5000 -16.0000 46.5000 -32.0000 -48.0000 26.5000 -101.0000 -26.0000 109.0000 ……….
- Tổng hợp ảnh chủ bằng IDWT từ các băng cA1, cD1 và các băng đã nhúng thuỷ vân cH1 và cH2 233.0000 215.0000 262.0000 193.0000 253.0000 237.0000 280.0000 198.0000 196.0000 244.0000 206.0000 267.0000 184.0000 229.0000 196.0000 161.0000 193.0000 182.0000 157.0000 241.0000 162.0000 164.0000 198.0000 229.0000 235.0000 208.0000 230.0000 150.0000 229.0000 169.0000 180.0000 197.0000 175.0000 154.0000 157.0000 219.0000 170.0000 179.0000 159.0000 137.0000 173.0000 176.0000 198.0000 104.0000 165.0000 159.0000 201.0000 120.0000 191.0000 ……….
- Ghi ảnh đã thuỷ vân lên đĩa.
36
Hình 2.5 Ảnh sau khi thuỷ vân bằng kỹ thuật thuỷ vân DWT
2.2.2.2 Quá trình tìm lại thủy vân - Input: Ảnh đã thủy vân
- Output: Ảnh thuỷ vân
Qui trình tìm lại thuỷ vân
2.2.3. Thủy vân ảnh số dựa vào phép biến đổi Fourier rời rạc 2.2.3.1. Giới thiệu 2.2.3.1. Giới thiệu
Phép biến đổi Fourier rời rạc là sự kết hợp đối xứng, kết quả trong một phổ DFT đối xứng. Vì vậy mà sự phổ biến của thủy vân dựa vào phép biến đổi DFT đã tăng lên trong một vài năm gần đây. Kỹ thuật này sử dụng một số băng tần làm tăng sự bền vững của chương trình thủy vân được đề xuất. Đặc biệt, thủy vân được nhúng trong miền tần số thấp bền vững trước một tập hợp
Đọc ảnh chủ đã thuỷ vân Đọc ảnh thuỷ vân gốc
Phân tích DWT mức 1 cho ảnh chủ đã thuỷ vân
Đặt khoá K làm trạng thái cho bộ sinh chuỗi giả ngẫu nhiên
Tính các hệ số đồng tương quan giữa các băng cH1, cH2 với các dãy số giả ngẫu nhiên
Xây dựng vector thuỷ vân thông qua các hệ số đồng tương quan
37
các cuộc tấn công, còn thủy vân được nhúng trong miền tần số cao hơn bền vững trước tập hợp các cuộc tấn công khác.
2.2.3.2. Nhúng nhiều thủy vân trong miền DFT
Miền DCT hoặc DWT là chương trình nhúng thủy vân bán mù đã được chứng minh là bền vững trước những tấn công. Tuy nhiên nếu có một phép biến đổi hình học (ví dụ như phép xoay, lật, dịch chuyển, co giãn) thì vị trí của các hệ số biến đổi sẽ thay đổi dẫn đến một phát hiện yếu. Vì vậy gần đây có nghiên cứu về thủy vân dựa trên miền DFT. Có thể nhúng một hình tròn mờ đối xứng trong miền DFT bằng cách sử dụng công thức:
Mw(u,v) = M(u,v) + αW(u,v)
Trong đó M biểu thị độ lớn hệ số DFT của hình ảnh, là hệ số co giãn, W là thủy vân hình vòng.
Công thức nhúng thủy vân của Solachidis và Pitas
2 1 2 1 0 1 ) , ( R r và R r khi R r R khi r
Trong vòng tròn bao quanh các tần số trung tâm thì
) / arctan( ) (u2 v2 và v u sqrt r
Theo Licks và Jordan nhúng một thủy vân hình vòng được xác định như sau khác R v u khi n v u 0 ) , ( 2 2 2
Trong đó n là đầu ra từ một hàm sinh số giả ngẫu nhiên, R là bán kính của hình tròn thủy vân.
Trong cả hai trường hợp trên, sự hiện diện của thủy vân được phát hiện bằng cách sử dụng sự tương quan: ) , ( ) , ( * 1 1 v u M v u W c W N u N v
Trong đó NxN là kích thước của hình ảnh,MW*(u,v)là độ lớn của hệ số DFT của ảnh thủy vân. Nguyên tắc xác định sự tồn tại của thủy vân như sau:
38
H0: hình ảnh được nhúng thủy vân W nếu cT
H1: hình ảnh không được nhúng thủy vân W nếu cT
Ngưỡng T tính theo công thức T (0 1)/2 trong đó 0và1 là các giá trị kỳ vọng của hàm mật độ xác suất Gauss liên quan đến các giả thuyết H0 và H1 tương ứng.
Minh họa cho quá trình nhúng bằng kỹ thuật DFT thông qua hình 2.6:
Hình 2.6 Nhúng 1 thủy vân hình vòng trong miền DFT (a) ảnh chủ Lena, (b) Độ lớn của hệ số DFT * Quá trình nhúng thủy vân:
1.Tính toán DFT của ảnh chủ kích thước NxN
2.Có độ lớn của hệ số DFT tiến hành phân chia ma trận kích thước NxN thành 4 ma trận MUL, MUR, MLL, MLR có kích thước (N/2)x(N/2)
3.Nhúng vào ma trận phía trên trái MUL
- Xác định dải tần số cao và dải tần số thấp dựa trên các hệ số DFT. - Chọn một khối có kích thước k và một chuỗi PRN chiều dài m, tạo thành khối có kích thước k x m.
- Tạo ra 1 ma trận thủy vân W bằng cách đặt một thành phần của chuỗi
PRN trong mỗi khối băng tần. Vị trí trong mỗi khối được lựa chọn ngẫu nhiên. - Chọn hệ số co giãn l cho các băng tần số thấp và giá trị lớn hơn cho hệ số co giãn h cho băng tần số cao.
39
4.Sao chép các hệ số điều chỉnh ở ma trận phía trên trái MUL vào ma trận phía dưới phải MLR.
5.Nhúng vào ma trận phía trên phải MUR:
- Sử dụng các dải tần như trong bước 3(a).
- Sử dụng một khối có kích thước như trong bước 3(b), và một chuỗi PRN khác có chiều dài tương tự như chuỗi PRN ở bước 3(b).
- Tạo một ma trận thủy vân W bằng cách đặt một thành phần của chuỗi PRN trong mỗi khối băng tần. Vị trí trong mỗi khối được lựa chọn ngẫu nhiên.
- Chọn hệ số co giãn l cho các băng tần số thấp và chọn hệ số co giãn
h
cho băng tần số cao trong bước 3(d). - Thêm W vào ma trận MUR.
6. Sao chép các hệ số biến đổi của ma trận trên phải MUR cho ma trận thấp trái MLL.
7.Tính được các hệ số DFT của hình ảnh bằng cách lấy giá trị trong các ma trận MUL, MUR, MLL, MLR và các góc tương ứng.
8.Áp dụng DFT ngược để có được hình ảnh thủy vân.
* Quá trình tách thủy vân:
Tính N N *
w u 1 v 1
c W(u, v)M (u, v)
trong đó Mw*(u,v) là độ lớn của hệ số thủy vân DFT (có thể bị tấn công).
Nếu cT thì ảnh được thủy vân bởi W. Nếu c <T thì ảnh không được thủy vân bởi W.