ĐẠ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ù.
Trang 1ĐẠ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 Thị Khuyên
Lớp: L08
Tên nhóm :10
Trang 3I.1 Trị riêng và vectơ riêng của ma trận
I.1.1 Cơ sở lí thuyết
Định nghĩa: Cho A ∈ Mn(K) Số λ0 ∈ K được gọi là giá trị riêng của ma trận A, nếu tồntại vectơ giá trị X0≠0 sao cho AX0= λ0X0 Vectơ X0 được gọi là vectơ riêng của ma trận Atương ứng với giá trị riêng X0
Giá trị riêng của ma trận vuông A là nghiệm của phương trình( A-λI ) = 0
Giả sử λ là giá trị riêng của ma trận A, khi đã tồn tại x ≠ 0 mà Ax= λx⟺ ( A- λI )x = 0.Đây là một hệ phương trình tuyến tunhs, hệ này có nghiệm x ≠ 0 khi và chỉ khi det ( A- λI )
= 0
Tính chất 5
Ma trận vuông A có giá trị riêng λ thì họ vectơ riêng ứng với λ là nghiệm của ( A- λI )x = 0
Trang 4I.1.2.Các bước tìm trị riêng và vectơ riêng của ma trận
Bước1: Tìm giá trị riêng
+ Lập phương trình det ( A- λI ) = 0
+ Tính định thức, giải phương trình
+Tất cả các nghiệm của phương trình là tất cả các trị riêng của 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= 0
+ Tất cả các nghiệm khác 0 của hệ là tất cả các vectơ riêng của A ứng với trị riêng λ1
+ Tương tự tìm vectơ riêng của A ứng với các trị riêng còn lại
I.2 Chéo hoá trực giao:
I.2.1 Cơ sở lí thuyết
Định nghĩa 1 Ma trận A ∈ Mn(R) gọi là ma trận đối xứng thực, nếu AT=A
Mệnh đề 1: Ma trận A là ma trận trực giao khi và chỉ khi họ vectơ cột (hoặc họ vectơ
hàng) của A là họ trực chuẩn
Chứng minh
Cho A là ma trận trực giao Tức là AAT = I Để ý phép nhân hai ma trận với nhau, ta thấy :hàng i của A nhân với cột j của ma trận AT là hàng j của A
Trang 5Ta có : Ai*A*j = {1, nếu i= j
0, nếu i≠ j
Suy ra họ vectơ hàng của A là họ trực chuẩn
Hoàn toàn tương tự, xét ATA = I ta cs họ vectơ cột của A là họ trực chuẩn
Sử dụng mệnh đề này để tìm một ma trận trực giác A cấp n tuỳ ý như sau :
√3
−2
√6 01
Định nghĩa 3 Ma trận vuông, thực A gọi là chéo hoá trực giao được, nếu
A = PDP-1 = PDPT, với D là ma trận chéo và P là ma trận trực giao
Định lí 1 Cho A là ma trận đối xứng thực
Các khẳng định sau đây là đúng :
Trang 61) Trị riêng của A là các số thực
2) A luông chéo hoá trực giao được
3) Hai vectơ riêng ứng với các giá trị riêng khác nhau vuông góc với nhau
Mệnh đề 2 Nếu ma trận A chéo hoá trực giao được, thì A là ma trrận đối xướng
Chứng minh
Giả sử A chéo hoá được khi đó A = PDPT Suy ra, AT = (PDP)T = (PT)T.DT.PT = P.D.PT = AHay A là ma trận đối xứng
Như vậy chỉ có ma trận đối xứng thực mới chéo hoá trực giao được
I.2.2 Chéo hoá trực giao ma trận đối xứng A
Bước 1 Tìm trị riêng của A
Bước 2 Tìm một cơ sở của trực chuẩn của từng không gian con riêng
Để tìm cơ sở trực chuẩn của không gian con riêng Eλk, ta theo các bước sau:
a) Chọn cơ sở Ek tuỳ ý của Eλk
b) Dùng quá trình Gram-Schmidt (nếu cần) để tìm cơ sở trực giao Fk
c) Chia mỗi vectơ trong Fk cho độ dài của nó ta có cơ sở trực chuẩn Qk của Eλk
Bước 3 Kết luận
Ma trận A luôn chéo hoá trực giao được Tức là A=PDPT, trong đó ma trận chéo D có cácphần tử trên dường chéo là các giá trị riêng của A, họ vectơ cột của a trận trực giao P Từ cácvectơ riêng trong các cơ sở trực chuẩn ở bước 2
Ví dụ 3 Chéo hoá trực giao ma trận đối xứng, thực:
Trang 7Giải hệ ( A- λ2I )x = 0 ⟺ x = ( α; -4 α )T Cơ sở của Eλ2 là ( 1; -4 )T
Cơ sở trực chuẩn của Eλ2 là 1
Bước 2 Tìm cơ sở trực chuẩn của các không gian con riêng ứng với λ1 = 7
Giải hệ: (A- λ1I)x = 0 ⟺ x = ( α; -2 α+2β; β)T
Chẳng hạn như ta có thể tìm cơ sở trực giao của Eλ1 như
Chọn một vectơ riêng x1 = ( 1 ;-2 ;0 )T và tìm vectơ riêng thứ hai x2 = ( α; -2α + 2β; β )T saocho x2 ⊥ x1
Suy ra ( x2,x1 ) = α + (-2) (-2α + 2β )+ 0 = 0
⟺ 5α - 4β = 0
Trang 8Cho α = 4 ta được p = 5 Vậy vectơ riêng x2= (4 ;2 ;5)T ứng với λ2 = -2
Giải hệ ( A - λ2I )x = 0 ⟺ x = ( 2α; α; -2α )T
=α( 2; 1; -2 )T
Cơ sở trực giao của Eλ2 là (2 ; 1 ; -2)T
Do đó, cơ sở trực chuẩn của Eλ2 là 13 (2 ; 1 ; -2 )T
Bước 3 Kết luận : ma trận A chéo hoá trực giao được và A= PDPT, trong đó D=
√45
−2
3 )
I.3 Phân tích SVD ( Singular Value Decomposition )
I.3.1 Cơ sở lý thuyết
Định nghĩa
Cho A là một ma trận thực cỡ m*n Ta chứng minh rằng tập hợp các trị riêng khác không của
AAT và ATA là trùng nhau Thật vậy, giả sử λ0 là một trị riêng khác 0 của AATvà X0 làvectơ riêng của AAT tương ứng Khi đó:
là các singular values của A
Khi đó ta thu được :
AA T = QΣP T (QΣP T ) T =QΣP T PΣ T Q T =Q ΣΣ T Q T
A T A= (QΣP T ) T QΣP T =PΣ T Q T QΣP T =PΣ T ΣP T
Trang 9Các cột của Q là các vectơ riêng của ATA và δ12 ; δ22 ;… ; δr2 là các trị riêng khác 0 không
A=δ1q1p1T + δ2q2p2T với mọi qipiT là một ma trận có hạng bằng 1
Hình 1 Biểu diễn SVD dạng thu gọn và ma trận dưới dạng bằng các ma trận có hạng bằng 1
Lưu ý : q i p i T là một ma trận chứ không phải là một vô hướng, ta tính ra được ma trận của
qipiT bằng cách lấy hàng đầu tiên vectơ qi nhân với các phần tử của vectơ pi, ta được hàngthứ nhất của ma trận Tiếp tục lấy hàng thứ hai của vectơ qi nhân với các phần tử của vectơ
pi, ta được hàng thứ hai của ma trận Cứ như thế cho đến hàng cuối cùng của qi, ta sẽ thuđược một ma trận có hạng luôn bằng 1 bởi vì số vectơ độc lập tuyến tính cực đại bằng 1
Ví dụ : Cho hai vectơ q = (1,2,3)T và p = (3,0,1)T ta có tích ngoài của vectơ q và vectơ pchuyển vị là :
Trang 10qpT = (1∗3 1∗0 1∗1
2∗3 2∗0 2∗1 3∗3 3∗0 3∗1) = (3 0 1
6 0 2
9 0 3)
qpT có hạng bằng 1Như vậy ma trận A chỉ phụ thuộc vào r cột đầu tiên của P,Q và r phần tử khác không đầutiên đường chéo của ∑ Ta có phân tích gọn hơn của A gọi là compact SVD : A = QrDPr
với Qr,Pr là các ma trận tạo nên từ các cột của Q và P tương ứng
Trong lưu trữ hình ảnh, thông thường chỉ có một vài δm có giá trị cao và δn còn lại xấp xĩbằng không nên có thể bỏ qua Khi đó ta có xấp xỉ :
Trang 11 Cơ sở trực giao của Eλ1 = (1
1) ⇒ Cơ sở trực chuẩn của Eλ1 = ( 1
−α) =
α( 1
−1)
Cơ sở trực giao của Eλ2 = ( 1
−1) ⇒ Cơ sở trực chuẩn của Eλ2 = ( 1
Trang 12 Cơ sở trực giao của Eλ1 = (1
2
1) ⇒ Cơ sở trực chuẩn của Eλ1= ( 1
√6 2
√6 1
Trang 13A = QΣPT = ( 1
√2
1
√2 1
Trang 14Trong thời đại kỹ thuật số hiện nay, phân tích SVD có một số ứng dụng rất quantrọng khi làm việc với dữ liệu lớn
Khử nhiễu ảm thanh
Nén ảnh
Giảm số chiều giữ liệu
Ứng dụng trong phân tích thành phân chính (PCA: Principle component
analysis),…
Hình 4 Truncated SVD
Có lẽ chức năng hữu ích nhất của phân tích SVD đó chính là cung cấp một xấp xỉ hạngbậc thấp tối ưu cho ma trận ban đầu (giả sử ma trận là X) Chức năng này được thựchiện bằng cách chỉ giữ lại r singular value đầu tiên của X và r vector đầu tiên của trongcác ma trận singular vectors, đồng thời lược bỏ đi những phần tử còn lại Phương phápnày gọi là Truncate SVD
Ảnh sạch và ảnh bị nhiễu
Ta có ảnh gốc ban đầu là ả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 cũng vào ảnh này để tạo ra ảnh chụp MRI bị nhiễu
Trang 15Hình 5 Bên trái là ảnh chụp MRI gốc, bên phải là ảnh chụp MRI chứa nhiễu.
Ta gọi ma trận biểu diễn ảnh chúng ta chụp được (ảnh chứa nhiễu bởi vì các
nguyên nhân như phóng xạ,…) là X, X true là ma trận biểu diễn các thành phần nhiễu trên ảnh gốc Có thể hình dung ảnh của chúng ta thu được chính là tổng hợp
hai ma trận X true và X noise
X = Xtrue + ℽXnoise ( ℽ là mức độ nhiễu )
Hình 6: Kết quả chạy chương trình khử nhiễu SVD MATLAB
Nhận xét:
Trang 16+Từ giá trị r = 250 trở đi, ảnh rõ nét nhưng có dấu hiệu nhiễu trở lại.
+Từ giá trị r = 150 trở về trước, ảnh được khữ nhiễu khá tốt, và khá rõ nét
+Với những giá trị r nhỏ (r = 20), ảnh thu được hoàn toàn không rõ nét, và cũnggần như khử được nhiễu
+Có một mối liên hệ giữa độ phức tạp và độ chính xác khi khôi phục lại ảnh ban đầu Nếu chúng ta khôi phục lại ảnh ban đầu bằng giữ lại càng nhiều giá trị singular values thì độ chính xác của ảnh cao nhưng đồng thời độ phức tạp cũng cao (ở đây chính là nhiễu) Nếu chúng ta khôi phục lại ảnh ban đầu bằng cách giữ lại một số rất ít singular values thì độ phức tạp của ảnh khôi phục thấp nhưngkéo theo đó là độ chính xác của ảnh cũng thấp (trường hợp r = 20)
+Vậy bài toán đặt ra là chúng ta cần xác định được giá trị r phù hợp để
thu được một ảnh có độ chính xác và độ phức tạp vừa đủ để ta có thể nhận diện và 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, khi chụp cộng hưởng từ MRI như ví dụ minh họa ở trên, phân tích SVD còn được ứng để khử nhiễu các ảnh chụp khác như PET,XRAY,…
Trang 17Hình 15 Khử nhiễu ảnh scan PET bằng 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ễuhình ảnh, nhiễu tín hiệu, nhiễu âm thanh ảnh hưởng không nhỏ đến quá trình xử lýthông tin Do đó việc khử nhiễu nói chung và khử nhiễu ảnh nói riêng đóng vai tròrất quan trọng Trước khi đưa dữ liệu vào máy tính, dữ liệu phải được làm sạch
(quy trình này gọi là Data Cleaning) Nhờ đó khả năng xử lý thông tin của máy
tính đạt hiệu quả cao hơn
Lấy ví dụ chúng ta cho máy học về nhận diện khuôn mặt Tập dữ liệu chúng ta đưavào là ảnh chứa khuôn mặt của hàng triệu người khác nhau Bước đầu tiên cần làmchính là khử nhiễu của từng ảnh để đem lại hiệu quả học máy tốt nhất
Trang 18Hì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 cũng có thể trở thành một công cụ hữu ích trong 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 quá
xa lạ với chúng ta ngày nay Chất lượng hình ảnh thu được bước vởi camera hay máy ảnh giám giát đóng vai trò thiết yếu trong việc xử lý đúng người, đúng hành viphạm Khi đó, việc áp dụng phân tích SVD để khử nhiễu ảnh giám sát sẽ hỗ trợ giảm thiểu tối đa thời gian xử lý, cũng như là công sức của người giám sát
Hình 17 Ảnh chụp biển số xe vi phạm được khử nhiễu nhờ SVD
Trang 19%open original image and convert it into gray colormap
%Here we use a MRI scan as original image
%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
Trang 20*Kết quả thu được sau khi chạy chương trình:
Hình x: Kết quả 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 nhưng có dấu hiệu nhiễu trở lại
+Từ giá trị r = 150 trở về trước, ảnh được khữ nhiễu khá tốt, và khá rõ nét
+Với những giá trị r nhỏ (r = 20), ảnh thu được hoàn toàn không rõ nét, nhưng lại gần như khử được nhiễu
+Có một mối liên hệ giữa độ phức tạp và độ chính xác khi khôi phục lại ảnh ban đầu Nếu chúng ta khôi phục lại ảnh ban đầu bằng giữ lại càng nhiều giá trị singular values thì độ chính xác của ảnh cao nhưng đồng thời độ phức tạp cũng cao (ở đây chính là nhiễu) Nếu chúng ta khôi phục lại ảnh ban đầu bằng cách giữ lại một số rất ít singular values thì độ phức tạp của ảnh khôi phục thấp nhưngkéo theo đó là độ chính xác của ảnh cũng thấp (trường hợp r = 20)
+ Vậy bài toán đặt ra là chúng ta cần xác định được giá trị r phù hợp để
thu được một ảnh có độ chính xác và độ phức tạp vừa đủ để ta có thể nhận diện và sử dụng.
Trang 22KẾT LUẬN
Tóm lại, với sự phát triển của công nghệ thì SVD trở thành một phần không thể thiếu đối với các khối ngành kỹ thuật Nhóm của tụi em đã giải quyết được phần SVD trong khử nhiễu ảnh Theo nhóm đã trình bày, SVD ngoài ứng dụng để khử nhiễu ảnh trong lĩnh vực y tế, trí tuệ nhân tạo, học máy, iám sát giao thông nằm ởphần III) ở trên thì cũng còn có những ứng dụng tuyệt vời khác như:
Giảm chiều của ảnh
• Non-negative matrix factorization (NMF of NNMF)
• Principal component analysis (PCA)
Trang 23TÀI LIỆU THAM KHẢO
[1] Giáo trình Đại Số Tuyến Tính (2020), Đặng Văn Vinh[2] Data-Driven Science and Engineering: Machine Learning, Dynamical Systems,and Control, Steven L’Brunton & J’ Nathan Kutz
[3] The Optimal Hard Threshold for Singular Values is, Mathan Gavish & David
Donoho
[4] Blog: https://machinelearningcoban.com/2017/06/07/svd/
[5] Tài liệu báo cáo của các anh chị sinh viên các khóa trước
và sự hỗ trợ của các anh chị