Phép biến đổi ma trận SVD

Một phần của tài liệu luan van tot nghiep phát hiện ảnh số giả mạo dựa trên các phép biến đổi (Trang 43)

2.3.1 Định nghĩa SVD

SVD (Singular Value Decomposition) là một phương pháp phân tích một ma trận thành tích của ma trận có kích thước nhỏ hơn. SVD đã được sử dụng trong nhiều lĩnh vực như nén dữ liệu, xử lý tần số và phân tích mẫu.

Cho một ma trận MxN hạng r, định lý phân rã giá trị đơn khẳng định rằng tồn tại các ma trận trực giao và sao cho A được tính theo dạng phương trình (1)

(1)

Trong đó là ma trận đường chéo NxM, được chia thành dạng phương trình (2).

36

Với một ma trận chéo vuông trong ,

với các giá trị chéo dương được gọi là các giá trị đơn lẻ của A và được sắp xếp theo thứ tự giảm dần như sau: .

Nói chung, các ma trận trực giao U, V không phải là duy nhất cho A, nhưng các giá trị là duy nhất của A. Phương trình (1) cũng có thể được viết dưới dạng:

Các ma trận con có kích thước , .

2.3.2 Giảm hạng xấp xỉ của một ma trận

Chúng ta xác định một họ các ma trận hạng nhỏ bằng cách chỉ giữ các giá trị k đầu tiên:

Rõ ràng, hạng k, và khi k = r, chúng ta có = A. Xét dạng đầy đủ SVD đầy đủ của A, chúng ta có thể viết:

Vì vậy, A và có cùng các giá trị đơn k cao nhất của chúng, nhưng các giá trị đơn r-k còn lại của khác biệt r-k của đã được thay thế bởi các giá trị 0 trong . Các ma trận Ak đóng một vai trò đặc biệt trong việc xây dựng các mức giảm hạng xấp xỉ của ma trận gốc A.

Trong tập các ma trận N × M hạng k (k <r), ma trận B gần giống nhất với A trong chuẩn ma trận Euclide (hay Frobenius) là ma trận , tức là khoảng cách || A-B || được giảm tới tối thiểu qua các ma trận hạng k N×M khi B = . Khoảng cách ma trận nhỏ nhất là

và . Định lý này là một công cụ thiết yếu

37

Trong nhiều ứng dụng, các giá trị nhỏ nhất của ma trận A hạng r có xu hướng chia thành hai nhóm - giá trị lớn hơn và giá trị nhỏ hơn, chúng ta có thể nhóm các giá trị đơn r thành: . Trong các ứng dụng xử lý tần số, chúng ta nghĩ nhóm lớn các giá trị đơn xuất phát từ tần số mong muốn, và nhóm nhỏ phát sinh từ nhiễu. Thông thường, việc chọn giá trị k tách nhóm lớn khỏi nhóm nhỏ là khác nhau, nhưng đôi khi việc lựa chọn này rất thiếu chính xác và chúng ta có thể cần phải chọn nó sau các thử nghiễm và lỗi.

Thay thế ma trận gốc A bằng ma trận xấp xỉ hạng k của nó thường làm giảm chiều, làm giảm ảnh hưởng của nhiễu và tăng cường tần số mong muốn. Vì vậy, SVD được sử dụng để ước lượng ma trận, tách dữ liệu thành ước lượng tối ưu của tần số và các thành phần nhiễu. Giá trị của tham số quan trọng k được chọn để thỏa mãn:

Trong đó là các giá trị nhỏ nhất của ma trận A, ε là ngưỡng giảm hạng xấp xỉ của ma trận A.

2.3.3 Đặc trưng của các Vecto đặc trưng giá trị

