Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
3,66 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA BỘ MÔN ĐẠI SỐ TUYẾN TÍNH – GIẢNG VIÊN: NGUYỄN HỮU HIỆP BÁO CÁO ỨNG DỤNG SVD VÀO KHỬ NHIỄU HÌNH ẢNH NHĨM: L10_7 DANH SÁCH THÀNH VIÊN STT Họ & tên MS Nguyễn Thị Ngọc Như 2212 Nguyễn Thanh Phát 2212 Trương Hữu Nhân 2212 Nguyễn Thành Nhân 2212 Lê Minh Nhật 2212 Nguyễn Trọng Nghĩa 2212 Bùi Thị Cẩm Nhung 2212 Lục Bùi Minh Phúc 2212 NỘI DUNG I CƠ SỞ LÝ THUYẾT I.1 Trị riêng vector riêng ma trận I.2 Chéo hóa trực giao I.3.Phân tích SVD (Singular Value Decomposition) IIPHÂN TÍCH SVD TRONG KHỬ NHIỄU ẢNH II.1 Bài tốn SVD khử nhiễu ảnh II.2 Code Matlab II.3 Một số ví dụ minh họa I CƠ SỞ LÝ THUYẾT I.1 Trị riêng vector riêng ma trận I.1.1 Cơ sở lí thuyết ChúĐịnhýnghĩa Cho-MaA trậnMvng(K).Nếumới cócó mộttrịriêngvectorvàxvector≠0vàriêng.mộtsố λ K thỏa - Vector riêngn bảo toan phương qua phép nhân ma trận Vector riêng phải khác Ax = λx - Một ma trận có nhiều trị riêng vector riêng Tính chất Cho x vector riêng ma trận A Mn ứng với trị riêng λ - A có trị riêng λ = det(A) = - x vector riêng Ak ứng với trị riêng λk Tổng quát với đa thức f(x) bất kì, x vector riêng f(x) - Nếu x,y vector riêng ứng với trị riêng λ αx + βy vector riêng A ứng với trị riêng λ I CƠ SỞ LÝ THUYẾT I.1 Trị riêng vector riêng ma trận I.1.2 Các bước tìm trị riêng vector riêng ma trận A Bước (Tìm trị riêng) Lập phương trình đặc trưng det(A – λI)= Tính định thức, giải phương trình Tất nghiệm phương trình tất trị riêng A Bước (Tìm vector riêng) Tương ứng với trị riêng λ1 Giải hệ phương trình (A – λ1I)X= Tất nghiệm khác hệ tất vector riêng A ứng với trị riêng λ1 Tương tự tìm vector riêng A ứng với trị riêng lại I CƠ SỞ LÝ THUYẾT I.2 Chéo hóa trực giao I.2.1 Cơ sở lí thuyết TínhĐị chấtnghĩa MaA∈trậnMn(R)P∈gọiMn(R)làđốilà xứngtrựcgiaothựcnếucác cột(hàng) P tạo thành sở trực chuẩn∈ P Mn(R) gọi trực giao Định lý (Ma trận đối xứng thực) Ma trận A gọi chéo hóa trực giao tồn ma trận trực giao P ma trận chéo D thỏ Cho A ma trận đối xứng thực Khi Trị riêng A số thực BHH=BĐS Các VTR ứng với TR khác vng góc A ln chéo hóa trực giao Để chéo hoá trực giao ma trận đối xứng thực, ta cần tìm sở trực chuẩn gồm véc tơ riêng I CƠ SỞ LÝ THUYẾT I.2 Chéo hóa trực giao I.2.2 Chéo hóa trực giao ma trận đối xứng CS trực chuẩn Cho ma trận đối xứng thực: Với A= BƯỚC 1: Tìm trị riêng Chọn véc tơ nghiệm P1 = (1; 0; −1) Tìm véc tơ P2 = (1;4;1) vng góc với P1 Xét hệ (A − λ I) = CS trực chuẩn = => CS trực chuẩn BƯỚC 2: Tìm sở khơng gian riêng BƯỚC 3: Ta kết luận ma trận A chéo hóa ⇒ Với , Với I CƠ SỞ LÝ THUYẾT I.3.Phân tích SVD (Singular Value Decomposition) I.3.1 Khái niệm SVD hay “singular value decomposition” phương pháp phân tích suy biến, dạng matrix factorization nhằm phân tích ma trận thành tích ma trận số thực ma trận số phức Cho ma trận hay phân I CƠ SỞ LÝ THUYẾT I.3.Phân tích SVD (Singular Value Decomposition) I.3.2 Các tính chất chung SVD • Σ2 chứa trị riêng ATA V chứa vector riêng tương ứng vị trí tương ứng Σ2 chứa trị riêng AAT U chứa vector riêng tương ứng vị trí tương ứng • Với ma trận Amxn bất kỳ, giá trị riêng ma trận ATA không âm (tức ma trận nửa xác định dương) I CƠ SỞ LÝ THUYẾT I.3.Phân tích SVD (Singular Value Decomposition) I.3.3 Các phép giảm chiều SVD I.3.3.a Phương pháp Compact SVD Ta biểu diễn ma trận A dạng tổng vector cột u1 ∈ Rm Um×m A = UrΣr(Vr)T(2) vector hàng vi ∈ Rn (Vn×n)T Với Ur ,Vr ma trận tạo r cột U V.Σr ma trận tạo r hàng r cột Σr Nếu ma trận A có hạng nhỏ với ma trận có hạng nhiều so với số hàng số cột ta lợi nhiều việc lưu trữ ⇒ Ma trận A phụ thuộc vào r cột U ,V r giá trị khác đường chéo ma trận Σ nên ta có cách phân tích gọn gọi compact SVD 10 I CƠ SỞ LÝ THUYẾT I.3.Phân tích SVD (Singular Value Decomposition) I.3.3 Các phép giảm chiều SVD I.3.3.b Phương pháp Truncated SVD PhươngKhiHoặcChỉđólấytaphápcóracịnthểtrudịtínhbiểucategđượcvàdiễnSVDộtkhoảngdướiứngcịndạngvớichocáchtaổngnormbiếtcủađượFrobeniustíchtỷvơlệhướngphầngiữatrămÂcácvà lượngAchính tổng thơngbìnhvectortopphươntincáccộtlưugvàiácủagiữtrịdịngtcácriêngongcủatrịmaσ1riêngU,Vtrận>σ2Tcịnxấpnhư>lại xỉsau:từ>thơngσt+ qua1đếncơngσn thức:(vớigiả định A có n trị riêng) sau:σt > lớn A từ U, Vt Phần lại ma trận bị loại bỏ Như phương pháp Truncate SVD ta thu ma trận xấp xỉ ma trận A ma trận: 11 I CƠ SỞ LÝ THUYẾT I.3.Phân tích SVD (Singular Value Decomposition) I.3.4 Phân tích SVD để nén liệu VíSVDdụđượcmột ứnghìnhdụảnhg nhiềum×npixelstrong lĩnhđượcvựcphânxử tíchlýkỹthànhthuật 3số,matrongtrậnđóA,khơngB,C cóthể cùngkhơngđộnhắclớn m×nđếnmảng.Giả sửxửmalí ảnhtrận ASVDcóphângiúp tíchtối ưuSVDhóalà:thơng tin cần chứa mà đảm bảo chất lượng tối thiểu ảnh với giá trị k có A ≈ Ak ma trận xấp xỉ tốt A tạo thành lấy k singular value đầu tiên, đồng thời có sai số 12 II PHÂN TÍCH SVD TRONG KHỬ NHIỄU ẢNH II.1 Bài toán SVD khử nhiễu ảnh Hướng giải vấn đề Được viết lại thành 13 II PHÂN TÍCH SVD TRONG KHỬ NHIỄU ẢNH II.1 Bài toán SVD khử nhiễu ảnh II.2 Code Matlab Xnoisy = imnoise(X, 'gaussian', 0, 0.05); approx_sigmas(ranks(i):end) = 0; imwrite(Xnoisy, out_address); approx_S = S; subplot(2,4,2), approx_S(1:ns,1:ns) = diag(approx_sigmas); imshow(Xnoisy); title('Noisy Image'); approx_img = U * approx_S * V'; %Reconstruct image using SVD subplot(2, 4, i+2), colormap [U, S, V] = svd(Xnoisy); imshow(approx_img); %Here we use a MRI scan as original image sigmas = diag(S); title(sprintf('Tuncate by r = %d', ranks(i))); X = rgb2gray(imread(in_address)); %sigmas is a vector contain S(i,i) of the S matrix end clc; close all; in_address = 'nao.png'; out_address = 'output.jpg'; if (exist(in_address) == 2) %open original image and convert it into gray X = im2double(imresize(X, 2)); figure; subplot(2, 4,1), imshow(X); title('Original Image'); else %Problem disp('Chung ta thu khoi phuc lai anh ban dau voi ma tran S co bac ngau nhien k'); ranks = [20, 50, 100, 150, 250, 450]; disp('File does not exist'); end %Add noise to original image for i = 1:length(ranks) approx_sigmas = sigmas; ns = length(sigmas); 14 II PHÂN TÍCH SVD TRONG KHỬ NHIỄU ẢNH II.1 Bài toán SVD khử nhiễu ảnh II.2 Code Matlab Hình 4: Kết chạy chương trình Matlab 15 II PHÂN TÍCH SVD TRONG KHỬ NHIỄU ẢNH II.1 Bài toán SVD khử nhiễu ảnh II.2 Code Matlab Nhận xét: - => Vậy toán đặt cần xác định giá trị r phù hợp để thu ảnh có độ xác độ phức tạp vừa đủ để ta nhận diện sử dụng 16 II PHÂN TÍCH SVD TRONG KHỬ NHIỄU ẢNH II.1 Bài toán SVD khử nhiễu ảnh II.2 Code Matlab II.3 Một số ví dụ minh họa •Trong lĩnh vực y tế Trong y tế việc hình ảnh X-ray hay hững ảnh MRI bị nhiễu thường xảy ra, việc ứng dụng khử nhiễu giúp tiết kiệm thời gian chi phí Và nhiều lĩnh vực khác cần tới việc lọc khử nhiễu truyền thông đa phương tiện, phim ảnh, v.v… 17 KẾT LUẬN Ngoài ứng dụng để khử nhiễu hình ảnh ứng dụng với liệu lớn, SVD cịn có nhiều ứng dụng khác tối ưu cực trị rời rạc, lát cắt cực đại, Kmeans Clustering, Graph Partitioning, … Qua ta thấy tầm quan trọng SVD thiếu ngành kĩ thuật, đặc biệt thời đại khoa học kĩ thuật công nghệ phát triển mạnh mẽ ngày 18 THANK YOU! 19