Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
758,38 KB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH GVHD: NGUYỄN XUÂN MỸ CHỦ ĐỀ 10: ỨNG DỤNG PHÂN TÍCH SVD ĐỂ KHỬ NHIỄU HÌNH ẢNH Nhóm thực hiện: 10 Giới thiệu chung - Lớp: L16 Nhóm: 10 Chủ đề: 10 Danh sách thành viên MSSV Họ tên 2112172 Võ Mạnh Quỳnh 2114626 Trần Thiên San 2112200 Nguyễn Trường Sơn 2114676 Trương Thanh Sơn 2114716 Phan Hoàng Tâm 2112252 Nguyễn Bùi Quốc Tân 2110527 Nguyễn Hoàng Duy Tân Ghi Mục Lục LỜI CẢM ƠN LỜI MỞ ĐẦU I CƠ SỞ LÍ THUYẾT CỦA PHÂN TÍCH SVD ● Mục tiêu phân tích SVD ● Q trình phân tích SVD thơng qua ma trận ● Một số ví dụ II ỨNG DỤNG CỦA PHÂN TÍCH SVD TRONG KHỬ NHIỄU HÌNH ẢNH ● Đặt vấn đề - Ý nghĩa khử nhiễu hình ảnh sống 10 ● Khử nhiễu hình ảnh qua thuật tốn phân tích SVD 11 ● Q trình thực tổng quan phân tích SVD qua Matlab 12 III CHƯƠNG TRÌNH MATLAB 14 IV TÀI LIỆU THAM KHẢO 14 LỜI CẢM ƠN Trong suốt q trình học mơn Đại số tuyến tính, nhóm chúng em nhận nhiều quan tâm, giúp đỡ kiến thức từ thầy/cơ, anh/chị khóa bạn khóa Ngồi nhóm em xin gửi lời cảm ơn chân thành đến cô Nguyễn Xuân Mỹ giảng viên giảng dạy môn Đại số tuyến tính người hướng dẫn nhóm em thực đề tài Nhờ cô hướng dẫn giải đáp thắc mắc, khó khăn nhóm gặp vướng mắc q trình làm vơ kịp thời kết nhóm làm thành tiến độ Sự hướng dẫn cô kim nam giúp nhóm chúng em làm việc hiệu dù thành viên q trình liên lạc khó khăn, gắn kết mối quan hệ tốt thành viên nhóm sinh viên với giảng viên Lời cuối, xin lần gửi lời biết ơn sâu sắc đến cá nhân, thầy/cô dành thời gian dẫn cho nhóm Đây niềm tin, nguồn động lực to lớn để nhóm đạt kết Nhóm chúng em xin chân thành cảm ơn ạ! Đại số tuyến tính nói chung có nhiều ứng dụng hầu hết lĩnh vực khoa học: kinh tế, môi trường, công nghệ máy tính, xử lí tín hiệu, đồ họa,… Một phần nhỏ số phải nhắc đến phương pháp phân tích SVD nhiều tốn khác Phương pháp phân tích suy biến (singular value decomposition) viết tắt SVD phương pháp thuộc nhóm matrix factorization (Ma trận thừa số hóa) phát triển lần đầu nhà hình học vi phân Ban đầu mục đích phương pháp tìm phép xoay khơng gian cho tích vô hướng vector không thay đổi Từ mối liên hệ khái niệm ma trận trực giao hình thành để tạo phép xoay đặc biệt Phương pháp SVD phát triển dựa tính chất ma trận trực giao ma trận đường chéo để tìm ma trận xấp xỉ với ma trận gốc Phương pháp sau ứng dụng rộng rãi lĩnh vực hình học vi phân, hồi qui tuyến tính, xử lý hình ảnh, cluaxstering, thuật tốn nèn giảm chiều liệu, khử nhiễu âm thanh, khử nhiễu hình ảnh… I 1.1 CƠ SỞ LÍ THUYẾT CỦA PHÂN TÍCH SVD: Mục tiêu phân tích suy biến SVD Phương pháp SVD tìm lớp ma trận xấp xỉ tốt với ma trận cho trước dựa khoảng cách norm Frobenios ma trận Người ta chứng minh ma trận xấp xỉ tốt biểu diễn dạng tích ma trận đặc biệt bao gồm ma trận trực giao (orthogonal matrix) ma trận đường chéo (diagonal matrix) Quá trình nhân ma trận thực chất trình biến đổi điểm liệu ma trận gốc thông qua phép xoay trục (rotation) phép thay đổi độ lớn (scaling) từ tạo điểm liệu không gian Điều đặc biệt ma trận đường chéo phần tử giá trị riêng ma trận gốc Những điểm liệu khơng gian giữ 100% thơng tin ban đầu giữ phần lớn thông tin liệu ban đầu thông qua phép truncate SVD Bằng cách xếp trị riêng theo thứ tự giảm dần đường chéo thuật tốn SVD thu ma trận xấp xỉ tốt mà đảm bảo giảm hạng ma trận sau biến đổi kích thước ma trận nhân tử nằm giới hạn cho phép Do tiết kiệm thời gian chi phí tính tốn đồng thời tìm giá trị dự báo cho ma trận gốc với mức độ xác cao Do đó, để tiếp cận thuật tốn phân tích SVD, cần phải nắm kiến thức sở tạo nên Gọi tắt Cơ sở lí thuyết việc phân tích SVD Chúng ta tham khảo thêm khái niệm, tính chất định lí liên quan đến vấn đề qua quyển: “Đặng Văn Vinh, Giáo trình Đại số tuyến tính, NXB ĐHQG 2020) - Ma trận, Định thức - Trị riêng vecto riêng - Khái niệm Họ trực giao trực chuẩn Trực giao hóa GramSchmidt - Chéo hóa ma trận, chéo hóa trực giao tính chất chúng 1.2 Quá trình phân tích SVD ma trận dựa sở lí thuyết nêu trên: Singular Value Decomposition ứng dụng bật Đại số tuyến tính Bất kỳ ma trận A với cấp mxn (không thiết phải ma trận vuông), ta phân tích thành dạng: 𝐴 𝑚× 𝑛 =𝑄 𝑚×𝑚 𝛴 (𝑃 𝑚×𝑛 ) 𝑇(!) 𝑛×𝑛 Trong Q P ma trận trực giao; Σ ma trận chéo không vuông (cấp mxn) với phần tử đường chéo 𝜎1 ≥ 𝜎2 ≥ ⋯ ≥ 𝜎𝑟 ≥ = = ⋯ = , Σ ma trận vuông nhưng, ta coi ma trận chéo miễn phần tử khác nằm đường chéo (tức vị trí có số hàng số cột nhau); r Rank(A) số lượng phần tử khác ma trận đường chéo Σ *Chú ý cách biểu diễn (!) khơng nhất, ta cần đổi dấu Q P thỏa mãn ● Biểu diễn SVD qua trường hợp ma trận A: +TH1: 𝑚 < 𝑛 +TH2: 𝑚 > 𝑛 (H1: SVD cho ma trận A khi: 𝑚 < 𝑛 (hình trên), 𝑚 > 𝑛 (hình dưới) Σ ma trận đường chéo với phần tử giảm dần khơng âm Màu đỏ đậm thể giá trị cao Các ô màu trắng ma trận thể giá trị 0.) ● NGUỒN GỐC SVD Cho A ma trận thực mxn Ta chứng minh tập hợp trị riêng khác không 𝐴𝐴𝑇 𝐴𝑇𝐴 trùng Thật vậy, giả sử 𝜆𝑜 trị riêng (eigenvalue) khác 𝐴𝐴𝑇 𝑋𝑜 vector riêng (eigenvector) 𝐴𝐴𝑇 tương ứng Khi : 𝐴𝐴𝑇𝑋𝑜 = 𝜆𝑜𝑋𝑜 ➪ Suy ra: 𝐴𝑇𝐴𝐴𝑇𝑋𝑜 = 𝐴𝑇𝜆𝑜𝑋𝑜 Điều tương đương với 𝐴𝑇𝐴(𝐴𝑇𝑋𝑜) = 𝐴𝑇(𝜆𝑜𝑋𝑜) = 𝜆𝑜(𝐴𝑇𝑋𝑜).Vì 𝜆𝑜 khác nên 𝐴𝑇𝑋𝑜 khác Suy 𝜆𝑜 trị riêng 𝐴𝑇𝐴 (𝐴𝑇𝑋𝑜) vector riêng 𝐴𝑇𝐴 Vì ma trận 𝐴𝐴𝑇 𝐴𝑇𝐴 ma trận đối xứng, nên chúng chéo hóa trực giao Khi đó: ❖ 𝐴𝐴𝑇 = (𝑄𝛴𝑃𝑇)(𝑄𝛴𝑃𝑇)𝑇 = 𝑄𝛴𝑃𝑇𝑃𝛴𝑇𝑄𝑇 = 𝑄𝛴𝛴𝑇𝑄𝑇 (vì 𝑃𝑇𝑃 = 𝐼, 𝐼 ma trận đơn vị) = 𝑄𝐷1𝑄𝑇 ❖ 𝐴𝑇𝐴 = (𝑄𝛴𝑃𝑇)𝑇(𝑄𝛴𝑃𝑇) = 𝑃𝛴𝑇𝑄𝑇𝑄𝛴𝑃𝑇 = 𝑃𝛴𝑇𝛴𝑃𝑇 (vì 𝑄𝑇𝑄 = 𝐼, 𝐼 ma trận đơn vị) = 𝑃𝐷2𝑃𝑇 Suy Các cột ma trận 𝑄 vector 𝐴𝐴𝑇 𝜎12, 𝜎22, … 𝜎𝑟2 trị riêng khác 𝐴𝐴𝑇 Các cột ma trận 𝑃 vector 𝐴𝑇𝐴 𝜎12, 𝜎22, … 𝜎𝑟2 trị riêng khác 𝐴𝑇𝐴 - 𝐷1, 𝐷2 ma trận chéo với trị riêng tương ứng 𝐴𝐴𝑇 𝐴𝑇𝐴 𝜎12, 𝜎22, … 𝜎𝑟2 Ta xếp 𝜎12, 𝜎22, … 𝜎𝑟2 cho 𝜎12 > 𝜎22 > ⋯ > 𝜎𝑟2 (hình A1) ● COMPACT SVD ( SVD gọn nhẹ hơn) Gọi 𝑄 = (𝑞1|𝑞2| … |𝑞𝑚) 𝑣à 𝑃 = (𝑝1|𝑝2| … |𝑝𝑛) Viết lại biểu thức (!) dạng tổng với Rank (A) = 𝐴 = 𝜎1𝑞1𝑝1𝑇 + 𝜎2𝑞2𝑝2𝑇 + ⋯ + 𝜎𝑟𝑞𝑟𝑝𝑟𝑇 Với 𝑞𝑖𝑝𝑖𝑇 ma trận có hạng Rõ ràng với cách phân tích này, ta nhận thấy ma trận 𝐴 phụ thuộc vào r cột 𝑄, 𝑃 r phần tử khác khơng đường chéo 𝛴 Ta có phân tích gọn 𝐴 gọi Compact SVD : 𝐴 = 𝑄𝑟𝛴𝑟(𝑃𝑟)𝑇 Với 𝑄𝑟 𝑃𝑟 ma trận tạo nên từ cột 𝑄 𝑃 tương ứng, 𝛴𝑟 ma trận tạo 𝑟 hàng 𝑟 cột 𝛴 Nếu ma trận 𝐴 có rank nhỏ nhiều so với số hàng số cột 𝑟 ≪ 𝑚, 𝑛 , ta lợi nhiều việc lưu trữ Dưới ví dụ minh hoạ với 𝑚 = 4, 𝑛 = 6, 𝑟 = (H2: Biểu diễn SVD dạng thu gọn biểu diễn ma trận dạng tổng ma trận có rank 1.) 1.3 Sau đây, ta xét số ví dụ phân tích SVD ma trận bất kì: Bước : Xác định ma trận A(cỡ bao nhiêu) để tiến hành phân tích SVD Bước : Thực chéo hóa trực giao : 𝐴𝐴𝑇 = 𝑄𝐷1𝑄𝑇 2.1 : Viết phương trình đặc trưng 𝐴𝐴𝑇 Từ tính giá trị riêng 𝐴𝐴𝑇 Viết ma trận đường chéo 𝐷1 có phần tử giá trị riêng, ta vừa tìm được.(Lưu ý phải xếp theo thứ tự giảm dần) 2.2 : Tìm vecto riêng 𝐴𝐴𝑇 Từ ta tính ma trận 𝑄, cột 𝑄 vecto riêng 𝐴𝐴𝑇 Bước : Thực chéo hóa trực giao 𝐴𝑇𝐴 = 𝑃𝐷2𝑃𝑇 ❖ Tương tự bước 2.1, 2.2 ta tính 𝑃 𝐷2 ❖ Chọn 𝛴𝑚×𝑛 cách chọn ma trận cỡ tương ứng phù hợp với 𝐷1 hay 𝐷2 Sau lấy bậc tất phần tử đường chéo Bước : Vậy phân tích SVD ma trận A : 𝐴𝑚× 𝑛 = 𝑄𝑚×𝑚 𝛴𝑚×𝑛(𝑃𝑛×𝑛) 𝑇 Nhận xét: Như từ liệu ban đầu, viết dạng ma trận Q trình chéo hóa trực giao ma trận ma trận chuyển vị nó, phân tích SVD Trên sở đó, ta dễ dàng ứng dụng chúng vào nhiều lĩnh vực khác khoa học II ỨNG DỤNG CỦA PHÂN TÍCH SVD TRONG VIỆC KHỬ NHIỄU HÌNH ẢNH Đặt vấn đề: Trong sống nay, bắt gặp nhiều loại hình ảnh khác hồn cảnh khác Chẳng hạn như: hinh ảnh chụp selfie, ảnh gia đình, ảnh đầy tính nghệ thuật nhiếp ảnh gia, ảnh thẻ mà bạn sinh viên dung làm thẻ sinh viên,….Hình ảnh phát kiến tuyệt vời nhân loại, chúng ghi lại khoảng khắc khiến ta dễ dàng hình dung vật việc thời điểm việc xảy rồi, chiêm ngưỡng khung cảnh đẹp khoảng cách vơ xa, lúc nào, Để có đươc ảnh ta sử dụng nhiều phương tiện khác như điện thoại, máy chụp ảnh Nhưng nhiều trường hợp tập tin hình ảnh bị nhèo đi, bị nhiễu, chất lượng hình ảnh bị giảm tượng "Noise" ảnh hay gọi nhiễu ảnh thường dễ dàng bắt gặp mắt thường, giống với tượng hạt nhiễu (Grain) ảnh film Các đốm lấm nhỏ xuất hình ảnh chụp vùng tối nơi có điều kiện ánh sáng thấp q trình quay, chụp ảnh điều kiện mơi trường tác động khiến cho hình ảnh khơng cịn giữ độ chân thực Như vậy, vấn đề cần đặt để khử nhiễu tập tin hình ảnh mà mong muốn? ⇨ Về mặt ý nghĩa: Nếu như, xử lí tốt tập tin hình ảnh theo tiêu chí (trọng tâm, xác , hiệu tiết kiệm thời gian) việc giúp ích cho ta nhiều Trong nghiên cứu hình ảnh, giúp ta tiết kiệm thời gian Cịn doanh nghiệp chun lĩnh vực truyền thơng đa phương tiện, xử lí tốt file hình ảnh, tiết kiệm nhiều chi phí việc thiết kế phần mềm đó, hay đơn giản tăng chất lượng hình ảnh trình thiết kế poster, trang trí, thiết kế hình ảnh quảng cáo chuyên nghiệp Từ hướng đến nhiều đối tượng khách hàng với trải nghiệm chất lượng hình ảnh tuyệt vời, chân thật đặt biệt khơng cịn bị nhiễu, bị nhèo ⇨ Các tập đồn cơng nghệ lớn ngày đầu tư vào lĩnh vực hình ảnh, thấy rõ nét mảng điện thoại thông minh thiết bị di động sử dụng ngày khơng cịn nghe, gọi, nhắn tin mà camera gắn lên chúng ngày nâng cấp số lượng lẫn chất lượng xử lí để chụp ảnh kỉ niệm, selfie ảnh đẹp, xu tương lai nắm bắt xu nắm bắt thành cơng Khử nhiễu hình ảnh qua thuật tốn phân tích SVD a Về ứng dụng hỗ trợ: Hiện có nhiều ứng dụng hỗ trợ xử lí hình ảnh, đặc biệt khử nhiễu dễ sử dụng tiếp cận với người dùng cách nhanh chóng Có thể kể đến như:, Adobe Photoshop, Adobe Photoshop Lightroom, Affinity Photo, CyberLink PhotoDirector, Corel PaintShop Pro,… Điểm chung tất phần mềm chúng viết dựa đoạn Code xử lí hình ảnh C++, C#, Pascal, Python, Matlab….Chúng ta nghiên cứu cách xử lí hình ảnh từ ngơn ngữ lập trình Trên phương diện khảo sát nhóm, thực khử nhiễu hình ảnh Matlab lẽ: phần mềm cung cấp mơi trường hồn hảo cơng cụ tính tốn lập trình Người sử dụng thực phép tính tốn với ma trận , vẽ đồ thị, hàm số tạo thuật tốn riêng cho Đồng thời matlab liên kết với nhiều ngôn ngữ lập trình khác thuận tiện cho người sử dụng b Về thuật tốn Trong Matlab, có nhiều phương pháp khác để khử nhiễu hình ảnh phép biến đổi Fourier hữu hạn, phân tích SVD, phân tích thành phần PCA… Như trình bày phần 1.1, việc khử nhiễu phân tích SVD có nhiều ưu điểm thuận lợi, thông qua việc biến đổi điểm liệu không gian, mà đảm bảo hạng ma trận kích thước nhân tử ma trận giới hạn cho phép Như vậy, nhờ thuật tốn code thể xóa bỏ “vết nhiễu” hình ảnh từ giúp đầu hình ảnh chất lượng Quá trình khử nhiễu hình ảnh SVD thơng qua Matlab: Q trình phân tích SVD cho file hình ảnh matlab trải qua bước sau Bước 1: Giả sử, ta có file âm máy (đi dạng jpg,tif,png…) ta chèn vào matlab Ta chèn đọc ảnh lệnh “imread” Bước 2: Chuyển ảnh sang dạng double lên “im2double” Bước 3: Trả hình ảnh chọn có tỷ lệ nhân với kích thước hình ảnh đầu vào Hình ảnh đầu vào hình ảnh thang độ xám, RGB, nhị phân phân loại – Sử dụng lệnh “imresize” Bước 4: Xuất hình ảnh gốc ban đầu – Sử dụng lệnh “figure; imshow” Bước 5: Chúng ta tiến hành phân tích SVD để khử hình ảnh bị nhiễu đó, nguyên tắc mã hóa thành ma trận gồm nhân tử để chương trình matlab nhận dạng được, từ bắt đầu phân tích SVD để khử nhiễu Sử dụng: a) MSVD lệnh “function [Y,U] = MSVD(x)” Phân tích SVD ma trận A lệnh [U,S]= svd(A) Với ma trận A=Q.∑ 𝑃 Gán Q=U, ∑ 𝑃=S b) IMSVD “function [Y,U] = MSVD(x)” lệnh Bước 6: Trải qua q trình phân tích ma trận A thành SVD, hình ảnh xử lí Hồn tất xử lí ta phóng to thu nhỏ ảnh click chuột vào biểu tượng kính lúp khung ảnh, thơng tin ảnh xem cách click chuột vào biểu tượng data tips khung ảnh ⇨ Như qua thao tác kết hợp với sở lí thuyết, có thể: Hiểu chất SVD Các trình việc phân tích SVD ma trận A Ý nghĩa, tầm qua trọng việc khử nhiễu hình ảnh nói chung phân tích SVD thơng qua chương trình Matlab nói riêng Nắm sơ lược thao tác bản, bước đầu làm quen với giao diện Matlab III Chương trình Matlab Sau phần trình bày Code Matlab phân tích SVD để khử nhiễu hình ảnh nhóm Trình bày cách thuyết trình Matlab online IV Nguồn tham khảo Trong trình nhóm thực việc nghiên cứu, có sử dụng, tham khảo số tài liệu, trang web sau: Nguồn tham khảo - Aisha, 2019 Viblo [Online] Available at: https://viblo.asia/p/handbook-singular-values-decomposition-va-mot-so-ungdung-yMnKMOoml7P - Steve Brunton 2020 [Online] : Singular Value Decomposition (SVD): Overview Available at: https://youtu.be/gXbThCXjZFM - Anon 2017 Bài 26: Singular Value Decomposition s.l.:Machine Learning Cơ Bản - Vinh, Đ.V 2020 Đại số tuyến tính.NXB Đại Học Quốc Gia TP Hồ Chí Minh - MIT OpenCourseWare 2016 : Singular Value Decomposition (the SVD) Available at: https://youtu.be/mBcLRGuAFUk - ỨNG DỤNG PHÂN TÍCH SVD ĐỂ - LỜI CẢM ƠN - Trong suốt trình học mơn Đại số tuyến tính, nhóm chúng em nhận nhiều quan tâm, giúp đỡ kiến thức từ thầy/cơ, anh/chị khóa bạn khóa - Lời cuối, xin lần gửi lời biết ơn sâu sắc đến cá nhân, thầy/cô dành thời gian dẫn cho nhóm Đây niềm tin, nguồn động lực to lớn để nhóm đạt kết Nhóm chúng em xin chân thành cảm ơn ạ! - I CƠ SỞ LÍ THUYẾT CỦA PHÂN TÍCH SVD: - - Ma trận, Định thức - Khái niệm Họ trực giao trực chuẩn Trực giao hóa Gram- Schmidt - 1.2 Q trình phân tích SVD ma trận dựa sở lí thuyết nêu trên: - ● Biểu diễn SVD qua trường hợp ma trận A: ● NGUỒN GỐC SVD 1.3 Sau đây, ta xét số ví dụ phân tích SVD ma trận bất kì: II ỨNG DỤNG CỦA PHÂN TÍCH SVD TRONG VIỆC KHỬ NHIỄU HÌNH ẢNH Khử nhiễu hình ảnh qua thuật tốn phân tích SVD - Quá trình khử nhiễu hình ảnh SVD thông qua Matlab: “function [Y,U] = MSVD(x)” III Chương trình Matlab IV Nguồn tham khảo - Nguồn tham khảo - ... CỦA PHÂN TÍCH SVD ● Mục tiêu phân tích SVD ● Quá trình phân tích SVD thơng qua ma trận ● Một số ví dụ II ỨNG DỤNG CỦA PHÂN TÍCH SVD TRONG KHỬ NHIỄU HÌNH ẢNH ● Đặt vấn đề - Ý nghĩa khử nhiễu hình. .. ỨNG DỤNG CỦA PHÂN TÍCH SVD TRONG VIỆC KHỬ NHIỄU HÌNH ẢNH Khử nhiễu hình ảnh qua thuật tốn phân tích SVD - Q trình khử nhiễu hình ảnh SVD thơng qua Matlab: “function [Y,U] = MSVD(x)” III Chương trình... chuyển vị nó, phân tích SVD Trên sở đó, ta dễ dàng ứng dụng chúng vào nhiều lĩnh vực khác khoa học II ỨNG DỤNG CỦA PHÂN TÍCH SVD TRONG VIỆC KHỬ NHIỄU HÌNH ẢNH Đặt vấn đề: Trong sống nay, bắt