BTL ĐSTT nhóm10 l08

23 15 0
Tài liệu đã được kiểm tra trùng lặp
BTL ĐSTT nhóm10 l08

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠ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 Đề tài 10 “Ứng dụng của phân tích SVD để khử nhiễu hình ảnh” Giảng viên hướng dẫn GV Nguyễn Xuân Mỹ GV Bù.

ĐẠ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 Đề tài 10 “Ứng dụng phân tích SVD để khử nhiễu hình ảnh” Giảng viên hướng dẫn: GV Nguyễn Xuân Mỹ GV Bùi Thị Khuyên Lớp: L08 Tên nhóm :10 07/2/2022 DANH SÁCH THÀNH VIÊN NHĨM STT Họ tên Lại Văn Quý Trần Nhật Quang Võ Thanh Quân Lại Minh Quang Ngơ Minh Quang Cù Hồng Nguyễn Sơn Nguyễn Hải Sơn MSSV 2114596 2114524 2114562 2114501 2112094 2112185 2110508 I.1 Trị riêng vectơ riêng ma trận I.1.1 Cơ sở lí thuyết Định nghĩa: Cho A ∈ Mn(K) Số λ0 ∈ K gọi giá trị riêng ma trận A, tồn vectơ giá trị X0≠0 cho AX0= λ0X0 Vectơ X0 gọi vectơ riêng ma trận A tương ứng với giá trị riêng X0 Tính chất Mỗi vectơ riêng có giá trị riêng Giả sử ma trận vương A có vectơ riêng x ứng với hai giá trị riêng λ1, λ2 Ax= λ1x= λ2x ⟺ ( λ1- λ2)x=0 ⟺ λ1= λ2 Tính chất Nếu x vectơ riêng ứng với giá trị riêng λ ma trận vng A kx vectơ riêng với λ: Ax = λx  A(kx) = λ(kx) Tính chất Nếu λ trị riêng ma trận vng A λn trị riêng ma trận An Tính chất Giá trị riêng ma trận vng A nghiệm phương trình( A-λI ) = Giả sử λ giá trị riêng ma trận A, tồn x ≠ mà Ax = λx ⟺ ( A- λI )x = Đây hệ phương trình tuyến tunhs, hệ có nghiệm x ≠ det ( A- λI ) = Tính chất Ma trận vng A có giá trị riêng λ họ vectơ riêng ứng với λ nghiệm ( A- λI )x = I.1.2.Các bước tìm trị riêng vectơ riêng ma trận Bước1: Tìm giá trị riêng + Lập phương trình 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 2: Tìm vectơ 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 vectơ riêng A ứng với trị riêng λ1 + Tương tự tìm vectơ riêng A ứng với trị riêng cịn lại I.2 Chéo hố trực giao: I.2.1 Cơ sở lí thuyết Định nghĩa Ma trận A ∈ Mn(R) gọi ma trận đối xứng thực, AT=A Ví dụ 1: Ma trận A= ( ) 3 7 Kiểm tra thấy AT = A Như A ma trận đối xứng Các phần tử A đối xứng với qua đường chéo Định nghĩa Ma trận A ∈ Mn(R) gọi ma trận trực giao, A -1 = AT Từ định nghĩa ta có A.A-1 = A.AT ⟺ A.AT = I Như tích A AT ma trận đơn vị I, A ma trận trực giao Mệnh đề 1: Ma trận A ma trận trực giao họ vectơ cột (hoặc họ vectơ hàng) A họ trực chuẩn Chứng minh Cho A ma trận trực giao Tức AA T = I Để ý phép nhân hai ma trận với nhau, ta thấy : hàng i A nhân với cột j ma trận AT hàng j A Ta có : Ai*A*j = i= j {1,0,nếu i≠ j Suy họ vectơ hàng A họ trực chuẩn Hoàn toàn tương tự, xét ATA = I ta cs họ vectơ cột A họ trực chuẩn Sử dụng mệnh đề để tìm ma trận trực giác A cấp n tuỳ ý sau : a) Trong Rn, chọn sở E b) Dùng trình Gram-Schmidt (nếu cần), trực giao hoá E để sở trực giao F c) Chia vectơ hàng F cho độ dài ta có sở trực chuẩn Q Khi A ma trận trực giao Ví dụ 2: Trong R3, chọn sở E= { ( :1:1 ) , ( 1:2 :1 ) ,(1:1 :2)} Dùng trình trực giao hố Gram-Schmidt, ta họ trực giao: F= 1:1 :10, (1 :−2 ;1 ) ,(−1 :0 :1) ¿ ¿ Chia vectơ cho độ dài nó, ta có họ trực chuẩn: Q= {√ 1 (1:1 :10), ( :−2 : ) , (−1 :0 :1) √6 √2 } Lập ma trận trực giao có họ vectơ cột (hoặc họ vectơ hàng) Q A= √3 √3 √3 √6 −2 √6 √6 √2 ( ) √2 Định nghĩa Ma trận vuông, thực A gọi chéo hoá trực giao được, A = PDP-1 = PDPT, với D ma trận chéo P ma trận trực giao Định lí Cho A ma trận đối xứng thực Các khẳng định sau : 1) Trị riêng A số thực 2) A lng chéo hố trực giao 3) Hai vectơ riêng ứng với giá trị riêng khác vng góc với Mệnh đề Nếu ma trận A chéo hoá trực giao được, A ma trrận đối xướng Chứng minh Giả sử A chéo hố A = PDPT Suy ra, AT = (PDP)T = (PT)T.DT.PT = P.D.PT = A Hay A ma trận đối xứng Như có ma trận đối xứng thực chéo hố trực giao I.2.2 Chéo hoá trực giao ma trận đối xứng A Bước Tìm trị riêng A Bước Tìm sở trực chuẩn khơng gian riêng Để tìm sở trực chuẩn không gian riêng Eλk, ta theo bước sau: a) Chọn sở Ek tuỳ ý Eλk b) Dùng trình Gram-Schmidt (nếu cần) để tìm sở trực giao Fk c) Chia vectơ Fk cho độ dài ta có sở trực chuẩn Qk Eλk Bước Kết luận Ma trận A ln chéo hố trực giao Tức A=PDP T, ma trận chéo D có phần tử dường chéo giá trị riêng A, họ vectơ cột a trận trực giao P Từ vectơ riêng sở trực chuẩn bước Ví dụ Chéo hố trực giao ma trận đối xứng, thực: (2 −4 A= −4 17 ) Lời giải: Bước Tìm giá trị riêng A có hai trị riêng λ1 = 1, λ2 = 18 Bước Tìm sở trực chuẩn không gian riêng Ứng với = Giải hệ ( A- λ1I )x = ⟺ x = ( 4α : α )T Cơ sở Eλ1 (4 ; 1)T Cơ sở trực chuẩn Eλ1 (4 ;1)T √17 Ứng với λ2 = 18 Giải hệ ( A- λ2I )x = ⟺ x = ( α; -4 α )T Cơ sở Eλ2 ( 1; -4 )T Cơ sở trực chuẩn Eλ2 √17 ( 1; -4 )T Bước Kết luận Ma trận A chéo hoá trực giao A = PDPT , : D= (10 180 ) P= √17 −4 ( ) Ví dụ Chéo hố trực giao ma trận đối xứng, thực : A= ( −2 −2 ) Lời giải Bước Tìm cá trị riêng Phương trình đặc trưng A ( x-7 )2 ( λ+2 ) = A có hai trị riêng λ1 = 7, λ2 = -2 Bước Tìm sở trực chuẩn không gian riêng ứng với λ1 = Giải hệ: (A- λ1I)x = ⟺ x = ( α; -2 α+2β; β)T = α ( 1;-2;0 )T + β( 0;2;1 )T Cơ sở E λ1 e1 = ( ;-2 ;0 )T Dùng trình trực giao hoá Gram-schmictt, ta sở trực giao : e f1,f ¿ ¿ = {( ;−2; )T ,(4 ; 2; 5)T } ¿ (¿ ¿ 1, f ) ¿ f =e , f 2=e 2−¿ ¿ T T 1 (1; ; 0) , ( ; ; 5) Vậy, sở trực chuẩn Eλ1 √5 √ 45 { } Lưu ý: Khi số chiều không gian riêng khơng lớn, ta khơng dùng q trình Gram-schmidt để tìm cở trục giao Chẳng hạn ta tìm sở trực giao Eλ1 Chọn vectơ riêng x1 = ( ;-2 ;0 )T tìm vectơ riêng thứ hai x2 = ( α; -2α + 2β; β )T cho x2 ⊥ x1 Suy ( x2,x1 ) = α + (-2) (-2α + 2β ) + = ⟺ 5α - 4β = Cho α = ta p = Vậy vectơ riêng x2= (4 ;2 ;5)T ứng với λ2 = -2 Giải hệ ( A - λ2I )x = ⟺ x = ( 2α; α; -2α )T =α( 2; 1; -2 )T Cơ sở trực giao Eλ2 (2 ; ; -2)T Do đó, sở trực chuẩn Eλ2 (2 ; ; -2 )T Bước Kết luận : ma trận A chéo hoá trực giao A= PDP T, D= ( 0 0 −2 ) P= √5 −2 √5 14 √ 45 √ 45 √ 45 3 −2 ( ) I.3 Phân tích SVD ( Singular Value Decomposition ) I.3.1 Cơ sở lý thuyết Định nghĩa Cho A ma trận thực cỡ m*n Ta chứng minh tập hợp trị riêng khác không AAT ATA trùng Thật vậy, giả sử λ0 trị riêng khác AAT X vectơ riêng AAT tương ứng Khi đó: AATX0 = λ0X0 Suy ATAATX0 = AT λ0X0 Điều tương đương với ATA ( ATX0 ) = λ0( ATX0 ), λ0 ≠ nên ATX0 ≠ Suy λ0 trị riêng ATA Ma trận AAT ma trận AAT ma trận ATA hai ma trận đối xứng, nên chéo hoá trực giao Phân tích SVD ma trận A M m ,n [ R ], r( A ) = r Ma trận A phân tích thành dạng A= Q Cho ma trận A ∈ ΣPT Q P hai ma trận có họ vectơ cột họ trực chuẩn, Q gọi left singular vectors P gọi right singular vectors, Σ= ( D0 00) ma trận cỡ m*n, D ma trận chéo, có phần tử đường chéo δ1 ; δ2 ; … ; δr nhừng số thực dương gọi singular values A Khi ta thu : AAT= QΣPT(QΣPT)T=QΣPT.PΣTQT=Q ΣΣ TQT ATA= (QΣPT)TQΣPT=PΣTQTQΣPT=PΣTΣPT Các cột Q vectơ riêng A TA δ12 ; δ22 ;… ; δr2 trị riêng khác không AAT Các cột P vectơ riêng A TA δ12 ; δ22 ;… ; δr2 trị riêng khác ATA Trong D, ta xếp singular values A theo tứ tự giảm dần: δ1≥ δ2≥…≥ δr Gọi Q=(q1|q2|…|qn) P=(p1|p2|…|pn), D = ( δ1 0 δ2 ⋯ ⋮ 0 ⋯ ⋯ ⋯ ⋯ δr ) Từ ma trận A ghi dạng A=δ1q1p1T + δ2q2p2T với qipiT ma trận có hạng Hình Biểu diễn SVD dạng thu gọn ma trận dạng ma trận có hạng Lưu ý : qipiT ma trận khơng phải vơ hướng, ta tính ma trận qipiT cách lấy hàng vectơ qi nhân với phần tử vectơ pi, ta hàng thứ ma trận Tiếp tục lấy hàng thứ hai vectơ q i nhân với phần tử vectơ pi, ta hàng thứ hai ma trận Cứ hàng cuối q i, ta thu ma trận có hạng ln số vectơ độc lập tuyến tính cực đại Ví dụ : Cho hai vectơ q = (1,2,3)T p = (3,0,1)T ta có tích ngồi vectơ q vectơ p chuyển vị : qpT = ( 1∗3 1∗0 1∗1 2∗3 2∗0 2∗1 3∗3 3∗0 3∗1 ) ( ) = qpT có hạng Như ma trận A phụ thuộc vào r cột P,Q r phần tử khác không đường chéo ∑ Ta có phân tích gọn A gọi compact SVD : A = QrDPr với Qr,Pr ma trận tạo nên từ cột Q P tương ứng Trong lưu trữ hình ảnh, thơng thường có vài δ m có giá trị cao δn cịn lại xấp xĩ khơng nên bỏ qua Khi ta có xấp xỉ : A ≈ Ak = δ1q1p1T + δ2q2p2T + … + δkqkpkT sai số xấp xĩ xác định công thức sau : ||A-Ak|| = δk+12 + δk+22 + … + δk+r2 I.3.2 Bài tốn ví dụ Tìm phân tích SVD ma trận A (−13 ) 1 Lời giải : A A T = ( ( ) −1 1 ) 1 −1 = (111 111 ) Chéo hoá trực giao AAT = QD1QT Det ( AAT – λI ) = ⟺ ∣ ∣ 11−λ 1 11− λ ⟺ (11 - λ )2 – = ⟺ λ - 22 λ + 120 = ⟺ λ • Với λ 1 =0 = 12; λ = 10 = 12 Xét hệ ( AAT - λ 1I )X = ⟺ (−11 −11 ) = ⇒ x1 + x2 = ⇒ x = 10 (−αα )=α ( 11) (11)  Cơ sở trực giao Eλ1 = • Với Xét hệ ( AAT – λ λ () = 10 2 Cơ sở trực chuẩn Eλ1 = ⇒ √2 √2 (11 11)( x1x2) I )X = ⟺ =0 ⇒ x1 + x = ⇒ x= (−αα ) ( ) α −1 Cơ sở trực giao Eλ2 = Vậy D1 = (120 100 ) T + Ta có A A = ;Q= ( ) −1 1 (−11 ) ⇒ Cơ sở trực chuẩn Eλ2 = () √2 −1 √2 ( ) √2 √2 √2 −1 √2 ( ) 1 −1 = ( 10 10 4 ) Chéo hoá trực giao ATA = PD2PT Det( ATA – λI ) = ⇔ ∣ 10−λ 10−λ 4 2−λ ⟺ λ3 - 22λ2 + 120λ = ⟺ λ • Với λ X= = 12; λ = 10; λ )( ) −2 +2 x −2 x2 −10 x ( ( ) () α 2α α =0 =0 = 12 Xét hệ ( A A - λ 1I )X = ⟺ T ∣ = α 11 =0 ⇒ { −2 x 1+2 x 3=0 −2 x +4 x =0 x 1+ x 2−10 x 3=0 ⇒ =  Cơ sở trực giao Eλ1 = Với • λ Xét hệ ( A A – λ 2I )X = ⟺ Cơ sở trực giao Eλ2 = λ • Xét hệ ( A A - λ 1I )X = ⟺  Cơ sở trực giao Eλ3 = Vậy D2 = ( ( )( ) 0 x1 0 x2 −8 x () −2 =0 ⇒ X= ( ) () −2α α Cơ sở trực chuẩn Eλ2= ⇒ −2 α = () −2 √5 √5 =0 T  () Cơ sở trực chuẩn Eλ1= ⇒ = 10 T  () 1 √6 √6 √6 12 0 10 0 0 ) ( () ;P= )( ) 10 x 10 x 2 −8 x ⇒ √6 √6 √6 =0 ⇒ X= ( ) () α 2α −5 α Cơ sở trực chuẩn Eλ3= = √ 30 √ 30 −5 √ 30 () √30 √30 −5 √30 ( ) −2 √5 √5 Vậy phân tích SVD A A = QΣPT ; với Q, P Σ = 12 (2 √03 0 √ 10 ) α −5 A = QΣPT = √2 √2 √2 −1 √2 ( ) ( √6 √3 0 −2 √ 10 √ √ 30 ) √6 √5 √30 √6 ( ) −5 √ 30 Ví dụ 5: Tìm phân tích SVD ma trận sau: ( 12 10 15 19 10 18 24 10 16 20 26 ) Nhận xét: Để tìm phân tích SVD ma trận , phải thực tiến hành chéo hóa trực giao hai ma trận BBT B T B Trong ma trận BB T ma ttrận vng bậc bốn, cịn B T B ma trận vng bậc năm, việc giải tốn chéo hoá trực giao hai toán tốn nhiều thời gian khơng có cơng cụ hỗ trợ máy tính Để tiết kiệm thời gian tính tốn, sử dụng cơng cụ hỗ trợ tốn học hữu ích MATLAB II PHÂN TÍCH SVD TRONG KHỬ NHIỄU ẢNH II Bài toán SVD khử nhiễu hình ảnh Tổng quan: 13 Trong thời đại kỹ thuật số nay, phân tích SVD có số ứng dụng quan trọng làm việc với liệu lớn  Khử nhiễu ảm  Nén ảnh  Giảm số chiều giữ liệu  Ứng dụng phân tích thành phân (PCA: Principle component analysis),… Hình Truncated SVD Có lẽ chức hữu ích phân tích SVD cung cấp xấp xỉ hạng bậc thấp tối ưu cho ma trận ban đầu (giả sử ma trận X) Chức thực cách giữ lại r singular value X r vector ma trận singular vectors, đồng thời lược bỏ phần tử lại Phương pháp gọi Truncate SVD Ảnh ảnh bị nhiễu Ta có ảnh gốc ban đầu ảnh chụp cộng hưởng từ MRI Sử dụng công cụ hỗ trợ toán học matlab ta thêm nhiễu vào ảnh để tạo ảnh chụp MRI bị nhiễu 14 Hình Bên trái ảnh chụp MRI gốc, bên phải ảnh chụp MRI chứa nhiễu Ta gọi ma trận biểu diễn ảnh chụp (ảnh chứa nhiễu ngun nhân phóng xạ,…) X, Xtrue ma trận biểu diễn thành phần nhiễu ảnh gốc Có thể hình dung ảnh thu tổng hợp hai ma trận Xtrue Xnoise X = Xtrue + ℽXnoise ( ℽ mức độ nhiễu ) Hình 6: Kết chạy chương trình khử nhiễu SVD MATLAB Nhận xét: 15 +Từ giá trị r = 250 trở đi, ảnh rõ nét có dấu hiệu nhiễu trở lại +Từ giá trị r = 150 trở trước, ảnh khữ nhiễu tốt, rõ nét +Với giá trị r nhỏ (r = 20), ảnh thu hồn tồn khơng rõ nét, gần khử nhiễu +Có mối liên hệ độ phức tạp độ xác khơi phục lại ảnh ban đầu Nếu khôi phục lại ảnh ban đầu giữ lại nhiều giá trị singular values độ xác ảnh cao đồng thời độ phức tạp cao (ở nhiễu) Nếu khôi phục lại ảnh ban đầu cách giữ lại số singular values độ phức tạp ảnh khôi phục thấp kéo theo độ xác ảnh thấp (trường hợp r = 20) +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 III.3.MỘT SỐ VÍ DỤ MINH HỌA KHÁC Trong lĩnh vực y tế Ngoài ứng dụng để khử nhiễu ảnh, chụp cộng hưởng từ MRI ví dụ minh họa trên, phân tích SVD ứng để khử nhiễu ảnh chụp khác PET, XRAY,… 16 Hình 15 Khử nhiễu ảnh scan PET SVD Trong lĩnh vực trí tuệ nhân tạo Trong trí tuệ nhân tạo, machine learning, có nhiều dạng nhiễu khác nhau, nhiễu hình ảnh, nhiễu tín hiệu, nhiễu âm ảnh hưởng khơng nhỏ đến q trình xử lý thơng tin Do việc khử nhiễu nói chung khử nhiễu ảnh nói riêng đóng vai trị quan trọng Trước đưa liệu vào máy tính, liệu phải làm (quy trình gọi Data Cleaning) Nhờ khả xử lý thơng tin máy tính đạt hiệu cao Lấy ví dụ cho máy học nhận diện khuôn mặt Tập liệu đưa vào ảnh chứa khuôn mặt hàng triệu người khác Bước cần làm khử nhiễu ảnh để đem lại hiệu học máy tốt 17 Hình 16 Khử nhiễu ảnh nhận diện Barrack Obama sử dụng SVD Trong lĩnh vực giám sát giao thơng Khử nhiễu ảnh sử dụng phân tích SVD trở thành cơng cụ hữu ích lĩnh vực giám sát giao thông Khái niệm giám sát giao thơng khơng cịn q xa lạ với ngày Chất lượng hình ảnh thu bước vởi camera hay máy ảnh giám giát đóng vai trị thiết yếu việc xử lý người, hành vi phạm Khi đó, việc áp dụng phân tích SVD để khử nhiễu ảnh giám sát hỗ trợ giảm thiểu tối đa thời gian xử lý, cơng sức người giám sát Hình 17 Ảnh chụp biển số xe vi phạm khử nhiễu nhờ SVD 18 IV.Code MATLAB Code Matlab SVD.m: clc; close all; in_address = 'MRI.jpg'; out_address = 'output.jpg'; if (exist(in_address) == 2) %open original image and convert it into gray colormap %Here we use a MRI scan as original image X = rgb2gray(imread(in_address)); X = im2double(imresize(X, 2)); figure; subplot(2, 4,1), imshow(X); title('Original Image'); else disp('File does not exist'); end %Add noise to original image Xnoisy = imnoise(X, 'gaussian', 0, 0.1); imwrite(Xnoisy, out_address); subplot(2,4,2), imshow(Xnoisy); title('Noisy Image'); %Reconstruct image using SVD [U, S, V] = svd(Xnoisy); sigmas = diag(S); %sigmas is a vector contain S(i,i) of the S matrix %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]; for i = 1:length(ranks) approx_sigmas = sigmas; ns = length(sigmas); approx_sigmas(ranks(i):end) = 0; approx_S = S; approx_S(1:ns,1:ns) = diag(approx_sigmas); approx_img = U * approx_S * V'; subplot(2, 4, i+2), imshow(approx_img); title(sprintf('Truncate by r = %d', ranks(i))); end 19 *Kết thu sau chạy chương trình: Hình x: Kết chạy chương trình khử nhiễu SVD MATLAB Nhận xét: +Từ giá trị r = 250 trở đi, ảnh rõ nét có dấu hiệu nhiễu trở lại +Từ giá trị r = 150 trở trước, ảnh khữ nhiễu tốt, rõ nét +Với giá trị r nhỏ (r = 20), ảnh thu hồn tồn khơng rõ nét, lại gần khử nhiễu +Có mối liên hệ độ phức tạp độ xác khơi phục lại ảnh ban đầu Nếu khôi phục lại ảnh ban đầu giữ lại nhiều giá trị singular values độ xác ảnh cao đồng thời độ phức tạp cao (ở nhiễu) Nếu khôi phục lại ảnh ban đầu cách giữ lại số singular values độ phức tạp ảnh khơi phục thấp kéo theo độ xác ảnh thấp (trường hợp r = 20) + 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 20

Ngày đăng: 27/11/2022, 23:19

Tài liệu cùng người dùng

Tài liệu liên quan