Trong SVD và giảm hạng xấp xỉ của một ma trận, các giá trị lớn nhất (SVs) tạo nên vector đặc trưng kích thước k. SV có một số tính chất quan trọng như bất biến đại số và hình học và không nhạy với nhiễu. Trong những năm gần đây, giá trị đơn đã được sử dụng như là vector đặc trưng cho việc nhận dạng mẫu. Các giá trị đặc trưng đơn đại diện cho các thuộc tính bất biến đại số và hình học của một hình ảnh.

- Sự ổn định của SV

Giả sử , , và các giá trị đơn ít của chúng lần lượt là: ≥ ≥ ... ≥ , ≥ ≥ ... ≥ , sau đó

38

Điều này có nghĩa là khi có yếu tố nhiễu ở A, sự biến thiên của các giá trị đơn của nó không lớn hơn 2-norm của ma trận nhiễu.

- Thuộc tính mở rộng

Nếu các giá trị đơn của là , , ... , các giá trị đơn của α* là thì | ( , , ... )=(

- Tính bất biến của phép quay SV

Nếu P là ma trận đơn nhất thì các giá trị nhỏ nhất của PA giống như của A. Các tính chất của SVD rất cần thiết trong việc nhận diện và phân tích hình ảnh, đặc biệt là khi các hình ảnh được chụp với nhiều kiểu nhiễu và biến đổi affine khác nhau. Sử dụng phương pháp SVD, phương pháp được chúng tôi đề xuất đạt được việc giảm kích thước các vecto đặc trưng khối hình ảnh và tăng khả năng miễn dịch với nhiễu.

2.3.4 Kết hợp tính tương thích của các khối hình ảnh

Chỉ số tương tự được sử dụng phổ biến nhất khi các đối tượng hoặc vùng được biểu diễn dưới dạng vectơ đặc trưng n chiều u và v, trong đó u = (u1, u2, ..., un)^T và v = (v1, v2, ... , Vn)^T, là khoảng cách Euclide giữa các vector này:

D(u,v) = =

2.3.5 Mô hình phát hiện ảnh giả mạo của thuật toán SVD

Các chi tiết của phương pháp được đề xuất để xác định các vùng giả mạo như sau:

Bước 1: Trước tiên phân chia một hình ảnh thành các khối nhỏ chờm nhau. Tạo cửa số kích thước BxB và trượt cửa sổ này trên toàn bộ hình ảnh bằng cách trượt một pixel từ góc trên bên trái sang góc dưới bên phải. Khối BxB được giả định là nhỏ hơn kích thước của các vùng trùng lặp được phát hiện. Tổng số các khối chờm nhau cho một hình ảnh kích thước M × N pixel là (M-B + 1) × (N-B + 1).

Bước 2: Đối với mỗi ma trận khối, đầu tiên áp dụng SVD để có được một ma trận xấp xỉ hạng thấp hơn bằng (4), (5) và (6). Sau đó tách một vecto

39

đặc trưng giá trị đơn bằng SVD. Cuối cùng, lưu trữ tất cả các vector đặc trưng trong một ma trận A, ma trận A có chứa các hàng và cột (M-B + 1) × (N-B + 1).

Bước 3: Sắp xếp các hàng của ma trận A. Các hàng liên tiếp nhau chứa các khối giống hệt nhau. Với việc có các khối lân cận tương đối giống và có nét tương đồng cao, một thuật toán phát triển vùng lân cận sẽ kết hợp bất kỳ giá trị khối lân cận nào sao cho phù hợp với phần nhân bản của một vùng hình ảnh.

Bước 4: Xác định các khu vực bị làm giả. Vì rất khó để thống kê các vùng giống hệt nhau trong một hình ảnh tự nhiên, có thể sử dụng các vùng này để chứng minh sự giả mạo. Nếu sự tương đồng của hai khối cao hơn so với một giá trị cố định, xác định được đây chính là hiện tượng sao-di chuyển.

Các khối tương tự hoặc phù hợp với khoảng cách Euclide . Sau khi hai khối thỏa mãn ngưỡng tương đồng S được tìm thấy, cụ thể là D(u, v) ≤S, cần có bước xác minh sau đó. Giả sử khối 1 có tọa độ (i, j) và khối 2 có tọa độ (k, l) được xác nhận là vùng trùng lặp nếu C_ij≥ρ, với C_ij là khoảng cách Chebyshev giữa khối 1 và khối 2:

C_ij=max{|i-k|,|j-l|}

Ngưỡng ρ là khoảng cách Chebyshev tối thiểu giữa các vùng trùng lặp.

Bước 5: Bản đồ các vùng bị làm giả. Các kết quả của việc phát hiện giả mạo có thể được cụ thể hóa bằng cách xây dựng và xuất một bản đồ. Bản đồ đầu ra là một bản đồ các vùng trùng lặp, cho thấy các vùng hình ảnh - có thể là vùng trùng lặp được tạo ra bằng cách chọn một giá trị xám duy nhất cho tất cả các điểm ảnh trong vùng hình ảnh.

2.3.6 Nhận xét về thuật toán SVD

Thuật toán SVD tách các vector đặc trưng – mang một số tính chất quan trọng của sự bất biến đại số và hình học và sự không nhạy với nhiễu. So với thuật toán DWT thì Phương pháp được đề xuất toàn diện hơn, giảm tính phức tạp của các thuật toán và miễn nhiễm với nhiễu tốt hơn. Kết quả thực nghiệm cho thấy rằng phương pháp được đề xuất cho độ tin cậy cao hơn và chính xác đối với một vài hành vi chỉnh lý hình ảnh. (ví dụ: lọc mờ, nén JPEG, thêm nhiễu Gaussian).

40

Chương 3. Chương trình cài đặt và thử nghiệm. 3.1. Môi trường cài đặt.

Ngôn ngữ cài đặt, môi trường soạn thảo và chạy chương trình được thực hiện trên ngôn ngữ lập trình MATLAB R2014a.

Hệ điều hành Window7.

3.2. Giao diện chung và quy trình thực nghiệm

Hình 3- 1 Giao diện chung của chương trình của chương trình DWT Để chạy chương trình ta nhấn nút Run (Ctr+T)

Khi thực hiện chương trình, người dùng click nút Chọn ảnh để chọn tệp ảnh cần kiểm thực hiện. Khi đó, chương trình sẽ hiển thị ở Hình 3.2:

41

Hình 3- 2. Giao diện chọn ảnh của chương trình DWT

Từ hình 3-2, người dùng kích chọn thuật toán cần thực hiện và click vào nút Thực hiện thì chương trình sẽ tìm kiếm các vùng ảnh giả mạo và hiển thị ảnh định vị lên vùng Ảnh phát hiện ở Hình 3-3:

42

Giao diện của thuật toán SVD, chương trình được chạy trên command window với câu lệnh:

Hình 3- 4 Giao diện của thuật toán SVD

3.2.1. Dữ liệu thử nghiệm

Để đánh giá khả năng phát hiện giả mạo và độ tin cậy của các thuật toán, chúng cần được thử nghiệm trên tập lớn dữ liệu gồm nhiều ảnh. Để làm được điều đó điều đó, trước hết chọn ngẫu nhiên 20 ảnh thật từ cơ sở dữ liệu ảnh số chuẩn UCID. Đây là các ảnh mầu, không nén có định dạng TIFF. Các ảnh này sau đó được chuyển thành ảnh đa mức xám (grayscale) và được lưu trong một thư mục riêng (CM_origin). Để thuận tiện trong việc cài đặt, trong luận văn này các thực nghiệm được tiến hành chủ yếu trên ảnh đa mức xám. Với việc điều chỉnh để chương trình làm việc với ảnh màu là khá đơn giản.

Để phục vụ cho quá cho việc thử nghiệm, các ảnh giả mạo dạng cắt – dán chúng được tạo ra bằng cách cắt một vùng bắt kỳ trong ảnh thật và dán vào vị trí bắt kỳ trên cùng bức ảnh đó. Các ảnh giả được lưu vào thư mục CM_forged.

Tính bền vững của một thuật toán phát hiện ảnh giả thể hiện ở chỗ chúng vẫn có thể phát hiện được các dấu hiệu giả mạo sau khi đối phương

43

thực hiện một số phép tấn công.Tấn công trong trương hợp này được hiểu là các thao tác có chủ ý tác động lên ảnh sau khi thực hiện việc làm giả nhằm mục đích che giấu các dấu hiệu giả mạo. Các phép tấn công phổ biến là thêm nhiễu, xoay ảnh, co dãn ảnh.

Để thực nghiệm tính bền vững của các thuật toán trên, các phép tấn công được thực hiện trên các ảnh giả, sau đó các ảnh bị tấn công được lưu vào các thư mục khác nhau để tiến hành thử nghiệm.

Việc thử nghiệm được tiến hành trên 200 ảnh, gồm 20 ảnh thật, 20 ảnh giả mạo dạng cắt – dán và 160 ảnh giả mạo bị tấn công các loại.

3.2.2. Thử nghiệm phát hiện giả mạo của thuật toán DWT và SVD

Thuật toán DWT

Các ví dụ minh họa thực nghiệm của DWT với ảnh giả mạo dạng cát – dán được thể hiện trong các hình từ Hình 3-5 đến Hình 3-12.

Trước hết, thuật toán DWT được sử dụng để kiểm tra một ảnh giả mạo 64 x 64 (ở bên trái Hình 3-5). Kết quả thử nghiệm đã phát hiện được hai vùng giống nhau trên ảnh (ở bên phải Hình 3-5) . Kết luận ảnh này là ảnh giả mạo dạng cắt-dán.

44

Hình 3- 5 Hình thử nghiệm của DWT với ảnh giả mạo 64 x 64.

Tiếp theo, thuật toán DWT được kiểm tra với các ảnh giả mạo bị tấn

công thêm nhiễu 40dB, 29dB, 24dB.

Thuật toán kiểm tra với ảnh giả mạo bị tấn công thêm nhiễu 40dB (ở Hình 3-6 bên trái). Kết quả thử nghiệm chưa phát hiện được hai vùng giống nhau trên ảnh (ở bên phải Hình 3-6) . Kết luận ảnh này không phải là ảnh giả mạo dạng cắt – dán.

45

Hình 3. 6. Hình thử nghiệm của DWT với ảnh giả mạo 40 dB Thuật toán kiểm tra với ảnh giả mạo bị tấn công thêm nhiễu 29dB (ở Hình 3-7 bên trái). Kết quả thử nghiệm chưa phát hiện được hai vùng giống nhau trên ảnh (ở bên phải Hình 3-7) . Kết luận ảnh này không phải là ảnh giả mạo dạng cắt – dán.

46

Hình 3. 7. Hình thử nghiệm của DWT với ảnh giả mạo 29 dB Thuật toán kiểm tra với ảnh giả mạo bị tấn công thêm nhiễu 24dB (ở Hình 3-8 bên trái). Kết quả thử nghiệm chưa phát hiện được hai vùng giống nhau trên ảnh (ở bên phải Hình 3-8) . Kết luận ảnh này không phải là ảnh giả mạo dạng cắt – dán.

47

Hình 3- 8. Hình thử nghiệm của DWT với ảnh giả mạo 24 dB. Tiếp đến, thuật toán DWT được kiểm tra với các ảnh giả mạo bị tấn công xoay góc 20 đô, 10 độ.

Thuật toán kiểm tra với ảnh giả mạo bị tấn công xoay góc 20 độ (ở Hình 3-9 bên trái). Kết quả thử nghiệm chưa phát hiện được hai vùng giống nhau trên ảnh (ở bên phải Hình 3-9) . Kết luận ảnh này không phải là ảnh giả mạo dạng cắt – dán.

48

Hình 3-9. Hình thử nghiệm của DWT với ảnh giả mạo 20 độ. Thuật toán kiểm tra với ảnh giả mạo bị tấn công xoay góc 10 độ (ở Hình 3-10 bên trái). Kết quả thử nghiệm chưa phát hiện được hai vùng giống nhau trên ảnh (ở bên phải Hình 3-10) . Kết luận ảnh này không phải là ảnh giả mạo dạng cắt – dán.

49

Hình 3- 10. Hình thử nghiệm của DWT với ảnh giả mạo 10 độ Thuật toán kiểm tra với ảnh giả mạo đổi ngẫu nhiên giá trị một bit thấp nhất của từng điểm ảnh (ở Hình 3-11 bên trái). Kết quả thử nghiệm chưa phát hiện được hai vùng giống nhau trên ảnh (ở bên phải Hình 3-11) . Kết luận ảnh này không phải là ảnh giả mạo dạng cắt – dán

50

Hình 3- 11. Hình thử nghiệm của DWT với ảnh giả mạo đổi ngẫu nhiên giá trị một bit thấp nhất của từng điểm ảnh

Sau cùng, thuật toán kiểm tra sự giả mạo đối với ảnh giả mạo bị cắt – dán theo đường viền một pixel, sau đó dãn ra bằng kích thước cũ của ảnh được thể hiện (ở Hình 3-12 bên trái). Kết quả sau thử nghiệm chưa phát hiện được hai vùng giống nhau trên ảnh (ở Hình 3-12 bên phải). Kết luận ảnh này không phải là ảnh giả mạo dạng cắt – dán.

51

Hình 3-12 Hình thử nghiệm của DWT với ảnh sau khi làm giả sẽ cắt theo đường viền một pixel, sau đó dãn ra bằng kích thước cũ của ảnh.

Từ các ví dụ kiểm tra sự giả mạo ở trên, chúng ta thấy rằng phương pháp DWT có thể phát hiện ảnh giả dạng cắt – dán trước phép tấn công JPEG.

Thuật toán SVD

Chương trình “Phát hiện hiện ảnh giả mạo dạng cắt - dán dựa trên phép biến đổi cosine rời rạc” được chạy trên phần mềm Matlab. Chương trình có giao diện thân thiện và dễ sử dụng.

Một số ví dụ khi sử dụng chương trình với thuật toán dùng SVD để đánh giá các ảnh thật, ảnh giả và ảnh giả sau khi bị tấn công (thêm nhiễu, xoay, …) được minh họa trong các hình từ Hình 3-13 đến Hình 3-21. Đầu tiên chúng ta thực hiện quy trình kiểm tra phát hiện giả mạo dùng thuật toán SVD với ảnh gốc CM_origin (ở hình 3-13 bên trái). Kết quả sau khi thử nghiệm là ảnh (ở hình 3-13 bên phải).

52 (a) Ảnh gốc

(b) ảnh kiểm tra

Hình 3-13. Hình ảnh thử nghiệm của SVD với ảnh gốc

Từ kết quả thực nghiệm ở trên chúng ta thấy rằng ảnh sau khi kiểm tra dùng thuật toán SVD ảnh gốc không bị phát hiện nhầm về sự giả mạo. Kết luận là ảnh không là giả mạo

Các ảnh dùng để kiểm tra là ảnh giả được tạo ra bằng cách copy khối 64×64 và dán vào vị trí bất kỳ.

Tiếp đến, thuật toán SVD được sử dụng để kiểm tra một ảnh giả. Kết quả thử nghiệm đã phát hiện được hai vùng giống nhau trên ảnh (Hình 3-14). Kết luận ảnh này là ảnh giả mạo dạng cắt-dán.

53

Từ đây chúng ta lần lượt thử nghiệm với các ảnh sau khi làm giả được

Một phần của tài liệu luan van tot nghiep phát hiện ảnh số giả mạo dựa trên các phép biến đổi (Trang 43)

Tải bản đầy đủ (PDF)

(71 trang)